/* Pagine pubbliche di edu.lefo.it: home, alfabetizzazione IA, aziende, perche' LEFO,
   FAQ, AI Literacy Check, contatti. Stile del Brand Kit LEFO: fondo carta, verde come
   segnale dosato, geometria squadrata, molta aria, allineamento a sinistra.
   Nessuno stile in linea: la Content-Security-Policy del sito non li consente. */

:root {
  --aria: 104px;          /* respiro verticale fra le sezioni, da tablet in su */
  --aria-corta: 64px;
  --verde-tenue: #F4F8EC;
}

/* L'attributo hidden deve vincere sugli stili del sito: i pulsanti hanno un display
   dichiarato, che altrimenti li farebbe riapparire (AI Literacy Check). */
[hidden] { display: none !important; }

/* ---------- impianto delle sezioni ---------- */

.sez { padding: var(--aria) 0; border-bottom: 1px solid var(--linea); }
.sez:last-of-type { border-bottom: 0; }
.sez__testo { font-size: 1.08rem; }
.sez__testo p:last-child { margin-bottom: 0; }
.sez__chiusura { margin-top: 32px; }

/* Titoli e testi delle sezioni occupano tutta la colonna: piu' stretti andavano a capo
   troppo presto (Eugenio, 23/09/2026). */
.sez > h2 { max-width: none; }

.sez--scura { background: var(--ink); color: #D2D4CE; margin: 0 -24px; padding: var(--aria) 24px; border-bottom: 0; }
.sez--scura h2, .sez--scura h3, .sez--scura strong { color: #fff; }
.sez--scura .occhiello { color: var(--verde); }
/* I collegamenti sul fondo scuro si schiariscono, i pulsanti no: sul verde il testo
   resta nero, che e' quello che si legge meglio (Eugenio, 22/09/2026). */
.sez--scura a:not(.pulsante):not(.pulsante-secondario) { color: #C6DE94; }

.sez--tenue { background: var(--verde-tenue); margin: 0 -24px; padding: var(--aria) 24px; border-bottom: 0; }

@media (max-width: 720px) {
  :root { --aria: 56px; --aria-corta: 40px; }
  .sez--scura, .sez--tenue { margin: 0 -16px; padding: var(--aria) 16px; }
}

/* ---------- eroe ---------- */

.eroe--grande { padding: 72px 0 var(--aria-corta); border-bottom: 1px solid var(--linea); }
.eroe--grande h1 { font-size: clamp(2.1rem, 5vw, 3.4rem); line-height: 1.08; max-width: none; margin-bottom: 24px; }
.eroe--grande h1 .riga { display: block; }
.eroe--grande h1 .riga--tenue { color: var(--testo); }
.eroe__testo { font-size: 1.18rem; max-width: none; }
.eroe__testo p:last-of-type { margin-bottom: 0; }
@media (max-width: 720px) { .eroe--grande { padding: 40px 0 var(--aria-corta); } .eroe__testo { font-size: 1.06rem; } }
/* Contatti: poca premessa, il modulo subito sotto (24/09/2026). */
.eroe--grande.eroe--contatti { padding: 48px 0 24px; border-bottom: 0; }
.eroe--contatti + .sez { padding-top: 0; border-top: 0; }
@media (max-width: 720px) { .eroe--grande.eroe--contatti { padding: 32px 0 16px; } }

.cta-riga { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.cta-riga .pulsante, .cta-riga .pulsante-secondario { margin-top: 0; }
.cta-riga + .microcopia { margin-top: 12px; }
.microcopia { font-size: 0.9rem; color: var(--tenue); margin: 12px 0 0; }

.barra-fiducia { margin: 40px 0 0; padding-top: 20px; border-top: 1px solid var(--linea);
  font-family: var(--mono); font-size: 0.74rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--verde-profondo); }
.barra-fiducia::before { content: ""; display: inline-block; width: 8px; height: 8px; background: var(--verde); margin-right: 10px; vertical-align: 1px; }

/* fatti in evidenza sotto l'eroe: 5 moduli, 92 minuti, ... */
.pillole { list-style: none; padding: 0; margin: 32px 0 0; display: flex; flex-wrap: wrap; gap: 10px; }
.pillole li { border: 1px solid var(--linea); background: var(--bianco); padding: 9px 16px;
  font-family: var(--mono); font-size: 0.78rem; letter-spacing: 0.04em; color: var(--ink); }
.pillole li::before { content: "■"; color: var(--verde); margin-right: 8px; font-size: 0.7rem; }

/* ---------- griglie e carte ---------- */

.griglia { display: grid; gap: 16px; margin-top: 40px; }
.griglia--2 { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.griglia--3 { grid-template-columns: repeat(auto-fit, minmax(268px, 1fr)); }
.griglia--4 { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }

.carta { background: var(--bianco); border: 1px solid var(--linea); border-top: 3px solid var(--verde); padding: 26px; }
.carta h3 { color: var(--ink); font-size: 1.12rem; margin: 0 0 8px; }
.carta p { margin: 0; }
.carta p + p { margin-top: 10px; }
.carta__etichetta { font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--verde-profondo); display: block; margin-bottom: 10px; }
.carta__num { font-family: var(--mono); font-size: 1.3rem; color: var(--verde-profondo); display: block; margin-bottom: 10px; }
.carta--ruolo { border-top-color: var(--linea); }
.carta--ruolo h3 { font-size: 1rem; font-family: var(--mono); letter-spacing: 0.04em; }
.sez--scura .carta { background: #343535; border-color: #474847; color: #D2D4CE; }
.sez--scura .carta__etichetta { color: var(--verde); }
.sez--scura .carta h3 { color: #FFFFFF; }

/* ---------- domande incolonnate ---------- */

.domande { list-style: none; padding: 0; margin: 28px 0 0; display: grid; gap: 10px; max-width: 70ch; }
.domande li { border-left: 3px solid var(--verde); padding: 2px 0 2px 14px; color: var(--ink); font-size: 1.05rem; }

/* ---------- affermazione in evidenza ---------- */

.evidenza { margin-top: 40px; padding: 36px 40px; background: var(--ink); color: #D2D4CE; border-left: 5px solid var(--verde); max-width: 900px; }
.evidenza p { margin: 0; }
.evidenza__frase { color: #fff; font-size: clamp(1.35rem, 2.6vw, 1.9rem); font-weight: bold; line-height: 1.22; }
.evidenza__frase .riga { display: block; }
.evidenza__coda { margin-top: 12px !important; color: #BFC1BB; }
/* Il testo che segue un blocco in evidenza ne resta staccato (pagina Aziende). */
.evidenza + .eroe__testo, .evidenza + .sez__testo { margin-top: 40px; }
.evidenza--chiara { background: var(--bianco); color: var(--testo); border: 1px solid var(--linea); border-left: 5px solid var(--verde); }
.evidenza--chiara .evidenza__frase { color: var(--ink); }
.evidenza--chiara .evidenza__coda { color: var(--tenue); }
@media (max-width: 640px) { .evidenza { padding: 24px 22px; } }

/* ---------- fonti ---------- */

.fonti { margin-top: 28px; font-size: 0.88rem; color: var(--tenue); }
.fonti a { color: var(--tenue); }

/* ---------- linea del tempo ---------- */

.linea-tempo { list-style: none; padding: 0; margin: 40px 0 0; display: grid; gap: 0; max-width: 780px; }
.linea-tempo li { position: relative; padding: 0 0 28px 30px; border-left: 2px solid var(--linea); }
.linea-tempo li:last-child { padding-bottom: 0; border-left-color: transparent; }
.linea-tempo li::before { content: ""; position: absolute; left: -7px; top: 4px; width: 12px; height: 12px; background: var(--verde); }
.linea-tempo li:last-child::after { content: ""; position: absolute; left: -2px; top: 4px; bottom: 0; width: 2px; background: transparent; }
.linea-tempo__quando { display: block; font-family: var(--mono); font-size: 0.78rem; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--verde-profondo); margin-bottom: 4px; }
.linea-tempo p { margin: 0; }
.linea-tempo strong { color: var(--ink); }

/* ---------- passi numerati collegati ---------- */

.passi-collegati { counter-reset: fase; list-style: none; padding: 0; margin: 40px 0 0;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 16px; }
.passi-collegati li { counter-increment: fase; background: var(--bianco); border: 1px solid var(--linea); padding: 24px; position: relative; }
.passi-collegati li::before { content: "0" counter(fase); display: block; font-family: var(--mono);
  font-size: 0.9rem; letter-spacing: 0.08em; color: var(--verde-profondo); margin-bottom: 10px; }
.passi-collegati li::after { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 3px; background: var(--verde); }
.passi-collegati h3 { font-family: var(--mono); font-size: 0.92rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink); margin: 0 0 8px; }
.passi-collegati p { margin: 0; font-size: 0.98rem; }

/* passi in colonna, con il numero grande a sinistra */
.passi-elenco { counter-reset: tappa; list-style: none; padding: 0; margin: 40px 0 0; display: grid; gap: 12px; max-width: 860px; }
.passi-elenco li { counter-increment: tappa; display: grid; grid-template-columns: 54px 1fr; gap: 18px; align-items: start;
  background: var(--bianco); border: 1px solid var(--linea); padding: 20px 24px; }
.passi-elenco li::before { content: "0" counter(tappa); font-family: var(--mono); font-size: 1.1rem; color: var(--verde-profondo); padding-top: 2px; }
.passi-elenco strong { color: var(--ink); display: block; margin-bottom: 4px; }
.passi-elenco p { margin: 0; font-size: 0.98rem; }

/* ---------- mockup: fogli, attestato, moduli ---------- */

.fogli { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px; margin-top: 40px; }
.foglio { background: var(--bianco); border: 1px solid var(--linea); box-shadow: 0 8px 26px -18px rgba(43,44,44,.5); display: flex; flex-direction: column; }
.foglio__carta { padding: 20px 20px 24px; border-bottom: 1px solid var(--linea); background:
  linear-gradient(var(--bianco), var(--bianco)) padding-box; }
.foglio__marchio { font-family: var(--mono); font-size: 0.6rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--verde-profondo); }
.foglio__titolo { color: var(--ink); font-size: 1rem; font-weight: bold; line-height: 1.2; margin: 10px 0 14px; }
.foglio__righe { display: grid; gap: 7px; }
.foglio__riga { height: 6px; background: var(--linea); }
.foglio__riga--corta { width: 58%; }
.foglio__riga--media { width: 78%; }
.foglio__riga--verde { background: var(--verde); width: 34%; }
.foglio__piede { padding: 16px 20px; }
.foglio__piede h3 { font-size: 1.02rem; color: var(--ink); margin: 0 0 6px; }
.foglio__piede p { margin: 0; font-size: 0.94rem; }
.foglio__tipo { font-family: var(--mono); font-size: 0.64rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--tenue); margin-top: 10px; display: block; }

/* piramide del rischio disegnata dentro al foglio */
.piramide { display: grid; gap: 4px; justify-items: center; margin-top: 4px; }
.piramide span { height: 12px; display: block; }
.piramide span:nth-child(1) { width: 26%; background: #B24A32; }
.piramide span:nth-child(2) { width: 48%; background: #D08A3C; }
.piramide span:nth-child(3) { width: 70%; background: var(--verde); }
.piramide span:nth-child(4) { width: 92%; background: var(--linea); }

/* attestato fittizio */
.attestato { background: var(--bianco); border: 1px solid var(--linea); border-top: 5px solid var(--verde);
  box-shadow: 0 14px 40px -24px rgba(43,44,44,.55); padding: 32px; max-width: 560px; margin-top: 40px; }
.attestato__occhiello { font-family: var(--mono); font-size: 0.64rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--verde-profondo); margin: 0; }
.attestato__titolo { color: var(--ink); font-size: 1.35rem; font-weight: bold; line-height: 1.2; margin: 10px 0 20px; }
.attestato__nome { color: var(--ink); font-size: 1.5rem; margin: 0 0 4px; }
.attestato__corso { margin: 0 0 20px; }
.attestato__riga { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; border-top: 1px solid var(--linea); padding-top: 18px; }
.attestato__dati { display: grid; gap: 4px; font-size: 0.84rem; color: var(--tenue); }
.attestato__dati b { color: var(--ink); font-family: var(--mono); font-size: 0.8rem; font-weight: 500; display: block; }
.attestato__qr { width: 84px; height: 84px; flex: none; }
.attestato__finto { font-family: var(--mono); font-size: 0.62rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--tenue); margin: 14px 0 0; }
@media (max-width: 520px) { .attestato { padding: 22px; } .attestato__riga { flex-direction: column; align-items: flex-start; } }

/* AI Policy fittizia (pagina Aziende, Shared/_PolicyEsempio.cshtml): stessa logica
   dell'attestato. Su telefono l'indice va su una colonna e la tabella scorre dentro il
   suo riquadro, mai con tutta la pagina. */
.policy-esempio { background: var(--bianco); border: 1px solid var(--linea); border-top: 5px solid var(--verde);
  box-shadow: 0 14px 40px -24px rgba(43,44,44,.55); padding: 32px; max-width: 900px; min-width: 0; margin: 40px 0 0; }
.policy-esempio__occhiello { font-family: var(--mono); font-size: 0.64rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--verde-profondo); margin: 0; }
.policy-esempio__titolo { color: var(--ink); font-size: 1.35rem; font-weight: bold; line-height: 1.2; margin: 10px 0 8px; }
.policy-esempio__dati { font-size: 0.84rem; color: var(--tenue); margin: 0 0 22px; }
.policy-esempio__parte { border-top: 1px solid var(--linea); padding-top: 18px; }
.policy-esempio__parte + .policy-esempio__parte { margin-top: 22px; }
.policy-esempio__etichetta { font-family: var(--mono); font-size: 0.68rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--verde-profondo); margin: 0 0 12px; }
.policy-esempio__sezioni { counter-reset: sezione; list-style: none; padding: 0; margin: 0; columns: 2; column-gap: 32px; font-size: 0.92rem; }
.policy-esempio__sezioni li { counter-increment: sezione; display: grid; grid-template-columns: 26px 1fr; gap: 8px; padding: 3px 0; break-inside: avoid; color: var(--ink); }
.policy-esempio__sezioni li::before { content: counter(sezione); font-family: var(--mono); font-size: 0.74rem; color: var(--verde-profondo); padding-top: 2px; }
/* La voce finale non ha numero: al suo posto il quadrato verde del marchio. */
.policy-esempio__sezioni .policy-esempio__sintesi { counter-increment: none; }
.policy-esempio__sezioni .policy-esempio__sintesi::before { content: ""; width: 8px; height: 8px; background: var(--verde); padding: 0; margin-top: 8px; }
.policy-esempio__scorre:focus-visible { outline: 2px solid var(--verde); outline-offset: 2px; }
.policy-esempio__tabella { width: 100%; min-width: 620px; border-collapse: collapse; font-size: 0.88rem; }
.policy-esempio__tabella th { text-align: left; font-family: var(--mono); font-size: 0.66rem; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--verde-profondo); font-weight: normal; padding: 0 14px 8px 0; border-bottom: 2px solid var(--linea); }
.policy-esempio__tabella td { padding: 9px 14px 9px 0; border-bottom: 1px solid var(--linea); vertical-align: top; }
.policy-esempio__tabella td:first-child { color: var(--ink); font-weight: bold; }
.policy-esempio__tabella tbody tr:last-child td { border-bottom: 0; }
.policy-esempio__finto { font-family: var(--mono); font-size: 0.62rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--tenue); margin: 18px 0 0; }
@media (max-width: 640px) { .policy-esempio { padding: 22px; } .policy-esempio__sezioni { columns: 1; } }
/* Arrivando da /aziende#policy la testata fissa non copre l'inizio della sezione. */
.sez[id] { scroll-margin-top: 24px; }

/* ---------- fisarmonica (moduli del corso, FAQ) ---------- */

.fisarmonica { display: grid; gap: 8px; max-width: 860px; margin-top: 40px; }
.fisarmonica details { background: var(--bianco); border: 1px solid var(--linea); }
.fisarmonica summary { cursor: pointer; list-style: none; display: grid; grid-template-columns: auto 1fr auto; gap: 14px;
  align-items: baseline; padding: 18px 22px; color: var(--ink); font-weight: bold; }
.fisarmonica summary::-webkit-details-marker { display: none; }
/* Le FAQ non hanno l'etichetta del modulo: due colonne invece di tre, cosi' il segno
   resta appoggiato al bordo destro. */
.fisarmonica summary:not(:has(.fisarmonica__etichetta)) { grid-template-columns: 1fr auto; }
.fisarmonica summary:hover { background: var(--verde-tenue); }
.fisarmonica__etichetta { font-family: var(--mono); font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--verde-profondo); font-weight: normal; }
.fisarmonica__segno { width: 12px; height: 12px; position: relative; align-self: center; }
.fisarmonica__segno::before, .fisarmonica__segno::after { content: ""; position: absolute; background: var(--verde-profondo); }
.fisarmonica__segno::before { top: 5px; left: 0; width: 12px; height: 2px; }
.fisarmonica__segno::after { top: 0; left: 5px; width: 2px; height: 12px; }
.fisarmonica details[open] .fisarmonica__segno::after { display: none; }
.fisarmonica details[open] summary { border-bottom: 1px solid var(--linea); }
.fisarmonica__corpo { padding: 16px 22px 20px; }
.fisarmonica__corpo p { margin: 0 0 10px; }
.fisarmonica__corpo p:last-child { margin: 0; }
/* Solo le risposte delle FAQ sono giustificate; la sillabazione evita i buchi fra le parole. */
details[data-faq] .fisarmonica__corpo { text-align: justify; hyphens: auto; }
.fisarmonica__corpo ul { margin: 0; padding-left: 20px; }
.fisarmonica h2 { margin-top: 0; }
.faq-gruppo + .faq-gruppo { margin-top: var(--aria-corta); }
.faq-gruppo h2 { font-size: 1.3rem; margin-bottom: 16px; }

/* ---------- AI Literacy Check ---------- */

.check { max-width: 760px; }
.check__avanzamento { display: flex; align-items: center; gap: 14px; margin: 0 0 28px; }
.check__avanzamento progress { flex: 1; height: 6px; appearance: none; border: 0; background: var(--linea); }
.check__avanzamento progress::-webkit-progress-bar { background: var(--linea); }
.check__avanzamento progress::-webkit-progress-value { background: var(--verde); }
.check__avanzamento progress::-moz-progress-bar { background: var(--verde); }
.check__conta { font-family: var(--mono); font-size: 0.74rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--verde-profondo); white-space: nowrap; }

.check__domanda { border: 0; padding: 0; margin: 0 0 32px; }
.check__domanda legend { color: var(--ink); font-size: 1.3rem; font-weight: bold; line-height: 1.25; padding: 0; margin-bottom: 18px; }
.check__scelte { display: grid; gap: 8px; }
.check__scelta { display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: baseline;
  border: 1px solid var(--linea); background: var(--bianco); padding: 14px 18px; cursor: pointer; }
.check__scelta:hover { border-color: var(--verde); background: var(--verde-tenue); }
.check__scelta input { accent-color: var(--verde-profondo); width: 18px; height: 18px; margin: 0; }
.check__scelta:has(input:checked) { border-color: var(--verde); background: var(--verde-tenue); }
.check__comandi { display: flex; gap: 12px; align-items: center; margin-top: 8px; }
.check__comandi button { margin-top: 0; }
.check__indietro { background: none; border: 0; padding: 0; color: var(--verde-profondo); text-decoration: underline; font-weight: normal; }
.check__indietro:hover { background: none; }

.esito-check { border: 1px solid var(--linea); border-left: 5px solid var(--verde); background: var(--bianco); padding: 32px 36px; }
.esito-check h2 { margin-top: 0; }
.esito-check ul { padding-left: 20px; margin: 0 0 16px; }
.esito-check li { margin-bottom: 6px; }
@media (max-width: 640px) { .esito-check { padding: 22px; } }

/* il modulo compare dopo il risultato */
.modulo--lungo { display: grid; gap: 18px; max-width: 620px; margin-top: 32px; }
.modulo--lungo > div { display: grid; gap: 6px; }
.modulo--lungo input:not([type=checkbox]), .modulo--lungo select, .modulo--lungo textarea {
  font: inherit; width: 100%; padding: 12px 14px; border: 1px solid var(--linea); border-radius: 3px; background: var(--bianco); color: var(--ink); }
.modulo--lungo textarea { min-height: 120px; resize: vertical; }
.modulo--lungo input:focus, .modulo--lungo select:focus, .modulo--lungo textarea:focus { outline: 2px solid var(--verde); outline-offset: 1px; border-color: var(--verde); }
.modulo--lungo .coppia { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.modulo--lungo fieldset { border: 0; padding: 0; margin: 0; display: grid; gap: 8px; }
.modulo--lungo legend { padding: 0; font-weight: bold; color: var(--ink); margin-bottom: 4px; }
.modulo--lungo .scelte-riga { display: flex; flex-wrap: wrap; gap: 8px; }
.modulo--lungo .scelta-pillola { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--linea);
  background: var(--bianco); padding: 9px 14px; cursor: pointer; font-size: 0.95rem; }
.modulo--lungo .scelta-pillola:has(input:checked) { border-color: var(--verde); background: var(--verde-tenue); }
.modulo--lungo .scelta-pillola input { width: 16px; height: 16px; margin: 0; accent-color: var(--verde-profondo); }
@media (max-width: 560px) { .modulo--lungo .coppia { grid-template-columns: 1fr; } }
/* Modulo dei contatti: la riga della richiesta policy sta sopra il primo campo, il
   suggerimento compare solo se alla domanda sulla policy si risponde «No» (senza script). */
.modulo--lungo > .contatto-richiesta { margin: 0; }
.contatto-suggerimento-policy { display: none; }
fieldset:has(input[name="policy"][value="No"]:checked) .contatto-suggerimento-policy { display: block; }
.modulo--lungo .contatto-suggerimento-policy { margin: 4px 0 0; }

/* ---------- blocco richiamo finale ---------- */

.richiamo { display: grid; gap: 24px; }
.richiamo__numeri { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; padding: 0; list-style: none; }
.richiamo__numeri li { font-family: var(--mono); font-size: 2rem; color: var(--verde-profondo); border-left: 3px solid var(--verde); padding-left: 14px; }
.richiamo__numeri li:last-child { font-size: 1.05rem; color: var(--testo); align-self: center; border-left-color: var(--linea); }

/* ---------- testata con menu e CTA ---------- */

.testata--sito { display: block; position: sticky; top: 0; z-index: 40; background: rgba(250,250,248,.94);
  backdrop-filter: saturate(1.2) blur(6px); border-bottom: 1px solid transparent; max-width: none; padding: 0; }
.testata--sito.testata--staccata { border-bottom-color: var(--linea); }
.testata__dentro { max-width: 1120px; margin: 0 auto; padding: 14px 24px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.testata__voci--sito { gap: 20px; font-size: 0.96rem; }
.testata__voci--sito a.attiva { color: var(--verde-profondo); text-decoration: underline; text-underline-offset: 6px; }
.testata__cta { background: var(--verde); color: var(--ink); font-weight: bold; padding: 9px 18px; border-radius: 3px; }
.testata__cta:hover { background: #87B033; color: var(--ink); }
.testata__profilo { display: inline-flex; align-items: center; gap: 8px; margin-left: 4px; padding: 8px 14px;
  background: var(--bianco); border: 1px solid var(--linea); border-radius: 3px; color: var(--ink); }
.testata__profilo:hover { background: var(--verde-tenue); border-color: var(--verde); color: var(--ink); }
/* Fra il menu da telefono e i 1180 px le voci non stanno su una riga: l'accesso resta
   solo icona, e il testo continua a leggerlo chi usa un lettore di schermo. */
@media (min-width: 1001px) and (max-width: 1180px) {
  .testata__voci--sito { gap: 16px; }
  .testata__profilo { padding: 8px 10px; }
  .testata__profilo-testo { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
}
.testata__apri, .testata__mobile { display: none; }

@media (max-width: 1000px) {
  .testata__dentro { padding: 12px 16px; }
  .testata__voci--sito { display: none; }
  .testata__apri { display: inline-flex; align-items: center; gap: 10px; font-family: var(--mono); font-size: 0.74rem;
    letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink); background: none; border: 1px solid var(--linea);
    border-radius: 3px; padding: 9px 14px; margin: 0; font-weight: 500; }
  .testata__apri:hover { background: var(--verde-tenue); border-color: var(--verde); }
  .testata__mobile { display: flex; align-items: center; gap: 10px; }
  .testata__mobile .testata__cta { padding: 9px 14px; font-size: 0.9rem; }
  .menu-sito { display: none; border-top: 1px solid var(--linea); background: var(--bianco); padding: 8px 16px 20px; }
  .menu-sito.aperto { display: grid; }
  .menu-sito a { padding: 14px 4px; border-bottom: 1px solid var(--linea); color: var(--ink); text-decoration: none; font-size: 1.05rem; }
  .menu-sito a.attiva { color: var(--verde-profondo); font-weight: bold; }
  .menu-sito .pulsante { margin-top: 16px; text-align: center; justify-self: stretch; }
}
@media (min-width: 1001px) { .menu-sito { display: none; } }

/* ---------- piede ---------- */

.piede__marchio { font-family: var(--mono); font-size: 0.78rem; letter-spacing: 0.08em; color: #C6DE94; margin: 12px 0 4px; }
.piede__disclaimer { max-width: 1120px; margin: 0 auto; padding: 0 24px 36px; font-size: 0.82rem; color: #9FA19C; }
.piede__disclaimer p { margin: 0; max-width: 90ch; }

/* ---------- comparsa sobria degli elementi ---------- */

.js-anima .anima { opacity: 0; transform: translateY(10px); }
.js-anima .anima.vista { opacity: 1; transform: none; transition: opacity .45s ease, transform .45s ease; }
@media (prefers-reduced-motion: reduce) {
  .js-anima .anima { opacity: 1; transform: none; }
  .js-anima .anima.vista { transition: none; }
}

/* dettagli interni dei fogli del kit */
.foglio__domande { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.foglio__domande li { display: grid; grid-template-columns: 24px 1fr; gap: 10px; align-items: center; }
.foglio__domande span { font-family: var(--mono); font-size: 0.7rem; color: var(--verde-profondo); }
.foglio__voci { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: 10px 12px; align-items: center; }
.foglio__voci dt { font-family: var(--mono); font-size: 0.68rem; color: var(--ink); }
.foglio__voci dd { margin: 0; }
.foglio__regole { list-style: none; padding: 0; margin: 0; counter-reset: regola; display: grid; gap: 8px; }
.foglio__regole li { counter-increment: regola; display: grid; grid-template-columns: 20px 1fr; gap: 10px; align-items: center; }
.foglio__regole li::before { content: counter(regola); font-family: var(--mono); font-size: 0.66rem; color: var(--verde-profondo); }
.foglio__legenda { font-family: var(--mono); font-size: 0.58rem; letter-spacing: 0.06em; color: var(--tenue); margin: 12px 0 0; text-align: center; }
.foglio i { display: block; }

/* Aprendo una domanda da un collegamento, la testata fissa non la copre. */
details[data-faq] { scroll-margin-top: 96px; }
/* Indirizzi da copiare (FAQ dei requisiti): non si sillabano e non vanno a capo. */
.fisarmonica__corpo code { font-family: var(--mono); font-size: .88em; hyphens: none; white-space: nowrap; }
.fisarmonica__corpo ul + p { margin-top: 10px; }

/* ---------- banner del consenso ai cookie (js/consenso.js) ---------- */

.banner-cookie {
  position: fixed; left: 24px; bottom: 24px; z-index: 50;
  max-width: 460px; padding: 20px 24px 18px;
  background: var(--bianco); color: var(--testo);
  border: 1px solid var(--linea); border-top: 4px solid var(--verde); border-radius: 3px;
  box-shadow: 0 8px 28px rgba(43, 44, 44, 0.16);
  font-size: 0.92rem; line-height: 1.5;
}
.banner-cookie[hidden] { display: none; }
.banner-cookie p { margin: 0 0 10px; }
.banner-cookie a { color: var(--verde-profondo); }
.banner-cookie__titolo { font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--verde-profondo); }
.banner-cookie__azioni { display: flex; gap: 12px; margin-top: 14px; }
.banner-cookie__azioni button { margin: 0; flex: 1; }
.banner-cookie__chiudi {
  position: absolute; top: 8px; right: 8px; margin: 0; padding: 4px 10px;
  background: none; color: var(--tenue); font-size: 1.3rem; font-weight: normal; line-height: 1;
}
.banner-cookie__chiudi:hover { background: var(--verde-tenue); color: var(--ink); }
.piede__preferenze { color: #E4E5E0; font-size: inherit; text-align: left; justify-self: start; }
@media (max-width: 600px) {
  .banner-cookie { left: 16px; right: 16px; bottom: 16px; max-width: none; }
}

/* ---------- verifica pubblica di un attestato (Pages/Verifica.cshtml, 13/10/2026) ----------
   Chi apre «Mostra credenziale» da LinkedIn arriva qui: in alto l'esito, con il bollino e i dati
   nello stile dell'attestato delle pagine pubbliche; sotto il corso, con il link per approfondire. */

.verifica__eroe { padding: 56px 0 var(--aria-corta); }
.verifica__eroe--modulo { max-width: 560px; }
.verifica__esito { display: grid; grid-template-columns: 200px 1fr; gap: 40px; align-items: center;
  background: var(--bianco); border: 1px solid var(--linea); border-top: 5px solid var(--verde);
  box-shadow: 0 14px 40px -24px rgba(43,44,44,.55); padding: 40px; margin-top: 16px; max-width: 900px; }
.bollino { width: 200px; height: 200px; display: block; }
.verifica__stato { font-family: var(--mono); font-size: 0.78rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--verde-profondo); margin: 0 0 10px; }
.verifica__esito h1 { font-size: clamp(1.8rem, 3.4vw, 2.5rem); margin: 0 0 10px; max-width: none; }
.verifica__frase { margin: 0 0 22px; font-size: 1.05rem; }
.verifica__frase strong { color: var(--ink); }
.verifica__dati { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 28px; margin: 0;
  border-top: 1px solid var(--linea); padding-top: 18px; }
.verifica__dati dt { font-family: var(--mono); font-size: 0.66rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--tenue); margin: 0 0 3px; }
.verifica__dati dd { margin: 0; color: var(--ink); }
.verifica__eroe .microcopia { margin-top: 16px; }

.verifica__corso { border-top: 1px solid var(--linea); }
.verifica__corso .sez__testo { max-width: 70ch; }
.verifica__moduli { list-style: none; padding: 0; margin: 28px 0 0; display: grid; gap: 0; max-width: 640px; }
.verifica__moduli li { padding: 10px 0; border-top: 1px solid var(--linea); color: var(--ink); }
.verifica__moduli li:last-child { border-bottom: 1px solid var(--linea); }
.verifica__modulo { display: inline-block; min-width: 40px; font-family: var(--mono); font-size: 0.8rem; color: var(--verde-profondo); }

@media (max-width: 720px) {
  .verifica__eroe { padding: 32px 0 var(--aria-corta); }
  .verifica__esito { grid-template-columns: 1fr; gap: 24px; padding: 24px; justify-items: start; }
  .bollino { width: 150px; height: 150px; }
  .verifica__dati { grid-template-columns: 1fr; }
}

/* ---------- prezzi (Pages/Prezzi.cshtml, 21/10/2026) ----------
   Le carte del listino, la lista di cosa comprende il prezzo e il riquadro per gli studi. */

.prezzi { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 16px; margin-top: 40px; }
.prezzo { background: var(--bianco); border: 1px solid var(--linea); border-top: 3px solid var(--verde); padding: 26px; display: flex; flex-direction: column; }
.prezzo__fascia { font-family: var(--mono); font-size: 0.74rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--verde-profondo); margin: 0 0 18px; }
.prezzo__cifra { font-family: var(--mono); font-weight: 500; font-size: 2.6rem; line-height: 1; color: var(--ink); margin: 0; letter-spacing: -0.02em; }
.prezzo__cifra--testo { font-size: 1.7rem; letter-spacing: 0; }
.prezzo__unita { margin: 8px 0 0; font-size: 0.95rem; }
.prezzo__azione { margin: auto 0 0; padding-top: 18px; }
.prezzo--su-misura { background: var(--ink); border-color: var(--ink); border-top-color: var(--verde); color: #D2D4CE; }
.prezzo--su-misura .prezzo__fascia { color: var(--verde); }
.prezzo--su-misura .prezzo__cifra { color: #fff; }
.prezzo--su-misura a { color: #C6DE94; font-weight: bold; }

.compreso { margin-top: 16px; background: var(--bianco); border: 1px solid var(--linea); padding: 28px 32px; }
.compreso h3 { margin: 0 0 18px; }
.compreso ul { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 40px; }
.compreso li { display: grid; grid-template-columns: 16px 1fr; gap: 10px; color: var(--ink); }
.compreso li::before { content: "■"; color: var(--verde); font-size: 0.7rem; padding-top: 4px; }
.compreso li span { display: block; color: var(--tenue); font-size: 0.92rem; }
.compreso + .microcopia { margin-top: 16px; }
@media (max-width: 760px) { .compreso { padding: 22px; } .compreso ul { grid-template-columns: 1fr; } }

.studi { margin-top: 32px; background: var(--bianco); border: 1px solid var(--linea); border-left: 5px solid var(--verde);
  padding: 28px 32px; display: grid; grid-template-columns: 1.3fr 1fr; gap: 32px; }
.studi p { margin: 0; }
.studi p + p { margin-top: 10px; }
.studi ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; align-content: start; }
.studi li { border-left: 3px solid var(--verde); padding: 2px 0 2px 14px; color: var(--ink); }
.studi li span { display: block; color: var(--tenue); font-size: 0.92rem; }
@media (max-width: 760px) { .studi { grid-template-columns: 1fr; padding: 22px; gap: 20px; } }

/* Il modulo in fondo alla pagina dei prezzi: la microcopia del listino ne resta staccata. */
.modulo--lungo + .microcopia { margin-top: 32px; }
