/* building_contractor — token del verticale.
   Palette PRESA DAI PIXEL del marchio del primo cliente: il PNG del logo campionato dà il giallo
   dell'elmetto `#f6eb16` (dominante, 2077 px), l'oro `#d19d2a` della scritta «Geom. Giuseppe
   Gionfriddo» e il bruno `#c3996a` della scritta «New Edile». Ogni coppia testo/fondo è misurata
   sulla superficie reale su cui viene usata.

   ⚠⚠ IL GIALLO NON PORTA TESTO SU CHIARO, E NON PORTA MAI IL BIANCO.
   `--accent` misura 1,58 su bianco e 1,38 sulla superficie: è SUPERFICIE, mai inchiostro. Sopra il
   giallo va `--ink` (10,93), mai il bianco (1,58). Per l'accento testuale esistono due token
   distinti — `--accent-ink` sui fondi chiari (5,91 su bianco) e `--accent` stesso sulle bande scure
   (11,24 sul piè). È la stessa disciplina dell'ambra di heavy_vehicle_workshop e dell'ottone di
   security_institute, ed è anche il codice visivo del cantiere: nero su giallo.
   Verificate 27 coppie ammesse (tutte ≥ AA) e 11 vietate (tutte sotto soglia: il divieto è provato
   nei DUE versi, non scritto in uno solo). */

:root {
  /* --- ruoli semantici del genoma (nomi CHIUSI, condivisi da tutti i verticali) --- */
  --brand-dark: #1a1815;   /* bitume: piè e banda di chiusura */
  --brand: #26241f;        /* grafite calda: fondo scuro principale */
  --brand-mid: #3a362e;    /* terra bruciata: seconda banda scura */
  --sage: #e8e3d6;         /* sabbia: tessere e superfici intermedie */
  --sage-light: #f3f0e8;   /* calce: bande alterne */
  --sage-tint: #faf8f3;    /* tinta più leggera: fondo pagina */
  --accent-ink: #8a5a14;   /* bronzo su chiaro: 5,91 su bianco · 5,19 su superficie */
  --accent: #f2cb0e;       /* GIALLO ELMETTO: superficie, campi pieni, filetti — mai testo su chiaro */
  --accent-dark: #d9a800;  /* giallo profondo: stati e superfici, mai testo (2,20 su bianco) */
  --paper: #ffffff;
  --surface: #f3f0e8;
  --ink: #1c1b18;          /* 17,22 su bianco · 15,12 su superficie · 10,93 sul giallo */
  --ink-muted: #5a5449;    /* 7,50 su bianco · 6,59 su superficie */
  --line: #ddd8cb;
  --on-dark: #ffffff;      /* 15,50 sul fondo scuro · 17,72 sul piè */
  --on-dark-muted: #c9c3b4;/* 8,82 sul fondo scuro · 10,08 sul piè */
  --focus: #8a5a14;
  /* ⚠⚠ Inchiostro SUL GIALLO. Deve stare fuori dalla rimappatura delle superfici scure: dentro una
     banda scura `--ink` diventa bianco, ma il campo giallo resta giallo — e il bianco sul giallo fa
     1,58. Un token rimappato dal contesto non può vestire una superficie che dal contesto NON dipende. */
  --on-accent: #1c1b18;
  /* ⚠⚠ L'accento come INCHIOSTRO sulle bande scure. Un secondo cliente del verticale può avere un
     accento che NON è chiaro: il giallo fa 11,24 sul piè e serve da inchiostro, ma un rosso di marca
     (#e40613) fa 3,29 e lì non regge — e le due soglie sono mutuamente esclusive, perché un colore
     che porta il bianco sopra di sé è troppo scuro per fare da inchiostro sul near-black.
     Il default È IL VALORE ATTUALE: senza preset questo token risolve a `--accent`. */
  --accent-on-dark: var(--accent);

  /* ⚠⚠ MISURE DI LETTURA. Token, non `max-width` in `ch` sparsi nel foglio: un secondo cliente non
     potrebbe toccarle senza toccare il sito del primo. Default UGUALE al valore attuale.
     ⚠ La misura di lettura va sui PARAGRAFI, mai sul contenitore o sulla riga di una griglia: una
     sezione SENZA foto deve prendere tutta l'area e andare a capo da sola, non restare una colonna
     stretta con la metà destra bianca (regola owner 2026-09-10). */
  --misura-titolo: 18ch;      /* il display della testata: qui la misura corta È il device */
  --misura-hero-lead: 54ch;
  --misura-testa: 60ch;
  --misura-lead: 58ch;
  --misura-prosa: 72ch;
  --misura-tessera: 46ch;
  --misura-colonna: 66ch;
  --misura-quesito: 58ch;
  --misura-nota: 56ch;

  /* --- alias di lettura: nel mestiere i nomi contano più delle sigle --- */
  --giallo: var(--accent);
  --giallo-ink: var(--accent-ink);
  --giallo-su-scuro: var(--accent);  /* 11,24 sul piè: sullo scuro il giallo È l'inchiostro d'accento */
  --grafite: var(--brand);
  --sabbia: var(--sage);

  /* --- tipografia: due famiglie OFL self-hosted (zero-live: mai un font remoto) ---
     Barlow Condensed porta i display: il set stretto regge i titoli lunghi del mestiere
     («Costruzione e ristrutturazione chiavi in mano a Canicattini Bagni») senza scendere di corpo.
     Il testo è Public Sans, che è neutro e robusto e non imita la coppia di security_institute. */
  --font-display: "Barlow Condensed", "Arial Narrow", system-ui, sans-serif;
  --font-body: "Public Sans", system-ui, -apple-system, "Segoe UI", sans-serif;

  /* La scala tipografica: i nomi `--text-*` sono quelli che l'emitter legge per derivare i fontSizes
     di theme.json (tokensOf lancia se ne manca uno). Gli alias `--t-*` sono la forma breve usata dal
     CSS del verticale: una sorgente sola, due nomi. ⚠ Dentro clamp() il `+` ESIGE gli spazi — senza,
     la dichiarazione è invalida e sparisce senza lasciare traccia nel sorgente.
     ⚠ Il corpo non scende sotto 16px: i template della categoria stanno a 13-14 ed è troppo poco. */
  --text-sm: .9375rem;
  --text-base: 1.0625rem;
  --text-md: 1.1875rem;
  --text-lg: 1.375rem;
  --text-xl: clamp(1.85rem, 1.2rem + 2.2vw, 2.7rem);
  --text-2xl: clamp(2.3rem, 1.3rem + 3.6vw, 3.9rem);
  --text-3xl: clamp(2.9rem, 1.4rem + 5.4vw, 5.4rem);

  --t-xs: .8125rem;
  --t-sm: var(--text-sm);
  --t-base: var(--text-base);
  --t-lg: var(--text-md);
  --t-lead: var(--text-md);
  --t-scheda-chisiamo: var(--text-sm);
  --t-xl: var(--text-xl);
  --t-2xl: var(--text-2xl);
  --t-3xl: var(--text-3xl);

  --lh-body: 1.68;
  --lh-heading: 1.04;
  /* ⚠ Questi token non li consuma il CSS del verticale: li pretendono le TOPOLOGIE condivise, che
     possono usare solo i token comuni a TUTTI i verticali. Un verticale nuovo che non li dichiara
     restringe l'insieme comune e fa cadere il gate `topology` per l'intera flotta. */
  --lh-snug: 1.16;
  --lh-tight: 1.02;
  --tracking-label: 0.14em;
  --bg: var(--paper);

  /* --- misure --- */
  --container: 75rem;
  --gutter: clamp(1.25rem, 4vw, 3rem);
  --section-y: clamp(4.25rem, 8vw, 8rem);
  --space-1: .35rem;
  --space-2: .7rem;
  --space-3: 1.1rem;
  --space-4: 1.6rem;
  --space-5: 2.4rem;
  --space-6: 3.4rem;
  --space-7: 4.4rem;
  --space-8: 5.6rem;
  --space-9: 7rem;
  --space-10: 8.8rem;

  /* Raggio ZERO: cantiere, casseforme, spigolo vivo. Nella categoria il raggio è polarizzato
     (0px o pillola): eco3, architect6 e builder2 stanno tutti a 0. */
  --radius: 0px;
  --radius-lg: 0px;   /* preteso dalle topologie condivise */
  --ease: cubic-bezier(.2, .7, .3, 1);
}
