:root{--bg:#fff;--fg:#0b0f0e;--dim:#5b6663;--card:#f6f8f7;--line:rgba(0,0,0,.09);--acc:#10b981;--acc2:#059669;--on-acc:#fff;--radius:20px;--font:'Inter',system-ui,sans-serif;--font-h:'Outfit',sans-serif}
[data-theme=dark]{--bg:#070b0a;--fg:#f2f7f5;--dim:#8da39c;--card:#0f1614;--line:rgba(255,255,255,.1)}
.nav{position:sticky;top:0;z-index:700;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:16px;height:72px}.logo{font-family:var(--font-h);font-weight:800;letter-spacing:.08em;font-size:1.05rem}.logo b{color:var(--acc);font-weight:900}
.nav nav{display:flex;gap:26px;font-size:.92rem;font-weight:500}.nav nav a:hover{color:var(--acc)}.nr{display:flex;gap:8px;align-items:center}.lang{font-size:.78rem;opacity:.5;font-weight:600}.lang[aria-pressed=true]{opacity:1;color:var(--acc)}
.hero{padding:60px 0 80px}.hero-g{display:grid;grid-template-columns:1.1fr .9fr;gap:50px;align-items:center}
.hero h1{font-size:clamp(2.8rem,6vw,5.2rem);font-weight:900;letter-spacing:-.04em;margin:18px 0 20px}.hero h1 span{color:var(--acc)}.lead{font-size:1.15rem;color:var(--dim);max-width:30em;margin-bottom:30px}
.search{display:grid;grid-template-columns:1.2fr 1fr 1fr auto;gap:12px;align-items:end;padding:18px}.search .field{margin:0}
.hero-img{position:relative}.hero-img img{border-radius:34px;aspect-ratio:4/3;object-fit:cover;width:100%;box-shadow:0 40px 80px -30px rgba(16,185,129,.4)}
.float{position:absolute;background:var(--bg);border:1px solid var(--line);border-radius:18px;padding:14px 20px;display:grid;box-shadow:0 20px 50px -20px rgba(0,0,0,.3);animation:fl 6s ease-in-out infinite}.float b{font-family:var(--font-h);font-size:1.8rem;font-weight:800;color:var(--acc)}.float span{font-size:.78rem;color:var(--dim)}.f1{left:-24px;bottom:40px}.f2{right:-16px;top:30px;animation-delay:-3s}@keyframes fl{50%{transform:translateY(-12px)}}
.sec{padding:clamp(60px,9vw,110px) 0}.sh{text-align:center;margin-bottom:36px}.sh h2{font-size:clamp(2rem,4.6vw,3.4rem);font-weight:800}.sh .dim{margin-top:10px}
.bar{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;align-items:center}.ctrl{display:flex;gap:14px;align-items:center;flex-wrap:wrap;font-size:.85rem}.ctrl input[type=range]{width:140px}.ctrl select{background:var(--card);border:1px solid var(--line);padding:9px 12px;border-radius:12px}.ctrl output{min-width:78px;font-weight:600}
.view-t{display:flex;border:1px solid var(--line);border-radius:12px;overflow:hidden}.view-t button{padding:8px 12px}.view-t [aria-pressed=true]{background:var(--acc);color:#fff}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:24px}.cards.list{grid-template-columns:1fr}
.pc{background:var(--card);border:1px solid var(--line);border-radius:26px;overflow:hidden;transition:.4s;display:flex;flex-direction:column}.pc:hover{transform:translateY(-6px);box-shadow:0 30px 60px -30px rgba(16,185,129,.35);border-color:var(--acc)}
.list .pc{flex-direction:row}.list .pc .im{width:340px;flex:none;aspect-ratio:auto}
.im{aspect-ratio:4/3;position:relative;overflow:hidden;cursor:pointer;display:block;width:100%}.im img,.im svg{width:100%;height:100%;object-fit:cover;transition:transform .8s}.pc:hover .im img,.pc:hover .im svg{transform:scale(1.07)}
.im .b{position:absolute;left:14px;top:14px;display:flex;gap:6px}.b span{background:var(--acc);color:#fff;font-size:.68rem;font-weight:700;letter-spacing:.1em;padding:4px 10px;border-radius:99px}.b span.d{background:rgba(0,0,0,.6)}
.hrt{position:absolute;right:12px;top:12px;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.9);color:#111;font-size:1.1rem;z-index:2}.hrt.on{color:#ef4444}
.pi{padding:20px;display:grid;gap:8px;flex:1}.pi h3{font-size:1.3rem;font-weight:700}.pi .loc{color:var(--dim);font-size:.88rem}.pr{font-family:var(--font-h);font-size:1.5rem;font-weight:800;color:var(--acc)}
.facts{display:flex;gap:16px;font-size:.85rem;color:var(--dim);flex-wrap:wrap}.facts b{color:var(--fg)}
.pa{display:flex;gap:8px;margin-top:6px;align-items:center}.cmp{display:flex;gap:6px;align-items:center;font-size:.82rem;color:var(--dim)}.cmp input{accent-color:var(--acc)}
.cmpbar{position:sticky;bottom:20px;margin:24px auto 0;width:max-content;max-width:100%;display:flex;gap:12px;align-items:center;background:var(--fg);color:var(--bg);padding:10px 14px 10px 22px;border-radius:99px;box-shadow:0 20px 50px -10px rgba(0,0,0,.5);z-index:50}
.tour{background:var(--card);border-block:1px solid var(--line)}.vt{display:grid;grid-template-columns:1fr 300px;gap:20px}
.pano{position:relative;border-radius:28px;overflow:hidden;height:min(60vh,520px);cursor:grab;border:1px solid var(--line);outline-offset:4px;--tod:55}.pano:active{cursor:grabbing}
.pano-in{position:absolute;inset:0;width:300%;background:url(living.png) 0 center/cover repeat-x;filter:brightness(calc(.55 + var(--tod)/100*.6)) saturate(calc(.8 + var(--tod)/100*.4)) hue-rotate(calc((var(--tod) - 55)*-.2deg));will-change:transform}
.pano::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 40%,rgba(0,0,0,.35));pointer-events:none}
.hot{position:absolute;display:flex;gap:8px;align-items:center;z-index:2;transform:translate(-50%,-50%)}.hot i{width:22px;height:22px;border-radius:50%;background:var(--acc);border:3px solid #fff;animation:dp 2s infinite;display:block}.hot span{background:rgba(0,0,0,.7);color:#fff;border-radius:99px;font-size:.75rem;padding:4px 10px;opacity:0;transition:.3s}.hot:hover span{opacity:1}
.hint{position:absolute;right:16px;bottom:16px;background:rgba(0,0,0,.6);color:#fff;border-radius:99px;padding:6px 14px;font-size:.78rem;z-index:2}
.vt-c{display:grid;gap:18px;align-content:start}.sw-row{display:flex;justify-content:space-between;align-items:center}
.calc{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;padding:clamp(22px,4vw,44px)}.field label output{float:right;color:var(--acc);font-weight:700}
.res{display:grid;gap:8px;justify-items:start;align-content:start}.res b{font-family:var(--font-h);font-size:clamp(2.6rem,5vw,4rem);font-weight:900;color:var(--acc);line-height:1}.res ul{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:.9rem}.res li{display:flex;gap:8px;align-items:center}.res li i{width:10px;height:10px;border-radius:50%}
.cta{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding:clamp(24px,5vw,56px);background:linear-gradient(135deg,color-mix(in srgb,var(--acc) 12%,var(--card)),var(--card))}.cta h2{font-size:clamp(1.8rem,3.6vw,2.8rem);font-weight:800;margin-bottom:10px}
.foot{border-top:1px solid var(--line);padding:26px 0;font-size:.82rem;color:var(--dim)}.foot .wrap{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.dh{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--line)}.dbody{padding:16px 24px;overflow:auto}.fl{display:grid;grid-template-columns:90px 1fr auto;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);align-items:center}.fl .im{aspect-ratio:1;border-radius:12px;cursor:default}
.dm{display:grid;grid-template-columns:1.1fr .9fr;gap:26px}.dm .im{border-radius:20px;aspect-ratio:4/3;cursor:default}.dm .thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}.dm .thumbs button{border-radius:10px;overflow:hidden;aspect-ratio:4/3;border:2px solid transparent}.dm .thumbs button.on{border-color:var(--acc)}
.sc{display:grid;grid-template-columns:110px 1fr 36px;gap:10px;align-items:center;font-size:.85rem;margin:6px 0}.sc .t{height:6px;background:var(--line);border-radius:3px;overflow:hidden}.sc .t i{display:block;height:100%;background:var(--acc)}
.cmpt{width:100%;border-collapse:collapse}.cmpt th,.cmpt td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;font-size:.9rem}.cmpt td.best{color:var(--acc);font-weight:700}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px}
@media(max-width:960px){.hero-g,.vt,.calc,.cta,.dm{grid-template-columns:1fr}.nav nav{display:none}.search{grid-template-columns:1fr 1fr}.list .pc{flex-direction:column}.list .pc .im{width:100%}.f1{left:8px}.f2{right:8px}}
