/* =============================================================================
   UniNeuromed — Design tokens
   Unico punto di configurazione di colori, tipografia, spazi, raggi e ombre.
   Per cambiare la palette modificare SOLO questo file.
   Palette ufficiale del brand book UniNeuromed (Pantone).
   ========================================================================== */

:root {
  /* --- Colori di brand -----------------------------------------------------
     Palette ufficiale del brand book UniNeuromed.
     Primario   Pantone Blue 072 C   #0002ab
     Secondari  Pantone 2230 C       #008fa4   (teal)
                Pantone 6082 C       #9d4c97   (viola)
                Pantone 648  C       #05325e   (navy)
                Pantone 2190 C       #5bb6e8   (azzurro)
                Pantone 3514 C       #f4b600   (giallo)
     Le varianti "-dark" servono al testo: i colori pieni non raggiungono il
     rapporto di contrasto 4.5:1 su fondo bianco e vanno usati per superfici,
     bordi e filetti, non per le scritte.
     ------------------------------------------------------------------------- */
  --color-primary: #0002ab;
  --color-primary-dark: #000186;
  --color-primary-darker: #000166;
  --color-primary-soft: #eceefc;
  --color-primary-softer: #f5f6fe;

  --color-secondary: #9d4c97;        /* viola */
  --color-secondary-dark: #7d3b78;   /* 7.6:1 su bianco */
  --color-secondary-soft: #f6eef5;

  --color-accent: #008fa4;           /* teal */
  --color-accent-dark: #00707f;      /* 5.8:1 su bianco */
  --color-accent-light: #5cc0d0;     /* 6.1:1 sul navy: testo su fondo scuro */
  --color-accent-soft: #e4f4f7;

  --color-sky: #5bb6e8;              /* azzurro */
  --color-sky-dark: #15699a;         /* 6.0:1 su bianco */
  --color-sky-soft: #eaf6fd;

  --color-gold: #f4b600;             /* giallo */
  --color-gold-dark: #8a6600;        /* 5.3:1 su bianco */
  --color-gold-soft: #fdf4dd;

  /* --- Colori di sezione (uno per ambito, dal brand book) ------------------ */
  --color-istituzionale: var(--color-primary);
  --color-medicina: var(--color-accent);
  --color-cognitive: var(--color-secondary);
  --color-materiali: #05325e;
  --color-ricerca: var(--color-sky);
  --color-international: var(--color-gold);
  /* varianti per il testo: contrasto >= 4.5:1 su bianco */
  --color-istituzionale-dark: var(--color-primary-dark);
  --color-medicina-dark: var(--color-accent-dark);
  --color-cognitive-dark: var(--color-secondary-dark);
  --color-materiali-dark: #05325e;
  --color-ricerca-dark: var(--color-sky-dark);
  --color-international-dark: var(--color-gold-dark);

  /* --- Neutri -------------------------------------------------------------- */
  --color-ink: #05325e;           /* navy istituzionale, Pantone 648 C */
  --color-ink-2: #0a2846;
  --color-ink-3: #123f6e;
  --color-text: #263445;
  --color-text-muted: #5f6b7a;
  --color-text-inverse: #ffffff;
  --color-background: #ffffff;
  --color-surface: #f5f8fc;
  --color-surface-2: #e9eff7;
  --color-border: #e0e7f0;
  --color-border-strong: #c7d1de;

  /* --- Scala delle superfici ------------------------------------------------
     Le sezioni si alternano lungo questa scala. Due fondi adiacenti non devono
     mai appartenere allo stesso gradino: è la regola che tiene separati, per
     esempio, il blocco di chiusura e il piede di pagina.
     ------------------------------------------------------------------------- */
  --surface-page: #ffffff;        /* sezioni normali */
  --surface-muted: var(--color-surface);      /* sezioni alternate */
  --surface-tint: #eef1fd;        /* sezioni con tinta del primario */
  --surface-ink: #05325e;         /* sezioni scure intermedie */
  --surface-brand: #0002ab;       /* blocco di rilievo: chiusura di pagina */
  --surface-footer: #ffffff;      /* piede: fondo bianco, testi scuri */

  /* --- Stati --------------------------------------------------------------- */
  --color-success: #00707f;
  --color-warning: #8a6600;
  --color-danger: #b91c1c;
  --color-info: var(--color-primary-dark);

  /* --- Gradienti ----------------------------------------------------------- */
  /* Il brand book non prevede sfumature: si resta dentro la famiglia blu-teal,
     con l'estremo scuro abbastanza carico da reggere il testo bianco. */
  --gradient-brand: linear-gradient(100deg, var(--color-primary) 0%, #073a86 52%, var(--color-accent-dark) 100%);
  --gradient-brand-soft: linear-gradient(100deg, rgba(0, 2, 171, .10) 0%, rgba(7, 58, 134, .10) 55%, rgba(0, 143, 164, .10) 100%);
  --gradient-ink: linear-gradient(160deg, #05325e 0%, #073a6a 55%, #0d4a86 100%);
  /* Chiusura di pagina: blu primario pieno, l'unico blocco che lo usa
     come fondo. Serve a staccarlo nettamente dal navy del piede. */
  --gradient-brand-block: linear-gradient(150deg, #0002ab 0%, #06199c 48%, #0a2f8f 100%);

  /* --- Tipografia ---------------------------------------------------------- */
  --font-sans: "Mukta Mahee", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
  /* Titoli e voci di menu */
  --font-display: "STAKO", "Mukta Mahee", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;

  /* Mukta Mahee disegna uno spazio stretto (222 unita' su 1000, contro le
     250-280 dei caratteri di sistema). Dopo una virgola o un punto lo stacco
     fra le parole quasi sparisce. Questa correzione lo riporta a una misura
     normale senza toccare i file del carattere. Vale solo per il corpo del
     testo: sui titoli in STAKO viene azzerata. */
  --word-space: .045em;

  --fw-light: 300;
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;

  /* scala fluida: mobile -> desktop */
  --fs-display: clamp(2.05rem, 1.25rem + 3.5vw, 3.7rem);
  --fs-h1: clamp(2rem, 1.35rem + 2.9vw, 3.3rem);
  --fs-h2: clamp(1.6rem, 1.2rem + 1.7vw, 2.45rem);
  --fs-h3: clamp(1.25rem, 1.08rem + .75vw, 1.6rem);
  --fs-h4: clamp(1.08rem, 1rem + .35vw, 1.25rem);
  --fs-lead: clamp(1.03rem, .98rem + .38vw, 1.2rem);
  --fs-body: 1rem;
  --fs-sm: .9375rem;
  --fs-xs: .8125rem;
  --fs-overline: .75rem;

  --lh-tight: 1.12;
  --lh-heading: 1.22;
  --lh-body: 1.65;
  --ls-tight: -.022em;
  --ls-overline: .12em;

  /* --- Spazi --------------------------------------------------------------- */
  --space-1: .25rem;
  --space-2: .5rem;
  --space-3: .75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 2.5rem;
  --space-8: 3rem;
  --space-9: 4rem;
  --space-10: 5rem;
  --section-y: clamp(3.5rem, 2rem + 5vw, 6.5rem);
  --container: 1240px;
  --container-narrow: 820px;
  --gutter: clamp(1.15rem, .7rem + 1.6vw, 2.5rem);

  /* --- Raggi --------------------------------------------------------------- */
  --radius-xs: 6px;
  --radius-sm: 10px;
  --radius-md: 14px;
  --radius-lg: 20px;
  --radius-xl: 28px;
  --radius-pill: 999px;

  /* --- Ombre --------------------------------------------------------------- */
  --shadow-xs: 0 1px 2px rgba(5, 50, 94, .06);
  --shadow-sm: 0 2px 8px rgba(5, 50, 94, .08);
  --shadow-md: 0 8px 26px rgba(5, 50, 94, .10);
  --shadow-lg: 0 18px 48px rgba(5, 50, 94, .16);
  --shadow-focus: 0 0 0 3px rgba(0, 2, 171, .35);

  /* --- Layer --------------------------------------------------------------- */
  --z-header: 100;
  --z-megamenu: 90;
  --z-drawer: 120;
  --z-skip: 200;

  /* --- Motion -------------------------------------------------------------- */
  --ease-out: cubic-bezier(.22, .61, .36, 1);
  --dur-fast: 140ms;
  --dur: 240ms;
  --dur-slow: 520ms;

  --header-h: 76px;
}

@media (max-width: 1023px) {
  :root { --header-h: 64px; }
}

/* Rispetto delle preferenze di sistema per il movimento ridotto */
@media (prefers-reduced-motion: reduce) {
  :root { --dur-fast: 0ms; --dur: 0ms; --dur-slow: 0ms; }
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
}
