/* ==========================================================================
   TOKENS — livelli 1, 3 e 4 del sistema.
   Il livello 2 (brand del cliente) è in brand.css.

   Come si usano:
   - Nei componenti e nelle sezioni si usano SOLO i livelli 3 (semantici) e 4 (componente).
   - I primitivi (livello 1) non si usano direttamente: servono a costruire gli altri livelli.
   - Mai valori hardcoded (colori, px, font) fuori da questi file e da brand.css.
   ========================================================================== */

/* --- LIVELLO 1 · PRIMITIVI — scale neutre, uguali per ogni cliente ------- */
:root {
    /* Spaziatura (base 4px) */
    --space-1:  0.25rem;
    --space-2:  0.5rem;
    --space-3:  0.75rem;
    --space-4:  1rem;
    --space-5:  1.5rem;
    --space-6:  2rem;
    --space-7:  2.5rem;
    --space-8:  3rem;
    --space-9:  4rem;
    --space-10: 5rem;
    --space-11: 6rem;
    --space-12: 8rem;

    /* Scala tipografica fluida (mobile → desktop) */
    --text-xs:   0.75rem;
    --text-sm:   0.875rem;
    --text-base: 1rem;
    --text-lg:   clamp(1.0625rem, 1rem + 0.3vw, 1.25rem);
    --text-xl:   clamp(1.25rem, 1.1rem + 0.6vw, 1.5rem);
    --text-2xl:  clamp(1.5rem, 1.25rem + 1vw, 2rem);
    --text-3xl:  clamp(1.875rem, 1.4rem + 2vw, 2.75rem);
    --text-4xl:  clamp(2.25rem, 1.6rem + 3vw, 3.75rem);
    --text-5xl:  clamp(2.75rem, 1.8rem + 4.5vw, 5rem);

    --leading-tight:  1.05;
    --leading-snug:   1.2;
    --leading-normal: 1.6;

    --tracking-tight: -0.03em;
    --tracking-snug:  -0.015em;
    --tracking-wide:  0.08em;

    /* Raggi */
    --radius-none: 0;
    --radius-sm:   4px;
    --radius-md:   10px;
    --radius-lg:   20px;
    --radius-pill: 999px;

    /* Movimento — da usare anche in GSAP (leggendoli o replicando i valori) */
    --duration-fast: 150ms;
    --duration-base: 300ms;
    --duration-slow: 700ms;
    --duration-image: 1400ms; /* dissolvenze e zoom delle immagini */
    --ease-out:    cubic-bezier(0.16, 1, 0.3, 1);
    --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);

    /* Layout */
    --container-max:    1320px;
    --container-narrow: 760px;
    --gutter:           clamp(1.25rem, 4vw, 2.5rem);

    /* Ombre (dalla più leggera alla più marcata) */
    --shadow-sm: 0 2px 6px rgb(0 0 0 / 0.04);
    --shadow-md: 0 12px 32px rgb(0 0 0 / 0.08);
    --shadow-lg: 0 10px 30px rgb(0 0 0 / 0.06), 0 2px 6px rgb(0 0 0 / 0.04);

    /* Area cliccabile minima (accessibilità: 44×44px) */
    --tap-target: 44px;

    /* Livelli di sovrapposizione */
    --z-dropdown: 900;
    --z-header:   1000;
    --z-overlay:  1100;

    /* Breakpoint di riferimento (le media query non accettano variabili: questi sono i valori da usare)
       mobile: < 768px · tablet: 768–1024px · desktop: > 1024px */
}

/* --- LIVELLO 3 · SEMANTICI — i ruoli. Sono questi che si usano ----------- */
:root {
    --color-bg:              var(--brand-neutral-0);
    --color-surface:         var(--brand-neutral-50);
    --color-text:            var(--brand-neutral-900);
    --color-text-muted:      var(--brand-neutral-600);
    --color-border:          var(--brand-neutral-200);
    --color-accent:          var(--brand-primary);
    --color-accent-hover:    var(--brand-primary-hover);
    --color-on-accent:       var(--brand-on-primary);
    --color-focus:           var(--brand-primary);

    --font-heading: var(--brand-font-heading);
    --font-body:    var(--brand-font-body);
    --weight-heading: var(--brand-heading-weight);

    --radius-ui:   var(--brand-radius);
    --radius-card: var(--brand-radius-card);

    --space-section: clamp(var(--space-9), 9vw, var(--space-12));
    --space-block:   clamp(var(--space-6), 4vw, var(--space-8));
}

/* Sezioni a colori invertiti: aggiungi la classe .is-inverted al tag <section>. */
.is-inverted {
    --color-bg:         var(--brand-neutral-900);
    --color-surface:    var(--brand-neutral-800);
    --color-text:       var(--brand-neutral-0);
    --color-text-muted: var(--brand-neutral-300);
    --color-border:     var(--brand-neutral-700);
    background: var(--color-bg);
    color: var(--color-text);
}

/* --- LIVELLO 4 · COMPONENTE — variabili dei componenti globali ----------- */
:root {
    --btn-font:          var(--font-body);
    --btn-weight:        600;
    --btn-padding:       0.9em 1.6em;
    --btn-radius:        var(--radius-ui);
    --btn-bg:            var(--color-accent);
    --btn-bg-hover:      var(--color-accent-hover);
    --btn-color:         var(--color-on-accent);
    --btn-border:        transparent;

    /* Bottone chiaro sopra sezioni scure (.is-inverted): i valori si calcolano qui, sui colori chiari di :root */
    --btn-inverted-bg:       var(--color-bg);
    --btn-inverted-bg-hover: var(--color-border);
    --btn-inverted-color:    var(--color-text);

    --header-height:     80px;
    --header-bg:         var(--color-bg);
    --header-color:      var(--color-text);
    --header-bg-scrolled: var(--color-bg);

    --dropdown-min-width: 220px;
    --dropdown-shadow:    var(--shadow-md);
    --mega-menu-shadow:   var(--shadow-lg);

    --hero-max-height:          900px;
    --hero-write-blur:          5px;   /* sfocatura iniziale delle lettere del titolo (title_reveal) */
    --article-cover-max-height: 720px;

    --card-bg:      var(--color-surface);
    --card-radius:  var(--radius-card);
    --card-padding: var(--space-6);
}

@media (max-width: 1024px) {
    :root { --header-height: 68px; }
}
