
/* Layout: un file, routing con #; hero con parole che si scrivono; bande diagonali; schede a campi fissi per servizi, casi, articoli */
:root{--blu:#004A86;--oro:#E8A50E;--notte:#1F3A5F;--arancio:#C8730A;--bg:#fff;--bg2:#F7F8FA;--fg:#222;--muted:#6E6E6E;--line:#E3E7EC;--oro-ch:#FFF4D6;--blu-ch:#E8F1FA;--font:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--r:14px;color-scheme:light}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{scroll-behavior:smooth}
.btn:active,.mbar a:active,.srv:active,.caso:active,.cl:active,.post:active,.tool:active{transform:scale(.97)}
.burger:active{transform:scale(.92)}
body{background:var(--bg);color:var(--fg);font-family:var(--font);font-size:17px;line-height:1.6;font-variant-numeric:tabular-nums;overflow-x:hidden;padding-bottom:0}
img{max-width:100%;display:block}
.wrap{max-width:1180px;margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
h1,h2,h3,h4{color:var(--notte);letter-spacing:-.02em;text-wrap:balance;margin:0;line-height:1.15}
h1{font-size:clamp(2.2rem,5vw,3.9rem);font-weight:800;line-height:1.05}
h2{font-size:clamp(1.6rem,3vw,2.4rem);font-weight:800}
h3{font-size:1.15rem;font-weight:700}
p{margin:0}a{color:var(--blu)}
.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.74rem;font-weight:700;color:var(--arancio);display:inline-flex;align-items:center;gap:.6rem}
.eyebrow::before{content:"";width:26px;height:3px;background:var(--oro);border-radius:2px}
.lead{font-size:1.18rem;color:var(--muted);max-width:36em}
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.85em 1.5em;border-radius:999px;font-weight:700;text-decoration:none;border:2px solid var(--blu);background:var(--blu);color:#fff;cursor:pointer;font:inherit;font-weight:700;transition:transform .2s,box-shadow .2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,74,134,.22)}
.btn.out{background:transparent;color:var(--blu)}.btn.oro{background:var(--oro);border-color:var(--oro);color:var(--notte)}
.btn .ar{transition:transform .2s}.btn:hover .ar{transform:translateX(4px)}
.btns{display:flex;gap:.8rem;flex-wrap:wrap}
.banner{background:var(--notte);color:#fff;font-size:.8rem;text-align:center;padding:.45rem 1rem}.banner b{color:var(--oro)}
/* header */
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:rgba(255,255,255,.88);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:#fff}
#prog{position:absolute;left:0;bottom:-1px;height:3px;background:var(--oro);width:0;transition:width .1s linear}
header .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:.7rem}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--notte)}
.brand .logo{width:42px;height:42px;flex:none}.logo .cls-1{transform-origin:50% 50%;transform-box:fill-box;animation:ago 7s ease-in-out infinite}@keyframes ago{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}.brand:hover .logo .cls-1{animation-duration:1.6s}
.brand b{font-weight:800;font-size:1rem;line-height:1.1;display:block}.brand small{color:var(--muted);font-size:.72rem;font-weight:500;display:block}.brand small.sig{display:none;font-size:.6rem;letter-spacing:0;font-weight:600;color:#4A5A6E;margin-top:2px;white-space:nowrap}
#nav{display:flex;gap:.15rem;align-items:center}
#nav a{color:var(--fg);text-decoration:none;font-weight:500;font-size:.92rem;padding:.5rem .75rem;border-radius:999px}
#nav a:hover{background:var(--bg2)}#nav a.on{color:var(--blu);font-weight:700;background:var(--blu-ch)}
#nav a.cta{background:var(--oro);color:var(--notte);font-weight:700;margin-left:.4rem}
.burger{display:none;background:none;border:2px solid var(--line);border-radius:10px;width:44px;height:44px;cursor:pointer;color:var(--notte);font-size:1.3rem}
@media (max-width:960px){.burger{display:grid;place-items:center}#nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;padding:.8rem max(20px,env(safe-area-inset-left,0px)) 1.2rem;gap:.2rem;box-shadow:0 20px 40px rgba(31,58,95,.12)}#nav.open{display:flex;animation:menuin .28s ease both}@keyframes menuin{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}#nav a{padding:.8rem 1rem;font-size:1.05rem}.brand small.tag{display:none}.brand small.sig{display:block}}
.page{display:none}.page.on{display:block;animation:pagein .45s ease both}@keyframes pagein{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.sez{padding-block:4.5rem}
.sez-head{max-width:46em;margin-bottom:2rem;display:grid;gap:.6rem}.sez-head p{color:var(--muted);font-size:1.05rem}
.crumbs{font-size:.82rem;color:var(--muted);display:flex;gap:.4rem;flex-wrap:wrap}.crumbs a{color:var(--muted);text-decoration:none}.crumbs a:hover{color:var(--blu)}
/* hero */
.hero{position:relative;overflow:hidden;background:linear-gradient(180deg,#fff 0%,var(--bg2) 100%)}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,420px);gap:2.5rem;align-items:center;padding-block:3.5rem 5.5rem}
.rosa{position:absolute;right:-8vw;top:-14vw;width:min(62vw,760px);opacity:.08;pointer-events:none;animation:ruota 120s linear infinite}
@keyframes ruota{to{transform:rotate(360deg)}}
.tw{color:var(--blu);border-right:3px solid var(--oro);padding-right:.08em;display:inline}
.hero h1{min-height:2.2em}
.leader h2{min-height:2.3em}.tw2{color:var(--oro)}
.hero .lead{margin-top:1.2rem}.hero .btns{margin-top:1.8rem}
.inuna{margin-top:1.6rem;display:flex;gap:.6rem;flex-wrap:wrap}
.inuna span{background:#fff;border:1px solid var(--line);border-radius:999px;padding:.45rem .9rem;font-size:.86rem;font-weight:600;color:var(--notte);display:inline-flex;gap:.4rem;align-items:center}
.inuna i{width:8px;height:8px;border-radius:50%;background:var(--oro)}
.hero-right{position:relative;justify-self:center;width:100%;max-width:420px;aspect-ratio:1}
.blob{position:absolute;inset:0;background:var(--blu);border-radius:58% 42% 55% 45%/48% 55% 45% 52%;animation:morph 14s ease-in-out infinite alternate}
@keyframes morph{to{border-radius:42% 58% 45% 55%/55% 45% 55% 45%}}
.hero-right img{position:absolute;inset:10%;width:80%;height:80%;object-fit:cover;object-position:50% 30%;border-radius:50%;border:6px solid #fff;box-shadow:0 24px 60px rgba(0,74,134,.28)}
.pill{position:absolute;background:#fff;border-radius:999px;padding:.5rem .9rem;font-size:.8rem;font-weight:700;color:var(--notte);box-shadow:0 10px 30px rgba(31,58,95,.16);display:flex;align-items:center;gap:.5rem;white-space:nowrap}
.pill i{width:9px;height:9px;border-radius:50%;background:var(--oro);display:inline-block}
.pill.p1{left:-6%;top:12%;animation:gal 6s ease-in-out infinite}.pill.p2{right:-8%;top:44%;animation:gal 7s ease-in-out infinite 1s}.pill.p3{left:2%;bottom:6%;animation:gal 8s ease-in-out infinite 2s}
@keyframes gal{50%{transform:translateY(-8px)}}
.fascia{background:#fff;padding-block:3rem 4.5rem}
.fascia .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.fascia .wrap>div{min-width:0;background:var(--bg2);border-radius:var(--r);padding:1.5rem;border-top:4px solid var(--oro)}
.fascia .k{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--arancio);font-weight:700}
.fascia h3{margin:.3rem 0 .8rem}.fascia ul{margin:0;padding-left:1.1rem;display:grid;gap:.45rem;font-size:.93rem;color:#3a3a3a}.fascia b{color:var(--notte)}
.micro{margin-top:1rem;font-size:.86rem;color:var(--muted);max-width:34em}
.ruoli{text-align:center;margin:2.2rem auto 0;max-width:60em;font-size:.86rem;color:#CBD6E4;padding-inline:max(20px,env(safe-area-inset-left,0px))}
.servizi.s4{grid-template-columns:repeat(4,1fr)}
.altri-srv{margin-top:1.3rem;font-size:.95rem;color:var(--muted)}.altri-srv a{font-weight:600}
.casi-lite{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem}
.cl{background:#fff;border:1px solid var(--line);border-left:5px solid var(--oro);border-radius:var(--r);padding:1.5rem;text-decoration:none;color:inherit;min-width:0;display:grid;gap:.3rem;transition:transform .25s,box-shadow .25s}
.cl:hover{transform:translateY(-5px);box-shadow:0 20px 44px rgba(0,74,134,.14)}
.cl .k{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--arancio);font-weight:700}
.cl b{font-size:2.1rem;font-weight:800;color:var(--blu);line-height:1}.cl .t{color:var(--notte);font-weight:600;line-height:1.3}.cl .s{font-size:.85rem;color:var(--muted)}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
/* numeri */
.numeri{background:var(--notte);color:#fff;clip-path:polygon(0 12%,100% 0,100% 88%,0 100%);padding-block:5rem 5.5rem;margin-top:-2rem}
.numeri .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
.num{min-width:0;border-left:3px solid var(--oro);padding-left:1rem}
.num b{display:block;font-size:clamp(2rem,3.6vw,2.9rem);font-weight:800;color:var(--oro);line-height:1}
.num span{display:block;margin-top:.4rem;color:#CBD6E4;font-size:.88rem}
/* leader */
.leader .wrap{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.leader h2{font-size:clamp(1.8rem,3.4vw,2.7rem)}
.leader .punti{display:grid;gap:.8rem;margin-top:1.4rem}
.leader .punti div{display:flex;gap:.8rem;align-items:flex-start}
.leader .punti i{flex:none;width:28px;height:28px;border-radius:50%;background:var(--oro);color:var(--notte);display:grid;place-items:center;font-style:normal;font-weight:800;font-size:.85rem;margin-top:.1rem}
.leader .punti b{color:var(--notte)}
.video{aspect-ratio:16/9;max-width:100%;border-radius:var(--r);position:relative;overflow:hidden;background:var(--notte);transform:rotate(-2deg);box-shadow:0 30px 60px rgba(31,58,95,.25)}
.video img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.8}
.video::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(0,74,134,.35),rgba(31,58,95,.75))}
.video .play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:78px;height:78px;border-radius:50%;background:var(--oro);display:grid;place-items:center;z-index:1;box-shadow:0 0 0 14px rgba(232,165,14,.25);animation:pulse 2.4s ease-out infinite}
@keyframes pulse{70%{box-shadow:0 0 0 28px rgba(232,165,14,0)}100%{box-shadow:0 0 0 0 rgba(232,165,14,0)}}
.video .play i{display:block;width:0;height:0;border-left:24px solid var(--notte);border-top:14px solid transparent;border-bottom:14px solid transparent;margin-left:6px}
.video small{position:absolute;left:1.2rem;bottom:1rem;color:#fff;z-index:1;font-size:.82rem;font-weight:600}
/* servizi card */
.servizi{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem}
.srv{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.5rem;min-width:0;display:flex;flex-direction:column;gap:.6rem;position:relative;overflow:hidden;transition:transform .25s,box-shadow .25s;text-decoration:none;color:inherit}
.srv:hover{transform:translateY(-6px);box-shadow:0 24px 50px rgba(0,74,134,.14)}
.srv .ic{width:50px;height:50px;border-radius:14px;background:var(--blu-ch);display:grid;place-items:center;color:var(--blu)}.srv .ic svg{width:26px;height:26px}
.srv p{color:var(--muted);font-size:.94rem;flex:1}.srv .more{font-weight:700;color:var(--blu);font-size:.9rem}
.srv .es{font-size:.8rem;color:var(--arancio);font-weight:600}
.serve{background:#fff;border:1px solid var(--line);border-left:5px solid var(--oro);border-radius:var(--r);padding:1.2rem 1.4rem}.serve b{color:var(--notte);display:block;margin-bottom:.4rem}.serve ul{margin:0;padding-left:1.1rem;display:grid;gap:.3rem;color:#3a3a3a;font-size:.95rem}
.esempio{display:grid;gap:.3rem;background:var(--blu-ch);border-radius:var(--r);padding:1.2rem 1.4rem;text-decoration:none;color:inherit}.esempio .k{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--blu);font-weight:700}.esempio span:nth-child(2){color:var(--notte);font-weight:600}.esempio .more{font-size:.88rem;color:var(--blu);font-weight:700}
/* casi card */
.casi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem}
.caso{position:relative;border-radius:var(--r);overflow:hidden;min-height:300px;display:flex;flex-direction:column;justify-content:flex-end;padding:1.4rem;text-decoration:none;color:#fff;background:var(--notte);min-width:0}
.caso img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s}.caso:hover img{transform:scale(1.06)}
.caso::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(31,58,95,.05) 0%,rgba(31,58,95,.35) 35%,rgba(31,58,95,.92) 62%,rgba(31,58,95,.98) 100%)}
.caso .k,.caso .imp,.caso h3,.caso p{text-shadow:0 1px 3px rgba(0,0,0,.45)}.caso:not(.nofoto) .k{color:#FFD56A}
.caso.nofoto{background:linear-gradient(160deg,#1F3A5F,#004A86)}
.caso .info{position:absolute;inset:0;overflow:hidden}.caso .info .rosa-mini{position:absolute;right:-30%;top:-40%;width:120%;opacity:.12;animation:ruota 120s linear infinite}.caso .info .ci{position:absolute;left:1.2rem;top:1.1rem;width:clamp(72px,22%,96px);height:auto;aspect-ratio:1;filter:drop-shadow(0 8px 16px rgba(0,0,0,.25))}
.infopanel{position:relative;overflow:hidden;background:linear-gradient(160deg,#1F3A5F,#004A86);border-radius:14px;padding:11rem 2rem 2rem;color:#fff;min-height:300px;display:grid;align-content:end}
.infopanel .rosa-mini{position:absolute;right:-10%;top:-45%;width:60%;opacity:.12;animation:ruota 120s linear infinite}.infopanel .ci.big{position:absolute;left:2rem;top:1.4rem;width:clamp(110px,18%,150px);height:auto;aspect-ratio:1;filter:drop-shadow(0 10px 20px rgba(0,0,0,.3))}
.ip-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;position:relative}.ip-grid span{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:#CBD6E4}.ip-grid b{color:#fff;font-size:1rem}
.ok-badge{position:absolute;top:1rem;right:1rem;background:var(--oro);color:var(--notte);font-size:.72rem;font-weight:800;border-radius:999px;padding:.25rem .6rem}
.caso.nofoto{padding-top:7.5rem}.caso.nofoto .k{max-width:100%}
.caso>*{position:relative}.caso .ok-badge{position:absolute;width:max-content;z-index:2}.caso .info{position:absolute;inset:0;z-index:0}.caso .k{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--oro);font-weight:700}
.caso .imp{font-size:1.9rem;text-wrap:balance;font-weight:800;color:#fff;line-height:1;margin-top:.3rem}
.caso h3{color:#fff;margin-top:.3rem;font-size:1.05rem}.caso p{color:#D7E0EB;font-size:.85rem;margin-top:.3rem;line-height:1.4}
.filtri{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.4rem}
.filtri button{border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:.45rem .9rem;font:inherit;font-size:.86rem;font-weight:600;cursor:pointer;color:var(--notte)}
.filtri button.on{background:var(--blu);border-color:var(--blu);color:#fff}
/* strumenti */
.tools{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}
@media (max-width:980px){.tools[style]{grid-template-columns:1fr 1fr!important}}
@media (max-width:560px){.tools[style]{grid-template-columns:1fr!important}}
.tool{background:#fff;border-radius:var(--r);padding:1.4rem;border:1px solid var(--line);min-width:0;display:grid;gap:.5rem;transition:transform .25s;text-decoration:none;color:inherit;align-content:start}
.tool:hover{transform:rotate(-1.5deg) translateY(-4px)}
.tool .x{font-size:.7rem;font-weight:800;letter-spacing:.1em;color:var(--blu);background:var(--blu-ch);border-radius:6px;padding:.2rem .5rem;width:max-content}
.tool b{color:var(--notte);font-size:1rem}.tool span{color:var(--muted);font-size:.9rem}.tool a{font-weight:700;font-size:.9rem;text-decoration:none}
/* osservatorio */
.oss{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem}
.post{border-radius:var(--r);padding:1.5rem;background:#fff;border:1px solid var(--line);min-width:0;display:grid;gap:.4rem;text-decoration:none;color:inherit;transition:transform .25s,box-shadow .25s;align-content:start}
.post:hover{transform:translateY(-4px);box-shadow:0 20px 40px rgba(0,74,134,.12)}
.post .k{font-size:.76rem;color:var(--muted)}.post .k b{color:var(--arancio)}
.post .dato{font-size:2.3rem;font-weight:800;color:var(--blu);line-height:1}.post p{color:var(--muted);font-size:.92rem}
.art{max-width:66ch;display:grid;gap:1rem}.art h3{margin-top:.5rem}.art ol,.art ul{margin:0;padding-left:1.3rem;display:grid;gap:.4rem}.art .fonte{font-size:.88rem;color:var(--muted)}
.art .datone{font-size:clamp(2.5rem,6vw,4rem);font-weight:800;color:var(--blu);line-height:1}
.rc{background:var(--bg2);border-radius:var(--r);padding:1.5rem;display:grid;gap:.5rem;align-content:start;border-top:4px solid var(--oro)}
.rc .stelle{color:var(--oro);letter-spacing:.1em}.rc p{color:#3a3a3a;font-size:.98rem;line-height:1.5}.rc b{color:var(--notte);margin-top:.3rem}.rc span{font-size:.85rem;color:var(--muted)}.rc em{font-size:.78rem;color:var(--muted);font-style:normal}
.rc.tp{background:var(--notte);color:#fff;border-top-color:var(--oro);justify-items:start}.rc.tp b{color:var(--oro);font-size:1.3rem}.rc.tp span{color:#D7E0EB}
.rec-foot{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:1.2rem;font-size:.88rem;color:var(--muted)}
.howrec{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.howrec div{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.2rem;min-width:0}.howrec b{display:block;font-size:1.6rem;color:var(--oro);font-weight:800;line-height:1}.howrec h3{margin:.4rem 0 .3rem;font-size:1rem}.howrec p{font-size:.9rem;color:var(--muted)}
.stars{display:flex;gap:.3rem;font-size:1.8rem;color:var(--line);cursor:pointer}.stars span.on{color:var(--oro)}
.trustbox{display:inline-flex;align-items:center;gap:.8rem;max-width:100%;flex-wrap:wrap;text-decoration:none;color:inherit;background:#fff;border:1px solid var(--line);border-radius:12px;padding:.7rem 1rem}
.tb-stars{display:flex;gap:2px}.tb-stars i{width:22px;height:22px;background:#00B67A;display:grid;place-items:center;position:relative}.tb-stars i::after{content:"★";color:#fff;font-size:15px;font-style:normal}
.tb-txt{min-width:0}.tb-txt b{display:block;color:var(--notte);font-size:.95rem}.tb-txt small{color:var(--muted);font-size:.74rem;display:block}
.sc-nav{display:none}
/* ctab + footer */
.ctab{background:var(--blu);color:#fff;position:relative;overflow:hidden;clip-path:polygon(0 10%,100% 0,100% 100%,0 100%);padding-block:6rem 4.5rem}
.ctab .rosa{right:auto;left:-10vw;top:auto;bottom:-20vw;opacity:.12}
.ctab .wrap{display:grid;grid-template-columns:1.4fr 1fr;gap:2rem;align-items:center;position:relative}
.ctab h2,.ctab p{color:#fff}.ctab p{opacity:.85;margin-top:.6rem}.ctab .btn{justify-self:end}
footer{background:var(--notte);color:#C7D2E0;font-size:.9rem;padding-block:2.5rem 6rem}
footer .wrap{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2rem}
footer b{color:#fff;display:block;margin-bottom:.4rem}footer a{color:var(--oro);text-decoration:none}.fl{display:grid;gap:.3rem}
.social{display:flex;gap:.5rem;margin-top:.6rem;flex-wrap:wrap}.social a{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.08);display:grid;place-items:center;transition:background .2s,transform .2s}.social a:hover{background:var(--oro);transform:translateY(-3px)}.social svg{width:18px;height:18px;fill:#fff}.social a:hover svg{fill:var(--notte)}
footer .giu{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.12);padding-top:1rem;font-size:.8rem;opacity:.75}
/* pagine interne */
.phero{background:linear-gradient(180deg,#fff,var(--bg2));padding-block:2.5rem 3rem;position:relative;overflow:hidden}
.phero .wrap{display:grid;gap:.9rem}.phero h1{font-size:clamp(1.9rem,4.2vw,3rem)}.phero .rosa{opacity:.07;top:-30vw}
.prose{max-width:62ch;display:grid;gap:1rem}
.chi{display:grid;grid-template-columns:1fr 1.5fr;gap:3rem;align-items:start}
.chi .foto{position:sticky;top:90px}
.chi .foto img{border-radius:48% 52% 45% 55%/40% 40% 60% 60%;aspect-ratio:3/4;object-fit:cover;object-position:50% 15%;border:8px solid #fff;box-shadow:0 30px 60px rgba(0,74,134,.2)}
.metodo{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.metodo div{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.1rem;min-width:0}.metodo b{display:block;color:var(--notte);margin-bottom:.3rem}.metodo span{color:var(--muted);font-size:.9rem}
.tl{position:relative;display:grid;gap:1rem;padding-left:2rem}
.tl::before{content:"";position:absolute;left:9px;top:8px;bottom:8px;width:2px;background:var(--line)}
.tl div{position:relative;min-width:0}.tl div::before{content:"";position:absolute;left:-2rem;top:.45rem;width:16px;height:16px;border-radius:50%;background:#fff;border:4px solid var(--blu);transform:translateX(2px)}
.tl div.now::before{border-color:var(--oro);background:var(--oro)}
.tl .q{font-size:.76rem;text-transform:uppercase;letter-spacing:.1em;color:var(--arancio);font-weight:700}.tl b{color:var(--notte);display:block}.tl span{color:var(--muted);font-size:.93rem}
.tl-anim div{transition:opacity .6s ease,transform .6s ease}.js .tl-anim.pre div{opacity:.001;transform:translateX(-14px)}
.tl-anim div:nth-child(2){transition-delay:.12s}.tl-anim div:nth-child(3){transition-delay:.24s}.tl-anim div:nth-child(4){transition-delay:.36s}.tl-anim div:nth-child(5){transition-delay:.48s}.tl-anim div:nth-child(6){transition-delay:.6s}
.tl-anim::before{transform-origin:top;transition:transform 1.2s ease}.js .tl-anim.pre::before{transform:scaleY(0)}
.cert{display:flex;flex-wrap:wrap;gap:.6rem}.cert span{background:var(--blu-ch);color:var(--blu);border-radius:999px;padding:.4rem .9rem;font-size:.86rem;font-weight:600}
details{border:1px solid var(--line);border-radius:10px;padding:.8rem 1rem;background:#fff}details summary{cursor:pointer;font-weight:700;color:var(--notte);list-style:none;display:flex;justify-content:space-between;gap:1rem}details summary::after{content:"+";color:var(--oro);font-weight:800}details[open] summary::after{content:"–"}details p{margin-top:.6rem;color:var(--muted);font-size:.95rem}
.faq{display:grid;gap:.6rem}
/* scheda servizio */
.sv{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:start}
.pernon{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.pernon div{border-radius:var(--r);padding:1.2rem;min-width:0}.pernon .si{background:var(--blu-ch)}.pernon .no{background:var(--oro-ch)}
.pernon b{display:block;margin-bottom:.3rem;color:var(--notte)}.pernon span{font-size:.94rem;color:#3a3a3a}
.passi{display:grid;gap:.8rem;counter-reset:p}
.passi div{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start;background:#fff;border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem;min-width:0}
.passi i{counter-increment:p;font-style:normal;width:34px;height:34px;border-radius:50%;background:var(--notte);color:var(--oro);font-weight:800;display:grid;place-items:center}
.passi i::before{content:counter(p)}.passi b{color:var(--notte);display:block}.passi span{color:var(--muted);font-size:.93rem}
.ricevi{background:var(--bg2);border-radius:var(--r);padding:1.4rem;display:grid;gap:.5rem}.ricevi ul{margin:0;padding-left:1.2rem;display:grid;gap:.3rem}
.prezzo{border:2px solid var(--oro);border-radius:var(--r);padding:1.2rem 1.4rem;display:grid;gap:.3rem}.prezzo b{color:var(--notte)}
.lato{display:grid;gap:1.2rem;position:sticky;top:90px}
.lato .box{background:var(--notte);color:#fff;border-radius:var(--r);padding:1.5rem;display:grid;gap:.6rem}.lato .box h3{color:#fff}.lato .box p{color:#D7E0EB;font-size:.93rem}.lato .box .pz{font-size:1.6rem;font-weight:800;color:var(--oro)}
.dacomp{background:var(--oro-ch);border-left:4px solid var(--oro);border-radius:8px;padding:.7rem 1rem;color:#5a3d00;font-size:.9rem}
/* scheda caso */
.cs-top{display:grid;grid-template-columns:1.2fr 1fr;gap:2rem;align-items:end}
.meta{display:flex;flex-wrap:wrap;gap:.5rem}.meta span{background:var(--blu-ch);color:var(--blu);border-radius:8px;padding:.35rem .7rem;font-size:.82rem;font-weight:600}.meta span.in{background:var(--oro-ch);color:#5a3d00}
.risultato{background:var(--notte);color:#fff;border-radius:var(--r);padding:1.6rem;display:grid;gap:.3rem}.risultato .k{font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;color:var(--oro);font-weight:700}.risultato b{font-size:clamp(1.8rem,4vw,2.8rem);font-weight:800;color:var(--oro);line-height:1.05}.risultato p{color:#D7E0EB}
.gal{display:grid;grid-template-columns:2fr 1fr 1fr;gap:.8rem}.gal img,.gal .ph{width:100%;height:100%;object-fit:cover;border-radius:12px;aspect-ratio:4/3;display:block}.gal img:first-child,.gal .ph:first-child{grid-row:span 2;aspect-ratio:auto;min-height:260px}
.gal .ph{background:var(--bg2);border:2px dashed var(--line);display:grid;place-items:center;color:var(--muted);font-size:.85rem;text-align:center;padding:1rem}
.sei{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.sei div{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.3rem;min-width:0}.sei b{display:block;color:var(--notte);margin-bottom:.4rem}.sei p{color:#3a3a3a;font-size:.94rem}
.cita{border-left:4px solid var(--oro);background:var(--bg2);padding:1.2rem 1.4rem;border-radius:0 12px 12px 0;font-size:1.05rem;color:var(--notte)}.cita small{display:block;color:var(--muted);margin-top:.4rem;font-size:.85rem}
.altri{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.altri a{border:1px solid var(--line);border-radius:12px;padding:1rem;text-decoration:none;color:inherit;min-width:0;display:grid;gap:.2rem}.altri a b{color:var(--notte)}.altri a span{font-size:.85rem;color:var(--muted)}
.sc-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}
.car{overflow:hidden;position:relative;max-width:100%}
.car-track{display:flex;transition:transform .65s cubic-bezier(.22,.8,.3,1);will-change:transform}
.car-item{flex:0 0 calc((100% - (var(--n) - 1)*1rem)/var(--n));margin-right:1rem;min-width:0;display:grid}
.car-dots{display:flex;gap:.4rem;justify-content:center;margin-top:1rem}.car-dots button{width:8px;height:8px;border-radius:50%;border:0;background:var(--line);cursor:pointer;padding:0;transition:transform .2s,background .2s}.car-dots button.on{background:var(--oro);transform:scale(1.4)}
.sc-nav button{width:40px;height:40px;border-radius:50%;border:1.5px solid var(--line);background:#fff;cursor:pointer;color:var(--notte);font-size:1rem;margin-left:.4rem}.sc-nav button:hover{background:var(--blu);color:#fff;border-color:var(--blu)}
.wrap>*{min-width:0}
.sc{background:#fff;border:1px solid var(--line);border-left:5px solid var(--oro);border-radius:var(--r);padding:1.2rem;text-decoration:none;color:inherit;display:grid;gap:.25rem;align-content:start;transition:transform .25s}.sc:hover{transform:translateY(-4px)}
.sc .k{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--arancio);font-weight:700}.sc b{font-size:1.6rem;font-weight:800;color:var(--blu);line-height:1}.sc .t{color:var(--notte);font-weight:600;font-size:.95rem;line-height:1.3}.sc .s{font-size:.8rem;color:var(--muted)}
/* prenota */
.pren{display:grid;grid-template-columns:1.2fr .8fr;gap:3rem;align-items:start}
.stepbar{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1.4rem}
.stepbar div{font-size:.8rem;font-weight:700;color:var(--muted);padding:.5rem 0;border-top:4px solid var(--line)}.stepbar div.on{color:var(--blu);border-color:var(--oro)}.stepbar div.done{color:var(--notte);border-color:var(--notte)}
form,.step{display:grid;gap:1rem;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:2rem;box-shadow:0 20px 50px rgba(31,58,95,.08)}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
label{display:grid;gap:.3rem;font-size:.86rem;font-weight:600;color:var(--notte);min-width:0}
input,select,textarea{font:inherit;padding:.75rem .9rem;border:1.5px solid var(--line);border-radius:10px;background:#fff;color:var(--fg);width:100%}
input:focus,select:focus,textarea:focus{outline:3px solid rgba(232,165,14,.5);border-color:var(--oro)}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}.chips label{display:inline-flex;align-items:center;gap:.4rem;border:1.5px solid var(--line);border-radius:999px;padding:.45rem .9rem;font-weight:500;font-size:.88rem;cursor:pointer}.chips input{width:auto;margin:0}.chips label:has(input:checked){background:var(--blu-ch);border-color:var(--blu);color:var(--blu);font-weight:700}
.chk{display:flex;gap:.6rem;align-items:flex-start;font-weight:400;font-size:.86rem;color:var(--muted)}.chk input{width:auto;margin-top:.3rem}
.ok{background:var(--blu-ch);color:var(--blu);border-radius:10px;padding:1rem;font-weight:600}
.warn{background:var(--oro-ch);border-radius:10px;padding:1rem;color:#5a3d00}
.giorni{display:grid;grid-template-columns:repeat(5,1fr);gap:.5rem}.giorni button,.ore button{border:1.5px solid var(--line);background:#fff;border-radius:10px;padding:.6rem .3rem;font:inherit;font-size:.85rem;cursor:pointer;color:var(--notte)}
.giorni button.on,.ore button.on{background:var(--blu);color:#fff;border-color:var(--blu)}.giorni button small{display:block;color:var(--muted);font-size:.7rem}.giorni button.on small{color:#fff}
.ore{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}
.riep{display:grid;gap:.5rem;background:var(--bg2);border-radius:12px;padding:1.2rem}.riep div{display:flex;justify-content:space-between;gap:1rem;font-size:.95rem}.riep .tot{font-weight:800;color:var(--notte);border-top:1px solid var(--line);padding-top:.5rem;font-size:1.1rem}
.pay{border:1.5px solid var(--line);border-radius:12px;padding:1rem;display:grid;gap:.6rem;font-size:.9rem;color:var(--muted)}
.who{display:grid;grid-template-columns:72px 1fr;gap:1rem;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1rem}.who img{width:72px;height:72px;border-radius:50%;object-fit:cover;object-position:50% 30%;border:3px solid var(--oro)}.who b{color:var(--notte);display:block}.who span{display:block;font-size:.82rem;color:var(--muted)}.who .st{color:var(--oro);font-weight:700}.who em{color:var(--muted);font-weight:400;font-style:normal}
.cosa.dark{background:var(--notte);border-color:var(--notte)}.cosa.dark b,.cosa.dark span{color:#fff}.cosa.dark i{color:var(--oro)}
.offer{background:var(--oro);color:var(--notte);border-radius:var(--r);padding:1.5rem;display:grid;gap:.4rem}.offer .pz{font-size:2.2rem;font-weight:800;line-height:1}.offer small{font-weight:600}
.cosa{display:grid;gap:.6rem;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.4rem}.cosa div{display:flex;gap:.6rem;font-size:.93rem}.cosa i{color:var(--oro);font-style:normal;font-weight:800}
/* menu mobile in basso */
.mnav{display:none}
@media (max-width:960px){
 .mnav{display:grid;grid-template-columns:64px 1fr 1fr 1fr 1fr;align-items:center;position:fixed;left:max(10px,env(safe-area-inset-left,0px));right:max(10px,env(safe-area-inset-right,0px));bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:47;background:rgba(255,255,255,.97);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:999px;padding:.3rem .5rem .3rem .3rem;box-shadow:0 14px 40px rgba(31,58,95,.22)}
 .mnav a{display:grid;justify-items:center;gap:.12rem;text-decoration:none;color:var(--muted);font-size:.64rem;font-weight:600;padding:.45rem .1rem;border-radius:999px;min-width:0}
 .mnav a svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
 .mnav a.on{color:var(--blu)}.mnav a.on span{font-weight:800}
 .mnav a.cta{color:var(--notte)}.mnav a.cta svg{stroke:var(--arancio)}.mnav a.cta.on{color:var(--blu)}
 .mnav a.home{padding:0}.mnav .c{width:54px;height:54px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 6px 18px rgba(31,58,95,.25);border:2px solid var(--line)}.mnav .c .logo{width:40px;height:40px}.mnav a.home.on .c{border-color:var(--oro)}
 .burger{display:none}
 .fab.fab{bottom:calc(96px + env(safe-area-inset-bottom,0px));right:max(12px,env(safe-area-inset-right,0px));z-index:48}.fab-btn{width:56px;height:56px}.fab-btn .logo{width:38px;height:38px}
 .totop{bottom:calc(96px + env(safe-area-inset-bottom,0px))}
 footer{padding-bottom:7.5rem}
 header .wrap{padding-block:.6rem}
}
/* bottone bussola */
.fab{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:46;display:grid;justify-items:end;gap:.6rem}
.fab-btn{width:64px;height:64px;border-radius:50%;border:0;background:var(--notte);box-shadow:0 12px 32px rgba(31,58,95,.35);cursor:pointer;display:grid;place-items:center;padding:0;transition:transform .25s}
.fab-btn .logo{width:44px;height:44px}.fab-btn::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid var(--oro);opacity:.6;animation:fabp 2.6s ease-out infinite}
@keyframes fabp{0%{transform:scale(.9);opacity:.7}100%{transform:scale(1.35);opacity:0}}
.fab.open .fab-btn{transform:rotate(90deg)}.fab.open .fab-btn::after{animation:none;opacity:0}
.fab-menu{display:grid;gap:.5rem;justify-items:end;opacity:0;pointer-events:none;transform:translateY(12px) scale(.96);transition:opacity .25s,transform .25s}
.fab.open .fab-menu{opacity:1;pointer-events:auto;transform:none}
.fab-menu a{display:inline-flex;align-items:center;gap:.6rem;background:#fff;color:var(--notte);text-decoration:none;font-weight:700;font-size:.92rem;padding:.65rem 1rem .65rem .75rem;border-radius:999px;box-shadow:0 10px 26px rgba(31,58,95,.2);border:1px solid var(--line)}
.fab-menu a:first-child{background:#25D366;color:#fff;border-color:#25D366}
.fab-menu i{width:28px;height:28px;border-radius:50%;display:inline-block;background:var(--blu-ch);position:relative}.fab-menu i::after{content:"";position:absolute;inset:7px;border-radius:50%;background:var(--blu)}
.fab-menu i.wa{background:rgba(255,255,255,.25)}.fab-menu i.wa::after{background:#fff}.fab-menu i.cal::after{border-radius:3px;background:var(--oro)}
.totop{right:auto;left:max(16px,env(safe-area-inset-left,0px))}
/* sedi + mappa */
.sedi{background:var(--bg2)}
.sedi-grid{display:grid;grid-template-columns:.8fr 1.4fr;gap:1.5rem;align-items:stretch}
@media (max-width:980px){.sedi-grid{grid-template-columns:1fr}.mapbox{min-height:360px}}
.sedi-list{display:grid;gap:.8rem;align-content:start}
.sede{text-align:left;background:#fff;border:1.5px solid var(--line);border-left:5px solid var(--line);border-radius:var(--r);padding:1.1rem 1.2rem;cursor:pointer;font:inherit;display:grid;gap:.15rem;transition:border-color .2s,transform .2s}
.sede:hover{transform:translateX(4px)}.sede.on{border-left-color:var(--oro);border-color:var(--oro)}
.sede .k{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--arancio);font-weight:700}.sede b{color:var(--notte);font-size:1.05rem}.sede span{color:var(--muted);font-size:.9rem}.sede .go{color:var(--blu);font-weight:700;margin-top:.3rem}
.sedi-links{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.4rem}.sedi-links .btn{font-size:.85rem;padding:.6em 1.1em}
.mapbox{position:relative;min-height:420px;border-radius:var(--r);overflow:hidden;background:linear-gradient(160deg,#1F3A5F,#004A86);box-shadow:0 24px 60px rgba(31,58,95,.2)}
.map{position:absolute;inset:0}.map-fallback{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;text-align:center;gap:.4rem;color:#fff;padding:2rem}.map-fallback b{font-size:1.4rem}.map-fallback span{max-width:28em;color:#D7E0EB;font-size:.92rem}.map-fallback .rosa-mini{position:absolute;right:-20%;top:-30%;width:80%;opacity:.12;animation:ruota 120s linear infinite}
.mapbox.ok .map-fallback{display:none}
.gs-marker{width:46px;height:46px;border-radius:50%;background:#fff;border:3px solid var(--oro);box-shadow:0 8px 24px rgba(0,0,0,.35);display:grid;place-items:center;cursor:pointer}.gs-marker svg{width:30px;height:30px}
.maplibregl-ctrl-attrib{font-size:10px}
.map-photo{position:absolute;left:1rem;bottom:1rem;right:auto;top:auto;width:min(260px,60%);background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 14px 36px rgba(0,0,0,.35);z-index:3;opacity:0;transform:translateY(16px);transition:opacity .5s,transform .5s,width .6s,left .6s,right .6s,top .6s,bottom .6s;pointer-events:none;display:grid;grid-template-rows:1fr auto}
.map-photo.on{opacity:1;transform:none;pointer-events:auto}.map-photo.big{left:4%;right:4%;top:6%;bottom:4%;width:auto}.map-photo .mp-x{position:absolute;top:.5rem;right:.5rem;width:32px;height:32px;border-radius:50%;border:0;background:rgba(31,58,95,.85);color:#fff;font-size:1rem;cursor:pointer;z-index:2}.map-photo .mp-x::before{content:"⤡"}.map-photo.big .mp-x::before{content:"✕"}.map-photo.big .mp-img{aspect-ratio:auto}.mp-img{aspect-ratio:4/3;min-height:0;background:linear-gradient(160deg,#E8F1FA,#CBD6E4);display:grid;place-items:center;text-align:center;color:var(--muted);font-size:.82rem}.mp-img img{width:100%;height:100%;object-fit:cover;display:block}
.mp-cap{padding:.6rem .8rem;display:grid}.mp-cap b{color:var(--notte);font-size:.9rem}.mp-cap span{color:var(--muted);font-size:.78rem}
/* mobile bar */
.mbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:45;background:#fff;border-top:1px solid var(--line);padding:.5rem max(12px,env(safe-area-inset-right,0px)) calc(.5rem + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));grid-template-columns:1fr 1fr 1.4fr;gap:.5rem}
.mbar a{text-decoration:none;text-align:center;font-size:.85rem;font-weight:700;padding:.7rem .4rem;border-radius:10px;border:1.5px solid var(--line);color:var(--notte)}.mbar a.p{background:var(--oro);border-color:var(--oro)}
.reveal{transition:transform .7s ease}.js .reveal.pre{transform:translateY(28px)}
a:focus-visible,button:focus-visible{outline:3px solid var(--oro);outline-offset:3px}
.totop{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));width:46px;height:46px;border-radius:50%;background:var(--notte);color:#fff;border:0;cursor:pointer;display:grid;place-items:center;box-shadow:0 10px 30px rgba(31,58,95,.3);z-index:40}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.page.on{animation:none}.js .reveal.pre{transform:none}.tw{border-right:0}}
@media (max-width:980px){.hero .wrap,.leader .wrap,.ctab .wrap,.chi,.sv,.pren,.cs-top{grid-template-columns:1fr}.numeri .wrap{grid-template-columns:1fr 1fr;gap:1.2rem}.servizi,.servizi.s4,.casi-grid,.oss,.sei,.altri,.tools,.metodo,.casi-lite,.howrec,.ip-grid{grid-template-columns:1fr 1fr}.duo{grid-template-columns:1fr}.ctab .btn{justify-self:start}footer .wrap{grid-template-columns:1fr}.chi .foto{position:static;max-width:320px}.lato{position:static}.gal{grid-template-columns:1fr 1fr;grid-auto-rows:auto}.gal img,.gal .ph{height:auto}.gal img:first-child,.gal .ph:first-child{grid-column:span 2;grid-row:auto;aspect-ratio:16/10;min-height:0}.hero .wrap{padding-block:2.5rem 4rem}.hero-right{width:min(100%,320px)}.rosa{right:-30vw;top:-20vw;width:90vw}.numeri{clip-path:polygon(0 4%,100% 0,100% 96%,0 100%)}.totop{bottom:calc(16px + env(safe-area-inset-bottom,0px))}}
@media (max-width:560px){.servizi,.servizi.s4,.casi-grid,.oss,.sei,.altri,.tools,.metodo,.f2,.pernon,.casi-lite{grid-template-columns:1fr}.numeri .wrap{grid-template-columns:1fr 1fr}.pill.p1{left:0}.pill.p2{right:0}.pill.p3{left:0}body{font-size:16px}.giorni{grid-template-columns:repeat(3,1fr)}.ore{grid-template-columns:repeat(3,1fr)}.hero h1{min-height:2.2em}
.leader h2{min-height:2.3em}.tw2{color:var(--oro)}}

.page{display:block}