/* ═══════════════════════════════════════════════════════════════════════
   ERGETICA — Direzione 2 · "NOTTE ENERGETICA"
   Tesi: il fotovoltaico non è un pannello, è un sistema che sposta energia
   nel tempo. Il sito lo mostra invece di raccontarlo.
   Firma: il "quadro di impianto" — un pannello scuro, subito sotto l'hero,
   con il flusso dell'energia (sole → moduli → inverter → casa/accumulo →
   rete) e la curva delle 24 ore per il kit selezionato. Cambiando kit,
   cambiano curva e numeri.
   Colore con un significato: oro = energia tua, blu = energia della rete.
   Non è decorazione, è la legenda del grafico.
   ═══════════════════════════════════════════════════════════════════════ */
:root{
  --notte:#070C16;
  --notte-2:#0C1322;
  --notte-3:#131D2F;
  --bordo:rgba(255,255,255,.10);
  --bordo-2:rgba(255,255,255,.18);
  --oro:#E3A93C;
  --oro-2:#F6D79A;
  --oro-serie:#B8871F;   /* serie "produzione" — validata per fondo scuro */
  --rete:#3E86BE;        /* serie "prelievo dalla rete" — validata per fondo scuro */
  --testo:#E9EDF4;
  --muto:#93A0B5;

  --wrap:1280px;
  --display:'Familjen Grotesk',system-ui,sans-serif;
  --body:'IBM Plex Sans',system-ui,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--notte);color:var(--testo);font-family:var(--body);
  font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{margin:0;font-family:var(--display);font-weight:700;line-height:1.04;letter-spacing:-.022em}
p{margin:0 0 1em}
:focus-visible{outline:2px solid var(--oro);outline-offset:3px;border-radius:4px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:24px}
.sez{padding:100px 0}

.etichetta{font-family:var(--mono);font-size:.72rem;font-weight:500;letter-spacing:.16em;
  text-transform:uppercase;color:var(--oro);margin:0 0 18px;display:flex;align-items:center;gap:12px}
.etichetta::before{content:"";width:26px;height:1px;background:var(--oro);flex:none}
h2.tit{font-size:clamp(1.9rem,3.6vw,3rem);max-width:20ch;text-wrap:balance}
.testo{color:var(--muto);max-width:58ch;font-size:1.04rem}
.testo strong{color:var(--testo);font-weight:600}

/* ── bottoni ──────────────────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;gap:.55em;font-family:var(--body);font-weight:600;
  font-size:.95rem;padding:14px 24px;border-radius:999px;border:1px solid transparent;cursor:pointer;
  transition:transform .16s,box-shadow .2s,background .2s,border-color .2s;line-height:1.2}
.btn-oro{background:var(--oro);color:#160F02;box-shadow:0 10px 30px -12px rgba(227,169,60,.7)}
.btn-oro:hover{transform:translateY(-2px);box-shadow:0 16px 38px -12px rgba(227,169,60,.85)}
.btn-vuoto{border-color:var(--bordo-2);color:var(--testo);background:rgba(255,255,255,.03)}
.btn-vuoto:hover{border-color:var(--oro);color:var(--oro)}
.freccia{display:inline-flex;align-items:center;gap:.5em;font-weight:600;font-size:.94rem;color:var(--oro);
  transition:gap .18s}
.freccia:hover{gap:.85em}

/* ── header ───────────────────────────────────────────────────────────── */
.hdr{position:sticky;top:0;z-index:70;background:rgba(7,12,22,.72);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--bordo)}
.hdr__in{display:flex;align-items:center;gap:24px;padding:14px 24px;max-width:var(--wrap);margin-inline:auto}
.hdr__logo img{height:36px;width:auto}
.nav{display:flex;gap:24px;margin-left:auto}
.nav>a{font-size:.9rem;color:var(--muto);transition:color .16s}
.nav>a:hover{color:var(--testo)}
.hdr .btn{padding:11px 20px;font-size:.86rem}
.burger{display:none;margin-left:auto;background:rgba(255,255,255,.05);border:1px solid var(--bordo-2);
  color:var(--testo);padding:9px 14px;border-radius:999px;cursor:pointer;font:inherit;font-size:.82rem;font-weight:600}
@media(max-width:1040px){
  .nav{position:fixed;inset:63px 0 auto;background:var(--notte-2);flex-direction:column;gap:0;
    padding:6px 24px 22px;border-bottom:1px solid var(--bordo);display:none}
  .nav.aperto{display:flex}
  .nav>a{padding:14px 0;border-bottom:1px solid var(--bordo);font-size:1.05rem;color:var(--testo)}
  .burger{display:block}
  .hdr .btn{display:none}
}

/* ── hero ─────────────────────────────────────────────────────────────── */
.hero{position:relative;overflow:hidden;isolation:isolate}
.hero__bg{position:absolute;inset:0;z-index:-2}
.hero__bg img{width:100%;height:100%;object-fit:cover;object-position:center 60%}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(7,12,22,.86) 0%,rgba(7,12,22,.55) 42%,rgba(7,12,22,.94) 100%)}
.hero__in{max-width:var(--wrap);margin-inline:auto;padding:130px 24px 120px}
.hero h1{font-size:clamp(2.4rem,5.6vw,4.6rem);max-width:17ch;text-wrap:balance}
.hero h1 .acceso{color:var(--oro);position:relative}
.hero__deck{font-size:clamp(1.04rem,1.5vw,1.22rem);color:rgba(233,237,244,.82);max-width:52ch;margin:26px 0 34px}
.hero__cta{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.hero__nota{font-family:var(--mono);font-size:.76rem;letter-spacing:.06em;color:var(--muto);margin:26px 0 0}
@media(max-width:700px){.hero__in{padding:80px 24px 90px}}

/* ── QUADRO DI IMPIANTO (firma) ───────────────────────────────────────── */
.quadro{margin-top:-56px;position:relative;z-index:5}
.quadro__box{background:linear-gradient(180deg,var(--notte-3),var(--notte-2));
  border:1px solid var(--bordo-2);border-radius:22px;padding:30px;
  box-shadow:0 40px 90px -40px rgba(0,0,0,.9)}
.quadro__testa{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-end;justify-content:space-between;
  padding-bottom:24px;border-bottom:1px solid var(--bordo);margin-bottom:26px}
.quadro__testa h2{font-size:1.4rem;letter-spacing:-.02em}
.quadro__testa p{margin:6px 0 0;color:var(--muto);font-size:.92rem;max-width:48ch}
.tab{display:flex;gap:6px;background:rgba(255,255,255,.05);padding:5px;border-radius:999px;border:1px solid var(--bordo)}
.tab button{font:inherit;font-family:var(--mono);font-size:.82rem;font-weight:500;letter-spacing:.02em;
  padding:9px 16px;border-radius:999px;border:0;background:transparent;color:var(--muto);cursor:pointer;
  transition:background .18s,color .18s;white-space:nowrap}
.tab button[aria-selected="true"]{background:var(--oro);color:#160F02;font-weight:600}
.tab button:hover[aria-selected="false"]{color:var(--testo)}

.quadro__corpo{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:34px;align-items:start}
@media(max-width:960px){.quadro__corpo{grid-template-columns:1fr;gap:28px}}

/* grafico 24h */
.graf__testa{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:baseline;margin-bottom:6px}
.graf__titolo{font-family:var(--display);font-weight:600;font-size:1.02rem}
.graf__leg{display:flex;gap:16px;margin-left:auto;font-size:.8rem;color:var(--muto)}
.graf__leg span{display:inline-flex;align-items:center;gap:7px}
.graf__leg i{width:11px;height:11px;border-radius:3px;display:block}
.graf svg{width:100%;height:auto;display:block;overflow:visible}
.asse{stroke:rgba(255,255,255,.16);stroke-width:1}
.asse-t{fill:var(--muto);font-family:var(--mono);font-size:10px;letter-spacing:.04em}
.serie-prod{fill:none;stroke:var(--oro-serie);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.serie-cons{fill:none;stroke:var(--rete);stroke-width:2;stroke-linejoin:round;stroke-linecap:round;
  stroke-dasharray:5 4}
.area-prod{fill:url(#gradProd)}
.area-batt{fill:var(--oro-serie);opacity:.30}
.etichetta-serie{font-family:var(--body);font-size:11px;font-weight:600}
.graf__nota{font-size:.78rem;color:var(--muto);margin:14px 0 0;line-height:1.5}

/* numeri del quadro */
.quadro__dati{display:flex;flex-direction:column;gap:2px;background:var(--bordo);
  border:1px solid var(--bordo);border-radius:14px;overflow:hidden}
.dato{background:var(--notte-2);padding:18px 20px}
.dato__v{font-family:var(--display);font-weight:700;font-size:1.85rem;letter-spacing:-.03em;
  font-variant-numeric:tabular-nums;color:var(--oro);line-height:1.1}
.dato__v small{font-size:.5em;color:var(--testo);margin-left:.25em;font-weight:600}
.dato__l{font-size:.82rem;color:var(--muto);margin:4px 0 0;line-height:1.45}
.flusso{margin-top:18px;border:1px solid var(--bordo);border-radius:14px;padding:18px 20px;background:var(--notte-2)}
.flusso h4{font-family:var(--mono);font-size:.7rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muto);margin-bottom:14px}
.flusso svg{width:100%;height:auto;display:block}
.fl-linea{stroke:rgba(255,255,255,.22);stroke-width:1.5;fill:none}
.fl-pulse{stroke:var(--oro);stroke-width:2.5;fill:none;stroke-linecap:round;
  stroke-dasharray:14 150;stroke-dashoffset:164;animation:scorri 2.6s linear infinite}
.fl-pulse.b{animation-delay:.5s}
.fl-pulse.c{animation-delay:1s}
@keyframes scorri{to{stroke-dashoffset:0}}
@media (prefers-reduced-motion:reduce){.fl-pulse{animation:none;stroke-dasharray:none;stroke-dashoffset:0;opacity:.5}}
.fl-nodo{fill:var(--notte-3);stroke:var(--bordo-2);stroke-width:1}
.fl-t{fill:var(--testo);font-family:var(--body);font-size:10.5px;font-weight:600;text-anchor:middle}

/* ── bivio ────────────────────────────────────────────────────────────── */
.bivio{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.porta{background:var(--notte-2);border:1px solid var(--bordo);border-radius:18px;padding:34px 32px 30px;
  display:flex;flex-direction:column;transition:border-color .22s,transform .22s;position:relative;overflow:hidden}
.porta::after{content:"";position:absolute;inset:0;border-radius:18px;pointer-events:none;
  background:radial-gradient(420px 200px at 88% 0%,rgba(227,169,60,.13),transparent 70%);opacity:0;transition:opacity .3s}
.porta:hover{border-color:var(--bordo-2);transform:translateY(-3px)}
.porta:hover::after{opacity:1}
.porta__k{font-family:var(--mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--oro);margin-bottom:14px}
.porta h3{font-size:1.5rem;margin-bottom:12px}
.porta p{color:var(--muto);font-size:.97rem}
.porta ul{list-style:none;margin:8px 0 26px;padding:0;font-size:.93rem}
.porta li{padding:9px 0;border-top:1px solid var(--bordo);display:flex;gap:11px;color:var(--muto)}
.porta li svg{width:15px;height:15px;flex:none;margin-top:4px;stroke:var(--oro);fill:none;stroke-width:2.4}
.porta .freccia{margin-top:auto}
@media(max-width:820px){.bivio{grid-template-columns:1fr}}

/* ── soluzioni ────────────────────────────────────────────────────────── */
.sol{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.sol__c{border:1px solid var(--bordo);border-radius:18px;overflow:hidden;background:var(--notte-2);
  display:flex;flex-direction:column;transition:border-color .22s}
.sol__c:hover{border-color:var(--bordo-2)}
.sol__f{aspect-ratio:4/3;overflow:hidden;background:var(--notte-3)}
.sol__f img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.22,1,.36,1)}
.sol__c:hover .sol__f img{transform:scale(1.04)}
.sol__t{padding:26px 24px 28px;display:flex;flex-direction:column;flex:1}
.sol__t h3{font-size:1.24rem;margin-bottom:10px}
.sol__t p{color:var(--muto);font-size:.94rem}
.sol__t .freccia{margin-top:auto;padding-top:14px;font-size:.88rem}
@media(max-width:900px){.sol{grid-template-columns:1fr}}

/* ── kit ──────────────────────────────────────────────────────────────── */
.kit-g{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:stretch}
.kit{background:var(--notte-2);border:1px solid var(--bordo);border-radius:20px;padding:30px 28px 28px;
  display:flex;flex-direction:column;position:relative}
.kit--top{border-color:rgba(227,169,60,.55);background:linear-gradient(180deg,rgba(227,169,60,.09),var(--notte-2) 55%)}
.kit__tag{position:absolute;top:-11px;left:28px;background:var(--oro);color:#160F02;font-family:var(--mono);
  font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:5px 12px;border-radius:999px}
.kit__nome{font-family:var(--mono);font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muto)}
.kit__p{font-family:var(--display);font-weight:700;font-size:3rem;letter-spacing:-.04em;line-height:1;
  margin:14px 0 4px;font-variant-numeric:tabular-nums}
.kit__p small{font-size:.32em;color:var(--muto);margin-left:.2em;font-weight:600;letter-spacing:0}
.kit__acc{color:var(--muto);font-size:.94rem;margin-bottom:22px}
.kit__acc b{color:var(--testo);font-weight:600}
.kit__box{border-top:1px solid var(--bordo);padding-top:18px;margin-bottom:20px}
.kit__r{display:flex;justify-content:space-between;gap:12px;font-size:.9rem;color:var(--muto);padding:5px 0}
.kit__r b{color:var(--testo);font-variant-numeric:tabular-nums;font-weight:600}
.kit__r .via{text-decoration:line-through;color:var(--muto);font-weight:400}
.kit__netto{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:12px;
  padding-top:14px;border-top:1px solid var(--bordo)}
.kit__netto span{font-size:.88rem;color:var(--muto)}
.kit__netto b{font-family:var(--display);font-size:2.05rem;font-weight:700;color:var(--oro);
  letter-spacing:-.035em;font-variant-numeric:tabular-nums}
.kit__note{font-size:.83rem;color:var(--muto);margin-bottom:22px;line-height:1.5}
.kit .btn{margin-top:auto;justify-content:center}
@media(max-width:900px){.kit-g{grid-template-columns:1fr}}
.postilla{margin-top:32px;font-size:.83rem;color:var(--muto);max-width:88ch;line-height:1.6}

/* ── vantaggi ─────────────────────────────────────────────────────────── */
.vant{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--bordo);
  border:1px solid var(--bordo);border-radius:18px;overflow:hidden}
.vant__c{background:var(--notte-2);padding:30px 26px 32px}
.vant__n{font-family:var(--display);font-weight:700;font-size:2.5rem;letter-spacing:-.04em;color:var(--oro);
  line-height:1;font-variant-numeric:tabular-nums}
.vant__n small{font-size:.34em;color:var(--muto);margin-left:.2em;font-weight:600}
.vant__c h4{font-size:1.04rem;margin:14px 0 7px}
.vant__c p{color:var(--muto);font-size:.9rem;margin:0;line-height:1.55}
@media(max-width:1000px){.vant{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.vant{grid-template-columns:1fr}}

/* ── metodo ───────────────────────────────────────────────────────────── */
.fasi{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--bordo);
  border:1px solid var(--bordo);border-radius:18px;overflow:hidden;margin-top:44px}
.fase{background:var(--notte-2);padding:26px 22px 28px;position:relative}
.fase__n{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;color:var(--oro)}
.fase h4{font-size:1.02rem;margin:12px 0 8px}
.fase p{color:var(--muto);font-size:.87rem;margin:0;line-height:1.55}
@media(max-width:1000px){.fasi{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.fasi{grid-template-columns:1fr}}

/* ── sviluppo ─────────────────────────────────────────────────────────── */
.svil{position:relative;overflow:hidden;border-radius:24px;border:1px solid var(--bordo-2)}
.svil__bg{position:absolute;inset:0;z-index:0}
.svil__bg img{width:100%;height:100%;object-fit:cover;opacity:.34}
.svil::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(100deg,var(--notte) 12%,rgba(7,12,22,.82) 52%,rgba(7,12,22,.5) 100%)}
.svil__in{position:relative;z-index:2;padding:56px 48px 52px;display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}
.svil__kpi{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--bordo-2);
  border:1px solid var(--bordo-2);border-radius:16px;overflow:hidden}
.svil__kpi>div{background:rgba(7,12,22,.82);padding:24px 22px;backdrop-filter:blur(4px)}
.svil__kpi b{display:block;font-family:var(--display);font-size:2.1rem;font-weight:700;color:var(--oro);
  letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums}
.svil__kpi b small{font-size:.36em;color:var(--testo);margin-left:.16em}
.svil__kpi p{font-size:.83rem;color:var(--muto);margin:10px 0 0;line-height:1.45}
@media(max-width:960px){.svil__in{grid-template-columns:1fr;padding:38px 26px 36px;gap:30px}}
@media(max-width:520px){.svil__kpi{grid-template-columns:1fr}}

.iter{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--bordo);
  border:1px solid var(--bordo);border-radius:18px;overflow:hidden;margin-top:24px}
.iter>div{background:var(--notte-2);padding:22px 18px 24px}
.iter i{font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;color:var(--oro);font-style:normal}
.iter h4{font-size:.96rem;margin:10px 0 7px}
.iter p{font-size:.82rem;color:var(--muto);margin:0;line-height:1.5}
@media(max-width:1000px){.iter{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.iter{grid-template-columns:1fr}}

/* ── guide ────────────────────────────────────────────────────────────── */
.guide{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.guida{border:1px solid var(--bordo);border-radius:16px;padding:26px 24px;background:var(--notte-2);
  display:flex;flex-direction:column;gap:10px;transition:border-color .2s,transform .2s}
.guida:hover{border-color:var(--bordo-2);transform:translateY(-3px)}
.guida time{font-family:var(--mono);font-size:.74rem;letter-spacing:.1em;color:var(--muto)}
.guida h4{font-size:1.1rem;line-height:1.25}
.guida p{color:var(--muto);font-size:.9rem;margin:0}
@media(max-width:900px){.guide{grid-template-columns:1fr}}

/* ── faq ──────────────────────────────────────────────────────────────── */
.faq{display:grid;grid-template-columns:1fr 1.35fr;gap:52px;align-items:start}
.faq details{border-bottom:1px solid var(--bordo)}
.faq details:first-of-type{border-top:1px solid var(--bordo)}
.faq summary{list-style:none;cursor:pointer;padding:20px 42px 20px 0;position:relative;font-weight:600;font-size:1.03rem;
  font-family:var(--display);letter-spacing:-.015em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:8px;top:50%;width:12px;height:2px;background:var(--oro);transform:translateY(-50%)}
.faq summary::before{content:"";position:absolute;right:13px;top:50%;width:2px;height:12px;background:var(--oro);
  transform:translateY(-50%);transition:transform .22s}
.faq details[open] summary::before{transform:translateY(-50%) scaleY(0)}
.faq details p{margin:0 0 22px;color:var(--muto);font-size:.98rem;max-width:62ch}
@media(max-width:900px){.faq{grid-template-columns:1fr;gap:28px}}

/* ── contatto ─────────────────────────────────────────────────────────── */
.contatto{background:linear-gradient(180deg,var(--notte-2),var(--notte));border-top:1px solid var(--bordo)}
.contatto__in{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center;padding:96px 0}
.contatto h2{font-size:clamp(2rem,4vw,3.1rem);margin-bottom:18px;text-wrap:balance}
.dati{list-style:none;padding:0;margin:30px 0 0;display:flex;flex-direction:column;gap:14px;font-size:.96rem}
.dati li{display:flex;gap:14px;align-items:flex-start}
.dati span{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--oro);
  width:96px;flex:none;padding-top:4px}
.modulo{background:var(--notte-3);border:1px solid var(--bordo-2);border-radius:20px;padding:32px}
.modulo h3{font-size:1.24rem;margin-bottom:6px}
.modulo>p{color:var(--muto);font-size:.92rem;margin-bottom:22px}
.campo{display:block;margin-bottom:14px}
.campo span{display:block;font-family:var(--mono);font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--muto);margin-bottom:7px}
.campo input,.campo select{width:100%;padding:13px 14px;border-radius:10px;border:1px solid var(--bordo-2);
  background:rgba(255,255,255,.04);color:var(--testo);font:inherit;font-size:.95rem}
.campo input:focus,.campo select:focus{outline:none;border-color:var(--oro)}
.campo select option{background:var(--notte-2);color:var(--testo)}
.modulo .btn{width:100%;justify-content:center;margin-top:8px}
.modulo__mini{font-size:.78rem;color:var(--muto);margin:14px 0 0;line-height:1.5}
@media(max-width:960px){.contatto__in{grid-template-columns:1fr;gap:36px;padding:64px 0}}

/* ── footer ───────────────────────────────────────────────────────────── */
.ftr{border-top:1px solid var(--bordo);padding:60px 0 28px;color:var(--muto)}
.ftr__in{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:32px}
.ftr img{height:36px;width:auto;margin-bottom:18px}
.ftr h5{font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--oro);margin:0 0 14px}
.ftr p,.ftr a{font-size:.9rem;line-height:1.6}
.ftr a:hover{color:var(--oro)}
.ftr ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.ftr__fondo{margin-top:48px;padding-top:22px;border-top:1px solid var(--bordo);display:flex;flex-wrap:wrap;
  gap:14px;justify-content:space-between;font-size:.8rem}
@media(max-width:900px){.ftr__in{grid-template-columns:1fr 1fr;gap:30px 24px}}
@media(max-width:560px){.ftr__in{grid-template-columns:1fr}}

.js-anim .rivela{opacity:0;transform:translateY(20px);
  transition:opacity .75s cubic-bezier(.22,1,.36,1),transform .75s cubic-bezier(.22,1,.36,1)}
.js-anim .rivela.visto{opacity:1;transform:none}

.wa{position:fixed;right:18px;bottom:18px;z-index:80;width:54px;height:54px;border-radius:50%;
  background:#25D366;display:grid;place-items:center;box-shadow:0 10px 28px rgba(0,0,0,.5)}
.wa svg{width:28px;height:28px;fill:#fff}

/* ═══════════════════════════════════════════════════════════════════════
   COMPONENTI CONDIVISI — direzione 02
   Le classi qui sotto sono lo stesso contratto usato dalla direzione 03:
   cambia il vestito, non il comportamento (vedi concepts/shared/ui.js).
   ═══════════════════════════════════════════════════════════════════════ */

/* ── bottoni del contratto condiviso ─────────────────────────────────── */
.btn-primario{background:var(--oro);color:#160F02;box-shadow:0 10px 30px -12px rgba(227,169,60,.7)}
.btn-primario:hover{transform:translateY(-2px);box-shadow:0 16px 38px -12px rgba(227,169,60,.85)}
.btn-secondario{border-color:var(--bordo-2);color:var(--testo);background:rgba(255,255,255,.04)}
.btn-secondario:hover{border-color:var(--oro);color:var(--oro)}
.btn-wa{background:#25D366;color:#06301A}
.btn-wa:hover{transform:translateY(-2px);background:#2ee474}
.btn-piccolo{padding:9px 16px;font-size:.84rem}

/* ── intestazione di pagina interna ──────────────────────────────────── */
.briciole{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muto);padding:22px 0 0}
.briciole a:hover{color:var(--oro)}
.briciole span{color:var(--oro)}
.hero-pagina{position:relative;overflow:hidden;isolation:isolate;border-bottom:1px solid var(--bordo)}
.hero-pagina__bg{position:absolute;inset:0;z-index:-2}
.hero-pagina__bg img{width:100%;height:100%;object-fit:cover}
.hero-pagina::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(100deg,rgba(7,12,22,.95) 22%,rgba(7,12,22,.72) 62%,rgba(7,12,22,.5) 100%)}
.hero-pagina__in{padding:56px 0 64px;max-width:var(--wrap);margin-inline:auto;padding-inline:24px}
.hero-pagina h1{font-size:clamp(2.1rem,4.6vw,3.6rem);max-width:18ch;text-wrap:balance}
.hero-pagina h1 em{font-style:normal;color:var(--oro)}
.hero-pagina__deck{font-size:clamp(1.02rem,1.4vw,1.18rem);color:rgba(233,237,244,.82);max-width:52ch;margin:22px 0 28px}
.hero-pagina__azioni{display:flex;flex-wrap:wrap;gap:12px}

/* ── fascia di fiducia ───────────────────────────────────────────────── */
.fiducia{display:flex;flex-wrap:wrap;gap:10px 28px;padding:18px 0;border-bottom:1px solid var(--bordo)}
.fiducia span{display:inline-flex;align-items:center;gap:9px;font-size:.9rem;color:var(--muto)}
.fiducia svg{width:16px;height:16px;stroke:var(--oro);fill:none;stroke-width:2.6;flex:none}

/* ── griglie e schede generiche ──────────────────────────────────────── */
.griglia-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.griglia-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.griglia-4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
@media(max-width:1000px){.griglia-4{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.griglia-2,.griglia-3{grid-template-columns:1fr}}
@media(max-width:560px){.griglia-4{grid-template-columns:1fr}}
.scheda{background:var(--notte-2);border:1px solid var(--bordo);border-radius:18px;padding:28px 26px;
  transition:border-color .22s}
.scheda:hover{border-color:var(--bordo-2)}
.scheda h3,.scheda h4{margin-bottom:10px}
.scheda h3{font-size:1.2rem}
.scheda h4{font-size:1.02rem}
.scheda p{color:var(--muto);font-size:.94rem;margin:0}
.scheda__k{font-family:var(--mono);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--oro);margin-bottom:12px}

/* ── elenchi incluso / non incluso ───────────────────────────────────── */
.elenco{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px;font-size:.95rem}
.elenco li{display:flex;gap:12px;color:var(--muto)}
.elenco svg{width:17px;height:17px;flex:none;margin-top:4px;fill:none;stroke-width:2.6}
.elenco--si svg{stroke:#5FD39B}
.elenco--no svg{stroke:#8A93A3}
.elenco--no li{color:var(--muto-2,rgba(147,160,181,.8))}

/* ── nota legale ─────────────────────────────────────────────────────── */
.nota-legale{font-size:.82rem;color:var(--muto);line-height:1.6;max-width:88ch;
  border-top:1px solid var(--bordo);padding-top:18px;margin-top:32px}

/* ═══ CALCOLATORE ═══════════════════════════════════════════════════════ */
.calc{background:linear-gradient(180deg,var(--notte-3),var(--notte-2));border:1px solid var(--bordo-2);
  border-radius:22px;padding:30px;box-shadow:0 40px 90px -46px rgba(0,0,0,.9)}
.calc__testa{padding-bottom:22px;border-bottom:1px solid var(--bordo);margin-bottom:24px}
.calc__titolo{font-size:1.5rem;letter-spacing:-.02em}
.calc__sub{margin:8px 0 0;color:var(--muto);font-size:.94rem;max-width:56ch}
.calc__corpo{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:32px;align-items:start}
@media(max-width:900px){.calc{padding:24px 20px}.calc__corpo{grid-template-columns:1fr;gap:26px}}
.calc__campi{display:flex;flex-direction:column;gap:24px}

.campo-calc__et{display:block;font-size:.84rem;font-weight:600;letter-spacing:.04em;color:var(--muto);margin-bottom:10px}
.campo-calc__et em{font-style:normal;color:var(--oro);font-weight:500}
.campo-calc__val{display:flex;align-items:baseline;gap:.4em;margin-bottom:6px}
.campo-calc__val b{font-family:var(--display);font-size:2.3rem;font-weight:700;letter-spacing:-.035em;
  color:var(--oro);line-height:1;font-variant-numeric:tabular-nums}
.campo-calc__val span{font-size:.88rem;color:var(--muto)}
.campo-calc__estremi{display:flex;justify-content:space-between;font-size:.76rem;color:var(--muto);
  font-variant-numeric:tabular-nums;margin-top:2px}

.range{width:100%;margin:12px 0 4px;-webkit-appearance:none;appearance:none;background:transparent;height:26px}
.range::-webkit-slider-runnable-track{height:8px;border-radius:999px;
  background:linear-gradient(90deg,var(--oro) var(--pct,30%),rgba(255,255,255,.16) var(--pct,30%))}
.range::-moz-range-track{height:8px;border-radius:999px;background:rgba(255,255,255,.16)}
.range::-moz-range-progress{height:8px;border-radius:999px;background:var(--oro)}
.range::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;border-radius:50%;background:#fff;
  border:5px solid var(--oro);margin-top:-9px;cursor:pointer;box-shadow:0 3px 10px rgba(0,0,0,.5)}
.range::-moz-range-thumb{width:26px;height:26px;border-radius:50%;background:#fff;border:5px solid var(--oro);
  cursor:pointer;box-shadow:0 3px 10px rgba(0,0,0,.5)}

.pills{display:flex;flex-wrap:wrap;gap:8px}
.pill{font:inherit;font-size:.88rem;font-weight:500;padding:10px 16px;border-radius:999px;cursor:pointer;
  background:rgba(255,255,255,.05);border:1px solid var(--bordo);color:var(--muto);transition:all .18s}
.pill:hover{color:var(--testo);border-color:var(--bordo-2)}
.pill[aria-checked="true"],.pill[aria-pressed="true"]{background:var(--oro);border-color:var(--oro);
  color:#160F02;font-weight:600}
.campo-testo{width:100%;padding:13px 15px;border-radius:11px;border:1px solid var(--bordo-2);
  background:rgba(255,255,255,.04);color:var(--testo);font:inherit;font-size:.96rem}
.campo-testo:focus{outline:none;border-color:var(--oro)}
.campo-calc__et span{color:var(--muto);font-weight:400}

/* esito */
.calc__kit{background:rgba(227,169,60,.10);border:1px solid rgba(227,169,60,.4);border-radius:14px;
  padding:18px 20px;margin-bottom:18px}
.calc__kit--misura{background:rgba(255,255,255,.04);border-color:var(--bordo)}
.calc__kit-nome{font-family:var(--display);font-weight:700;font-size:1.14rem;letter-spacing:-.02em;color:#fff}
.calc__kit-prezzo{margin-top:8px;font-size:.92rem;color:var(--muto)}
.calc__kit-prezzo s{color:var(--muto);margin-right:.4em}
.calc__kit-prezzo b{font-family:var(--display);font-size:1.55rem;font-weight:700;color:var(--oro);
  letter-spacing:-.03em;margin-right:.3em;font-variant-numeric:tabular-nums}

.esito-griglia{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1px;background:var(--bordo);
  border:1px solid var(--bordo);border-radius:14px;overflow:hidden}
@media(max-width:640px){.esito-griglia{grid-template-columns:1fr 1fr}}
.esito-riga{background:var(--notte-2);padding:16px 16px 18px}
.esito-val{font-family:var(--display);font-size:1.42rem;font-weight:700;letter-spacing:-.03em;line-height:1.05;
  font-variant-numeric:tabular-nums;color:#fff}
.esito-val small{display:block;font-family:var(--body);font-size:.62rem;font-weight:600;letter-spacing:.06em;
  color:var(--muto);margin-top:5px}
.esito-riga--buono .esito-val{color:#5FD39B}
.esito-et{font-size:.78rem;color:var(--muto);margin-top:9px;line-height:1.4}
.calc__avviso{margin:16px 0 0;font-size:.86rem;color:var(--oro-2);background:rgba(227,169,60,.08);
  border-left:2px solid var(--oro);padding:12px 14px;border-radius:0 8px 8px 0}
.attesa{margin:18px 0 0;font-size:.95rem;color:var(--muto)}
.attesa b{color:var(--oro);font-weight:700}

.calc__azioni{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px;padding-top:24px;border-top:1px solid var(--bordo)}
.calc__ipotesi{margin-top:20px;border-top:1px solid var(--bordo);padding-top:14px}
.calc__ipotesi summary{cursor:pointer;font-size:.84rem;font-weight:600;color:var(--muto);list-style:none;
  padding:6px 0}
.calc__ipotesi summary::-webkit-details-marker{display:none}
.calc__ipotesi summary::before{content:"+";margin-right:.65em;color:var(--oro);font-weight:700}
.calc__ipotesi[open] summary::before{content:"−"}
.calc__ipotesi p{font-size:.82rem;color:var(--muto);line-height:1.6;margin:10px 0 0}
.calc__ipotesi b{color:var(--testo)}

/* ═══ CONFIGURATORE ═════════════════════════════════════════════════════ */
.conf__passi{list-style:none;margin:0 0 28px;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.conf__passi li{display:flex;align-items:center;gap:10px;font-size:.88rem;color:var(--muto);
  padding:9px 16px 9px 9px;border:1px solid var(--bordo);border-radius:999px}
.conf__passi li span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;
  background:rgba(255,255,255,.07);font-size:.78rem;font-weight:700}
.conf__passi li.ora{border-color:var(--oro);color:var(--testo)}
.conf__passi li.ora span{background:var(--oro);color:#160F02}
.conf__passi li.fatto span{background:#5FD39B;color:#06301A}
.conf__corpo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:30px;align-items:start}
@media(max-width:960px){.conf__corpo{grid-template-columns:1fr;gap:26px}}
.conf__campi{background:var(--notte-2);border:1px solid var(--bordo);border-radius:20px;padding:28px 26px;
  display:flex;flex-direction:column;gap:24px}
.conf__aiuto{margin:0;font-size:.9rem;color:var(--muto);border-left:2px solid var(--oro);padding-left:14px}
.conf__nav{display:flex;gap:12px;margin-top:4px}
.conf__esito{background:linear-gradient(180deg,var(--notte-3),var(--notte-2));border:1px solid var(--bordo-2);
  border-radius:20px;padding:26px}
.conf__esito-testa{margin-bottom:20px}
.conf__esito-testa h3{font-size:1.24rem;margin-top:8px}
.conf__codice{font-family:var(--mono);font-size:.74rem;letter-spacing:.14em;color:var(--oro);
  background:rgba(227,169,60,.12);border:1px solid rgba(227,169,60,.35);padding:5px 11px;border-radius:999px;
  display:inline-block}

/* ═══ RIEPILOGO E RIPRESA ═══════════════════════════════════════════════ */
.riepilogo{background:var(--notte-2);border:1px solid var(--bordo-2);border-radius:18px;padding:26px}
.riepilogo__testa h3{font-size:1.16rem;margin-top:10px}
.riepilogo__testo{font-family:var(--mono);font-size:.8rem;line-height:1.65;color:var(--muto);
  white-space:pre-wrap;margin:18px 0;background:rgba(0,0,0,.28);border-radius:12px;padding:18px;
  border:1px solid var(--bordo);overflow-x:auto}
.riepilogo__azioni{display:flex;flex-wrap:wrap;gap:10px}
.riepilogo--vuoto h3{font-size:1.16rem;margin-bottom:10px}
.riepilogo--vuoto p{color:var(--muto);font-size:.94rem}
.ripresa{display:flex;flex-wrap:wrap;align-items:center;gap:14px;background:rgba(227,169,60,.09);
  border:1px solid rgba(227,169,60,.3);border-radius:14px;padding:14px 18px;font-size:.9rem;color:var(--muto)}
.ripresa b{color:var(--testo)}
.ripresa .btn{margin-left:auto}

/* ═══ STAMPA ════════════════════════════════════════════════════════════ */
/* ═══════════════════════════════════════════════════════════════════════
   STAMPA
   Due cose diverse. La prima è la stampa normale della pagina (Ctrl+P):
   si toglie quello che su carta non serve e si spengono i fondi scuri.
   La seconda è il documento di "Salva il riepilogo": una carta intestata A4
   costruita a parte da ui.js, che prende il foglio da sola e nasconde il sito.

   Il documento è identico nelle due direzioni: la carta intestata è un oggetto
   dell'azienda, non del tema grafico. Cambia solo il font, perché ogni
   direzione carica il suo — le famiglie sono in cascata e ripiegano su quelli
   di sistema.

   Regola che ha deciso il disegno: i fondi colorati, per impostazione
   predefinita, il browser non li stampa. Qui non c'è un solo riempimento —
   filetti, bordi e tipografia, che vengono stampati sempre. Anche la banda
   della forbice è un bordo.
   ═══════════════════════════════════════════════════════════════════════ */

/* fuori dalla stampa il documento non esiste */
.doc{display:none}

@media print{
  /* ── la pagina, stampata come pagina ───────────────────────────────── */
  .hdr,.wa,.avvio-chat,.chat,.mega-velo,.barra-mob,.calc__azioni,.conf__campi,
  .conf__passi,.ftr,.briciole,.ripresa{display:none !important}
  body{background:#fff;color:#000}
  .conf__esito,.riepilogo,.calc{border:1px solid #999;box-shadow:none;background:#fff}
  .riepilogo__testo{background:#fff;border:1px solid #ccc;color:#000}
  .esito-riga{background:#fff}
  .esito-val,.calc__kit-nome{color:#000}

  /* ── il documento su carta intestata ───────────────────────────────── */
  @page{size:A4;margin:14mm 15mm}

  html.stampa-doc,html.stampa-doc body{background:#fff !important;margin:0;padding:0}
  html.stampa-doc body>*:not(.doc){display:none !important}

  html.stampa-doc .doc{
    --d-ink:#0F1A2A;         /* l'inchiostro: blu notte, non nero */
    --d-muto:#5C6B7E;
    --d-oro:#C9992F;         /* l'oro del marchio: filetti e banda */
    --d-oro-t:#8A6415;       /* l'oro come testo, leggibile su bianco */
    --d-linea:#C9CFD8;
    --d-linea-2:#E4E9EF;
    --d-sans:'Familjen Grotesk','Instrument Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
    --d-mono:'IBM Plex Mono','Roboto Mono',ui-monospace,'SFMono-Regular',monospace;
    display:block;padding:0 0 16mm;background:#fff;color:var(--d-ink);
    font-family:var(--d-sans);font-size:8.4pt;line-height:1.45;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}

  /* carta intestata: marchio, recapiti, e un doppio filetto a chiudere */
  .doc .doc__testa{display:flex;justify-content:space-between;align-items:flex-end;gap:10mm;
    padding-bottom:3.5mm;border-bottom:1.6pt solid var(--d-oro)}
  .doc .doc__logo{display:block;height:12mm;width:auto}
  .doc .doc__claim{margin:2.6mm 0 0;font-family:var(--d-mono);font-size:5.9pt;font-weight:500;
    letter-spacing:.15em;text-transform:uppercase;color:var(--d-oro-t)}
  .doc .doc__recapiti{font-style:normal;text-align:right;font-size:7.4pt;line-height:1.5;color:var(--d-muto)}
  .doc .doc__recapiti b{display:block;font-size:8.6pt;font-weight:600;color:var(--d-ink);letter-spacing:-.01em}

  .doc .doc__titolo{display:flex;justify-content:space-between;align-items:flex-start;gap:10mm;
    margin-top:1.4pt;padding-top:5mm;border-top:.4pt solid var(--d-linea)}
  .doc .doc__titolo h1{margin:0;font-family:var(--d-sans);font-size:15pt;font-weight:600;
    line-height:1.06;letter-spacing:-.022em;color:var(--d-ink)}
  .doc .doc__sottotitolo{margin:2.4mm 0 0;font-size:8.4pt;color:var(--d-muto)}
  .doc .doc__pratica{flex:none;text-align:right;padding:2.6mm 4mm;border:.5pt solid var(--d-linea)}
  .doc .doc__pratica span{display:block;margin-bottom:1.8mm;font-family:var(--d-mono);font-size:5.9pt;
    font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--d-oro-t)}
  .doc .doc__pratica b{font-family:var(--d-mono);font-size:11pt;font-weight:600;letter-spacing:.03em}

  /* sezioni: l'occhiello si prolunga in un filetto, così il ritmo si vede
     senza chiudere niente in un riquadro */
  .doc .doc-sez{margin-top:5mm;break-inside:avoid;page-break-inside:avoid}
  .doc .doc-occhiello{display:flex;align-items:center;gap:3mm;margin:0 0 3.4mm;
    font-family:var(--d-mono);font-size:6.2pt;font-weight:500;letter-spacing:.17em;
    text-transform:uppercase;color:var(--d-oro-t)}
  .doc .doc-occhiello::after{content:"";flex:1;border-top:.4pt solid var(--d-linea)}

  /* le cifre della proposta */
  .doc .doc-cifre{display:flex}
  .doc .doc-cifra{flex:1;padding-right:5mm}
  .doc .doc-cifra+.doc-cifra{padding-left:5mm;border-left:.5pt solid var(--d-linea)}
  .doc .doc-cifra__n{margin:0;font-size:19pt;font-weight:600;line-height:1;letter-spacing:-.025em}
  .doc .doc-cifra__n span{margin-left:1.2mm;font-size:8pt;font-weight:500;letter-spacing:0;color:var(--d-muto)}
  .doc .doc-cifra__et{margin:1.8mm 0 0;font-family:var(--d-mono);font-size:6pt;font-weight:500;
    line-height:1.3;letter-spacing:.12em;text-transform:uppercase;color:var(--d-muto)}

  .doc .doc-offerta{margin:4mm 0 0;padding-top:3mm;border-top:.4pt solid var(--d-linea-2);font-size:8.4pt}
  .doc .doc-offerta b{font-weight:600}
  .doc .doc-prezzo{display:block;margin-top:1.6mm;font-family:var(--d-mono);font-size:9pt;color:var(--d-ink)}
  .doc .doc-prezzo b{font-size:11pt;font-weight:600}

  /* la forbice, misurata su una scala che parte da zero */
  .doc .doc-forbice{margin:0;display:flex;align-items:baseline;gap:3mm}
  .doc .doc-forbice__n{font-size:19pt;font-weight:600;line-height:1;letter-spacing:-.025em}
  .doc .doc-forbice__u{font-size:8pt;color:var(--d-muto)}
  .doc .doc-misura{position:relative;height:7pt;margin:4mm 0 0}
  .doc .doc-misura__pista{position:absolute;left:0;right:0;top:3.2pt;border-top:.5pt solid var(--d-linea)}
  .doc .doc-misura__banda{position:absolute;top:1.5pt;border-top:3.4pt solid var(--d-oro)}
  .doc .doc-misura__tacca{position:absolute;top:0;height:7pt;border-left:1pt solid var(--d-ink)}
  .doc .doc-scala{display:flex;justify-content:space-between;margin:1.2mm 0 0;
    font-family:var(--d-mono);font-size:6.4pt;color:var(--d-muto)}
  .doc .doc-legenda{display:flex;gap:9mm;margin:2.6mm 0 0;font-size:7.1pt;color:var(--d-muto)}
  .doc .doc-legenda i{display:inline-block;width:12pt;margin-right:2mm;vertical-align:middle}
  .doc .doc-legenda .doc-legenda__banda{border-top:3.4pt solid var(--d-oro)}
  .doc .doc-legenda .doc-legenda__tacca{width:0;height:7pt;border-left:1pt solid var(--d-ink)}

  /* il registro: a sinistra quello che è stato dichiarato, a destra quello
     che ne deriva. Valori in monospaziato perché le cifre si incolonnino. */
  .doc .doc-registro{display:grid;grid-template-columns:1fr 1fr;gap:0 10mm}
  .doc .doc-colonna__t{margin:0 0 2.6mm;padding-bottom:2mm;font-family:var(--d-sans);font-size:8pt;
    font-weight:600;line-height:1.2;letter-spacing:0;color:var(--d-ink);
    border-bottom:.5pt solid var(--d-ink)}
  .doc .doc-riga{display:flex;justify-content:space-between;align-items:baseline;gap:4mm;
    margin:0;padding:1.35mm 0;border-bottom:.4pt solid var(--d-linea-2)}
  .doc .doc-riga__et{color:var(--d-muto)}
  .doc .doc-riga__v{font-family:var(--d-mono);font-weight:500;text-align:right;color:var(--d-ink)}

  .doc .doc-elenco{margin:0;padding:0;list-style:none}
  .doc .doc-elenco li{position:relative;padding:1.6mm 0 1.6mm 5mm;font-size:7.9pt;line-height:1.35;
    border-bottom:.4pt solid var(--d-linea-2)}
  .doc .doc-elenco li::before{content:"";position:absolute;left:0;top:3.4mm;width:2.6mm;
    border-top:.9pt solid var(--d-oro)}
  .doc .doc-elenco--no li{color:var(--d-muto)}
  .doc .doc-elenco--no li::before{border-top-color:var(--d-linea)}

  /* la lettura piccola non va a piena riga: sarebbe illeggibile. Non in due
     colonne, però — su un testo corto lasciano una parola orfana nello stacco. */
  .doc .doc-nota{max-width:128mm;margin:3mm 0 0;font-size:7.3pt;line-height:1.5;color:var(--d-muto)}

  /* il secondo foglio comincia dove cominciano le condizioni, non dove capita */
  .doc .doc-sez--foglio2{break-before:page;page-break-before:always;margin-top:0}
  .doc .doc__coda{break-inside:avoid;page-break-inside:avoid}
  .doc .doc-chiusura{margin:7mm 0 0;padding-top:4mm;font-size:8.4pt;border-top:.5pt solid var(--d-oro)}
  .doc .doc-chiusura b{font-weight:600}
  .doc .doc-legale{max-width:150mm;margin:3.6mm 0 0;font-size:6.8pt;line-height:1.45;color:var(--d-muto)}

  /* il piede è fisso: si ripete su ogni foglio, come su carta intestata vera */
  .doc .doc__piede{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:space-between;
    gap:6mm;padding-top:2mm;border-top:.4pt solid var(--d-linea);
    font-family:var(--d-mono);font-size:6.6pt;line-height:1.3;color:var(--d-muto)}
}

/* alias del contratto condiviso: stesso nome di classe nelle due direzioni */
.occhiello{font-family:var(--mono);font-size:.72rem;font-weight:500;letter-spacing:.16em;
  text-transform:uppercase;color:var(--oro);margin:0 0 18px;display:flex;align-items:center;gap:12px}
.occhiello::before{content:"";width:26px;height:1px;background:var(--oro);flex:none}

/* ═══════════════════════════════════════════════════════════════════════
   MEGA MENU — FORMA A: pannello a colonne, tutto visibile insieme
   Direzione 02. Fotografia piccola per riconoscere il servizio a colpo
   d'occhio, e sotto ogni voce un dato concreto invece di un aggettivo.
   ═══════════════════════════════════════════════════════════════════════ */
.nav__servizi{position:static;display:flex;align-items:center}
.nav__trigger{font:inherit;font-size:.9rem;color:var(--muto);background:none;border:0;cursor:pointer;
  padding:6px 0;display:inline-flex;align-items:center;gap:6px;transition:color .16s}
.nav__trigger:hover,.nav__servizi.aperto .nav__trigger{color:var(--testo)}
.nav__trigger--attivo{color:var(--testo)}
.nav__chevron{transition:transform .22s}
.nav__servizi.aperto .nav__chevron{transform:rotate(180deg)}

.mega-velo{position:fixed;inset:0;z-index:60;background:rgba(3,6,12,.55);backdrop-filter:blur(2px)}
.mega{position:absolute;left:0;right:0;top:100%;z-index:75;
  background:linear-gradient(180deg,var(--notte-3),var(--notte-2));
  border-top:1px solid var(--bordo);border-bottom:1px solid var(--bordo-2);
  box-shadow:0 40px 80px -40px rgba(0,0,0,.95);
  opacity:0;visibility:hidden;transform:translateY(-10px);
  transition:opacity .22s ease,transform .28s cubic-bezier(.22,1,.36,1),visibility .22s}
.nav__servizi.aperto .mega{opacity:1;visibility:visible;transform:none}
@media (prefers-reduced-motion:reduce){.mega{transition:none;transform:none}}
.mega__in{max-width:var(--wrap);margin-inline:auto;padding:30px 24px 34px}
.mega__griglia{display:grid;grid-template-columns:1fr 1fr .96fr .92fr;gap:0}
.mega__col{padding:0 26px;border-right:1px solid var(--bordo)}
.mega__col:first-child{padding-left:0}

.mega__gruppo{font-family:var(--mono);font-size:.68rem;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;color:var(--oro);margin:0 0 6px}
.mega__sommario{font-size:.82rem;color:var(--muto);margin:0 0 18px;line-height:1.45;max-width:30ch;text-wrap:pretty}

.mega__voce{display:grid;grid-template-columns:52px 1fr;gap:14px;padding:12px;margin:0 -12px;
  border-radius:14px;transition:background .18s}
.mega__voce:hover{background:rgba(255,255,255,.055)}
.mega__foto{width:52px;height:52px;border-radius:11px;overflow:hidden;background:var(--notte);
  border:1px solid var(--bordo)}
.mega__foto img{width:100%;height:100%;object-fit:cover}
.mega__testi{display:flex;flex-direction:column;gap:3px;min-width:0}
.mega__voce-t{font-family:var(--display);font-weight:600;font-size:.98rem;color:var(--testo);letter-spacing:-.015em}
.mega__voce:hover .mega__voce-t{color:var(--oro)}
.mega__voce-d{font-size:.83rem;color:var(--muto);line-height:1.45}
.mega__chip{font-family:var(--mono);font-size:.68rem;letter-spacing:.05em;color:var(--oro-2);
  background:rgba(227,169,60,.10);border:1px solid rgba(227,169,60,.26);border-radius:999px;
  padding:3px 9px;align-self:flex-start;margin-top:4px}

.mega__kpi{display:flex;flex-direction:column;gap:12px;margin-top:18px;padding-top:16px;
  border-top:1px solid var(--bordo)}
.mega__kpi b{display:block;font-family:var(--display);font-size:1.32rem;font-weight:700;color:var(--oro);
  letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}
.mega__kpi span{font-size:.76rem;color:var(--muto);line-height:1.4;display:block;margin-top:4px}

.mega__featured{padding-left:26px;display:flex;flex-direction:column;gap:14px}
.mega__card{display:flex;flex-direction:column;gap:7px;padding:18px;border-radius:16px;
  background:linear-gradient(160deg,rgba(227,169,60,.16),rgba(227,169,60,.05));
  border:1px solid rgba(227,169,60,.36);transition:border-color .2s,transform .2s}
.mega__card:hover{border-color:var(--oro);transform:translateY(-2px)}
.mega__card b{font-family:var(--display);font-size:1.1rem;color:#fff;letter-spacing:-.02em}
.mega__card span{font-size:.84rem;color:var(--muto);line-height:1.5}
.mega__card-cta{font-weight:600;color:var(--oro);font-size:.86rem}
.mega__ripresa{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border-radius:14px;
  background:rgba(255,255,255,.05);border:1px solid var(--bordo);font-size:.83rem;color:var(--muto)}
.mega__ripresa b{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muto)}
.mega__ripresa a{color:var(--oro);font-weight:600;margin-top:4px}

@media(max-width:1200px){
  /* due colonne per riga: la prima di ogni riga sta a filo, l'ultima non ha
     bordo a destra, e le due celle della seconda riga condividono lo stesso
     filetto orizzontale. Prima il divisore si sdoppiava e la terza colonna
     rientrava di 26px rispetto alla prima. */
  .mega__griglia{grid-template-columns:1fr 1fr;gap:26px 0}
  .mega__col:nth-child(2n+1){padding-left:0}
  .mega__col:nth-child(2n){border-right:0;padding-right:0}
  .mega__col:nth-child(n+3){border-top:1px solid var(--bordo);padding-top:24px}
  .mega__featured{padding-left:26px;border-left:0;border-top:1px solid var(--bordo);padding-top:24px}
}
@media(max-width:1040px){
  .nav__servizi{display:block;position:static;width:100%}
  .nav__trigger{width:100%;justify-content:space-between;padding:14px 0;font-size:1.05rem;
    border-bottom:1px solid var(--bordo);color:var(--testo)}
  .mega{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;
    background:transparent;display:none}
  .nav__servizi.aperto .mega{display:block}
  .mega-velo{display:none}
  .mega__in{padding:6px 0 14px}
  .mega__griglia{grid-template-columns:1fr;gap:20px}
  .mega__col,.mega__featured{border:0 !important;padding:0 !important}
  .mega__col:nth-child(n+2){border-top:1px solid var(--bordo) !important;padding-top:18px !important}
  .mega__voce{padding:10px 0;margin:0}
}
.mega__ripresa[hidden]{display:none}
@media(max-width:1040px){
  .mega__sommario{display:none}   /* su telefono il menu deve restare corto */
}
.mega__chip{white-space:nowrap}   /* una pillola che va a capo non è più una pillola */

/* ═══════════════════════════════════════════════════════════════════════
   ZONE SERVITE, PAGINE LEGALI, BANNER DEL CONSENSO
   Le stesse componenti della direzione 03, tradotte sul fondo scuro.
   ═══════════════════════════════════════════════════════════════════════ */
.elenco-punti{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.elenco-punti li{position:relative;padding-left:20px;color:var(--muto);line-height:1.62}
.elenco-punti li::before{
  content:"";position:absolute;left:0;top:.62em;width:7px;height:7px;
  background:var(--oro);border-radius:50%
}

.zone{display:grid;gap:34px}
.zone__gruppo{border-top:1px solid var(--bordo);padding-top:18px}
.zone__elenco{
  list-style:none;padding:0;margin:14px 0 0;
  display:grid;grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:0
}
.zone__elenco li{border-top:1px solid var(--bordo)}
.zone__elenco a{
  display:flex;flex-direction:column;gap:3px;padding:14px 4px;
  text-decoration:none;color:var(--testo);transition:background .18s,padding .18s
}
.zone__elenco a:hover,.zone__elenco a:focus-visible{background:var(--notte-3);padding-inline:10px}
.zone__elenco span{
  font:500 .68rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muto)
}
@media(prefers-reduced-motion:reduce){.zone__elenco a{transition:none}}

.legale{max-width:74ch;margin:0 auto;padding:8px 0 12px}
.legale__b{border-top:1px solid var(--bordo);padding-top:26px;margin-top:34px}
.legale__b:first-child{border-top:0;margin-top:0}
.legale h2{font:600 1.34rem/1.24 var(--display);color:var(--testo);text-wrap:balance}
.legale p{margin:14px 0 0;color:var(--muto);line-height:1.7;text-wrap:pretty}
.legale .elenco-punti{margin-top:16px}
.legale a{color:var(--oro-2);text-underline-offset:3px}
.legale code{font:500 .88em var(--mono);background:var(--notte-3);padding:1px 5px}

.tab-cookie{
  width:100%;border-collapse:collapse;margin-top:18px;
  font:400 .9rem/1.5 var(--body);display:block;overflow-x:auto
}
.tab-cookie th,.tab-cookie td{
  border:1px solid var(--bordo);padding:10px 12px;text-align:left;vertical-align:top
}
.tab-cookie th{
  font:600 .68rem/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase;
  background:var(--notte-3);color:var(--testo);white-space:nowrap
}
.tab-cookie td{color:var(--muto)}
.tab-cookie td:first-child{font-family:var(--mono);font-size:.84rem;color:var(--testo)}

.consenso{
  position:fixed;inset:auto 0 0;z-index:80;
  background:var(--notte-2);color:var(--testo);border-top:2px solid var(--oro);
  animation:consenso-entra .28s ease-out
}
.consenso[hidden]{display:none}
.consenso__in{
  max-width:var(--wrap);margin:0 auto;padding:18px 32px;
  display:grid;grid-template-columns:1fr auto;gap:22px 40px;align-items:center
}
.consenso .rif{color:var(--oro);margin:0 0 6px}
.consenso__testo{margin:0;font-size:.9rem;line-height:1.6;color:var(--muto);max-width:82ch}
.consenso__testo a{color:var(--testo);text-underline-offset:3px}
.consenso__azioni{display:flex;gap:12px;flex-wrap:wrap}
.consenso__azioni .btn{white-space:nowrap}
.btn-fantasma{background:transparent;color:var(--testo);border:1px solid var(--bordo-2)}
.btn-fantasma:hover,.btn-fantasma:focus-visible{background:var(--notte-3);border-color:var(--testo)}
@keyframes consenso-entra{from{transform:translateY(100%)}to{transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.consenso{animation:none}}

.ftr__legali{display:inline-flex;gap:8px;flex-wrap:wrap;align-items:center}
.ftr__consenso{
  background:none;border:0;padding:0;font:inherit;color:inherit;
  cursor:pointer;text-decoration:underline;text-underline-offset:3px
}

.esca{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.consenso-campo{
  display:flex;gap:11px;align-items:flex-start;margin:4px 0 18px;
  font-size:.88rem;line-height:1.55;color:var(--muto)
}
.consenso-campo input{margin-top:.28em;width:17px;height:17px;flex:0 0 auto;accent-color:var(--oro)}
.consenso-campo a{color:var(--oro-2);text-underline-offset:3px}
.consenso-campo input:focus-visible{outline:2px solid var(--oro);outline-offset:2px}

/* Il bollino dell'assistente e il banner del consenso occupano lo stesso
   angolo. Finché il banner è aperto il bollino sale sopra la fascia, invece
   di finirci sotto e coprire «Accetta tutto» — che è esattamente il pulsante
   che non deve mai essere difficile da premere. */
.consenso{z-index:90}
/* Su desktop il bollino sale sopra la fascia. `--consenso-h` la misura
   misura.js, perché dipende da quante righe occupa il testo. */
html[data-consenso-aperto] .avvio-chat{bottom:calc(18px + var(--consenso-h,132px));transition:bottom .2s}
/* Sotto i 1040 px in fondo allo schermo c'è già la barra del pollice: tre
   strati sovrapposti nascondono i pulsanti del consenso. Si toglie il di
   più finché la scelta non è fatta. */
@media(max-width:1040px){
  html[data-consenso-aperto] .barra-mob,
  html[data-consenso-aperto] .avvio-chat{display:none}
  /* Su schermo basso il testo non deve mai spingere i pulsanti sotto la
     piega: la scelta deve restare visibile senza scorrere. */
  /* Scorre il testo, mai i pulsanti: se la scrollbar fosse sul contenitore,
     su uno schermo molto basso la scelta finirebbe fuori dall'area visibile
     e bisognerebbe scorrere dentro il banner per trovarla. */
  .consenso__in{padding:14px 18px;gap:12px}
  .consenso__testo{max-height:30vh;overflow-y:auto}
  .consenso__testo{font-size:.84rem;line-height:1.5}
  .consenso__esteso{display:none}
  .consenso .rif{margin-bottom:4px}
}
@media(prefers-reduced-motion:reduce){
  html[data-consenso-aperto] .avvio-chat{transition:none}
}

/* ── la firma di chi ha fatto il sito ──
   Come nella direzione 03, ma il riquadro è chiaro su fondo scuro: qui la
   pagina è notte, quindi a staccare è il foglio, non l'inchiostro. */
.firma{display:inline-flex;align-items:center;gap:5px;flex-wrap:wrap}
.firma__cuore{font-size:.92em;line-height:1;filter:saturate(1.15)}
.firma__w{position:relative;display:inline-block}
.firma__a{color:inherit;text-decoration:underline;text-underline-offset:3px;
  text-decoration-thickness:1px;transition:color .18s}
.firma__a:hover,.firma__a:focus-visible{color:var(--oro-2)}
.firma__tip{
  position:absolute;bottom:calc(100% + 12px);left:50%;translate:-50% 0;
  width:max-content;max-width:min(30ch,72vw);
  background:var(--notte-3);color:var(--testo);
  border:1px solid var(--bordo-2);border-left:2px solid var(--oro);
  padding:11px 14px;font-family:var(--body);font-size:.78rem;line-height:1.5;
  letter-spacing:0;text-transform:none;text-align:left;
  box-shadow:0 14px 34px rgba(0,0,0,.5);
  opacity:0;visibility:hidden;transform:translateY(4px);
  transition:opacity .18s,transform .18s,visibility .18s;
  pointer-events:none;z-index:70}
.firma__tip::after{content:"";position:absolute;top:100%;left:50%;
  width:9px;height:9px;margin:-5px 0 0 -5px;rotate:45deg;
  background:var(--notte-3);
  border-right:1px solid var(--bordo-2);border-bottom:1px solid var(--bordo-2)}
.firma__w:hover .firma__tip,
.firma__w:focus-within .firma__tip{opacity:1;visibility:visible;transform:translateY(0)}
@media(prefers-reduced-motion:reduce){.firma__tip{transition:none}}

/* ═══════════════════════════════════════════════════════════════════════
   MOBILE — direzione 02
   Un blocco solo, con quattro punti di rottura condivisi: 1040 (navigazione),
   900 (impaginazione, già sopra), 700 (telefono), 430 (telefono stretto).
   Il telefono non è il desktop stretto: cambia la postura di lettura — una
   mano, poco tempo, nessun passaggio del mouse — e cambiano di conseguenza
   ritmo verticale, bersagli tattili e dove sta l'azione.
   ═══════════════════════════════════════════════════════════════════════ */
@media(max-width:1040px){
  :root{--hdr-h:56px}
  .hdr__in{padding:9px 20px}
  .hdr__logo img{height:32px}
  .nav{inset:var(--hdr-h) 0 auto}
  .burger{min-height:44px;padding:11px 17px}
  [id]{scroll-margin-top:calc(var(--hdr-h) + 14px)}
  .wa{display:none}                    /* al suo posto c'è la barra del pollice */
}

@media(max-width:700px){

  .zone__elenco{grid-template-columns:1fr}
  .consenso__in{grid-template-columns:1fr;padding:16px 20px;gap:16px}
  .consenso__azioni .btn{flex:1 1 auto;justify-content:center}
  .legale__b{margin-top:28px;padding-top:22px}
  .legale h2{font-size:1.18rem}
  /* ritmo verticale: si scorreva a lungo senza incontrare niente */
  .sez{padding:56px 0}
  .wrap{padding-inline:20px}
  .hero__in{padding:60px 20px 68px}
  .hero-pagina__in{padding:34px 0 44px}
  .quadro{margin-top:-30px}
  .calc,.conf__campi,.conf__esito,.scheda,.riepilogo,.modulo{padding:22px 20px}
  .quadro__box{padding:22px 20px}

  /* tipografia: meno righe per paragrafo, niente parole orfane */
  h1,h2,h3,h4{text-wrap:balance}
  p,.testo,.calc__sub,.mega__sommario,.esito-et,.scheda p{text-wrap:pretty}
  .hero h1{font-size:clamp(2rem,8.6vw,2.7rem)}
  .hero-pagina h1{font-size:clamp(1.9rem,8vw,2.5rem)}
  h2.tit{font-size:clamp(1.6rem,6.8vw,2.1rem)}
  .hero__deck,.hero-pagina__deck{font-size:1rem;margin:18px 0 24px}
  .testo{font-size:1rem}
  .postilla,.nota-legale{font-size:.8rem}

  /* micro-etichette: a 10 px con crenatura larga andavano a capo e si
     leggevano male. Un filo più grandi, un filo più strette. */
  .scheda__k,.kit__nome,.fase__n,.iter i,.briciole,.ftr h5,.conf__codice,
  .mega__gruppo,.etichetta,.occhiello,.hero__occhiello{font-size:.72rem;letter-spacing:.09em}
  .campo-calc__estremi,.esito-val small,.dato__l{font-size:.7rem}
  .hero__nota{font-size:.74rem;letter-spacing:.04em}

  /* bersagli tattili */
  .pill,.tab button,.nav>a,.mega__voce,.faq summary,.calc__ipotesi summary,.freccia{min-height:44px}
  .pill{display:inline-flex;align-items:center;font-size:.9rem;padding:11px 16px}
  .tab button{display:inline-flex;align-items:center}
  .faq summary,.calc__ipotesi summary{display:flex;align-items:center}

  /* pulsanti impilati: stessa larghezza, niente bordi frastagliati */
  .hero__cta,.hero-pagina__azioni,.calc__azioni,.riepilogo__azioni,.conf__nav{
    flex-direction:column;align-items:stretch;gap:10px}
  .hero__cta .btn,.hero-pagina__azioni .btn,.calc__azioni .btn,
  .riepilogo__azioni .btn,.conf__nav .btn{width:100%;justify-content:center;min-height:50px}

  /* riquadro risultato: la prima cella è la risposta, prende tutta la riga */
  .esito-griglia{grid-template-columns:1fr 1fr}
  .esito-riga:first-child{grid-column:1/-1}
  .esito-riga:first-child .esito-val{font-size:1.85rem}
  .esito-val{white-space:nowrap}
  .esito-val small{white-space:normal}
  .calc__kit-nome{font-size:1rem}
  .calc__kit-prezzo b{font-size:1.4rem}

  /* blocchi di soli numeri: due colonne, metà altezza */
  .griglia--num{grid-template-columns:1fr 1fr}
  .griglia--num .scheda{padding:18px 16px}
  .griglia--num h3{font-size:1.7rem !important}

  /* passi del configuratore: tre chip uguali, numero sopra ed etichetta sotto */
  .conf__passi{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
  .conf__passi li{flex-direction:column;gap:6px;text-align:center;padding:10px 6px;font-size:.74rem;
    line-height:1.25}

  .riepilogo__testo{font-size:.74rem;padding:14px}
  .fiducia{gap:8px 18px}
  .fiducia span{font-size:.86rem}
}

@media(max-width:430px){
  .wrap{padding-inline:16px}
  .griglia--num{grid-template-columns:1fr 1fr}
  .esito-riga{padding:14px 12px}
  .esito-val{font-size:1.3rem}
}

/* ── la barra del pollice ─────────────────────────────────────────────────
   Porta il risultato che cambia mentre trascini il cursore e le due azioni.
   Sopra i 1040 px non esiste: lì il risultato è già a fianco dei comandi. */
.barra-mob{display:none}
@media(max-width:1040px){
  .barra-mob{display:block;position:fixed;left:0;right:0;bottom:0;z-index:85;
    background:rgba(12,19,34,.96);backdrop-filter:blur(12px);
    border-top:1px solid var(--bordo-2);
    padding:10px 14px calc(10px + env(safe-area-inset-bottom));
    box-shadow:0 -12px 30px -18px rgba(0,0,0,.9)}
  .barra-mob__dati{display:flex;align-items:baseline;justify-content:space-between;gap:12px;
    padding:0 2px 9px;margin-bottom:9px;border-bottom:1px solid var(--bordo)}
  .barra-mob__dati[hidden]{display:none}
  .barra-mob__conf{font-family:var(--mono);font-size:.74rem;letter-spacing:.04em;color:var(--muto);
    white-space:nowrap}
  .barra-mob__ris{font-family:var(--display);font-weight:700;font-size:1.05rem;letter-spacing:-.02em;
    color:#5FD39B;font-variant-numeric:tabular-nums;white-space:nowrap}
  .barra-mob__ris small{font-family:var(--body);font-size:.62rem;font-weight:600;color:var(--muto);
    margin-left:.25em}
  .barra-mob__azioni{display:grid;grid-template-columns:1fr 1.25fr;gap:9px}
  .barra-mob__b{display:inline-flex;align-items:center;justify-content:center;gap:.45em;
    min-height:48px;border-radius:12px;font-weight:700;font-size:.92rem;padding:0 12px;text-align:center}
  .barra-mob__b--wa{background:#25D366;color:#06301A}
  .barra-mob__b--cta{background:var(--oro);color:#160F02}
  .barra-mob__ico{display:inline-flex;width:17px;height:17px}
  .barra-mob__ico svg{width:100%;height:100%;fill:currentColor}

  body{padding-bottom:calc(78px + env(safe-area-inset-bottom))}
  body:has(.barra-mob--dati){padding-bottom:calc(116px + env(safe-area-inset-bottom))}
}

/* ── grafico 24 ore, versione telefono ───────────────────────────────────
   Il testo dell'SVG non può rimpicciolirsi col disegno: nella geometria
   compatta il corpo è maggiore, così una volta scalato torna leggibile. */
.graf svg.compatto .asse-t{font-size:13px;letter-spacing:.02em}
.graf svg.compatto .serie-prod,.graf svg.compatto .serie-cons{stroke-width:2.6}

/* ── rifiniture mobile, seconda passata ─────────────────────────────────── */
@media(max-width:700px){
  /* con sei celle e la prima a tutta riga restava un buco in fondo:
     anche l'ultima prende la riga intera */
  .esito-riga:last-child{grid-column:1/-1}
  /* l'hero di pagina ha una sfumatura pensata per il formato orizzontale:
     su telefono va verticale, altrimenti la fotografia sparisce */
  .hero-pagina::before{background:linear-gradient(180deg,rgba(7,12,22,.66) 0%,rgba(7,12,22,.80) 46%,rgba(7,12,22,.97) 100%)}
  .hero-pagina__bg img{object-position:center 32%}
}

/* ── griglia a cinque: mancava, e le sezioni "come lavoriamo" restavano
      impilate anche su desktop ─────────────────────────────────────────── */
.griglia-5{display:grid;grid-template-columns:repeat(5,1fr);gap:20px}
@media(max-width:1200px){.griglia-5{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.griglia-5{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.griglia-5{grid-template-columns:1fr}}

/* nota di scorrimento per le zone che vanno di lato */
.scorri-nota{font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;color:var(--muto);
  margin:10px 0 0;transition:opacity .3s}
.scorri-nota.via{opacity:0}

/* il tempo di una fase è una nota, non un titolo: resta piccolo anche mobile */
.scheda__tempo{font-family:var(--mono);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;
  opacity:.7;margin:14px 0 0}
@media(max-width:700px){.scheda__tempo{font-size:.66rem;letter-spacing:.09em}}

/* ═══════════════════════════════════════════════════════════════════════
   L'ASSISTENTE — direzione 02
   Prende il posto del bollino WhatsApp: stesso angolo, stesso peso visivo.
   Il pannello è una scheda di vetro su desktop e un foglio a tutto schermo
   sul telefono, dove la conversazione ha bisogno di tutta la larghezza.
   ═══════════════════════════════════════════════════════════════════════ */
.avvio-chat{position:fixed;right:18px;bottom:18px;z-index:80;display:inline-flex;align-items:center;gap:9px;
  padding:12px 18px 12px 14px;border-radius:999px;border:1px solid rgba(227,169,60,.45);cursor:pointer;
  background:linear-gradient(160deg,rgba(227,169,60,.22),rgba(12,19,34,.96));backdrop-filter:blur(10px);
  color:var(--testo);font:inherit;font-size:.92rem;font-weight:600;
  box-shadow:0 14px 34px -14px rgba(0,0,0,.85);transition:transform .18s,border-color .2s}
.avvio-chat:hover{transform:translateY(-2px);border-color:var(--oro)}
.avvio-chat svg{width:20px;height:20px;color:var(--oro)}

.chat{position:fixed;right:18px;bottom:18px;z-index:95;width:min(400px,calc(100vw - 36px));height:min(640px,calc(100vh - 36px));
  display:flex;flex-direction:column;overflow:hidden;
  background:linear-gradient(180deg,var(--notte-3),var(--notte-2));
  border:1px solid var(--bordo-2);border-radius:22px;
  box-shadow:0 40px 90px -30px rgba(0,0,0,.92);
  opacity:0;transform:translateY(14px) scale(.98);transition:opacity .22s,transform .26s cubic-bezier(.22,1,.36,1)}
.chat--aperta{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.chat{transition:none;transform:none}}

.chat__testa{display:flex;align-items:flex-start;gap:12px;padding:16px 18px;border-bottom:1px solid var(--bordo)}
.chat__titolo{display:block;font-family:var(--display);font-size:1.02rem;color:#fff}
.chat__stato{display:block;font-size:.74rem;color:var(--muto);margin-top:2px}
.chat__chiudi{margin-left:auto;background:rgba(255,255,255,.06);border:1px solid var(--bordo);color:var(--muto);
  width:34px;height:34px;border-radius:10px;cursor:pointer;font-size:.9rem;flex:none}
.chat__chiudi:hover{color:var(--testo);border-color:var(--bordo-2)}

.chat__corpo{flex:1;overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;gap:12px;
  scrollbar-width:thin;scrollbar-color:var(--bordo-2) transparent}
.chat__msg{max-width:88%;padding:11px 14px;border-radius:14px;font-size:.94rem;line-height:1.55;
  white-space:normal;overflow-wrap:anywhere}
.chat__msg--bot{background:rgba(255,255,255,.06);border:1px solid var(--bordo);align-self:flex-start;
  border-bottom-left-radius:5px}
.chat__msg--io{background:var(--oro);color:#160F02;align-self:flex-end;border-bottom-right-radius:5px;font-weight:500}

.chat__scrive{display:flex;gap:5px;align-self:flex-start;padding:12px 14px;background:rgba(255,255,255,.06);
  border:1px solid var(--bordo);border-radius:14px}
.chat__scrive span{width:6px;height:6px;border-radius:50%;background:var(--muto);animation:puntino 1.2s infinite}
.chat__scrive span:nth-child(2){animation-delay:.15s}
.chat__scrive span:nth-child(3){animation-delay:.3s}
@keyframes puntino{0%,60%,100%{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
@media (prefers-reduced-motion:reduce){.chat__scrive span{animation:none;opacity:.6}}

.chat__opzioni{display:flex;flex-wrap:wrap;gap:8px;align-self:flex-start;max-width:100%}
.chat__opz{font:inherit;font-size:.88rem;font-weight:500;padding:10px 15px;border-radius:999px;cursor:pointer;
  background:rgba(227,169,60,.10);border:1px solid rgba(227,169,60,.4);color:var(--oro-2);
  transition:background .16s,transform .16s;min-height:42px;display:inline-flex;align-items:center;text-align:left}
.chat__opz:hover:not(:disabled){background:rgba(227,169,60,.2);transform:translateY(-1px)}
.chat__opz:disabled{opacity:.4;cursor:default}
.chat__opz.scelto{background:var(--oro);border-color:var(--oro);color:#160F02;opacity:1}

.chat__ris{border:1px solid var(--bordo-2);border-radius:16px;overflow:hidden;background:var(--notte-2);align-self:stretch}
.chat__ris-kit{padding:14px 16px;background:rgba(227,169,60,.10);border-bottom:1px solid var(--bordo)}
.chat__ris-kit b{font-family:var(--display);color:#fff}
.chat__ris-kit span{display:block;margin-top:5px;font-size:.86rem;color:var(--muto)}
.chat__ris-kit s{color:var(--muto)}
.chat__ris-griglia{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--bordo)}
.chat__ris-voce{background:var(--notte-2);padding:12px 14px}
.chat__ris-voce b{font-family:var(--display);font-size:1.14rem;color:#fff;font-variant-numeric:tabular-nums}
.chat__ris-voce.buono b{color:#5FD39B}
.chat__ris-voce small{display:block;font-size:.64rem;letter-spacing:.05em;color:var(--muto);margin-top:2px}
.chat__ris-voce span{display:block;font-size:.76rem;color:var(--muto);margin-top:6px;line-height:1.35}
.chat__ris-link{display:block;padding:12px 16px;border-top:1px solid var(--bordo);font-size:.86rem;
  font-weight:600;color:var(--oro)}

.chat__modulo{border:1px solid var(--bordo-2);border-radius:16px;padding:16px;background:var(--notte-2);
  align-self:stretch;display:flex;flex-direction:column;gap:11px}
.chat__modulo.inviato{opacity:.55}
.chat__modulo-testa b{display:block;font-family:var(--display);font-size:1rem;color:#fff}
.chat__modulo-testa span{display:block;font-size:.82rem;color:var(--muto);margin-top:4px}
.chat__campo{display:block}
.chat__campo>span{display:block;font-size:.74rem;font-weight:600;letter-spacing:.04em;color:var(--muto);margin-bottom:5px}
.chat__campo i{color:var(--oro);font-style:normal}
.chat__campo input,.chat__campo select,.chat__campo textarea{width:100%;padding:11px 12px;border-radius:9px;
  border:1px solid var(--bordo-2);background:rgba(255,255,255,.04);color:var(--testo);font:inherit;font-size:1rem}
.chat__campo input:focus,.chat__campo select:focus,.chat__campo textarea:focus{outline:none;border-color:var(--oro)}
.chat__campo select option{background:var(--notte-2)}
.chat__consenso{display:flex;gap:9px;align-items:flex-start;font-size:.78rem;color:var(--muto);line-height:1.45}
.chat__consenso input{margin-top:3px;flex:none;width:16px;height:16px;accent-color:var(--oro)}
.chat__consenso a{color:var(--oro);text-decoration:underline}
.chat__invia{font:inherit;font-weight:700;font-size:.94rem;padding:13px;border-radius:11px;border:0;cursor:pointer;
  background:var(--oro);color:#160F02;min-height:46px}

.chat__persona{border:1px solid var(--bordo);border-radius:14px;padding:14px 16px;background:rgba(255,255,255,.04);
  align-self:stretch;display:flex;flex-direction:column;gap:8px}
.chat__persona b{font-family:var(--display);color:#fff;font-size:.96rem}
.chat__persona-b{display:block;padding:11px 14px;border-radius:10px;background:rgba(255,255,255,.06);
  border:1px solid var(--bordo);font-size:.88rem;font-weight:600;text-align:center;color:var(--testo)}
.chat__persona-b:hover{border-color:var(--oro);color:var(--oro)}
.chat__persona-b--wa{background:#25D366;border-color:#25D366;color:#06301A}
.chat__persona-b--wa:hover{color:#06301A;border-color:#25D366}

.chat__fatto{border:1px solid rgba(95,211,155,.45);border-radius:14px;padding:14px 16px;
  background:rgba(95,211,155,.10);align-self:stretch;display:flex;flex-direction:column;gap:5px}
.chat__fatto b{color:#5FD39B;font-family:var(--display)}
.chat__fatto span{font-size:.84rem;color:var(--muto)}
.chat__fatto code{font-family:var(--mono);color:var(--testo);background:rgba(0,0,0,.3);padding:2px 7px;border-radius:5px}

.chat__scrivi{display:flex;gap:8px;padding:12px 14px 6px;border-top:1px solid var(--bordo)}
.chat__input{flex:1;padding:11px 14px;border-radius:999px;border:1px solid var(--bordo-2);
  background:rgba(255,255,255,.04);color:var(--testo);font:inherit;font-size:1rem}
.chat__input:focus{outline:none;border-color:var(--oro)}
.chat__manda{width:44px;height:44px;flex:none;border-radius:50%;border:0;cursor:pointer;background:var(--oro);
  color:#160F02;font-size:1.1rem;font-weight:700}
.chat__nota{margin:0;padding:0 16px 12px;font-size:.7rem;color:var(--muto);line-height:1.45}

@media(max-width:700px){
  .avvio-chat{right:auto;left:14px;bottom:calc(88px + env(safe-area-inset-bottom));padding:10px 15px 10px 12px;font-size:.86rem}
  .chat{right:0;left:0;bottom:0;top:0;width:100%;height:100%;border-radius:0;border:0;max-height:none}
  .chat__corpo{padding:14px}
  .chat__nota{padding:0 14px calc(10px + env(safe-area-inset-bottom))}
  .chat__scrivi{padding:10px 14px 6px}
}
/* col pannello aperto la pagina sotto non deve scorrere */
.chat-aperta,.chat-aperta body{overflow:hidden}
@media(min-width:701px){.chat-aperta,.chat-aperta body{overflow:auto}}
.barra-mob__b--chat{background:var(--oro);color:#160F02;border:0;font:inherit;font-weight:700;cursor:pointer}
:root{--blog-accent:var(--oro);--blog-accent-text:#160F02;--blog-surface:var(--notte-2);--blog-border:var(--bordo-2);--blog-text:var(--testo);--blog-body:#C6CEDA;--blog-muted:var(--muto);--blog-method-bg:var(--notte-2);--blog-cta:#10233D;--blog-radius:14px}
/* ═══ BLOG EDITORIALE PREMIUM ═══════════════════════════════════════════ */
.blog-hub{padding-top:76px}.blog-hub__intro{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:30px}.blog-search{width:min(360px,100%)}
.blog-search label{display:block;font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px;color:var(--blog-accent)}.blog-search input{width:100%;min-height:48px;border:1px solid var(--blog-border);background:var(--blog-surface);color:var(--blog-text);font:inherit;padding:11px 15px;border-radius:var(--blog-radius)}
.blog-targets{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:36px}.blog-targets button{border:1px solid var(--blog-border);background:transparent;color:var(--blog-muted);font:inherit;font-weight:650;padding:10px 16px;border-radius:999px;cursor:pointer}.blog-targets button:hover,.blog-targets button.is-active{background:var(--blog-accent);border-color:var(--blog-accent);color:var(--blog-accent-text)}
.blog-featured{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);min-height:450px;background:var(--blog-surface);border:1px solid var(--blog-border);border-radius:calc(var(--blog-radius) * 2);overflow:hidden;margin-bottom:28px}.blog-featured__media,.blog-featured__media picture,.blog-featured__media img{height:100%;min-height:420px}.blog-featured__media img{width:100%;object-fit:cover}.blog-featured__body{padding:clamp(30px,5vw,64px);display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.blog-featured h3{font-size:clamp(1.8rem,3.3vw,3rem);margin:12px 0 18px;text-wrap:balance}.blog-featured p{color:var(--blog-muted);font-size:1.05rem}.blog-kicker{font-size:.73rem;font-weight:750;letter-spacing:.12em;text-transform:uppercase;color:var(--blog-accent)}
.blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.blog-card{background:var(--blog-surface);border:1px solid var(--blog-border);border-radius:var(--blog-radius);overflow:hidden;transition:transform .2s,border-color .2s}.blog-card:hover{transform:translateY(-4px);border-color:var(--blog-accent)}.blog-card__media{display:block;aspect-ratio:3/2;overflow:hidden}.blog-card__media picture,.blog-card__media img{width:100%;height:100%}.blog-card__media img{object-fit:cover;transition:transform .45s}.blog-card:hover .blog-card__media img{transform:scale(1.025)}.blog-card__body{padding:22px;display:flex;flex-direction:column;min-height:310px}.blog-card__meta{display:flex;gap:8px;flex-wrap:wrap;font-size:.69rem;letter-spacing:.04em;text-transform:uppercase;color:var(--blog-muted)}.blog-card__meta span:first-child{color:var(--blog-accent);font-weight:750}.blog-card h3{font-size:1.28rem;line-height:1.18;margin:14px 0 11px}.blog-card p{color:var(--blog-muted);font-size:.93rem}.blog-card__link{margin-top:auto;padding-top:14px;color:var(--blog-accent);font-weight:700}.blog-empty{text-align:center;padding:42px;border:1px dashed var(--blog-border);color:var(--blog-muted)}
.blog-metodo{background:var(--blog-method-bg)}.blog-metodo__grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}.blog-metodo__passi{display:grid;gap:0;border-top:1px solid var(--blog-border)}.blog-metodo__passi p{display:grid;grid-template-columns:52px 1fr;gap:18px;padding:20px 0;margin:0;border-bottom:1px solid var(--blog-border)}.blog-metodo__passi b{color:var(--blog-accent)}
.article-page{--article-width:780px}.article-hero{position:relative;isolation:isolate;min-height:620px;display:flex;align-items:flex-end;color:#fff}.article-hero__media,.article-hero__shade{position:absolute;inset:0;z-index:-2}.article-hero__media picture,.article-hero__media img{width:100%;height:100%}.article-hero__media img{object-fit:cover}.article-hero__shade{z-index:-1;background:linear-gradient(180deg,rgba(2,13,38,.35),rgba(2,13,38,.94))}.article-hero__content{padding-top:120px;padding-bottom:70px}.article-hero h1{font-size:clamp(2.4rem,5.8vw,5rem);max-width:18ch;margin:18px 0;text-wrap:balance}.article-hero__content>p{font-size:clamp(1.05rem,2vw,1.3rem);max-width:62ch;color:rgba(255,255,255,.82)}.article-meta{display:flex;gap:18px;flex-wrap:wrap;font-size:.79rem;color:rgba(255,255,255,.66);margin-top:24px}
.article-layout{display:grid;grid-template-columns:250px minmax(0,var(--article-width));gap:70px;justify-content:center;padding-top:74px;padding-bottom:100px}.article-toc{position:sticky;top:96px;height:max-content;display:flex;flex-direction:column;border-top:2px solid var(--blog-accent)}.article-toc strong{padding:16px 0 10px}.article-toc>a{display:grid;grid-template-columns:26px 1fr;gap:7px;padding:10px 0;border-bottom:1px solid var(--blog-border);font-size:.82rem;color:var(--blog-muted)}.article-toc>a span{color:var(--blog-accent)}.article-toc>a[aria-current]{font-weight:750;color:var(--blog-text)}.article-toc .article-toc__cta{display:block;margin-top:18px;padding:13px;color:var(--blog-accent-text);background:var(--blog-accent);border:0;text-align:center;font-weight:700;border-radius:var(--blog-radius)}
.article-summary{padding:28px 30px;border:1px solid var(--blog-border);background:var(--blog-surface);border-radius:var(--blog-radius);margin-bottom:68px}.article-summary>span{font-size:.73rem;text-transform:uppercase;letter-spacing:.12em;color:var(--blog-accent);font-weight:750}.article-summary ul,.article-check{padding:0;list-style:none;margin:18px 0 0;display:grid;gap:11px}.article-summary li,.article-check li{position:relative;padding-left:24px}.article-summary li::before,.article-check li::before{content:"";position:absolute;left:1px;top:.64em;width:8px;height:8px;border:2px solid var(--blog-accent);transform:rotate(45deg)}
.article-section{position:relative;margin-bottom:68px;scroll-margin-top:100px}.article-section__n{display:block;font-size:.7rem;letter-spacing:.12em;color:var(--blog-accent);font-weight:750;margin-bottom:10px}.article-section h2,.article-sources h2,.article-faq h2{font-size:clamp(1.65rem,3vw,2.35rem);line-height:1.13;margin-bottom:22px;text-wrap:balance}.article-section p{font-size:1.08rem;color:var(--blog-body);line-height:1.78}.article-check{background:var(--blog-surface);border-left:3px solid var(--blog-accent);padding:22px 24px;margin:28px 0}.article-callout{margin:30px 0;padding:24px 28px;border:1px solid var(--blog-accent);border-radius:var(--blog-radius)}.article-callout span{display:block;color:var(--blog-accent);text-transform:uppercase;font-size:.7rem;letter-spacing:.12em;font-weight:750}.article-callout p{margin:8px 0 0;color:var(--blog-text);font-weight:650}
.article-figure{margin:38px 0 0}.article-figure picture,.article-figure img{width:100%;border-radius:var(--blog-radius)}.article-figure figcaption{font-size:.78rem;color:var(--blog-muted);padding-top:10px}.article-sources,.article-faq{border-top:1px solid var(--blog-border);padding-top:50px;margin-top:70px}.article-sources p{color:var(--blog-muted)}.article-sources ul{padding-left:20px}.article-sources a{color:var(--blog-accent);text-decoration:underline;text-underline-offset:3px}.article-faq details{border-bottom:1px solid var(--blog-border);padding:18px 0}.article-faq summary{font-weight:700;cursor:pointer}.article-faq details p{color:var(--blog-muted);padding-top:12px}
.article-cta{margin-top:70px;padding:34px;display:flex;justify-content:space-between;align-items:center;gap:28px;background:var(--blog-cta);border-radius:calc(var(--blog-radius) * 1.5);color:#fff}.article-cta span{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:#F6D79A}.article-cta h2{font-size:1.75rem;margin:7px 0}.article-cta p{margin:0;color:rgba(255,255,255,.75)}
@media(max-width:1000px){.blog-grid{grid-template-columns:repeat(2,1fr)}.article-layout{grid-template-columns:1fr;max-width:850px}.article-toc{position:static}.article-toc>a{display:none}.article-toc strong{cursor:default}}
@media(max-width:700px){.blog-hub{padding-top:52px}.blog-hub__intro,.article-cta{align-items:stretch;flex-direction:column}.blog-featured{grid-template-columns:1fr}.blog-featured__media,.blog-featured__media picture,.blog-featured__media img{min-height:260px;height:260px}.blog-grid{grid-template-columns:1fr}.blog-card__body{min-height:0}.blog-metodo__grid{grid-template-columns:1fr;gap:34px}.article-hero{min-height:560px}.article-hero__content{padding-top:100px;padding-bottom:48px}.article-layout{padding-top:48px;padding-bottom:70px;gap:44px}.article-summary{padding:24px 22px;margin-bottom:50px}.article-section{margin-bottom:52px}.article-section p{font-size:1rem}.article-cta .btn{width:100%;justify-content:center}}
.blog-empty-state{padding:52px 32px;border:1px solid var(--linea);text-align:center;margin:24px 0}.blog-empty-state p{color:var(--muto);margin:10px auto 0;max-width:620px}.blog-pagination{display:flex;justify-content:center;gap:8px;margin-top:38px}.blog-pagination a{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--linea);font-weight:700}.blog-pagination a:hover,.blog-pagination a.is-active{background:var(--accento);color:var(--notte)}
@media(prefers-reduced-motion:reduce){.blog-card,.blog-card__media img{transition:none}}
