/* Immobiliare Giama — stile 4a */
:root{--green:#00973a;--green-l:#3fc16d;--ink:#1f2120;--muted:#5f5f5f;--line:#e0e0dc;--dark-muted:#a7a9a4;--dark-line:#3a3d3b;--pad:clamp(20px,4vw,48px);--display:'Montserrat',sans-serif;--body:'Manrope',sans-serif;--mono:'Manrope',sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--body);color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased;line-height:1.5}
img,video{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
a:hover{opacity:.8}
h1,h2,h3{font-family:var(--display);margin:0}
p{margin:0}
.wrap{max-width:1296px;margin:0 auto;padding:0 var(--pad)}
.label{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--green);letter-spacing:.04em;text-transform:uppercase}
.dark .label{color:var(--green-l)}
.h-xl{font-size:clamp(44px,7.6vw,92px);line-height:.94;font-weight:800;letter-spacing:-.03em;text-transform:uppercase}
.h-l{font-size:clamp(36px,5.4vw,68px);line-height:.98;font-weight:800;letter-spacing:-.02em;text-transform:uppercase;text-wrap:balance}
.h-m{font-size:clamp(28px,3.6vw,44px);font-weight:800;text-transform:uppercase;letter-spacing:-.01em}
.h-s{font-size:clamp(24px,2.8vw,36px);font-weight:800;text-transform:uppercase}
.quote{font-family:var(--display);font-size:clamp(26px,3.2vw,40px);line-height:1.1;font-weight:700;text-wrap:balance}
.lead{font-size:clamp(17px,1.5vw,19px);line-height:1.6;color:var(--muted);text-wrap:pretty;max-width:680px}
.muted{color:var(--muted)}
.btn{display:inline-flex;justify-content:space-between;align-items:center;gap:24px;padding:16px 22px;font-weight:700;font-family:var(--body);border:0;cursor:pointer;font-size:16px}
.btn-green{background:var(--green);color:#fff}
.btn-white{background:#fff;color:var(--ink)}
.btn-dark{background:var(--ink);color:#fff}
.link{font-weight:700;color:var(--green)}
.section{padding-top:clamp(64px,9vw,104px)}
.section-last{padding-bottom:clamp(64px,9vw,104px)}
.dark{background:var(--ink);color:#f1f1ee}
.dark .muted{color:var(--dark-muted)}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;border-bottom:2px solid var(--ink);padding-bottom:20px;margin-bottom:8px}
.sec-head .mono{font-family:var(--mono);font-size:14px;color:var(--muted)}
.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:clamp(32px,5vw,56px);align-items:center}
.stack{display:flex;flex-direction:column;gap:22px}
/* header */
.site-header{background:#fff;border-bottom:1px solid #e6e6e3;position:sticky;top:0;z-index:50}
.header-in{display:flex;justify-content:space-between;align-items:center;gap:24px;padding-top:14px;padding-bottom:14px}
.logo img{height:56px;width:auto}
.nav{display:flex;align-items:center;gap:32px;font-size:15px;font-weight:600}
.nav a[aria-current="page"]{color:var(--green);box-shadow:inset 0 -2px 0 var(--green)}
.btn-phone{font-family:var(--mono);font-size:14px;background:var(--green);color:#fff;padding:12px 16px;font-weight:400}
.nav a.btn-phone{box-shadow:none;color:#fff}
.nav-toggle{display:none;font:600 14px var(--mono);background:var(--ink);color:#fff;border:0;padding:12px 16px;cursor:pointer}
@media (max-width:980px){
.nav-toggle{display:block}
.nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;flex-direction:column;align-items:stretch;gap:0;padding:8px var(--pad) 20px;border-bottom:1px solid #e6e6e3}
.nav.open{display:flex}
.nav a{padding:14px 0;border-bottom:1px solid var(--line);font-size:17px}
.nav a[aria-current="page"]{box-shadow:none}
.nav a.btn-phone{margin-top:16px;text-align:center;border:0}
.logo img{height:46px}
}
/* hero */
.hero{position:relative;height:min(86vh,720px);min-height:520px;background:var(--ink) center/cover;overflow:hidden;color:#fff}
.hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(31,33,32,0) 30%,rgba(31,33,32,.9) 100%)}
.hero-in{position:absolute;left:0;right:0;bottom:clamp(28px,5vw,48px);z-index:2;display:flex;justify-content:space-between;align-items:flex-end;gap:40px;flex-wrap:wrap}
.hero h1 span{color:var(--green-l)}
.hero-side{display:flex;flex-direction:column;gap:14px;width:min(100%,330px)}
.hero-side p{color:#e6e7e2;font-size:17px}
.video-btn{position:absolute;right:var(--pad);top:24px;z-index:3;width:44px;height:44px;border-radius:50%;border:1.5px solid #fff;background:rgba(0,0,0,.25);color:#fff;cursor:pointer;font-size:12px}
/* lista residenze */
.res-list{display:flex;flex-direction:column}
.res-row{display:grid;grid-template-columns:60px minmax(0,1fr) 240px 240px;gap:24px;align-items:center;padding:24px 0;border-bottom:1px solid var(--line)}
.res-row .num{font-family:var(--mono);font-size:14px;color:var(--green);font-weight:600}
.res-row h3{font-size:clamp(24px,2.6vw,30px);font-weight:700}
.res-row img{width:100%;height:140px;object-fit:cover;background:#eef2ef}
.res-row .where b{color:var(--green)}
@media (max-width:860px){.res-row{grid-template-columns:40px 1fr;gap:12px 16px}.res-row img{grid-column:1/-1;grid-row:1;height:220px}.res-row .where{grid-column:2}}
/* pagina residenza */
.page-head{padding-top:clamp(48px,7vw,80px);display:flex;flex-direction:column;gap:20px}
.tabs{display:flex;gap:8px;flex-wrap:wrap;padding-top:28px}
.tabs a{font-family:var(--mono);font-size:13px;border:1.5px solid var(--ink);padding:9px 14px}
.tabs a[aria-current="page"]{background:var(--ink);color:#fff}
.cover{width:100%;height:clamp(300px,48vw,620px);object-fit:cover;background:#eef2ef;margin-top:clamp(28px,4vw,40px)}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.facts div{padding:24px 28px;border-right:1px solid var(--dark-line)}
.facts div:last-child{border-right:0}
.facts small{display:block;font-family:var(--mono);font-size:12px;color:var(--dark-muted);text-transform:uppercase}
.facts strong{font-family:var(--display);font-size:24px;font-weight:800;text-transform:uppercase}
.feat{border-top:2px solid var(--ink)}
.feat li{display:grid;grid-template-columns:40px 1fr;gap:12px;padding:16px 0;border-bottom:1px solid var(--line)}
.feat li span{font-family:var(--mono);font-size:13px;color:var(--green);font-weight:600;padding-top:2px}
.feat ul{list-style:none;margin:0;padding:0}
.feat b{display:block;font-size:16px}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px}
.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;background:#eef2ef}
.cards3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:24px 24px}
.card{display:flex;flex-direction:column;gap:12px}
.card img{width:100%;aspect-ratio:3/2;object-fit:cover;background:#eef2ef}
.card .meta{display:flex;justify-content:space-between;gap:12px;font-family:var(--mono);font-size:12px;text-transform:uppercase}
.card .meta span:last-child{color:var(--green);font-weight:600}
.card h3{font-size:22px;font-weight:700}
/* portfolio */
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-top:32px}
.filters button{font:13px var(--mono);border:1.5px solid var(--ink);background:#fff;color:var(--ink);padding:9px 14px;cursor:pointer}
.filters button.on{background:var(--ink);color:#fff}
/* recensioni */
.reviews{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:16px}
.review{border:1px solid var(--dark-line);padding:28px;display:flex;flex-direction:column;gap:20px}
.review .who{display:flex;gap:12px;align-items:center;margin-top:auto}
.review .who img{width:44px;height:44px;border-radius:50%;object-fit:cover}
/* contatti */
.info{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px;border-top:2px solid var(--ink);padding-top:28px}
.info small{display:block;font-family:var(--mono);font-size:12px;color:var(--muted);text-transform:uppercase;margin-bottom:6px}
.form{background:var(--ink);color:#fff;padding:clamp(24px,3vw,40px);display:flex;flex-direction:column;gap:12px}
.form .row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.form input,.form select,.form textarea{font:16px var(--body);border:0;background:#fff;color:var(--ink);padding:15px;width:100%}
.form label.check{display:flex;gap:10px;font-size:14px;color:var(--dark-muted);align-items:flex-start}
.form label.check input{width:auto;margin-top:4px}
.form .btn{align-self:flex-start}
.form-ok{display:none;padding:32px 0}
.form.sent .form-ok{display:block}
.form.sent .form-fields{display:none}
.map{display:block;width:100%;height:420px;border:0;filter:grayscale(.4)}
/* footer */
.site-footer{background:var(--green);color:#fff;padding:72px 0 32px}
.foot-top{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;flex-wrap:wrap;margin-bottom:56px}
.foot-top h2{font-size:clamp(40px,5.4vw,64px);font-weight:800;line-height:.95;text-transform:uppercase;letter-spacing:-.02em}
.foot-phones{display:flex;flex-direction:column;gap:8px;font-size:22px;font-weight:700;align-items:flex-end}
.foot-phones .btn{font-size:16px;margin-top:8px}
.foot-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px;font-size:15px;padding-bottom:32px}
.foot-cols small{display:block;font-family:var(--mono);font-size:12px;text-transform:uppercase;opacity:.85;margin-bottom:6px}
.foot-bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:14px;border-top:1px solid rgba(255,255,255,.35);padding-top:24px}
.foot-bottom div{display:flex;gap:24px}
@media (max-width:640px){.foot-phones{align-items:flex-start}}

/* planimetria interattiva */
.picker{display:flex;flex-direction:column;gap:24px}
.apt-tabs{display:flex;gap:8px;flex-wrap:wrap}
.apt-tabs button{font:600 13px var(--body);letter-spacing:.04em;border:1.5px solid #f1f1ee;background:transparent;color:#f1f1ee;padding:10px 14px;cursor:pointer;text-align:left}
.apt-tabs button small{display:block;color:var(--dark-muted);font-size:11px;font-weight:400}
.apt-tabs button.on{background:var(--green);border-color:var(--green)}
.apt-tabs button.on small{color:#d6e8dc}
.picker-layout,.apt-full{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:32px;align-items:start}
@media (max-width:900px){.picker-layout,.apt-full{grid-template-columns:1fr}}
.plan{display:flex;flex-direction:column;gap:12px}
.plan-canvas{position:relative;width:100%;background:#fff center/contain no-repeat;border:1px solid var(--line)}
.dark .plan-canvas{border-color:#fff}
.pin{position:absolute;transform:translate(-50%,-50%);border:0;background:transparent;padding:0;cursor:pointer;z-index:3}
.pin .dot{display:block;width:20px;height:20px;border-radius:50%;background:var(--green);position:relative;box-shadow:0 0 0 5px rgba(0,151,58,.25),0 2px 8px rgba(0,0,0,.25);transition:transform .25s}
.pin .dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:rgba(0,151,58,.55);animation:pinPulse 2.2s infinite}
.pin.vid .dot{background:var(--ink);box-shadow:0 0 0 5px rgba(31,33,32,.2),0 2px 8px rgba(0,0,0,.25)}
.pin.vid .dot::after{background:rgba(31,33,32,.4)}
@keyframes pinPulse{0%{transform:scale(.6);opacity:.7}70%{transform:scale(2);opacity:0}100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.pin .dot::after{animation:none}}
.pin:hover .dot,.pin.hl .dot{transform:scale(1.35)}
.peek{position:absolute;bottom:32px;left:50%;transform:translateX(-50%) translateY(8px);width:180px;background:#fff;overflow:hidden;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;box-shadow:0 16px 40px rgba(0,0,0,.25)}
.peek img{width:100%;height:108px;object-fit:cover;display:block;background:#eee}
.peek .play{display:flex;align-items:center;justify-content:center;height:108px;background:var(--ink);color:#fff;font-size:30px}
.peek b{display:block;padding:9px 12px;font:700 12px var(--body);color:var(--ink);text-align:left}
.pin:hover .peek,.pin.hl .peek{opacity:1;transform:translateX(-50%) translateY(0)}
@media (max-width:860px){.peek{display:none}}
.plan-hint{font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--muted)}
.dark .plan-hint{color:var(--dark-muted)}
.rooms{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.crumbs{display:flex;gap:8px;flex-wrap:wrap;font-family:var(--mono);font-size:13px;color:var(--muted);padding-top:28px}
.crumbs a:hover{color:var(--green)}
.gallery button{padding:0;border:0;cursor:zoom-in;background:none}
/* lightbox */
.lb{position:fixed;inset:0;z-index:100;background:rgba(20,22,21,.94);display:none;align-items:center;justify-content:center;flex-direction:column;gap:16px;padding:60px 70px}
.lb.open{display:flex}
.lb img,.lb video{max-width:100%;max-height:calc(100vh - 160px);object-fit:contain}.lb video{width:min(100%,calc((100vh - 160px)*16/9));aspect-ratio:16/9;background:#000}
.lb-cap{color:#fff;font-family:var(--mono);font-size:14px;text-align:center}
.lb button{position:absolute;background:none;border:1.5px solid #fff;color:#fff;width:48px;height:48px;border-radius:50%;font-size:22px;cursor:pointer}
.lb-x{top:16px;right:16px}
.lb-p{left:12px;top:50%;transform:translateY(-50%)}
.lb-n{right:12px;top:50%;transform:translateY(-50%)}
@media (max-width:600px){.lb{padding:70px 12px}.lb-p,.lb-n{top:auto;bottom:16px;transform:none}}
/* lista ambienti */
.rooms{border-top:0;display:flex;flex-direction:column;gap:22px}
.rg-h{display:flex;justify-content:space-between;align-items:baseline;border-bottom:2px solid var(--ink);padding-bottom:8px;margin-bottom:10px;font:800 15px var(--display);text-transform:uppercase;letter-spacing:.01em}
.rg-h small{font:600 12px var(--body);color:var(--green)}
.rg-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.rt{display:flex;flex-direction:column;gap:6px;padding:0;border:0;background:none;cursor:pointer;text-align:left;font:600 13px var(--body);color:var(--ink)}
.rt-th{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:#eef2ef;outline:2px solid transparent;outline-offset:2px;transition:outline-color .15s}
.rt-vid{display:flex;align-items:center;justify-content:center;background:var(--ink);color:#fff;font-size:22px}
.rt:hover .rt-th,.rt:focus-visible .rt-th{outline-color:var(--green)}
.rt:hover .rt-n{color:var(--green)}
/* fascia planimetria + scheda */
.plan-band{padding:clamp(72px,9vw,112px) 0}
.plan-band .stack>.label{margin-bottom:-6px}
.plan-card{background:#fff;color:var(--ink);padding:clamp(22px,2.4vw,32px);display:flex;flex-direction:column;gap:20px}
.plan-card .mono{font:700 12px var(--body);letter-spacing:.1em;color:var(--green);text-transform:uppercase}
.plan-card .type{font:800 clamp(26px,2.6vw,34px)/1 var(--display);text-transform:uppercase;letter-spacing:-.01em;margin-top:-8px}
.specs{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;border-top:2px solid var(--ink)}
.specs div{padding:12px 0;border-bottom:1px solid var(--line);font:700 17px var(--body)}
.specs small{display:block;font:600 11px var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:3px}
.plan-card .btn{justify-content:center}
.plan-card .btns{display:flex;flex-direction:column;gap:8px}
/* casette: edificio piano per piano */
.houses{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:28px}
.house{display:flex;flex-direction:column}
.house-name{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:14px}
.house-name b{font:800 18px var(--display);text-transform:uppercase}
.house-name span{font:600 12px var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--dark-muted)}
.roof{height:56px;background:#f1f1ee;clip-path:polygon(50% 0,100% 100%,0 100%);margin:0 -10px}
.floors{background:#f1f1ee;padding:8px;display:flex;flex-direction:column;gap:8px}
.floor{display:grid;grid-template-columns:72px 1fr;gap:8px;align-items:stretch}
.floor-l{font:700 11px var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center}
.floor-u{display:flex;gap:8px}
.u{flex:1;min-width:0;min-height:64px;border:0;padding:10px;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;text-align:left;font:600 12px var(--body)}
.u.x{background:repeating-linear-gradient(45deg,#e2e2dd 0 6px,#d8d8d2 6px 12px);color:#77786f}
.u.a{background:var(--green);color:#fff;cursor:pointer;transition:transform .15s}
.u.a b{font:800 14px var(--display);text-transform:uppercase}
.u.a:hover{transform:translateY(-2px)}
.u.a.on{background:var(--ink);box-shadow:inset 0 0 0 3px var(--green)}
.ground{height:10px;background:var(--green);margin:0 -10px}
.house-legend{display:flex;gap:18px;flex-wrap:wrap;font:600 12px var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--dark-muted)}
.house-legend span{display:flex;gap:8px;align-items:center}
.house-legend i{width:14px;height:14px;display:inline-block}
.picker-step{font:700 12px var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--green-l)}
[hidden]{display:none!important}
/* recensioni google */
.rev-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}
.rev-score{display:flex;align-items:center;gap:10px;font:700 15px var(--body)}
.rev-score .st{color:#fbbc04;font-size:20px;letter-spacing:2px}
.rev-track{overflow:hidden;margin:36px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.rev-rail{display:flex;gap:16px;width:max-content;animation:revScroll var(--dur,45s) linear infinite}
.rev-track:hover .rev-rail,.rev-track:focus-within .rev-rail{animation-play-state:paused}
@keyframes revScroll{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.rev-rail{animation:none}.rev-track{overflow-x:auto}}
.rev{width:min(360px,80vw);flex-shrink:0;background:#fff;color:var(--ink);padding:24px;display:flex;flex-direction:column;gap:14px}
.rev-top{display:flex;gap:12px;align-items:center}
.rev-av{width:42px;height:42px;border-radius:50%;object-fit:cover;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;font:800 16px var(--display);flex-shrink:0}
.rev-top b{display:block;font-size:15px}
.rev-top small{font-size:12px;color:var(--muted)}
.rev .st{color:#fbbc04;letter-spacing:2px;font-size:15px}
.rev p{font-size:15px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.rev-g{margin-left:auto;font:700 12px var(--body);color:var(--muted)}
/* edificio 3D a cubi */
.cubes-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:40px;align-items:center}
@media (max-width:900px){.cubes-layout{grid-template-columns:minmax(0,1fr)}}
.cubes-wrap{position:relative;width:100%;min-width:0}
.cubes{position:relative;transform-origin:0 0}
.cube{position:absolute;border:0;padding:0;background:none;cursor:pointer;transition:transform .2s}
.cube:hover,.cube:focus-visible{transform:translate(-4px,-4px)}
.cube:focus-visible{outline:none}
.cube .f,.cube .t,.cube .s{position:absolute;inset:0}
.cube .f{display:flex;flex-direction:column;justify-content:space-between;padding:10px;text-align:left;color:#fff;font:600 11px var(--body)}
.cube .f b{font:800 15px var(--display);text-transform:uppercase}
.cube.a .f{background:#00973a}.cube.a .t{background:#3fc16d}.cube.a .s{background:#006b29}
.cube.r .f{background:#9fd3b1;color:#1d3a27}.cube.r .t{background:#c4e6cf}.cube.r .s{background:#77b08b}
.cube.v{cursor:default}.cube.v:hover{transform:none}
.cube.v .f{background:#4a4d4b;color:#a7a9a4}.cube.v .t{background:#5d605e}.cube.v .s{background:#353836}
.cube.on .f{background:#fff;color:var(--ink)}.cube.on .t{background:#e8f3eb}.cube.on .s{background:#c9d6cd}
.cubes-ground{position:absolute;height:6px;background:var(--green-l)}
.floor-tag{position:absolute;font:700 11px var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--dark-muted);white-space:nowrap}
/* realizzazioni */
.facts-light{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));border-top:2px solid var(--ink);border-bottom:1px solid var(--line)}
.facts-light div{padding:18px 0}
.facts-light small{display:block;font:600 11px var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.facts-light strong{font:800 22px var(--display);text-transform:uppercase}
.prose{display:flex;flex-direction:column;gap:18px;font-size:17px;line-height:1.7;color:#3d3f3e;max-width:720px}
.prose h3{font:800 22px var(--display);text-transform:uppercase;color:var(--ink);margin-top:10px}
.pull{border-left:4px solid var(--green);padding:6px 0 6px 24px;margin:8px 0}
.pull p{font:700 clamp(22px,2.4vw,30px)/1.2 var(--display);color:var(--ink)}
.pull cite{display:block;margin-top:10px;font:600 13px var(--body);font-style:normal;color:var(--muted)}
.legend{display:flex;gap:20px;flex-wrap:wrap;font:600 12px var(--body);letter-spacing:.06em;color:var(--dark-muted)}.legend span{display:flex;gap:8px;align-items:center}.legend i{width:14px;height:14px;display:inline-block}

/* home: residenze a fisarmonica */
.x-badge{display:inline-block;padding:7px 12px;font:700 12px var(--body);letter-spacing:.1em;text-transform:uppercase}
.x-info{display:grid;grid-template-columns:repeat(3,1fr);border-top:2px solid currentColor;max-width:520px}
.x-info div{padding:12px 0}
.x-info small{display:block;font:600 11px var(--body);letter-spacing:.1em;text-transform:uppercase;opacity:.7}
.x-info strong{font:700 16px var(--body)}
/* F1 strisce verticali, apertura al passaggio */
.f1{display:flex;height:min(84vh,740px);min-height:560px;gap:4px;padding:0 4px}
.f1-p{position:relative;flex:1;min-width:0;overflow:hidden;color:#fff;background:#1f2120;cursor:pointer;transition:flex .65s cubic-bezier(.2,.8,.2,1)}
.f1-p.on{flex:5}
.f1-bg{position:absolute;inset:0;background:center/cover;filter:grayscale(.6);transition:filter .6s,transform .9s}
.f1-p.on .f1-bg{filter:none}
.f1-p:not(.on):hover .f1-bg{transform:scale(1.08);filter:grayscale(.2)}
.f1-p::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.2),rgba(0,0,0,.1) 40%,rgba(0,0,0,.88))}
.f1-p:not(.on)::after{background:rgba(20,22,21,.6)}
.f1-bar{position:absolute;z-index:2;left:0;right:0;top:0;height:6px}
.f1-n{position:absolute;z-index:2;top:22px;left:50%;transform:translateX(-50%);font:800 20px var(--display);transition:left .5s,transform .5s}
.f1-p.on .f1-n{left:28px;transform:none}
.f1-v{position:absolute;z-index:2;left:50%;bottom:28px;transform:translateX(-50%) rotate(180deg);writing-mode:vertical-rl;display:flex;gap:14px;align-items:center;white-space:nowrap;transition:opacity .25s}
.f1-v b{font:800 22px var(--display);text-transform:uppercase}
.f1-v small{font:700 11px var(--body);letter-spacing:.12em;text-transform:uppercase;opacity:.85}
.f1-p.on .f1-v{opacity:0}
.f1-c{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:clamp(24px,3.6vw,44px);display:flex;flex-direction:column;gap:16px;opacity:0;transform:translateY(16px);transition:opacity .35s .25s,transform .45s .25s;pointer-events:none;min-width:460px}
.f1-p.on .f1-c{opacity:1;transform:none;pointer-events:auto}
.f1-c h3{font:800 clamp(36px,4.6vw,64px)/.92 var(--display);text-transform:uppercase;letter-spacing:-.03em}
.f1-c p{font-size:17px;color:#e6e7e2;max-width:480px}
@media (max-width:820px){.f1{flex-direction:column;height:auto}.f1-p{min-height:84px}.f1-p.on{min-height:540px}.f1-v{writing-mode:horizontal-tb;transform:translateX(-50%);bottom:auto;top:28px}.f1-n{left:24px;transform:none}.f1-c{min-width:0}}

@media (max-width:900px){.picker-layout,.apt-full,.cubes-layout{grid-template-columns:minmax(0,1fr)}}
html,body{overflow-x:clip}

/* mobile: correzioni tagli */
@media (max-width:820px){
.f1{gap:6px;padding:0 var(--pad)}
.f1-p{min-height:92px;flex:none!important}
.f1-p.on{min-height:0}
.f1-n{top:50%;left:20px;transform:translateY(-50%)}
.f1-p.on .f1-n{top:22px;left:20px;transform:none}
.f1-v{writing-mode:horizontal-tb;transform:translateY(-50%);left:64px;right:16px;top:50%;bottom:auto;flex-direction:column;align-items:flex-start;gap:4px;white-space:normal}
.f1-v b{font-size:20px}
.f1-c{position:relative;min-width:0;padding:240px 20px 24px;display:none}
.f1-p.on .f1-c{display:flex}
.f1-c .btn{width:100%}
}
@media (max-width:560px){
.h-xl{font-size:clamp(36px,11vw,48px)}
.h-l{font-size:clamp(30px,9.4vw,40px);overflow-wrap:anywhere}
.h-m{font-size:clamp(26px,8vw,32px);overflow-wrap:anywhere}
.quote{font-size:24px}
.hero-in{gap:22px}
.hero-side{width:100%}
.hero-side .btn{width:100%}
.facts strong{font-size:18px}
.facts div{padding:16px 18px}
.x-info{grid-template-columns:repeat(2,1fr)}
.specs div{font-size:15px}
.plan-card .type{font-size:24px}
.foot-top h2{font-size:34px}
.foot-phones{font-size:19px}
.sec-head .mono{font-size:12px}
.apt-tabs button{flex:1 1 140px}
.page-head .btn,.two .btn{flex:1 1 auto;justify-content:space-between}
.res-row h3{font-size:22px}
.rev{width:82vw}
}

/* edificio 3D girevole */
.b3-stage{position:relative;width:100%;height:520px;perspective:1600px;perspective-origin:50% 35%;cursor:grab;touch-action:pan-y;user-select:none;overflow:hidden}
.b3-stage.drag{cursor:grabbing}
.b3-scale{position:absolute;left:50%;top:62%;width:0;height:0;transform-style:preserve-3d}
.b3-bld{position:absolute;left:0;top:0;transform-style:preserve-3d;transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.b3-u{position:absolute;left:0;top:0;transform-style:preserve-3d;cursor:pointer}
.b3-u.v{cursor:not-allowed}
.b3-f{position:absolute;left:0;top:0;display:flex;flex-direction:column;justify-content:space-between;padding:8px 10px;color:#fff;font:600 11px var(--body);box-shadow:inset 0 0 0 1px rgba(0,0,0,.18);backface-visibility:hidden}
.b3-f b{font:800 15px var(--display);text-transform:uppercase}
.b3-u.on .b3-f{color:var(--ink)}
.b3-u:not(.v):hover .b3-f{filter:brightness(1.12)}
.b3-ui{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:8px}
.b3-btn{width:44px;height:44px;border-radius:50%;border:1.5px solid #f1f1ee;background:none;color:#f1f1ee;font-size:22px;cursor:pointer}
.b3-btn:hover{background:#f1f1ee;color:var(--ink)}
.b3-view{min-width:170px;text-align:center;font:700 12px var(--body);letter-spacing:.1em;text-transform:uppercase;color:#f1f1ee}
.b3-hint{text-align:center;font:600 12px var(--body);letter-spacing:.06em;color:var(--dark-muted);margin-top:10px}

/* scegli il tuo appartamento: edificio 3D a piani */
.soft-lay{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:36px;align-items:start}
@media (max-width:900px){.soft-lay{grid-template-columns:minmax(0,1fr)}}
.sc{background:#fff;padding:28px;display:flex;flex-direction:column;gap:18px;border:1px solid #e6e2d8}
.sc .k{font:700 12px var(--body);letter-spacing:.1em;text-transform:uppercase;color:#4f7a5c}
.sc .t{font:800 30px/1 var(--display);text-transform:uppercase}
.sc .sp{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;border-top:2px solid var(--ink)}
.sc .sp div{padding:11px 0;border-bottom:1px solid #ece8de;font:700 16px var(--body)}
.sc .sp small{display:block;font:600 11px var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.sc .btn{justify-content:center}
.lg{display:flex;gap:18px;flex-wrap:wrap;font:600 12px var(--body);letter-spacing:.06em;text-transform:uppercase;color:#6b6a63;margin-top:18px}
.lg span{display:flex;gap:8px;align-items:center}.lg i{width:14px;height:14px;border:1px solid #b9b5aa}
.s-a{background:#d5e6d9}.s-r{background:#f1e6c8}.s-v{background:#e4e1da}
.s3d{background:#f6f4ee;padding:clamp(48px,6vw,80px) 0}
.v3-stage{position:relative;height:560px;perspective:1700px;perspective-origin:50% 40%;cursor:grab;touch-action:pan-y;user-select:none;overflow:hidden;background:radial-gradient(ellipse at 50% 85%,#e7e4da 0,#f6f4ee 60%)}
.v3-stage.drag{cursor:grabbing}
.v3-sc{position:absolute;left:50%;top:66%;width:0;height:0;transform-style:preserve-3d}
.v3-b{position:absolute;left:0;top:0;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.v3-fl{position:absolute;left:0;top:0;transform-style:preserve-3d;transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.v3-bx{position:absolute;left:0;top:0;transform-style:preserve-3d}
.v3-f{position:absolute;left:0;top:0;backface-visibility:hidden;border:1px solid #b9b4a7;display:flex;flex-direction:column;justify-content:space-between;padding:7px 9px;font:600 10px var(--body);color:#5f5f5f;overflow:hidden}
.v3-f b{font:800 14px var(--display);text-transform:uppercase;color:#2b2d2c}
.v3-bx.u{cursor:pointer}
.v3-bx.u.v{cursor:not-allowed}
.v3-bx.u:not(.v):hover .v3-f{filter:brightness(.95)}
.v3-bx.on .v3-f{border-color:#006b29;color:#e8f3eb}
.v3-bx.on .v3-f b{color:#fff}
.v3-win{position:absolute;left:12%;right:12%;top:12px;height:22px;display:grid;grid-template-columns:repeat(3,1fr);gap:3px}
.v3-win i{border:1px solid rgba(43,45,44,.45);background:rgba(255,255,255,.55)}
.v3-ui{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:18px}
.v3-lift{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #e6e2d8;padding:8px 12px}
.v3-lift small{font:700 10px var(--body);letter-spacing:.1em;text-transform:uppercase;color:#77746b;margin-right:4px}
.v3-lift button{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--ink);background:#fff;font:800 15px var(--display);cursor:pointer}
.v3-lift button.on{background:var(--green);border-color:var(--green);color:#fff}
.v3-rot{display:flex;align-items:center;gap:10px}
.v3-rot button{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--ink);background:none;font-size:20px;cursor:pointer}
.v3-rot span{font:700 12px var(--body);letter-spacing:.1em;text-transform:uppercase;min-width:150px;text-align:center}
.v3-hint{font:600 12px var(--body);color:#77746b;margin-top:10px}
.s3d .label{color:#4f7a5c}
.s3d .lead{color:#5f5f5f}
.sc-img{position:relative;margin:-28px -28px 0;aspect-ratio:16/10;background:#e9e6dd center/cover}
.sc-img span{position:absolute;left:12px;bottom:12px;background:rgba(255,255,255,.92);padding:6px 10px;font:700 11px var(--body);letter-spacing:.08em;text-transform:uppercase;color:#2b2d2c}
.sc .btn+.btn{margin-top:-8px}
@media (max-width:560px){.v3-stage{height:420px}}

/* cookie banner */
.ck{position:fixed;z-index:90;left:16px;right:16px;bottom:16px;max-width:980px;margin:0 auto;background:var(--ink);color:#f1f1ee;padding:20px 22px;display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap;box-shadow:0 20px 50px rgba(0,0,0,.3)}
.ck-t{flex:1 1 380px;display:flex;flex-direction:column;gap:8px}
.ck-t b{font:800 15px var(--display);text-transform:uppercase}
.ck-t p{font-size:14px;line-height:1.5;color:#d6d7d2}
.ck-t a{text-decoration:underline;color:#fff}
.ck-opt{display:flex;gap:8px;align-items:center;font-size:14px}
.ck-b{display:flex;gap:8px;flex-wrap:wrap}
.ck-b .btn{padding:12px 16px;font-size:14px}
/* whatsapp */
.wa{position:fixed;z-index:80;right:18px;bottom:18px;display:flex;align-items:center;gap:10px;background:#25d366;color:#0b3d1f;font:800 15px var(--body);padding:14px 20px;border-radius:999px;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.wa:hover{opacity:1;transform:translateY(-2px)}
.wa-dot{width:10px;height:10px;border-radius:50%;background:#0b3d1f;box-shadow:0 0 0 4px rgba(11,61,31,.18)}
.ck~.wa,body:has(.ck) .wa{bottom:auto;top:auto;display:none}
/* mappa bloccata */
.map-ph{height:420px;background:#f2f7f3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;padding:24px}
.map-ph p{color:var(--muted);max-width:420px}
/* pagine legali */
.legal{max-width:820px}
.legal h2{font:800 22px var(--display);text-transform:uppercase;margin-top:36px;margin-bottom:10px}
.legal p,.legal li{font-size:16px;line-height:1.7;color:#3d3f3e}
.legal ul{padding-left:20px;margin:8px 0}
.legal table{width:100%;border-collapse:collapse;font-size:14px;margin:12px 0}
.legal th,.legal td{border-bottom:1px solid var(--line);padding:10px 8px;text-align:left;vertical-align:top}
.legal th{font:700 12px var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.legal .todo{background:#fff6d6;padding:2px 6px}

/* loghi residenze */
.res-logo{display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;border:2px solid currentColor;padding:10px 14px;line-height:1;align-self:flex-start}
.res-logo small{font:700 9px var(--body);letter-spacing:.22em;text-transform:uppercase}
.res-logo b{font:800 22px var(--display);text-transform:uppercase;letter-spacing:-.01em}
.res-logo.img{border:0;padding:0}
.res-logo.img img{height:64px;width:auto;display:block}
.dark .res-logo.img img,.f1 .res-logo.img img{filter:brightness(0) invert(1)}
/* servizi */
.svc-top{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:20px;margin-top:32px}
.svc-card{border:1px solid var(--line);padding:clamp(24px,3vw,36px);display:flex;flex-direction:column;gap:16px;background:#fff}
.svc-card .ic{font:800 13px var(--display);color:var(--green);letter-spacing:.06em}
.svc-card h3{font:800 clamp(22px,2.4vw,28px)/1.05 var(--display);text-transform:uppercase}
.svc-card ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.svc-card li{padding:10px 0 10px 22px;border-top:1px solid var(--line);position:relative;font-size:15px}
.svc-card li::before{content:"";position:absolute;left:0;top:17px;width:10px;height:2px;background:var(--green)}
.fin{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:1px;background:var(--dark-line);border:1px solid var(--dark-line);margin-top:28px}
.fin div{background:var(--ink);padding:22px;display:flex;flex-direction:column;gap:8px}
.fin span{font:800 12px var(--display);color:var(--green-l)}
.fin b{font:800 17px var(--display);text-transform:uppercase}
.fin p{font-size:14px;color:var(--dark-muted);line-height:1.5}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:0;border-top:2px solid var(--ink);margin-top:28px}
.steps div{padding:22px 18px 22px 0;display:flex;flex-direction:column;gap:8px;border-right:1px solid var(--line)}
.steps div:last-child{border-right:0}
.steps span{font:800 34px var(--display);color:var(--green);line-height:1}
.steps b{font:800 16px var(--display);text-transform:uppercase}
.steps p{font-size:14px;color:var(--muted)}
/* chi siamo */
.pillars{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:1px;background:var(--dark-line);margin-top:40px}
.pillars div{background:var(--ink);padding:28px;display:flex;flex-direction:column;gap:12px}
.pillars span{font:800 13px var(--display);color:var(--green-l)}
.pillars b{font:800 26px var(--display);text-transform:uppercase}
.pillars p{color:#d6d7d2;font-size:16px;line-height:1.6}
.manif{font:800 clamp(30px,4.4vw,60px)/1 var(--display);text-transform:uppercase;letter-spacing:-.02em;max-width:1050px;text-wrap:balance}
.manif em{font-style:normal;color:var(--green-l)}
.tl{border-top:2px solid var(--ink);margin-top:28px}
.tl-r{display:grid;grid-template-columns:140px minmax(0,1fr) minmax(0,1.2fr);gap:24px;padding:20px 0;border-bottom:1px solid var(--line);align-items:baseline}
.tl-r .y{font:800 28px var(--display);color:var(--green)}
.tl-r b{font:800 18px var(--display);text-transform:uppercase}
.tl-r p{color:var(--muted);font-size:15px}
@media (max-width:700px){.tl-r{grid-template-columns:80px 1fr}.tl-r p{grid-column:2}}

.steps div{padding:26px 18px 24px 0}
.steps div+div{padding-left:18px}
.steps span{margin-bottom:4px}
/* servizi: versione mobile compatta con "espandi" */
@media (max-width:700px){
.svc-top{gap:12px}
.svc-card{padding:22px}
.svc-card li{font-size:14px;padding:8px 0 8px 20px}
.fin{grid-template-columns:1fr}
.fin div{padding:16px 18px;display:grid;grid-template-columns:34px 1fr;gap:4px 10px}
.fin div span{grid-row:span 2;padding-top:2px}
.steps{grid-template-columns:1fr}
.steps div,.steps div+div{border-right:0;border-bottom:1px solid var(--line);padding:16px 0;display:grid;grid-template-columns:44px 1fr;gap:2px 12px}
.steps div span{grid-row:span 2;font-size:28px;margin:0}
.page-head + .cover{height:220px}
.svc-media{display:none!important}
}
.more-btn{display:none}
@media (max-width:700px){.more-btn{display:flex;width:100%;justify-content:center;gap:10px;margin-top:12px;padding:14px;border:1.5px solid currentColor;background:none;color:inherit;font:700 14px var(--body);letter-spacing:.04em;cursor:pointer}}

.foot-bottom div{flex-wrap:wrap;gap:10px 20px}

/* servizi: card consulente su fondo chiaro */
.svc-card{background:#f2f7f3;border:0;border-top:4px solid var(--green)}
.svc-card li{border-top-color:#dbe7de}
.svc-card .more-btn{border-color:var(--green);color:var(--green)}
/* come lavoriamo: linea del tempo */
.steps{border-top:0;position:relative;grid-template-columns:repeat(6,minmax(0,1fr));gap:20px}
.steps::before{content:"";position:absolute;left:0;right:0;top:22px;height:2px;background:#cfe3d4}
.steps div,.steps div+div{position:relative;border:0;padding:0;display:flex;flex-direction:column;gap:10px}
.steps span{width:46px;height:46px;border-radius:50%;background:var(--green);color:#fff;font:800 18px var(--display);display:flex;align-items:center;justify-content:center;margin:0 0 6px;box-shadow:0 0 0 6px #fff}
@media (max-width:900px){.steps{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:32px}.steps::before{display:none}}
@media (max-width:700px){
.steps{grid-template-columns:1fr;gap:0}
.steps::before{display:block;left:22px;right:auto;top:10px;bottom:10px;width:2px;height:auto}
.steps div,.steps div+div{display:grid;grid-template-columns:46px 1fr;gap:2px 16px;padding:0 0 22px;border:0}
.steps div span{grid-row:span 2;font-size:16px;margin:0}
.steps div b{padding-top:12px}
}

/* apertura residenza: immagine in parallasse */
.px-head{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:end;padding-top:clamp(40px,6vw,80px);padding-bottom:clamp(32px,4vw,48px)}
@media (max-width:820px){.px-head{grid-template-columns:1fr}}
.px-head h1{font:800 clamp(48px,8.4vw,128px)/.88 var(--display);text-transform:uppercase;letter-spacing:-.04em;margin-top:16px}
.px-head h1 span{color:var(--green)}
.px-side{display:flex;flex-direction:column;gap:20px;padding-bottom:8px}
.px-side p{font-size:clamp(16px,1.3vw,18px);line-height:1.6;color:var(--muted)}
.px-side .btns{display:flex;gap:10px;flex-wrap:wrap}
.px{position:relative;height:clamp(460px,88vh,860px);overflow:hidden;background:var(--ink);clip-path:inset(0 var(--ix,48px) 0 var(--ix,48px));transition:clip-path .05s linear}
.px img{position:absolute;left:0;top:-15%;width:100%;height:130%;object-fit:cover;transform:translate3d(0,var(--py,0),0) scale(var(--ps,1.12));will-change:transform}
.px::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,22,21,0) 55%,rgba(20,22,21,.75) 100%);pointer-events:none}
.px-tag{position:absolute;z-index:2;left:var(--pad);bottom:clamp(20px,3vw,36px);display:flex;gap:10px;flex-wrap:wrap;opacity:var(--po,0);transform:translateY(calc((1 - var(--po,0)) * 20px));transition:opacity .2s}
.px-tag span{background:#fff;color:var(--ink);padding:9px 14px;font:700 12px var(--body);letter-spacing:.1em;text-transform:uppercase}
.px-tag span.g{background:var(--green);color:#fff}
.px-scroll{position:absolute;z-index:2;right:var(--pad);bottom:clamp(20px,3vw,36px);color:#fff;font:700 11px var(--body);letter-spacing:.14em;text-transform:uppercase;writing-mode:vertical-rl;opacity:calc(1 - var(--po,0))}
@media (prefers-reduced-motion:reduce){.px{clip-path:none}.px img{transform:none;top:0;height:100%}.px-tag{opacity:1;transform:none}}

/* apertura residenza: testo sopra immagine in parallasse */
.px.ov{height:min(90vh,860px);min-height:560px;clip-path:none}
.px.ov::after{background:linear-gradient(90deg,rgba(20,22,21,.82) 0%,rgba(20,22,21,.45) 45%,rgba(20,22,21,.05) 75%),linear-gradient(180deg,rgba(20,22,21,0) 55%,rgba(20,22,21,.6) 100%)}
.px-in{position:absolute;z-index:2;left:0;right:0;bottom:clamp(28px,5vw,64px);color:#fff}
.px-in .wrap{display:flex;flex-direction:column;gap:18px;align-items:flex-start}
.px-in .res-logo{color:#fff}
.px-in .label{color:#3fc16d}
.px-in h1{font:800 clamp(46px,7.6vw,112px)/.88 var(--display);text-transform:uppercase;letter-spacing:-.04em}
.px-in h1 span{color:#3fc16d}
.px-in p{font-size:clamp(16px,1.4vw,19px);line-height:1.55;color:#e6e7e2;max-width:560px}
.px-in .btns{display:flex;gap:10px;flex-wrap:wrap}
.px-in .px-tags{display:flex;gap:8px;flex-wrap:wrap}
.px-in .px-tags span{background:rgba(255,255,255,.95);color:var(--ink);padding:8px 12px;font:700 11px var(--body);letter-spacing:.1em;text-transform:uppercase}
.px-in .px-tags span.g{background:var(--green);color:#fff}
.px.ov .px-tag{display:none}
@media (max-width:600px){.px.ov{height:auto;min-height:640px}.px-in .btns .btn{flex:1 1 100%}}

/* animazione immagine residenza: apertura a sipario + zoom lento continuo + testo in sequenza */
@keyframes pxReveal{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes pxDrift{from{scale:1;translate:0 0}to{scale:1.08;translate:-1.5% -1%}}
@keyframes pxUp{from{opacity:0;translate:0 26px}to{opacity:1;translate:0 0}}
@keyframes pxLine{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.px.ov img{animation:pxReveal 1.6s cubic-bezier(.65,0,.25,1) both,pxDrift 24s cubic-bezier(.45,0,.55,1) 0s infinite alternate both}
.px.ov::before{content:"";position:absolute;z-index:3;left:0;right:0;bottom:0;height:4px;background:var(--green);transform-origin:left;animation:pxLine 1.6s cubic-bezier(.77,0,.18,1) .9s both}
.px-in .wrap>*{animation:pxUp .9s cubic-bezier(.2,.7,.2,1) both}
.px-in .wrap>*:nth-child(1){animation-delay:.9s}
.px-in .wrap>*:nth-child(2){animation-delay:1.02s}
.px-in .wrap>*:nth-child(3){animation-delay:1.14s}
.px-in .wrap>*:nth-child(4){animation-delay:1.3s}
.px-in .wrap>*:nth-child(5){animation-delay:1.42s}
.px-in .wrap>*:nth-child(6){animation-delay:1.54s}
@media (prefers-reduced-motion:reduce){.px.ov img,.px.ov::before,.px-in .wrap>*{animation:none}}

.pin-bar{background:#fff8d6;border:2px solid var(--ink);padding:12px 14px;margin-bottom:12px;font:600 14px/1.5 var(--body);display:flex;flex-direction:column;gap:8px}.pin-bar button{font:700 12px var(--body);text-decoration:underline;align-self:flex-start}.pin-bar textarea{width:100%;font:12px monospace}
/* anteprime video */
.rt-vid{position:relative;overflow:hidden;display:block;background:var(--ink)}
.rt-vid video,.peek .play video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.rt-vid i,.peek .play i{position:absolute;left:8px;bottom:8px;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.95);color:var(--ink);display:flex;align-items:center;justify-content:center;font:normal 11px var(--body);padding-left:2px}
.peek .play{position:relative;overflow:hidden}
.rt-n small{display:block;font:700 10px var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--green);margin-bottom:2px}
/* ambienti A: striscia */
.rs{display:flex;flex-direction:column;gap:12px;min-width:0}
.rs-top{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid var(--ink);padding-bottom:10px;font:700 12px var(--body);letter-spacing:.1em;text-transform:uppercase}
.rs-nav{display:flex;gap:6px}.rs-nav button{width:38px;height:38px;border:1.5px solid var(--ink);background:#fff;font-size:18px;cursor:pointer}.rs-nav button:hover{background:var(--ink);color:#fff}
.rs-track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(150px,200px);gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px;scrollbar-width:thin}
.rs-track .rt{scroll-snap-align:start}
/* ambienti B: schede */
.rtab{display:flex;flex-direction:column;gap:14px}
.rtab-bar{display:flex;flex-wrap:wrap;gap:6px}
.rtab-bar button{display:flex;gap:8px;align-items:baseline;padding:10px 14px;border:1.5px solid var(--ink);background:#fff;font:700 13px var(--body);cursor:pointer}
.rtab-bar button small{font-size:11px;color:var(--green)}
.rtab-bar button[aria-selected="true"]{background:var(--ink);color:#fff}.rtab-bar button[aria-selected="true"] small{color:#3fc16d}
.rtab-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
/* ambienti C: elenco + anteprima */
.rc{display:flex;flex-direction:column;gap:12px}
.rc-prev{position:relative;aspect-ratio:16/10;background:var(--ink);overflow:hidden;cursor:zoom-in}
.rc-prev img,.rc-prev video{width:100%;height:100%;object-fit:cover;display:block}
.rc-prev span{position:absolute;left:0;bottom:0;background:#fff;padding:8px 12px;font:700 12px var(--body)}
.rc-list{display:flex;flex-direction:column;border-top:2px solid var(--ink);max-height:300px;overflow-y:auto}
.rc-row{display:grid;grid-template-columns:32px 1fr auto;gap:10px;align-items:center;padding:10px 4px;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;font:600 14px var(--body);color:var(--ink);cursor:pointer}
.rc-row.on,.rc-row:hover{background:#eef2ef}.rc-row.on .rc-n{color:var(--green)}
.rc-ix{font:700 11px var(--body);color:var(--muted)}
.rc-t{font:700 10px var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.rc-t.v{color:var(--green)}
/* anteprima pin: sopra gli altri punti, più grande */
.pin:hover,.pin.hl,.pin:focus-visible{z-index:30}
.peek{width:300px;bottom:34px;box-shadow:0 14px 40px rgba(0,0,0,.35);z-index:31}
.peek img,.peek .play{height:190px}
.peek b{font-size:14px;padding:11px 14px}
/* pin video: verdi come gli altri, con icona play */
.pin.vid .dot{background:var(--green);box-shadow:0 0 0 5px rgba(0,151,58,.25),0 2px 8px rgba(0,0,0,.25)}
.pin.vid .dot::after{background:rgba(0,151,58,.55)}
.pin.vid .dot::before{content:"";position:absolute;z-index:1;left:50%;top:50%;margin:-4px 0 0 -2px;border-left:7px solid #fff;border-top:4px solid transparent;border-bottom:4px solid transparent}
.filters button small{font-size:11px;color:var(--green);margin-left:4px}.filters button.on small{color:#3fc16d}
