/* ============ cornice: sotto i 740px comanda quella del telefono ============ */
/* Questo foglio è caricato solo sotto soglia, quindi basta nascondere qui. */
.header, .footer { display: none !important; }

/* ============================================================
   ILA Travel — SITO MOBILE (m/) · v2, rifatto da zero
   Scala compatta da telefono. Niente barre fisse. Cascata pulita.
   ============================================================ */
@font-face { font-family: 'Urbanist'; src: url('../fonts/Urbanist-VariableFont_wght.woff2') format('woff2-variations'), url('../fonts/Urbanist-VariableFont_wght.ttf') format('truetype-variations'); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: 'Momo Signature'; src: url('../fonts/MomoSignature-Regular.woff2') format('woff2'), url('../fonts/MomoSignature-Regular.ttf') format('truetype'); font-weight: 400; font-display: swap; }

:root {
  --azzurro: #7EC3E7; --navy: #2A416D; --rosso: #A72326; --rosa: #FF9FCD; --giallo: #FBBA25; --crema: #FFF8EF;
  --rosa-chiaro: #FFD3E8; --azzurro-chiaro: #D9EEF9; --testo2: #46618F;
  --script: 'Momo Signature', cursive;
  --molla: cubic-bezier(.34,1.56,.64,1);
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { font-family: 'Urbanist', sans-serif; font-variation-settings: 'wght' 460; font-size: 15.5px; background: var(--crema); color: var(--navy); line-height: 1.5; overflow-x: hidden; -webkit-tap-highlight-color: transparent; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
h1, h2, h3 { line-height: 1.14; letter-spacing: -0.015em; font-weight: 800; }
.mo { font-family: var(--script); font-weight: 400; font-size: 1.1em; text-transform: lowercase; }
.parola-rossa { color: var(--rosso); } .parola-gialla { color: var(--giallo); } .parola-bianca { color: #fff; }
.wrap { padding-left: 18px; padding-right: 18px; }
.sez { padding: 44px 0; }

/* reveal */
html.js .rev { opacity: 0; translate: 0 20px; transition: opacity .55s ease, translate .55s var(--molla); }
html.js .rev.vis { opacity: 1; translate: none; }
@media (prefers-reduced-motion: reduce) { html.js .rev { opacity: 1; translate: none; transition: none; } }

/* ============ header ============ */
.mtesta { position: sticky; top: 0; z-index: 65; background: rgba(255,248,239,.95); backdrop-filter: blur(10px); border-bottom: 2px solid rgba(42,65,109,.08); }
.mtesta-in { display: flex; align-items: center; justify-content: space-between; padding: 8px 18px; }
.mtesta img.logo { height: 38px; width: auto; }
.mburger { width: 42px; height: 42px; border: 0; background: var(--navy); border-radius: 12px; cursor: pointer; position: relative; z-index: 62; }
.mburger i { position: absolute; left: 11px; right: 11px; height: 2.4px; background: #fff; border-radius: 3px; transition: .28s var(--molla); }
.mburger i:nth-child(1) { top: 13px; }
.mburger i:nth-child(2) { top: 19.5px; }
.mburger i:nth-child(3) { top: 26px; }
.mburger.x i:nth-child(1) { top: 19.5px; transform: rotate(45deg); }
.mburger.x i:nth-child(2) { opacity: 0; }
.mburger.x i:nth-child(3) { top: 19.5px; transform: rotate(-45deg); }

/* ============ menu a schermo pieno (stile megamenu, fondo chiaro) ============ */
.mmenu { position: fixed; inset: 0; z-index: 61; background: var(--crema); color: var(--navy); padding: 78px 24px 40px; overflow-y: auto; opacity: 0; pointer-events: none; transition: opacity .25s; }
.mmenu.aperta { opacity: 1; pointer-events: auto; }
.mmenu a { text-decoration: none; }
.mm-gruppo { font-size: 1.35rem; font-weight: 800; margin: 22px 0 6px; }
.mm-gruppo:first-child { margin-top: 0; }
.mm-voce { display: grid; grid-template-columns: 52px 1fr; gap: 14px; align-items: center; padding: 9px 0 9px 10px; border-radius: 14px; }
.mm-voce:active { background: rgba(42,65,109,.06); }
.mm-voce .mm-ico { width: 52px; height: 52px; border-radius: 15px; display: grid; place-items: center; font-size: 1.5rem; }
.mm-voce .mm-ico svg { width: 24px; height: 24.6px; }
.mm-voce .mm-ico.mm-flag { background: #fff; box-shadow: inset 0 0 0 2px rgba(42,65,109,.07); }
.mm-voce b { font-size: 1.08rem; display: block; }
.mm-voce small { font-size: .8rem; font-weight: 600; color: var(--testo2); display: block; margin-top: 1px; }
.mm-cta { display: block; text-align: center; background: var(--navy); color: #fff; font-weight: 800; font-size: 1rem; border-radius: 99px; padding: 15px; margin-top: 24px; }

/* ============ bottoni & kicker ============ */
.btn { display: block; text-align: center; text-decoration: none; font-weight: 800; font-size: .95rem; border-radius: 99px; padding: 14px 20px; transition: .2s var(--molla); }
.btn:active { scale: .97; }
.btn-primario { background: var(--navy); color: #fff; }
.btn-fantasma { border: 2.5px solid var(--navy); color: var(--navy); }
.kicker { display: inline-flex; align-items: center; gap: 7px; background: #fff; color: var(--rosso); font-size: .68rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; border-radius: 99px; padding: .55em 1.1em; box-shadow: 0 3px 10px rgba(42,65,109,.08); }
.kicker svg { width: 13px; height: 13.3px; flex: none; }

/* ============ hero ============ */
.mhero { padding: 26px 0 0; overflow: hidden; text-align: left; }
.mhero h1 { font-size: clamp(1.9rem, 8vw, 2.3rem); margin-top: 12px; }
.mhero h1 .riga { display: block; }
.mhero h1 svg.hic { width: .95em; height: .97em; vertical-align: -0.16em; display: inline-block; }
.mhero .sub { color: var(--testo2); font-weight: 500; margin-top: 10px; font-size: .95rem; max-width: 42ch; }
.mhero .cta2 { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 18px; }
.mhero .cta2 .btn { padding: 13px 8px; font-size: .88rem; }
/* una sola polaroid, misurata */
.mhero .polaroid { position: relative; width: min(78%, 320px); margin: 30px auto 26px; rotate: -2deg; }
.mhero .polaroid img.pol { width: 100%; }
.mhero .polaroid .scotch { position: absolute; width: 84px; top: -12px; left: 50%; transform: translateX(-50%) rotate(-3deg); }
.mhero .polaroid .stellina { position: absolute; width: 40px; height: 41px; right: -16px; top: -20px; color: var(--giallo); }

/* marquee sottile */
.marquee { background: var(--navy); overflow: hidden; padding: 9px 0; }
.marquee-track { display: flex; width: max-content; animation: scorri 34s linear infinite; }
.marquee-seq { display: flex; align-items: center; gap: 16px; padding-right: 16px; color: #fff; font-weight: 800; font-size: .88rem; letter-spacing: .08em; }
.marquee-seq svg { width: 14px; height: 14.4px; }
@keyframes scorri { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .marquee-track { animation: none; } }

/* ============ testate sezione ============ */
.sez-testa { text-align: center; }
.sez-testa h2 { font-size: 1.5rem; margin-top: 10px; }
.sez-testa p { color: var(--testo2); font-weight: 500; margin-top: 8px; font-size: .92rem; }

/* ============ programmi: biglietti compatti ============ */
.prog { display: grid; gap: 12px; margin-top: 22px; }
.prog a { display: grid; grid-template-columns: 58px 1fr 20px; align-items: center; gap: 14px; text-decoration: none; background: #fff; border: 2.5px solid var(--tinta); border-radius: 18px; padding: 14px 14px 14px 12px; rotate: var(--rot, 0deg); transition: .2s var(--molla); }
.prog a:active { scale: .98; rotate: 0deg; }
.prog .ico { width: 58px; height: 58px; border-radius: 16px 16px 8px 8px; background: var(--tinta); display: grid; place-items: center; }
.prog .ico svg { width: 26px; height: 26.6px; }
.prog .eta { font-size: .62rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--tinta-t, var(--tinta)); }
.prog h3 { font-size: 1.08rem; margin-top: 1px; }
.prog p { font-size: .8rem; color: var(--testo2); margin-top: 2px; }
.prog .fr { color: var(--tinta-t, var(--tinta)); font-weight: 800; font-size: 1.1rem; }

/* ============ perché ILA (navy) ============ */
.perche { background: var(--navy); color: #fff; }
.perche .kicker { background: #3F547C; color: #fff; box-shadow: none; }
.perche .sez-testa p { color: var(--azzurro); }
.pilastri { margin-top: 20px; display: grid; gap: 0; }
.pilastro { display: grid; grid-template-columns: 44px 1fr; gap: 12px; padding: 13px 0; border-bottom: 2px dotted rgba(255,255,255,.14); align-items: start; }
.pilastro:last-child { border-bottom: 0; }
.pilastro .num { font-family: var(--script); color: var(--giallo); font-size: 1.35rem; line-height: 1.2; }
.pilastro h3 { font-size: .98rem; }
.pilastro p { font-size: .82rem; color: #C8D8F2; margin-top: 2px; }
.numeri { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin-top: 20px; text-align: center; }
.numero b { font-size: 1.25rem; font-weight: 800; color: var(--giallo); display: block; }
.numero span { font-size: .62rem; color: #C8D8F2; line-height: 1.25; display: block; }

/* ============ caroselli a scatto ============ */
.snap { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 20px 18px 6px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.snap::-webkit-scrollbar { display: none; }
.snap > * { scroll-snap-align: center; flex: 0 0 auto; }
.snap-hint { text-align: center; font-size: .75rem; color: var(--testo2); font-weight: 650; margin-top: 8px; }
.snap-hint .mo { color: var(--rosso); }

/* finestre destinazioni: card misurate */
.finestra { position: relative; display: block; text-decoration: none; border-radius: 90px 90px 16px 16px; overflow: hidden; width: 168px; height: 226px; color: #fff; }
.finestra img.foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.finestra .velo { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(42,65,109,0) 40%, rgba(42,65,109,.85)); }
.finestra .bandiera { position: absolute; top: 10px; right: 12px; font-size: 1.05rem; }
.finestra .paese { position: absolute; left: 13px; bottom: 24px; font-size: 1.02rem; font-weight: 800; }
.finestra .tipo { position: absolute; left: 13px; bottom: 10px; right: 10px; font-size: .56rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; opacity: .92; }

/* patch: card compatte, tutto centrato */
.potere { width: 200px; background: #fff; border-radius: 18px; padding: 18px 16px; text-align: center; border: 2px solid rgba(42,65,109,.08); }
.potere img { width: 92px; margin: 0 auto 8px; }
.potere b { font-size: .95rem; display: block; }
.potere p { font-size: .78rem; color: var(--testo2); margin-top: 4px; }

/* profili compatti */
.profilo { width: 218px; background: #fff; border: 2px solid var(--navy); border-radius: 18px; padding: 18px 16px; text-align: center; box-shadow: 4px 5px 0 var(--tinta, var(--azzurro)); }
.profilo img { width: 64px; margin: 0 auto 6px; }
.profilo h3 { font-size: 1.05rem; }
.profilo .motto { font-family: var(--script); font-size: .95rem; color: var(--rosso); margin-top: 2px; }
.profilo p { font-size: .78rem; color: var(--testo2); margin-top: 6px; }

/* ============ momenti: griglia foto controllata ============ */
.momenti { background: var(--rosa); }
.momenti .kicker { color: var(--rosso); }
.momenti .sez-testa p { color: var(--navy); }
.griglia-foto { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 22px 18px 4px; }
.griglia-foto .ph { aspect-ratio: 3/4; border: 5px solid #fff; border-radius: 4px; box-shadow: 0 6px 16px rgba(42,65,109,.2); rotate: var(--rot, -1.5deg); overflow: hidden; }
.griglia-foto .ph img { width: 100%; height: 100%; object-fit: cover; }
.m-fine { position: relative; margin: 18px 18px 0; border-radius: 18px; overflow: hidden; }
.m-fine > img, .m-fine > figure > img { width: 100%; height: 300px; object-fit: cover; }
.m-fine > figure { margin: 0; }
.m-fine .testo { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; padding: 18px; background: linear-gradient(180deg, rgba(42,65,109,0) 30%, rgba(42,65,109,.88)); color: #fff; }
.m-fine .script { font-family: var(--script); font-size: 1.15rem; color: var(--giallo); }
.m-fine h3 { font-size: 1.02rem; margin-top: 3px; }
.m-fine .btn { margin-top: 12px; background: #fff; color: var(--navy); padding: 12px; font-size: .88rem; }

/* ============ loghi ============ */
.loghi { background: #fff; padding: 26px 0; }
.loghi p { text-align: center; font-size: .62rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; color: var(--testo2); margin-bottom: 14px; }
.loghi-in { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 14px 20px; padding: 0 24px; }
.loghi-in img { height: 22px; width: auto; filter: grayscale(1); opacity: .7; }
.loghi-in img.logo-alto { height: 34px; }

/* ============ finale ============ */
.finale { background: var(--rosso); color: #fff; text-align: center; padding: 48px 0; position: relative; overflow: hidden; }
.finale h2 { font-size: clamp(1.8rem, 8.5vw, 2.2rem); position: relative; }
.finale p { color: var(--rosa); font-weight: 600; margin-top: 10px; font-size: .95rem; position: relative; }
.finale .btn { background: #fff; color: var(--rosso); margin: 18px auto 0; max-width: 280px; position: relative; }
.finale .watermark { position: absolute; opacity: .12; color: #fff; pointer-events: none; }
.finale .watermark svg { width: 100%; height: 100%; }

/* ============ contatto rapido (nel flusso, non fisso) ============ */
.tocca { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 0 18px; margin-top: 18px; position: relative; }
.tocca a { text-decoration: none; text-align: center; font-weight: 800; font-size: .9rem; border-radius: 99px; padding: 13px; }
.tocca .chiama { background: rgba(255,255,255,.14); color: #fff; border: 2px solid rgba(255,255,255,.5); }
.tocca .scrivi { background: #fff; color: var(--rosso); }

/* ============ footer ============ */
.mfooter { background: var(--navy); color: #C8D8F2; padding: 34px 0 26px; font-size: .85rem; }
.mfooter .logo-card { background: #fff; display: inline-block; padding: 10px 13px; border-radius: 14px; transform: rotate(-2deg); }
.mfooter .logo-card img { height: 44px; width: auto; }
.mfooter .payoff { font-family: var(--script); font-size: 1.05rem; color: var(--azzurro); margin-top: 10px; }
.mfooter h3 { color: #fff; font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; margin: 22px 0 6px; }
.mfooter ul { list-style: none; }
.mfooter li { padding: 6px 0; border-bottom: 1px solid rgba(255,255,255,.08); }
.mfooter a { text-decoration: none; }
.mfooter .base { margin-top: 22px; font-size: .72rem; color: #A8BCDC; display: grid; gap: 3px; }
.mfooter .desktop-link { color: var(--giallo); font-weight: 700; }

/* gli anchor non finiscono sotto l'header sticky */
section[id] { scroll-margin-top: 64px; }

/* menu: destinazioni in lista ordinata a 2 colonne */
.paesi2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; padding: 2px 0 4px; }
.paesi2 a { display: flex; align-items: center; gap: 9px; font-weight: 750; font-size: .95rem; padding: 11px 0; border-bottom: 2px dotted rgba(255,255,255,.16); }
.paesi2 a span { font-size: 1.05rem; }

/* ============ componenti pagine interne ============ */
.phero { padding: 24px 0 0; text-align: left; }
.phero h1 { font-size: 1.62rem; margin-top: 12px; }
.phero .sub { color: var(--testo2); font-weight: 500; margin-top: 9px; font-size: .92rem; }
.phero .tessera { position: relative; width: min(62%, 250px); margin: 24px auto 28px; rotate: 2deg; border-radius: 80px 80px 14px 14px; overflow: hidden; aspect-ratio: 4/5; box-shadow: 0 14px 30px rgba(42,65,109,.22); }
.phero .tessera img { width: 100%; height: 100%; object-fit: cover; }
.phero .timbro { position: absolute; top: 6px; right: 6px; z-index: 2; width: 74px; height: 74px; border: 2.5px solid #fff; border-radius: 50%; color: #fff; display: grid; place-items: center; text-align: center; rotate: 8deg; background: rgba(42,65,109,.35); backdrop-filter: blur(2px); }
.phero .timbro b { font-size: .72rem; letter-spacing: .1em; display: block; }
.phero .timbro i { font-family: var(--script); font-size: .6rem; font-style: normal; display: block; }

.mgate { display: inline-block; font-family: var(--script); color: var(--rosso); font-size: 1.05rem; rotate: -1.5deg; }
.sez-testa .mgate { margin-bottom: 4px; }

/* biglietto formula mobile */
.mtick { background: #FFFDF6; border-radius: 16px; overflow: hidden; border: 2px solid rgba(42,65,109,.1); box-shadow: 0 8px 20px rgba(42,65,109,.1); margin-top: 14px; }
.mtick .tt { display: flex; align-items: center; justify-content: space-between; background: var(--tinta); color: var(--tc, #fff); padding: 10px 16px; }
.mtick .tt b { font-size: 1.05rem; letter-spacing: .04em; }
.mtick .tt b .mo { font-size: 1.2em; }
.mtick .tt small { font-size: .58rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; opacity: .9; }
.mtick .tc { padding: 13px 16px 15px; border-top: 2px dashed rgba(42,65,109,.25); }
.mtick .th { font-weight: 800; font-size: .95rem; color: var(--navy); }
.mtick .tp { font-size: .84rem; color: var(--testo2); margin-top: 4px; }
.mtick .spec { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; margin-top: 11px; padding-top: 11px; border-top: 2px dotted var(--tinta); }
.mtick .spec dt { font-size: .56rem; letter-spacing: .14em; text-transform: uppercase; color: var(--lab, var(--tinta)); font-weight: 800; }
.mtick .spec dd { font-family: var(--script); font-size: .92rem; color: var(--navy); margin: 1px 0 0; }
.mtick .flex { display: flex; align-items: center; gap: 8px; margin-top: 10px; }
.mtick .flex .lab { font-size: .56rem; letter-spacing: .14em; text-transform: uppercase; color: var(--lab, var(--tinta)); font-weight: 800; }
.mtick .flex i { width: 10px; height: 10px; border-radius: 50%; border: 2px solid var(--lab, var(--tinta)); }
.mtick .flex i.on { background: var(--lab, var(--tinta)); }
.mtick .flex .nota { font-size: .72rem; color: var(--testo2); margin-left: auto; text-align: right; max-width: 46%; }

/* timbri fatti (durata/età/visto) — impilati */
.mtimbri { display: grid; gap: 10px; margin-top: 20px; }
.mtimbro { display: grid; grid-template-columns: 44px 1fr; gap: 12px; align-items: center; border: 2.5px solid var(--ink); border-radius: 14px; padding: 11px 14px; background: rgba(255,255,255,.65); rotate: var(--rot, -.6deg); }
.mtimbro img { width: 34px; }
.mtimbro .tt { font-size: .62rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; color: var(--ink); display: block; }
.mtimbro .tv { font-size: .84rem; color: var(--navy); line-height: 1.45; }
.mtimbro .tv b { color: var(--ink); }

/* step numerati */
.mstep { display: grid; gap: 0; margin-top: 18px; }
.mstep > div { display: grid; grid-template-columns: 40px 1fr; gap: 12px; padding: 13px 0; border-bottom: 2px dotted rgba(42,65,109,.18); }
.mstep .n { font-family: var(--script); font-size: 1.3rem; color: var(--rosso); }
.mstep h3 { font-size: .98rem; }
.mstep h3 small { display: block; font-family: var(--script); font-weight: 400; font-size: .95rem; color: var(--testo2); }
.mstep p { font-size: .84rem; color: var(--testo2); margin-top: 3px; }

/* accordion (FAQ e sezioni lunghe) */
.macc { background: #fff; border: 2px solid rgba(42,65,109,.12); border-radius: 14px; margin-top: 10px; overflow: hidden; }
.macc summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 14px 16px; font-weight: 800; font-size: .95rem; }
.macc summary::-webkit-details-marker { display: none; }
.macc summary::after { content: '+'; font-family: var(--script); color: var(--rosso); font-size: 1.3rem; flex: none; transition: rotate .25s; }
.macc[open] summary::after { rotate: 45deg; }
.macc .corpo { padding: 0 16px 14px; font-size: .88rem; color: var(--testo2); }
.macc .corpo b { color: var(--navy); }

/* quote: righe prezzo */
.mquota { background: #fff; border: 2.5px solid var(--navy); border-radius: 16px; padding: 4px 16px; margin-top: 18px; box-shadow: 4px 5px 0 rgba(42,65,109,.1); }
.mquota .riga { padding: 12px 0; border-bottom: 2px dotted var(--azzurro-chiaro); }
.mquota .riga:last-child { border-bottom: 0; }
.mquota .f { font-weight: 800; color: var(--navy); font-size: .95rem; }
.mquota .f small { font-weight: 600; color: var(--testo2); font-size: .72rem; display: block; }
.mquota .valori { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; margin-top: 7px; }
.mquota .v span { display: block; font-size: .56rem; letter-spacing: .12em; text-transform: uppercase; color: var(--testo2); font-weight: 800; }
.mquota .v b { font-size: .88rem; color: var(--navy); font-variant-numeric: tabular-nums; }

/* liste con doodle */
.mld { display: grid; gap: 14px; margin-top: 20px; }
.mld > div { display: grid; grid-template-columns: 46px 1fr; gap: 12px; align-items: start; }
.mld img { width: 40px; }
.mld .cerchio { width: 44px; height: 44px; border-radius: 50%; background: var(--tinta); display: grid; place-items: center; }
.mld .cerchio svg { width: 22px; height: 22.5px; color: var(--ico, #fff); }
.mld h3 { font-size: .95rem; color: var(--rosso); }
.mld p { font-size: .84rem; color: var(--testo2); margin-top: 2px; }

/* card pastello */
.mpast { border-radius: 16px; padding: 16px; margin-top: 12px; }
.mpast .eti { display: inline-block; background: var(--tinta); color: var(--tc, var(--navy)); font-family: var(--script); font-size: .95rem; padding: 4px 12px; border-radius: 7px; }
.mpast p { font-size: .85rem; color: var(--testo2); margin-top: 9px; }
.mpast ul { list-style: none; margin-top: 7px; display: grid; gap: 4px; }
.mpast li { position: relative; padding-left: 17px; font-size: .82rem; font-weight: 650; color: var(--navy); }
.mpast li::before { content: '»'; position: absolute; left: 0; color: var(--rosso); }
.a-azzurro { background: #EAF4FB; } .a-rosa { background: #FDECF4; } .a-giallo { background: #FFF6DE; }

/* chips quote comprende */
.mchips { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px 8px; margin-top: 14px; text-align: center; }
.mchips img { width: 46px; margin: 0 auto 4px; }
.mchips small { display: block; font-size: .62rem; color: var(--navy); font-weight: 650; line-height: 1.25; }

/* storie */
.mstoria { background: #fff; border: 2px solid var(--navy); border-radius: 16px; padding: 18px; margin-top: 14px; box-shadow: 4px 5px 0 var(--tinta, var(--azzurro)); }
.mstoria .virg { font-family: var(--script); font-size: 2rem; color: var(--tinta, var(--azzurro)); line-height: .5; display: block; }
.mstoria .claim { font-weight: 800; font-size: .98rem; margin-top: 8px; }
.mstoria .testo { font-size: .84rem; color: var(--testo2); margin-top: 8px; }
.mstoria .testo b { color: var(--navy); }
.mstoria .nome { font-weight: 800; color: var(--rosso); font-size: 1rem; margin-top: 12px; display: block; }
.mstoria .nome .mo { font-size: 1.15em; }
.mstoria .luogo { display: inline-block; text-transform: uppercase; letter-spacing: .1em; font-size: .6rem; color: var(--navy); font-weight: 800; border-bottom: 2.5px solid var(--giallo); padding-bottom: 2px; margin-top: 2px; }

/* prosa legale */
.prosa-m h2 { font-size: 1.05rem; margin: 20px 0 6px; }
.prosa-m p { font-size: .87rem; color: var(--testo2); }

/* nota post-it */
.mnota { background: var(--giallo); border-radius: 4px 14px 14px 14px; padding: 14px 16px; font-size: .88rem; rotate: -1deg; margin-top: 20px; box-shadow: 4px 6px 0 rgba(42,65,109,.12); }
.mnota .script { font-family: var(--script); }

/* CTA finale generica di pagina */
.pfine { background: var(--rosso); color: #fff; text-align: center; padding: 40px 0; }
.pfine h2 { font-size: 1.6rem; }
.pfine p { color: var(--rosa); font-weight: 600; margin-top: 8px; font-size: .9rem; }

/* ============ blocchi aperti (addio fisarmoniche) ============ */
.mblocco { margin-top: 26px; }
.mblocco > h3 { display: flex; align-items: center; gap: 9px; font-size: 1.08rem; border-bottom: 3px solid var(--tinta, var(--giallo)); padding-bottom: 8px; }
.mblocco > h3 svg { width: 21px; height: 21.5px; flex: none; }
.mblocco > h3 img { width: 22px; flex: none; }
.mblocco .corpo { margin-top: 9px; font-size: .9rem; color: var(--testo2); }
.mblocco .corpo b { color: var(--navy); }
.mblocco .corpo p + p { margin-top: 8px; }

/* etichette finestre: mai sovrapposte */
.finestra .paese { bottom: 30px; right: 12px; text-shadow: 0 1px 6px rgba(42,65,109,.5); }
.finestra .tipo { bottom: 12px; right: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* griglia sticker 2 colonne (tutto incluso, benefici) */
.mgrid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px; }
.mgrid2 .cella { background: #fff; border: 2px solid rgba(42,65,109,.12); border-radius: 14px; padding: 12px; }
.mgrid2 .cella b { font-size: .88rem; display: block; }
.mgrid2 .cella p { font-size: .76rem; color: var(--testo2); margin-top: 3px; }
.mgrid2 .cella svg { width: 20px; height: 20.5px; margin-bottom: 6px; }

/* fatti su navy (finanziamento) */
.navyfatti { background: var(--navy); border-radius: 18px; padding: 18px 16px; margin-top: 14px; color: #fff; }
.navyfatti .nf { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.navyfatti .nf > div { background: rgba(255,255,255,.08); border-radius: 12px; padding: 12px; }
.navyfatti .nf b { color: var(--giallo); font-size: 1.05rem; display: block; }
.navyfatti .nf span { font-size: .72rem; color: #C8D8F2; line-height: 1.35; display: block; margin-top: 2px; }
.navyfatti .titolo { font-weight: 800; margin-bottom: 10px; }
.navyfatti .titolo .mo { color: var(--giallo); }
.navyfatti .nota { font-size: .7rem; color: #9FB4D8; margin-top: 10px; }

/* quota: intestazioni per riga personalizzabili */
.mquota .v span { }

/* ================================================================
   LAYER: componenti desktop ristrutturati per telefono
   (le pagine /m/ caricano style.css + m.css: qui vincono le regole mobile)
   ================================================================ */
.sezione { padding: 44px 0; }
.sezione .wrap { padding-left: 18px; padding-right: 18px; }
.sezione-testa h2, .wrap > h2 { font-size: 1.5rem; }
.sezione-testa p, .sub-sezione { font-size: .92rem; }
.pagina-hero { padding: 26px 0 10px; }
.pagina-hero h1 { font-size: 1.62rem; }
.pagina-hero .sub { font-size: .92rem; }
.pagina-hero .blocchi-2 { display: block; }
.dossier-foto { max-width: 250px; margin: 26px auto 10px; }
.blocchi-2, .split, .guide, .comp2, .acc3, .storie-t, .boarding-lista, .colonne-prog, .tick-lista, .stati-note, .sel3, .prog-griglia, .progr-griglia { display: block; }
.blocchi-2 > * + *, .split > * + *, .comp2 > * + *, .acc3 > * + *, .storie-t > * + *, .boarding-lista > * + *, .colonne-prog > * + *, .sel3 > * + * { margin-top: 18px; }
.prosa-2col { columns: 1; font-size: .95rem; }
.guide { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.perche4 { grid-template-columns: 1fr 1fr; gap: 20px 14px; }
.p4-voce { padding: 0 !important; border-left: 0 !important; }
.p4-voce h3 { font-size: .85rem; }
.p4-voce p { font-size: .8rem; }
.minigriglia { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.pilastri { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.numeri { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.numeri .numero b { font-size: 1.3rem; }
.numeri .numero span { font-size: .62rem; }

/* biglietti opuscolo: impilati, matrice in alto */
.tick-lista { margin-top: 26px; max-width: none; }
.tick-op { grid-template-columns: 1fr; border-radius: 16px; }
.tick-op .t-stub { flex-direction: row; justify-content: flex-start; gap: 12px; padding: 12px 16px; border-radius: 16px 16px 0 0; border-right: 0; }
.tick-op .t-stub::before { display: none; }
.tick-op .t-stub::after { right: 10px; left: 10px; top: auto; bottom: -3px; width: auto; height: 6px; background-image: radial-gradient(circle, var(--navy) 2.2px, transparent 2.6px); background-size: 14px 6px; background-repeat: repeat-x; }
.tick-op .t-stub .vert { writing-mode: horizontal-tb; rotate: 0deg; font-size: .95rem; }
.tick-op .t-stub svg { width: 22px; height: 22.5px; }
.tick-op .t-stub .mini-bar { display: none; }
.tick-op .t-corpo { padding: 16px 16px 16px; }
.tick-op .t-titolo { font-size: 1.25rem; }
.tick-op .t-sub { font-size: .62rem; padding-bottom: 10px; }
.tick-op .t-h { font-size: .95rem; margin-top: 10px; }
.tick-op .t-para { font-size: .85rem; }
.tick-op .t-spec { gap: 8px; padding: 10px 0; }
.tick-op .t-spec > div > dt { font-size: .56rem; }
.tick-op .t-spec > div > dd { font-size: .9rem; }
.tick-op .t-flex { flex-wrap: wrap; gap: 8px; }
.tick-op .t-nota { font-size: .72rem; max-width: 100%; margin-left: 0; text-align: left; }
.tick-op .t-vai { font-size: .88rem; }
.tick-op .t-code { display: none; }

/* biglietti durata (V3) impilati */
.biglietti { display: block; }
.biglietti > * + * { margin-top: 14px; }
.biglietto { grid-template-columns: 74px 1fr; }
.biglietto .stub svg { width: 30px; height: 31px; }
.biglietto .stub .n { font-size: 1.1rem; }
.biglietto .corpo-big { padding: 14px 16px; }
.biglietto h3 { font-size: 1.02rem; }
.biglietto p { font-size: .84rem; }

/* timbri quick facts impilati */
.fatti-timbri { grid-template-columns: 1fr; gap: 10px; margin-top: 26px; }
.timbro-fatto { padding: 14px 16px 12px; }
.timbro-fatto .tf-val { font-size: .85rem; }
img.tf-segno { width: 26px; }

/* tabelle: scorrono */
.tab-confronto, .quota-wrap { padding: 8px 14px; overflow-x: auto; }
.tab-confronto table { font-size: .8rem; }
.tab-confronto .eti { font-size: .68rem; padding: 3px 8px; white-space: nowrap; }
.quota-wrap table { min-width: 430px; }
.quota-wrap th { font-size: .62rem; }
.quota-wrap td { font-size: .85rem; padding: 10px 8px; }
.quota-wrap td small { font-size: .66rem; }

/* colonne programma USA: impilate, complete */
.cp .cp-testa h3 { font-size: 1.2rem; }
.cp .cp-corpo { padding: 16px; }

/* finestre paesi: carosello a scatto */
.finestre { display: flex !important; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 4px 2px 10px; scrollbar-width: none; -webkit-overflow-scrolling: touch; grid-template-columns: none !important; }
.finestre::-webkit-scrollbar { display: none; }
.finestre .finestra { flex: 0 0 176px; scroll-snap-align: center; }

/* mappa USA: pin-lab già nascoste sotto 860; stati impilati */
.mappa-usa { margin-top: 26px; }
.stati-note { margin-top: 22px; }
.stati-note .stato-nota { flex: none; margin-top: 14px; }

/* distretti canada */
.dist-gruppo { grid-template-columns: 40px 1fr; margin-top: 18px; }
.dist-tab { font-size: 1rem; padding: 12px 2px; }
.dist-corpo { grid-template-columns: 1fr !important; padding: 14px 16px; gap: 12px; }
.dist-scuola + .dist-scuola { border-left: 0; padding-left: 0; border-top: 2px dotted var(--tinta); padding-top: 12px; }
.dist-scuola p { font-size: .82rem; }

/* scuole chips, storie, routine, step */
.scuole-chips { gap: 10px; margin-top: 22px; }
.scuola-chip { font-size: .85rem; padding: 8px 14px; }
.scuola-chip :is(img,.imgdec) { width: 26px; }
.st-card { padding: 20px 18px; }
.st-card .st-testo { font-size: .85rem; }
.routine { padding: 18px 16px; margin-top: 18px; }
.routine .r-voce { grid-template-columns: 74px 1fr; }
.step-isc { gap: 20px; margin-top: 26px; }
.si-voce p { font-size: .84rem; }
.si-voce h3 { font-size: 1.15rem; }
.paga { gap: 8px; }
.paga .pg { padding: 9px 10px; flex-basis: 40%; }
.paga .pg b { font-size: 1rem; }
.paga .fr { display: none; }
.chips-q { grid-template-columns: repeat(3, 1fr); gap: 14px 8px; }
.cq :is(img,.imgdec) { width: 46px; }
.cq small { font-size: .62rem; }
.comp2 h3 { margin-top: 8px; }

/* viaggiatori, community, rotta, varie */
.viaggiatori { grid-template-columns: 1fr; gap: 26px; }
.viaggiatori .vg-filo { display: none; }
.viaggiatore .vg-img { width: 92px; height: 92px; }
.community-chiusa { grid-template-columns: 1fr; gap: 16px; margin-top: 30px; }
.community-chiusa h3 { font-size: 1.4rem; }
.rotta-strip { padding: 16px 0 14px; }
/* l'indice della pagina: sei tappe in griglia 3×2, si vede tutto senza scorrere */
.rotta { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px 0; padding: 0 8px; }
.rotta a { padding: 0 4px; gap: 2px; }
.rotta a + a { border-left: 0; }
.rotta .rn { font-size: 1.3rem; }
.rotta .rt { white-space: normal; text-align: center; font-size: .74rem; line-height: 1.2; letter-spacing: .02em; }
.strappo { padding: 26px 22px; }
.strappo-wrap { margin-top: 22px; }
.acc .acc-eti { font-size: .9rem; }
.acc p, .acc ul li { font-size: .84rem; }
.mpast p { font-size: .85rem; }
.blocco-info { padding: 18px 16px; font-size: .92rem !important; }
.lista-check li { font-size: .9rem; }
.nota-post { font-size: .88rem; }
.req-lista li { font-size: .9rem; }
.mnota { font-size: .88rem; }
.polw { max-width: 320px; }
.finale h2 { font-size: 1.7rem; }
.finale .wrap > .gate { color: #fff; }
.sotto-tappa h3 { font-size: 1.25rem; }
.viaggiatore .vg-quote { font-size: 1.3rem; }
.rft { grid-template-columns: 84px 1fr; margin-top: 30px; }
.rft h3 { font-size: 1.15rem; }
.sel3 .s3-tit { font-size: 1.05rem; }
.sel3 p { font-size: .85rem; }
.ld-voce h3 { font-size: 1rem; }
.ld-voce p { font-size: .85rem; }
.lista-doodle.due { grid-template-columns: 1fr; }
.guida .linguetta { font-size: .8rem; }
.guida p { font-size: .8rem !important; }

/* niente segni fluttuanti sopra i titoli negli schermi stretti */
.segno.flott { display: none; }
.community-chiusa .sottolinea svg { bottom: -10px; }

/* ================== FIX round telefono (13/08) ================== */

/* 1. biglietti opuscolo: niente nome doppio, matrice a 3 colonne */
.tick-op .t-stub .vert { display: none; }
.tick-op .t-stub { justify-content: center; gap: 0; padding: 10px; }
.tick-op .t-stub svg { width: 26px; height: 26.6px; }
.tick-op .t-spec { grid-template-columns: 1fr 1fr 1fr !important; gap: 6px; }
.tick-op .t-spec > div > dt { font-size: .52rem; letter-spacing: .1em; }
.tick-op .t-spec > div > dd { font-size: .8rem; line-height: 1.2; }
.tick-op .t-flex { gap: 6px; }
.tick-op .t-flex .lab { font-size: .52rem; }
.tick-op .t-flex .pallini i { width: 11px; height: 11px; }
.tick-op .t-nota { font-size: .68rem; flex-basis: 100%; }

/* 2. pilastri: sempre impilati (su chi-siamo il "num" è una parola lunga) */
.pilastri { grid-template-columns: 1fr !important; gap: 12px; }
.pilastro { display: block; padding: 16px 18px; }
.pilastro .num { font-size: 1.5rem; margin-bottom: 2px; }
.pilastro h3 { font-size: 1.05rem; }
.pilastro p { font-size: .86rem; }

/* 3. routine Riccardo: ora sopra, testo sotto */
.routine .r-voce { grid-template-columns: 1fr; gap: 2px; }
.routine .r-ora { font-size: 1.15rem; }

/* 4. hero interne con polaroid: una sola, centrata */
.pagina-hero .hero-foto, .hero .hero-foto { position: relative; height: auto; min-height: 0 !important; margin-top: 24px; }   /* chi-siamo ha min-height:420px inline */
.hero-foto .polw { position: relative !important; inset: auto !important; width: 74% !important; margin: 0 auto; }
/* mostra SEMPRE solo la prima polaroid, qualunque classe abbia */
.hero-foto .polw ~ .polw { display: none; }
.hero-foto .segno { display: none; }

/* 5. gate/tappa: punto e testo centrati */
.gate { display: inline-block; text-align: center; }
.gate::before, .gate::after { display: none !important; }

/* 6. mappa USA: pin più visibili */
.mappa-usa svg.sagoma g circle { r: 16; }
.mappa-usa svg.sagoma g circle:nth-child(even) { r: 6; }

/* 7. carosello finestre: parte dal bordo, non a metà card */
.finestre { scroll-padding-left: 18px; padding-left: 18px; padding-right: 18px; margin-left: -18px; margin-right: -18px; }
.finestre .finestra { scroll-snap-align: start; }


/* 9. tabella orario mini stay: leggibile */
.orario { padding: 16px; border-radius: 18px; }
.orario table { min-width: 560px; border-spacing: 4px; }
.orario td { font-size: .74rem; padding: 9px 6px; }
.orario th { font-size: .62rem; }

/* 10. bivio (famiglia/residence) e strade impilate */
.bivio { grid-template-columns: 1fr; gap: 14px; }
.strada { padding: 22px 20px; }
.strada h3 { font-size: 1.2rem; }

/* biglietti dei piani: staccati fra loro (il display:block del layer annullava il gap) */
.tick-lista { display: grid !important; gap: 20px; }
.tick-lista > * + * { margin-top: 0; }
.colonne-prog { display: grid !important; gap: 18px; }
.storie-t, .boarding-lista, .acc3, .sel3 { display: grid !important; gap: 16px; }

/* summer camp: la giornata come timeline verticale (5 momenti = numero dispari) */
.giornata { grid-template-columns: 1fr !important; gap: 0; margin-top: 30px; }
.giornata::before { top: 34px; bottom: 34px; left: 33px; right: auto; border-top: 0; border-left: 4px dashed var(--giallo); }
/* l'ora occupa le due righe della voce; titolo e testo le riempiono, centrati sul cerchio */
.momento { display: grid; grid-template-columns: 70px 1fr; grid-template-rows: auto auto; column-gap: 16px; row-gap: 3px; text-align: left; align-items: center; padding: 12px 0; }
.momento .ora { grid-row: 1 / 3; margin: 0; }
.momento b { grid-column: 2; align-self: end; font-size: 1.02rem; }
.momento p { grid-column: 2; align-self: start; font-size: .86rem; margin-top: 0; }

/* dual diploma: hero ridimensionato */
.dossier-foto { max-width: 220px; }
.dossier-foto .timbro { transform: scale(.8); }

/* patch dei super poteri e immagini decorative: mai sopra i bottoni */
.potere img, .poteri img { max-width: 120px; margin-inline: auto; }
.polw .dec { z-index: 1; }


/* bivio famiglia/residence: etichette esplicite al posto delle frecce */
.strada .freccia-s { display: inline-block; background: var(--navy); color: #fff; font-family: var(--script); font-size: .95rem; padding: 5px 14px; border-radius: 99px; margin-bottom: 10px; }
.bivio::before { content: 'due strade, scegli la tua'; display: block; text-align: center; font-family: var(--script); color: var(--rosso); font-size: 1.15rem; margin-bottom: 4px; }


/* ============ FIX round 2 (13/08) ============ */

/* A. finestre paesi dentro le pagine: card intere, arco proporzionato */
main .finestre { align-items: stretch; padding-top: 8px; padding-bottom: 12px; }
main .finestre .finestra { width: 168px !important; height: 232px !important; flex: 0 0 168px !important;
  border-radius: 84px 84px 18px 18px !important; overflow: hidden !important; position: relative; }
main .finestre .finestra .finestra-foto { position: absolute !important; inset: 0 !important;
  width: 100% !important; height: 100% !important; object-fit: cover !important; }
main .finestre .finestra .finestra-velo { position: absolute; inset: 0; }
main .finestre .finestra .bandiera { position: absolute; top: 12px; left: 50%; translate: -50% 0; font-size: 1.15rem; }
main .finestre .finestra .paese { position: absolute; left: 12px; right: 12px; bottom: 30px; font-size: 1rem; text-align: center; }
main .finestre .finestra .tipo { position: absolute; left: 10px; right: 10px; bottom: 12px; font-size: .56rem; text-align: center; }

/* B. icone doodle (Irlanda &c.): intere, allineate al titolo */
.ld-voce { align-items: flex-start; }
.ld-ico.ld-raw { width: 66px !important; height: 66px !important; flex: 0 0 66px !important; border-radius: 0; }
.ld-ico.ld-raw :is(img,.imgdec) { width: 100% !important; height: 100% !important; object-fit: contain !important; }
.timbro-fatto img.tf-segno { position: static !important; width: 34px !important; height: auto !important; opacity: 1 !important; margin-bottom: 4px; }
.timbro-fatto { padding: 14px 16px 14px !important; }

/* C. griglie "perche4" con style inline a 2 colonne (USA boarding, Dual benefici):
      niente testo che sborda o tocca la colonna accanto */
.blocchi-2 .perche4, .perche4[style] { grid-template-columns: 1fr 1fr !important; gap: 18px 14px !important; }
.perche4 .p4-voce { border-left: 0 !important; padding: 0 !important; min-width: 0; }
.perche4 .p4-voce h3 { font-size: .84rem; line-height: 1.25; }
.perche4 .p4-voce p { font-size: .78rem; overflow-wrap: anywhere; }
.perche4 .p4-voce .p4-ico svg { width: 34px !important; height: 35px !important; }


/* voci a 2 colonne: allineate in alto, icona e testo a sinistra */
.perche4 { align-items: start; }
.perche4 .p4-voce { text-align: left; }
.perche4 .p4-voce .p4-ico { display: block; min-height: 38px; }

/* ============ FIX round 3 — cause profonde trovate in diagnosi ============ */

/* A. IL VERO taglio delle tessere: il clip-path del desktop (style.css .finestra) */
.finestre .finestra, .snap .finestra,
.finestre .finestra:nth-child(even), .snap .finestra:nth-child(even),
.finestre .finestra:hover, .snap .finestra:hover { clip-path: none; }
.finestre .finestra:hover, .snap .finestra:hover { transform: none; }

/* B. IL VERO carosello rotto: .rev sulle singole card = doppio reveal (34px+20px)
      e le card fuori dallo scroller non intersecano mai → restavano invisibili */
html.js .finestre .finestra.rev, html.js .snap .finestra.rev {
  opacity: 1; transform: none; translate: none; transition: none;
}
html.js .finestre.rev, html.js .snap.rev { transform: none; }

/* C. contenitore: niente residui griglia/3D, niente scroll verticale parassita */
main .finestre {
  display: flex !important; grid-template-columns: none !important; perspective: none;
  align-items: flex-start; gap: 12px;
  overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory; scroll-padding-left: 18px;
  padding: 12px 18px 16px; margin-left: -18px; margin-right: -18px;
}
main .finestre .finestra { aspect-ratio: auto !important; padding: 0 !important; scroll-snap-stop: always; }
/* la tessera CTA deve però tenere il suo padding */
main .finestre .finestra.f-cta { display: flex !important; padding: 30px 16px 20px !important; }
main .finestre .finestra.f-cta svg { width: 40px; height: 41px; }
main .finestre .finestra.f-cta b { font-size: 1rem; }
main .finestre .finestra.f-cta small { font-size: .76rem; }

/* D. icone: ora i file hanno margine, servono solo misure coerenti */
.lista-doodle .ld-ico.ld-raw { flex: 0 0 62px; width: 62px; height: 62px; align-self: flex-start; display: grid; place-items: center; }
.lista-doodle .ld-ico.ld-raw :is(img,.imgdec) { width: 58px !important; height: 58px !important; object-fit: contain; }
.timbro-fatto img.tf-segno { position: absolute; top: 12px; right: 14px; width: 30px; height: auto; object-fit: contain;
  max-width: none; object-fit: contain; opacity: 1; margin: 0; }
.timbro-fatto { padding: 14px 52px 14px 16px !important; }

/* E. voci a 2 colonne: separatore punteggiato come nel desktop */
.perche4[style*="repeat(2,1fr)"] .p4-voce:nth-child(odd) { padding-right: 14px !important; }
.perche4[style*="repeat(2,1fr)"] .p4-voce:nth-child(even) { padding-left: 14px !important; border-left: 3px dotted var(--azzurro) !important; }
.perche4 .p4-voce .p4-ico { display: flex; align-items: flex-end; height: 42px; }

/* F. payoff sempre su una riga, anche su schermi stretti */
.mfooter .payoff, .payoff { white-space: nowrap; font-size: min(4.6vw, 1.05rem); }

/* ================================================================
   RESPIRO: spaziature verticali coerenti su tutto il mobile
   (regola: 26px tra blocchi affini, 34-40px tra blocchi diversi)
   ================================================================ */
.sezione { padding: 52px 0; }
.sezione-testa { margin-bottom: 26px; }
.sezione-testa p, .sub-sezione { margin-top: 12px; }

/* griglie di voci: righe ben separate */
.perche4 { row-gap: 30px !important; column-gap: 18px !important; margin-top: 30px; }
.perche4 .p4-voce p { margin-top: 6px; }
.minigriglia { gap: 14px; margin-top: 20px; }
.lista-doodle { gap: 24px; margin-top: 24px; }
.lista-doodle.due { gap: 24px; }
.guide { gap: 14px; margin-top: 24px; }
.mgrid2 { gap: 12px; margin-top: 18px; }

/* blocchi consecutivi dentro la stessa sezione */
.blocchi-2 > * + *, .split > * + * { margin-top: 34px; }
.comp2 > * + *, .acc3 > * + * { margin-top: 20px; }
.blocchi-2 + .blocchi-2, .blocchi-2 + .perche4, .perche4 + .blocchi-2 { margin-top: 40px; }

/* elementi che si incollavano al testo precedente */
.community-chiusa { margin-top: 40px !important; }
.nota-post, .mnota, .strappo-wrap, .rft { margin-top: 30px; }
.tick-lista { gap: 24px; margin-top: 30px; }
.biglietti > * + * { margin-top: 16px; }
.storie-t { gap: 20px; margin-top: 26px; }
.fatti-timbri { gap: 12px; margin-top: 30px; }
.mquota, .quota-wrap, .tab-confronto { margin-top: 26px; }
.step-isc { gap: 26px; margin-top: 30px; }
.mstep > div { padding: 15px 0; }
.req-lista { gap: 12px; margin-top: 16px; }
.lista-check li { padding: 9px 0; }
.mblocco { margin-top: 34px; }
.dist-gruppo { margin-top: 24px; }
.boarding-lista { gap: 18px; margin-top: 26px; }
.scuole-chips { gap: 12px; margin-top: 26px; }
.pilastri { gap: 14px !important; margin-top: 26px; }
.numeri { margin-top: 30px; gap: 10px; }
.stati-note { gap: 26px; }
.stato-nota { margin-top: 0; }
.griglia-foto { padding-top: 26px; }
.snap { padding-top: 24px; }
.snap-hint { margin-top: 14px; }

/* titoli interni: staccati da ciò che li precede */
.wrap > h3, .wrap > h2:not(:first-child) { margin-top: 34px; }
h3 + .mstep, h3 + .paga, h3 + .mgrid2, h3 + .mchips { margin-top: 16px; }
.paga { margin-top: 16px; }
.mchips { margin-top: 18px; }

/* paragrafi lunghi */
.prosa p + p, .corpo p + p, .blocco-info p + p { margin-top: 12px; }


/* ============ RESPIRO 2: distacchi netti tra blocco e blocco ============ */
/* card/riquadri e griglie che seguono: mai a filo */
.blocco-info + .perche4, .blocco-info + *, .strappo-wrap + *, .mquota + *,
.quota-wrap + *, .tab-confronto + *, .orario + *, .routine + * { margin-top: 34px; }
.blocchi-2 > .perche4, .blocchi-2 > .blocco-info { margin-top: 34px; }
.blocchi-2 .perche4 { margin-top: 36px !important; }

/* voci a 2 colonne: più aria dentro e attorno */
.perche4 { row-gap: 36px !important; margin-top: 36px !important; margin-bottom: 8px; }
.perche4 .p4-voce h3 { margin-top: 10px; }
.perche4 .p4-voce p { margin-top: 8px; }

/* riquadri: padding interno più generoso */
.blocco-info { padding: 22px 20px !important; }
.strappo { padding: 30px 24px; }
.nota-post, .mnota { padding: 18px 20px; }
.acc, .mpast { padding: 20px 18px; }
.st-card, .mstoria { padding: 22px 20px; }
.timbro-fatto { padding: 18px 52px 18px 18px !important; }
.mquota { padding: 6px 18px; }
.mquota .riga { padding: 16px 0; }

/* titoli di sezione: staccati sopra e sotto */
.sezione-testa { margin-bottom: 30px; }
.sezione-testa h2 { margin-top: 12px; }
.wrap > h3 { margin-top: 40px; margin-bottom: 4px; }

/* liste e paragrafi */
.lista-check li { padding: 11px 0; }
.req-lista { gap: 14px; }
.cq small, .mchips small { line-height: 1.35; }
.mchips { gap: 20px 10px; }

/* ============ ACCREDITAMENTI: fascia ordinata, card uniformi ============ */
.loghi { padding: 34px 0 28px; }
.loghi .wrap { padding: 0 18px; }
.loghi-titolo { font-size: .66rem !important; letter-spacing: .2em !important; color: var(--testo2) !important; margin-bottom: 20px !important; }
.loghi .loghi-in {
  display: grid !important; grid-template-columns: 1fr 1fr; gap: 10px; padding: 0;
}
.loghi .loghi-in img {
  height: 84px !important; width: 100%; object-fit: contain; margin: 0;
  background: #fff; border-radius: 14px; padding: 12px 14px;
  border: 2px solid rgba(42,65,109,.08); box-shadow: none;
  filter: none; opacity: 1;
}
/* il certificato verticale (Dimitto) su una riga tutta sua, più alto */
.loghi .loghi-in img.logo-alto { grid-column: 1 / -1; height: 104px !important; padding: 12px; }
/* in WordPress ogni logo sta dentro una <figure> che porta le classi della foto:
   la figura sparisce dalla griglia e la foto torna a esserne la cella */
.loghi .loghi-in > figure { display: contents; }
.loghi .loghi-in > figure.logo-alto > img { grid-column: 1 / -1; height: 104px !important; padding: 12px; }

/* ============ FAQ: card retraibili colorate ============ */
.faq-gruppo { margin-top: 34px; }
.faq-gruppo > h2 { font-size: 1.22rem; margin-bottom: 14px; }
.faq-griglia { display: grid !important; grid-template-columns: 1fr !important; gap: 10px !important; }
.faq-card { background: #fff; border: 2.5px solid var(--tinta); border-radius: 16px; overflow: hidden;
  box-shadow: 3px 4px 0 color-mix(in srgb, var(--tinta) 22%, transparent); }
.faq-card summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 12px;
  padding: 15px 16px; font-weight: 800; font-size: .95rem; color: var(--navy); }
.faq-card summary::-webkit-details-marker { display: none; }
.faq-card summary::after { content: '+'; margin-left: auto; flex: none; width: 26px; height: 26px;
  border-radius: 50%; background: var(--tinta); color: #fff; display: grid; place-items: center;
  font-family: var(--script); font-size: 1.35rem; line-height: 0; transition: rotate .25s var(--molla); }
.faq-card[open] summary::after { rotate: 45deg; }
.faq-card[open] summary { border-bottom: 2px dotted var(--tinta); }
.faq-card .faq-corpo { padding: 14px 16px 16px; font-size: .88rem; color: var(--testo2); }
.faq-card .faq-corpo b { color: var(--navy); }
.faq-card .faq-corpo a { color: var(--rosso); font-weight: 800; }

/* le parole evidenziate non si spezzano mai a metà */
h1 .parola-rossa, h1 .parola-gialla, h1 .parola-bianca, h1 .parola-azzurra, h1 .parola-rosa,
h2 .parola-rossa, h2 .parola-gialla, h2 .parola-bianca, h2 .parola-azzurra, h2 .parola-rosa,
h3 .parola-rossa, h3 .parola-gialla, h3 .parola-bianca,
.finale h2 span, .mhero h1 .riga { white-space: nowrap; }
.finale h2 { text-wrap: balance; }

/* ============ CTA flottante mobile ============ */
.fab { position: fixed; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 58;
  display: flex; flex-direction: column; align-items: flex-end; gap: 9px; }
.fab .fab-voce { display: flex; align-items: center; gap: 8px; text-decoration: none; font-weight: 800; font-size: .88rem;
  background: #fff; color: var(--navy); border: 2.5px solid var(--navy); border-radius: 99px; padding: 10px 16px;
  box-shadow: 0 8px 20px rgba(42,65,109,.18); opacity: 0; translate: 0 10px; pointer-events: none;
  transition: opacity .22s, translate .28s var(--molla); }
.fab .fab-voce svg { width: 16px; height: 16.4px; }
.fab.aperto .fab-voce { opacity: 1; translate: 0; pointer-events: auto; }
.fab .fab-voce.cta-scrivi { background: var(--rosso); border-color: var(--rosso); color: #fff; }
.fab-bolla { width: 56px; height: 56px; border-radius: 50%; border: 0; background: var(--navy); color: #fff;
  display: grid; place-items: center; box-shadow: 0 10px 24px rgba(42,65,109,.32); position: relative;
  transition: rotate .35s var(--molla), background .2s; }
.fab-bolla svg { width: 24px; height: 24.6px; color: var(--giallo); transition: opacity .2s; }
.fab-bolla .chiudi { position: absolute; font-size: 1.6rem; line-height: 1; opacity: 0; transition: opacity .2s; }
.fab.aperto .fab-bolla { rotate: 90deg; background: var(--rosso); }
.fab.aperto .fab-bolla svg { opacity: 0; }
.fab.aperto .fab-bolla .chiudi { opacity: 1; rotate: -90deg; }
.fab.nascosto { visibility: hidden; opacity: 0; pointer-events: none; }
@media (prefers-reduced-motion: reduce) { .fab * { transition: none !important; } }

/* routine mobile: ora sopra, testo sotto, ben distanziati */
.routine .r-voce { grid-template-columns: 1fr; gap: 4px; padding: 14px 0; }
.routine .r-ora { margin-bottom: 2px; }

/* la CTA deve stare SOPRA la barra di Safari, non dietro */
.fab { bottom: calc(92px + env(safe-area-inset-bottom, 0px)) !important; }

/* contrasto garantito sulle etichette delle tessere (testo su foto) */
main .finestre .finestra .velo, main .finestre .finestra .finestra-velo {
  background: linear-gradient(180deg, rgba(42,65,109,0) 34%, rgba(42,65,109,.55) 58%, rgba(42,65,109,.92) 100%) !important;
}
main .finestre .finestra .paese, main .finestre .finestra .tipo { text-shadow: 0 1px 4px rgba(20,32,58,.9); }
main .finestre .finestra .tipo { opacity: 1; color: #EAF2FF; }

/* la foto dell'hero ha la cornice polaroid disegnata via CSS (il file è senza) */
.mhero .polaroid .pol-cornice { border: 11px solid #fff; border-bottom-width: 40px; border-radius: 3px;
  box-shadow: 0 16px 34px rgba(42,65,109,.22); }

/* footer: claim e accreditamenti */
.mfooter .mf-claim { font-size: .84rem; margin-top: 10px; color: #C8D8F2; }
.mfooter .mf-cert { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }
.mfooter .mf-cert .cert { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16);
  border-radius: 99px; padding: 4px 11px; font-size: .68rem; font-weight: 700; color: #C8D8F2; }

/* elenco distretti scolastici (sostituisce le etichette della mappa, rimossa su mobile) */
.distretti { list-style: none; padding: 0; margin: 22px 0 0; display: grid; gap: 12px; }
.distretti li { font-size: .86rem; color: var(--testo2); padding-left: 14px; border-left: 3px solid var(--azzurro); }
.distretti b { color: var(--navy); display: block; font-size: .92rem; }

/* etichette sulle tessere: fascia piena in basso, contrasto garantito su qualsiasi foto */
main .finestre .finestra::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 46%;
  background: linear-gradient(180deg, rgba(23,36,64,0) 0%, rgba(23,36,64,.72) 45%, rgba(23,36,64,.95) 100%); z-index: 1; }
main .finestre .finestra .paese, main .finestre .finestra .tipo { z-index: 2; }
main .finestre .finestra .tipo { color: #fff; opacity: .95; }

/* etichette per i lettori di schermo, invisibili a video */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

/* decorazioni di carta: immagini presentazionali, quindi in CSS e non nel markup */
.imgdec { display: block; background: var(--img) center / contain no-repeat; pointer-events: none; }

/* marchio della banca nella sezione finanziamento (fondo navy) */
.marchio-banca { display: block; margin: 26px auto 0; width: fit-content; opacity: .95; }
.marchio-banca img { width: 230px; height: auto; display: block; }
@media (max-width: 560px) { .marchio-banca img { width: 170px; } }

/* biglietto Dual Diploma */
.biglietto-dual { width: min(100%, 300px); height: auto; margin: 18px auto 0; display: block; rotate: -2deg;
  filter: drop-shadow(0 10px 20px rgba(42,65,109,.18)); }

/* quote: rimando alla brochure */
.quota-cta { margin: 22px 0 0; background: #fff; border: 2.5px dashed var(--azzurro); border-radius: 16px;
  padding: 22px 18px 20px; text-align: center; box-shadow: 4px 5px 0 rgba(126,195,231,.2); }
.quota-cta .qc-eti { display: inline-block; font-size: .7rem; font-weight: 800; letter-spacing: .14em;
  text-transform: uppercase; color: var(--rosso); margin-bottom: 8px; }
.quota-cta p { color: var(--testo2); font-size: .92rem; margin: 0 0 18px; }

/* webinar */
.webinar-lista { display: block; margin-top: 20px; }
.webinar-lista > * + * { margin-top: 14px; }
.wb { display: grid; grid-template-columns: 78px 1fr; background: #fff; border: 2.5px solid var(--navy);
  border-radius: 16px; overflow: hidden; text-decoration: none; color: inherit; box-shadow: 4px 5px 0 rgba(42,65,109,.14); }
.wb-data { background: var(--tinta); color: var(--tc, var(--navy)); display: flex; flex-direction: column;
  align-items: center; justify-content: center; border-right: 2.5px dashed var(--navy); padding: 16px 6px; }
.wb-data b { font-size: 1.9rem; line-height: 1; font-weight: 800; }
.wb-data small { font-family: var(--script); font-size: .9rem; }
.wb-corpo { padding: 16px 16px 14px; }
.wb-eti { font-size: .66rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--rosso); }
.wb-corpo h3 { font-size: 1.02rem; margin: 5px 0 10px; }
.wb-punti { list-style: none; display: grid; gap: 6px; margin-bottom: 12px; }
.wb-punti li { position: relative; padding-left: 20px; font-size: .86rem; color: var(--testo2); }
.wb-punti li::before { content: '✓'; position: absolute; left: 0; color: var(--rosso); font-weight: 800; }
.wb-vai { font-weight: 800; color: var(--rosso); font-size: .9rem; }
.wb-nota { margin-top: 18px; font-size: .88rem; color: var(--testo2); text-align: center; }

/* ============ hero Orizzonte (telefono) ============ */
/* La foto è verticale (1055×1491), quindi sul telefono sta nel suo formato naturale:
   il testo si appoggia in basso, dove il velo è più fitto. */
.mhero-oriz { position: relative; padding: 0; min-height: 88svh; display: flex; align-items: flex-end;
  overflow: hidden; background: var(--navy); }
.mhero-oriz .ho-foto { position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: 50% 30%; }
.mhero-oriz .ho-velo { position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(24,38,68,.58) 0%, rgba(24,38,68,.12) 20%,
    rgba(24,38,68,.26) 40%, rgba(24,38,68,.80) 66%, rgba(24,38,68,.96) 100%); }
.mhero-oriz .ho-in { position: relative; z-index: 3; width: 100%; padding: 0 18px 26px; }

.mhero-oriz .kicker { background: rgba(255,255,255,.18); color: #fff; box-shadow: none;
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.mhero-oriz .kicker svg { width: 1em; height: 1.02em; }
.mhero-oriz h1 { color: #fff; font-size: clamp(1.95rem, 8.4vw, 2.4rem); line-height: 1.08;
  margin: 14px 0 10px; font-weight: 700; text-shadow: 0 2px 26px rgba(20,32,58,.5); }
.mhero-oriz h1 .riga { display: block; }
.mhero-oriz .sub { color: #fff; font-weight: 500; font-size: .95rem; max-width: 34ch;
  text-shadow: 0 1px 14px rgba(20,32,58,.8); }
.mhero-oriz .cta2 { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 18px; }
.mhero-oriz .cta2 .btn { padding: 13px 8px; font-size: .88rem; }
.mhero-oriz .btn-fantasma { color: #fff; border-color: #fff; }

/* le quattro voci in due file: stessa idea della striscia da computer, formato telefono */
.mhero-oriz .ho-strip { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; margin-top: 20px;
  padding-top: 16px; border-top: 1px solid rgba(255,255,255,.22); }
.mhero-oriz .ho-strip .voce { display: flex; align-items: center; gap: 8px; color: #fff;
  text-decoration: none; font-weight: 750; font-size: .7rem; letter-spacing: .09em;
  text-transform: uppercase; text-shadow: 0 1px 10px rgba(20,32,58,.6); }
.mhero-oriz .ho-strip .voce span.p { width: 8px; height: 8px; border-radius: 50%;
  background: var(--tinta); flex: none; }

/* ---- elementi che galleggiano sopra la foto ---- */
.mhero-oriz .ho-deco { position: absolute; inset: 0; z-index: 2; pointer-events: none; }
.mhero-oriz .ho-deco .segno { position: absolute; display: block; aspect-ratio: 748.59/768;
  filter: drop-shadow(0 3px 10px rgba(20,32,58,.4)); }
.mhero-oriz .ho-deco .segno svg { width: 100%; height: 100%; display: block; }
.mhero-oriz .ho-toppa { position: absolute; display: block; height: auto;
  background: var(--img) center / contain no-repeat;
  filter: drop-shadow(0 8px 18px rgba(20,32,58,.5)); }

/* Tre percorsi diversi: nessuno galleggia come il vicino. Solo 'translate' e 'rotate',
   proprietà che il telefono anima senza ridisegnare nulla. */
@keyframes fl-a { 0%,100% { translate: 0 0; rotate: 0deg }
  33% { translate: 6px -9px;  rotate: 2.4deg } 66% { translate: -3px -14px; rotate: -1.6deg } }
@keyframes fl-b { 0%,100% { translate: 0 0; rotate: 0deg }
  30% { translate: -8px -6px; rotate: -3deg }  70% { translate: 4px -12px; rotate: 1.8deg } }
@keyframes fl-c { 0%,100% { translate: 0 0; rotate: 0deg }
  25% { translate: 5px 7px;   rotate: 1.4deg } 60% { translate: -6px -8px; rotate: -2.6deg } }
.mhero-oriz .flott { animation: fl-a 9s ease-in-out infinite; }
.mhero-oriz .flott.f2 { animation-name: fl-b; animation-duration: 11s;  animation-delay: -4s; }
.mhero-oriz .flott.f3 { animation-name: fl-c; animation-duration: 8s;   animation-delay: -6s; }
.mhero-oriz .flott.f4 { animation-name: fl-b; animation-duration: 13s;  animation-delay: -2s; }
.mhero-oriz .flott.f5 { animation-name: fl-a; animation-duration: 10.5s; animation-delay: -7s; }
.mhero-oriz .flott.f6 { animation-name: fl-c; animation-duration: 12s;  animation-delay: -3s; }
.mhero-oriz .flott.f7 { animation-name: fl-a; animation-duration: 14s;  animation-delay: -9s; }
@media (prefers-reduced-motion: reduce) { .mhero-oriz .flott { animation: none; } }

/* la testata diventa vetro anche sul telefono */
.mtesta { background: rgba(255,255,255,.72);
  backdrop-filter: blur(20px) saturate(180%); -webkit-backdrop-filter: blur(20px) saturate(180%);
  border-bottom: 1px solid rgba(255,255,255,.5);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.75), 0 6px 20px rgba(42,65,109,.07); }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .mtesta { background: rgba(255,248,239,.97); }
}

/* ═══════════════════════════════════════════════════════════════════════
   HOME — il markup ora è uno solo, quello da computer: qui il livello telefono.
   (Prima la home aveva un gemello con markup proprio; unificando resta questo.)
   ═══════════════════════════════════════════════════════════════════════ */

/* ---- hero Orizzonte: la foto è verticale, il testo si appoggia in basso ---- */
.hero-orizzonte { min-height: 88svh; display: flex; align-items: flex-end; padding: 0; }
.hero-orizzonte .ho-foto { object-position: 50% 30%; }
.hero-orizzonte .ho-velo {
  background: linear-gradient(180deg, rgba(24,38,68,.58) 0%, rgba(24,38,68,.12) 20%,
    rgba(24,38,68,.26) 40%, rgba(24,38,68,.80) 66%, rgba(24,38,68,.96) 100%);
}
.hero-orizzonte .ho-in { padding: 0 18px 26px; max-width: none; }
.hero-orizzonte .kicker { background: rgba(255,255,255,.18); color: #fff; box-shadow: none;
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.hero-orizzonte h1 { font-size: clamp(1.95rem, 8.4vw, 2.4rem); line-height: 1.08; margin: 14px 0 10px; max-width: none; }
.hero-orizzonte p.sub { font-size: .95rem; max-width: 34ch; }
.hero-orizzonte .hero-cta { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 18px; }
.hero-orizzonte .hero-cta .btn { padding: 13px 8px; font-size: .88rem; }
.hero-orizzonte .ho-strip { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px;
  margin-top: 20px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.22); }
.hero-orizzonte .ho-strip .voce { font-size: .7rem; letter-spacing: .09em; }

/* Gli elementi che galleggiano: sul telefono il testo occupa la metà bassa, quindi
   restano solo quelli che stanno nella fascia alta libera. Le posizioni da computer
   sono scritte in linea sul markup, perciò qui vanno riscritte una per una.
   Si accende solo ciò che serve: sia i segni sia le toppe partono spenti
   (`.segno.flott` da questo foglio, `.ho-toppa` dalla media query del desktop). */
.ho-deco > .flott:nth-child(1),
.ho-deco > .flott:nth-child(3),
.ho-deco > .flott:nth-child(4),
.ho-deco > .flott:nth-child(6),
.ho-deco > .flott:nth-child(7),
.ho-deco > .flott:nth-child(10),
.ho-deco > .flott:nth-child(11),
.ho-deco > .flott:nth-child(12) { display: block; }

.ho-deco > * { --t: auto; --l: auto; --r: auto; --w: 30px;
  top: var(--t) !important; bottom: auto !important;
  left: var(--l) !important; right: var(--r) !important; width: var(--w) !important; }
.ho-deco > :nth-child(1)  { --t: 4%;  --r: 8%;  --w: 40px; }   /* stella gialla */
.ho-deco > :nth-child(3)  { --t: 18%; --l: 4%;  --w: 30px; }   /* arco azzurro */
.ho-deco > :nth-child(4)  { --t: 5%;  --l: 34%; --w: 22px; }   /* linea gialla */
.ho-deco > :nth-child(6)  { --t: 6%;  --l: 6%;  --w: 30px; }   /* finestre */
.ho-deco > :nth-child(7)  { --t: 13%; --r: 46%; --w: 20px; }   /* stella rossa */
.ho-deco > :nth-child(10) { --t: 20%; --r: 32%; --w: 26px; }   /* punto giallo */
.ho-deco > :nth-child(11) { --t: 12%; --r: 5%;  --w: 68px; }   /* toppa Curiosity */
.ho-deco > :nth-child(12) { --t: 19%; --l: 26%; --w: 56px; }   /* toppa Courage */

/* ---- i super poteri: cinque colonne da computer, due sul telefono ---- */
/* .potere aveva width:200px perché nel gemello scorreva di lato: in griglia sfora. */
.poteri { grid-template-columns: 1fr 1fr; gap: 24px 14px; }
.potere { width: auto; }
.snap .potere { width: 200px; }   /* nel carosello della home resta una card */
.potere img { max-width: 104px; }
.potere b { font-size: .98rem; }
.potere p { font-size: .84rem; line-height: 1.45; }

/* ============ RITOCCHI 10/09: niente buchi, niente cose fuori posto ============ */
/* bandi: il riquadro-esito del check era invisibile ma occupava 160px */
.esito-check { display: none; }
.esito-check.si { display: block; }
/* chi siamo: le due liste dei «motivi» sono una sola colonna, senza salto a metà */
.blocchi-2 > .lista-check + .lista-check { margin-top: 0; }

/* polaroid dentro il testo: sul computer sono inline-block dentro colonne
   affiancate, sul telefono la colonna è una sola e restavano incollate a
   sinistra con un buco a destra (anno all'estero, storie).
   ⚠ nell'hero la seconda polaroid resta nascosta (.hero-foto .polw ~ .polw):
   la regola vale solo FUORI dall'hero, altrimenti l'!important la risveglia. */
main :not(.hero-foto) > .polw { display: block !important; margin-left: auto !important; margin-right: auto !important; }
