/* =====================================================================
   Misure del sito (indicazioni del 5 novembre 2026): tipografia, spazi e larghezza.
   UNICA FONTE delle dimensioni dei testi: viene caricato per ultimo su tutte le pagine
   e prevale sugli stili delle singole pagine.
   Non si applicano: testi dentro illustrazioni e animazioni, scene narrative della Storia,
   testo di articoli e schede concorso (titoli più piccoli, per leggibilità).
   ===================================================================== */
:root{
  --fs-h1:65px; --fs-h2:50px; --fs-h3:32px; --fs-card:24px; --fs-faq:20px;
  --fs-intro1:22px; --fs-intro2:20px; --fs-p:18px; --fs-label:13px; --fs-btn:17px; --fs-note:14px;
  --sp-hero:90px; --sp-sec:60px; --sheet-over:44px;
}
@media (max-width: 1024px){ :root{ --fs-h1:56px; --fs-h2:40px; --fs-h3:28px; --fs-card:22px; --fs-faq:19px; --fs-intro1:20px; --fs-intro2:18px; --fs-p:17px } }
@media (max-width: 760px){ :root{ --fs-h1:40px; --fs-h2:32px; --fs-h3:24px; --fs-card:20px; --fs-faq:18px; --fs-intro1:18px; --fs-intro2:17px; --fs-p:16px; --fs-label:12px; --fs-btn:16px;
  --sp-hero:30px; --sp-sec:30px; --sheet-over:28px } }

/* ---------- titoli ---------- */
h1:not(.hero-title h1){font-size:var(--fs-h1)!important;line-height:1.05!important}
main h2:not(.door h2):not(.prose h2):not(.csec h2):not(.bsec-h h2){font-size:var(--fs-h2)!important;line-height:1.1!important}
/* titoli interni di articoli e schede concorso */
.prose h2,.csec h2,.bsec-h h2{font-size:var(--fs-h3)!important;line-height:1.15!important}
.prose h3{font-size:var(--fs-card)!important;line-height:1.15!important}
/* titolo di card: il caso normale degli h3 */
main h3:not(.prose h3),main h4:not(.prose h4),.tutor-box h3{font-size:var(--fs-card)!important;line-height:1.15!important}
/* sottosezioni */
main .tutor-box h3,main .bpanel h3,main .mc h3,main .vcard h3,main .dcol > h3,main .tpanel h3,main h3.incl-h,main .panel h3,main .route h3,main .mexp h3,
main #risultati > .wrap h3,main .eafter h3,main #scheda h3,main .tcard h3[data-big],main #eagle h3,main #percorsi > .wrap > h3,main #cap6 h3,main #cap2 h3{font-size:var(--fs-h3)!important;line-height:1.15!important}
/* domande frequenti */
main summary,main .qa summary{font-size:var(--fs-faq)!important;line-height:1.3!important}

/* ---------- testi ---------- */
main p:not(:is([aria-hidden="true"] *,.press-row *,.wc *,.radar *,.tprev *,.scr *,.device *,.bk *,.bubble *,.map3d *,.bb *,.row small,.tbox *,.gcap *,.demo2 *,.dstate *,.say *,.say5 *,.lines *,.thinks *,.phrase *,.closing *,.dark-world *,.c6open *,.c7open *,.opener *,.closer *,.close *,.mquote *,.hud,.hand,.big,.mid)),main dd,main .qa p{font-size:var(--fs-p)!important;line-height:1.5!important}
main li:not(:is([aria-hidden="true"] *,.press-row *,.wc *,.radar *,.tprev *,.scr *,.device *,.bk *,.bubble *,.map3d *,.bb *,.row small,.tbox *,.gcap *,.demo2 *,.dstate *,.say *,.say5 *,.lines *,.thinks *,.phrase *,.closing *,.dark-world *,.c6open *,.c7open *,.opener *,.closer *,.close *,.mquote *,.hud,.hand,.big,.mid)):not(nav li){font-size:var(--fs-p)!important;line-height:1.5!important}
main q:not(:is([aria-hidden="true"] *,.press-row *,.wc *,.radar *,.tprev *,.scr *,.device *,.bk *,.bubble *,.map3d *,.bb *,.row small,.tbox *,.gcap *,.demo2 *,.dstate *,.say *,.say5 *,.lines *,.thinks *,.phrase *,.closing *,.dark-world *,.c6open *,.c7open *,.opener *,.closer *,.close *,.mquote *,.hud,.hand,.big,.mid)),main blockquote{font-size:var(--fs-p)!important;line-height:1.5!important}
main .rcard q,main .pain-card q,main .case blockquote{font-size:var(--fs-card)!important;line-height:1.3!important}
/* introduzione sotto H2 */
main .lead,main .sec-lead,main .g-lead,main .vs-lead,main .lead2,main .dsub,main .cintro,main h2 + p:not([class]){font-size:var(--fs-intro2)!important;line-height:1.5!important}
/* introduzione sotto H1 */
main h1 ~ .lead,main h1 ~ p.lead,main h1 + p,main .cv-lead,main .art-head .sum,main .hero-title p{font-size:var(--fs-intro1)!important;line-height:1.45!important}

/* ---------- etichette sopra i titoli e piccole sigle ---------- */
main .eyebrow,main p.k,main p.k2,main p.k3,main p.dk,main .lbl2,main .g-eye,main .vs-eye,main .ck,main .cv-k,main .dev-k,main .wk,main .press-k,main .ctext .lb,main .tmeta li,main .soon2,main .bk,main .brh,main .pin,
main .kb small,main .crq small,main .csv small,main .rq small,main .ch small,main .tc small,main .lk small,main .pth small,main .es small,main .ag small,main .fst small,main .ol small,main .grp small,main .st small,main .area small,main .rg small,main .pv small,main .dv small,main .core small,main .pfor small,main .kf li,main .cat,main .pill{font-size:var(--fs-label)!important;line-height:1.3!important}

/* ---------- note e testi piccoli ---------- */
main small:not(:is([aria-hidden="true"] *,.press-row *,.wc *,.radar *,.tprev *,.scr *,.device *,.bk *,.bubble *,.map3d *,.bb *,.row small,.tbox *,.gcap *,.demo2 *,.dstate *,.say *,.say5 *,.lines *,.thinks *,.phrase *,.closing *,.dark-world *,.c6open *,.c7open *,.opener *,.closer *,.close *,.mquote *,.hud,.hand,.big,.mid)),main figcaption,main label,main .note,main .note-b,main .bdisc,main .cdisc,main .disc,main .cnote,main .mnote,main .mcar-hint,main .who,main .gua,main .meta,main .byline{font-size:var(--fs-note)!important;line-height:1.4!important}
main .kb small,main .crq small,main .csv small,main .rq small,main .ch small,main .tc small,main .lk small,main .pth small,main .es small,main .ag small,main .fst small,main .ol small,main .grp small,main .st small,main .area small,main .rg small,main .pv small,main .dv small,main .core small,main .pfor small{font-size:var(--fs-label)!important;line-height:1.3!important}

/* ---------- pulsanti ---------- */
main .btn:not(.door .btn){font-size:var(--fs-btn)!important;line-height:1!important}

/* ---------- spazi: sezioni e hero (dal bordo inferiore del menu) ---------- */
main > section:not(:first-child):not(:where(#focus,#come,#eagle,#abilita,#journey,#day,.press,.feat,.cfacts,.player,[id^="cap"],.jfallback,#tour:not(.sheet))){padding-block:var(--sp-sec)!important}
/* le sezioni "a foglio" salgono sulla precedente: lo spazio sotto si compensa */
main > section:not(:first-child):not(:where(#focus,#come,#eagle,#abilita,#journey,#day,.press,.feat,.cfacts,.player,[id^="cap"],.jfallback,#tour:not(.sheet))):has(+ .sheet){padding-bottom:calc(var(--sp-sec) + var(--sheet-over))!important}
.sheet{margin-top:calc(var(--sheet-over) * -1)}
/* anche il footer sale sull'ultima sezione */
main > section:last-child:not(:where(#journey,[id^="cap"])){padding-bottom:calc(var(--sp-sec) + var(--sheet-over))!important}
.blog main > section,.cpage main > section{padding-block:var(--sp-sec)!important}
/* hero: 90 px sopra (sotto il menu) e 90 px sotto. Restano fuori la Home (nuova hero a parte), la Storia e le pagine con hero animata a scorrimento (Sedi, Simulatore) */
main > section:first-child:not(:where(.hero,#journey,#tour,.cover)){min-height:0!important;height:auto!important;padding-block:calc(var(--hdr) + var(--sp-hero)) var(--sp-hero)!important}
/* in queste hero lo spazio sta nel contenitore interno */
main > section.lhero:first-child,body:not(.cpage) main > section.chero:first-child,main > section.rhero:first-child,main > section.shero:first-child,main > section.thero:first-child,main > section.gh:first-child,main > section.vh:first-child,main > section.ahero:first-child,main > section.phero:first-child,main > section.ghero:first-child{padding-block:0!important}
.lhero > .content,body:not(.cpage) .chero > .wrap,.rhero > .wrap,.shero > .wrap,.thero > .wrap,.gh > .wrap,.vh > .wrap,.ahero > .wrap,.phero > .wrap,.ghero > .wrap{min-height:0!important;height:auto!important;padding-top:calc(var(--hdr) + var(--sp-hero))!important;padding-bottom:var(--sp-hero)!important}
/* Vacanze studio: la fascia dei servizi sale di 99 px sulla hero */
.vh > .wrap{padding-bottom:calc(var(--sp-hero) + 99px)!important}
/* larghezza: alcune hero stringevano il contenitore e lo spostavano verso il centro */
main > section:first-child > .wrap{width:100%}
.rhero h1{max-width:13ch!important}
#journey .cap{left:max(var(--gutter),calc((100vw - 1240px) / 2 + var(--gutter)))}
/* larghezza: la hero di Studenti allineata alle altre pagine */
.lhero > .content{padding-left:max(var(--gutter),calc((100vw - 1240px) / 2 + var(--gutter)))!important}
/* Studenti da computer: il testo usava 720 px compresi del margine sinistro e restava una colonna stretta e lunga (9 nov 2026).
   Ora la colonna di testo è larga fino a 660 px, senza entrare nel campo degli occhiali (la lente arriva al 53% circa della larghezza) */
@media (min-width: 861px){ .lhero > .content{box-sizing:content-box;max-width:min(660px,calc(52vw - max(var(--gutter),calc((100vw - 1240px) / 2 + var(--gutter)))))} .lhero .lead{max-width:none} }

/* Studenti: sotto i pulsanti scorre l'animazione degli occhiali, serve il suo spazio */
@media (max-width: 860px){ .lhero > .content{padding-bottom:290px!important} }

/* ---------- telefono: il testo riempie tutta la sezione ---------- */
@media (max-width: 760px){
  main h1,main h2,main h3,main h4,main p,main li,main .lead,main .sec-lead,main .sec-title{max-width:none!important;text-wrap:wrap}
  main .wrap > *,main section > *{max-width:100%}
}
