/* Benigno Ristrutturazione Bagno e Casa · colori e font in tema.css */
:root{--gutter:clamp(20px,5vw,64px);--max:1280px;--ease:cubic-bezier(.22,.61,.36,1);--ease-out:cubic-bezier(.16,1,.3,1);--ease-io:cubic-bezier(.77,0,.18,1)}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bianco);color:var(--testo);font-family:var(--sans);font-size:17px;line-height:1.65;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
ul{margin:0;padding:0;list-style:none}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;margin:0;letter-spacing:-.012em;line-height:1.08;font-optical-sizing:auto}
p{margin:0}
figure,blockquote{margin:0}
::selection{background:var(--accento);color:var(--su-accento)}
.wrap{width:100%;max-width:calc(var(--max) + var(--gutter)*2);margin:0 auto;padding:0 var(--gutter)}
.skip{position:fixed;left:16px;top:-60px;z-index:200;background:var(--grafite);color:#fff;padding:10px 16px;border-radius:4px}
.skip:focus{top:16px}
:focus-visible{outline:2px solid var(--accento);outline-offset:3px}

/* ---------- etichette e titoli ---------- */
.etichetta{display:inline-flex;align-items:center;gap:12px;font-family:var(--sans);font-size:.74rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--grigio)}
.etichetta::before{content:"";width:16px;height:10px;background:var(--tetto) center/contain no-repeat;flex:none}
.scuro .etichetta,.cta .etichetta{color:rgba(var(--bianco-rgb),.72)}
.titolo-sez{font-size:clamp(2.05rem,3.7vw,3.35rem);margin-top:22px}
.titolo-sez em,.testata h1 em{font-style:italic;color:var(--accento)}
.intro-sez{color:var(--grigio);font-size:1.06rem;max-width:52ch;margin-top:22px}
.scuro .intro-sez{color:rgba(var(--bianco-rgb),.68)}
.testa-sez{display:flex;justify-content:space-between;align-items:flex-end;gap:24px 64px;flex-wrap:wrap}
.testa-sez > div:first-child{flex:0 1 auto}
.testa-sez .intro-sez{margin-top:0;max-width:44ch}

/* ---------- pulsanti ---------- */
.btn{position:relative;overflow:hidden;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:12px;height:56px;padding:0 28px;font-family:var(--sans);font-size:.95rem;font-weight:500;letter-spacing:.02em;border-radius:2px;transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease);white-space:nowrap}
.btn svg{width:18px;height:18px;flex:none;transition:transform .35s var(--ease)}
.btn:hover svg.freccia{transform:translateX(4px)}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;transform:scaleX(0);transform-origin:right;transition:transform .55s var(--ease-io)}
.btn:hover::before{transform:scaleX(1);transform-origin:left}
.btn-accento{background:var(--accento);color:var(--su-accento)}
.btn-accento::before{background:var(--accento-scuro)}
.btn-chiaro{border:1px solid rgba(var(--bianco-rgb),.5);color:var(--bianco)}
.btn-chiaro::before{background:var(--bianco)}
.btn-chiaro:hover{color:var(--grafite);border-color:var(--bianco)}
.btn-scuro{border:1px solid var(--testo);color:var(--testo)}
.btn-scuro::before{background:var(--grafite)}
.btn-scuro:hover{color:var(--bianco)}
.link-freccia{display:inline-flex;align-items:center;gap:12px;font-weight:500;font-size:.95rem;letter-spacing:.02em;padding-bottom:6px;border-bottom:1px solid currentColor;transition:gap .35s var(--ease),color .3s}
.link-freccia svg{width:18px;height:18px}
.link-freccia:hover{gap:18px;color:var(--accento-testo)}
.scuro .link-freccia:hover{color:var(--accento)}

/* ---------- header ---------- */
.avanzamento{position:fixed;inset:0 0 auto 0;height:2px;z-index:120;background:var(--accento);transform:scaleX(var(--p,0));transform-origin:left;pointer-events:none}
.header{position:fixed;inset:0 0 auto 0;z-index:100;transition:background .45s var(--ease),box-shadow .45s var(--ease),transform .45s var(--ease)}
.header .wrap{display:flex;align-items:center;justify-content:space-between;height:92px;transition:height .45s var(--ease)}
.logo{position:relative;display:block;height:24px;flex:none}
.logo img{height:100%;width:auto;transition:opacity .4s var(--ease)}
.logo .logo-scuro{position:absolute;inset:0 auto auto 0;opacity:0}
.nav{display:flex;align-items:center;gap:clamp(22px,2.6vw,40px)}
.nav a{position:relative;font-size:.95rem;font-weight:400;color:rgba(var(--bianco-rgb),.88);padding:6px 0;transition:color .3s}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--accento);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.nav a:hover::after,.nav a[aria-current="page"]::after{transform:scaleX(1)}
.nav a:hover,.nav a[aria-current="page"]{color:#fff}
.header-cta{position:relative;overflow:hidden;isolation:isolate;display:inline-flex;align-items:center;gap:10px;height:46px;padding:0 20px;border:1px solid rgba(var(--bianco-rgb),.45);border-radius:2px;color:var(--bianco);font-size:.92rem;font-weight:500;letter-spacing:.02em;transition:color .35s var(--ease),border-color .35s var(--ease)}
.header-cta::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--accento);transform:translateY(101%);transition:transform .5s var(--ease-io)}
.header-cta svg{width:16px;height:16px}
.header-cta:hover{border-color:var(--accento);color:var(--su-accento)}
.header-cta:hover::before{transform:none}
.header.solido{background:rgba(var(--bianco-rgb),.94);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--linea)}
.header.solido .wrap{height:72px}
.header.solido .logo-chiaro{opacity:0}
.header.solido .logo-scuro{opacity:1}
.header.solido .nav a{color:var(--testo)}
.header.solido .nav a:hover,.header.solido .nav a[aria-current="page"]{color:var(--grafite)}
.header.solido .header-cta{border-color:var(--testo);color:var(--testo)}
.header.solido .header-cta:hover{border-color:var(--accento);color:var(--su-accento)}
.burger{display:none;width:44px;height:44px;position:relative;margin-right:-10px}
.burger span{position:absolute;left:10px;right:10px;height:1.5px;background:var(--bianco);transition:transform .45s var(--ease),opacity .3s,background .3s}
.burger span:nth-child(1){top:16px}
.burger span:nth-child(2){top:22px;right:18px}
.burger span:nth-child(3){top:28px}
.header.solido .burger span{background:var(--testo)}
.menu-mobile{position:fixed;inset:0;z-index:99;background:var(--grafite) var(--grana);color:var(--bianco);display:flex;flex-direction:column;justify-content:space-between;padding:110px var(--gutter) 36px;clip-path:inset(0 0 100% 0);transition:clip-path .7s var(--ease-out);visibility:hidden}
.menu-aperto .menu-mobile{clip-path:inset(0 0 0 0);visibility:visible}
.menu-mobile nav a{display:flex;align-items:baseline;gap:18px;font-family:var(--serif);font-size:clamp(2.3rem,9vw,3.2rem);line-height:1.25;padding:4px 0;opacity:0;transform:translateY(24px);transition:opacity .5s var(--ease),transform .7s var(--ease-out)}
.menu-mobile nav a small{font-family:var(--sans);font-size:.75rem;letter-spacing:.2em;color:var(--accento)}
.menu-mobile nav a[aria-current="page"]{color:var(--accento)}
.menu-aperto .menu-mobile nav a{opacity:1;transform:none}
.menu-aperto .menu-mobile nav a:nth-child(2){transition-delay:.05s}
.menu-aperto .menu-mobile nav a:nth-child(3){transition-delay:.1s}
.menu-aperto .menu-mobile nav a:nth-child(4){transition-delay:.15s}
.menu-aperto .menu-mobile nav a:nth-child(5){transition-delay:.2s}
.menu-mobile .menu-piede{display:grid;gap:12px}
.menu-mobile .menu-piede .btn{width:100%}
.menu-mobile .menu-piede p{font-size:.88rem;color:rgba(var(--bianco-rgb),.6);margin-top:8px}
.menu-aperto{overflow:hidden}
.menu-aperto .header{background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;transform:none}
.menu-aperto .header .logo-chiaro{opacity:1}
.menu-aperto .header .logo-scuro{opacity:0}
.menu-aperto .header .burger span{background:var(--bianco)}
.menu-aperto .burger span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.menu-aperto .burger span:nth-child(2){opacity:0}
.menu-aperto .burger span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* ---------- apertura ---------- */
.hero{position:relative;height:100vh;height:100svh;min-height:640px;color:var(--bianco);overflow:hidden;background:var(--grafite) var(--grana)}
.hero > .wrap{position:relative;height:100%;display:flex;flex-direction:column;justify-content:center;padding-top:92px;padding-bottom:132px}
.hero-testo{max-width:660px}
.hero .etichetta{color:rgba(var(--bianco-rgb),.85)}
.hero h1{font-size:clamp(2.9rem,5.6vw,5.3rem);line-height:1.02;margin-top:26px;letter-spacing:-.02em}
.hero h1 em{font-style:italic;color:var(--accento)}
.hero-sotto{font-size:clamp(1.02rem,1.25vw,1.15rem);color:rgba(var(--bianco-rgb),.84);max-width:46ch;margin-top:28px;line-height:1.6}
.hero-azioni{display:flex;flex-wrap:wrap;align-items:center;gap:18px 30px;margin-top:40px}
.hero-azioni .link-freccia{color:var(--bianco)}
.hero-barra{position:absolute;left:0;right:0;bottom:0;border-top:1px solid var(--linea-chiara)}
.hero-barra .wrap{display:grid;grid-template-columns:repeat(3,auto);justify-content:start}
.hero-barra .voce{display:flex;align-items:center;gap:14px;padding:26px 44px 28px 0;margin-right:44px;border-right:1px solid var(--linea-chiara);font-size:.92rem;color:rgba(var(--bianco-rgb),.82)}
.hero-barra .voce:last-child{border-right:0;margin-right:0}
.hero-barra strong{font-family:var(--serif);font-weight:400;font-size:1.55rem;color:var(--bianco);line-height:1}
.hero-media{position:absolute}
.hero-quadro{position:absolute;inset:0;overflow:hidden;background:var(--sabbia)}
.js .hero-quadro{animation:quadro 1.4s var(--ease-io) .1s both}
@keyframes quadro{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}
.hero-media .slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation-timing-function:var(--ease-io);animation-iteration-count:infinite}
.hero-media .slide.s1{z-index:1}
.hero-media .slide.s2{z-index:2;clip-path:inset(0 0 0 100%)}
.hero-media .slide.s3{z-index:3;clip-path:inset(0 0 0 100%)}
.hero-media.giro-3 .slide.s1{animation-name:giro3a;animation-duration:10.8s}
.hero-media.giro-3 .slide.s2{animation-name:giro3b;animation-duration:10.8s}
.hero-media.giro-3 .slide.s3{animation-name:giro3c;animation-duration:10.8s}
@keyframes giro3a{0%,88.88%{clip-path:inset(0 0 0 0);z-index:1}88.89%{clip-path:inset(0 0 0 100%);z-index:4}100%{clip-path:inset(0 0 0 0);z-index:4}}
@keyframes giro3b{0%,22.22%{clip-path:inset(0 0 0 100%)}33.33%,70%{clip-path:inset(0 0 0 0)}70.01%,100%{clip-path:inset(0 0 0 100%)}}
@keyframes giro3c{0%,55.55%{clip-path:inset(0 0 0 100%)}66.67%,99.99%{clip-path:inset(0 0 0 0)}100%{clip-path:inset(0 0 0 100%)}}
.hero-punti{display:flex;gap:6px;position:absolute;left:16px;bottom:14px;z-index:5}
.hero-punti i{display:block;width:26px;height:2px;background:rgba(var(--bianco-rgb),.45);position:relative;overflow:hidden}
.hero-punti i::after{content:"";position:absolute;inset:0;background:var(--accento);transform:scaleX(0);transform-origin:left}
.giro-3 .hero-punti i::after{animation:punto3 10.8s linear infinite}
.hero-punti i:nth-child(2)::after{animation-delay:3.6s}
.hero-punti i:nth-child(3)::after{animation-delay:7.2s}
@keyframes punto3{0%{transform:scaleX(0)}33.3%{transform:scaleX(1)}33.4%,100%{transform:scaleX(0)}}
@media (min-width:1025px){
  .hero{--alt:max(100svh,720px);min-height:720px}
  .hero-media{top:calc(92px + (100% - 174px)/2);right:var(--gutter);transform:translateY(-50%);width:min(47vw,800px,(var(--alt) - 258px)*4/3);aspect-ratio:4/3}
  .hero-media::before{content:"";position:absolute;top:-18px;right:-18px;width:140px;height:140px;border-top:1px solid var(--accento);border-right:1px solid var(--accento);z-index:-1}
  .js .hero-media::before{width:0;height:0;opacity:0;transition:width 1s var(--ease-out) 1s,height 1s var(--ease-out) 1s,opacity .3s 1s}
  .js .hero-media.pronta::before{width:140px;height:140px;opacity:1}
  .hero-testo{max-width:min(560px,40vw)}
  .hero h1{font-size:clamp(2.8rem,4.4vw,4.7rem)}
  .pres-home{grid-template-columns:minmax(0,.96fr) minmax(0,1.04fr)}
  .pres-home .pres-foto{order:-1}
  .pres-home .pres-foto .cornice{margin-left:0;margin-right:auto}
  .pres-home .pres-foto .angolo{right:auto;left:-14px;border-right:0;border-left:1px solid var(--accento)}
}
@media (max-width:1024px){
  .hero{height:auto;min-height:0;display:flex;flex-direction:column;padding-top:84px}
  .hero-media{position:relative;flex:none;width:calc(100% - var(--gutter)*2);min-height:0;margin:6px var(--gutter) 0;aspect-ratio:4/3}
  .hero > .wrap{height:auto;justify-content:flex-start;padding-top:30px;padding-bottom:34px}
  .hero h1{margin-top:14px}
  .hero-barra{position:relative}
}
body.hero-chiara .hero{background:var(--carta);color:var(--testo)}
body.hero-chiara .hero .etichetta{color:var(--grigio)}
body.hero-chiara .hero h1 em{color:var(--accento-testo)}
body.hero-chiara .hero-sotto{color:var(--grigio)}
body.hero-chiara .hero-azioni .link-freccia{color:var(--testo)}
body.hero-chiara .hero-barra{border-top-color:var(--linea)}
body.hero-chiara .hero-barra .voce{color:var(--grigio);border-right-color:var(--linea)}
body.hero-chiara .hero-barra strong{color:var(--testo)}
body.hero-chiara:not(.menu-aperto) .header:not(.solido) .logo-chiaro{opacity:0}
body.hero-chiara:not(.menu-aperto) .header:not(.solido) .logo-scuro{opacity:1}
body.hero-chiara:not(.menu-aperto) .header:not(.solido) .nav a{color:var(--testo)}
body.hero-chiara:not(.menu-aperto) .header:not(.solido) .header-cta{border-color:var(--testo);color:var(--testo)}
body.hero-chiara:not(.menu-aperto) .header:not(.solido) .header-cta:hover{border-color:var(--accento);color:var(--su-accento)}
body.hero-chiara:not(.menu-aperto) .header:not(.solido) .burger span{background:var(--testo)}

/* ---------- nastro dei servizi ---------- */
.nastro{background:var(--grafite) var(--grana);color:var(--bianco);overflow:hidden;padding:clamp(20px,2.6vw,34px) 0}
.nastro-riga{display:flex;width:max-content}
.nastro-riga.va{animation:nastro 46s linear infinite}
.nastro-gruppo{display:flex;align-items:center;flex:none}
.nastro span{font-family:var(--serif);font-size:clamp(1.5rem,3vw,2.5rem);line-height:1;white-space:nowrap;letter-spacing:-.01em}
.nastro span:nth-of-type(even){font-style:italic;color:var(--accento)}
.nastro i{flex:none;width:18px;height:11px;margin:0 clamp(26px,3.4vw,54px);background:var(--tetto) center/contain no-repeat}
@keyframes nastro{to{transform:translateX(-25%)}}
.stelle{display:inline-flex;gap:2px;color:var(--oro)}
.stelle svg{width:14px;height:14px}

/* ---------- testata pagine interne ---------- */
.testata{position:relative;min-height:clamp(480px,68vh,680px);display:flex;align-items:flex-end;color:var(--bianco);overflow:hidden;background:var(--grafite)}
.testata-media{position:absolute;inset:0}
.testata-media img{width:100%;height:100%;object-fit:cover;transform:scale(1.1);translate:0 var(--ty,0);animation:testata 2.4s var(--ease-out) forwards}
@keyframes testata{to{transform:scale(1.02)}}
.testata-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,18,18,.35) 0%,rgba(18,18,18,0) 30%),linear-gradient(0deg,rgba(18,18,18,.5) 0%,rgba(18,18,18,0) 65%),linear-gradient(90deg,rgba(18,18,18,.5) 0%,rgba(18,18,18,.2) 55%,rgba(18,18,18,0) 85%),rgba(18,18,18,.38)}
.testata .wrap{position:relative;padding-top:150px;padding-bottom:clamp(56px,8vh,88px)}
.briciole{display:flex;gap:10px;font-size:.82rem;letter-spacing:.06em;color:rgba(var(--bianco-rgb),.66);margin-bottom:26px}
.briciole a:hover{color:#fff}
.testata h1{font-size:clamp(2.7rem,5.4vw,4.9rem);line-height:1.03;letter-spacing:-.02em}
.testata p{max-width:52ch;margin-top:24px;font-size:1.08rem;color:rgba(var(--bianco-rgb),.82)}

/* ---------- sezioni ---------- */
.sez{padding:clamp(88px,11vw,160px) 0}
.scuro{background:var(--grafite) var(--grana);color:var(--bianco)}
.carta{background:var(--carta)}
.pres{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);gap:clamp(48px,7vw,120px);align-items:center}
.pres-testo p.lead{font-family:var(--serif);font-size:clamp(1.25rem,1.6vw,1.45rem);line-height:1.5;color:var(--testo);margin-top:34px;max-width:36ch}
.pres-testo p.corpo{color:var(--grigio);margin-top:20px;max-width:50ch}
.punti{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--linea);margin-top:44px}
.punti li{display:flex;gap:14px;align-items:flex-start;padding:20px 18px 20px 0;border-bottom:1px solid var(--linea);font-size:.98rem;line-height:1.45}
.punti li:nth-child(odd){border-right:1px solid var(--linea)}
.punti li:nth-child(even){padding-left:22px}
.punti li::before{content:"";width:16px;height:10px;margin-top:6px;background:var(--tetto) center/contain no-repeat;flex:none}
.pres-testo .link-freccia{margin-top:42px}
.pres-foto{position:relative}
.cornice{position:relative;overflow:hidden;aspect-ratio:4/5;background:var(--sabbia)}
.cornice::after,.foto-lav::after{content:"";position:absolute;inset:0;z-index:3;background:var(--sabbia);transform:scaleY(0);transform-origin:top;transition:transform 1.25s var(--ease-io);pointer-events:none}
.scuro .foto-lav::after{background:var(--grafite-3)}
.js .cornice:not(.vis)::after,.js .foto-lav:not(.vis)::after{transform:scaleY(1)}
.cornice img.px,.lavori-home .foto-lav img.px{height:116%;translate:0 calc(-6.9% + var(--py,0)*1%);will-change:translate}
.cornice img{width:100%;height:100%;object-fit:cover;transform:scale(1.08);transition:transform 1.6s var(--ease-out)}
.vis .cornice img,.cornice.vis img{transform:scale(1)}
.pres-foto .cornice{margin-left:auto;width:88%}
.pres-foto .angolo{position:absolute;right:-14px;top:-14px;width:96px;height:96px;border-top:1px solid var(--accento);border-right:1px solid var(--accento)}
.servizi-griglia{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,1.8vw,28px);margin-top:clamp(52px,6vw,80px)}
.card-serv{position:relative;display:flex;flex-direction:column;background:var(--bianco);transition:transform .6s var(--ease-out),box-shadow .6s var(--ease-out)}
.card-serv:hover{transform:translateY(-6px);box-shadow:0 30px 60px -36px rgba(29,30,30,.4)}
.card-serv .cornice{aspect-ratio:4/4.6}
.card-serv:hover .cornice img{transform:scale(1.05)}
.card-serv .corpo{display:flex;flex-direction:column;flex:1;padding:28px 26px 30px}
.card-serv::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--accento);transform:scaleX(0);transform-origin:left;transition:transform .7s var(--ease-io)}
.card-serv:hover::after{transform:scaleX(1)}
.card-serv .linea{display:block;width:28px;height:1px;margin:10px 0;background:var(--accento-testo);transition:width .6s var(--ease-out)}
.card-serv:hover .linea{width:56px}
.card-serv h3{font-size:1.6rem;margin-top:12px;line-height:1.12}
.card-serv p{color:var(--grigio);font-size:.95rem;line-height:1.6;margin-top:14px;flex:1}
.card-serv .vai{display:inline-flex;align-items:center;gap:10px;margin-top:24px;font-size:.88rem;font-weight:500;letter-spacing:.04em}
.card-serv .vai svg{width:16px;height:16px;transition:transform .35s var(--ease)}
.card-serv:hover .vai svg{transform:translateX(5px)}
.card-serv:hover .vai{color:var(--accento-testo)}
.lavori-home{display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:repeat(2,clamp(240px,25vw,380px));gap:clamp(12px,1.4vw,20px);margin-top:clamp(52px,6vw,80px)}
.foto-lav{position:relative;overflow:hidden;background:var(--grafite-3);display:block;cursor:zoom-in}
.foto-lav img{width:100%;height:100%;object-fit:cover;transform:scale(1.08);transition:transform 1.6s var(--ease-out),filter .6s}
.vis .foto-lav img,.foto-lav.vis img{transform:scale(1)}
.foto-lav:hover img{transform:scale(1.04)}
.foto-lav figure{height:100%}
.foto-lav figcaption{position:absolute;left:0;right:0;bottom:0;padding:44px 22px 18px;font-size:.9rem;color:#fff;background:linear-gradient(180deg,transparent,rgba(0,0,0,.66));opacity:0;transform:translateY(8px);transition:all .5s var(--ease)}
.foto-lav:hover figcaption{opacity:1;transform:none}
.lavori-home .foto-lav img{position:absolute;inset:0}
.lavori-home .grande{grid-column:1/6;grid-row:1/3}
.lavori-home .f2{grid-column:6/9;grid-row:1}
.lavori-home .f3{grid-column:9/13;grid-row:1}
.lavori-home .f4{grid-column:6/10;grid-row:2}
.lavori-home .f5{grid-column:10/13;grid-row:2}
.lavori-piede{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;margin-top:48px;padding-top:32px;border-top:1px solid var(--linea-chiara)}
.lavori-piede p{color:rgba(var(--bianco-rgb),.66);max-width:52ch;font-size:.98rem}
.metodo{display:grid;grid-template-columns:repeat(4,1fr);margin-top:clamp(56px,6vw,84px);position:relative}
.metodo::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--linea)}
.metodo::after{content:"";position:absolute;left:0;top:0;height:1px;width:100%;background:var(--accento);transform:scaleX(0);transform-origin:left;transition:transform 2.2s var(--ease-out) .2s}
.metodo.vis::after{transform:scaleX(1)}
.passo{position:relative;padding:44px clamp(16px,2.2vw,36px) 0 0}
.passo::before{content:"";position:absolute;top:-5px;left:0;width:9px;height:9px;border-radius:50%;background:var(--bianco);border:1px solid var(--accento);transition:background .4s .8s}
.metodo.vis .passo::before{background:var(--accento)}
.passo .n{font-family:var(--serif);font-size:3.4rem;line-height:1;color:var(--accento);font-weight:300}
.js .metodo .passo{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform 1.1s var(--ease-out)}
.js .metodo.vis .passo{opacity:1;transform:none}
.js .metodo.vis .passo:nth-child(2){transition-delay:.25s}
.js .metodo.vis .passo:nth-child(3){transition-delay:.5s}
.js .metodo.vis .passo:nth-child(4){transition-delay:.75s}
.passo h3{font-size:1.45rem;margin-top:26px;line-height:1.15}
.passo p{color:var(--grigio);margin-top:14px;font-size:.96rem;line-height:1.62}
.scuro .metodo::before{background:var(--linea-chiara)}
.scuro .passo::before{background:var(--grafite)}
.scuro .passo p{color:rgba(var(--bianco-rgb),.66)}
.voto{display:flex;align-items:center;gap:22px}
.voto strong{font-family:var(--serif);font-weight:300;font-size:clamp(3.6rem,6vw,5.2rem);line-height:.9;color:var(--testo)}
.voto .stelle svg{width:18px;height:18px}
.voto span{display:block;margin-top:8px;font-size:.9rem;color:var(--grigio)}
.recensioni{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(16px,1.8vw,26px);margin-top:clamp(52px,6vw,76px)}
.rec{background:var(--bianco);padding:clamp(28px,3vw,40px) clamp(24px,3vw,40px) 30px;display:flex;flex-direction:column;border-top:2px solid var(--accento)}
.rec .stelle svg{width:15px;height:15px}
.rec blockquote{margin:22px 0 0;font-family:var(--serif);font-size:1.08rem;line-height:1.6;flex:1;color:var(--testo)}
.rec .chi{display:flex;align-items:center;gap:12px;margin-top:28px;padding-top:20px;border-top:1px solid var(--linea);font-size:.9rem}
.rec .chi b{font-weight:500}
.rec .chi span{color:var(--grigio)}
.rec .chi .g{width:22px;height:22px;flex:none}
.rec-piede{margin-top:44px}
.zone{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(48px,6vw,100px);align-items:center}
.mappa.mappa-zone{margin-top:0;height:auto;aspect-ratio:4/3}
.zone-testo p{color:var(--grigio);margin-top:24px;max-width:44ch}
.zone-testo .indirizzo{display:flex;gap:14px;margin-top:36px;color:var(--testo);font-size:.98rem;line-height:1.5}
.zone-testo .indirizzo svg{width:20px;height:20px;color:var(--accento);flex:none;margin-top:2px}
.cta{position:relative;display:grid;place-items:center;min-height:74vh;min-height:74svh;overflow:hidden;color:var(--bianco);background:var(--grafite);text-align:center;isolation:isolate}
.cta-media{position:absolute;inset:-10% 0;z-index:-2;will-change:transform}
.cta-media img{width:100%;height:100%;object-fit:cover}
.cta::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at center,rgba(18,18,18,.58) 0%,rgba(18,18,18,.78) 75%),linear-gradient(180deg,rgba(18,18,18,.25),rgba(18,18,18,.45))}
.cta .wrap{position:relative;display:flex;flex-direction:column;align-items:center;padding-top:clamp(96px,11vw,150px);padding-bottom:clamp(96px,11vw,150px)}
.cta h2{font-size:clamp(2.3rem,4.4vw,3.8rem);line-height:1.06;margin-top:24px}
.cta p{max-width:48ch;margin-top:22px;color:rgba(var(--bianco-rgb),.82);font-size:1.08rem}
.cta-azioni{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:40px}
.footer{background:var(--grafite-fondo) var(--grana);color:rgba(var(--bianco-rgb),.7);padding:clamp(72px,8vw,110px) 0 32px;font-size:.95rem}
.footer-alto{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:48px}
.footer-logo img{width:min(300px,100%);height:auto}
.footer-descr{margin-top:14px;max-width:38ch;line-height:1.6;color:rgba(var(--bianco-rgb),.62)}
.footer h4{font-family:var(--sans);font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;font-weight:500;color:rgba(var(--bianco-rgb),.48);margin-bottom:20px}
.footer li{margin-bottom:10px;line-height:1.5}
.footer a:hover{color:var(--accento)}
.footer-basso{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:72px;padding-top:28px;border-top:1px solid rgba(var(--bianco-rgb),.1);font-size:.84rem;color:rgba(var(--bianco-rgb),.48)}

/* ---------- pagina servizi ---------- */
.serv-indice{display:flex;flex-wrap:wrap;gap:10px 12px;margin-top:36px}
.serv-indice a{padding:10px 18px;border:1px solid var(--linea-chiara);font-size:.9rem;border-radius:40px;color:rgba(var(--bianco-rgb),.85);transition:all .35s var(--ease)}
.serv-indice a:hover{background:var(--bianco);color:var(--grafite)}
.blocco{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(48px,7vw,120px);align-items:center;padding:clamp(80px,10vw,140px) 0;border-bottom:1px solid var(--linea);scroll-margin-top:60px}
.blocco:last-child{border-bottom:0}
.blocco.inv .blocco-foto{order:2}
.blocco-foto{position:relative;padding-bottom:18%}
.blocco-foto .cornice.a{width:80%}
.blocco-foto .cornice.b{position:absolute;right:0;bottom:0;width:46%;aspect-ratio:4/4.6;border:10px solid var(--bianco)}
.blocco.inv .blocco-foto .cornice.a{margin-left:auto}
.blocco.inv .blocco-foto .cornice.b{right:auto;left:0}
.blocco .num{font-family:var(--serif);font-size:1.1rem;color:var(--accento-testo);letter-spacing:.04em}
.blocco h2{font-size:clamp(2.1rem,3.6vw,3.2rem);margin-top:14px}
.blocco p{color:var(--grigio);margin-top:24px;max-width:48ch}
.voci{margin-top:34px;border-top:1px solid var(--linea)}
.voci li{display:flex;align-items:center;gap:16px;padding:15px 0;border-bottom:1px solid var(--linea);font-size:1rem}
.voci li::before{content:"";width:16px;height:10px;background:var(--tetto) center/contain no-repeat;flex:none}
.blocco .btn{margin-top:38px}

/* ---------- pagina lavori ---------- */
.filtri{display:flex;gap:8px;flex-wrap:wrap}
.filtri button{height:46px;padding:0 22px;border:1px solid var(--linea);border-radius:40px;font-size:.92rem;transition:all .35s var(--ease)}
.filtri button[aria-pressed="true"],.filtri button:hover{background:var(--grafite);color:var(--bianco);border-color:var(--grafite)}
.gruppo{margin-top:clamp(56px,6vw,84px)}
.gruppo + .gruppo{margin-top:clamp(96px,10vw,150px)}
.gruppo-testa{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap;padding-bottom:28px;border-bottom:1px solid var(--linea);margin-bottom:clamp(28px,3vw,44px)}
.gruppo-testa h2{font-size:clamp(2rem,3.4vw,3rem)}
.gruppo-testa p{color:var(--grigio);max-width:46ch}
.gruppo-testa .conta{font-family:var(--serif);font-size:1.1rem;color:var(--accento-testo)}
.mosaico{columns:3;column-gap:clamp(12px,1.4vw,20px)}
.mosaico .foto-lav{break-inside:avoid;margin-bottom:clamp(12px,1.4vw,20px)}
.mosaico .foto-lav img{height:auto}
.mosaico .foto-lav figcaption{opacity:1;transform:none;font-size:.88rem}
.mosaico .zoom{position:absolute;top:16px;right:16px;width:40px;height:40px;border-radius:50%;background:rgba(var(--bianco-rgb),.92);color:var(--grafite);display:grid;place-items:center;opacity:0;transform:scale(.8);transition:all .4s var(--ease)}
.mosaico .zoom svg{width:18px;height:18px}
.mosaico .foto-lav:hover .zoom{opacity:1;transform:none}
.nascosto-filtro{display:none}
.sez-lavori{padding-top:clamp(64px,7vw,100px)}
.cursore{position:fixed;left:0;top:0;z-index:150;width:92px;height:92px;margin:-46px 0 0 -46px;border-radius:50%;background:var(--accento);color:var(--su-accento);display:grid;place-items:center;font-size:.8rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;pointer-events:none;transform:translate3d(var(--x,-200px),var(--y,-200px),0) scale(var(--s,0))}
.con-cursore .foto-lav{cursor:none}
.con-cursore .mosaico .zoom{display:none}
.lb{position:fixed;inset:0;z-index:300;background:#0E0E0E;display:flex;flex-direction:column;opacity:0;visibility:hidden;transition:opacity .45s var(--ease),visibility .45s}
.lb.aperto{opacity:1;visibility:visible}
.lb-barra{display:flex;justify-content:space-between;align-items:center;padding:18px var(--gutter);color:rgba(var(--bianco-rgb),.75);font-size:.9rem}
.lb-chiudi{width:48px;height:48px;display:grid;place-items:center;color:#fff;margin-right:-10px}
.lb-chiudi svg{width:26px;height:26px}
.lb-scena{flex:1;position:relative;display:flex;align-items:center;justify-content:center;padding:0 clamp(16px,7vw,110px);min-height:0;touch-action:pan-y}
.lb-scena img{max-width:100%;max-height:100%;object-fit:contain;transition:opacity .35s var(--ease),transform .5s var(--ease-out)}
.lb-scena img.cambia{opacity:0;transform:scale(.97)}
.lb-freccia{position:absolute;top:50%;transform:translateY(-50%);width:56px;height:56px;border-radius:50%;border:1px solid rgba(var(--bianco-rgb),.25);color:#fff;display:grid;place-items:center;transition:background .3s}
.lb-freccia:hover{background:var(--accento);border-color:var(--accento)}
.lb-freccia svg{width:22px;height:22px}
.lb-prec{left:clamp(12px,2.4vw,36px)}
.lb-succ{right:clamp(12px,2.4vw,36px)}
.lb-didascalia{padding:20px var(--gutter) 28px;text-align:center;color:var(--bianco);font-family:var(--serif);font-size:1.15rem}

/* ---------- chi siamo ---------- */
.valori{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:clamp(52px,6vw,80px);border-top:1px solid var(--linea)}
.valore{padding:40px clamp(18px,2.4vw,36px) 40px 0;border-right:1px solid var(--linea)}
.valore + .valore{padding-left:clamp(18px,2.4vw,36px)}
.valore:last-child{border-right:0}
.valore svg{width:34px;height:34px;color:var(--accento);stroke-width:1.2}
.valore h3{font-size:1.45rem;margin-top:26px}
.valore p{color:var(--grigio);font-size:.96rem;margin-top:12px}
.valori.compatti{margin-top:clamp(56px,6vw,88px)}
.valori.compatti .valore{padding-top:30px;padding-bottom:6px}
.valori.compatti .valore svg{width:26px;height:26px}
.valori.compatti .valore h3{font-size:1.18rem;margin-top:18px}
.valori.compatti .valore p{font-size:.9rem;margin-top:8px}

/* ---------- contatti ---------- */
.contatti-griglia{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(40px,6vw,96px)}
.canali{border-top:1px solid var(--linea);margin-top:44px}
.canale{display:grid;grid-template-columns:52px 1fr auto;gap:22px;align-items:center;padding:28px 0;border-bottom:1px solid var(--linea);transition:padding .45s var(--ease)}
a.canale:hover{padding-left:10px}
a.canale:hover .icona{background:var(--accento);color:var(--su-accento);border-color:var(--accento)}
.canale .icona{width:52px;height:52px;border:1px solid var(--linea);border-radius:50%;display:grid;place-items:center;color:var(--accento-testo);transition:all .4s var(--ease)}
.canale .icona svg{width:21px;height:21px}
.canale small{display:block;font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--grigio)}
.canale strong{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(1.35rem,2.2vw,1.85rem);line-height:1.2;margin-top:4px}
.canale .freccia{width:20px;height:20px;color:var(--grigio)}
.orari-box{background:var(--grafite) var(--grana);color:var(--bianco);padding:clamp(32px,4vw,48px)}
.orari-box h2{font-size:2rem}
.orari{margin-top:26px}
.orari li{display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-bottom:1px solid var(--linea-chiara);font-size:.98rem}
.orari li span:last-child{color:rgba(var(--bianco-rgb),.75)}
.orari li.chiuso span:last-child{color:var(--accento)}
.orari-box .stato{display:inline-flex;align-items:center;gap:10px;margin-top:24px;font-size:.9rem;color:rgba(var(--bianco-rgb),.8)}
.orari-box .stato i{width:8px;height:8px;border-radius:50%;background:#7fbf8a;box-shadow:0 0 0 4px rgba(127,191,138,.18)}
.orari-box .stato.off i{background:var(--accento);box-shadow:0 0 0 4px var(--accento-alone)}
.orari-box .zone-mini{margin-top:34px;padding-top:26px;border-top:1px solid var(--linea-chiara)}
.orari-box .zone-mini h3{font-family:var(--sans);font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;font-weight:500;color:rgba(var(--bianco-rgb),.55)}
.orari-box .zone-mini p{margin-top:12px;font-family:var(--serif);font-size:1.3rem;line-height:1.35}
.mappa{margin-top:clamp(56px,7vw,96px);position:relative;height:clamp(380px,38vw,520px);background:var(--sabbia);overflow:hidden}
.mappa iframe,.mappa .mappa-sfondo{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.35) contrast(1.02)}
.mappa .mappa-sfondo{object-fit:cover;object-position:50% 50%}
.mappa-link{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:18px;font-size:.92rem;color:var(--grigio)}

/* ---------- animazioni ---------- */
.js .rv{opacity:0;transform:translateY(34px);transition:opacity 1s var(--ease),transform 1.2s var(--ease-out)}
.js .rv.vis{opacity:1;transform:none}
.js .rv-d1{transition-delay:.1s}
.js .rv-d2{transition-delay:.2s}
.js .rv-d3{transition-delay:.3s}
.js .rv-d4{transition-delay:.4s}
.js [data-righe]:not(.righe){visibility:hidden}
.js .righe .riga{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.js .righe .riga > span{display:block;transform:translateY(105%);transition:transform 1.15s var(--ease-out)}
.js .righe.vis .riga > span{transform:none}
.js .righe .riga:nth-child(2) > span{transition-delay:.09s}
.js .righe .riga:nth-child(3) > span{transition-delay:.18s}
.js .righe .riga:nth-child(4) > span{transition-delay:.27s}
.js .hero .rv{transition-duration:1.2s,1.4s}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .servizi-griglia{grid-template-columns:repeat(2,1fr)}
  .footer-alto{grid-template-columns:1fr 1fr}
  .valori{grid-template-columns:repeat(2,1fr)}
  .valore:nth-child(2){border-right:0}
  .valore:nth-child(3){padding-left:0;border-top:1px solid var(--linea)}
  .valore:nth-child(4){border-top:1px solid var(--linea)}
}
@media (max-width:1024px){
  .nav,.header-cta{display:none}
  .burger{display:block}
  .header .wrap{height:76px}
  .header.solido .wrap{height:66px}
  .logo{height:19px}
  .pres,.zone,.contatti-griglia{grid-template-columns:1fr}
  .pres-foto{max-width:560px}
  .metodo{grid-template-columns:1fr 1fr;row-gap:56px}
  .metodo::after,.metodo::before{display:none}
  .passo{border-top:1px solid var(--linea);padding-top:36px}
  .scuro .passo{border-color:var(--linea-chiara)}
  .passo::before{display:none}
  .blocco{grid-template-columns:1fr;gap:56px}
  .blocco.inv .blocco-foto{order:0}
  .blocco-foto{max-width:640px}
  .pres-home{display:flex;flex-direction:column;align-items:stretch;gap:0}
  .pres-home .pres-testo{display:contents}
  .pres-home .pres-testo > *{order:4}
  .pres-home .pres-testo > .etichetta{order:1;align-self:flex-start}
  .pres-home .pres-testo > .titolo-sez{order:2}
  .pres-home .pres-foto{order:3;margin-top:40px;width:100%}
  .pres-home .pres-testo > .link-freccia{align-self:flex-start}
  .blocco{display:flex;flex-direction:column;align-items:stretch;gap:0}
  .blocco .blocco-testo{display:contents}
  .blocco .blocco-testo > *{order:4}
  .blocco .blocco-testo > .num{order:1;align-self:flex-start}
  .blocco .blocco-testo > h2{order:2}
  .blocco .blocco-foto,.blocco.inv .blocco-foto{order:3;margin-top:32px;width:100%}
  .blocco .blocco-testo > .btn{align-self:flex-start}
  .mosaico{columns:2}
  .hero-barra .voce{padding-right:28px;margin-right:28px}
}
@media (max-width:760px){
  body{font-size:16px}
  .hero h1{font-size:clamp(2.45rem,10.6vw,3.3rem);margin-top:18px}
  .hero-sotto{margin-top:18px;font-size:1rem}
  .hero-azioni{margin-top:28px;gap:18px 24px}
  .hero-azioni .btn{height:52px;padding:0 22px}
  .hero-barra .wrap{display:flex;justify-content:space-between;align-items:center}
  .hero-barra .voce{padding:20px 0 22px;margin-right:0;border-right:0;font-size:.82rem;gap:10px;white-space:nowrap}
  .hero-barra .voce:nth-child(2),.hero-barra .voce:nth-child(3){display:none}
  .hero-barra .stelle svg{width:12px;height:12px}
  .hero-barra strong{font-size:1.25rem}
  .punti{grid-template-columns:1fr}
  .punti li:nth-child(odd){border-right:0}
  .punti li:nth-child(even){padding-left:0}
  .pres-foto .cornice{width:100%}
  .pres-foto .angolo{right:-8px;top:-8px;width:64px;height:64px}
  .servizi-griglia{grid-template-columns:1fr;gap:20px}
  .card-serv{display:grid;grid-template-columns:1fr}
  .card-serv .cornice{aspect-ratio:16/11}
  .lavori-home{grid-template-columns:1fr 1fr;grid-template-rows:none;gap:10px}
  .lavori-home .grande{grid-column:1/3;grid-row:auto;aspect-ratio:4/4.4}
  .lavori-home .f2,.lavori-home .f3,.lavori-home .f4,.lavori-home .f5{grid-column:auto;grid-row:auto;aspect-ratio:4/5}
  .foto-lav figcaption{opacity:1;transform:none;font-size:.8rem;padding:36px 14px 12px}
  .metodo{grid-template-columns:1fr;row-gap:0}
  .passo{padding:30px 0 34px;display:grid;grid-template-columns:64px 1fr;column-gap:12px}
  .passo .n{font-size:2.6rem;grid-row:1/3}
  .passo h3{margin-top:4px}
  .passo p{margin-top:10px}
  .recensioni{grid-template-columns:1fr;gap:16px}
  .voto strong{font-size:3.4rem}
  .cta h2{font-size:clamp(1.7rem,7.4vw,2.3rem)}
  .cta-azioni .btn{width:100%}
  .footer-alto{grid-template-columns:1fr;gap:40px}
  .testata{min-height:clamp(420px,62vh,540px)}
  .testata h1{font-size:clamp(2.4rem,10vw,3.2rem)}
  .testata p{font-size:1rem;margin-top:18px}
  .blocco-foto .cornice.b{border-width:6px}
  .mosaico{columns:2;column-gap:10px}
  .mosaico .foto-lav{margin-bottom:10px}
  .mosaico .foto-lav figcaption{display:none}
  .lb-freccia{display:none}
  .valori{grid-template-columns:1fr}
  .valore,.valore + .valore,.valori.compatti .valore{padding:28px 0;border-right:0;border-top:1px solid var(--linea)}
  .valore:first-child{border-top:0}
  .canale{grid-template-columns:46px 1fr;gap:16px;padding:22px 0}
  .canale .icona{width:46px;height:46px}
  .canale .freccia{display:none}
  .mappa{height:auto;aspect-ratio:4/4.4}
  .gruppo-testa{padding-bottom:20px}
  .lavori-piede .btn{width:100%}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .hero-media .slide,.hero-punti i::after,.nastro-riga.va{animation:none!important}
}
.servizi-griglia.tre{grid-template-columns:repeat(3,1fr)}
@media (max-width:1180px){
  .servizi-griglia.tre{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:760px){
  .servizi-griglia.tre{grid-template-columns:1fr}
}
