/* Sicilia Chill — IL SISTEMA · ritmo, sezioni, ruoli tipografici
   ═══════════════════════════════════════════════════════════════════════════════════
   COSA STA QUI, E COSA NO.
   Qui sta come si IMPAGINA una pagina: quanta aria fra le sezioni, dove cadono le linee
   di separazione, e i nove RUOLI del testo. Non ci stanno i colori e i caratteri — quelli
   vivono in `tokens.css`, che è la sorgente unica del marchio e va caricato PRIMA:

     <link rel="stylesheet" href="/lib/tokens.css">
     <link rel="stylesheet" href="/lib/sistema.css">

   ═══════════════════════════════════════════════════════════════════════════════════
   PERCHÉ ESISTE. Ordine della Titolare, 17 agosto 2026:
     «tra la fine di una sezione e l'inizio dell'altra ci deve essere una linea di
      separazione e lo stesso spazio tra i testi … non un'accozzaglia di corpi caratteri,
      grassetti e corsivi … le varie parti di ogni sezione devono essere scritte nello
      stesso modo e con le stesse caratteristiche.»

   La misura del problema, contata prima di intervenire: la home aveva **33 corpi di
   carattere diversi**. Non per capriccio — uno alla volta, ognuno ragionevole nel momento
   in cui è stato scritto. È così che nasce l'accozzaglia: non da una decisione sbagliata,
   da trenta decisioni prese separatamente.

   ═══════════════════════════════════════════════════════════════════════════════════
   LA REGOLA DA CUI DISCENDE TUTTO IL RESTO — vale più di ogni riga qui sotto:

       SI NOMINA IL RUOLO, MAI IL POSTO.

   Si scrive `.t-sottotitolo`, non «il paragrafo dentro l'hero». Il 17/8/2026 lo stesso
   errore è stato commesso due volte nello stesso blocco: `.hero img` prendeva anche il
   medaglione, e `.hero p` prendeva anche il credito della fotografia, stampandolo grande
   come un sottotitolo. Descrivere il posto cattura cose che non c'entrano — e un selettore
   per posto è più specifico di una classe, quindi vince e rompe in silenzio.

   ═══════════════════════════════════════════════════════════════════════════════════
   COME SI USA, in pratica. Una sezione si scrive così, e non c'è altro da decidere:

     <section class="sez">
       <div class="wrap">
         <div class="testa">
           <p class="t-occhiello">Etichetta</p>
           <h2 class="t-titolo">Titolo</h2>
           <p class="t-sottotitolo">Una riga che spiega.</p>
         </div>
         <div class="contenuto griglia griglia--3"> … </div>
       </div>
     </section>

   Linea di separazione, aria sopra e sotto, centraggio: arrivano da soli. Chi aggiunge
   una sezione domani non deve ricordarsi niente, e non può disattendere la regola per
   distrazione. È il punto: le regole che dipendono dalla memoria di qualcuno non reggono.
   ═══════════════════════════════════════════════════════════════════════════════════ */

/* ─────────────────────────── 1. IL RITMO — un valore solo ───────────────────────────
   L'aria sopra e sotto OGNI sezione è la stessa. Su schermo grande cresce, ma resta la
   stessa decisione: per questo è una variabile che cambia valore, non una regola nuova.
   Telefono per primo (Regola #19): il valore base è quello del telefono, il desktop è
   l'eccezione dichiarata sotto. Chi parte dal desktop e poi «adatta» produce il difetto
   dell'11 agosto 2026. */
:root{
  --ritmo:52px;
  --gap-titolo:10px;     /* occhiello → titolo      */
  --gap-lead:14px;       /* titolo → sottotitolo    */
  --gap-blocco:30px;     /* testa → contenuto       */
  --gap-riga:22px;       /* fra elementi in griglia */
  --gap-etichetta:12px;  /* etichetta → testo, ovunque ricorra quel motivo.
                            Esisteva in due posti con due numeri diversi (8px nei passi
                            numerati, 12px nelle colonne con foto): stesso motivo, due
                            valori, cioè la differenza fra sezioni che non deve esserci. */
  --filo:1px solid var(--line);
  --misura:36em;         /* larghezza massima di una colonna di testo: oltre, l'occhio
                            perde la riga tornando a capo. */
}
@media (min-width:760px){
  :root{ --ritmo:88px; --gap-titolo:12px; --gap-lead:18px; --gap-blocco:44px; --gap-riga:30px }
}

/* ⚠ IL CONTENITORE NON STA QUI, ED È UNA CORREZIONE DEL 18/8/2026.
   Questo foglio definiva `.wrap`, e `.wrap` nel sito esiste già da sempre — anzi due
   volte: `.wrap{max-width:var(--maxw)}` con `--maxw:1200px`, e una terza versione dentro
   l'hero. Caricando il sistema nella home, quale delle due avrebbe vinto sarebbe dipeso
   dall'ordine dei fogli: una lite silenziosa su OGNI contenitore di OGNI pagina.
   È lo stesso errore di `.bottone`, commesso lo stesso giorno: dare al sistema un nome
   che il sito usava già. La regola che ne esce, e che vale per chiunque tocchi questo
   file: **prima di battezzare una classe si guarda se il sito ha già il suo nome.**
   Il sistema si occupa di ritmo e ruoli; il contenitore lo mette la pagina. Se un giorno
   servisse un contenitore di sistema, si chiamerà `.sc-contenitore` e non `.wrap`. */

/* ─────────────────────── 2. LA SEZIONE — linea e altezza ───────────────────────
   LA LINEA NON SI AGGIUNGE A UNA SEZIONE: si dichiara una volta che due sezioni adiacenti
   sono divise. Chi ne inserisce una in mezzo eredita la linea senza saperlo, e chi ne
   toglie una non lascia una linea orfana.

   QUANTO È ALTA. La Direzione ha chiesto tre cose che insieme non stanno in piedi:
   (1) ogni sezione una schermata · (2) tipografia identica ovunque · (3) niente vuoto.
   Misurato il 17/8/2026 a schermata intera: una sezione di tre righe aveva 164px di
   contenuto dentro 778px di schermo — il 79% vuoto, col centraggio che funzionava
   benissimo. Non era un difetto di esecuzione: è l'aritmetica.
   I siti a schermate intere lo risolvono ingrandendo il testo delle sezioni corte, cioè
   violando la (2) — ed è proprio l'accozzaglia che la Titolare non vuole. Si tengono la
   (2) e la (3) e si ammorbidisce la (1): 62svh è un PAVIMENTO, non una schermata.

   `min-height` e non `height`: una sezione con molte schede deve crescere, non tagliare.
   `svh` e non `vh`: sul telefono `vh` conta anche la barra degli indirizzi.
   `align-content:center`: il vuoto si divide in parti uguali sopra e sotto, così una
   sezione con due righe e una con dieci hanno lo stesso respiro. */
.sez{min-height:62svh;display:grid;align-content:center;padding-block:var(--ritmo);
     border-top:var(--filo)}
@supports not (min-height:62svh){ .sez{min-height:62vh} }

/* ⚠ LA LINEA STA SU OGNI SEZIONE, NON SU `.sez + .sez`. Corretto il 18/8/2026 misurando
   la home vera: le linee erano CINQUE invece di nove.
   `.sez + .sez` significa «una sezione preceduta IMMEDIATAMENTE da un'altra sezione», e
   nella home fra una sezione e l'altra ci sono dei `<style>` e degli `<script>`. Non si
   vedono, non occupano spazio, e per il browser rompono l'adiacenza. Altre due sezioni
   vivono dentro una vista nascosta, quindi hanno un padre diverso e nessun fratello.
   Avevo descritto la vicinanza NEL DOCUMENTO credendo di descrivere la vicinanza SULLA
   PAGINA. Sono due cose diverse, e coincidono solo finché nessuno mette un tag invisibile
   in mezzo — cioè finché si è fortunati.
   Il prezzo di questa versione è una riga sopra la PRIMA sezione, subito sotto l'hero:
   un filo di un pixel sotto una fotografia, che è il minore dei due mali e non dipende
   da come è impaginato il documento. */
.sez--tinta{background:var(--paper2)}

/* La testa di sezione è centrata — regola del sito, non scelta per sezione. */
.testa{text-align:center}
.testa .t-occhiello{justify-content:center}
.testa .t-titolo,.testa .t-sottotitolo{margin-inline:auto}
.testa .t-titolo:first-child{margin-top:0}   /* titolo senza occhiello sopra */
.contenuto{margin-top:var(--gap-blocco)}

/* Un blocco di solo testo è centrato come i titoli: nessuna sezione fa eccezione. */
.blocco-testo{max-width:46em;margin-inline:auto;text-align:center}
.blocco-testo .t-testo{max-width:none;margin-inline:auto}
/* `.nota-sezione` NON sta qui: sta dopo i ruoli, in fondo al blocco 3. Il perché è
   scritto lì, ed è una storia breve e istruttiva. */

/* ───────────────────────────── 3. I NOVE RUOLI ─────────────────────────────
   Chi scrive una sezione sceglie un RUOLO, non un numero. Sono nove e non trenta; se
   servisse un decimo, prima ci si chiede se non basti uno di questi.
   Regola #20.2 rispettata: il serif è solo maiuscolo, peso 400, crenatura −2%.

   ⚠ L'ORDINE DI QUESTO BLOCCO CONTA. Le eccezioni al ruolo (`.nota-sezione`, i margini
   dentro un motivo) vanno DOPO, o non fanno niente: a parità di forza vince l'ultima
   scritta. È già successo — una regola giusta, messa sopra, annullata da `margin:0`.
   Non è una stranezza del CSS: è la sua regola base, invisibile leggendo il codice e
   ovvia guardando la pagina. */
.t-occhiello{font-family:var(--font-sans);font-weight:500;font-size:13px;
  letter-spacing:.045em;text-transform:uppercase;line-height:1;margin:0;
  display:flex;align-items:center;gap:10px}
.t-occhiello::before{content:'';width:9px;height:9px;border-radius:50%;
  background:var(--terracotta);flex:0 0 auto}

/* CENTRATI PER REGOLA, non per scelta di sezione. «Da noi le sezioni sono tutte centrate»
   — la Titolare, 17/8/2026. Il centraggio stava dentro `.testa`, che funziona quando la
   pagina avvolge titolo e sottotitolo in quel contenitore; la home vera non lo fa, e il
   18/8 quattro titoli su sei sono usciti allineati a sinistra.
   La causa merita di restare scritta: togliendo dalla home il vecchio blocco `!important`
   avevo guardato quello che toglievo di SBAGLIATO — una misura di carattere duplicata — e
   non quello che toglievo di GIUSTO, cioè il `text-align:center` che viaggiava nella stessa
   riga. Si cancella un difetto e viene via anche una cosa che serviva, perché stavano
   insieme per caso. Da qui in poi il centraggio sta nel ruolo, dove non può cadere. */
.t-titolo{font-family:var(--font-serif);font-weight:400;
  font-size:clamp(30px,5.4vw,54px);line-height:1.04;letter-spacing:-.02em;
  text-transform:uppercase;margin:var(--gap-titolo) 0 0;text-align:center}

.t-sottotitolo{font-family:var(--font-sans);font-weight:400;
  font-size:clamp(16px,2vw,20px);line-height:1.5;margin:var(--gap-lead) auto 0;
  max-width:var(--misura);text-align:center}

.t-testo{font-family:var(--font-sans);font-weight:400;font-size:16px;line-height:1.6;
  margin:0;max-width:var(--misura)}

.t-didascalia{font-family:var(--font-sans);font-weight:400;font-size:14px;
  line-height:1.45;margin:0}

.t-micro{font-family:var(--font-sans);font-weight:500;font-size:12.5px;line-height:1.35;
  letter-spacing:.04em;margin:0;color:var(--muted)}

/* Le tre varianti che esistevano già come numeri scritti dentro `.hero h1`, `.scheda h3`
   e `.dato-num` — cioè legate a un POSTO. Un numero legato a un posto nessuno lo trova,
   e la prossima scheda lo riscriverà leggermente diverso. Legato a un ruolo si conta, si
   controlla e si cambia in un punto solo. */
.t-titolo--display{font-family:var(--font-serif);font-weight:400;text-transform:uppercase;
  letter-spacing:-.02em;line-height:1;font-size:clamp(38px,8.4vw,92px)}
.t-scheda{font-family:var(--font-sans);font-weight:600;font-size:17px;line-height:1.25}
.t-numero{font-family:var(--font-sans);font-weight:500;
  font-size:clamp(40px,7vw,62px);line-height:1;letter-spacing:-.02em}

/* Il motivo «etichetta sopra, testo sotto», ovunque ricorra. */
.passo .t-testo,.colonna .t-testo{margin-top:var(--gap-etichetta)}

/* ⚠ QUESTA RIGA STA QUI, DOPO I RUOLI, E NON PUÒ RISALIRE.
   `.nota-sezione` e `.t-micro` hanno la stessa forza: a parità di forza vince l'ultima
   scritta. Messa sopra, `margin:0` del ruolo la annulla e la nota si incolla al blocco
   precedente. Non è teoria: è successo il 17/8/2026 nella pagina, corretto — e poi di
   nuovo il 18/8 QUI, mentre scrivevo questo file, tre paragrafi sotto il commento che
   metteva in guardia da questo esatto errore.
   Si è visto solo misurando: la sezione era 26px più bassa di prima, e 26 era il margine.
   A occhio, su una pagina lunga settemila pixel, non lo avrebbe notato nessuno.
   Se un giorno serve riordinare questo foglio, questa riga resta l'ultima. */
.nota-sezione{margin-top:26px;text-align:center}

/* ───────────────────────────── 4. LE GRIGLIE ─────────────────────────────
   Una colonna sul telefono, due sul tablet, tre o quattro sullo schermo grande.
   Non esiste una griglia «a due colonne su mobile»: sotto i 620px si impila e basta. */
.griglia{display:grid;gap:var(--gap-riga);grid-template-columns:1fr}
@media (min-width:620px){.griglia--2,.griglia--3,.griglia--4{grid-template-columns:repeat(2,1fr)}}
@media (min-width:960px){
  .griglia--3{grid-template-columns:repeat(3,1fr)}
  .griglia--4{grid-template-columns:repeat(4,1fr)}
}

/* ═══════════════════════════════════════════════════════════════════════════════════
   NOTA PER CHI VERRÀ DOPO — e per me stesso fra tre settimane.

   I PULSANTI NON STANNO QUI. Stanno in `tokens.css`, che li forza tutti a 15px e peso 400
   con `!important` (Regola #20.1). Se aggiungi un comando con un nome NUOVO, aggiungi quel
   nome all'elenco lì dentro: una classe nuova SFUGGE al controllo che esiste, e diventa
   l'unico pulsante diverso da tutti gli altri. È già successo, il 18/8/2026, con `.bottone`.

   E la regola generale di questa casa, che qui vale doppio: una regola scritta e non
   controllata non è una regola, è un'intenzione. Il punto 19.2 diceva «accordion» da
   luglio e il foglio di stile non ne ha mai avuto uno — per un mese, perché nessun
   controllo guardava. Il guardiano di questo file è la Regola #46 in `verifica-regole.mjs`:
   fallisce il build se una pagina scrive una misura di carattere invece di usare un ruolo.
   ═══════════════════════════════════════════════════════════════════════════════════ */
