:root{
  --ink:#0b1117; --btn:#080b0f; --btn-h:#222a36;
  --slate:#4b5b63; --grey:#606060; --t1:#191919; --t2:#262626; --muted:#c7c7c7;
  --sec:#0c0c0c; /* section-heading ink, measured off original (was mis-set to #191919) */
  --bg:#f5f5f5; --card:#f6f6f6; --line:#fafafa; --hair:rgba(0,0,0,.06);
  --sky1:#cfe0ee; --sky2:#e8f0f7; --dusk1:#3a4d5c; --dusk2:#1d2a35;
  --disp:'Switzer','Plus Jakarta Sans','Inter',sans-serif; /* real Switzer via Fontshare */
  --h1:'Special Gothic','Special Gothic Expanded One',sans-serif;  /* measured off original */
  --body:'Inter',sans-serif;
  --max:1320px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:auto}
/* Lenis smooth-scroll required reset — without this, native CSS smooth scroll
   fights Lenis and the page scroll goes janky/stuck. */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}
.lenis.lenis-smooth iframe{pointer-events:none}
body{background:#fff;color:var(--t2);font-family:var(--disp);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip}
img,video,svg{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--max);margin:0 auto;padding:0 32px}
h1,h2,h3,h4,h5,h6{color:var(--sec);font-weight:600;letter-spacing:-.02em}

/* ---------- section tag pill ---------- */
.tag{display:inline-flex;align-items:center;gap:8px;background:var(--btn);color:#fff;font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;padding:7px 14px;border-radius:10px}
.tag i{width:7px;height:7px;border-radius:50%;background:#fff;flex:none}
.tag--light{background:transparent;color:var(--slate);border:1px solid var(--slate)}
.tag--light i{background:var(--slate)}

/* ---------- buttons (label/arrow slide-swap on hover) ---------- */
.btn{display:inline-flex;align-items:center;gap:12px;background:var(--btn);color:#fff;font-family:var(--disp);font-weight:500;font-size:15px;padding:7px 7px 7px 20px;border-radius:12px;box-shadow:0 5px 15px rgba(0,0,0,.2);border:0;cursor:pointer;transition:background .2s}
.btn:hover{background:var(--btn-h)}
.btn .chip{width:34px;height:34px;border-radius:8px;background:#fff;display:grid;place-items:center;color:var(--btn);overflow:hidden;position:relative}
.btn .chip span{display:block;transition:transform .35s cubic-bezier(.22,1.2,.36,1)}
.btn:hover .chip span{transform:translateX(3px)}
.btn--outline{background:transparent;color:var(--t1);border:1px solid rgba(0,0,0,.25);box-shadow:none;padding:12px 22px}
.btn--outline:hover{background:rgba(0,0,0,.05)}
.btn--white .chip{background:var(--btn);color:#fff}

/* ---------- NAV ---------- */
.hdr{position:fixed;top:0;left:0;right:0;z-index:300;background:transparent;transition:background .3s,box-shadow .3s}
.hdr.scrolled{background:#fff;box-shadow:0 1px 0 var(--hair)}
.hdr__in{max-width:var(--max);margin:0 auto;padding:14px 32px;display:flex;align-items:center;justify-content:space-between;gap:25px}
.logo{display:flex;align-items:center;gap:8px;font-weight:800;font-size:22px;color:var(--t1);letter-spacing:-.02em}
.logo svg{width:26px;height:26px}
.hdr__links{display:flex;align-items:center;gap:28px}
.nlink{position:relative;font-size:13px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--t1);padding-bottom:3px;overflow:hidden}
.nlink::after{content:"";position:absolute;left:0;bottom:0;height:1.5px;width:100%;background:var(--t1);transform:translateX(-103%);transition:transform .4s cubic-bezier(.3,1,.4,1)}
.nlink:hover::after{transform:translateX(0)}
.burger{display:none;background:none;border:0;cursor:pointer;flex-direction:column;gap:5px;padding:8px}
.burger span{width:26px;height:2px;background:var(--t1);transition:.3s}
.burger.open span:nth-child(1){transform:translateY(3.5px) rotate(45deg)}
.burger.open span:nth-child(2){transform:translateY(-3.5px) rotate(-45deg)}
.mmenu{position:fixed;inset:0;background:#fff;z-index:250;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;opacity:0;visibility:hidden;transition:.35s}
.mmenu.open{opacity:1;visibility:visible}
.mmenu a{font-size:28px;font-weight:600;color:var(--t1)}

/* ---------- HERO (home) — pinned zoom scene ----------
   .hero is a TALL TRACK; .hero__pin sticks for one viewport while a scrubbed
   timeline scales the house up (origin bottom → grows over the headline),
   fades the copy behind it, and lifts the clouds. The sky fades to #fff at the
   base and the smoke bank sits on top, so the release into the white
   "Our Impact" section is a seamless white-on-white join (no dead-zone gap). */
.hero{position:relative;height:190svh;padding:0;background:transparent}
.hero__pin{position:sticky;top:0;height:100svh;overflow:hidden;display:flex;flex-direction:column;align-items:center;text-align:center;padding:150px 32px 0;background:linear-gradient(180deg,#c3e5f7 0%,#a9d3ec 42%,#84b0ce 72%,#6d99b7 100%)}
.hero--dusk .hero__pin{background:linear-gradient(180deg,#8fa3b5 0%,var(--dusk1) 55%,var(--dusk2) 100%)}
.hero__content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;will-change:transform,opacity}
.hero__badge,.hero h1,.hero__dek,.hero__ctas{position:relative;z-index:2}
.hero__badge{display:inline-flex;align-items:center;gap:10px;background:rgba(255,255,255,.55);backdrop-filter:blur(8px);border-radius:99px;padding:8px 18px 8px 10px;font-size:14px;color:var(--t2);box-shadow:0 6px 24px rgba(0,0,0,.06)}
.avatars{display:flex}
.avatars i{width:28px;height:28px;border-radius:50%;border:2px solid #fff;margin-left:-8px;background:var(--g)}
.avatars i:first-child{margin-left:0}
.hero h1{font-family:var(--h1);font-size:clamp(44px,8vw,100px);font-weight:700;line-height:1;letter-spacing:-.01em;color:var(--btn);margin:26px 0 18px}
.hero__dek{max-width:600px;color:var(--slate);font-size:18px;font-weight:500;line-height:1.6}
.hero__ctas{display:flex;gap:14px;margin-top:28px;justify-content:center;flex-wrap:wrap}
.hero__house{position:relative;width:min(1180px,98vw);margin-top:34px;z-index:5;pointer-events:none;transform-origin:50% 100%;will-change:transform}
.house-img{aspect-ratio:16/8.2;border-radius:22px 22px 0 0;background:var(--g,linear-gradient(160deg,#5b6a74 0%,#2c363e 55%,#1a2228 100%));box-shadow:0 -20px 80px rgba(20,40,60,.25);position:relative;overflow:hidden}
.house-img.photo{border-radius:0;box-shadow:none;-webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 26%);mask-image:linear-gradient(180deg,transparent 0%,#000 26%)}
.house-img.photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#dde8f1 0%,rgba(221,232,241,0) 14%,rgba(221,232,241,0) 86%,#dde8f1 100%)}
.house-cutout{display:block;width:100%;height:auto;position:relative;z-index:1}
/* looping video that fills the scroll-stage box (scales up 1→3.1 on scroll) */
.stage-vid{display:block;width:100%;height:100%;object-fit:cover}
/* upper-sky accent clouds behind the content (soft transparent white-cloud PNG) */
.cloudimg{position:absolute;background:var(--cloud) center/cover no-repeat;pointer-events:none;animation:drift 46s ease-in-out infinite alternate}
@keyframes drift{from{background-position:42% center}to{background-position:58% center}}
.cloud-sky{inset:6% -12% auto -12%;height:58%;opacity:.55;z-index:1;will-change:transform,opacity}
/* soft white smoke that straddles the hero→next-section boundary and bleeds down.
   Radial white reads as fog over both the pale hero base AND the white section. */
.smoke{position:absolute;left:-8%;right:-8%;pointer-events:none;z-index:6;filter:blur(6px);
  background:
    radial-gradient(40% 120% at 20% 46%,rgba(255,255,255,.95),transparent 62%),
    radial-gradient(46% 120% at 50% 40%,rgba(255,255,255,.98),transparent 60%),
    radial-gradient(42% 120% at 78% 48%,rgba(255,255,255,.92),transparent 62%),
    radial-gradient(30% 120% at 90% 55%,rgba(255,255,255,.85),transparent 66%),
    radial-gradient(30% 120% at 10% 55%,rgba(255,255,255,.85),transparent 66%);
  animation:smokedrift 40s ease-in-out infinite alternate}
@keyframes smokedrift{from{transform:translateX(-2%)}to{transform:translateX(2%)}}
/* bottom cloud bank = the transition. A real puffy-cumulus PNG (distinct cloud
   tops) as a strip, with a SOLID-WHITE body (::after) extending far below it. At
   REST the strip sits at the house base (only the puffy tops peek) and the white
   body is below the fold. On scroll GSAP rises the whole thing ~1 viewport: the
   puffy tops sweep UP over the pinned house from the bottom, the white body
   follows and blankets the frame → seamless white join into "Our Impact".
   z above the house so the house is progressively enveloped by the clouds. */
.hero__smoke{position:absolute;left:-5%;right:-5%;top:80vh;height:58vh;z-index:7;pointer-events:none;will-change:transform;
  background:var(--cloud) center/cover no-repeat}
.hero__smoke::after{content:"";position:absolute;left:0;right:0;top:70%;height:170vh;
  background:linear-gradient(180deg,rgba(255,255,255,0) 0%,#fff 16%,#fff 100%)}
.stats{position:relative}
.house-img.photo::before{display:none}
.house-img::before{content:"";position:absolute;inset:0;background:
  linear-gradient(90deg,transparent 8%,rgba(255,214,140,.28) 9%,rgba(255,214,140,.28) 20%,transparent 21%,transparent 32%,rgba(255,214,140,.22) 33%,rgba(255,214,140,.22) 48%,transparent 49%,transparent 62%,rgba(255,220,150,.3) 63%,rgba(255,220,150,.3) 78%,transparent 79%),
  linear-gradient(0deg,transparent 12%,rgba(0,0,0,.28) 13%,rgba(0,0,0,.28) 15%,transparent 16%,transparent 44%,rgba(0,0,0,.3) 45%,rgba(0,0,0,.3) 47%,transparent 48%,transparent 74%,rgba(0,0,0,.32) 75%,rgba(0,0,0,.32) 77%,transparent 78%)}
.fog{position:absolute;left:-10%;right:-10%;height:46%;bottom:-14%;pointer-events:none;filter:blur(2px)}
.fog::before,.fog::after{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(55% 60% at 30% 55%,rgba(255,255,255,.95),transparent 70%),radial-gradient(45% 55% at 70% 45%,rgba(255,255,255,.85),transparent 70%)}
.fog::after{transform:scaleX(-1) translateY(18%)}

/* ---------- stats / Our Impact (text+rows | tall house image) ---------- */
.stats{padding:110px 0}
.stats__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:28px 48px;align-items:start}
.stats__head{grid-column:1;display:flex;flex-direction:column;gap:18px}
.stats__head h2{font-size:clamp(30px,3.6vw,48px);line-height:1.12}
.stats__head p{color:var(--slate);max-width:42ch}
.stats__media{grid-column:2;grid-row:1/3;align-self:stretch;min-height:100%;aspect-ratio:4/5;border-radius:24px;background:var(--g);background-size:cover;background-position:center}
.stats__nums{grid-column:1;display:flex;flex-direction:column;gap:12px;margin-top:6px}
.stat{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:22px 26px}
.stat b{font-size:40px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--t1);line-height:1}
.stat span{font-size:13px;color:var(--slate);text-transform:uppercase;letter-spacing:.06em;text-align:right}

/* ---------- scroll-word statement ---------- */
.statement{padding:130px 0;background:#fff}
.statement p{font-size:clamp(30px,4.4vw,56px);font-weight:600;line-height:1.3;letter-spacing:-.02em;color:var(--sec);max-width:28ch}
.statement em{font-style:italic;font-family:Georgia,serif;letter-spacing:-.01em}

/* ---------- property showcase (full-bleed stack) ---------- */
.showcase{position:relative}
.spanel{position:sticky;top:0;height:100svh;display:grid;place-items:center;overflow:hidden}
.spanel__bg{position:absolute;inset:0;background:var(--g);}
.spanel__bg::after{content:"";position:absolute;inset:0;background:rgba(8,11,15,.32)}
.scard{position:relative;background:rgba(10,14,18,.35);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.14);border-radius:20px;padding:34px 44px;text-align:center;color:#fff;display:flex;flex-direction:column;align-items:center;gap:12px;min-width:min(420px,84vw)}
.scard .price{background:rgba(255,255,255,.16);border-radius:99px;padding:6px 16px;font-size:15px}
.scard h3{color:#fff;font-size:clamp(26px,3vw,38px);font-weight:600}
.scard .loc{color:rgba(255,255,255,.85);font-size:15px}
.scard .btn{margin-top:10px;background:rgba(8,11,15,.85)}

/* ---------- services (hover-expand row) ---------- */
.services{padding:120px 0}
.services__head{display:flex;flex-direction:column;gap:16px;margin-bottom:46px}
.services__head h2{font-size:clamp(30px,3.6vw,48px)}
.svc-row{display:flex;gap:14px;min-height:500px}
.svc{flex:1;border-radius:24px;background:var(--card);border:1px solid var(--line);padding:32px;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;position:relative;overflow:hidden;transition:flex .55s cubic-bezier(.3,1,.4,1);cursor:pointer}
.svc .num{position:absolute;top:18px;right:26px;font-size:clamp(82px,8vw,120px);font-weight:500;color:var(--muted);letter-spacing:-.04em;line-height:.8}
.svc h6{font-size:14px;font-weight:500;color:var(--slate)}
.svc h3{font-size:28px;font-weight:500;line-height:1.2}
.svc .svc__img{position:absolute;inset:14px 14px 110px;border-radius:16px;background:var(--g);opacity:0;transition:opacity .45s}
.svc.on{flex:2.1;background:var(--btn)}
.svc.on .num{color:#fff}
.svc.on h6{color:rgba(255,255,255,.7)}
.svc.on h3{color:#fff}
.svc.on .svc__img{opacity:1}

/* ---------- property grid + filters ---------- */
.listing{padding:60px 0 100px}
.listing__grid{display:flex;gap:24px;align-items:flex-start}
.filters{width:30%;min-width:270px;background:var(--card);border-radius:15px;padding:20px;display:flex;flex-direction:column;gap:25px;position:sticky;top:96px}
.filters__head{display:flex;justify-content:space-between;align-items:center}
.filters__head b{font-size:16px}
.filters__head button{background:none;border:0;color:var(--slate);cursor:pointer;font-size:13px;text-decoration:underline}
.fgroup>span{display:block;font-size:13.5px;font-weight:500;color:var(--t1);margin-bottom:10px}
.ftabs{display:flex;flex-wrap:wrap;gap:8px}
.ftab{background:#fff;border:1px solid var(--hair);border-radius:99px;padding:7px 14px;font-size:13px;color:var(--t2);cursor:pointer;transition:.2s}
.ftab.on{background:var(--btn);color:#fff;border-color:var(--btn)}
.pgrid{flex:1;display:grid;grid-template-columns:repeat(2,minmax(50px,1fr));gap:15px}
.pcard{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:434/420;display:flex;flex-direction:column;justify-content:flex-end}
.pcard__img{position:absolute;inset:0;background:var(--g);background-size:cover;z-index:0;transform-origin:center;will-change:transform}
.pcard__badge{position:absolute;top:16px;right:16px;z-index:2;background:#fff;border-radius:99px;padding:7px 14px;font-size:12.5px;font-weight:500;color:var(--t1);display:flex;align-items:center;gap:6px;box-shadow:0 6px 16px rgba(0,0,0,.1)}
.pcard__badge i{width:7px;height:7px;border-radius:50%;background:var(--btn)}
.pcard__blur{position:absolute;left:0;right:0;bottom:0;height:225px;z-index:1;backdrop-filter:blur(30px);background:rgba(0,0,0,.2);-webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 66%);mask-image:linear-gradient(180deg,transparent 0%,#000 66%)}
.pcard__info{position:relative;z-index:2;padding:25px;color:#fff;display:flex;flex-direction:column;gap:6px}
.pcard__info h6{color:#fff;font-size:15px;font-weight:500}
.pcard__info .pr{font-size:26px;font-weight:600;letter-spacing:-.02em}
.pcard__row{display:flex;align-items:center;gap:17px;font-size:13px;color:rgba(255,255,255,.9);margin-top:6px}
.pcard__row i{width:1px;height:14px;background:rgba(255,255,255,.35)}
.pcard__arrow{position:absolute;right:20px;bottom:22px;z-index:2;width:45px;height:45px;border-radius:50%;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.3);display:grid;place-items:center;color:#fff;transition:gap .2s,transform .3s}
.pcard:hover .pcard__arrow{transform:translateX(3px)}

/* ---------- page intro (inner pages) ---------- */
.pintro{padding:180px 0 80px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:18px}
.pintro h1{font-size:clamp(38px,5vw,64px);font-weight:700;letter-spacing:-.03em;line-height:1.06}
.pintro p{max-width:56ch;color:var(--slate);font-size:16px}
.pintro--left{text-align:left;align-items:flex-start}

/* ---------- property detail ---------- */
.pdhead{padding:170px 0 30px}
.pdhead__row{display:flex;justify-content:space-between;align-items:flex-end;gap:26px;margin-top:14px}
.pdhead h1{font-size:clamp(36px,4.6vw,60px);font-weight:700;letter-spacing:-.03em}
.pdhead .pr{font-size:clamp(30px,3.4vw,44px);font-weight:600}
.pdhead .addr{display:flex;gap:8px;align-items:center;color:var(--slate);margin-top:10px;font-size:15px}
.pdhead .addr a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.gallery{display:grid;grid-template-columns:repeat(3,minmax(50px,1fr));gap:14px;margin:26px 0 60px}
.gallery .g1{grid-column:span 2;height:400px;border-radius:20px;background:var(--g)}
.gallery .gcol{display:grid;gap:14px}
.gallery .gcol div{height:193px;border-radius:20px;background:var(--g)}
.detail{display:flex;gap:50px;align-items:flex-start;padding-bottom:90px}
.detail__main{flex:1;display:flex;flex-direction:column;gap:40px}
.detail__main h5{font-size:20px;margin-bottom:12px}
.detail__main>div>p{color:var(--slate);max-width:70ch}
.specs{background:var(--card);border-radius:15px;padding:26px;display:grid;grid-template-columns:repeat(3,1fr);gap:25px}
.spec{display:flex;flex-direction:column;gap:4px}
.spec i{width:38px;height:38px;border-radius:10px;background:#fff;display:grid;place-items:center;margin-bottom:6px;font-style:normal}
.spec span{font-size:12.5px;color:var(--slate)}
.spec b{font-size:16px;color:var(--t1)}
.amenities{display:flex;flex-wrap:wrap;gap:15px}
.amenities span{border:1px solid var(--hair);background:var(--card);border-radius:99px;padding:9px 18px;font-size:13.5px;color:var(--t2)}
.floorplan{border-radius:15px;background:linear-gradient(135deg,#e8e4dc,#cfc9bd);aspect-ratio:16/9}
.pvideo{border-radius:15px;background:linear-gradient(135deg,#2c363e,#12181d);aspect-ratio:16/8;position:relative}
.pvideo::after{content:"▶";position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:40px;opacity:.85}
.ctc{width:32%;min-width:300px;background:var(--btn);border-radius:15px;padding:30px;color:#fff;display:flex;flex-direction:column;gap:25px;position:sticky;top:96px}
.ctc h5{color:#fff;font-size:21px}
.ctc>p{color:rgba(255,255,255,.75);font-size:14px}
.ctc .check{display:flex;gap:12px;align-items:center;font-size:14.5px;color:rgba(255,255,255,.92)}
.ctc .check i{width:22px;height:22px;border-radius:50%;background:rgba(255,255,255,.14);display:grid;place-items:center;font-size:11px;font-style:normal;flex:none}
.ctc .btn{background:#fff;color:var(--t1);justify-content:space-between}
.ctc .btn .chip{background:var(--btn);color:#fff}

/* ---------- FAQ ---------- */
.faqsec{padding:90px 0;background:#fff}
.faqsec__grid{display:grid;grid-template-columns:1fr 1.35fr;gap:50px;align-items:start}
.faqsec__left h3{font-size:clamp(28px,3.2vw,40px);margin:16px 0 12px}
.faqsec__left p{color:var(--slate);max-width:38ch}
.faq-list{display:flex;flex-direction:column;gap:10px}
.faq-item{background:var(--card);border:1px solid var(--line);border-radius:15px;overflow:hidden}
.faq-item button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px;background:none;border:0;padding:20px 22px;font-family:var(--disp);font-size:16.5px;font-weight:500;color:var(--t1);cursor:pointer;text-align:left}
.faq-item .ic{width:28px;height:28px;border-radius:50%;background:#fff;display:grid;place-items:center;font-size:16px;transition:transform .25s;flex:none}
.faq-item.open .ic{transform:rotate(45deg)}
.faq-item .ans{max-height:0;overflow:hidden;transition:max-height .3s ease}
.faq-item.open .ans{max-height:220px}
.faq-item .ans p{padding:0 22px 20px;color:var(--slate);font-size:14.5px;max-width:64ch}

/* ---------- about extras ---------- */
.ahero{display:grid;grid-template-columns:1.15fr 1fr;gap:40px;padding:170px 0 80px;align-items:center}
.ahero__left{display:flex;flex-direction:column;gap:18px;align-items:flex-start}
.ahero__left h1{font-size:clamp(36px,4.6vw,60px);font-weight:700;line-height:1.06;letter-spacing:-.03em}
.ahero__left p{color:var(--slate);max-width:48ch}
.ahero__vid{width:100%;aspect-ratio:16/9;border-radius:24px;background:linear-gradient(150deg,#8fa8ba,#41525e);margin-top:12px}
.ahero__right{display:grid;gap:16px}
.ahero__right div{border-radius:24px;background:var(--g);aspect-ratio:16/10}
.clients{padding:40px 0 90px;display:flex;align-items:center;gap:40px}
.clients h6{font-size:12px;letter-spacing:.14em;color:var(--slate);text-transform:uppercase;white-space:nowrap}
.ticker{overflow:hidden;flex:1;-webkit-mask-image:linear-gradient(90deg,#0000 0%,#000 51%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0%,#000 51%,#0000 100%)}
.ticker__track{display:inline-flex;gap:40px;align-items:center;animation:tick 24s linear infinite;white-space:nowrap;font-weight:600;font-size:22px;color:#9aa6ad}
@keyframes tick{to{transform:translateX(-50%)}}
.mission{display:grid;grid-template-columns:1.2fr 1fr;gap:44px;padding:80px 0;align-items:center}
.mission__vid{aspect-ratio:16/10;border-radius:24px;background:linear-gradient(150deg,#3f5a4c,#17251d)}
.mission__right{display:flex;flex-direction:column;gap:30px}
.mission__right p{color:var(--slate);max-width:46ch;margin-top:8px}
.bento{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:50px 0 100px}
.bcell{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:30px;display:flex;flex-direction:column;gap:14px}
.bcell--dark{background:var(--btn);color:#fff}
.bcell--dark h4,.bcell--dark h6{color:#fff}
.bcell--dark p{color:rgba(255,255,255,.72)}
.bcell h4{font-size:24px;line-height:1.3}
.bcell p{color:var(--slate);font-size:14px}
.bcell .stat{background:transparent;border:0;padding:10px 0 0}
.vticker{height:230px;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,transparent,#000 42%,#000 77%,transparent);mask-image:linear-gradient(180deg,transparent,#000 42%,#000 77%,transparent)}
.vticker__track{display:flex;flex-direction:column;gap:10px;animation:vtick 14s linear infinite}
@keyframes vtick{to{transform:translateY(-50%)}}
.vticker__track i{height:110px;border-radius:14px;background:var(--g);flex:none}

/* ---------- contact ---------- */
.contact{display:grid;grid-template-columns:1fr 1.1fr;gap:44px;padding:40px 0 100px;align-items:start}
.commit{background:var(--btn);color:#fff;border-radius:24px;padding:30px;display:flex;flex-direction:column;gap:12px}
.commit h6{color:rgba(255,255,255,.7);font-size:12.5px;letter-spacing:.1em;text-transform:uppercase}
.commit p{font-size:19px;line-height:1.45;color:#fff}
.contact__pics{display:grid;gap:16px;margin-top:16px}
.contact__pics div{border-radius:24px;background:var(--g);aspect-ratio:16/9}
.cform{background:var(--card);border-radius:24px;padding:34px;display:flex;flex-direction:column;gap:20px}
.cfield{display:flex;flex-direction:column;gap:8px}
.cfield label{font-family:var(--body);font-size:13px;font-weight:500;color:var(--t1)}
.cfield input,.cfield textarea{font-family:var(--body);font-size:14px;padding:13px 14px;border:1px solid var(--hair);border-radius:10px;background:#fff;outline:none;transition:border .2s}
.cfield input:focus,.cfield textarea:focus{border-color:var(--btn)}
.cform .btn{justify-content:center;border-radius:10px}
.cform__ok{display:none;color:#1a7f37;font-weight:500}
.cform.sent .cform__ok{display:block}

/* ---------- legal ---------- */
.legal{display:flex;gap:32px;align-items:flex-start;padding:40px 0 100px}
.legal__side{position:sticky;top:124px;background:var(--card);border-radius:15px;padding:15px;max-width:220px;min-width:190px;text-align:center;display:flex;flex-direction:column;gap:12px}
.legal__side b{font-size:14px}
.legal__side hr{border:0;border-top:1px solid var(--muted)}
.legal__side a{font-size:13.5px;color:var(--slate)}
.legal__side a.on{color:var(--t1);font-weight:600}
.legal__body{flex:1;max-width:750px;display:flex;flex-direction:column;gap:48px}
.legal__body h4{font-size:24px;margin-bottom:10px}
.legal__body h6{font-size:16px;margin:14px 0 6px}
.legal__body p{color:var(--t2);font-size:15px}

/* ---------- 404 ---------- */
.nf{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:180px 32px 80px;position:relative}
.nf h1{font-family:var(--disp);font-weight:700;font-size:clamp(160px,24vw,380px);letter-spacing:-.07em;line-height:1;background:linear-gradient(0deg,rgba(0,0,0,.15) 10%,rgba(0,0,0,.61) 80%);-webkit-background-clip:text;background-clip:text;color:transparent}
.nf h4{font-size:30px;margin:8px 0 10px}
.nf p{color:var(--t2);margin-bottom:24px}

/* ---------- FOOTER ---------- */
.ftr-outer{background:#fff;padding-bottom:40px}
.ftr{max-width:1920px;margin:0 auto;background:var(--ink);border-radius:30px 30px 0 0;overflow:hidden;color:#fff;position:relative}
.ftr__cta{position:relative;padding:80px 32px 0;text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px;z-index:2;max-width:600px;margin:0 auto}
.ftr__cta h3{color:var(--ink);font-size:clamp(28px,3.4vw,40px)}
.ftr__cta p{color:var(--slate);font-size:17px}
.ftr__sky{position:absolute;inset:0 0 auto;height:520px;background:linear-gradient(180deg,#dfe9f2 0%,#b6c9d9 60%,var(--ink) 100%);z-index:0}
.ftr__house{position:relative;z-index:1;margin-top:40px;height:clamp(220px,36vw,540px);background:linear-gradient(180deg,transparent 0%,rgba(9,14,19,0) 30%,var(--ink) 96%),linear-gradient(160deg,#4d5d6a 0%,#212c35 60%,#0e151b 100%);-webkit-mask-image:linear-gradient(180deg,#000 82%,transparent);mask-image:linear-gradient(180deg,#000 82%,transparent)}
.ftr__word{position:relative;z-index:2;text-align:center;font-weight:800;font-size:clamp(90px,17vw,300px);letter-spacing:-.03em;line-height:.9;color:rgba(255,255,255,.9);margin-top:calc(clamp(90px,17vw,300px) * -0.62);user-select:none;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.65),rgba(0,0,0,.95));mix-blend-mode:overlay}
.ftr__cols{position:relative;z-index:2;max-width:var(--max);margin:0 auto;padding:50px 32px 35px;display:flex;justify-content:space-between;gap:50px;flex-wrap:wrap}
.ftr__brand{max-width:420px;display:flex;flex-direction:column;gap:22px}
.ftr__brand .logo{color:#fff}
.ftr__brand p{color:rgba(255,255,255,.7);font-size:15px}
.socials{display:flex;gap:12px}
.socials a{width:38px;height:38px;border-radius:10px;background:rgba(255,255,255,.1);display:grid;place-items:center;font-size:16px;transition:background .2s}
.socials a:hover{background:rgba(255,255,255,.22)}
.ftr__nav{display:flex;gap:50px}
.ftr__nav h4{color:#fff;font-size:16px;margin-bottom:16px}
.ftr__nav div{display:flex;flex-direction:column;gap:12px}
.ftr__nav a{color:rgba(255,255,255,.75);font-size:14.5px;transition:color .2s}
.ftr__nav a:hover{color:#fff}
.ftr__contact div{display:flex;flex-direction:row;align-items:center;gap:10px}
.ftr__contact i{width:30px;height:30px;border-radius:50%;background:#fff;color:var(--ink);display:grid;place-items:center;font-size:13px;font-style:normal;flex:none}
.ftr__base{position:relative;z-index:2;max-width:var(--max);margin:0 auto;padding:22px 32px 30px;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;color:rgba(255,255,255,.6);font-size:13.5px}
.ftr__base a{color:rgba(255,255,255,.85)}

/* ---------- responsive ---------- */
@media(max-width:1000px){
  .hdr__links .nlink{display:none}
  .burger{display:flex}
  .stats__grid,.faqsec__grid,.ahero,.mission,.contact{grid-template-columns:1fr}
  .bento{grid-template-columns:1fr 1fr}
  /* stack Our Impact in source order: heading → house image → stat rows */
  .stats__head,.stats__media,.stats__nums{grid-column:1}
  .stats__media{grid-row:auto;aspect-ratio:16/11;margin:4px 0}
  .svc-row{flex-direction:column;min-height:0}
  .svc{min-height:150px}
  .svc.on{flex:1}
  .svc .svc__img{display:none}
  .listing__grid{flex-direction:column}
  .filters{width:100%;position:static}
  .detail{flex-direction:column}
  .ctc{width:100%;position:static}
  .legal{flex-direction:column}
  .legal__side{position:static;max-width:none;width:100%}
}
@media(max-width:640px){
  .pgrid{grid-template-columns:1fr}
  .stats__nums,.bento{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr}
  .gallery .g1{grid-column:auto;height:280px}
  .specs{grid-template-columns:1fr 1fr}
  .pdhead__row{flex-direction:column;align-items:flex-start}
  .ftr__nav{flex-direction:column;gap:30px}
}
