:root{
  --bg:#08080c;
  --bg2:#131218;
  --panel:rgba(255,255,255,.045);
  --panel-hover:rgba(255,255,255,.07);
  --panel-border:rgba(255,255,255,.1);
  --ink:#050506;
  --text:#f4f1ea;
  --muted:#9b968b;
  --bronze:#dcb87e;
  --pine:#3ecf8e;
  --sand:rgba(255,255,255,.12);
  --sky:#7aa7ff;
  --glow1:#8b5cf6;
  --glow2:#4f8cff;
  --glow-grad:linear-gradient(135deg,var(--glow1),var(--glow2));
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:'Inter',sans-serif;scroll-behavior:smooth;overflow-x:hidden;}
body{position:relative;}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(760px 480px at 12% -6%, rgba(139,92,246,.16), transparent 60%),
    radial-gradient(680px 460px at 92% 8%, rgba(79,140,255,.13), transparent 60%),
    radial-gradient(900px 600px at 50% 100%, rgba(220,184,126,.06), transparent 60%);
}
h1,h2,h3,.display{font-family:'Unbounded',sans-serif;color:var(--text);}
a{color:inherit;}
img{max-width:100%;display:block;}

/* NAV */
nav.site-nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:16px 5vw;transition:background .3s, box-shadow .3s;}
nav.site-nav.on-light{color:var(--text);background:transparent;}
nav.site-nav.on-hero{color:#fff;background:linear-gradient(180deg, rgba(3,3,5,.6) 0%, rgba(3,3,5,0) 100%);}
nav.site-nav.scrolled{background:rgba(8,8,12,.82)!important;backdrop-filter:blur(10px);box-shadow:0 6px 24px rgba(0,0,0,.4), inset 0 -1px 0 var(--panel-border);color:var(--text);}
.logo{display:flex;align-items:center;text-decoration:none;}
.logo-img{height:30px;width:auto;transition:filter .3s, height .3s;filter:brightness(0) invert(1);}
.nav-links{display:flex;gap:28px;font-size:13px;letter-spacing:.5px;text-transform:uppercase;list-style:none;margin:0;padding:0;}
.nav-links a{text-decoration:none;opacity:.85;}
.nav-links a:hover{opacity:1;}
.foot-logo{height:26px;margin-bottom:14px;filter:brightness(0) invert(1);opacity:.9;}

/* MOBILE NAV (burger, pure CSS, no JS needed) */
.nav-toggle-input{display:none;}
.nav-burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:32px;height:26px;cursor:pointer;z-index:60;position:relative;flex-shrink:0;}
.nav-burger span{display:block;height:2px;width:100%;background:currentColor;border-radius:2px;transition:transform .3s ease, opacity .3s ease;}
.nav-toggle-input:checked ~ .nav-burger span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle-input:checked ~ .nav-burger span:nth-child(2){opacity:0;}
.nav-toggle-input:checked ~ .nav-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

@media (max-width:768px){
  .logo-img{height:24px;}
  .nav-burger{display:flex;}
  .nav-links{
    position:fixed;inset:0;top:0;
    width:100%;height:100vh;
    background:var(--ink);
    display:flex;flex-direction:column;
    justify-content:center;align-items:center;
    gap:36px;font-size:20px;
    opacity:0;visibility:hidden;
    transform:translateX(100%);
    transition:transform .35s ease, opacity .35s ease, visibility .35s;
    z-index:55;
  }
  .nav-links a{color:#fff;opacity:1;}
  .nav-toggle-input:checked ~ .nav-links{
    transform:translateX(0);
    opacity:1;visibility:visible;
  }
  nav.site-nav.on-hero .nav-burger{color:#fff;}
  nav.site-nav.on-light .nav-burger,
  nav.site-nav.scrolled .nav-burger{color:var(--ink);}
  .nav-toggle-input:checked ~ .nav-burger{color:#fff;position:fixed;right:5vw;top:16px;}
}

/* PAGE HERO (secondary pages) */
.page-hero{padding:170px 5vw 60px;max-width:1200px;margin:0 auto;}
.page-hero .kicker{color:var(--bronze);text-transform:uppercase;letter-spacing:3px;font-size:12px;margin-bottom:10px;}
.page-hero h1{font-size:clamp(30px,5vw,54px);margin:0 0 14px;font-weight:600;}
.page-hero p{color:var(--muted);max-width:560px;font-size:15px;line-height:1.6;}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--panel);border:1px solid var(--bronze);color:var(--text);padding:15px 30px;min-height:48px;border-radius:40px;font-size:13px;letter-spacing:1px;text-transform:uppercase;text-decoration:none;transition:.35s;cursor:pointer;backdrop-filter:blur(6px);}
.btn:hover{background:var(--bronze);color:var(--ink);border-color:var(--bronze);}
.btn.solid{background:var(--glow-grad);border-color:transparent;color:#fff;box-shadow:0 10px 34px -12px rgba(139,92,246,.55);}
.btn.solid:hover{filter:brightness(1.12);box-shadow:0 14px 40px -10px rgba(139,92,246,.75);}

/* SECTION HEAD */
.section-head{max-width:640px;margin:0 auto 46px;text-align:center;}
.section-head .kicker{color:var(--bronze);text-transform:uppercase;letter-spacing:3px;font-size:12px;margin-bottom:8px;}
.section-head h2{font-size:clamp(26px,4vw,42px);margin:8px 0 12px;font-weight:600;}
.section-head p{color:var(--muted);font-size:15px;}

/* TABS */
.tabs{display:flex;justify-content:center;gap:10px;margin-bottom:44px;flex-wrap:wrap;}
.tab{padding:10px 22px;border-radius:30px;border:1px solid var(--panel-border);font-size:13px;letter-spacing:.5px;cursor:pointer;background:var(--panel);color:var(--muted);backdrop-filter:blur(6px);transition:.3s;text-transform:uppercase;white-space:nowrap;}
.tab.active{background:var(--glow-grad);border-color:transparent;color:#fff;box-shadow:0 0 26px -6px rgba(139,92,246,.65);}

/* GRID / CAROUSEL VIEW TOGGLE (реиспользуется на index.html, collection.html, house.html) */
.gallery-toggle{display:flex;gap:8px;max-width:1200px;margin:0 auto 14px;padding:0 5vw;}
.gt-btn{border:1px solid var(--panel-border);background:var(--panel);border-radius:20px;padding:8px 18px;font-size:12.5px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);cursor:pointer;transition:.25s;backdrop-filter:blur(6px);}
.gt-btn.active{background:var(--glow-grad);border-color:transparent;color:#fff;box-shadow:0 0 20px -6px rgba(139,92,246,.65);}

/* GRID / CARDS */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:26px;max-width:1200px;margin:0 auto;perspective:1200px;padding:0 5vw;}
@media (max-width:600px){
  .tabs{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:0 5vw 4px;margin:0 -5vw 32px;}
  .tabs::-webkit-scrollbar{display:none;}
  .tab{flex:0 0 auto;}
  .grid{grid-template-columns:1fr;padding:0 15px;gap:20px;}
}
.card{
  background:
    radial-gradient(120% 160% at 0% 100%, rgba(139,92,246,.14), transparent 60%),
    radial-gradient(120% 160% at 100% 100%, rgba(79,140,255,.14), transparent 60%),
    #100e18;
  border:1px solid rgba(255,255,255,.14);
  border-radius:22px;
  overflow:hidden;
  box-shadow:
    0 0 22px 2px rgba(139,92,246,.45),
    0 0 48px 10px rgba(79,140,255,.32),
    0 20px 50px -22px rgba(0,0,0,.7);
  backdrop-filter:blur(10px);
  transform-style:preserve-3d;
  transition:box-shadow .3s, transform .25s, border-color .3s;
  text-decoration:none;
  color:var(--text);
  display:block;
}
.card:hover{
  border-color:rgba(255,255,255,.24);
  box-shadow:
    0 0 30px 4px rgba(139,92,246,.65),
    0 0 62px 14px rgba(79,140,255,.48),
    0 32px 70px -20px rgba(0,0,0,.5);
  transform:translateY(-3px);
}
.card .img{height:210px;background-size:cover;background-position:center;position:relative;background-color:var(--bg2);}
.card .img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.55));}
.card .tag{position:absolute;top:14px;left:14px;background:rgba(8,8,12,.75);color:var(--text);font-size:11px;letter-spacing:.5px;text-transform:uppercase;padding:5px 12px;border-radius:20px;border:1px solid var(--panel-border);}
.card .body{padding:20px 22px 24px;}
.card h3{margin:0 0 6px;font-size:19px;font-weight:600;color:var(--text);}
.card .meta{font-size:13px;color:var(--muted);margin-bottom:14px;}
.card .price{font-family:'Unbounded';font-size:20px;background:linear-gradient(135deg,#8b5cf6,#4f8cff);-webkit-background-clip:text;background-clip:text;color:transparent;}
.card .soon{display:flex;align-items:center;justify-content:center;height:210px;color:var(--muted);font-size:13px;letter-spacing:1px;text-transform:uppercase;background:repeating-linear-gradient(135deg,#141319,#141319 10px,#1b1a21 10px,#1b1a21 20px);}

/* STATS */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1100px;margin:0 auto;padding:70px 5vw;}
.stat{text-align:center;}
.stat b{display:block;font-family:'Unbounded';font-weight:800;font-size:clamp(30px,4vw,50px);background:var(--glow-grad);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 20px rgba(139,92,246,.4));}
.stat span{font-size:13px;letter-spacing:.5px;color:var(--muted);text-transform:uppercase;}
@media (max-width:600px){
  .stats{grid-template-columns:repeat(2,1fr);gap:28px 16px;padding:44px 8vw;}
  .stats .stat:last-child:nth-child(odd){grid-column:1 / -1;}
}

footer{background:var(--bg2);color:#cfcac0;padding:50px 5vw;text-align:center;font-size:13px;border-top:1px solid var(--panel-border);}
footer b{color:#fff;font-family:'Unbounded';font-weight:600;}
footer .foot-links{display:flex;justify-content:center;gap:24px;margin:16px 0;flex-wrap:wrap;font-size:13px;}
footer a{text-decoration:none;color:#cfcac0;}
footer .foot-legal{max-width:640px;margin:0 auto;}
footer .foot-legal p{margin:4px 0 0;font-size:11px;line-height:1.5;opacity:.65;}

/* HOUSE DETAIL PAGE */
.house-top{padding:150px 5vw 0;max-width:1200px;margin:0 auto;}
.house-top .kicker{color:var(--bronze);text-transform:uppercase;letter-spacing:3px;font-size:12px;}
.house-top h1{font-size:clamp(32px,5vw,58px);margin:10px 0 6px;font-weight:600;}
.house-top .sub{color:var(--muted);font-size:15px;margin-bottom:30px;}

.gallery{max-width:1200px;margin:0 auto;padding:0 5vw 20px;display:grid;grid-template-columns:2fr 1fr;gap:14px;}
.gallery .main-img{grid-row:span 2;border-radius:18px;overflow:hidden;height:520px;background-size:cover;background-position:center;cursor:pointer;}
.gallery .thumb{border-radius:18px;overflow:hidden;height:250px;background-size:cover;background-position:center;cursor:pointer;}
@media (max-width:800px){
  .gallery{grid-template-columns:1fr;}
  .gallery .main-img{height:320px;}
  .gallery .thumb{height:180px;}
}
/* На телефонах галерея — горизонтальный свайпер вместо плитки */
@media (max-width:600px){
  .gallery{
    display:flex;
    grid-template-columns:none;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    gap:10px;
    padding:0 5vw 16px;
    scrollbar-width:none;
  }
  .gallery::-webkit-scrollbar{display:none;}
  .gallery .main-img,
  .gallery .thumb{
    grid-row:auto;
    flex:0 0 88vw;
    height:280px;
    scroll-snap-align:center;
  }
}

.house-info{max-width:1200px;margin:60px auto;padding:0 5vw;display:grid;grid-template-columns:1.4fr 1fr;gap:60px;}
/* Grid-колонки по умолчанию не сжимаются меньше содержимого (min-width:auto) —
   если в описании попадётся длинное непереносимое слово, вся колонка
   раздувается шире экрана и текст визуально "обрезается" за краем viewport
   на мобильных. min-width:0 разрешает колонке сжиматься, overflow-wrap —
   принудительно переносит даже длинные слова. */
.house-info > *{min-width:0;}
.house-info .desc{font-size:15px;line-height:1.8;color:var(--text);opacity:.9;overflow-wrap:break-word;word-break:break-word;text-align:justify;}
.specs{list-style:none;margin:26px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media (max-width:380px){.specs{grid-template-columns:1fr;}}
.specs li{background:var(--panel);border:1px solid var(--panel-border);border-radius:12px;padding:16px 18px;backdrop-filter:blur(8px);}
.specs li b{display:block;font-family:'Unbounded';font-weight:600;font-size:20px;color:var(--bronze);}
.specs li span{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;}

.calc-card{background:var(--panel);border:1px solid var(--panel-border);border-radius:20px;padding:28px;box-shadow:0 20px 50px -22px rgba(0,0,0,.7);backdrop-filter:blur(12px);position:sticky;top:110px;height:fit-content;}
.calc-card h3{margin:0 0 20px;font-size:18px;color:var(--text);}
.calc-price{font-family:'Unbounded';font-size:26px;color:var(--bronze);margin-bottom:20px;}
.calc-row{margin-bottom:18px;}
.calc-row label{display:flex;justify-content:space-between;font-size:13px;color:var(--muted);margin-bottom:8px;}
.calc-row input[type=range]{width:100%;accent-color:var(--glow1);height:6px;}
@media (max-width:600px){
  .calc-row{margin-bottom:26px;}
  .calc-row input[type=range]{height:8px;}
  .calc-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:26px;height:26px;border-radius:50%;background:var(--glow-grad);cursor:pointer;box-shadow:0 2px 10px rgba(139,92,246,.5);}
  .calc-row input[type=range]::-moz-range-thumb{width:26px;height:26px;border-radius:50%;background:var(--glow1);border:none;cursor:pointer;box-shadow:0 2px 10px rgba(139,92,246,.5);}
  .calc-toggle-btn{padding:14px 6px;}
}
.calc-result{background:rgba(255,255,255,.04);border:1px solid var(--panel-border);border-radius:12px;padding:16px;margin-top:20px;text-align:center;}
.calc-result b{font-family:'Unbounded';font-weight:600;font-size:24px;color:var(--bronze);display:block;}
.calc-result span{font-size:12px;color:var(--muted);text-transform:uppercase;}

/* LIGHTBOX */
.lightbox{position:fixed;inset:0;background:rgba(2,2,4,.94);z-index:100;display:none;align-items:center;justify-content:center;}
.lightbox.open{display:flex;}
.lightbox img{max-width:90vw;max-height:85vh;border-radius:8px;box-shadow:0 40px 90px -20px rgba(139,92,246,.35);}
.lightbox .close{position:absolute;top:24px;right:5vw;color:#fff;font-size:28px;cursor:pointer;}

/* CONTACTS */
.contacts-wrap{max-width:1000px;margin:0 auto;padding:0 5vw 100px;display:grid;grid-template-columns:1fr 1fr;gap:50px;}
.contact-block{background:var(--panel);border:1px solid var(--panel-border);border-radius:18px;padding:30px;backdrop-filter:blur(10px);}
.contact-block h3{margin:0 0 18px;font-size:16px;text-transform:uppercase;letter-spacing:1px;color:var(--bronze);}
.contact-block p{margin:0 0 10px;font-size:15px;color:var(--text);}
form.contact-form input, form.contact-form textarea{width:100%;padding:14px;border:1px solid var(--panel-border);border-radius:10px;margin-bottom:14px;font-family:inherit;font-size:16px;background:rgba(255,255,255,.03);color:var(--text);}
form.contact-form input::placeholder, form.contact-form textarea::placeholder{color:var(--muted);}
@media (max-width:800px){.contacts-wrap,.house-info{grid-template-columns:1fr;} .calc-card{position:static;}}
@media (max-width:600px){
  .contacts-wrap{padding:0 15px 60px;gap:20px;}
  .contact-block{padding:22px;}
}

/* HERO 3D CANVAS: не должен мешать скроллу пальцем на телефонах */
@media (max-width:800px){
  #hero-canvas{touch-action:pan-y;pointer-events:none;}
  .hero-copy h1{font-size:clamp(30px,9vw,54px);}
  .hero-copy p{font-size:15px;padding:0 10px;}
}
