/* vetrina.css — design system della vetrina ExtremeCast (09/09/2026). Fonte: docs/design/vetrina_preview_2026-09-09/pagine/ds.css.
   Usato da /home-preview. NON e' caricato da index.html, dalle altre pagine, da /radar-osservato ne' dalle app. */
:root{
  --bg:#07111f; --bg2:#0b182a; --panel:#0f2137; --panel2:#0c1c30;
  --line:rgba(185,225,255,.16); --line2:rgba(185,225,255,.09);
  --text:#eef7ff; --muted:#a9bdd0; --soft:#d9ebf7;
  --cyan:#67dcff; --blue:#4b8dff; --green:#7ee7a8; --yellow:#ffd166; --violet:#b78cff; --red:#ff5d6c;
  --shadow:0 20px 60px rgba(0,0,0,.35);
  --r:20px; --r2:14px; --max:1180px;
}
*{box-sizing:border-box}
/* PWA standalone (09/09): fondo SOLIDO sull'elemento radice (la sola immagine-gradiente sul body lascia il colore di fondo
   trasparente: il sistema, dove deve dipingere l'area della status bar o l'overscroll, ricade sul bianco) e safe-area come
   in /meteo e /montagna (viewport-fit=cover + status bar translucent: l'header si allunga sotto la status bar col suo fondo). */
/* scrollbar-gutter SEMPRE riservato (non solo a menu aperto): trovato dal banco il 09/09 su /montagna-funzioni-preview a zoom 150 %:
   riservarlo solo all'apertura cambiava la larghezza del contenuto di 15 px → reflow del testo → lo scroll anchoring spostava la pagina
   di 44 px. Con il gutter stabile la larghezza non cambia quando overflow diventa hidden; dove le scrollbar sono overlay non riserva nulla. */
html{background:var(--bg);scroll-behavior:smooth;scroll-padding-top:calc(90px + env(safe-area-inset-top,0px));scrollbar-gutter:stable}
body{margin:0;padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--text);font-size:16px;line-height:1.6;
  background:radial-gradient(circle at 15% 0%, rgba(103,220,255,.16), transparent 30rem),radial-gradient(circle at 90% 10%, rgba(75,141,255,.12), transparent 26rem),linear-gradient(180deg,var(--bg),#050b14 70%,#04070d);min-height:100vh}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{width:min(var(--max),calc(100% - 40px));margin-inline:auto}
.skip{position:absolute;left:-999px}
b,strong{color:var(--text)}
/* ── header ─────────────────────────────────────────── */
.topbar{position:sticky;top:0;z-index:50;backdrop-filter:blur(16px);background:rgba(7,17,31,.78);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top,0px)}
.nav{min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:17px;letter-spacing:-.2px}
.brand img{width:36px;height:36px;border-radius:10px}
.navlinks{display:flex;align-items:center;gap:6px;font-size:14.5px;color:var(--soft)}
.navlinks>a,.navlinks details>summary{padding:8px 11px;border-radius:10px;font-weight:600;white-space:nowrap}
.navlinks>a:hover,.navlinks summary:hover{background:rgba(255,255,255,.06);color:var(--text)}
.navlinks a.pro{color:var(--violet)}
.dd{position:relative}
.dd>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.dd>summary::-webkit-details-marker{display:none}
.dd>summary::after{content:'▾';font-size:11px;opacity:.7}
.dd-menu{position:absolute;top:calc(100% + 8px);left:0;min-width:180px;padding:6px;border-radius:14px;border:1px solid var(--line);background:#0b1422;box-shadow:0 18px 40px rgba(0,0,0,.5);z-index:60}
.dd-menu a{display:block;padding:9px 11px;border-radius:9px;font-size:14px;font-weight:600;color:#cfe0f5}
.dd-menu a:hover{background:rgba(103,220,255,.12);color:var(--cyan)}
.lang>summary{padding:6px 9px;border:1px solid var(--line);border-radius:9px;font-size:12px;font-weight:800;letter-spacing:.4px;margin-left:6px}
.lang .dd-menu{left:auto;right:0}
.acct{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;color:var(--soft);margin-left:4px}
.acct svg{width:18px;height:18px}
.nav-install{display:none}
.nav-cta{margin-left:6px;padding:10px 16px;border-radius:999px;background:linear-gradient(135deg,var(--cyan),var(--blue));color:#03101f;font-weight:800;font-size:14px}
.mobile-toggle{display:none;border:1px solid var(--line);background:rgba(255,255,255,.05);color:var(--text);border-radius:12px;padding:10px 14px;font-weight:700;font:inherit;font-weight:700}
/* account (account.js) : due host, uno nella barra (mobile) e uno nella riga dei link (desktop). Su mobile il pannello del menu e' fixed e
   scorrevole (overflow) e TAGLIEREBBE la tendina dell'account: per questo l'omino sta nella barra, sempre visibile, con la tendina
   ancorata all'header (vincolo Francesco 09/09). */
.nav-bar-right{display:flex;align-items:center;gap:10px}
/* 09/09 sera — specificita' (0,2,0): la regola generica `.nav-acct{display:inline-flex}` aggiunta in coda dal generatore, a pari specificita', vinceva
   su `.nav-acct-bar{display:none}` e su desktop si vedevano DUE omini (segnalato da Francesco). Con due classi la regola vince a prescindere dall'ordine. */
.nav-acct.nav-acct-bar{display:none}
/* ── comuni ─────────────────────────────────────────── */
.ico{display:inline-flex;align-items:center;vertical-align:-.14em}
.ico svg{width:1.05em;height:1.05em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
h1,h2,h3{margin:0;line-height:1.08;text-wrap:balance}
h1{font-size:clamp(36px,5.2vw,62px);font-weight:800;letter-spacing:-1.6px}
h2{font-size:clamp(26px,3.3vw,40px);font-weight:800;letter-spacing:-1px}
h3{font-size:19px;font-weight:700;letter-spacing:-.2px}
.kicker{color:var(--cyan);font-weight:800;letter-spacing:.12em;text-transform:uppercase;font-size:12px;margin-bottom:12px}
.lead{color:var(--soft);font-size:clamp(17px,1.6vw,19px);line-height:1.6;max-width:640px;margin:16px 0 0}
p{margin:0;color:var(--muted);line-height:1.62}
section{padding:88px 0}
section.tight{padding:56px 0}
.head{max-width:760px;margin-bottom:36px}
.btn{min-height:50px;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:0 20px;border-radius:14px;border:1px solid transparent;font-weight:800;font-size:15.5px;cursor:pointer;font-family:inherit;transition:transform .15s ease,filter .15s ease}
.btn:hover{transform:translateY(-1px);filter:brightness(1.06)}
.btn.primary{background:linear-gradient(135deg,var(--cyan),var(--blue));color:#03101f;box-shadow:0 14px 36px rgba(75,141,255,.28)}
.btn.secondary{background:rgba(255,255,255,.06);border-color:var(--line);color:var(--text)}
.btn.ghost{background:transparent;border-color:var(--line);color:var(--soft)}
.btn.pro{background:linear-gradient(135deg,#b78cff,#7c5cff);color:#0b0620;box-shadow:0 14px 36px rgba(124,92,255,.28)}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.tag{display:inline-flex;align-items:center;font-size:12px;font-weight:800;letter-spacing:.02em;padding:4px 10px;border-radius:999px;vertical-align:middle}
.tag.free{color:var(--green);background:rgba(126,231,168,.14);border:1px solid rgba(126,231,168,.3)}
.tag.pro{color:var(--violet);background:rgba(183,140,255,.14);border:1px solid rgba(183,140,255,.34)}
.tag.ita{color:var(--soft);background:rgba(255,255,255,.06);border:1px solid var(--line)}
.checks{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:10px}
.checks li{display:flex;gap:11px;align-items:flex-start;color:var(--soft);line-height:1.5}
.checks li .ico{color:var(--green);flex:0 0 auto;margin-top:3px}
.checks.pro li .ico{color:var(--violet)}
.small{color:var(--muted);font-size:14px;line-height:1.5}
.more{color:var(--cyan);font-weight:700;font-size:15px}
.more::after{content:' →'}
/* frame per le preview del prodotto */
figure{margin:0}
.frame{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#0a1728;box-shadow:var(--shadow)}
.frame.browser .chrome{display:flex;align-items:center;gap:6px;padding:10px 14px;border-bottom:1px solid var(--line2);background:rgba(255,255,255,.04)}
.frame.browser .chrome i{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.18);display:block}
.frame.browser .chrome span{margin-left:10px;font-size:12px;color:var(--muted);background:rgba(255,255,255,.05);padding:3px 10px;border-radius:6px}
.frame img{width:100%;height:auto}
figcaption{color:var(--muted);font-size:13.5px;line-height:1.5;margin-top:12px}
figcaption b{color:var(--soft)}
/* ── hero ───────────────────────────────────────────── */
.hero{padding:64px 0 40px}
.hero-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:44px;align-items:center}
.eyebrow{display:inline-flex;align-items:center;gap:9px;padding:7px 12px;border:1px solid var(--line);border-radius:999px;color:#d7f3ff;background:rgba(103,220,255,.08);font-size:13.5px;font-weight:600;margin-bottom:22px}
.dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 5px rgba(126,231,168,.14)}
.hero-note{margin-top:18px;color:var(--muted);font-size:14px;display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}
.lnk{display:inline-flex;align-items:center;gap:7px;color:var(--soft);font-weight:700;font-size:14px;background:none;border:0;padding:0;cursor:pointer;font-family:inherit}
.hero .frame.phone{display:none}
.hero .strip{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.method{margin:26px 0 0;padding-top:18px;border-top:1px solid var(--line2);display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;color:var(--soft);font-size:14px;font-weight:600;line-height:1.5}
.method-k{color:var(--muted);font-weight:600;font-size:12px;letter-spacing:.1em;text-transform:uppercase;margin-right:4px}
.method i{width:4px;height:4px;border-radius:50%;background:var(--cyan);display:inline-block;opacity:.85}
.method-more{color:var(--cyan);font-weight:700;margin-left:4px}
.method-more::after{content:' →'}
.chip{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--soft);font-size:13.5px;font-weight:600}
.chip .ico{color:var(--cyan)}
/* ── accesso rapido ─────────────────────────────────── */
.quick{padding:40px 0 72px}
.qgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.qcard{display:flex;flex-direction:column;gap:10px;padding:22px 22px 20px;border:1px solid var(--line);border-radius:var(--r);background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.025));transition:border-color .15s,transform .15s}
.qcard:hover{border-color:rgba(103,220,255,.45);transform:translateY(-2px)}
.qcard.pro:hover{border-color:rgba(183,140,255,.55)}
.qcard .qi{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:rgba(103,220,255,.12);color:var(--cyan)}
.qcard.pro .qi{background:rgba(183,140,255,.14);color:var(--violet)}
.qcard .qi svg{width:24px;height:24px;stroke-width:1.8}
.qcard h3{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:20px}
.qcard p{font-size:14.5px;flex:1}
.qcard .more{margin-top:4px}
.qcard.pro .more{color:var(--violet)}
/* ── sezioni servizio ───────────────────────────────── */
.svc{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.svc.rev>.txt{order:2}
.svc .txt h2{margin-top:0}
.svc .txt .lead{margin-top:14px;font-size:17px}
.svc .txt .actions{margin-top:24px}
.svc .txt .more{display:inline-block;margin-top:10px}
/* radar: due preview */
.radar-figs{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:16px;align-items:end}
.radar-figs .tall{width:min(210px,100%)}
.radar-figs .tall img{width:100%;height:auto}
/* ── pro ────────────────────────────────────────────── */
.pro-sec{background:linear-gradient(180deg,rgba(124,92,255,.07),transparent 60%);border-top:1px solid var(--line2);border-bottom:1px solid var(--line2)}
.pro-sec .kicker{color:var(--violet)}
.method-note{margin-top:16px;padding:14px 16px;border-left:3px solid var(--violet);background:rgba(183,140,255,.07);border-radius:0 12px 12px 0;color:var(--soft);font-size:15px;line-height:1.55;max-width:760px}
.method-note a{color:var(--cyan);font-weight:700}
.compare{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.plan{padding:24px 24px 22px;border:1px solid var(--line);border-radius:var(--r);background:rgba(255,255,255,.035)}
.plan.p{border-color:rgba(183,140,255,.45);background:linear-gradient(180deg,rgba(183,140,255,.10),rgba(183,140,255,.03))}
.plan h3{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:20px;margin-bottom:4px}
.plan .sub{font-size:14px;color:var(--muted)}
.plan .checks{margin-top:14px}
.pro-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:36px;align-items:start;margin-top:8px}
.prices{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:40px}
.price-card{padding:24px;border:1px solid rgba(183,140,255,.35);border-radius:var(--r);background:rgba(255,255,255,.035);display:flex;flex-direction:column;gap:8px}
.price-card .tag{align-self:flex-start}
.price{font-size:40px;font-weight:800;letter-spacing:-1.5px;line-height:1.1;margin-top:4px}
.price small{font-size:15px;color:var(--muted);font-weight:600;letter-spacing:0}
.price-card .btn{margin-top:10px}
.price-card .small{text-align:center}
.paynote{margin-top:22px;max-width:820px}
.disclaimer{margin-top:14px;font-size:13.5px;color:var(--muted)}
/* ── metodo ─────────────────────────────────────────── */
.three{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.panel{padding:26px;border:1px solid var(--line);border-radius:var(--r);background:rgba(255,255,255,.04)}
.panel h3{margin-bottom:10px;font-size:20px}
.panel p{font-size:15px}
.panel a{color:var(--cyan);font-weight:700}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:26px}
.stat{padding:18px 20px;border:1px solid var(--line2);border-radius:var(--r2);background:rgba(255,255,255,.03)}
.stat b{display:block;font-size:28px;letter-spacing:-1px;font-variant-numeric:tabular-nums}
.stat span{display:block;color:var(--muted);font-size:13.5px;line-height:1.45;margin-top:4px}
/* ── installa ───────────────────────────────────────── */
.install{display:grid;grid-template-columns:auto 1fr auto;gap:22px;align-items:center;padding:26px 28px;border:1px solid var(--line);border-radius:var(--r);background:linear-gradient(135deg,rgba(103,220,255,.10),rgba(75,141,255,.05))}
.install .qi{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;background:rgba(103,220,255,.14);color:var(--cyan)}
.install .qi svg{width:28px;height:28px;stroke-width:1.8}
.install h3{font-size:21px;margin-bottom:4px}
/* ── faq ────────────────────────────────────────────── */
.faq{display:grid;gap:10px;max-width:860px}
.faq details{border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.04);overflow:hidden}
.faq summary{cursor:pointer;font-weight:700;padding:17px 20px;list-style:none;display:flex;justify-content:space-between;gap:14px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';color:var(--cyan);font-weight:800;font-size:20px;line-height:1}
.faq details[open] summary::after{content:'–'}
.faq details p{padding:0 20px 18px}
/* ── avviso + contatti ──────────────────────────────── */
.warning{display:flex;gap:12px;align-items:flex-start;border:1px solid rgba(255,209,102,.25);background:rgba(255,209,102,.07);color:#ffe7a8;padding:14px 18px;border-radius:14px;line-height:1.5;font-size:14.5px}
.warning .ico{flex:0 0 auto;margin-top:3px}
.contact{display:grid;grid-template-columns:1fr 1.2fr;gap:40px;align-items:start;margin-top:40px}
.reqform{display:grid;gap:14px}
.reqform .two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.reqform label{display:block;font-weight:700;font-size:13.5px;color:var(--soft);margin-bottom:6px}
.reqform input,.reqform textarea{width:100%;background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:12px;padding:12px 14px;color:var(--text);font:inherit;font-size:15px}
.reqform textarea{min-height:96px;resize:vertical}
.reqform .btn{width:fit-content}
/* ── footer ─────────────────────────────────────────── */
.footer{padding:48px 0 56px;border-top:1px solid var(--line);color:var(--muted);margin-top:20px}
.footer-grid{display:grid;grid-template-columns:1.3fr repeat(4,1fr);gap:26px}
.footer b{color:var(--text);display:block;margin-bottom:6px}
.footer a{display:block;color:var(--muted);margin-top:8px;font-size:14.5px}
.footer a:hover{color:var(--text)}
.footer .brand{margin-bottom:12px}
.footer p{font-size:14px}
.footer .legal{margin-top:34px;padding-top:18px;border-top:1px solid var(--line2);display:flex;flex-wrap:wrap;gap:8px 20px;font-size:13px}
.footer .legal a{display:inline;margin:0;font-size:13px}
/* ── responsive ─────────────────────────────────────── */
@media(max-width:1100px){
  .mobile-toggle{display:block}
  .nav-acct.nav-acct-bar{display:inline-flex}
  .navlinks .nav-acct{display:none}
  /* il pannello non deve mai superare la finestra: a zoom 200 % o su schermi bassi scorre al suo interno (vincolo robustezza 09/09) */
  .navlinks{position:fixed;left:16px;right:16px;top:calc(80px + env(safe-area-inset-top,0px));max-height:calc(100vh - 96px - env(safe-area-inset-top,0px));max-height:calc(100dvh - 96px - env(safe-area-inset-top,0px));overflow-y:auto;-webkit-overflow-scrolling:touch;display:none;flex-direction:column;align-items:stretch;gap:2px;background:rgba(8,19,34,.98);border:1px solid var(--line);border-radius:20px;padding:12px;box-shadow:var(--shadow)}
  body.menu-open .navlinks{display:flex}
  /* menu aperto = blocco dello scroll della pagina (vincolo 09/09): overflow hidden su html E body, gutter riservato cosi' la
     scrollbar che sparisce non fa saltare il layout, nessun chaining dal pannello alla pagina; su iOS lo blocca vetrina.js (touchmove). */
  /* SOLO su html: se anche body avesse overflow:hidden diventerebbe uno scroll container e l'header sticky si riposizionerebbe
     in cima al documento (pulsante Menu fuori vista a pagina scrollata) - trovato dal banco il 09/09. */
  html.menu-open{overflow:hidden}
  .navlinks{overscroll-behavior:contain}
  .navlinks>a,.navlinks details>summary{padding:12px 14px;font-size:16px}
  .dd-menu{position:static;box-shadow:none;border:0;background:transparent;padding:0 0 0 10px}
  .lang>summary{margin:0}
  .acct{display:none}
  .nav-cta{margin:8px 0 0;text-align:center;padding:14px}
  /* 09/09 sera: «Installa l'app» nel menu mobile sotto Pro (pwa-install.js lo nasconde in PWA) */
  .nav-install{display:block;width:100%;margin:6px 0 0;padding:13px 14px;border-radius:12px;border:1px solid rgba(103,220,255,.35);background:rgba(103,220,255,.10);color:var(--text);font:inherit;font-weight:700;text-align:center;cursor:pointer}
  .nav-install:hover{background:rgba(103,220,255,.16)}
  .hero-grid{grid-template-columns:1fr;gap:34px}
  .qgrid,.three,.stats{grid-template-columns:1fr 1fr}
  .svc{grid-template-columns:1fr;gap:28px}
  .svc.rev>.txt{order:0}
  .pro-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .wrap{width:min(100% - 32px,var(--max))}
  section{padding:48px 0}
  section.tight{padding:36px 0}
  .hero{padding:32px 0 20px}
  .hero .strip{display:none}
  .method{font-size:13.5px;gap:5px 9px;margin-top:20px}
  .method-k{width:100%;margin:0}
  .plan,.price-card{padding:18px}
  .panel{padding:20px}
  h1{letter-spacing:-1.2px}
  .actions .btn{width:100%}
  .hero .frame.browser{display:none}
  .hero .frame.phone{display:block;width:min(300px,100%);margin-inline:auto;border-radius:30px;padding:8px;background:#0a1728}
  .hero .frame.phone img{border-radius:22px}
  .hero-note{font-size:13.5px}
  .qgrid{grid-template-columns:1fr}
  .qcard{flex-direction:row;align-items:flex-start;padding:16px}
  .qcard .qi{flex:0 0 46px}
  .qcard .qbody{display:flex;flex-direction:column;gap:6px;flex:1}
  .compare,.prices,.three{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr 1fr;gap:10px}
  .stat b{font-size:24px}
  .radar-figs{grid-template-columns:1fr}
  .radar-figs .tall{width:min(240px,100%);margin-inline:auto}
  .install{grid-template-columns:auto 1fr}
  .install .btn{grid-column:1 / -1;width:100%}
  .contact{grid-template-columns:1fr;gap:22px}
  .reqform .two{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .price{font-size:34px}
}
@media(max-width:360px){
  .qcard{flex-direction:column}
}

/* ═══════════════════════════════════════════════════════════════════════
   PAGINE INTERNE — componenti dei template A (guida), B (servizio),
   C (commerciale), D (FAQ/informativa), E (legale)
   ═══════════════════════════════════════════════════════════════════════ */
/* breadcrumb: <nav class="crumbs"><ol><li><a>…</a></li><li aria-current="page">…</li></ol></nav> */
.crumbs ol{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-wrap:wrap;gap:4px 8px;font-size:13.5px;color:var(--muted);font-weight:600}
.crumbs li+li::before{content:'›';margin-right:8px;opacity:.6}
.crumbs a{color:var(--soft)}.crumbs a:hover{color:var(--cyan)}
.crumbs [aria-current]{color:var(--cyan)}
/* hero delle pagine interne: testo + preview facoltativa */
.page-hero{padding:48px 0 32px}
.page-hero .grid-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}
.page-hero h1{font-size:clamp(32px,4.4vw,52px)}
.page-hero .lead{margin-top:14px}
.page-hero .actions{margin-top:24px}
/* layout documento: indice laterale + colonna di lettura */
.doc-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:48px;align-items:start}
.toc{position:sticky;top:88px}
.toc>summary{list-style:none;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);margin-bottom:12px;cursor:default}
.toc>summary::-webkit-details-marker{display:none}
.toc ol{list-style:none;margin:0;padding:0;border-left:1px solid var(--line)}
.toc li a{display:block;padding:7px 0 7px 14px;margin-left:-1px;border-left:2px solid transparent;color:var(--muted);font-size:14px;line-height:1.4;font-weight:600}
.toc li a:hover{color:var(--text)}
.toc li a.on{color:var(--cyan);border-left-color:var(--cyan)}
.doc{max-width:760px}
.doc>section{padding:0;margin:0 0 44px;scroll-margin-top:96px}
.doc h2{font-size:clamp(23px,2.6vw,30px);letter-spacing:-.6px;margin:0 0 12px;padding-top:6px}
.doc h3{font-size:18px;margin:22px 0 6px;color:#e5eefb}
.doc p{color:var(--soft);font-size:16.5px;line-height:1.68;margin:10px 0}
.doc p.small{font-size:14px;color:var(--muted)}
.doc a{color:var(--cyan)}.doc a:hover{text-decoration:underline}
.doc ul.body{margin:10px 0 6px;padding-left:20px;color:var(--soft);line-height:1.62}
.doc ul.body li{margin:6px 0}
.doc ul.body li::marker{color:var(--cyan)}
.doc figure{margin:18px 0 6px}
.doc figure.tall .frame{width:fit-content;max-width:min(360px,100%);margin-inline:auto}
.doc figure.tall img{max-height:560px;width:auto}
.doc .grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.doc .grid2 figure{margin:0}
.notice{display:flex;gap:12px;align-items:flex-start;border:1px solid rgba(255,209,102,.25);background:rgba(255,209,102,.07);color:#ffe7a8;padding:14px 16px;border-radius:14px;line-height:1.55;font-size:15px;margin:16px 0}
.notice.info{border-color:rgba(103,220,255,.28);background:rgba(103,220,255,.07);color:#d7f3ff}
.notice.pro{border-color:rgba(183,140,255,.35);background:rgba(183,140,255,.07);color:#e9dcff}
.notice .ico{flex:0 0 auto;margin-top:3px}
.notice b{color:inherit}
/* mini-card per le feature dentro un documento */
.mini{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0 6px}
.mini div{padding:16px 16px 14px;border:1px solid var(--line);border-radius:var(--r2);background:rgba(255,255,255,.035)}
.mini .qi{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:rgba(103,220,255,.12);color:var(--cyan);margin-bottom:10px}
.mini .qi svg{width:19px;height:19px;stroke-width:1.9}
.mini h3{margin:0 0 4px;font-size:16px}
.mini p{margin:0;font-size:14px;color:var(--muted);line-height:1.5}
/* legenda del rischio */
.legend{display:grid;gap:10px;margin:14px 0}
.legend div{display:flex;gap:12px;align-items:flex-start;color:var(--soft);line-height:1.5;font-size:15.5px}
.legend i{flex:0 0 auto;width:18px;height:18px;border-radius:6px;margin-top:4px;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.legend i.round{border-radius:50%}
.legend b{display:block}
/* tabella */
.tbl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;margin:14px 0}
table.tbl{width:100%;border-collapse:collapse;font-size:15px}
.tbl th,.tbl td{border-bottom:1px solid var(--line);padding:12px 12px;text-align:left;vertical-align:top;color:var(--soft)}
.tbl th{background:rgba(103,220,255,.08);color:#d9f5ff;font-weight:700;font-size:13px;letter-spacing:.03em}
.tbl tr:last-child td{border-bottom:0}
.sw{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12.5px;font-weight:800}
/* elenco di FAQ come domande H3 (indicizzabili) */
.qa h3{font-size:17px;margin:0 0 6px}
.qa>div{padding:16px 0;border-top:1px solid var(--line2)}
.qa>div:first-of-type{border-top:0}
.qa p{margin:0;font-size:15.5px}
/* due pannelli CTA a fine pagina */
.split{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.split .panel h3{font-size:20px;margin-bottom:8px}
.split .panel .actions{margin-top:16px}
/* «leggi anche» */
.related{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.related a{display:block;padding:16px 18px;border:1px solid var(--line);border-radius:var(--r2);background:rgba(255,255,255,.035)}
.related a:hover{border-color:rgba(103,220,255,.45)}
.related b{display:block;font-size:15.5px;margin-bottom:4px}
.related span{color:var(--muted);font-size:13.5px;line-height:1.45}
.related a::after{content:'→';color:var(--cyan);font-weight:800;display:block;margin-top:8px}
/* elenco guide (Template A indice) */
.guide-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.guide-list a{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid var(--line);border-radius:var(--r2);padding:16px 18px;background:rgba(255,255,255,.035)}
/* pagine legali: solo tipografia */
.legal-doc{max-width:760px}
.legal-doc h2{font-size:20px;margin:28px 0 8px}
.legal-doc p,.legal-doc li{color:var(--soft);font-size:15.5px;line-height:1.65}
/* 09/09 sera — template E: blocchi, elenchi, link, nav fra i documenti */
.legal-doc .legal-block{padding:6px 0 10px;border-bottom:1px solid var(--line)}
.legal-doc .legal-block:last-child{border-bottom:0}
.legal-doc h2{padding-top:10px}
.legal-doc p{margin:8px 0}
.legal-doc ul{margin:8px 0 10px;padding-left:22px}
.legal-doc li{margin:4px 0}
.legal-doc li::marker{color:var(--cyan)}
.legal-doc a{color:var(--cyan)}.legal-doc a:hover{text-decoration:underline}
.legal-doc b{color:var(--text)}
.legal-nav{margin-top:14px}.legal-nav a{color:var(--cyan)}
/* focus visibile ovunque */
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:8px}
@media(max-width:1100px){
  .doc-layout{grid-template-columns:minmax(0,1fr);gap:20px} /* minmax(0,…): con `1fr` una tabella larga nell'articolo allargava la colonna (e il sommario) oltre i 320 px (downburst, 09/09) */
  .toc{position:static;border:1px solid var(--line);border-radius:var(--r2);padding:12px 14px;background:rgba(255,255,255,.035)}
  .toc>summary{margin:0;cursor:pointer;display:flex;justify-content:space-between}
  .toc>summary::after{content:'+';color:var(--cyan);font-size:16px}
  .toc[open]>summary::after{content:'–'}
  .toc[open]>summary{margin-bottom:8px}
  .toc ol{border-left:0;display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
  .toc li a{padding:6px 0;border-left:0;margin:0}
  .page-hero .grid-hero{grid-template-columns:1fr;gap:26px}
  .mini,.related{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .page-hero{padding:28px 0 20px}
  .page-hero h1{font-size:clamp(28px,8vw,36px)}
  .toc ol{grid-template-columns:1fr}
  .doc .grid2,.mini,.related,.split,.guide-list{grid-template-columns:1fr}
  .doc>section{margin-bottom:36px}
  .doc p{font-size:16px}
  .mini div{padding:14px}
}

/* ── raccordo con gli script condivisi (account.js, pwa-install.js, pwa-cta.js, popup.js) ── */
.nav-acct{display:inline-flex;align-items:center;margin-left:4px}
.nav-acct:empty{width:40px;height:40px}
/* legacy dell'index (overlay scelta app, guida, modal PayPal.me): markup conservato, mai mostrato senza script */
.instOverlay,.payModal{display:none}
.hp{position:absolute;left:-9999px}
.msg{font-size:14px;min-height:18px;color:var(--muted)}.msg.ok{color:var(--green)}.msg.err{color:var(--red)}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{transition:none!important;animation:none!important}html{scroll-behavior:auto}}
