/* casa-lesto · idraulico e pronto intervento. Colore pieno acqua, blu notte, schede bianche arrotondate.
   Caratteri: Sora (titoli) + Public Sans (testo).
   Forme: schede 24px, campi 12px, bottoni a pillola. */
@font-face{font-family:'Sora';src:url('../_font/sora/sora-var.woff2') format('woff2');font-weight:100 800;font-display:swap}
@font-face{font-family:'Public Sans';src:url('../_font/public-sans/public-sans-var.woff2') format('woff2');font-weight:100 900;font-display:swap}

:root{
  --p:#0e2a57;   /* blu notte: bottoni */
  --s:#3fb0d4;   /* acqua: il colore pieno della pagina */
  --t:#06141f;   /* inchiostro */
  --a:#f4d35e;   /* accento: spia di reperibilita', stelle */
  --f-titoli:'Sora', 'Segoe UI', sans-serif;
  --f-testo:'Public Sans', system-ui, sans-serif;

  --su-p:var(--s);                                        /* ricalcolato da script.js */
  --carta:color-mix(in oklab, var(--s) 7%, #fbfeff);      /* schede: ricalcolato da script.js se la superficie e' scura */
  --tenue:color-mix(in oklab, var(--t) 76%, var(--s));
  --tenue-carta:color-mix(in oklab, var(--t) 70%, var(--carta));
  --linea:color-mix(in oklab, var(--t) 22%, var(--s));
  --linea-carta:color-mix(in oklab, var(--t) 14%, var(--carta));
  --gut:clamp(16px, 4vw, 56px);
  --largo:max(var(--gut), calc((100% - 1480px) / 2));
  --r:24px;
  --ease:cubic-bezier(.16,1,.3,1);
  --alto:68px;
}

*,*::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}
:focus-visible{outline:3px solid var(--t);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.9;stroke-linecap:round;stroke-linejoin:round}
.salta{position:absolute;left:12px;top:-60px;z-index:200;background:var(--t);color:var(--carta);padding:10px 16px;border-radius:999px;font-weight:700}
.salta:focus{top:12px}
[hidden]{display:none !important}

/* spia di reperibilita' (stato reale: il servizio e' attivo 24h) */
.vivo{position:relative;width:10px;height:10px;border-radius:50%;background:var(--a);flex:none;box-shadow:0 0 0 2px var(--t)}
.vivo::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:2px solid var(--a);animation:vivo 1.8s var(--ease) infinite}
@keyframes vivo{from{transform:scale(.6);opacity:1}to{transform:scale(1.8);opacity:0}}

/* ---------- bottoni ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;min-height:52px;padding:0 26px;border-radius:999px;font-family:var(--f-testo);font-weight:700;font-size:1rem;text-decoration:none;white-space:nowrap;border:0;cursor:pointer;transition:background .35s var(--ease),color .35s var(--ease),transform .35s var(--ease),box-shadow .35s var(--ease)}
.btn:active{transform:scale(.98)}
.btn--pieno{background:var(--p);color:var(--su-p)}
.btn--pieno:hover{background:var(--t);color:var(--carta)}
.btn--bianco{background:var(--carta);color:var(--t)}
.btn--bianco:hover{background:var(--t);color:var(--carta)}
.btn--acqua{background:var(--s);color:var(--t)}
.btn--acqua:hover{background:var(--carta)}
.btn--grande{min-height:64px;padding:0 32px;font-size:1.12rem;font-family:var(--f-titoli);letter-spacing:-.01em}
.btn--grande .ico{width:22px;height:22px}
.btn--largo{width:100%}

/* ---------- testata a isola ---------- */
.testata{position:fixed;z-index:80;top:14px;left:var(--largo);right:var(--largo);height:var(--alto);display:flex;align-items:center;gap:24px;padding:0 10px 0 22px;border-radius:999px;background:var(--carta);color:var(--t);box-shadow:0 14px 40px -18px color-mix(in oklab, var(--t) 55%, transparent);transition:transform .5s var(--ease)}
.testata.nascosta{transform:translateY(calc(-100% - 20px))}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;min-width:0;margin-right:auto}
.logo__goccia{width:34px;height:34px;border-radius:50%;background:var(--s);color:var(--t);display:grid;place-items:center;flex:none}
.logo__goccia .ico{width:18px;height:18px}
.logo__nome{font-family:var(--f-titoli);font-weight:700;font-size:1.08rem;letter-spacing:-.02em;line-height:1.1;max-width:22ch;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nav{display:flex;gap:4px}
.nav a{white-space:nowrap;font-weight:600;font-size:.95rem;text-decoration:none;padding:10px 14px;border-radius:999px;transition:background .3s var(--ease)}
.nav a:hover{background:color-mix(in oklab, var(--s) 30%, var(--carta))}
.testata__tel{display:flex;align-items:center;gap:12px;min-height:50px;padding:0 20px 0 18px;border-radius:999px;background:var(--p);color:var(--su-p);text-decoration:none;font-family:var(--f-titoli);font-weight:700;font-size:1.02rem;white-space:nowrap;transition:background .3s}
.testata__tel:hover{background:var(--t);color:var(--carta)}
.testata__tel-testo{display:flex;flex-direction:column;line-height:1.1}
.testata__tel small{font-family:var(--f-testo);font-weight:600;font-size:.72rem;opacity:.85;letter-spacing:.01em}
.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(--carta);transition:transform .45s var(--ease),opacity .3s,top .45s var(--ease)}
.burger span:nth-child(1){top:17px}.burger span:nth-child(2){top:23px}.burger span:nth-child(3){top:29px}
.burger[aria-expanded="true"] span:nth-child(1){top:23px;transform:rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){top:23px;transform:rotate(-45deg)}
.pannello{position:fixed;inset:0;z-index:70;background:var(--t);color:var(--carta);padding:calc(var(--alto) + 50px) var(--gut) 32px;display:flex;flex-direction:column;justify-content:space-between;gap:24px;overflow-y:auto}
.pannello__nav{display:flex;flex-direction:column;gap:6px}
.pannello__nav a{font-family:var(--f-titoli);font-weight:700;font-size:clamp(2rem, 9vw, 3rem);letter-spacing:-.04em;text-decoration:none;line-height:1.15}
.pannello .btn--pieno{background:var(--s);color:var(--t)}

/* ---------- hero diviso ---------- */
.hero{position:relative;display:grid;grid-template-columns:1.08fr .92fr;min-height:min(100svh, 980px);overflow-x:clip}
.hero__testo{display:flex;flex-direction:column;justify-content:center;gap:26px;padding:calc(var(--alto) + 70px) clamp(24px, 5vw, 80px) 70px var(--largo)}
.hero__stato{display:inline-flex;align-items:center;gap:12px;align-self:flex-start;padding:8px 16px 8px 12px;border-radius:999px;background:color-mix(in oklab, var(--carta) 55%, transparent);font-weight:600;font-size:.95rem}
.hero__titolo{font-family:var(--f-titoli);font-weight:800;font-size:clamp(2.7rem, 5.4vw, 5.9rem);line-height:.98;letter-spacing:-.045em;max-width:11.5ch}
.hero__sotto{font-size:clamp(1.05rem, 1.3vw, 1.25rem);max-width:40ch;color:color-mix(in oklab, var(--t) 86%, var(--s))}
.hero__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}
.hero__foto{position:relative;overflow:hidden;border-bottom-left-radius:calc(var(--r) * 3)}
.hero__foto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 50%}
.timbro{position:absolute;left:calc(54% - 90px);bottom:9%;width:180px;height:180px;border-radius:50%;background:var(--t);color:var(--s);display:grid;place-items:center;z-index:2;overflow:hidden}
.timbro__giro{position:absolute;inset:0;width:100%;height:100%}
.timbro__giro text{fill:currentColor;font-family:var(--f-titoli);font-weight:700;font-size:15px;letter-spacing:.06em}
.timbro__centro{font-family:var(--f-titoli);font-weight:800;font-size:2.4rem;letter-spacing:-.05em;color:var(--carta)}

/* ---------- titoli ---------- */
.titolo-sez{font-family:var(--f-titoli);font-weight:800;font-size:clamp(2.2rem, 4.2vw, 4.4rem);line-height:1;letter-spacing:-.045em;text-wrap:balance}
.titolo-sez--centro{text-align:center}
html[data-font] .titolo-sez,html[data-font] .hero__titolo{letter-spacing:-.015em}

/* ---------- guasti ---------- */
.guasti{padding:clamp(80px, 9vw, 140px) var(--largo) clamp(40px, 5vw, 80px)}
.guasti__griglia{display:grid;grid-template-columns:1.25fr repeat(3, 1fr);gap:14px}
.guasto{background:var(--carta);color:var(--t);border-radius:var(--r);padding:26px 24px 28px;display:flex;flex-direction:column;gap:10px;transition:translate .5s var(--ease)}
.guasto:hover{translate:0 -4px}
.guasto > .ico{width:46px;height:46px;padding:11px;border-radius:50%;background:var(--s);color:var(--t);margin-bottom:10px}
.guasto h3{font-family:var(--f-titoli);font-weight:700;font-size:1.18rem;letter-spacing:-.02em;line-height:1.2}
.guasto p{color:var(--tenue-carta);font-size:.98rem;line-height:1.5}
.guasto--capo{grid-row:span 2;background:var(--t);color:var(--carta);justify-content:space-between;padding:36px 32px;gap:22px}
.guasto--capo p{color:color-mix(in oklab, var(--carta) 78%, var(--t));font-size:1.05rem}
.guasto--capo .btn{align-self:flex-start}

/* ---------- interventi: pila di schede ---------- */
.interventi{padding:clamp(60px, 7vw, 110px) var(--largo) clamp(80px, 9vw, 140px)}
.pila{margin-top:clamp(36px, 5vw, 70px);display:grid;gap:28px}
.carta{position:sticky;top:calc(var(--alto) + 36px + var(--i) * 18px);display:grid;grid-template-columns:1fr 1fr;min-height:min(560px, calc(100svh - 160px));background:var(--carta);color:var(--t);border-radius:calc(var(--r) + 8px);overflow:hidden;box-shadow:0 -18px 50px -30px color-mix(in oklab, var(--t) 70%, transparent);transform-origin:50% 0}
.carta:nth-child(even){background:var(--t);color:var(--carta)}
.carta__testo{padding:clamp(28px, 4vw, 56px);display:flex;flex-direction:column;gap:18px}
.carta__n{align-self:flex-start;font-family:var(--f-titoli);font-weight:800;font-size:.95rem;padding:6px 14px;border-radius:999px;background:var(--s);color:var(--t)}
.carta h3{font-family:var(--f-titoli);font-weight:800;font-size:clamp(2rem, 3.4vw, 3.3rem);line-height:1;letter-spacing:-.045em}
.carta__testo > p{font-size:1.08rem;max-width:40ch;opacity:.86}
.carta ul{display:grid;gap:10px;margin-top:4px}
.carta li{display:flex;gap:12px;align-items:center;font-weight:600}
.carta li::before{content:"";width:22px;height:22px;flex:none;border-radius:50%;background:var(--s) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2306141f' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/13px no-repeat}
.carta__prezzo{margin-top:auto;padding-top:22px;border-top:1.5px solid color-mix(in oklab, currentColor 18%, transparent);font-size:1rem;opacity:1 !important}
.carta__prezzo strong{font-family:var(--f-titoli);font-size:2rem;letter-spacing:-.04em;margin:0 4px}
.carta__foto{position:relative;overflow:hidden}
.carta__foto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* ---------- prezzi ---------- */
.prezzi{margin:0 var(--largo) clamp(60px, 7vw, 110px);padding:clamp(56px, 6vw, 96px) clamp(24px, 5vw, 80px);background:var(--t);color:var(--carta);border-radius:calc(var(--r) + 16px)}
.prezzi__testa{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px 60px}
.prezzi__testa p{max-width:40ch;font-size:1.1rem;color:color-mix(in oklab, var(--carta) 76%, var(--t))}
.tariffe{margin-top:clamp(40px, 5vw, 70px);display:grid;grid-template-columns:repeat(4, 1fr);gap:0}
.tariffa{padding:10px 26px 4px;border-left:1.5px solid color-mix(in oklab, var(--carta) 18%, var(--t));display:flex;flex-direction:column;gap:8px}
.tariffa:first-child{border-left:0;padding-left:0}
.tariffa dt{font-weight:600;font-size:.98rem;color:color-mix(in oklab, var(--carta) 86%, var(--t))}
.tariffa dd{font-family:var(--f-titoli);font-weight:800;font-size:clamp(3rem, 5.4vw, 5.6rem);line-height:1;letter-spacing:-.06em;color:var(--s);font-variant-numeric:tabular-nums}
.tariffa dd small{font-size:.35em;letter-spacing:-.01em;margin-left:4px}
.tariffa p{font-size:.92rem;color:color-mix(in oklab, var(--carta) 66%, var(--t))}

/* ---------- ultimi lavori ---------- */
.lavori{padding:clamp(20px, 3vw, 50px) var(--largo) clamp(60px, 6vw, 100px);display:grid;grid-template-columns:minmax(0, 4fr) minmax(0, 8fr);gap:clamp(30px, 5vw, 90px);align-items:start}
.lavori__testa{position:sticky;top:calc(var(--alto) + 50px);display:grid;gap:16px}
.lavori__testa p{color:var(--tenue);font-size:1.08rem;max-width:30ch}
.registro{display:grid;gap:12px}
.riga-lavoro{display:grid;grid-template-columns:150px minmax(0, 1fr) 112px;align-items:center;gap:24px;padding:16px 16px 16px 26px;background:var(--carta);color:var(--t);border-radius:var(--r);transition:translate .5s var(--ease)}
.riga-lavoro:hover{translate:-6px 0}
.riga-lavoro--senza{grid-template-columns:150px minmax(0, 1fr);padding-block:26px}
.riga-lavoro__quando{font-family:var(--f-titoli);font-size:1.3rem;letter-spacing:-.03em;line-height:1.15;display:flex;flex-direction:column}
.riga-lavoro__quando strong{font-size:.85rem;font-family:var(--f-testo);letter-spacing:0;color:var(--tenue-carta)}
.riga-lavoro__cosa h3{font-family:var(--f-titoli);font-weight:700;font-size:1.2rem;letter-spacing:-.025em;line-height:1.25}
.riga-lavoro__cosa p{color:var(--tenue-carta);margin-top:4px;font-size:.98rem}
.riga-lavoro img{width:112px;height:112px;object-fit:cover;border-radius:calc(var(--r) - 8px)}

/* ---------- zone ---------- */
.zone{padding:clamp(40px, 5vw, 80px) 0 clamp(90px, 10vw, 150px);overflow:hidden}
.nastro{overflow:hidden;padding:18px 0;border-block:2px solid var(--t);background:var(--t);color:var(--s);transform:rotate(-1.5deg) scale(1.02)}
.nastro__binario{display:flex;width:max-content;animation:nastro 42s linear infinite}
.nastro span{font-family:var(--f-titoli);font-weight:800;font-size:clamp(2rem, 4.4vw, 4rem);letter-spacing:-.04em;padding:0 .5em;white-space:nowrap;display:flex;align-items:center;gap:1em}
.nastro span::after{content:"";width:.35em;height:.35em;border-radius:50%;background:var(--a);margin-left:1em}
.nastro span:nth-child(even){color:transparent;-webkit-text-stroke:1.5px var(--s)}
@keyframes nastro{to{transform:translateX(-50%)}}
.zone__corpo{padding:clamp(60px, 7vw, 110px) var(--largo) 0;display:grid;grid-template-columns:minmax(0, 5fr) minmax(0, 7fr);gap:24px clamp(30px, 5vw, 90px);align-items:start}
.tempi{display:grid}
.tempi li{display:flex;align-items:baseline;gap:14px;padding:18px 0;border-bottom:1.5px solid var(--linea);font-size:1.1rem;font-weight:600}
.tempi li span{flex:1;min-width:0}
.tempi li::after{content:none}
.tempi strong{font-family:var(--f-titoli);font-size:clamp(1.5rem, 2.4vw, 2.2rem);letter-spacing:-.04em;white-space:nowrap}
.zone__nota{grid-column:2;color:var(--tenue);font-size:.95rem;max-width:56ch}

/* ---------- recensioni ---------- */
.recensioni{padding:0 0 clamp(90px, 10vw, 150px)}
.recensioni__testa{padding:0 var(--largo);display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px 40px;margin-bottom:36px}
.voto{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-weight:600}
.voto strong{font-family:var(--f-titoli);font-size:2.6rem;letter-spacing:-.05em;line-height:1}
.stelle{display:inline-flex;gap:2px}
.stelle .ico{width:20px;height:20px;fill:var(--t);stroke:none}
.fila{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px var(--largo) 20px;scroll-padding-inline:var(--largo);scrollbar-width:none;cursor:grab}
.fila::-webkit-scrollbar{display:none}
.recensione{flex:0 0 min(400px, 82vw);scroll-snap-align:start;background:var(--carta);color:var(--t);border-radius:var(--r);padding:30px 28px;display:flex;flex-direction:column;justify-content:space-between;gap:26px;min-height:250px}
.recensione:nth-child(3n+2){background:var(--t);color:var(--carta)}
.recensione blockquote{font-size:1.12rem;line-height:1.5;font-weight:500}
.recensione figcaption{font-size:.95rem;opacity:.8}
.recensione figcaption strong{display:block;opacity:1;font-family:var(--f-titoli);letter-spacing:-.02em}

/* ---------- richiesta con foto ---------- */
.richiesta{padding:0 var(--largo) clamp(90px, 10vw, 150px)}
.richiesta__carta{background:var(--carta);color:var(--t);border-radius:calc(var(--r) + 16px);padding:clamp(28px, 5vw, 72px);display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1.05fr);gap:clamp(32px, 5vw, 80px)}
.passaggi{margin-top:36px;display:grid;gap:18px;counter-reset:passo}
.passaggi li{display:flex;gap:16px;align-items:baseline;font-size:1.06rem;color:var(--tenue-carta);counter-increment:passo}
.passaggi li::before{content:counter(passo);flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--s);color:var(--t);font-family:var(--f-titoli);font-weight:800;font-size:.95rem;transform:translateY(8px)}
.passaggi strong{color:var(--t)}
.modulo{display:grid;gap:18px}
.caricamento{position:relative;display:flex;align-items:center;gap:18px;padding:26px;border-radius:var(--r);border:2px dashed color-mix(in oklab, var(--s) 70%, var(--t));background:color-mix(in oklab, var(--s) 14%, var(--carta));cursor:pointer;transition:background .3s}
.caricamento:hover{background:color-mix(in oklab, var(--s) 26%, var(--carta))}
.caricamento .ico{width:52px;height:52px;padding:13px;border-radius:50%;background:var(--t);color:var(--carta)}
.caricamento span{display:flex;flex-direction:column;color:var(--tenue-carta)}
.caricamento strong{font-family:var(--f-titoli);color:var(--t);font-size:1.15rem;letter-spacing:-.02em}
.caricamento input{position:absolute;inset:0;opacity:0;cursor:pointer}
.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 input,.campo textarea{width:100%;min-width:0}
.campo > span{font-weight:600;font-size:.92rem}
.campo input,.campo textarea{border:1.5px solid var(--linea-carta);background:color-mix(in oklab, var(--t) 3%, var(--carta));border-radius:12px;padding:12px 14px;min-height:50px;transition:border-color .3s,box-shadow .3s}
.campo input:focus,.campo textarea:focus{outline:none;border-color:var(--t);box-shadow:0 0 0 4px color-mix(in oklab, var(--s) 45%, transparent)}
.campo--largo{grid-column:1 / -1}
.campo textarea{resize:vertical}

/* ---------- contatti ---------- */
.contatti{background:var(--t);color:var(--carta);padding:clamp(90px, 10vw, 160px) var(--largo) clamp(60px, 6vw, 100px);border-radius:calc(var(--r) + 24px) calc(var(--r) + 24px) 0 0}
.contatti__telefono{display:grid;gap:14px;padding-bottom:clamp(50px, 6vw, 90px);border-bottom:1.5px solid color-mix(in oklab, var(--carta) 16%, var(--t))}
.contatti__titolo{font-family:var(--f-titoli);font-weight:700;font-size:clamp(1.4rem, 2.2vw, 2rem);letter-spacing:-.03em}
.contatti__numero{font-family:var(--f-titoli);font-weight:800;font-size:clamp(2.8rem, 10.5vw, 11rem);line-height:.95;letter-spacing:-.06em;color:var(--s);text-decoration:none;white-space:nowrap;transition:color .3s}
.contatti__numero:hover{color:var(--carta)}
.contatti__telefono p{color:color-mix(in oklab, var(--carta) 72%, var(--t));font-size:1.1rem}
.contatti__griglia{display:grid;grid-template-columns:1fr 1fr;gap:40px clamp(30px, 6vw, 110px);padding-top:clamp(40px, 5vw, 70px)}
.contatti h3{font-family:var(--f-titoli);font-size:1.2rem;letter-spacing:-.02em;margin-bottom:16px}
.orari div{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid color-mix(in oklab, var(--carta) 14%, var(--t))}
.orari dt{color:color-mix(in oklab, var(--carta) 72%, var(--t))}
.orari dd{font-weight:600;text-align:right}
.recapiti{display:grid;gap:14px}
.recapiti li{display:flex;gap:12px;align-items:center}
.recapiti .ico{color:var(--s)}
.recapiti a{text-decoration:none}
.recapiti a:hover{text-decoration:underline}

/* ---------- piede ---------- */
.piede{background:var(--t);color:color-mix(in oklab, var(--carta) 62%, var(--t));padding:0 var(--largo) 100px;font-size:.92rem;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 40px}
.piede__nome{font-family:var(--f-titoli);font-weight:800;font-size:clamp(1.8rem, 3.2vw, 3rem);letter-spacing:-.05em;color:var(--carta);overflow-wrap:anywhere}
.piede a{text-decoration:none}
.piede a:hover{color:var(--carta)}

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

/* ---------- responsive ---------- */
@media (min-width:1700px){ body{font-size:18px} }
@media (max-width:1180px){
  .nav a{padding:10px 8px;font-size:.9rem}
  .nav{gap:0}
  .testata__tel small{display:none}
  .guasti__griglia{grid-template-columns:repeat(3, 1fr)}
  .guasto--capo{grid-row:auto;grid-column:1 / -1;flex-direction:row;flex-wrap:wrap;align-items:center}
  .guasto--capo p{flex:1 1 320px}
  .tariffe{grid-template-columns:1fr 1fr;row-gap:30px}
  .tariffa:nth-child(3){border-left:0;padding-left:0}
}
@media (max-width:899px){
  :root{--alto:60px;--r:20px}
  .testata{top:10px;left:10px;right:10px;padding:0 6px 0 14px}
  .nav,.testata__tel{display:none}
  .burger{display:block}
  .logo__nome{max-width:calc(100vw - 150px)}
  .hero{grid-template-columns:1fr;min-height:0}
  .hero__testo{padding:calc(var(--alto) + 44px) var(--gut) 40px;gap:20px}
  .hero__titolo{font-size:clamp(2.35rem, 11.4vw, 4rem)}
  .hero__cta .btn{width:100%}
  .hero__foto{height:clamp(300px, 62vw, 520px);border-radius:0 0 0 calc(var(--r) * 2.5)}
  .timbro{width:120px;height:120px;left:auto;right:18px;bottom:calc(clamp(300px, 62vw, 520px) - 60px)}
  .timbro__giro text{font-size:15.5px}
  .timbro__centro{font-size:1.6rem}
  .guasti__griglia{grid-template-columns:1fr 1fr;gap:10px}
  .guasto{padding:20px 18px}
  .guasto > .ico{width:40px;height:40px;padding:9px}
  .guasto h3{font-size:1.02rem}
  .guasto p{font-size:.92rem}
  .guasto--capo{flex-direction:column;align-items:flex-start;padding:28px 22px}
  .guasto--capo p{flex:none}
  .carta{position:relative;top:auto;grid-template-columns:1fr;min-height:0}
  .carta__foto{order:-1;aspect-ratio:16/10}
  .prezzi{margin:0 10px 60px;padding:48px 22px}
  .tariffe{grid-template-columns:1fr 1fr}
  .tariffa{padding:6px 0 4px 16px}
  .tariffa:nth-child(odd){border-left:0;padding-left:0}
  .lavori{grid-template-columns:1fr}
  .lavori__testa{position:static}
  .riga-lavoro,.riga-lavoro--senza{grid-template-columns:minmax(0, 1fr) 84px;gap:6px 16px;padding:18px}
  .riga-lavoro__quando{grid-column:1;flex-direction:row;gap:8px;align-items:baseline;font-size:1.05rem}
  .riga-lavoro__cosa{grid-column:1}
  .riga-lavoro img{grid-column:2;grid-row:1 / span 2;width:84px;height:84px}
  .riga-lavoro--senza .riga-lavoro__cosa{grid-column:1 / -1}
  .zone__corpo{grid-template-columns:1fr}
  .zone__nota{grid-column:1}
  .tempi li{font-size:1rem}
  .richiesta{padding:0 10px 90px}
  .richiesta__carta{grid-template-columns:1fr;padding:30px 20px}
  .modulo__campi{grid-template-columns:1fr}
  .contatti{padding-inline:var(--gut)}
  .contatti__griglia{grid-template-columns:1fr}
  .barra-mobile{display:block;position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:65}
  .barra-mobile a{display:flex;align-items:center;justify-content:center;gap:10px;min-height:58px;border-radius:999px;background:var(--p);color:var(--su-p);font-family:var(--f-titoli);font-weight:700;text-decoration:none;box-shadow:0 14px 34px -14px color-mix(in oklab, var(--t) 80%, transparent)}
  body:has(.barra-mobile:not([hidden])){padding-bottom:78px}
  body:has(.barra-mobile:not([hidden])) .wa{bottom:84px}
  .wa span{display:none}
  .wa{width:56px;padding:0;justify-content:center}
}
@media (max-width:400px){
  .guasto{padding:18px 14px}
  .tariffa dd{font-size:2.6rem}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms !important;animation-duration:.01ms !important}
  .nastro__binario{animation:none}
}

/* ---------- apertura: una goccia, l'acqua riempie lo schermo e poi scende ---------- */
.apertura{background:var(--t)}
.apertura__acqua{position:absolute;left:0;right:0;top:-70px;bottom:0;background:var(--p)}
.apertura__onda{position:absolute;left:0;top:-58px;width:200%;height:60px;fill:var(--p)}
.apertura__nome{position:absolute;left:50%;top:calc(50% + 35px);transform:translate(-50%,-50%);margin:0;width:max-content;max-width:calc(100vw - 32px);text-align:center;font-family:var(--f-titoli);font-weight:800;letter-spacing:-.04em;color:var(--s);font-size:clamp(2rem, 7vw, 5.4rem);line-height:1}
.apertura__goccia{position:absolute;left:50%;top:0;width:44px;height:62px;margin-left:-22px;fill:var(--s)}
.apertura__anello{position:absolute;left:50%;top:50%;width:120px;height:120px;margin:-60px 0 0 -60px;border:3px solid var(--s);border-radius:50%;opacity:0}
