/* Aggiunte del tema WordPress allo stile della direzione (assets/stile.css resta identico alla bozza). */

/* Locandina disegnata dal vivo nella scheda: misura fissa 540 x 720, ridotta alla larghezza della cornice. */
.scheda__immagine--viva {
  aspect-ratio: 3 / 4;
  overflow: hidden;
  border: 1px solid var(--filetto);
  border-radius: var(--r-biglietto);
}
.scheda__immagine--viva .locandina { zoom: var(--scala, 0.667); }

/* Pagina «Apri la locandina»: la locandina sola, al centro (riduzione in --zoom: lo script di scarico la rimette a 1). */
.pagina-locandina__corpo { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: var(--banchina); }
.pagina-locandina__corpo .locandina { zoom: var(--zoom, 1); }

/* Corso senza foto: riquadro chiaro al posto dell'immagine. */
.foto--vuota { aspect-ratio: 3 / 2; background: var(--banchina); }

/* Pagine fisse (Privacy, Note legali...): colonna di lettura. */
.pagina-testo { padding-block: 40px 64px; }
.pagina-testo > * { max-width: 74ch; }

/* Sul telefono la locandina da sola si riduce per stare nello schermo. */
@media (max-width: 600px) {
  .pagina-locandina__corpo { padding: 12px; }
  .pagina-locandina__corpo .locandina { --zoom: 0.62; }
}

/* ---------- Lavora con noi: posizioni aperte e modulo ---------- */
.posizioni { list-style: none; margin: 24px 0 0; padding: 0; display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); }
.posizione { height: 100%; display: grid; gap: 10px; align-content: start; padding: 20px; background: var(--bianco); border: 1px solid var(--filetto); border-radius: var(--r-biglietto); }
.posizione__profilo { margin: 0; font-family: var(--f-segno); font-weight: 700; color: var(--orario); }
.posizione__titolo { margin: 0; font-family: var(--f-segno); font-size: var(--t-biglietto); line-height: 1.2; }
.posizione p, .posizione ul { margin: 0; }
.posizione__requisiti { padding-left: 20px; }
.posizione__scadenza { display: flex; gap: 8px; align-items: center; font-weight: 600; }
.posizione .pulsante { justify-self: start; }
.candidatura { max-width: 760px; }
.modulo { display: grid; gap: 18px; margin-top: 20px; }
.modulo-griglia { display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.modulo-campo { display: grid; gap: 6px; margin: 0; }
.modulo-campo[hidden], .modulo-esito[hidden] { display: none; } /* righe nascoste dallo script (23/10/2026) */
.modulo-campo label, .modulo-gruppo legend { font-family: var(--f-segno); font-weight: 700; }
.modulo input[type="text"], .modulo input[type="email"], .modulo input[type="tel"], .modulo select, .modulo textarea {
  width: 100%; min-height: 48px; padding: 10px 12px; font: inherit; color: var(--inchiostro);
  background: var(--bianco); border: 2px solid var(--orario); border-radius: var(--r-piccolo);
}
.modulo textarea { min-height: 110px; }
.modulo input[type="file"] { font: inherit; padding: 10px 0; }
.modulo :focus-visible { outline: 3px solid var(--inchiostro); outline-offset: 2px; }
.modulo-gruppo { margin: 0; padding: 0; border: 0; display: grid; gap: 8px; }
.modulo-scelta, .modulo-consenso label { display: flex; gap: 10px; align-items: flex-start; min-height: 44px; }
.modulo-scelta input, .modulo-consenso input { width: 22px; height: 22px; margin-top: 2px; flex: none; accent-color: var(--inchiostro); }
.modulo-consenso { margin: 0; }
.modulo-nota { color: var(--orario); font-size: 0.9em; }
.obbligatorio { color: var(--orario); }
.modulo-esca { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.modulo-errore { margin: 0; padding: 12px 16px; border-left: 6px solid var(--inchiostro); background: var(--banchina); font-weight: 600; }
.modulo-esito { margin-top: 20px; padding: 20px; border-radius: var(--r-biglietto); background: var(--banchina); }
.modulo-esito h2 { margin-top: 0; }
/* Il modulo non si allarga mai oltre lo schermo (una tendina o un'etichetta lunga lo spingevano a destra). */
.modulo, .modulo-griglia { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 720px) { .modulo-griglia { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.modulo > *, .modulo-griglia > *, .modulo-gruppo { min-width: 0; }
.modulo select { max-width: 100%; text-overflow: ellipsis; }
.modulo-campo { grid-template-columns: minmax(0, 1fr); }
.modulo input[type="file"] { width: 100%; max-width: 100%; }

/* ---------- Sicurezza per mestiere ---------- */
.richiamo-mestieri { display: grid; gap: 20px; align-items: center; padding: 24px; margin-block: 8px 0; background: var(--banchina); border-radius: var(--r-biglietto); border-top: 10px solid var(--linea); box-shadow: inset 0 0 0 0 transparent; }
.richiamo-mestieri__testo { display: flex; gap: 16px; align-items: flex-start; }
.richiamo-mestieri h2 { margin: 0 0 6px; font-family: var(--f-segno); }
.richiamo-mestieri p { margin: 0; }
@media (min-width: 900px) { .richiamo-mestieri { grid-template-columns: 1.1fr 1fr; } }
.mestieri { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); }
.mestiere-tessera { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 14px; align-items: center; min-height: 88px; padding: 14px 16px; color: var(--inchiostro); text-decoration: none; background: var(--bianco); border: 1px solid var(--filetto); border-left: 8px solid var(--linea); border-radius: var(--r-biglietto); }
.mestiere-tessera:hover { border-color: var(--inchiostro); border-left-color: var(--linea); }
.mestiere-tessera:focus-visible { outline: 3px solid var(--inchiostro); outline-offset: 2px; }
.mestiere-tessera__testo { display: grid; gap: 2px; min-width: 0; }
.mestiere-tessera__nome { font-family: var(--f-segno); font-weight: 800; font-size: 1.1em; }
.mestiere-tessera__cosa { color: var(--orario); font-size: 0.92em; }
.mestiere-tessera__stato { justify-self: start; margin-top: 4px; padding: 1px 8px; border: 1px solid var(--orario); border-radius: 999px; font-size: 0.82em; font-weight: 700; color: var(--orario); }
.mestiere-tessera__stato.e-disponibile { color: var(--bianco); background: var(--inchiostro); border-color: var(--inchiostro); }
.mestiere { display: grid; gap: 20px; max-width: 860px; }
.mestiere h1 { margin: 6px 0 4px; }
.mestiere__cosa { margin: 0; font-size: 1.1em; color: var(--orario); }
.percorso { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.percorso li { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 14px; align-items: start; padding: 16px; background: var(--banchina); border-radius: var(--r-biglietto); }
.percorso__numero { display: grid; place-items: center; width: 48px; height: 48px; border-radius: var(--r-piccolo); background: var(--inchiostro); color: var(--bianco); font-family: var(--f-segno); font-weight: 800; font-size: 1.4em; }
.percorso__titolo { margin: 0 0 4px; font-family: var(--f-segno); font-weight: 800; font-size: 1.1em; }
.percorso p { margin: 0; }
.mestiere__preparazione { padding: 20px; border: 2px dashed var(--filetto); border-radius: var(--r-biglietto); }
.mestiere__preparazione h2 { margin-top: 0; }
.mestiere__totale, .mestiere__aziende { margin: 0; font-size: 1.05em; }
.mestiere__linea { display: flex; align-items: center; gap: 12px; margin: 0; font-family: var(--f-segno); font-weight: 700; font-size: 20px; }
/* Aree da toccare di almeno 24 px (WCAG 2.2): caselle dei moduli e titoli dei biglietti. */
.modulo-scelta input, .modulo-consenso input { width: 24px; height: 24px; }
.biglietto__titolo a { display: inline-block; min-height: 24px; }

/* Pagina della locandina: comandi sopra, mai in stampa. */
.pagina-locandina__corpo { align-content: start; gap: 16px; }
.locandina-comandi { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: center; max-width: 540px; }
.locandina-comandi__nota { flex-basis: 100%; margin: 0; text-align: center; min-height: 1.4em; }
@media print {
  .locandina-comandi { display: none; }
  .pagina-locandina__corpo { background: #fff; padding: 0; min-height: 0; }
  .pagina-locandina__corpo .locandina { zoom: 1; --zoom: 1; }
}

/* Locandina quadrata 1:1 per i social (21/10/2026): 540 x 540, scaricata a 1080 x 1080.
   Il blocco in alto (linea, data, titolo e foto) prende lo spazio che resta: la foto si allunga o si accorcia. */
.locandina--quadrata { height: 540px; padding-bottom: 16px; }
.locandina__alto { display: grid; grid-template-columns: minmax(0, 1fr) 216px; gap: 16px; flex: 1 1 0; min-height: 0; margin-top: 14px; }
.locandina__alto--senza-foto { grid-template-columns: minmax(0, 1fr); }
.locandina__sinistra { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; min-width: 0; }
.locandina--quadrata .locandina__linea { margin-top: 0; font-size: 18px; gap: 10px; }
.locandina--quadrata .foto { height: auto; margin-top: 0; }
.locandina--quadrata .data { --lato: 84px; }
.locandina--quadrata .data__numero { font-size: 48px; padding-top: 5px; }
.locandina--quadrata .data__parola { font-size: 22px; }
.locandina--quadrata .data__mese { font-size: 15px; }
.locandina--quadrata .data--parola { width: 104px; }
.locandina--quadrata .locandina__titolo { font-size: 30px; line-height: 1.06; padding-top: 0; }
.locandina--quadrata .locandina__titolo--lungo { font-size: 25px; }
.locandina--quadrata .dati { margin-top: 10px; font-size: 16px; gap: 4px 24px; }
.locandina--quadrata .strappo { margin-top: 8px; }
.locandina--quadrata .matrice { padding-top: 4px; padding-bottom: 8px; }
.locandina--quadrata .matrice dd { font-size: 18px; line-height: 1.25; }
.locandina--quadrata .matrice .quanto { font-size: 20px; }
.locandina--quadrata .locandina__dicitura { margin-top: 4px; font-size: 13px; }
.locandina--quadrata .locandina__loghi { margin-top: 6px; }
.locandina--quadrata .locandina__loghi--immagine { display: flex; justify-content: center; }
.locandina--quadrata .locandina__loghi-immagine { width: auto; max-width: 100%; max-height: 40px; }
/* Senza foto il titolo prende tutta la larghezza: più grande, così il quadrato non resta vuoto. */
.locandina__alto--senza-foto .locandina__titolo { font-size: 40px; }
.locandina__alto--senza-foto .locandina__titolo--lungo { font-size: 34px; }
.locandina--quadrata .locandina__piede { margin-top: 10px; }
.locandina--quadrata .locandina__piede img { height: 40px; }
.locandina--quadrata .locandina__sito { font-size: 18px; }

/* Catalogo: riquadro «Corsi già conclusi» in fondo (20/10/2026) */
.conclusi-richiamo { display: grid; gap: 12px; justify-items: start; }
.conclusi-richiamo h2, .conclusi-richiamo p { margin: 0; }
.conclusi-richiamo p { max-width: 62ch; }
.conclusi-richiamo .pulsante { margin-top: 4px; }

/* Programmi e avvisi (20/10/2026) */
.programma-breve h2 { margin: 0 0 16px; }
.programma-breve__elenco { display: grid; gap: 16px 32px; margin: 0; }
@media (min-width: 720px) { .programma-breve__elenco { grid-template-columns: 1fr 1fr; } }
.programma-breve__elenco div { padding-top: 12px; border-top: 1px solid var(--filetto); }
.programma-breve__elenco dt { font-family: var(--f-segno); font-weight: 700; font-size: 18px; line-height: 1.3; }
.programma-breve__elenco dd { margin: 4px 0 0; max-width: 60ch; }
.programma-breve__link { list-style: none; padding: 0; margin: 24px 0 0; display: flex; flex-wrap: wrap; gap: 8px 24px; }
.programma-breve__link a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-family: var(--f-segno); font-weight: 700; }
.programma-breve__link .ico { width: 18px; height: 18px; }
.programma-conclusi__titolo { margin: 32px 0 8px; font-size: 20px; }
.programma-conclusi { margin: 0; padding-left: 1.2em; }
.programma-conclusi li { margin-block: 4px; }
.programma-conclusi a { display: inline-block; min-height: 32px; padding-block: 4px; }
.programmi { list-style: none; padding: 0; margin: 0; display: grid; gap: 16px; }
@media (min-width: 720px) { .programmi { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .programmi { grid-template-columns: 1fr 1fr 1fr; } }
.programma-tessera { position: relative; display: grid; align-content: start; gap: 8px; padding: 20px; background: var(--banchina); border: 1px solid var(--filetto); border-radius: var(--r-biglietto); }
.programma-tessera p { margin: 0; }
.programma-tessera__nome { margin: 0; font-size: var(--t-biglietto); line-height: 1.2; }
.programma-tessera__nome a { color: inherit; text-decoration: none; }
.programma-tessera__nome a::after { content: ""; position: absolute; inset: 0; border-radius: var(--r-biglietto); }
.programma-tessera__nome a:focus-visible { outline: none; }
.programma-tessera:has(a:focus-visible) { outline: 3px solid var(--inchiostro); outline-offset: 2px; }
.programma-tessera:hover .programma-tessera__nome a { text-decoration: underline; }
.programma-tessera__vantaggi { color: var(--orario); }
.programma-tessera__corsi { display: flex; align-items: center; gap: 6px; font-family: var(--f-segno); font-weight: 700; }
.loghi__immagine { display: block; width: 100%; max-width: 760px; height: auto; background: var(--bianco); }
.locandina__loghi--immagine { display: block; height: auto; padding: 0; border: 0; background: none; }
.locandina__loghi-immagine { display: block; width: 100%; height: auto; }

/* Pagine fisse dagli schizzi (Aziende, Lavoro, Chi siamo, Contatti, FAD, Portale servizi, Richiesta), 20/10/2026 */
.intestazione__pulsanti { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }
.intestazione__pulsanti .ico, .pulsante .ico { width: 20px; height: 20px; flex: none; }
.sezione > h2 { margin: 0 0 16px; }
.testo-breve { display: grid; gap: 12px; }
.testo-breve > * { margin: 0; max-width: 62ch; }
.testo-breve h3 { margin-top: 8px; font-size: 20px; }
.testo-breve > .dettagli { grid-column: auto; } /* Fondimpresa: le domande frequenti restano nella colonna del testo (giuria G1-04) */
.tessere { list-style: none; padding: 0; margin: 0; display: grid; gap: 16px; }
@media (min-width: 720px) { .tessere { grid-template-columns: 1fr 1fr; } }
.tessera-link { position: relative; display: grid; align-content: start; gap: 8px; padding: 20px; background: var(--banchina); border: 1px solid var(--filetto); border-radius: var(--r-biglietto); }
.tessera-link p { margin: 0; }
.tessera-link__titolo { margin: 0; font-size: var(--t-biglietto); line-height: 1.2; }
.tessera-link__titolo a { color: inherit; text-decoration: none; }
.tessera-link__titolo a::after { content: ""; position: absolute; inset: 0; border-radius: var(--r-biglietto); }
.tessera-link__titolo a:focus-visible { outline: none; }
.tessera-link:has(.tessera-link__titolo a:focus-visible) { outline: 3px solid var(--inchiostro); outline-offset: 2px; }
.tessera-link:hover .tessera-link__titolo a { text-decoration: underline; }
.tessera-link__nota { color: var(--orario); }
.tessera-link__elenco { margin: 0; padding-left: 1.2em; display: grid; gap: 4px; }
.tessera-link__elenco .sopra { position: relative; z-index: 1; display: inline-block; min-height: 32px; padding-block: 4px; }
.passi { margin: 0 0 20px; padding: 0; list-style: none; counter-reset: passo; display: grid; gap: 12px; max-width: 62ch; }
.passi li { counter-increment: passo; display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 12px; align-items: start; }
.passi li::before { content: counter(passo); display: grid; place-items: center; width: 36px; height: 36px; padding-top: 3px; border-radius: var(--r-piccolo); background: var(--inchiostro); color: var(--bianco); font-family: var(--f-segno); font-weight: 800; }
.elenco-link { margin: 0; padding-left: 1.2em; display: grid; gap: 8px; max-width: 62ch; }
.sede { display: grid; gap: 24px; align-items: start; }
@media (min-width: 900px) { .sede { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.sede__testo { display: grid; gap: 12px; }
.sede__testo > * { margin: 0; }
.sede__immagine img { display: block; width: 100%; height: auto; border-radius: var(--r-biglietto); }
.richiesta-corso { margin-top: 24px; padding: 14px 18px; border-left: 6px solid var(--linea, var(--inchiostro)); background: var(--banchina); border-radius: var(--r-piccolo); display: grid; gap: 4px; }
.richiesta-corso p { margin: 0; }
.richiesta-corso__etichetta { color: var(--orario); font-family: var(--f-segno); font-weight: 700; font-size: 15px; }
.richiesta-corso__titolo { font-family: var(--f-segno); font-weight: 800; font-size: 20px; }
.modulo-richiesta { max-width: 44rem; }
.modulo-richiesta .modulo { margin-top: 0; }
.modulo input[type="number"] { width: 100%; min-height: 48px; padding: 10px 12px; font: inherit; color: var(--inchiostro); background: var(--bianco); border: 2px solid var(--orario); border-radius: var(--r-piccolo); }
.modulo-invio { display: grid; gap: 10px; justify-items: start; }
.modulo-informativa { margin: 0; color: var(--orario); font-size: 0.95em; max-width: 52ch; }
.segnaposto { background: var(--banchina); padding: 0 4px; border-radius: 3px; }

/* Contatti, «Come arrivare» (21/10/2026). */
.come-arrivare { margin: 0; padding-left: 1.2em; display: grid; gap: 12px; max-width: 62ch; }
.come-arrivare__link { display: flex; flex-wrap: wrap; gap: 4px 20px; margin-top: 6px; }
.link-esterno { display: inline-flex; align-items: center; gap: 4px; min-height: 24px; overflow-wrap: anywhere; }
.link-esterno .ico { width: 16px; height: 16px; flex: none; }

/* Privacy (bozza del 21/10/2026): avviso di bozza, voci per modulo, note per il consulente. */
.privacy-bozza { margin: 0; padding: 14px 18px; max-width: 62ch; border-left: 6px solid var(--orario); background: var(--banchina); border-radius: var(--r-piccolo); }
.privacy-voci { display: grid; gap: 4px 24px; margin: 0; max-width: 74ch; }
.privacy-voci dt { font-family: var(--f-segno); font-weight: 800; margin-top: 10px; }
.privacy-voci dd { margin: 0; }
.privacy-voci dd p { margin: 0 0 8px; }
@media (min-width: 900px) {
  .privacy-voci { grid-template-columns: 11rem minmax(0, 1fr); }
  .privacy-voci dt { margin-top: 0; }
}
.privacy-versione { color: var(--orario); }
.privacy-note { padding: 20px; max-width: 74ch; border: 2px dashed var(--orario); border-radius: var(--r-biglietto); }
.privacy-note ol { margin: 12px 0 0; padding-left: 1.4em; display: grid; gap: 8px; }
.privacy-note p { margin: 0; color: var(--orario); }
/* Condizioni di vendita: il modulo di recesso, su fondo chiaro con le righe da scrivere */
.condizioni-modulo { display: grid; gap: 10px; padding: 18px 20px; max-width: 62ch; border: 1px solid var(--filetto); border-radius: var(--r-biglietto); }
.condizioni-modulo h3, .condizioni-modulo p { margin: 0; overflow-wrap: anywhere; }
.testo-breve .prenota__righe { list-style: none; margin: 0; padding: 0; max-width: 62ch; border: 1px solid var(--filetto); border-radius: var(--r-biglietto); }
.modulo-gruppo legend { margin-bottom: 10px; padding: 0; }

/* =====================================================================
 * Revisione del 21/10/2026 (piano in testi/revisione-2026-10-21/)
 * ===================================================================== */

/* ---------- C1 Un colore, un significato ---------- */
/* l'indennità sotto «Gratuito», in inchiostro: il rosso resta solo alla parola «Gratuito» */
.quanto__nota { margin: 4px 0 0; color: var(--inchiostro); font-family: var(--f-lettura); font-size: 16px; font-weight: 600; line-height: 1.3; }
/* nel biglietto la colonna «Quanto» è larga quanto il testo più lungo: la nota va a capo come il costo (max 9em a 22-26 px) */
.biglietto .matrice .quanto__nota { max-width: 12em; font-size: 16px; }
.biglietto .matrice { grid-template-columns: minmax(0, 1fr) minmax(0, 50%); } /* «Per chi» non si schiaccia (giuria G1-02) */
.biglietto .matrice .quanto { max-width: none; }

/* ---------- C4 Data nella quadrata ---------- */
/* «ultima edizione» va a capo solo nella quadrata, dove il riquadro è largo 104 px («quando vuoi» resta su una riga altrove) */
.locandina--quadrata .data--parola .data__mese { white-space: normal; }

/* ---------- C5 Simbolo AI sempre da 16 px sullo schermo ---------- */
/* la locandina nella scheda e nella pagina da sola è ridotta con zoom: il simbolo si ingrandisce dello stesso fattore,
   così si vede da 16 px; nel PNG (zoom 1, scala 2) misura 32 px */
.scheda__immagine--viva .locandina .simbolo-ai { top: calc(6px / var(--scala, 0.667)); right: calc(6px / var(--scala, 0.667)); width: calc(16px / var(--scala, 0.667)); height: calc(16px / var(--scala, 0.667)); }
.pagina-locandina__corpo .locandina .simbolo-ai { top: calc(6px / var(--zoom, 1)); right: calc(6px / var(--zoom, 1)); width: calc(16px / var(--zoom, 1)); height: calc(16px / var(--zoom, 1)); }

/* ---------- Telefono stretto (320 px): niente scorrimento di lato ---------- */
.richiamo-mestieri > *, .richiamo-mestieri__testo > div { min-width: 0; }
.richiamo-mestieri .cerca input { min-width: 0; }
.locandina-comandi { max-width: min(540px, 100%); }
@media (max-width: 360px) {
  .pagina-locandina__corpo .locandina { --zoom: 0.54; }
}

/* ---------- C4 Locandina verticale che non sborda ---------- */
/* con «Per chi» lungo, l'indennità o un titolo su 4 righe il piede usciva dal bordo: la foto cede spazio (fino a 120 px);
   la foto resta da 214 px dove il contenuto sta dentro il margine bianco di 20 px in fondo */
.locandina:not(.locandina--quadrata) .foto { flex: 0 1 var(--altezza-foto, 214px); height: auto; min-height: 120px; }

/* ---------- C9 Segnaposto solo all'amministratore ---------- */
.segnaposto__nota { color: var(--orario); font-weight: 400; }
.locandina-comandi__avviso { flex-basis: 100%; margin: 0; padding: 12px 16px; border-left: 6px solid var(--inchiostro); background: var(--bianco); }

/* ---------- Menu: voce corrente ---------- */
/* la pagina esatta ha già lo stile della C1 (aria-current="page"); la sezione (aria-current="true") lo stesso, e così i due accessi */
.menu__voci a[aria-current="true"], .menu__accessi a[aria-current] { text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: 4px; }

/* ---------- C2 Biglietti e fondo (scelta B di Simone, 21/10/2026) ---------- */
/* pagina bianca, fasce senza fondo con un filetto in cima; i biglietti e gli altri «oggetti di carta» restano crema */
.fascia { --fondo: var(--bianco); background: var(--bianco); border-top: 1px solid var(--filetto); }
.fascia + .fascia { padding-top: var(--fascia); }

/* ---------- C6 Scheda del corso: un solo grande biglietto (schizzo approvato da Simone il 21/10/2026) ---------- */
.scheda2 { display: grid; gap: 40px; padding-top: 8px; }
@media (min-width: 1024px) { .scheda2 { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 56px; align-items: start; } }
/* corsi a ciclo continuo (giuria Vetrina G1-02): a destra scelta del modulo e date, a sinistra sotto il biglietto il resto */
@media (min-width: 1024px) {
  .scheda2:has(> .scheda2__sotto) { grid-template-areas: "biglietto colonna" "sotto colonna"; grid-template-rows: auto 1fr; }
  .scheda2:has(> .scheda2__sotto) > .biglietto-grande { grid-area: biglietto; }
  .scheda2:has(> .scheda2__sotto) > .scheda2__colonna:not(.scheda2__sotto) { grid-area: colonna; }
  .scheda2 > .scheda2__sotto { grid-area: sotto; }
}
.biglietto-grande { --fondo: var(--bianco); position: relative; overflow: hidden; border-radius: var(--r-biglietto); background: var(--banchina); }
.biglietto-grande::before { content: ""; display: block; height: 10px; background: var(--linea); box-shadow: inset 0 -2px 0 var(--linea-bordo, transparent); }
.biglietto-grande__alto { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 20px 0; }
.biglietto-grande__alto .etichette { margin: 0; }
.biglietto-grande__linea { display: flex; align-items: center; gap: 12px; margin: 0; font-family: var(--f-segno); font-weight: 700; font-size: 18px; }
.biglietto-grande__linea span:last-child { padding-top: 3px; }
.biglietto-grande__foto { margin: 16px 20px 0; }
.biglietto-grande__foto .foto { aspect-ratio: 3 / 2; border-radius: 8px; overflow: hidden; }
.biglietto-grande__testa { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 16px; align-items: start; padding: 20px 20px 0; }
.data--scheda { --lato: 96px; margin: 0; }
.data--scheda .data__numero { font-size: 50px; }
.biglietto-grande h1 { margin: 0; font-family: var(--f-segno); font-weight: 800; font-size: clamp(26px, 20px + 1.6vw, 40px); line-height: 1.06; letter-spacing: -0.01em; text-wrap: balance; }
.biglietto-grande .stato { margin-top: 10px; }
.biglietto-grande > .dati { margin: 16px 20px 0; }
.biglietto-grande > .strappo { margin-top: 20px; }
.biglietto-grande > .matrice { padding: 8px 20px 4px; }
.biglietto-grande__dicitura { margin: 0; padding: 8px 20px 0; font-size: 16px; color: var(--orario); }
.biglietto-grande__azioni { display: grid; gap: 8px; justify-items: center; padding: 24px 20px 24px; }
.biglietto-grande__azioni .pulsante { width: 100%; justify-content: center; }
.biglietto-grande__info { display: inline-flex; align-items: center; min-height: 44px; font-family: var(--f-segno); font-weight: 700; font-size: 18px; color: var(--inchiostro); text-underline-offset: 4px; }
.biglietto-grande__esterna { margin: -12px 0 0; padding: 0 20px 22px; font-size: 16px; text-align: center; }
.biglietto-grande__esterna a { color: var(--inchiostro); text-underline-offset: 3px; }
@media (min-width: 1024px) {
  .biglietto-grande__foto .foto { aspect-ratio: 16 / 9; }
  .biglietto-grande__alto, .biglietto-grande__testa, .biglietto-grande > .matrice, .biglietto-grande__dicitura, .biglietto-grande__azioni, .biglietto-grande__esterna { padding-inline: 32px; }
  .biglietto-grande__foto, .biglietto-grande > .dati { margin-inline: 32px; }
  .biglietto-grande__azioni { grid-template-columns: auto auto; justify-content: start; gap: 24px; }
  .biglietto-grande__azioni .pulsante { width: auto; min-width: 16rem; }
}
/* colonna accanto al biglietto: un solo spazio fra i blocchi */
.scheda2__colonna { display: grid; gap: 32px; align-content: start; }
.scheda2__colonna > * { margin: 0; grid-column: auto; } /* stile.css:1316 metteva dettagli e loghi nelle colonne 6-12 della scheda di prima */
.scheda2__colonna h2 { margin: 0 0 12px; font-family: var(--f-segno); font-weight: 800; font-size: clamp(24px, 21px + 0.8vw, 30px); line-height: 1.1; }
.scheda2__cosa p { max-width: 36rem; }
.scheda2__colonna > .dettagli { background: var(--bianco); border: 1px solid var(--filetto); }
.scheda2__locandina .scheda__immagine--viva { display: none; }
.scheda2__scarica { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 14px 16px; border: 1px solid var(--filetto); border-radius: var(--r-biglietto); color: var(--inchiostro); text-decoration: none; }
.scheda2__scarica strong { display: block; font-family: var(--f-segno); font-weight: 800; font-size: 18px; }
.scheda2__scarica span span { display: block; margin-top: 2px; font-size: 16px; color: var(--orario); }
.scheda2__scarica:hover strong { text-decoration: underline; text-underline-offset: 4px; }
.scheda2__scarica .ico { width: 22px; height: 22px; }
@media (min-width: 1024px) {
  .scheda2__locandina .scheda__immagine--viva { display: block; max-width: 420px; margin-bottom: 12px; }
}
/* sul telefono il solo pulsante principale resta in basso */
.scheda2__agganciata { position: fixed; left: 0; right: 0; bottom: 0; z-index: 5; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); background: var(--bianco); border-top: 1px solid var(--filetto); box-shadow: 0 -6px 16px rgba(29, 48, 72, 0.08); }
.scheda2__agganciata .pulsante { width: 100%; justify-content: center; }
@media (min-width: 1024px) { .scheda2__agganciata { display: none; } }
@media (max-width: 1023px) { body:has(.scheda2__agganciata) .piede { padding-bottom: 88px; } }

/* ---------- P2 Catalogo corto: i corsi online della sicurezza a righe, per figura (schizzo approvato il 21/10/2026) ---------- */
.righe-figure { margin-top: 40px; }
/* dove i biglietti sono in sottogriglia (stile.css) l'ultima riga ha un margine sotto che si mangia parte dello spazio: lo si rimette */
@supports (grid-template-rows: subgrid) { @media (min-width: 720px) { .griglia-biglietti + .righe-figure { margin-top: 64px; } } }
.righe-figure__titolo { display: flex; align-items: center; gap: 10px; margin: 0; font-family: var(--f-segno); font-weight: 800; font-size: clamp(24px, 21px + 0.8vw, 28px); }
.righe-figure__titolo .ico { width: 28px; height: 28px; }
.righe-figure__frase { margin: 8px 0 0; max-width: 36rem; color: var(--orario); }
.righe-figure__gruppo { margin-top: 28px; }
.righe-figure__gruppo h4 { margin: 0 0 8px; font-family: var(--f-segno); font-weight: 800; font-size: 20px; }
.righe-figure__guida { margin: 0 0 12px; max-width: 36rem; font-size: 16px; color: var(--orario); }
.righe-figure__gruppo:not(:has(.righe-corso > li:not([hidden]))) { display: none; }
.righe-figure:not(:has(.righe-corso > li:not([hidden]))) { display: none; }
.righe-corso { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--filetto); }
.righe-corso > li { border-bottom: 1px solid var(--filetto); }
.riga-corso { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "nome freccia" "dati prezzo"; gap: 4px 16px; align-items: baseline; padding: 14px 0; color: var(--inchiostro); text-decoration: none; }
.riga-corso__nome { grid-area: nome; font-family: var(--f-segno); font-weight: 700; font-size: 18px; line-height: 1.25; }
.riga-corso__dati { grid-area: dati; display: inline-flex; align-items: center; gap: 6px; font-size: 16px; color: var(--orario); }
.riga-corso__dati .ico { width: 18px; height: 18px; }
.riga-corso__prezzo { grid-area: prezzo; font-family: var(--f-segno); font-weight: 800; font-size: 18px; white-space: nowrap; font-variant-numeric: tabular-nums; text-align: right; }
.riga-corso__freccia { grid-area: freccia; justify-self: end; width: 22px; height: 22px; }
.riga-corso:hover .riga-corso__nome { text-decoration: underline; text-underline-offset: 4px; }
@media (min-width: 900px) {
  .riga-corso { grid-template-columns: minmax(0, 1fr) 12rem 9rem 24px; grid-template-areas: "nome dati prezzo freccia"; align-items: center; padding: 16px 0; }
}

/* ---------- P5 Corsi conclusi per linea (schizzo approvato il 21/10/2026) ---------- */
.gruppo-linea__testa { position: relative; display: flex; align-items: center; gap: 12px; margin: 0 0 4px; padding-top: 20px; font-family: var(--f-segno); font-weight: 800; font-size: 22px; }
.gruppo-linea__testa::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 8px; border-radius: 4px; background: var(--linea); box-shadow: inset 0 -2px 0 var(--linea-bordo, transparent); }
.gruppo-linea .righe-corso { border-top: 0; }
.riga-corso--archivio { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "nome vai" "dati vai"; align-items: center; }
.riga-corso--archivio .riga-corso__nome { color: var(--inchiostro); text-underline-offset: 4px; }
.riga-corso__vai { grid-area: vai; }
@media (min-width: 900px) { .riga-corso--archivio { grid-template-columns: minmax(0, 1fr) 16rem auto; grid-template-areas: "nome dati vai"; } }

/* ---------- Sollevamento al passaggio del mouse (richiesta di Simone, 21/10/2026: «hover lift, dove necessario») ---------- */
/* solo sugli oggetti cliccabili per intero (biglietti, tessere dei programmi, riquadri-collegamento con link, riga «Scaricala»);
   righe e pulsanti: niente sollevamento. Solo con un mouse vero; con «riduci movimento» resta l'ombra, senza spostamento. */
@media (hover: hover) and (pointer: fine) {
  .griglia-biglietti .biglietto, .programma-tessera, .tessera-link:has(a), .scheda2__scarica, .mestiere-tessera {
    transition: transform 220ms cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 220ms cubic-bezier(0.2, 0.8, 0.2, 1);
  }
  .griglia-biglietti .biglietto:hover, .programma-tessera:hover, .tessera-link:has(a):hover, .mestiere-tessera:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 24px rgba(29, 48, 72, 0.12), 0 2px 6px rgba(29, 48, 72, 0.08);
  }
  .scheda2__scarica:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(29, 48, 72, 0.10); }
  /* premuto: torna giù, così il clic si sente */
  .griglia-biglietti .biglietto:active, .programma-tessera:active, .tessera-link:has(a):active, .mestiere-tessera:active, .scheda2__scarica:active { transform: translateY(0); box-shadow: 0 2px 6px rgba(29, 48, 72, 0.10); transition-duration: 80ms; }
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: reduce) {
  .griglia-biglietti .biglietto:hover, .programma-tessera:hover, .tessera-link:has(a):hover, .mestiere-tessera:hover, .scheda2__scarica:hover { transform: none; }
}

/* =====================================================================
 * M Sicurezza per mestiere (scelta di Simone del 21/10/2026: tabellone + «la tua linea»)
 * ===================================================================== */
.mestieri-linea { display: flex; align-items: center; gap: 12px; margin: 0 0 12px; font-family: var(--f-segno); font-weight: 700; font-size: 18px; }
.mestieri-linea span:last-child { padding-top: 3px; }
.mestieri-pagina .intestazione h1, .mestiere-testa h1 { max-width: 20ch; font-size: clamp(32px, 22px + 2.6vw, 54px); line-height: 1.04; letter-spacing: -0.015em; text-wrap: balance; }
/* il segno del mestiere: quadrato bianco bordato d'inchiostro, diverso dalla tessera piena della linea */
.segno { display: grid; place-items: center; flex: none; width: 44px; height: 44px; border: 2px solid var(--inchiostro); border-radius: var(--r-piccolo); background: var(--bianco); color: var(--inchiostro); }
.segno .ico { width: 26px; height: 26px; }
.segno--pieno { background: var(--banchina); border-color: var(--banchina); }
.segno--64 { width: 64px; height: 64px; border-width: 3px; }
.segno--64 .ico { width: 38px; height: 38px; }

.cerca-mestiere { margin-top: 24px; max-width: 40rem; }
.cerca-mestiere__etichetta { display: block; margin-bottom: 8px; font-family: var(--f-segno); font-weight: 800; font-size: 22px; }
.cerca-mestiere__riga { display: flex; gap: 8px; }
.cerca-mestiere input { flex: 1; min-width: 0; min-height: 56px; padding: 0 16px; border: 2px solid var(--inchiostro); border-radius: var(--r-piccolo); font: inherit; font-size: 18px; color: var(--inchiostro); background: var(--bianco); }
.cerca-mestiere input::placeholder { color: var(--orario); opacity: 1; }
.cerca-mestiere .pulsante { min-width: 56px; min-height: 56px; padding: 0; justify-content: center; }
.cerca-mestiere .pulsante .ico { width: 24px; height: 24px; margin: 0; }
.cerca-mestiere .risultati { margin: 8px 0 0; min-height: 1.4em; }

.mestieri-subito { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 16px; align-items: center; margin-top: 8px; padding: 16px; border: 1px solid var(--filetto); border-radius: var(--r-biglietto); color: var(--inchiostro); text-decoration: none; background: var(--bianco); }
.mestieri-subito strong { display: block; font-family: var(--f-segno); font-weight: 800; font-size: 19px; line-height: 1.2; }
.mestieri-subito__testo > span { display: block; margin-top: 4px; font-size: 16px; color: var(--orario); }
.mestieri-subito:hover strong { text-decoration: underline; text-underline-offset: 4px; }
.mestieri-subito > .ico { width: 22px; height: 22px; }

/* il tabellone */
.tabellone { margin-top: var(--sezione); }
.tabellone__intesta { display: none; }
.tabellone__gruppo { margin-top: 8px; }
.tabellone__gruppo[hidden] { display: none; }
.tabellone__gruppo > summary { position: relative; display: flex; align-items: baseline; gap: 12px; min-height: 56px; padding: 22px 0 10px; list-style: none; cursor: pointer; }
.tabellone__gruppo > summary::-webkit-details-marker { display: none; }
/* striscia della linea gialla, con il bordo ocra come le strisce dei biglietti */
.tabellone__gruppo > summary::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 8px; border-radius: 4px; background: var(--linea); box-shadow: inset 0 -2px 0 var(--linea-bordo, transparent); }
.tabellone__nome { font-family: var(--f-segno); font-weight: 800; font-size: 24px; line-height: 1.15; }
.tabellone__n { font-size: 16px; color: var(--orario); }
.tabellone__apri { width: 22px; height: 22px; margin-left: auto; align-self: center; transition: transform 0.2s cubic-bezier(0.2, 0.8, 0.2, 1); }
.tabellone__gruppo[open] .tabellone__apri { transform: rotate(180deg); }
.tabellone__righe { list-style: none; margin: 0 0 16px; padding: 0; }
.tabellone__righe > li[hidden] { display: none; }
.tabellone__riga { display: grid; grid-template-columns: 44px minmax(0, 1fr); grid-template-areas: "segno nome" "segno risposta"; column-gap: 16px; row-gap: 6px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--filetto); color: var(--inchiostro); text-decoration: none; }
.tabellone__riga .segno { grid-area: segno; align-self: start; }
.tabellone__mestiere { grid-area: nome; font-family: var(--f-segno); font-weight: 700; font-size: 19px; line-height: 1.2; }
.tabellone__cosa { display: block; margin-top: 2px; font-family: var(--f-lettura); font-weight: 400; font-size: 16px; line-height: 1.35; color: var(--orario); }
.tabellone__risposta { grid-area: risposta; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 20px; }
.tabellone__ore { font-size: 16px; white-space: nowrap; }
.tabellone__ore b { font-family: var(--f-segno); font-weight: 900; font-size: 30px; line-height: 1; font-variant-numeric: tabular-nums; }
.tabellone__dove { display: inline-flex; align-items: baseline; gap: 6px; font-size: 16px; line-height: 1.25; }
.tabellone__dove .ico { width: 18px; height: 18px; align-self: center; }
.tabellone__riga:hover .tabellone__mestiere { text-decoration: underline; text-underline-offset: 4px; }
.tabellone__orientativo { margin: 16px 0 0; font-size: 16px; color: var(--orario); }
.mestieri-vuoto { margin: 16px 0 0; padding: 16px; border: 1px solid var(--filetto); border-radius: var(--r-biglietto); }
@media (min-width: 900px) {
  .tabellone__intesta { display: grid; grid-template-columns: 44px minmax(0, 1fr) 11rem 17rem; column-gap: 24px; padding-bottom: 8px; font-family: var(--f-segno); font-weight: 700; font-size: 16px; color: var(--orario); }
  .tabellone__intesta span:first-child { grid-column: 1 / 3; }
  .tabellone__riga { grid-template-columns: 44px minmax(0, 1fr) 11rem 17rem; grid-template-areas: "segno nome ore dove"; column-gap: 24px; padding: 16px 0; }
  .tabellone__riga .segno { align-self: center; }
  .tabellone__risposta { display: contents; }
  .tabellone__ore { grid-area: ore; }
  .tabellone__ore b { font-size: 36px; }
  .tabellone__dove { grid-area: dove; align-self: center; }
  .tabellone__etichetta { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}

/* aziende e mestieri che mancano */
.mestieri-coppia { display: grid; gap: 16px; margin-block: var(--sezione); }
@media (min-width: 900px) { .mestieri-coppia { grid-template-columns: 3fr 2fr; align-items: start; } }
.pannello-linea { position: relative; overflow: hidden; padding: 32px 24px 24px; border: 1px solid var(--filetto); border-radius: var(--r-biglietto); background: var(--bianco); }
.pannello-linea::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 8px; background: var(--linea, transparent); }
.pannello-linea h2 { margin: 16px 0 8px; font-family: var(--f-segno); font-weight: 800; font-size: 24px; line-height: 1.15; }
.pannello-linea--quieto h2 { margin-top: 0; }
.pannello-linea--quieto::before { display: none; }
.pannello-linea p { margin: 0 0 20px; max-width: 34rem; }

/* pagina del mestiere: «la tua linea» */
.linea-mestiere { display: grid; gap: 32px; padding-bottom: var(--sezione); }
@media (min-width: 1024px) {
  .linea-mestiere { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 64px; align-items: start; }
  .linea-mestiere__b { position: sticky; top: 24px; padding-top: 32px; }
}
.mestiere-testa { display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "segno linea" "segno titolo" "segno cosa"; gap: 0 20px; align-items: start; padding-top: 8px; }
.mestiere-testa .segno { grid-area: segno; margin-top: 4px; }
.mestiere-testa .mestieri-linea { grid-area: linea; }
.mestiere-testa h1 { grid-area: titolo; margin: 0; }
.mestiere-testa__cosa { grid-area: cosa; margin: 12px 0 0; max-width: 34rem; font-size: var(--t-corpo); line-height: 1.5; color: var(--orario); }
@media (max-width: 599px) {
  .mestiere-testa { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "linea segno" "titolo titolo" "cosa cosa"; gap: 8px 16px; }
  .mestiere-testa .segno { margin: 0; }
  .mestiere-testa .mestieri-linea { align-self: center; margin: 0; }
}
.dove-lavori fieldset { margin: 32px 0 0; padding: 0; border: 0; }
.dove-lavori legend { margin-bottom: 12px; padding: 0; font-family: var(--f-segno); font-weight: 800; font-size: 24px; }
.dove-lavori__scelta { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 14px; align-items: start; margin-bottom: 8px; padding: 16px; border: 2px solid var(--filetto); border-radius: var(--r-biglietto); cursor: pointer; background: var(--bianco); font-family: var(--f-segno); font-weight: 700; font-size: 18px; line-height: 1.25; }
.dove-lavori__scelta input { width: 24px; height: 24px; margin: 0; accent-color: var(--inchiostro); }
.dove-lavori__scelta:hover { border-color: var(--orario); }
.dove-lavori__scelta:has(input:checked) { border-color: var(--inchiostro); background: var(--banchina); }
.dove-lavori__scelta:has(input:focus-visible) { outline: 3px solid var(--inchiostro); outline-offset: 2px; }
.linea-mestiere__titolo { margin: 40px 0 16px; font-family: var(--f-segno); font-weight: 800; font-size: clamp(24px, 21px + 0.8vw, 30px); }
/* il tracciato: una linea della metropolitana in inchiostro, con tre fermate */
.tracciato { list-style: none; margin: 0; padding: 0; }
.fermata { position: relative; padding: 0 0 32px 60px; }
.fermata::before { content: ""; position: absolute; left: 17px; top: 14px; bottom: -14px; width: 8px; border-radius: 4px; background: var(--inchiostro); }
.fermata:last-child::before { display: none; }
.fermata::after { content: ""; position: absolute; left: 3px; top: 0; width: 36px; height: 36px; box-sizing: border-box; border: 7px solid var(--inchiostro); border-radius: 50%; background: var(--bianco); }
.fermata--oggi::after, .fermata--specifica:has(.fermata__dato:not(.dove-0):not([hidden]))::after { background: var(--inchiostro); }
.fermata__quando { margin: 0; padding-top: 6px; font-family: var(--f-segno); font-weight: 700; font-size: 16px; color: var(--orario); }
.fermata h3 { margin: 2px 0 6px; font-family: var(--f-segno); font-weight: 800; font-size: 24px; line-height: 1.15; }
.fermata__dato { display: flex; gap: 10px; align-items: flex-start; margin: 0; max-width: 34rem; font-size: 18px; line-height: 1.45; }
.fermata__dato[hidden] { display: none; }
.fermata__dato .ico { width: 22px; height: 22px; flex: none; margin-top: 3px; }
.linea-mestiere__a-parte { margin: 0; padding-top: 16px; border-top: 1px solid var(--filetto); font-size: 16px; color: var(--orario); max-width: 36rem; }
.in-breve { padding: 24px; border-radius: var(--r-biglietto); background: var(--banchina); }
.in-breve h2 { margin: 0 0 16px; font-family: var(--f-segno); font-weight: 800; font-size: 24px; }
.in-breve__numeri { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 0 0 20px; }
.in-breve__numeri dt { font-family: var(--f-segno); font-weight: 700; font-size: 16px; color: var(--orario); }
.in-breve__numeri dd { margin: 4px 0 0; }
.in-breve__numeri b { font-family: var(--f-segno); font-weight: 900; font-size: 44px; line-height: 1; font-variant-numeric: tabular-nums; }
.in-breve__numeri b[hidden] { display: none; }
.in-breve__numeri b.in-breve__parola { display: block; font-size: 24px; line-height: 1.15; } /* una parola al posto del numero (ispezione del 23/10/2026) */
.in-breve__corso { margin: 0 0 16px; padding-top: 16px; border-top: 1px solid var(--filetto); }
.in-breve__corso a { font-family: var(--f-segno); font-weight: 800; font-size: 19px; color: var(--inchiostro); text-underline-offset: 4px; }
.in-breve__corso span { display: block; margin-top: 4px; font-size: 16px; color: var(--orario); }
.in-breve__vai { width: 100%; justify-content: center; }
.in-breve__vai + .in-breve__vai { margin-top: 12px; }
.in-breve__vai .ico { margin-right: 8px; }
.in-breve__nota { margin: 16px 0 0; font-size: 16px; color: var(--orario); }
.in-breve__aziende { margin: 16px 0 0; font-size: 16px; }
.mestiere-preparazione { max-width: 46rem; margin-block: 0 var(--sezione); padding-top: 32px; border-top: 1px solid var(--filetto); }
.mestiere-preparazione h2 { margin: 0 0 8px; font-family: var(--f-segno); font-weight: 800; font-size: 24px; }

/* riquadro «Formazione obbligatoria per legge» (richiesta di Simone del 21/10/2026): subito sotto il titolo, in inchiostro */
.obbligo { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; align-items: start; max-width: 44rem; margin: 20px 0 0; padding: 16px 18px; border: 2px solid var(--inchiostro); border-radius: var(--r-biglietto); background: var(--bianco); font-size: 17px; line-height: 1.45; }
.obbligo .ico { width: 26px; height: 26px; margin-top: 1px; }
.obbligo strong { font-family: var(--f-segno); font-weight: 800; font-size: 19px; }
.obbligo--mestiere { margin-top: 20px; }
.famiglia__sottotitolo { margin-top: 32px; }
.in-breve__email { margin: 8px 0 0; text-align: center; }
.in-breve__email a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-family: var(--f-segno); font-weight: 700; font-size: 17px; color: var(--inchiostro); text-underline-offset: 4px; }
/* «A pagamento»: i più richiesti, poi qualifiche e corsi in aula, poi l'elenco completo (richiesta di Simone del 21/10/2026);
   ogni gruppo sparisce con il suo titolo quando il filtro non gli lascia nessun corso */
.famiglia__gruppo:not(:has(.griglia-biglietti > li:not([hidden]))) { display: none; } /* solo i biglietti: le voci interne (etichette, dati) non si nascondono mai */
.famiglia__gruppo + .famiglia__gruppo, .famiglia__gruppo + .righe-figure { margin-top: 40px; }
.famiglia__sottotitolo--primo { margin-top: 24px; }
.famiglia__gruppo .griglia-biglietti { margin-top: 16px; }
/* dove i biglietti sono in sottogriglia l'ultima riga si mangia parte dello spazio: stesso rimedio dei corsi online */
@supports (grid-template-rows: subgrid) { @media (min-width: 720px) { .famiglia__gruppo + .famiglia__gruppo, .famiglia__gruppo + .righe-figure { margin-top: 64px; } } }

/* riquadro dei mestieri in home: tutto un tasto (richiesta di Simone del 21/10/2026); stessi fondo e striscia di prima */
.richiamo-mestieri--tasto { margin: 0; color: var(--inchiostro); text-decoration: none; cursor: pointer; }
.richiamo-mestieri--tasto h2 { font-size: clamp(22px, 19px + 0.8vw, 28px); line-height: 1.15; text-wrap: balance; }
.richiamo-mestieri__frase { display: block; max-width: 34rem; color: var(--inchiostro); }
.richiamo-mestieri__vai { justify-self: start; pointer-events: none; }
.richiamo-mestieri--tasto:hover h2 { text-decoration: underline; text-underline-offset: 4px; }
.richiamo-mestieri--tasto:focus-visible { outline: 3px solid var(--inchiostro); outline-offset: 3px; }
@media (min-width: 900px) { .richiamo-mestieri--tasto { grid-template-columns: minmax(0, 1fr) auto; } .richiamo-mestieri__vai { justify-self: end; } }
@media (hover: hover) and (pointer: fine) {
  .richiamo-mestieri--tasto { transition: transform 220ms cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 220ms cubic-bezier(0.2, 0.8, 0.2, 1); }
  .richiamo-mestieri--tasto:hover { transform: translateY(-4px); box-shadow: 0 10px 24px rgba(29, 48, 72, 0.12), 0 2px 6px rgba(29, 48, 72, 0.08); }
  .richiamo-mestieri--tasto:active { transform: translateY(0); box-shadow: 0 2px 6px rgba(29, 48, 72, 0.10); transition-duration: 80ms; }
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: reduce) { .richiamo-mestieri--tasto:hover { transform: none; } }

/* Chi siamo senza la frase sotto il titolo (Simone, 21/10/2026): la storia è il testo d'apertura e sta subito sotto il titolo */
.intestazione + .testo-breve { margin-top: 0; }
.intestazione:not(:has(.intestazione__frase)):not(:has(.intestazione__pulsanti)) { padding-bottom: 16px; }

/* menu a sei voci (Corsi, Sicurezza, Aziende, Lavora con noi, Chi siamo, Contatti; Simone, 21/10/2026): sul computer la ricerca
   esce dalla testata (stile.css la nascondeva già fra 1024 e 1279 px), così le voci stanno su una riga; la ricerca resta in cima
   al catalogo, nella pagina dei mestieri e nel menu del telefono */
@media (min-width: 1024px) { .testata .menu .cerca { display: none; } }

/* riquadro dei mestieri in home, versione 2 (Simone, 21/10/2026: «ripensa a questo tasto»): testo a sinistra, i sei mestieri a destra */
.richiamo-mestieri--tasto { display: grid; gap: 24px; padding: 32px 24px 24px; align-items: center; }
.richiamo-mestieri--tasto .richiamo-mestieri__testo { display: grid; gap: 12px; justify-items: start; }
.richiamo-mestieri__linea { display: flex; align-items: center; gap: 12px; font-family: var(--f-segno); font-weight: 700; font-size: 18px; }
.richiamo-mestieri--tasto h2 { margin: 0; max-width: 18ch; font-size: clamp(26px, 20px + 1.4vw, 36px); line-height: 1.08; letter-spacing: -0.01em; }
.richiamo-mestieri--tasto .richiamo-mestieri__frase { max-width: 32rem; font-size: var(--t-corpo); line-height: 1.5; }
.richiamo-mestieri--tasto .richiamo-mestieri__vai { margin-top: 8px; justify-self: start; }
.richiamo-mestieri__sei { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px 12px; }
.richiamo-mestieri__mestiere { display: grid; justify-items: center; gap: 8px; text-align: center; font-family: var(--f-segno); font-weight: 700; font-size: 16px; line-height: 1.2; }
.segno--56 { width: 56px; height: 56px; }
.segno--56 .ico { width: 32px; height: 32px; }
.richiamo-mestieri__altri { grid-column: 1 / -1; justify-self: center; font-size: 16px; color: var(--orario); }
/* sul telefono: titolo e frase, poi i sei mestieri, e per ultimo il pulsante */
@media (max-width: 899px) {
  .richiamo-mestieri--tasto { gap: 12px; }
  .richiamo-mestieri--tasto .richiamo-mestieri__testo { display: contents; }
  .richiamo-mestieri__sei { order: 1; margin-block: 12px; }
  .richiamo-mestieri--tasto .richiamo-mestieri__vai { order: 2; width: 100%; justify-content: center; margin-top: 0; }
}
@media (min-width: 900px) {
  .richiamo-mestieri--tasto { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 48px; padding: 40px; }
  .richiamo-mestieri--tasto .richiamo-mestieri__vai { justify-self: start; }
}

/* annunci di «Lavora con noi»: «Candidati» sempre in fondo al riquadro, alla stessa altezza */
.posizione { display: flex; flex-direction: column; height: 100%; }
.posizione > .pulsante { margin-top: auto; align-self: flex-start; }
.posizione > .pulsante:not(:first-child) { margin-top: auto; }
.posizioni > li { display: flex; }
.posizioni > li > .posizione { flex: 1; }
.posizione__requisiti { margin-bottom: 16px; }

/* ---------- P4 «I percorsi» (scheda JTF, schizzo approvato il 21/10/2026) ---------- */
.percorsi { margin-block: var(--sezione); }
.percorsi h2 { margin: 0; font-family: var(--f-segno); font-weight: 800; font-size: clamp(24px, 21px + 0.8vw, 30px); }
.percorsi__frase { margin: 8px 0 0; color: var(--orario); }
.percorsi__elenco { list-style: none; display: grid; gap: 32px 24px; margin: 24px 0 0; padding: 0; }
@media (min-width: 720px) { .percorsi__elenco { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .percorsi__elenco { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.percorsi__gruppo .foto { aspect-ratio: 3 / 2; border-radius: 8px; overflow: hidden; }
.percorsi__gruppo h3 { margin: 14px 0 6px; font-family: var(--f-segno); font-weight: 800; font-size: 22px; }
.percorsi__gruppo ul { margin: 0; padding-left: 1.2em; list-style: disc; }
.percorsi__gruppo li + li { margin-top: 4px; } /* «percorso» era già usato dai vecchi stili dei mestieri */

/* ---------- C8 Pagine di una linea: banda e tessera in testa (Aziende, Portale servizi) ---------- */
.banda-linea { height: 12px; background: var(--linea); box-shadow: inset 0 -2px 0 var(--linea-bordo, transparent); }
.intestazione__linea { display: flex; align-items: center; gap: 12px; margin: 0 0 12px; font-family: var(--f-segno); font-weight: 700; font-size: 18px; }
.intestazione__linea span:last-child { padding-top: 3px; }

/* ---------- Pagina non trovata utile (21/10/2026): le quattro linee come righe ---------- */
.linee-elenco { list-style: none; margin: 16px 0 0; padding: 0; border-top: 1px solid var(--filetto); max-width: 40rem; }
.linee-elenco a { display: flex; align-items: center; gap: 14px; min-height: 64px; border-bottom: 1px solid var(--filetto); font-family: var(--f-segno); font-weight: 700; font-size: 19px; color: var(--inchiostro); text-decoration: none; }
.linee-elenco a > .ico { margin-left: auto; width: 22px; height: 22px; }
.linee-elenco a:hover span:not(.tessera) { text-decoration: underline; text-underline-offset: 4px; }
.linee-elenco__altro { margin: 24px 0 0; font-family: var(--f-segno); font-weight: 700; font-size: 17px; }
.linee-elenco__altro a { color: var(--inchiostro); text-underline-offset: 4px; }

/* ---------- «È gratis per me?» (21/10/2026) ---------- */
.gratis__griglia { display: grid; gap: 24px; padding-bottom: 8px; }
@media (min-width: 1024px) { .gratis__griglia { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 48px; align-items: start; } }
.gratis__domanda fieldset { margin-top: 8px; }
.gratis__risposta { min-height: 120px; }
@media (min-width: 1024px) { .gratis__risposta { position: sticky; top: 24px; margin-top: 60px; } }
.gratis__vuota { margin: 0; padding: 24px; border: 1px solid var(--filetto); border-radius: var(--r-biglietto); color: var(--orario); }
.gratis__esito { display: none; position: relative; overflow: hidden; padding: 32px 24px 24px; border-radius: var(--r-biglietto); background: var(--banchina); }
.gratis__esito::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 10px; background: var(--linea); box-shadow: inset 0 -2px 0 var(--linea-bordo, transparent); }
.gratis__testo { margin: 4px 0 20px; font-size: 19px; line-height: 1.5; max-width: 34rem; }
.gratis:has(input:checked) .gratis__vuota { display: none; }
.gratis:has(#gratis-ragazzi:checked) .gratis__esito--ragazzi { display: block; }
.gratis:has(#gratis-lavoro:checked) .gratis__esito--lavoro { display: block; }
.gratis:has(#gratis-cassa:checked) .gratis__esito--cassa { display: block; }
.gratis:has(#gratis-dipendente:checked) .gratis__esito--dipendente { display: block; }
.gratis:has(#gratis-azienda:checked) .gratis__esito--azienda { display: block; }

/* ---------- P11 Contatti (21/10/2026): pittogrammi di «Come arrivare», numero sotto il titolo ---------- */
.come-arrivare { padding-left: 0; list-style: none; gap: 20px; }
.come-arrivare > li { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 16px; align-items: start; }
.come-arrivare__segno { width: 32px; height: 32px; fill: var(--inchiostro); margin-top: -2px; }
.intestazione + .segreteria:has(.sr) { margin-top: 16px; }

/* ---------- C14 Ritmo (21/10/2026): righe di lettura entro circa 65 caratteri ---------- */
.testo-breve > p, .pagina-testo > p, .privacy-voci dd, .elenco-link > li { max-width: 50ch; }
.intestazione__frase { max-width: 36rem; }
.linea-mestiere__a-parte { max-width: 30rem; }
/* corsi conclusi: il nome è un collegamento, almeno 24 px di altezza anche su una riga sola */
.riga-corso--archivio .riga-corso__nome { display: inline-block; padding-block: 3px; }

/* ---------- C11 Programmi con la tessera (21/10/2026) ---------- */
.programma-tessera__linea { display: flex; align-items: center; gap: 10px; font-family: var(--f-segno); font-weight: 700; font-size: 16px; margin-bottom: 4px; }
.programma-tessera__corsi--nessuno { color: var(--orario); font-weight: 400; }


/* ---------- C12 Moduli allineati al titolo (21/10/2026): la larghezza stretta va sul contenuto, non sul contenitore (che si centrerebbe) ---------- */
.contenitore.candidatura, .contenitore.modulo-richiesta { max-width: calc(var(--larghezza) + 2 * var(--margine)); }
.contenitore.candidatura > *, .contenitore.modulo-richiesta > * { max-width: 44rem; }
.modulo-gruppo legend { font-weight: 800; font-size: 20px; }


/* ---------- Corsi in diretta a ciclo continuo (21/10/2026): «Le date» e «Quale modulo serve» nella scheda ---------- */
.date-ciclo, .quale-modulo { display: grid; gap: 12px; }
.date-ciclo h2, .quale-modulo h2 { margin: 0; }
.quale-modulo p { margin: 0; }
.quale-modulo .dove-lavori fieldset { margin-top: 0; }
.quale-modulo .dove-lavori__scelta:has(input:checked), .date-ciclo .dove-lavori__scelta:has(input:checked) { border-color: var(--inchiostro); background: var(--banchina); }
.quale-modulo__esito { display: none; padding: 22px 16px 16px; border-radius: var(--r-biglietto); background: var(--banchina); box-shadow: inset 0 6px 0 var(--linea); }
.quale-modulo:has(#titolo-studio-media:checked) .quale-modulo__esito--media,
.quale-modulo:has(#titolo-studio-diploma:checked) .quale-modulo__esito--diploma,
.quale-modulo:has(#titolo-studio-laurea:checked) .quale-modulo__esito--laurea { display: block; }
.quale-modulo__nota, .date-ciclo__nota { color: var(--orario); font-size: 16px; }
.date-ciclo__mese { margin: 4px 0 0; font-size: 18px; color: var(--orario); }
.date-ciclo__elenco { list-style: none; margin: 0; padding: 0; display: grid; border: 1px solid var(--filetto); border-radius: var(--r-biglietto); overflow: hidden; }
.date-ciclo__data { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 16px; padding: 14px 16px; border-top: 1px solid var(--filetto); }
.date-ciclo__data:first-child { border-top: 0; }
.date-ciclo__data strong { display: block; font-family: var(--f-segno); }
.date-ciclo__data--piena { color: var(--orario); }
.date-ciclo__stato { display: grid; justify-items: start; gap: 2px; }
@media (min-width: 640px) { .date-ciclo__stato { justify-items: end; text-align: right; margin-left: auto; } } /* sempre a destra (giuria G1-03) */
.date-ciclo__esito { display: inline-flex; align-items: center; gap: 6px; font-family: var(--f-segno); font-weight: 800; }
.date-ciclo__stato a { font-size: 16px; }
.date-ciclo__regola { margin: 0; padding: 14px 16px; border-left: 4px solid var(--inchiostro); background: var(--banchina); border-radius: 0 6px 6px 0; }
.date-ciclo__nota { margin: 0; }
.date-ciclo__data > span:first-child { min-width: 0; flex: 1 1 16rem; }
.date-ciclo__data > span:first-child > span { display: block; }

/* ---------- Locandina dei corsi a ciclo (22/10/2026): «Partenze / ogni 3 / settimane», senza data ---------- */
.data--ciclo .data__mese:first-child { margin-top: 0; }
.data--ciclo .data__parola { padding-top: 4px; white-space: nowrap; }
.data--ciclo .data__parola + .data__mese { margin-top: 4px; }

/* ---------- «Tutti i corsi» in evidenza nella home (22/10/2026) ---------- */
.pulsante--invito { min-height: 56px; padding-inline: 28px; font-size: 18px; }
.fascia__azione:has(.pulsante--invito) { text-align: center; } /* centrato e largo (giuria G1-14) */
.pulsante--invito { min-width: min(16rem, 100%); justify-content: center; }
.pulsante--invito .ico { transition: transform 200ms ease-out; }
.pulsante--invito:hover .ico, .pulsante--invito:focus-visible .ico { transform: translateX(5px); }
@media (prefers-reduced-motion: no-preference) {
  .pulsante--invito.in-vista { animation: invito-onda 1400ms ease-out 400ms 2; }
  .pulsante--invito.in-vista .ico { animation: invito-freccia 1400ms ease-in-out 400ms 2; }
}
@keyframes invito-onda {
  0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--inchiostro) 45%, transparent); }
  70% { box-shadow: 0 0 0 16px color-mix(in srgb, var(--inchiostro) 0%, transparent); }
  100% { box-shadow: 0 0 0 0 transparent; }
}
@keyframes invito-freccia { 0%, 100% { transform: none; } 40% { transform: translateX(6px); } }

/* Slide dei più richiesti: i primi nomi sotto l'etichetta */
.slide__elenco { margin: 0; font-size: 16px; line-height: 1.35; }
@media (max-width: 719px) { .slide__elenco { display: none; } }

/* ---------- Prenota (22/10/2026, dagli schizzi approvati): modulo a sezioni impilate, riepilogo accanto ---------- */
.prenota__corso { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 14px; align-items: start; padding: 16px; background: var(--banchina); border-radius: var(--r-biglietto); }
.prenota__corso p { margin: 0; }
.prenota__corso-titolo { font-family: var(--f-segno); font-weight: 800; font-size: 20px; line-height: 1.25; }
.prenota__corso-titolo a { color: inherit; }
.prenota__griglia { display: grid; gap: 32px; padding-block: 32px 64px; }
@media (min-width: 1024px) { .prenota__griglia { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: 48px; align-items: start; } }
.prenota__modulo { display: grid; gap: 32px; margin: 0; min-width: 0; }
.prenota__prezzi { display: grid; gap: 14px; }
.prenota__prezzi p { margin: 0; }
.prenota__prezzi-righe { margin: 0; display: grid; border: 1px solid var(--filetto); border-radius: var(--r-biglietto); }
.prenota__prezzi-righe div { display: flex; flex-direction: column; gap: 4px; padding: 12px 16px; border-top: 1px solid var(--filetto); }
.prenota__prezzi-righe div:first-child { border-top: 0; }
.prenota__prezzi-righe dt { font-family: var(--f-segno); font-weight: 700; }
.prenota__prezzi-righe dd { margin: 0; }
.prenota__prezzi-righe strong { font-family: var(--f-segno); font-size: 24px; font-weight: 900; }
.prenota__info { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; background: var(--banchina); border-left: 4px solid var(--inchiostro); border-radius: 0 6px 6px 0; }
.prenota__info .ico { flex: none; width: 24px; height: 24px; margin-top: 2px; }
.prenota__info p { margin: 0; }
.prenota__passo { margin: 0; padding: 0; border: 0; display: grid; gap: 14px; min-width: 0; }
.prenota__passo legend { display: flex; align-items: center; gap: 12px; padding: 0; margin-bottom: 14px; font-family: var(--f-segno); font-weight: 800; font-size: 22px; }
.prenota__n { display: inline-grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--inchiostro); color: var(--bianco); font-size: 18px; flex: none; }
.prenota__scelte { display: grid; gap: 8px; }
.prenota__scelte .dove-lavori__scelta { margin: 0; }
.prenota__scelte small { display: block; margin-top: 4px; font-family: var(--f-testo, inherit); font-weight: 400; font-size: 16px; color: var(--orario); }
.prenota__scelte .prenota__stato { font-family: var(--f-segno); font-weight: 700; color: var(--inchiostro); }
.prenota .dove-lavori__scelta:has(input:checked) { border-color: var(--inchiostro); background: var(--banchina); }
.prenota__piena { opacity: .6; }
@media (min-width: 640px) { .prenota__scelte--due { grid-template-columns: 1fr 1fr; } }
.prenota__percorso { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 6px; }
.prenota__percorso li { display: grid; gap: 2px; padding: 8px 12px; border: 1px solid var(--filetto); border-radius: 6px; }
.prenota__percorso li span:first-child { font-family: var(--f-segno); font-weight: 700; }
.prenota__percorso li span:last-child { color: var(--orario); }
.prenota__contatore { display: flex; align-items: center; gap: 8px; }
.prenota__tasto { width: 48px; height: 48px; border: 2px solid var(--inchiostro); border-radius: 50%; background: var(--bianco); color: var(--inchiostro); font: 800 24px/1 var(--f-segno); cursor: pointer; }
.prenota__tasto[hidden] { display: none; }
.prenota__contatore input { flex: 0 0 88px; width: 88px; height: 48px; text-align: center; font: 800 24px var(--f-segno); border: 2px solid var(--filetto); border-radius: 6px; }
.prenota__contatore-nota { font-family: var(--f-segno); font-weight: 700; }
.prenota__righe { list-style: none; margin: 0; padding: 0; display: grid; border: 1px solid var(--filetto); border-radius: var(--r-biglietto); overflow: hidden; }
.prenota__righe:empty { display: none; }
.prenota__righe li { display: flex; justify-content: space-between; gap: 12px; padding: 12px 16px; border-top: 1px solid var(--filetto); font-variant-numeric: tabular-nums; }
.prenota__righe li:first-child { border-top: 0; }
.prenota__righe li span:last-child { font-family: var(--f-segno); font-weight: 700; text-align: right; }
.prenota__righe em { font-style: normal; font-weight: 700; margin-left: 6px; }
.prenota__righe li.attivo { background: var(--banchina); box-shadow: inset 6px 0 0 var(--inchiostro); font-weight: 700; }
.prenota__persone { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.prenota__persone li { display: grid; gap: 10px; padding: 14px 16px; border: 1px solid var(--filetto); border-radius: var(--r-biglietto); }
.prenota__persone li[hidden] { display: none; }
.prenota__persone .modulo-campo { margin: 0; }
.prenota__chi { font-family: var(--f-segno); font-weight: 800; }
@media (min-width: 640px) { .prenota__persone li { grid-template-columns: 1fr 1fr; align-items: end; } .prenota__chi { grid-column: 1 / -1; } }
.prenota:has(#prenota-nomi-dopo:checked) :is(.prenota__persone, .prenota__solo-nomi) { display: none; }
.prenota__campi { display: grid; gap: 14px; }
.prenota .prenota__solo-privato { display: none; }
.prenota:has(#prenota-privato:checked) .prenota__solo-privato { display: grid; }
.prenota:has(#prenota-privato:checked) .prenota__solo-azienda { display: none; }
.prenota:has(#prenota-privato:checked) li.prenota__solo-privato { display: list-item; }
.prenota:not(:has(#pn-subito:checked)) li.prenota__se-subito { display: none; }
.prenota:has(#pn-subito:checked) li.prenota__se-non-subito { display: none; }
.prenota__sotto { margin: 8px 0 0; font-family: var(--f-segno); font-weight: 700; }
.prenota__facolt { font-weight: 400; color: var(--orario); }
.prenota__codice { display: grid; gap: 8px; }
.prenota__codice .modulo-campo, .prenota__codice .modulo-nota { margin: 0; }
.prenota__codice-riga { display: flex; gap: 8px; }
.prenota__codice-riga input { flex: 1 1 auto; min-width: 0; text-transform: uppercase; }
.prenota__codice-riga .pulsante[hidden] { display: none; }
.prenota__codice .modulo-nota:empty { display: none; }
.prenota__regole { display: grid; gap: 12px; }
.prenota__regole h2 { margin: 0; font-size: 24px; }
.prenota__regole p { margin: 0; }
.prenota__spunta { margin: 0; }
.prenota__spunta label { display: flex; gap: 10px; align-items: start; font-family: inherit; font-weight: 400; }
.prenota__spunta input { width: 24px; height: 24px; flex: none; margin: 0; accent-color: var(--inchiostro); }
.prenota__riepilogo { display: grid; gap: 16px; padding: 24px 20px; border: 2px solid var(--inchiostro); border-radius: var(--r-biglietto); }
@media (min-width: 1024px) { .prenota__riepilogo { position: sticky; top: 24px; } }
.prenota__riepilogo h2 { margin: 0; font-size: 24px; }
.prenota__riepilogo .modulo-nota { margin: 0; }
.prenota__quando { margin: 0; font-weight: 700; }
.prenota__quando:empty { display: none; }
.prenota__conto { margin: 0; display: grid; gap: 8px; font-variant-numeric: tabular-nums; }
.prenota__conto div { display: flex; justify-content: space-between; gap: 12px; }
.prenota__conto div[hidden] { display: none; }
.prenota__conto dd { margin: 0; font-family: var(--f-segno); font-weight: 700; text-align: right; }
.prenota__totale { padding-top: 12px; border-top: 1px solid var(--filetto); font-size: 22px; }
.prenota__totale :is(dt, dd) { font-family: var(--f-segno); font-weight: 800; }
.prenota__totale small, .prenota__barra small { font-size: 16px; font-weight: 600; }
.prenota__invia { width: 100%; justify-content: center; }
.prenota__dopo { margin: 0; padding-left: 20px; display: grid; gap: 6px; }
.prenota__barra { position: sticky; bottom: 0; z-index: 5; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 16px; background: var(--bianco); border-top: 1px solid var(--filetto); box-shadow: 0 -4px 16px rgb(0 0 0 / .08); }
.prenota__barra strong { font-family: var(--f-segno); font-size: 22px; }
@media (min-width: 1024px) { .prenota__barra { display: none; } }
/* al telefono la barra non copre il campo in cui si scrive (WCAG 2.4.11) e «Totale» sta sopra l'importo (giuria G3-03, G1-05) */
@media (max-width: 1023.98px) {
  html:has(.prenota__barra) { scroll-padding-bottom: 96px; }
  .prenota__barra > span { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 6px; line-height: 1.2; }
  .prenota__barra > span > small:first-child { flex-basis: 100%; }
}

/* ---------- «In primo piano» fra le iscrizioni aperte della home (22/10/2026) ---------- */
.primo-piano { margin-top: 24px; padding: 20px 16px 24px; border: 2px solid var(--inchiostro); border-radius: 12px; /* stili di riquadro più uniformi (giuria G1-07) */ background: var(--bianco); }
@media (min-width: 720px) { .primo-piano { padding: 24px 24px 28px; } }
.primo-piano__titolo, .primo-piano__altri { display: flex; align-items: center; gap: 10px; margin: 0 0 16px; font-size: 22px; }
.primo-piano__titolo .ico { width: 28px; height: 28px; flex: none; }
.primo-piano .griglia-biglietti { margin-top: 0; }
.primo-piano__altri { margin-top: 40px; }

/* ---------- Fondimpresa (22/10/2026) ---------- */
.fondi__tre { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }
@media (min-width: 900px) { .fondi__tre { grid-template-columns: repeat(3, 1fr); } }
.fondi__tre li { display: grid; gap: 8px; align-content: start; padding: 20px; border: 1px solid var(--filetto); border-radius: var(--r-biglietto); background: var(--bianco); }
.fondi__tre strong { font-family: var(--f-segno); font-size: 20px; line-height: 1.25; }
.fondi__nota { margin: 24px 0 0; max-width: 50ch; padding: 14px 16px; background: var(--banchina); border-left: 4px solid var(--inchiostro); border-radius: 0 6px 6px 0; }
.fondi__frase { margin: 0 0 24px; max-width: 50ch; }
.fondi__griglia { display: grid; gap: 32px; }
@media (min-width: 1024px) { .fondi__griglia { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: start; } }
.fondi__modulo { margin: 0; }
.fondi__scelte { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); }
.fondi__messaggio { display: grid; gap: 12px; }
.fondi__messaggio[hidden] { display: none; }
@media (min-width: 1024px) { .fondi__messaggio { position: sticky; top: 24px; } }
.fondi__etichetta { margin: 0; font-family: var(--f-segno); font-weight: 800; font-size: 22px; }
.fondi__foglio { padding: 20px; background: var(--bianco); border: 2px solid var(--inchiostro); border-radius: var(--r-biglietto); }
.fondi__oggetto { margin: 0 0 12px; font-weight: 700; overflow-wrap: anywhere; }
.fondi__foglio pre { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; font-size: 16px; line-height: 1.5; }
.fondi__azioni { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }
.fondi__messaggio .modulo-nota { margin: 0; }
.fondi__noi { margin: 0 0 16px; padding-left: 20px; display: grid; gap: 8px; }
.tessera-link__extra { margin: 12px 0 0; font-weight: 700; position: relative; }

/* Loghi dei programmi (22/10/2026): le strisce restano larghe, i loghi singoli (Fondimpresa, Selfiemployment) non si ingrandiscono */
.loghi__immagine { width: auto; max-width: min(100%, 760px); max-height: 72px; }
.locandina__loghi-immagine { width: auto; max-width: 100%; max-height: 48px; }
.pannello__pulsanti { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }

/* ---------- La tua prenotazione (link nell'email, 22/10/2026) ---------- */
.gestisci { display: grid; gap: 40px; }
/* come i moduli (C12): il contenitore resta largo e allineato al titolo, il contenuto stretto (giuria G1-08) */
.contenitore.gestisci { max-width: calc(var(--larghezza) + 2 * var(--margine)); }
.contenitore.gestisci > * { max-width: 46rem; }
.gestisci__riepilogo, .gestisci__sezione { display: grid; gap: 14px; }
.gestisci h2 { margin: 0; font-size: 24px; }
.gestisci p { margin: 0; }
.gestisci__dati { margin: 0; display: grid; border: 1px solid var(--filetto); border-radius: var(--r-biglietto); background: var(--bianco); }
.gestisci__dati div { display: grid; gap: 2px; padding: 10px 16px; border-top: 1px solid var(--filetto); }
.gestisci__dati div:first-child { border-top: 0; }
@media (min-width: 640px) { .gestisci__dati div { grid-template-columns: 12rem minmax(0, 1fr); gap: 16px; } }
.gestisci__dati dt { font-family: var(--f-segno); font-weight: 700; }
.gestisci__dati dd { margin: 0; }
.gestisci__modulo { display: grid; gap: 16px; margin: 0; }
/* Come si paga e quando si comincia, prima della prenotazione (ispezione del 23/10/2026) */
.biglietto-grande__paga { display: flex; gap: 8px; align-items: flex-start; margin: -8px 0 0; padding: 0 20px 24px; font-size: 16px; line-height: 1.5; }
@media (min-width: 1024px) { .biglietto-grande__paga { padding-inline: 32px; } }
/* modulo a parti: prezzo lungo nella scheda, «Per chi» e «Quanto» a metà come nel biglietto (giuria G1-02) */
.biglietto-grande > .matrice--modulo { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.biglietto-grande__paga .ico { flex: none; width: 20px; height: 20px; margin-top: 2px; }
.in-breve__paga { margin: 0; font-size: 16px; line-height: 1.5; }
/* «Paga adesso» con i pulsanti di PayPal (23/10/2026) */
.paga__pulsanti { max-width: 24rem; min-height: 112px; } /* lo spazio dei pulsanti, così la pagina non salta quando arrivano */
.paga .gestisci__dati strong { font-size: 22px; }
.paga__bonifico button { min-height: 24px; padding: 0; border: 0; background: none; font: inherit; color: inherit; text-decoration: underline; text-underline-offset: .15em; cursor: pointer; }
.paga__bonifico button:focus-visible { outline: 3px solid var(--inchiostro); outline-offset: 2px; }

/* «Ti serve anche l'HACCP» nelle pagine dei mestieri del cibo (22/10/2026) */
.haccp-mestiere { display: grid; gap: 12px; margin-top: 32px; padding: 20px; background: var(--bianco); border: 2px solid var(--inchiostro); border-radius: var(--r-biglietto); }
.haccp-mestiere h2 { margin: 0; font-size: 22px; }
.haccp-mestiere p { margin: 0; max-width: 50ch; }

/* Errori del modulo Prenota sotto il campo (giuria G3-02) e indirizzo per la fattura */
.prenota__errore { display: block; margin-top: 6px; color: #9B1C1C; font-weight: 700; font-size: 16px; }
.prenota [aria-invalid="true"] { border-color: #9B1C1C; box-shadow: 0 0 0 1px #9B1C1C; }
@media (min-width: 640px) { .prenota__indirizzo { grid-template-columns: 8rem minmax(0, 1fr) 6rem; } }
.prenota__codice-ricevuto { font-size: 20px; }
/* Credenziali dei portali (22/10/2026): l'iscrizione all'Albo si chiede solo al consulente del lavoro */
.modulo .richiesta__solo-consulente { display: none; }
.modulo:has(#sf-chi-consulente:checked) .richiesta__solo-consulente { display: block; }
/* Slide «I più richiesti»: linea neutra in inchiostro e tessera bianca bordata, non il giallo dei lavoratori (giuria G1-06) */
[data-linea="tutte"] { --linea: var(--inchiostro); }
.slide--richiesti .slide__linea .tessera { background: var(--bianco); border: 2px solid var(--inchiostro); color: var(--inchiostro); }
/* Chi siamo, «Cosa facciamo»: tre colonne dal computer e la freccia, così si vede che sono collegamenti (giuria G1-13) */
@media (min-width: 900px) { .tessere--tre { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.tessere--tre .tessera-link__titolo a { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.tessere--tre .tessera-link__titolo .ico { flex: none; width: 24px; height: 24px; }

/* prezzo lungo dei moduli («Modulo completo: 450 € esente IVA per apprendista», 23/10/2026): il cartellino va a capo invece di uscire dal biglietto */
.etichetta--prezzo { white-space: normal; max-width: 100%; padding-bottom: 2px; }
