/* =========================================================================
   auxilium.legal.css
   Pagine statiche informative (Privacy, Termini, Disclaimer) condivise fra
   InformativaPrivacy.razor e TerminiDiServizio.razor.
   ========================================================================= */

.legal-page {
    min-height: 100%;
    padding: var(--ax-page-padding);
    color: var(--ax-text-1);
    background: transparent;
}

.legal-shell {
    max-width: 820px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: var(--ax-space-5);
}

.legal-crumbs {
    font-size: var(--ax-fs-13);
}

.legal-crumbs a {
    color: var(--ax-text-3);
    text-decoration: none;
}

.legal-crumbs a:hover {
    color: var(--ax-primary-700);
}

.legal-header {
    display: flex;
    flex-direction: column;
    gap: var(--ax-space-2);
    padding-bottom: var(--ax-space-4);
    border-bottom: 1px solid var(--ax-border-soft);
}

.legal-kicker {
    font-size: var(--ax-fs-11);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--ax-text-3);
}

.legal-title {
    margin: 0;
    font-size: clamp(var(--ax-fs-20), 2.4vw, var(--ax-fs-32));
    line-height: 1.2;
    color: var(--ax-primary-700);
    font-weight: 700;
    letter-spacing: -0.02em;
}

.theme-dark .legal-title {
    color: #2f6fe4;
}

.legal-updated {
    margin: 0;
    color: var(--ax-text-3);
    font-size: var(--ax-fs-12);
}

.legal-section {
    display: flex;
    flex-direction: column;
    gap: var(--ax-space-2);
}

.legal-section h2 {
    margin: 0;
    font-size: var(--ax-fs-16);
    font-weight: 600;
    color: var(--ax-text-1);
    letter-spacing: -0.01em;
}

.legal-section p {
    margin: 0;
    color: var(--ax-text-2);
    font-size: var(--ax-fs-14);
    line-height: 1.6;
}

.legal-section a {
    color: var(--ax-primary-700);
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Liste in linea con il resto del testo legale (non disco esagerato,
   no doppia indentazione). Usate per elenchi di fornitori, diritti,
   misure di sicurezza. */
.legal-list {
    margin: 0;
    padding-left: var(--ax-space-5);
    color: var(--ax-text-2);
    font-size: var(--ax-fs-14);
    line-height: 1.6;
    display: flex;
    flex-direction: column;
    gap: var(--ax-space-2);
}

.legal-list li {
    margin: 0;
}

/* Box evidenziato per il disclaimer tecnico, più forte visivamente. */
.legal-section-highlight {
    padding: var(--ax-space-4);
    background: var(--ax-primary-50);
    border: 1px solid var(--ax-primary-200, var(--ax-border-strong));
    border-left: 4px solid var(--ax-primary-700);
    border-radius: var(--ax-radius-md);
}

.legal-section-highlight h2 {
    color: var(--ax-primary-700);
}

.legal-footer {
    margin-top: var(--ax-space-4);
    padding-top: var(--ax-space-3);
    border-top: 1px solid var(--ax-border-soft);
    font-size: var(--ax-fs-12);
    color: var(--ax-text-3);
    text-align: center;
}

.legal-footer a {
    color: var(--ax-text-2);
    text-decoration: none;
    margin: 0 6px;
}

.legal-footer a:hover {
    color: var(--ax-primary-700);
    text-decoration: underline;
}

/* =========================================================================
   Cookie banner informativo (alla prima visita).
   Il markup vive in App.razor e per default è nascosto via .is-hidden;
   cookie-banner.js rimuove la classe se non è stato ancora acknowledgato.
   Posizione: banner fisso in basso, sopra a tutto. Stile sobrio,
   non bloccante, coerente con il resto dell'UI.
   ========================================================================= */
.ax-cookie-banner {
    position: fixed;
    left: var(--ax-space-4);
    right: var(--ax-space-4);
    bottom: var(--ax-space-4);
    z-index: 1000;
    display: block;
    padding: var(--ax-space-3) var(--ax-space-4);
    background: var(--ax-surface-1, #ffffff);
    color: var(--ax-text-1);
    border: 1px solid var(--ax-border-strong, #d0d4da);
    border-radius: var(--ax-radius-md);
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.12);
    max-height: calc(100vh - var(--ax-space-4) * 2);
    overflow-y: auto;
}

.ax-cookie-banner.is-hidden,
.ax-cookie-banner-dettagli.is-hidden {
    display: none;
}

.ax-cookie-banner-main {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--ax-space-3);
}

.ax-cookie-banner-text {
    flex: 1 1 280px;
    font-size: var(--ax-fs-13);
    line-height: 1.5;
    color: var(--ax-text-2);
}

.ax-cookie-banner-text a {
    color: var(--ax-primary-700);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.ax-cookie-banner-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ax-space-2);
    flex: 0 0 auto;
}

.ax-cookie-banner-dettagli {
    margin-top: var(--ax-space-3);
    padding-top: var(--ax-space-3);
    border-top: 1px solid var(--ax-border-strong, #d0d4da);
    display: flex;
    flex-direction: column;
    gap: var(--ax-space-3);
}

.ax-cookie-categoria {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.ax-cookie-categoria-titolo {
    font-size: var(--ax-fs-13);
}

.ax-cookie-categoria-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: var(--ax-fs-13);
    cursor: pointer;
}

.ax-cookie-categoria-desc {
    margin: 0;
    font-size: var(--ax-fs-12, 0.78rem);
    color: var(--ax-text-2);
    line-height: 1.45;
}

/* Backward-compat: vecchio bottone singolo "Ho capito" potrebbe ancora apparire in alcuni snapshot. */
.ax-cookie-banner-ack {
    flex: 0 0 auto;
}

/* =========================================================================
   Tabella elenco cookie (usata in /cookie-policy).
   Stile sobrio, leggibile, coerente col resto delle pagine "legal".
   ========================================================================= */
.legal-table-wrap {
    overflow-x: auto;
    margin: var(--ax-space-3) 0;
    border: 1px solid var(--ax-border-strong, #d0d4da);
    border-radius: var(--ax-radius-md);
}

.legal-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--ax-fs-13);
}

.legal-table th,
.legal-table td {
    text-align: left;
    padding: 0.65rem 0.9rem;
    border-bottom: 1px solid var(--ax-border-strong, #d0d4da);
    vertical-align: top;
}

.legal-table th {
    background: var(--ax-surface-2, #f6f7f9);
    font-weight: 600;
    color: var(--ax-text-1);
}

.legal-table tr:last-child td {
    border-bottom: 0;
}

.legal-table code {
    font-size: 0.85em;
    background: rgba(0, 0, 0, 0.04);
    padding: 0.05rem 0.3rem;
    border-radius: 3px;
}
