/* ============================================================
   tokens.css — design token del tema
   ------------------------------------------------------------
   Tutti i valori riutilizzabili vivono qui, come custom
   property. Nessun valore "magico" nei fogli successivi,
   salvo casi documentati.

   Naming convention: --<dominio>-<proprietà>-<variante>
   ============================================================ */

:root {
  /* ----------------------------------------------------------
     Colori
     Neutri chiari con tinta calda (grigio derivato dal verde
     petrolio), un solo accento. La temperatura calda vive sulle
     superfici, non sul testo.
     ---------------------------------------------------------- */
  --color-ink: #1e2a33;                 /* testo principale, titoli */
  --color-text: #33414d;                /* corpo testo */
  --color-text-muted: #5b6b78;          /* secondario */
  --color-text-faint: #5d6e79;          /* testo piccolo: AA anche sulle superfici tinte */
  --color-bg: #ffffff;
  --color-bg-alt: #f3f6f4;              /* bande alternate */
  --color-bg-elevated: #eaf1ee;         /* riquadri su sfondo chiaro */
  --color-border: #e2e9e5;
  --color-border-strong: #c4d0cc;
  --color-border-control: #788c86;     /* campi: contrasto >= 3:1 sulle superfici chiare */

  /* Superficie scura calda per footer e pannelli "ink" */
  --color-footer-bg: #1c2c29;

  --color-accent: #0f766e;              /* accento principale */
  --color-accent-dark: #0b5d57;
  --color-accent-deep: #08453f;
  --color-accent-soft: #e7f2ef;
  --color-accent-text: #0b5d57;
  --color-on-accent: #ffffff;
  --color-focus-ring: var(--color-accent);

  --color-error: #b3261e;
  --color-error-soft: #fbeae9;
  --color-warning: #8a5a00;
  --color-warning-soft: #fdf3dd;
  --color-success: #1b6e45;
  --color-success-soft: #e8f5ee;

  /* Colori semantici per superfici e stati ricorrenti */
  --color-surface-dark-text: #d5dde2;
  --color-surface-dark-text-muted: #b7c1c9;
  --color-surface-dark-heading: #cfd8de;
  --color-surface-dark-faint: #9aa7b1;
  --color-surface-dark-link: #bfe3df;
  --color-surface-dark-border: rgba(255, 255, 255, 0.15);
  --color-surface-dark-border-strong: rgba(255, 255, 255, 0.6);
  --color-surface-dark-border-medium: rgba(255, 255, 255, 0.35);
  --color-surface-dark-overlay: rgba(255, 255, 255, 0.12);
  --color-header-surface: rgba(255, 255, 255, 0.96);
  --color-accent-transparent: rgba(230, 242, 240, 0);
  --color-error-ring: rgba(179, 38, 30, 0.18);
  --color-warning-text: #5c3d00;
  --color-alert-info-border: #c5e0dc;
  --color-alert-warning-border: #ecd9a8;
  --color-alert-error-border: #ecc9c7;
  --color-alert-success-border: #bfdcc9;

  /* ----------------------------------------------------------
     Tipografia
     Una sola famiglia per tutti i ruoli, come da direzione
     approvata: Source Sans 3 self-hostato. La gerarchia usa
     scala, peso, spaziatura e colore, senza cambiare carattere.
     ---------------------------------------------------------- */
  --font-family: "Source Sans 3", Arial, sans-serif;

  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.25rem;
  --text-2xl: 1.5rem;
  --text-3xl: clamp(1.6rem, 2.5vw, 2rem);
  --text-4xl: clamp(1.9rem, 3.2vw, 2.5rem);
  --text-5xl: clamp(2.3rem, 4.2vw, 3.2rem);
  --text-6xl: clamp(2.6rem, 5vw, 3.75rem);

  --leading-tight: 1.15;
  --leading-normal: 1.55;
  --leading-relaxed: 1.7;

  --tracking-tight: -0.02em;
  --tracking-wide: 0.08em;
  --tracking-wider: 0.16em;

  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;

  /* ----------------------------------------------------------
     Spaziature (scala di 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;

  --space-section: clamp(3rem, 6vw, 5rem);   /* ritmo verticale */
  --space-gap: 1.5rem;                       /* griglie */

  /* ----------------------------------------------------------
     Raggi — scala angolare.
     La direzione del tema è squadrata: blocchi, controlli,
     superfici e focus ring usano 0. I raggi-full restano solo
     per forme intrinsecamente circolari (chip, pill, icone
     circolari), non per i quadrati.
     ---------------------------------------------------------- */
  --radius-sm: 0;
  --radius-md: 0;
  --radius-lg: 0;
  --radius-xl: 0;
  --radius-full: 999px;
  /* ----------------------------------------------------------
     Ombre — stratificate e morbide: niente bordi duri tra
     superficie e sfondo. --shadow-rest è l'elevazione a riposo,
     --shadow-lift quella all'hover.
     ---------------------------------------------------------- */
  --shadow-rest: 0 1px 2px rgba(26, 44, 43, 0.04), 0 10px 26px rgba(26, 44, 43, 0.05);
  --shadow-lift: 0 2px 6px rgba(26, 44, 43, 0.05), 0 18px 38px rgba(26, 44, 43, 0.10);
  --shadow-sm: 0 1px 2px rgba(26, 44, 43, 0.05);
  --shadow-md: 0 2px 6px rgba(26, 44, 43, 0.05), 0 12px 26px rgba(26, 44, 43, 0.07);
  --shadow-lg: 0 4px 12px rgba(26, 44, 43, 0.06), 0 28px 56px rgba(26, 44, 43, 0.12);
  --shadow-focus: 0 0 0 3px rgba(15, 118, 110, 0.35);

  /* Luce di accento per CTA e pulsanti primari al passaggio */
  --shadow-accent: 0 10px 24px rgba(15, 118, 110, 0.22);

  /* ----------------------------------------------------------
     Gradienti — velature trasversali condivise
     ---------------------------------------------------------- */
  --gradient-sheen: radial-gradient(120% 150% at 88% -10%, rgba(255, 255, 255, 0.14) 0%, rgba(255, 255, 255, 0) 55%);

  /* ----------------------------------------------------------
     Larghezze
     ---------------------------------------------------------- */
  --container-max: 75rem;
  --container-narrow-max: 61.25rem;
  --container-text-max: 47.5rem;
  --container-gutter: clamp(1rem, 4vw, 2rem);
  --header-height: 4.25rem;

  /* ----------------------------------------------------------
     Transizioni
     ---------------------------------------------------------- */
  --transition-fast: 150ms ease;
  --transition-base: 250ms cubic-bezier(0.25, 0.55, 0.2, 1);
  --transition-slow: 400ms ease;

  /* ----------------------------------------------------------
     Z-index (scala ordinata)
     ---------------------------------------------------------- */
  --z-skip-link: 1100;
  --z-header: 1000;
  --z-back-to-top: 950;
  --z-dialog: 1090;

  /* ----------------------------------------------------------
     Media queries riutilizzabili (solo documentazione,
     in CSS le media query restano esplicite)
     ---------------------------------------------------------- */
  --bp-tablet: 768px;
  --bp-desktop: 1024px;
}

/* Oltre il Full HD il canvas cresce, mentre la tipografia aumenta
   gradualmente fino al 160%. I container di lettura restano in rem:
   testo e form mantengono una misura leggibile. La scala usa il
   viewport CSS, quindi rispetta anche i display 4K con scaling OS. */
@media (min-width: 1921px) {
  :root {
    font-size: clamp(100%, calc(40% + 0.5vw), 160%);
    --container-max: clamp(75rem, 62.5vw, 150rem);
  }
}

@media (max-width: 767px) {
  :root {
    --space-section: var(--space-7);
  }
}
