/* casa-fase · elettricista e fotovoltaico. Chiaro e luminoso: bianco ghiaccio, verde energia, giallo sole.
   Caratteri: Funnel Display (titoli) + Funnel Sans (testo).
   Forme: raggio 18px per schede e foto, bottoni a pillola, moduli del quadro con angoli da 10px. */
@font-face{font-family:'Funnel Display';src:url('../_font/funnel-display/funnel-display-var.woff2') format('woff2');font-weight:300 800;font-display:swap}
@font-face{font-family:'Funnel Sans';src:url('../_font/funnel-sans/funnel-sans-var.woff2') format('woff2');font-weight:300 800;font-display:swap}

:root{
  --p:#0a8a5f;   /* verde energia: bottoni */
  --s:#f3f6f2;   /* bianco ghiaccio */
  --t:#0e1d1a;   /* verde notte: testo */
  --a:#ffc83d;   /* giallo sole: accenti */
  --f-titoli:'Funnel Display', 'Segoe UI', sans-serif;
  --f-testo:'Funnel Sans', system-ui, sans-serif;

  --su-p:var(--s);
  --su-a:var(--t);
  --carta:color-mix(in oklab, var(--s) 55%, #ffffff);
  --tenue:color-mix(in oklab, var(--t) 70%, var(--s));
  --linea:color-mix(in oklab, var(--t) 14%, var(--s));
  --s2:color-mix(in oklab, var(--p) 7%, var(--s));
  --scuro:color-mix(in oklab, var(--t) 94%, var(--p));
  --gut:clamp(16px, 4vw, 56px);
  --largo:max(var(--gut), calc((100% - 1480px) / 2));
  --r:18px;
  --ease:cubic-bezier(.16,1,.3,1);
  --alto:74px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--s);color:var(--t);font-family:var(--f-testo);font-size:17px;line-height:1.6;overflow-x:clip;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3,p,ul,ol,dl,dd,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
button,input,textarea{font:inherit;color:inherit}
fieldset{border:0;margin:0;padding:0;min-width:0}
:focus-visible{outline:2px solid var(--p);outline-offset:3px}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.ico{width:1.15em;height:1.15em;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.salta{position:absolute;left:12px;top:-60px;z-index:200;background:var(--p);color:var(--su-p);padding:10px 16px;border-radius:999px}
.salta:focus{top:12px}
[hidden]{display:none !important}

/* ---------- bottoni ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:0 26px;border-radius:999px;font-weight:700;font-size:1rem;text-decoration:none;white-space:nowrap;border:1.5px solid transparent;cursor:pointer;transition:background .4s var(--ease),color .4s var(--ease),border-color .4s var(--ease),box-shadow .4s var(--ease)}
.btn .ico{transition:translate .45s var(--ease)}
.btn:hover .ico{translate:4px 0}
.btn--pieno{background:var(--p);color:var(--su-p)}
.btn--pieno:hover{background:var(--t);color:var(--s)}
.btn--vuoto{border-color:color-mix(in oklab, var(--t) 30%, transparent)}
.btn--vuoto:hover{border-color:var(--t);background:var(--carta)}
.btn--sole{background:var(--a);color:var(--su-a)}
.btn--sole:hover{background:var(--s);color:var(--t)}
.btn--piccolo{min-height:44px;padding:0 18px;font-size:.95rem}
.btn--largo{width:100%}

/* ---------- testata ---------- */
.testata{position:fixed;inset:0 0 auto;z-index:80;height:var(--alto);display:flex;align-items:center;gap:26px;padding-inline:var(--largo);background:color-mix(in oklab, var(--s) 88%, transparent);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);transition:transform .6s var(--ease),box-shadow .4s}
.testata.filetto{box-shadow:0 1px 0 var(--linea)}
.testata.nascosta{transform:translateY(-100%)}
.logo{display:flex;align-items:center;gap:10px;margin-right:auto;text-decoration:none;font-family:var(--f-titoli);font-weight:700;font-size:1.2rem;letter-spacing:-.02em;min-width:0}
.logo span:last-child{line-height:1.08;max-width:20ch;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.logo__bollo{width:36px;height:36px;flex:none;border-radius:11px;background:var(--a);color:var(--t);display:grid;place-items:center}
.logo__bollo .ico{width:19px;height:19px;fill:currentColor;stroke:none}
.nav{display:flex;gap:6px}
.nav a{white-space:nowrap;text-decoration:none;font-weight:600;font-size:.96rem;padding:9px 14px;border-radius:999px;transition:background .3s}
.nav a:hover{background:var(--s2)}
.testata__urgenze{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:700;white-space:nowrap}
.testata__urgenze .ico{width:38px;height:38px;padding:9px;border-radius:50%;background:var(--s2);color:var(--p)}
.testata__urgenze span{display:flex;flex-direction:column;line-height:1.15}
.testata__urgenze small{font-weight:500;font-size:.78rem;color:var(--tenue)}
.burger{display:none;width:48px;height:48px;border-radius:50%;border:0;background:var(--t);position:relative;cursor:pointer}
.burger span{position:absolute;left:14px;right:14px;height:2px;border-radius:2px;background:var(--s);transition:transform .5s var(--ease),top .5s var(--ease)}
.burger span:first-child{top:19px}.burger span:last-child{top:27px}
.burger[aria-expanded="true"] span:first-child{top:23px;transform:rotate(45deg)}
.burger[aria-expanded="true"] span:last-child{top:23px;transform:rotate(-45deg)}
.pannello{position:fixed;inset:0;z-index:70;background:var(--s);padding:calc(var(--alto) + 40px) var(--gut) 30px;display:flex;flex-direction:column;justify-content:space-between;gap:30px}
.pannello__nav a{display:block;font-family:var(--f-titoli);font-weight:700;font-size:clamp(2rem, 9vw, 3rem);letter-spacing:-.04em;line-height:1.25;text-decoration:none}

/* ---------- hero: bento ---------- */
.hero{padding:calc(var(--alto) + 20px) var(--largo) clamp(30px, 4vw, 60px)}
.bento{display:grid;grid-template-columns:minmax(0, 1.35fr) minmax(0, 1fr) minmax(0, 1fr);grid-template-rows:minmax(0, 1.25fr) minmax(0, 1fr);grid-template-areas:"t g g" "t f d" ;gap:12px;height:min(calc(100svh - var(--alto) - 50px), 860px);min-height:560px}
.bento > *{border-radius:var(--r);overflow:hidden;min-height:0}
.bento__titolo{grid-area:t;position:relative;background:var(--carta);padding:clamp(24px, 3vw, 48px);display:flex;flex-direction:column;justify-content:flex-end;gap:20px;border:1px solid var(--linea)}
.bento__titolo > *{position:relative}
.bento__titolo::before{content:"";position:absolute;right:-8%;top:-14%;width:62%;aspect-ratio:1;border-radius:50%;background:repeating-radial-gradient(circle, transparent 0 18px, color-mix(in oklab, var(--a) 55%, transparent) 18px 19.5px);-webkit-mask-image:radial-gradient(circle, #000 30%, transparent 70%);mask-image:radial-gradient(circle, #000 30%, transparent 70%);opacity:.8;pointer-events:none}
.hero__sopra{display:flex;align-items:center;gap:10px;font-weight:600;color:var(--p)}
.hero__sopra .ico{color:color-mix(in oklab, var(--a) 70%, var(--t))}
.hero__titolo{font-family:var(--f-titoli);font-weight:750;font-size:clamp(2.5rem, 4.6vw, 5.2rem);line-height:1;letter-spacing:-.03em;text-wrap:balance}
.hero__sotto{color:var(--tenue);font-size:clamp(1.02rem, 1.2vw, 1.18rem);max-width:42ch}
.hero__cta{display:flex;flex-wrap:wrap;gap:10px}
.bento__foto{position:relative;margin:0}
.bento__foto img{width:100%;height:100%;object-fit:cover}
.bento__foto--grande{grid-area:g}
.bento__foto figcaption{position:absolute;left:14px;bottom:14px;padding:8px 14px;border-radius:999px;background:color-mix(in oklab, var(--s) 88%, transparent);backdrop-filter:blur(8px);font-size:.88rem;font-weight:600}
.bento > .bento__foto:nth-of-type(2){grid-area:f}
.bento__dato{grid-area:d;background:var(--p);color:var(--su-p);padding:24px;display:flex;flex-direction:column;justify-content:space-between;gap:10px;position:relative}
.bento__dato::after{content:"";position:absolute;right:-30px;top:-30px;width:120px;height:120px;border-radius:50%;background:var(--a);opacity:.9}
.bento__numero{font-family:var(--f-titoli);font-weight:750;font-size:clamp(2.6rem, 4.4vw, 4.6rem);line-height:1;letter-spacing:-.05em;position:relative;z-index:1}
.bento__dato p:last-child{max-width:22ch;font-weight:500}

/* ---------- marchi: nastro con bordi sfumati ---------- */
.marchi{padding:clamp(30px, 4vw, 60px) 0 clamp(60px, 7vw, 100px)}
.marchi__titolo{text-align:center;color:var(--tenue);font-weight:500;padding:0 var(--gut);margin-bottom:26px}
.marchi__nastro{overflow:hidden;-webkit-mask-image:linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);mask-image:linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent)}
.marchi__binario{display:flex;width:max-content;gap:56px;padding:6px 28px}
.marchi__binario li{flex:none;height:40px;opacity:.72;transition:opacity .3s}
.marchi__binario li:hover{opacity:1}
.marchi svg{height:40px;width:auto;fill:none;stroke:var(--t);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.marchi svg text{fill:var(--t);stroke:none;font-family:var(--f-titoli);font-weight:700;font-size:22px;letter-spacing:-.02em}
.marchi svg text.piccolo{font-size:13px;letter-spacing:.04em}

/* ---------- titoli con transizione di colore ---------- */
.titolo-sez{font-family:var(--f-titoli);font-weight:750;font-size:clamp(2.2rem, 4.1vw, 4.4rem);line-height:1.02;letter-spacing:-.03em;text-wrap:balance;max-width:16ch}
html.titoli-vivi .titolo-sez{background:linear-gradient(90deg, var(--t) 0 45%, var(--p) 50%, color-mix(in oklab, var(--t) 48%, var(--s)) 55% 100%) 0 0 / 220% 100% no-repeat;-webkit-background-clip:text;background-clip:text;color:transparent;background-position:100% 0}
html.titoli-vivi .titolo-sez--chiaro{background-image:linear-gradient(90deg, var(--s) 0 45%, var(--a) 50%, color-mix(in oklab, var(--s) 52%, var(--scuro)) 55% 100%)}

/* ---------- servizi: moduli del quadro ---------- */
.servizi{padding:clamp(80px, 9vw, 150px) var(--largo)}
.servizi__testa{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px 60px;margin-bottom:clamp(36px, 4vw, 60px)}
.servizi__testa p{color:var(--tenue);max-width:44ch}
.quadro{display:grid;grid-template-columns:repeat(6, minmax(0, 1fr));gap:10px;padding:14px;border-radius:calc(var(--r) + 8px);background:var(--scuro);background-image:linear-gradient(color-mix(in oklab, var(--s) 8%, transparent) 1px, transparent 1px);background-size:100% 50%;background-position:0 calc(50% + 5px)}
.modulo-q{position:relative;background:var(--carta);border-radius:10px;padding:74px 18px 22px;display:flex;flex-direction:column;gap:10px;min-height:300px;transition:background .5s var(--ease)}
.modulo-q__leva{position:absolute;left:18px;top:18px;width:34px;height:46px;border-radius:8px;background:var(--linea);box-shadow:inset 0 0 0 2px color-mix(in oklab, var(--t) 16%, transparent)}
.modulo-q__leva::after{content:"";position:absolute;left:5px;right:5px;bottom:5px;height:18px;border-radius:5px;background:var(--tenue);transition:transform .45s var(--ease),background .45s}
.modulo-q.acceso .modulo-q__leva::after,.modulo-q:hover .modulo-q__leva::after{transform:translateY(-18px);background:var(--p)}
.modulo-q > .ico{position:absolute;right:18px;top:24px;width:30px;height:30px;color:var(--tenue);transition:color .45s}
.modulo-q.acceso > .ico,.modulo-q:hover > .ico{color:color-mix(in oklab, var(--a) 60%, var(--t))}
.modulo-q h3{font-family:var(--f-titoli);font-weight:700;font-size:1.28rem;letter-spacing:-.025em;line-height:1.12}
.modulo-q p{color:var(--tenue);font-size:.95rem;line-height:1.5}
.modulo-q.acceso,.modulo-q:hover{background:color-mix(in oklab, var(--a) 16%, var(--carta))}

/* ---------- risparmio ---------- */
.risparmio{margin:0 var(--largo);padding:clamp(40px, 6vw, 90px);border-radius:calc(var(--r) + 14px);background:var(--scuro);color:var(--s);display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);gap:clamp(30px, 5vw, 90px);align-items:center;position:relative;overflow:hidden}
.risparmio::before{content:"";position:absolute;right:-12%;top:-40%;width:60%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle, color-mix(in oklab, var(--a) 36%, transparent), transparent 65%);pointer-events:none}
.risparmio__testo{display:flex;flex-direction:column;gap:24px;position:relative}
.risparmio__testo > p{color:color-mix(in oklab, var(--s) 72%, var(--scuro));max-width:44ch}
.cursore{display:grid;gap:12px;margin-top:10px}
.cursore__testa{display:flex;justify-content:space-between;align-items:baseline;gap:16px;font-weight:600}
.cursore output{font-family:var(--f-titoli);font-weight:750;font-size:2rem;color:var(--a);letter-spacing:-.04em;white-space:nowrap}
.cursore input{width:100%;accent-color:var(--a);height:30px;cursor:pointer}
.spunta{display:flex;align-items:center;gap:12px;font-weight:600;cursor:pointer;min-height:44px}
.spunta input{width:22px;height:22px;accent-color:var(--a)}
.stima{position:relative;background:color-mix(in oklab, var(--s) 7%, var(--scuro));border:1px solid color-mix(in oklab, var(--s) 14%, var(--scuro));border-radius:var(--r);padding:clamp(22px, 3vw, 36px);display:grid;gap:18px}
.stima__lista{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.stima__voce{display:flex;flex-direction:column-reverse;gap:4px;padding:14px 0;border-top:1px solid color-mix(in oklab, var(--s) 14%, var(--scuro))}
.stima__voce dt{font-size:.9rem;color:color-mix(in oklab, var(--s) 66%, var(--scuro))}
.stima__voce dd{font-family:var(--f-titoli);font-weight:750;font-size:clamp(1.8rem, 2.8vw, 2.6rem);letter-spacing:-.045em;line-height:1;white-space:nowrap}
.stima__voce--forte dd{color:var(--a)}
.stima__nota{font-size:.88rem;color:color-mix(in oklab, var(--s) 62%, var(--scuro))}

/* ---------- impianti fatti ---------- */
.lavori{padding:clamp(90px, 10vw, 160px) var(--largo) clamp(60px, 7vw, 110px)}
.lavori__testa{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px 60px;margin-bottom:clamp(36px, 4vw, 60px)}
.lavori__testa p{color:var(--tenue);max-width:44ch}
.casi{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:clamp(14px, 1.6vw, 24px)}
.caso{background:var(--carta);border-radius:var(--r);overflow:hidden;border:1px solid var(--linea);display:flex;flex-direction:column}
.caso__foto{margin:0;aspect-ratio:4/3;overflow:hidden}
.caso__foto img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.caso:hover .caso__foto img{transform:scale(1.05)}
.caso__testo{padding:22px 24px 26px;display:flex;flex-direction:column;gap:8px;flex:1}
.caso h3{font-family:var(--f-titoli);font-weight:700;font-size:1.35rem;letter-spacing:-.025em;line-height:1.15}
.caso p{color:var(--tenue)}
.caso__numeri{margin-top:auto;padding-top:16px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.caso__numeri div{display:flex;flex-direction:column-reverse;gap:2px;padding:12px 14px;border-radius:12px;background:var(--s2)}
.caso__numeri div:last-child{background:color-mix(in oklab, var(--a) 26%, var(--carta))}
.caso__numeri dt{font-size:.85rem;color:var(--tenue)}
.caso__numeri dd{font-family:var(--f-titoli);font-weight:750;font-size:1.5rem;letter-spacing:-.03em;line-height:1.1}
.galleria-mini{margin-top:clamp(14px, 1.6vw, 24px);display:grid;grid-template-columns:1fr 1fr 1fr;gap:clamp(14px, 1.6vw, 24px)}
.galleria-mini img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--r)}

/* ---------- numeri ---------- */
.numeri{margin:0 var(--largo);display:grid;grid-template-columns:repeat(4, minmax(0, 1fr));gap:0;border-block:1px solid var(--linea)}
.numero{padding:clamp(24px, 3vw, 44px) clamp(14px, 2vw, 30px);display:flex;flex-direction:column;gap:6px}
.numero + .numero{border-left:1px solid var(--linea)}
.numero__cifra{font-family:var(--f-titoli);font-weight:750;font-size:clamp(2.6rem, 5vw, 5.2rem);line-height:1;letter-spacing:-.055em;white-space:nowrap}
.numero:nth-child(2) .numero__cifra{color:var(--p)}
.numero p:last-child{color:var(--tenue);max-width:20ch}

/* ---------- recensioni: nastro sfumato ---------- */
.recensioni{padding:clamp(90px, 10vw, 150px) 0}
.recensioni__testa{padding:0 var(--largo);display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px 40px;margin-bottom:clamp(30px, 4vw, 50px)}
.voto{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--tenue);font-weight:500}
.voto strong{font-family:var(--f-titoli);font-size:2.4rem;color:var(--t);letter-spacing:-.04em;line-height:1}
.stelle{display:inline-flex;gap:2px;color:color-mix(in oklab, var(--a) 80%, var(--t))}
.stelle .ico{width:18px;height:18px;fill:currentColor;stroke:none}
.giro{overflow:hidden;-webkit-mask-image:linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);mask-image:linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent)}
.giro__binario{display:flex;width:max-content;gap:16px;padding:8px}
.recensione{flex:none;width:min(360px, 78vw);background:var(--carta);border:1px solid var(--linea);border-radius:var(--r);padding:26px 24px;display:flex;flex-direction:column;justify-content:space-between;gap:20px}
.recensione:nth-child(2n){background:var(--s2)}
.recensione blockquote{font-size:1.08rem;line-height:1.5;font-weight:500}
.recensione figcaption{font-weight:700;font-size:.92rem;color:var(--tenue)}

/* ---------- contatti ---------- */
.contatti{margin:0 var(--largo) clamp(60px, 7vw, 110px);padding:clamp(30px, 5vw, 80px);border-radius:calc(var(--r) + 14px);background:var(--s2);display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1.1fr);gap:clamp(30px, 5vw, 90px);align-items:start}
.contatti__testo{display:flex;flex-direction:column;gap:22px}
.contatti__testo > p{color:var(--tenue);max-width:42ch}
.recapiti{display:grid}
.recapiti li{display:grid;grid-template-columns:90px minmax(0, 1fr);gap:12px;padding:12px 0;border-top:1px solid var(--linea);font-weight:600}
.recapiti li span{color:var(--tenue);font-weight:500}
.recapiti a{text-decoration:none;overflow-wrap:anywhere}
.recapiti a:hover{color:var(--p)}
.zone{font-size:.95rem}
.modulo{background:var(--carta);border-radius:var(--r);padding:clamp(22px, 3vw, 40px);display:grid;gap:22px;border:1px solid var(--linea)}
.scelte legend{font-weight:700;margin-bottom:12px;padding:0}
.scelte{display:flex;flex-wrap:wrap;gap:8px}
.scelte label{position:relative;cursor:pointer}
.scelte input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.scelte span{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:999px;border:1.5px solid var(--linea);font-weight:600;transition:background .3s,border-color .3s,color .3s}
.scelte input:checked + span{background:var(--p);border-color:var(--p);color:var(--su-p)}
.scelte input:focus-visible + span{outline:2px solid var(--p);outline-offset:2px}
.modulo__campi{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);gap:14px}
.campo{display:flex;flex-direction:column;gap:6px;min-width:0}
.campo > span{font-weight:600;font-size:.92rem}
.campo input,.campo textarea{width:100%;min-width:0;border:1.5px solid var(--linea);background:var(--s);border-radius:12px;padding:12px 14px;min-height:50px;transition:border-color .3s,box-shadow .3s}
.campo textarea{resize:vertical}
.campo input:focus,.campo textarea:focus{outline:none;border-color:var(--p);box-shadow:0 0 0 4px color-mix(in oklab, var(--p) 18%, transparent)}
.campo--largo{grid-column:1 / -1}

/* ---------- piede ---------- */
.piede{padding:clamp(50px, 6vw, 90px) var(--largo) 40px;background:var(--scuro);color:var(--s)}
.piede__nome{display:flex;align-items:center;gap:18px;font-family:var(--f-titoli);font-weight:750;font-size:clamp(2.2rem, 6.4vw, 6.6rem);line-height:1;letter-spacing:-.055em;overflow-wrap:anywhere;min-width:0}
.piede__nome .logo__bollo{width:.9em;height:.9em;border-radius:.26em}
.piede__nome .logo__bollo .ico{width:.5em;height:.5em}
.piede__righe{margin-top:26px;font-size:.92rem;color:color-mix(in oklab, var(--s) 66%, var(--scuro))}
.piede a{text-decoration:none}
.piede a:hover{color:var(--s)}

/* ---------- whatsapp ---------- */
.wa{position:fixed;right:20px;bottom:20px;z-index:60;display:flex;align-items:center;gap:10px;min-height:54px;padding:0 20px 0 16px;border-radius:999px;background:var(--t);color:var(--s);font-weight:700;text-decoration:none;box-shadow:0 14px 34px -14px color-mix(in oklab, var(--t) 70%, transparent);transition:opacity .45s var(--ease),translate .45s var(--ease),background .3s}
.wa .ico{width:22px;height:22px}
.wa:hover{background:var(--p);color:var(--su-p)}
.wa-attesa .wa{opacity:0;translate:0 24px;pointer-events:none}

/* ---------- responsive ---------- */
@media (min-width:1700px){ body{font-size:18px} }
@media (max-width:1280px){
  .testata__urgenze small{display:none}
  .quadro{grid-template-columns:repeat(3, minmax(0, 1fr));background-size:100% 50%}
  .modulo-q{min-height:250px}
}
@media (max-width:1120px){
  .testata__urgenze{display:none}
  .nav a{padding:9px 10px}
  .bento{grid-template-columns:minmax(0, 1.2fr) minmax(0, 1fr);grid-template-rows:minmax(0, 1.2fr) minmax(0, 1fr);grid-template-areas:"t g" "t d"}
  .bento > .bento__foto:nth-of-type(2){display:none}
  .risparmio,.contatti{grid-template-columns:1fr}
  .casi{grid-template-columns:1fr 1fr}
  .casi .caso:last-child{grid-column:1 / -1;flex-direction:row}
  .casi .caso:last-child .caso__foto{flex:1 1 50%;aspect-ratio:auto}
  .casi .caso:last-child .caso__testo{flex:1 1 50%}
}
@media (max-width:899px){
  :root{--alto:64px;--r:16px}
  .nav,.testata__cta{display:none}
  .burger{display:block}
  .logo{max-width:calc(100vw - 110px)}
  .bento{grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);grid-template-rows:auto;grid-template-areas:"t t" "g g" "d f";height:auto;min-height:0}
  .bento > .bento__foto:nth-of-type(2){display:block}
  .bento__foto--grande{aspect-ratio:4/3}
  .bento > .bento__foto:nth-of-type(2){aspect-ratio:1}
  .bento__dato{aspect-ratio:auto;padding:18px;min-height:170px}
  .bento__numero{font-size:2.4rem}
  .bento__dato p:last-child{font-size:.95rem;line-height:1.35}
  .bento > .bento__foto:nth-of-type(2){aspect-ratio:auto;min-height:170px}
  .bento__titolo{padding:24px 20px}
  .hero__titolo{font-size:clamp(2.3rem, 10.6vw, 3.6rem)}
  .hero__cta .btn{flex:1 1 100%}
  .quadro{grid-template-columns:1fr 1fr;padding:10px;gap:8px}
  .modulo-q{min-height:0;padding:70px 14px 18px}
  .modulo-q h3{font-size:1.1rem}
  .risparmio{margin:0 10px;padding:32px 20px}
  .stima__lista{grid-template-columns:1fr}
  .casi{grid-template-columns:1fr}
  .casi .caso:last-child{grid-column:auto;flex-direction:column}
  .casi .caso:last-child .caso__foto{aspect-ratio:4/3}
  .galleria-mini{grid-template-columns:1fr 1fr}
  .galleria-mini img:last-child{grid-column:1 / -1}
  .numeri{grid-template-columns:1fr 1fr}
  .numero:nth-child(3){border-left:0}
  .numero:nth-child(n+3){border-top:1px solid var(--linea)}
  .contatti{margin:0 10px 60px;padding:28px 18px}
  .modulo__campi{grid-template-columns:1fr}
  .recapiti li{grid-template-columns:1fr;gap:2px}
  .wa span{display:none}
  .wa{width:54px;padding:0;justify-content:center}
}
@media (max-width:400px){
  .quadro{grid-template-columns:1fr}
  .modulo-q{padding:18px 14px 18px 70px;min-height:0}
  .modulo-q > .ico{display:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms !important;animation-duration:.01ms !important}
}

/* ---------- apertura: il tubo di luce sfarfalla, si accende e lo schermo si chiude a riga ---------- */
.apertura{background:transparent}
.apertura__schermo{position:absolute;inset:0;background:var(--t);transform-origin:50% 50%}
.apertura__tubo{position:absolute;left:50%;top:50%;width:min(62vw, 720px);height:10px;margin:-5px 0 0 calc(min(62vw, 720px) / -2);border-radius:10px;background:var(--a);box-shadow:0 0 18px 4px color-mix(in oklab, var(--a) 70%, transparent),0 0 90px 30px color-mix(in oklab, var(--a) 30%, transparent);opacity:.08}
.apertura__nome{position:absolute;left:50%;top:calc(50% + 46px);transform:translateX(-50%);margin:0;width:max-content;max-width:calc(100vw - 32px);text-align:center;font-family:var(--f-titoli);font-weight:750;font-size:clamp(1.6rem, 5vw, 3.6rem);letter-spacing:-.04em;line-height:1.05;color:var(--s)}
