/* ==========================================================
   Gursaya Real Estate — design system
   Brand: Sage #ADBF98 · Olive #718A58 · Linen #FFF8F2 · Tan #C7AD8A · Onyx #2F3234
   Type: Neue Haas Grotesk (licensed) → Switzer fallback
   ========================================================== */
:root{
  --sage:#ADBF98; --sage-100:#F3F6EF; --sage-200:#E5EADD; --olive:#718A58; --olive-ink:#56693F;
  --linen:#FFF8F2; --linen-2:#F2EAE2; --linen-3:#DED2C5; --stone:#C9BCAD;
  --sand:#F2EDE2; --sand-2:#E3D9C5; --tan:#C7AD8A; --bronze:#A47852; --bronze-ink:#86603F;
  --onyx:#2F3234; --onyx-2:#4A5154; --slate:#AAB2B6; --mist:#E5E8E8;

  --color-bg:var(--linen); --color-text:var(--onyx); --color-muted:#575E61;
  --line:rgba(47,50,52,.14); --line-strong:rgba(47,50,52,.28); --line-light:rgba(255,248,242,.18);

  --font-body:'Neue Haas Grotesk Text Pro','Neue Haas Grotesk Text','Switzer','Helvetica Neue',Arial,sans-serif;
  --font-display:'Neue Haas Grotesk Display Pro','Neue Haas Grotesk Display','Switzer','Helvetica Neue',Arial,sans-serif;

  --text-xs:clamp(.75rem,.72rem + .12vw,.8125rem);
  --text-sm:clamp(.875rem,.85rem + .12vw,.9375rem);
  --text-base:clamp(1rem,.97rem + .15vw,1.0625rem);
  --text-lg:clamp(1.125rem,1.05rem + .35vw,1.375rem);
  --text-xl:clamp(1.5rem,1.25rem + 1.1vw,2.25rem);
  --text-2xl:clamp(2rem,1.4rem + 2.6vw,3.5rem);
  --text-3xl:clamp(2.6rem,1.6rem + 4.4vw,5.25rem);
  --text-hero:clamp(2.75rem,1.4rem + 5.6vw,6.25rem);

  --gutter:clamp(1.25rem,4vw,4rem);
  --maxw:1440px;
  --radius:3px;
  --ease:cubic-bezier(.16,1,.3,1);
  --t-fast:180ms var(--ease);
  --t-med:420ms var(--ease);
  --shadow:0 18px 50px -24px rgba(47,50,52,.28);
}

body{font-feature-settings:"ss01","tnum" 0;letter-spacing:-.005em}
body.no-scroll{overflow:hidden}
a{color:inherit;text-decoration:none}
img{background:var(--linen-2)}

.skip{position:absolute;left:-999px;top:12px;z-index:1000;background:var(--onyx);color:var(--linen);padding:.75rem 1rem}
.skip:focus{left:12px}

.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:clamp(4.5rem,9vw,8.5rem)}
.section--tight{padding-block:clamp(3rem,6vw,5rem)}

/* ---------- type ---------- */
.display{font-family:var(--font-display);font-weight:500;letter-spacing:-.035em;line-height:.98}
.h1{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:500;letter-spacing:-.035em;line-height:1}
.h2{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:500;letter-spacing:-.03em;line-height:1.04}
.h3{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;letter-spacing:-.02em;line-height:1.12}
.h4{font-size:var(--text-lg);font-weight:600;letter-spacing:-.01em;line-height:1.25}
.lede{font-size:var(--text-lg);line-height:1.5;color:var(--color-muted);max-width:52ch}
.muted{color:var(--color-muted)}
.label{display:inline-flex;align-items:center;gap:.75rem;font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.18em;color:var(--color-muted)}
.label .num{color:var(--bronze-ink);font-variant-numeric:tabular-nums}
.label::after{content:"";width:48px;height:1px;background:var(--tan)}
.label--plain::after{display:none}
.on-dark .label{color:rgba(255,248,242,.7)}
.on-dark .label .num{color:var(--tan)}
.tnum{font-variant-numeric:tabular-nums}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:48px;padding:.85rem 1.4rem;border-radius:var(--radius);font-size:var(--text-sm);font-weight:600;letter-spacing:.01em;white-space:nowrap;border:1px solid transparent}
.btn svg{width:18px;height:18px;flex:none}
.btn--primary{background:var(--sage);color:var(--onyx)}
.btn--primary:hover{background:#9DB186}
.btn--primary:active{background:#92A77A}
.btn--dark{background:var(--onyx);color:var(--linen)}
.btn--dark:hover{background:#1F2223}
.btn--ghost{border-color:var(--line-strong);color:var(--onyx)}
.btn--ghost:hover{border-color:var(--onyx);background:rgba(47,50,52,.04)}
.btn--light{background:var(--linen);color:var(--onyx)}
.btn--light:hover{background:#fff}
.btn--block{width:100%}
.link-arrow{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;font-size:var(--text-sm);border-bottom:1px solid var(--tan);padding-bottom:.2rem}
.link-arrow svg{width:16px;height:16px;transition:transform var(--t-fast)}
.link-arrow:hover svg{transform:translateX(4px)}
.link-arrow:hover{border-color:var(--onyx)}

/* ---------- header ---------- */
.header{position:fixed;inset:0 0 auto 0;z-index:60;transition:background var(--t-med),box-shadow var(--t-med),transform var(--t-med),padding var(--t-med)}
.header__in{display:flex;align-items:center;justify-content:space-between;gap:2rem;height:84px;transition:height var(--t-med)}
.header.is-scrolled{background:rgba(255,248,242,.9);backdrop-filter:saturate(1.2) blur(14px);-webkit-backdrop-filter:saturate(1.2) blur(14px);box-shadow:0 1px 0 var(--line)}
.header.is-scrolled .header__in{height:68px}
.header.is-hidden{transform:translateY(-100%)}
.brand{display:flex;align-items:center;gap:.75rem;color:var(--onyx)}
.brand__mark{width:24px;height:auto;color:var(--olive)}
.brand__word{display:flex;flex-direction:column;line-height:1}
.brand__word b{font-family:var(--font-display);font-weight:700;font-size:1.06rem;letter-spacing:.14em}
.brand__word span{font-size:.56rem;letter-spacing:.52em;margin-top:.3rem;font-weight:500;color:var(--color-muted)}
.nav{display:flex;align-items:center;gap:clamp(1.25rem,2.4vw,2.5rem)}
.nav a{font-size:var(--text-sm);font-weight:500;position:relative;padding-block:.5rem}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:var(--onyx);transform:scaleX(0);transform-origin:left;transition:transform var(--t-med)}
.nav a:hover::after,.nav a[aria-current="page"]::after{transform:scaleX(1)}
.header__cta{display:flex;align-items:center;gap:.75rem}
.menu-btn{display:none;width:48px;height:48px;align-items:center;justify-content:center;border-radius:var(--radius);border:1px solid var(--line-strong)}
.menu-btn svg{width:22px;height:22px}
.call-btn{display:none}
@media (max-width:960px){
  .nav,.header__cta .btn--primary{display:none}
  .menu-btn,.call-btn{display:inline-flex}
  .call-btn{width:48px;height:48px;align-items:center;justify-content:center;border-radius:var(--radius);background:var(--sage)}
  .call-btn svg{width:20px;height:20px}
}
/* header over hero */
.header--over:not(.is-scrolled) .brand,.header--over:not(.is-scrolled) .nav a{color:var(--onyx)}

/* mobile menu */
.mnav{position:fixed;inset:0;z-index:80;background:var(--onyx);color:var(--linen);display:flex;flex-direction:column;padding:1.25rem var(--gutter) 2rem;clip-path:circle(0% at calc(100% - 40px) 40px);transition:clip-path 700ms var(--ease);visibility:hidden}
.mnav.is-open{clip-path:circle(150% at calc(100% - 40px) 40px);visibility:visible}
.mnav__top{display:flex;justify-content:space-between;align-items:center;height:56px}
.mnav__top .brand{color:var(--linen)}
.mnav__top .brand__word span{color:rgba(255,248,242,.6)}
.mnav__top .brand__mark{color:var(--sage)}
.mnav__close{width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line-light);border-radius:var(--radius);color:var(--linen)}
.mnav__close svg{width:22px;height:22px}
.mnav ol{list-style:none;margin-top:auto;display:grid;gap:.25rem;counter-reset:m}
.mnav ol a{display:flex;align-items:baseline;gap:1rem;font-family:var(--font-display);font-size:clamp(2.2rem,10vw,3.4rem);letter-spacing:-.03em;font-weight:500;padding-block:.25rem}
.mnav ol a::before{counter-increment:m;content:"0" counter(m);font-family:var(--font-body);font-size:.8rem;letter-spacing:.1em;color:var(--tan)}
.mnav__foot{margin-top:2rem;display:grid;gap:1rem}
.mnav__foot p{font-size:var(--text-sm);color:rgba(255,248,242,.65)}

/* ---------- hero (home) ---------- */
.hero{position:relative;min-height:max(680px,100svh);display:flex;align-items:center;overflow:hidden;background:var(--linen);isolation:isolate}
.hero__media{position:absolute;inset:0;z-index:-3}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:62% 70%;transform:scale(1.08);transform-origin:65% 60%;transition:transform 3.2s var(--ease)}
.is-revealed .hero__media img{transform:scale(1)}
.hero__veil{position:absolute;inset:0;z-index:-2;pointer-events:none;background:
  linear-gradient(90deg,rgba(255,248,242,.94) 0%,rgba(255,248,242,.82) 26%,rgba(255,248,242,.35) 48%,rgba(255,248,242,0) 64%),
  linear-gradient(180deg,rgba(255,248,242,.75) 0%,rgba(255,248,242,0) 22%),
  linear-gradient(0deg,rgba(47,50,52,.28) 0%,rgba(47,50,52,0) 26%)}
.hero__glow{position:absolute;z-index:-1;pointer-events:none;width:60vw;aspect-ratio:1;left:52%;top:-28vw;border-radius:50%;background:radial-gradient(closest-side,rgba(199,173,138,.32),rgba(199,173,138,0));opacity:0;transition:opacity 2.4s var(--ease) .4s}
.is-revealed .hero__glow{opacity:1}
.hero__panel{position:relative;z-index:2;width:min(720px,100%);padding:calc(84px + clamp(1.5rem,4vw,3rem)) var(--gutter) clamp(6rem,10vw,8rem);background:none}
.hero__panel .label{margin-bottom:1.75rem}
.hero__title{font-family:var(--font-display);font-size:clamp(3rem,1.2rem + 6.4vw,7.25rem);font-weight:500;letter-spacing:-.05em;line-height:.92;max-width:10ch;color:var(--onyx)}
.hero__title em{font-style:normal;color:var(--olive)}
.hero__sub{margin-top:1.75rem;font-size:var(--text-lg);color:#4A5154;max-width:38ch;line-height:1.45}
.hero__actions{display:flex;flex-wrap:wrap;align-items:center;gap:1.25rem 2rem;margin-top:2.25rem}
.hero__context{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;flex-wrap:wrap;gap:.4rem 2.5rem;padding:1.15rem var(--gutter);font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--linen);font-weight:500;background:rgba(47,50,52,.55);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(10px);border-top:1px solid rgba(255,248,242,.18)}
.hero__context span+span::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--tan);margin-right:2.5rem;vertical-align:middle;transform:translateY(-1px)}
.hero__caption{position:absolute;right:var(--gutter);bottom:4.25rem;z-index:2;font-size:var(--text-xs);color:rgba(255,248,242,.9);letter-spacing:.06em;text-shadow:0 1px 10px rgba(0,0,0,.35)}
.hero__panel > *{opacity:0;transform:translateY(14px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.is-revealed .hero__panel > *{opacity:1;transform:none}
.is-revealed .hero__panel > :nth-child(2){transition-delay:.12s}
.is-revealed .hero__panel > :nth-child(3){transition-delay:.24s}
.is-revealed .hero__panel > :nth-child(n+4){transition-delay:.36s}
@media (prefers-reduced-motion:reduce){.hero__panel > *{opacity:1;transform:none;transition:none}.hero__media img{transform:none;transition:none}}
@media (max-width:760px){
  .hero{min-height:auto;flex-direction:column;align-items:stretch;padding-bottom:0}
  .hero__media{position:relative;order:2;height:60svh;min-height:380px;margin-top:-3rem;z-index:0}
  .hero__media img{object-position:64% 60%}
  .hero__media::before{content:"";position:absolute;inset:0 0 auto;height:45%;z-index:1;background:linear-gradient(180deg,var(--linen),rgba(255,248,242,0))}
  .hero__veil{display:none}
  .hero__glow{width:120vw;left:10%;top:-50vw}
  .hero__panel{order:1;width:100%;padding:calc(72px + 2rem) var(--gutter) 1rem}
  .hero__context{position:relative;order:3;gap:.5rem 1.25rem;background:var(--onyx);letter-spacing:.14em}
  .hero__context span+span::before{display:none}
  .hero__caption{display:none}
}

/* ---------- perspective / chart ---------- */
.persp{display:grid;grid-template-columns:5fr 7fr;gap:clamp(2rem,6vw,6rem);align-items:start}
.persp__facts{display:grid;gap:2rem;margin-top:2.5rem}
.fact{border-top:1px solid var(--line);padding-top:1.25rem}
.fact__n{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:500;letter-spacing:-.035em;line-height:1}
.fact__n small{font-size:.45em;letter-spacing:0;margin-left:.2em;color:var(--color-muted)}
.fact p{margin-top:.5rem;font-size:var(--text-sm);color:var(--color-muted)}
.chart{background:var(--sage-100);border:1px solid var(--line);padding:clamp(1.25rem,3vw,2.5rem)}
.chart__head{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;align-items:baseline;margin-bottom:2rem}
.chart__head h3{font-size:var(--text-base);font-weight:600}
.chart__head span{font-size:var(--text-xs);color:var(--color-muted)}
.bars{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,3vw,2.5rem);align-items:end;height:300px;border-bottom:1px solid var(--line-strong);padding-inline:clamp(.5rem,2vw,2rem)}
.bar{display:flex;flex-direction:column;justify-content:flex-end;height:100%;gap:.6rem}
.bar__v{font-family:var(--font-display);font-size:var(--text-lg);font-weight:500;letter-spacing:-.02em}
.bar__b{background:var(--sage);height:0;transition:height 1.4s var(--ease);position:relative}
.bar:last-child .bar__b{background:var(--olive)}
.in .bar__b{height:var(--h)}
.bars__x{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,3vw,2.5rem);padding:.75rem clamp(.5rem,2vw,2rem) 0;font-size:var(--text-sm);font-weight:600}
.chart__note{margin-top:1.75rem;font-size:var(--text-xs);color:var(--color-muted);line-height:1.6}
.chart__note a{text-decoration:underline;text-decoration-color:var(--tan);text-underline-offset:3px}
@media (max-width:900px){.persp{grid-template-columns:1fr}.bars{height:220px}}

/* ---------- section head ---------- */
.shead{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:clamp(2.25rem,5vw,4rem);flex-wrap:wrap}
.shead .h2{margin-top:1rem;max-width:16ch}

/* ---------- property cards ---------- */
.pcard{display:flex;flex-direction:column;gap:1.1rem;position:relative}
.pcard__img{position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--linen-2)}
.pcard__img img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.pcard:hover .pcard__img img{transform:scale(1.035)}
.pcard__tag{position:absolute;left:1rem;top:1rem;background:var(--linen);font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:.45rem .7rem;border-radius:2px}
.pcard__tag--dark{background:var(--onyx);color:var(--linen)}
.pcard__save{position:absolute;right:1rem;top:1rem;width:44px;height:44px;border-radius:50%;background:rgba(255,248,242,.92);display:inline-flex;align-items:center;justify-content:center;z-index:2}
.pcard__save svg{width:18px;height:18px}
.pcard__save[aria-pressed="true"] svg{fill:var(--olive);stroke:var(--olive)}
.pcard__meta{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.pcard__loc{font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--color-muted)}
.pcard__title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:500;letter-spacing:-.015em;line-height:1.2;margin-top:.35rem}
.pcard__title a::after{content:"";position:absolute;inset:0;z-index:1}
.pcard__price{font-family:var(--font-display);font-weight:500;font-size:var(--text-lg);letter-spacing:-.01em;white-space:nowrap;font-variant-numeric:tabular-nums}
.pcard__price small{font-size:.62em;color:var(--color-muted);margin-right:.25rem;letter-spacing:.06em}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chip{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--text-xs);font-weight:500;padding:.38rem .7rem;border:1px solid var(--line);border-radius:2px;color:var(--onyx-2);font-variant-numeric:tabular-nums}
.chip svg{width:14px;height:14px;opacity:.75}
.pcard__feat{font-size:var(--text-sm);color:var(--color-muted);border-top:1px solid var(--line);padding-top:.9rem}

/* selected grid on home: 1 large + 2 */
.sel{display:grid;grid-template-columns:7fr 5fr;gap:clamp(1.5rem,3vw,3rem)}
.sel__side{display:grid;gap:clamp(1.5rem,3vw,3rem);align-content:start}
.sel .pcard--lg .pcard__img{aspect-ratio:5/4}
.sel__side .pcard__img{aspect-ratio:16/10}
@media (max-width:900px){.sel{grid-template-columns:1fr}}

/* ---------- off-plan feature ---------- */
.ofeat{display:grid;grid-template-columns:7fr 5fr;min-height:560px;background:var(--onyx);color:var(--linen);position:relative}
.ofeat__img{position:relative;overflow:hidden}
.ofeat__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ofeat__img figcaption{position:absolute;left:1rem;bottom:1rem;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;background:rgba(47,50,52,.7);padding:.35rem .6rem;color:var(--linen)}
.ofeat__body{padding:clamp(2rem,5vw,4.5rem);display:flex;flex-direction:column;gap:1.5rem}
.ofeat__body .h2{max-width:12ch}
.ofeat__body p{color:rgba(255,248,242,.72)}
.kv{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line-light);margin-top:auto}
.kv div{padding:1.1rem 0;border-bottom:1px solid var(--line-light)}
.kv dt{font-size:.7rem;text-transform:uppercase;letter-spacing:.16em;color:rgba(255,248,242,.6);font-weight:600}
.kv dd{font-family:var(--font-display);font-size:var(--text-lg);margin-top:.3rem;font-variant-numeric:tabular-nums}
.ofeat__actions{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}
.ofeat__actions .link-arrow{border-color:var(--tan);color:var(--linen)}
@media (max-width:900px){.ofeat{grid-template-columns:1fr}.ofeat__img{min-height:320px}}

/* ---------- services rows ---------- */
.svc{display:grid;grid-template-columns:6fr 5fr;gap:clamp(2rem,5vw,5rem);align-items:start}
.svc__list{list-style:none;border-top:1px solid var(--line-strong)}
.svc__row{border-bottom:1px solid var(--line-strong)}
.svc__row a{display:grid;grid-template-columns:4rem 1fr auto;align-items:center;gap:1rem;padding:clamp(1.25rem,2.5vw,2rem) 0;position:relative}
.svc__n{font-size:var(--text-sm);color:var(--bronze-ink);font-variant-numeric:tabular-nums;font-weight:600}
.svc__t{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;letter-spacing:-.025em;line-height:1.15;transition:transform var(--t-med)}
.svc__d{display:block;line-height:1.5;font-family:var(--font-body);font-size:var(--text-sm);color:var(--color-muted);letter-spacing:0;margin-top:.35rem;font-weight:400;max-width:44ch}
.svc__arr{width:48px;height:48px;border-radius:50%;border:1px solid var(--line-strong);display:inline-flex;align-items:center;justify-content:center;transition:background var(--t-fast),border-color var(--t-fast),transform var(--t-med)}
.svc__arr svg{width:18px;height:18px}
.svc__row a:hover .svc__t,.svc__row a:focus-visible .svc__t{transform:translateX(8px)}
.svc__row a:hover .svc__arr,.svc__row a.is-active .svc__arr{background:var(--sage);border-color:var(--sage);transform:rotate(-45deg)}
.svc__visual{position:sticky;top:110px;aspect-ratio:4/5;overflow:hidden;background:var(--linen-2)}
.svc__visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.04);transition:opacity 700ms var(--ease),transform 1.2s var(--ease)}
.svc__visual img.is-on{opacity:1;transform:scale(1)}
@media (max-width:900px){.svc{grid-template-columns:1fr}.svc__visual{display:none}.svc__row a{grid-template-columns:2.75rem 1fr auto}}

/* ---------- instagram reels ---------- */
.ig{background:var(--sand);overflow:hidden}
.ig__head{display:flex;justify-content:space-between;align-items:end;gap:1.5rem;flex-wrap:wrap;margin-bottom:2.5rem}
.ig__acct{display:flex;align-items:center;gap:1rem;margin-top:1.25rem}
.ig__avatar{width:56px;height:56px;border-radius:50%;background:var(--sage);display:flex;align-items:center;justify-content:center;flex:none;box-shadow:0 0 0 2px var(--sand),0 0 0 3px var(--tan)}
.ig__avatar svg{width:20px;color:var(--linen)}
.ig__acct b{display:block;font-weight:600}
.ig__acct span{font-size:var(--text-sm);color:var(--color-muted)}
.ig__head>div:first-child{max-width:760px}
.ig__head .h2{max-width:18ch}
.ig__ctrl{display:flex;gap:.5rem;align-items:center}
.icon-btn{width:48px;height:48px;border-radius:50%;border:1px solid var(--line-strong);display:inline-flex;align-items:center;justify-content:center}
.icon-btn svg{width:18px;height:18px}
.icon-btn:hover{background:var(--onyx);color:var(--linen);border-color:var(--onyx)}
.icon-btn:disabled{opacity:.35;pointer-events:none}
.reels{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 3 * 1.25rem) / 4);gap:1.25rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:.5rem;overscroll-behavior-x:contain}
.reels::-webkit-scrollbar{display:none}
@media (max-width:1100px){.reels{grid-auto-columns:calc((100% - 2 * 1rem) / 3);gap:1rem}}
@media (max-width:700px){.reels{grid-auto-columns:72%;gap:.85rem}}
.reel{scroll-snap-align:start;position:relative;aspect-ratio:9/16;overflow:hidden;background:var(--linen-3);display:block;text-align:left;color:var(--linen);border-radius:var(--radius)}
.reel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 4s linear}
.reel:hover img,.reel:focus-visible img{transform:scale(1.12)}
.reel::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(47,50,52,0) 45%,rgba(30,32,33,.82) 100%)}
.reel__top{position:absolute;top:.9rem;left:.9rem;right:.9rem;display:flex;justify-content:space-between;align-items:center;z-index:2;font-size:.72rem;font-weight:600;letter-spacing:.06em}
.reel__play{width:40px;height:40px;border-radius:50%;background:rgba(255,248,242,.18);backdrop-filter:blur(6px);display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,248,242,.35)}
.reel__play svg{width:14px;height:14px;fill:var(--linen);stroke:none;margin-left:2px}
.reel__bot{position:absolute;left:1rem;right:1rem;bottom:1rem;z-index:2}
.reel__cap{font-size:var(--text-sm);line-height:1.35;font-weight:500;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.reel__date{display:block;margin-top:.45rem;font-size:.72rem;color:rgba(255,248,242,.72)}
.reel__prog{position:absolute;left:0;bottom:0;height:2px;background:var(--sage);width:0;z-index:3}
.reel:hover .reel__prog{width:100%;transition:width 4s linear}
.skel{background:linear-gradient(90deg,var(--sand-2) 25%,#EDE5D6 50%,var(--sand-2) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite}
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
.ig__status{font-size:var(--text-xs);color:var(--color-muted);margin-top:1.25rem;display:flex;align-items:center;gap:.5rem}
.ig__status i{width:7px;height:7px;border-radius:50%;background:var(--olive);display:inline-block}

/* reel lightbox */
.rbox{position:fixed;inset:0;z-index:90;background:rgba(30,32,33,.92);display:grid;place-items:center;padding:1.25rem;opacity:0;visibility:hidden;transition:opacity var(--t-med),visibility var(--t-med)}
.rbox.is-open{opacity:1;visibility:visible}
.rbox__in{display:grid;grid-template-columns:auto 360px;max-height:calc(100svh - 2.5rem);background:var(--linen);border-radius:var(--radius);overflow:hidden;transform:translateY(16px) scale(.98);transition:transform var(--t-med)}
.rbox.is-open .rbox__in{transform:none}
.rbox__media{position:relative;height:min(78svh,760px);aspect-ratio:9/16;background:#111;overflow:hidden}
.rbox__media img{width:100%;height:100%;object-fit:cover;animation:kb 9s ease-in-out infinite alternate}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.14) translateY(-2%)}}
.rbox__bar{position:absolute;left:1rem;right:1rem;top:1rem;height:2px;background:rgba(255,248,242,.3);z-index:2}
.rbox__bar i{display:block;height:100%;background:var(--linen);width:0;animation:prog 9s linear infinite}
@keyframes prog{to{width:100%}}
.rbox__side{padding:2rem;display:flex;flex-direction:column;gap:1.25rem;overflow:auto}
.rbox__side .ig__acct{margin:0}
.rbox__cap{font-size:var(--text-base);line-height:1.55;white-space:pre-line}
.rbox__side .btns{margin-top:auto;display:grid;gap:.75rem}
.rbox__close{position:absolute;top:1rem;right:1rem;width:48px;height:48px;border-radius:50%;background:var(--linen);display:inline-flex;align-items:center;justify-content:center;z-index:3}
.rbox__close svg{width:20px;height:20px}
.rbox__nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;background:rgba(255,248,242,.14);color:var(--linen);display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,248,242,.3)}
.rbox__nav svg{width:18px;height:18px}
.rbox__nav--p{left:1.25rem}.rbox__nav--n{right:1.25rem}
@media (max-width:860px){.rbox{padding:0}.rbox__in{grid-template-columns:1fr;max-height:100svh;height:100svh;width:100%;border-radius:0}.rbox__media{height:auto;width:100%;aspect-ratio:auto;flex:1;min-height:0}.rbox__side{padding:1.25rem;gap:.85rem;max-height:42svh}.rbox__in{grid-template-rows:1fr auto}.rbox__nav{display:none}.rbox__cap{font-size:var(--text-sm)}}

/* ---------- credentials & testimonials ---------- */
.creds{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong)}
.cred{padding:2rem 1.5rem 2rem 0}
.cred+.cred{padding-left:1.5rem;border-left:1px solid var(--line)}
.cred__n{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:500;letter-spacing:-.035em;line-height:1;font-variant-numeric:tabular-nums}
.cred p{margin-top:.6rem;font-size:var(--text-sm);color:var(--color-muted)}
@media (max-width:860px){.creds{grid-template-columns:1fr 1fr}.cred:nth-child(3){padding-left:0;border-left:0}.cred:nth-child(n+3){border-top:1px solid var(--line)}}
.quotes{display:grid;grid-template-columns:7fr 5fr;gap:clamp(2rem,5vw,5rem);margin-top:clamp(3rem,6vw,5rem)}
.quote blockquote{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;letter-spacing:-.02em;line-height:1.25}
.quote--sm blockquote{font-size:var(--text-lg);line-height:1.4}
.quote figcaption{margin-top:1.25rem;font-size:var(--text-sm);color:var(--color-muted);display:flex;align-items:center;gap:.75rem}
.quote figcaption::before{content:"";width:28px;height:1px;background:var(--tan)}
@media (max-width:860px){.quotes{grid-template-columns:1fr}}

/* ---------- closing band ---------- */
.close{position:relative;background:var(--onyx);color:var(--linen);overflow:hidden}
.close__pattern{position:absolute;inset:0;color:#353839;opacity:1;pointer-events:none}
.close__pattern svg{width:100%;height:100%}
.close .wrap{position:relative}
.close__title{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:500;letter-spacing:-.04em;line-height:1;max-width:15ch}
.close__title span{color:var(--sage)}
.close__row{display:flex;flex-wrap:wrap;gap:1.5rem 3rem;align-items:center;margin-top:3rem}
.close__row p{font-size:var(--text-sm);color:rgba(255,248,242,.7);max-width:38ch}

/* ---------- footer ---------- */
.footer{background:#262829;color:rgba(255,248,242,.78);padding-block:clamp(3.5rem,6vw,5rem) 2rem;font-size:var(--text-sm)}
.footer__grid{display:grid;grid-template-columns:4fr 2fr 2fr 3fr;gap:2.5rem}
.footer .brand{color:var(--linen)}
.footer .brand__mark{color:var(--sage)}
.footer .brand__word span{color:rgba(255,248,242,.55)}
.footer h2{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.18em;color:var(--tan);font-weight:600;margin-bottom:1rem}
.footer ul{list-style:none;display:grid;gap:.6rem}
.footer a:hover{color:var(--linen)}
.footer__about{margin-top:1.25rem;max-width:36ch;line-height:1.6}
.footer__rera{margin-top:3rem;padding-top:1.75rem;border-top:1px solid var(--line-light);display:flex;align-items:center;gap:1.25rem 1.5rem;flex-wrap:wrap}
.footer__rera-card{flex:none;display:block;width:150px;border-radius:6px;overflow:hidden;box-shadow:0 0 0 1px rgba(255,248,242,.12);transition:transform .3s var(--ease)}
.footer__rera-card:hover{transform:translateY(-2px)}
.footer__rera-card img{display:block;width:100%;height:auto}
.footer__rera-txt{min-width:0;flex:1 1 280px}
.footer .footer__rera-txt h2{margin-bottom:.4rem}
.footer__rera-txt p{font-size:var(--text-xs);line-height:1.6;color:rgba(255,248,242,.7);max-width:70ch}
.footer__rera-txt b{color:var(--linen);font-weight:600}
.footer__rera-link{display:inline-block;margin-top:.45rem;font-size:var(--text-xs);color:var(--sage);text-decoration:underline;text-decoration-color:rgba(173,191,152,.4);text-underline-offset:3px}
.footer__legal{margin-top:1.75rem;padding-top:1.5rem;border-top:1px solid var(--line-light);display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between;font-size:var(--text-xs);color:rgba(255,248,242,.55)}
.footer__legal b{color:rgba(255,248,242,.85);font-weight:600}
.social{display:flex;gap:.5rem;margin-top:1.5rem}
.social a{width:44px;height:44px;border:1px solid var(--line-light);border-radius:50%;display:inline-flex;align-items:center;justify-content:center}
.social a:hover{background:var(--sage);color:var(--onyx);border-color:var(--sage)}
.social svg{width:18px;height:18px}
@media (max-width:860px){.footer__grid{grid-template-columns:1fr 1fr}.footer__grid>div:first-child{grid-column:1/-1}}

/* ---------- page hero (interior) ---------- */
.phero{padding-top:calc(84px + clamp(3rem,7vw,6rem));padding-bottom:clamp(2.5rem,5vw,4rem)}
.phero .h1{margin-top:1.25rem;max-width:14ch}
.phero .lede{margin-top:1.5rem}
.crumbs{display:flex;gap:.5rem;font-size:var(--text-xs);color:var(--color-muted);flex-wrap:wrap}
.crumbs a{text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:3px}
.crumbs a:hover{color:var(--onyx)}

/* ---------- listings ---------- */
.filters{position:sticky;top:68px;z-index:20;background:rgba(255,248,242,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-block:1px solid var(--line);padding-block:1rem}
.filters__row{display:flex;gap:.75rem;align-items:end;flex-wrap:wrap}
.field{display:flex;flex-direction:column;gap:.35rem;min-width:0}
.field label,.field .flabel{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--color-muted)}
.select,.input{appearance:none;-webkit-appearance:none;height:48px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--linen) no-repeat right .85rem center/14px;padding:0 2.4rem 0 .9rem;font-size:var(--text-sm);min-width:150px;color:var(--onyx)}
.select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232F3234' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}
.input{padding-right:.9rem}
.select:hover,.input:hover{border-color:var(--onyx)}
.select:focus,.input:focus,.textarea:focus{outline:none;border-color:var(--olive);box-shadow:0 0 0 3px rgba(113,138,88,.2)}
.filters__more{display:none}
.results{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin:2rem 0 1.5rem}
.results__count{font-size:var(--text-sm);color:var(--color-muted)}
.results__count b{color:var(--onyx);font-variant-numeric:tabular-nums}
.active-chips{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.achip{display:inline-flex;align-items:center;gap:.4rem;background:var(--sage-200);font-size:var(--text-xs);font-weight:600;padding:.45rem .5rem .45rem .75rem;border-radius:2px;min-height:32px}
.achip button{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%}
.achip button:hover{background:rgba(47,50,52,.12)}
.achip svg{width:12px;height:12px}
.reset{font-size:var(--text-xs);font-weight:600;text-decoration:underline;text-underline-offset:3px;padding:.5rem}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,3.5vw,3.25rem) clamp(1.25rem,3vw,2.5rem)}
@media (max-width:760px){.grid2{grid-template-columns:1fr}}
.assist{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr auto;gap:1.5rem 2rem;align-items:center;background:var(--sage-200);padding:clamp(1.5rem,3vw,2.25rem) clamp(1.5rem,3vw,2.5rem);position:relative;overflow:hidden}
.assist__mark{width:36px;color:var(--olive)}
.assist h3{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;letter-spacing:-.02em}
.assist p{font-size:var(--text-sm);color:var(--onyx-2);margin-top:.35rem}
@media (max-width:760px){.assist{grid-template-columns:1fr}.assist__mark{display:none}}
.empty{grid-column:1/-1;text-align:center;padding:5rem 1rem;border:1px dashed var(--line-strong);display:flex;flex-direction:column;align-items:center;gap:1rem}
.empty svg{width:44px;color:var(--tan)}
.empty p{color:var(--color-muted);max-width:40ch}
.sheet-btn{display:none}
@media (max-width:860px){
  .filters__row .field:not(.field--keep){display:none}
  .sheet-btn{display:inline-flex}
  .filters__row{flex-wrap:nowrap}
  .filters__row .field--keep{flex:1}
  .filters__row .field--keep .select{min-width:0;width:100%}
}
/* bottom sheet */
.sheet{position:fixed;inset:0;z-index:85;visibility:hidden}
.sheet.is-open{visibility:visible}
.sheet__scrim{position:absolute;inset:0;background:rgba(30,32,33,.5);opacity:0;transition:opacity var(--t-med)}
.sheet.is-open .sheet__scrim{opacity:1}
.sheet__panel{position:absolute;left:0;right:0;bottom:0;background:var(--linen);border-radius:12px 12px 0 0;padding:1.25rem var(--gutter) 1.5rem;transform:translateY(100%);transition:transform 520ms var(--ease);max-height:88svh;overflow:auto;display:grid;gap:1rem}
.sheet.is-open .sheet__panel{transform:none}
.sheet__grab{width:44px;height:4px;border-radius:4px;background:var(--line-strong);margin:0 auto .5rem}
.sheet__panel .select{width:100%}
.sheet__actions{display:grid;grid-template-columns:1fr 2fr;gap:.75rem;margin-top:.5rem;position:sticky;bottom:0;background:var(--linen);padding-top:.5rem}

/* ---------- property detail ---------- */
.gallery{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:.6rem;height:min(72svh,640px)}
.gallery button{position:relative;overflow:hidden;background:var(--linen-2);padding:0;display:block;width:100%;height:100%}
.gallery button:first-child{grid-row:1/3}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.gallery button:hover img{transform:scale(1.03)}
.gallery__all{position:absolute;right:1rem;bottom:1rem;background:var(--linen);font-size:var(--text-xs);font-weight:600;padding:.6rem .9rem;border-radius:2px;display:inline-flex;gap:.5rem;align-items:center}
.gallery__all svg{width:14px;height:14px}
@media (max-width:760px){.gallery{grid-template-columns:1fr;grid-template-rows:auto;height:auto}.gallery button:first-child{grid-row:auto;aspect-ratio:4/3}.gallery button:not(:first-child){display:none}}
.pd{display:grid;grid-template-columns:1fr 380px;gap:clamp(2rem,5vw,5rem);align-items:start;margin-top:clamp(2rem,4vw,3.5rem)}
.pd__title{display:flex;justify-content:space-between;align-items:flex-start;gap:1.5rem;flex-wrap:wrap}
.pd__title .h2{max-width:18ch;margin-top:.75rem}
.pd__price{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap}
.pd__price small{display:block;font-family:var(--font-body);font-size:var(--text-xs);color:var(--color-muted);letter-spacing:.02em;font-weight:400;margin-top:.3rem;text-align:right}
.facts{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--line-strong);margin-top:2rem}
.facts div{padding:1.25rem 1rem 1.25rem 0}
.facts div+div{padding-left:1rem;border-left:1px solid var(--line)}
.facts dt{font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;color:var(--color-muted);font-weight:600}
.facts dd{font-family:var(--font-display);font-size:var(--text-lg);font-weight:500;margin-top:.35rem;font-variant-numeric:tabular-nums}
@media (max-width:600px){.facts{grid-template-columns:1fr 1fr}.facts div:nth-child(3){padding-left:0;border-left:0}.facts div:nth-child(n+3){border-top:1px solid var(--line)}}
.pd__sec{padding-block:clamp(2rem,4vw,3rem);border-bottom:1px solid var(--line)}
.pd__sec h2{font-size:var(--text-lg);font-weight:600;margin-bottom:1.25rem}
.pd__sec p+p{margin-top:1rem}
.amen{display:grid;grid-template-columns:1fr 1fr;gap:.75rem 2rem;list-style:none}
.amen li{display:flex;gap:.75rem;align-items:center;font-size:var(--text-sm);padding:.6rem 0;border-bottom:1px solid var(--line)}
.amen svg{width:18px;height:18px;color:var(--olive);flex:none}
@media (max-width:600px){.amen{grid-template-columns:1fr}}
.plan{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;background:var(--sage-100);border:1px solid var(--line);padding:1.5rem}
.plan svg{width:64px;color:var(--olive)}
.map{aspect-ratio:16/8;border:1px solid var(--line);overflow:hidden;background:var(--sage-100)}
.map iframe{width:100%;height:100%;border:0;filter:grayscale(.6) sepia(.15) contrast(.95)}
.dlist{display:grid;grid-template-columns:1fr 1fr;gap:0 2rem}
.dlist div{display:flex;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--line);font-size:var(--text-sm)}
.dlist dt{color:var(--color-muted)}
.dlist dd{font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
@media (max-width:600px){.dlist{grid-template-columns:1fr}}
.enq{position:sticky;top:96px;border:1px solid var(--line-strong);background:var(--linen);padding:1.75rem}
.enq h2{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;letter-spacing:-.02em;line-height:1.15}
.enq p{font-size:var(--text-sm);color:var(--color-muted);margin-top:.6rem}
.enq__btns{display:grid;gap:.75rem;margin-top:1.5rem}
.enq__ref{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--line);font-size:var(--text-xs);color:var(--color-muted);display:flex;justify-content:space-between}
.hours{display:flex;gap:.5rem;align-items:flex-start;font-size:var(--text-xs);color:var(--color-muted);margin-top:1rem;line-height:1.5}
.hours i{width:7px;height:7px;border-radius:50%;background:var(--olive);margin-top:.4rem;flex:none}
.hours.is-closed i{background:var(--bronze)}
@media (max-width:1000px){.pd{grid-template-columns:1fr}.enq{position:static}}
.mbar{display:none}
@media (max-width:1000px){
  .mbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;background:rgba(255,248,242,.96);backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:.75rem var(--gutter) calc(.75rem + env(safe-area-inset-bottom));gap:.75rem;align-items:center;justify-content:space-between;transform:translateY(110%);transition:transform var(--t-med)}
  .mbar.is-on{transform:none}
  .mbar b{font-family:var(--font-display);font-size:var(--text-lg);font-weight:500}
  .mbar small{display:block;font-size:.7rem;color:var(--color-muted)}
  body.has-mbar .footer{padding-bottom:6rem}
}

/* image viewer */
.viewer{position:fixed;inset:0;z-index:95;background:rgba(24,26,27,.96);display:flex;flex-direction:column;opacity:0;visibility:hidden;transition:opacity var(--t-med),visibility var(--t-med);color:var(--linen)}
.viewer.is-open{opacity:1;visibility:visible}
.viewer__top{display:flex;justify-content:space-between;align-items:center;padding:1rem var(--gutter);font-size:var(--text-sm)}
.viewer__stage{flex:1;display:flex;align-items:center;justify-content:center;padding:0 4.5rem 2rem;min-height:0;position:relative}
.viewer__stage img{max-height:100%;max-width:100%;object-fit:contain;background:none}
.viewer .rbox__nav{position:absolute}
.viewer .rbox__close{position:static;color:var(--onyx)}
@media (max-width:760px){.viewer__stage{padding:0 0 1rem}.viewer .rbox__nav{display:inline-flex;top:auto;bottom:1.5rem;transform:none;background:rgba(24,26,27,.6)}}

/* ---------- off-plan ---------- */
.fchips{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.fchip{min-height:40px;padding:.5rem 1rem;border:1px solid var(--line-strong);border-radius:999px;font-size:var(--text-sm);font-weight:500}
.fchip:hover{border-color:var(--onyx)}
.fchip[aria-pressed="true"]{background:var(--onyx);color:var(--linen);border-color:var(--onyx)}
.fgroup{display:flex;gap:1rem 1.5rem;align-items:center;flex-wrap:wrap;padding-block:1rem;border-bottom:1px solid var(--line)}
.fgroup>span{font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;color:var(--color-muted);font-weight:600;min-width:90px}
.proj{display:grid;grid-template-columns:7fr 5fr;border:1px solid var(--line-strong);background:var(--linen);position:relative}
.proj+.proj{margin-top:clamp(1.5rem,3vw,2.5rem)}
.proj__img{position:relative;overflow:hidden;min-height:440px}
.proj__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.proj:hover .proj__img img{transform:scale(1.03)}
.proj__img figcaption{position:absolute;left:1rem;bottom:1rem;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;background:rgba(255,248,242,.9);padding:.35rem .6rem;color:var(--onyx)}
.proj__body{padding:clamp(1.5rem,3.5vw,3rem);display:flex;flex-direction:column;gap:1.1rem}
.proj__dev{font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--color-muted)}
.proj__body h2{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:500;letter-spacing:-.03em;line-height:1}
.proj__body h2 a::after{content:"";position:absolute;inset:0;z-index:1}
.proj .kv{border-color:var(--line)}
.proj .kv div{border-color:var(--line)}
.proj .kv dt{color:var(--color-muted)}
.proj__actions{display:flex;flex-wrap:wrap;gap:.75rem;position:relative;z-index:2}
.gv{display:flex;gap:.6rem;align-items:flex-start;font-size:var(--text-xs);background:var(--sand);padding:.75rem .9rem;color:var(--onyx-2);line-height:1.5}
.gv svg{width:16px;height:16px;color:var(--bronze);flex:none;margin-top:.1rem}
@media (max-width:900px){.proj{grid-template-columns:1fr}.proj__img{min-height:300px}}

.ptable{width:100%;font-size:var(--text-sm)}
.ptable th,.ptable td{text-align:left;padding:.9rem 0;border-bottom:1px solid var(--line)}
.ptable th{font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;color:var(--color-muted);font-weight:600}
.ptable td:last-child,.ptable th:last-child{text-align:right;font-variant-numeric:tabular-nums}
.pbar{display:flex;height:10px;margin:1.25rem 0 .5rem;gap:3px}
.pbar i{display:block;height:100%}
.timeline{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;position:relative}
.timeline li{border-top:2px solid var(--line-strong);padding-top:1rem;font-size:var(--text-sm)}
.timeline li.done{border-color:var(--olive)}
.timeline b{display:block;font-family:var(--font-display);font-size:var(--text-lg);font-weight:500;margin-bottom:.25rem}
@media (max-width:600px){.timeline{grid-template-columns:1fr 1fr}}
.phero--img{position:relative;padding:0;height:min(78svh,720px);display:flex;align-items:flex-end;color:var(--linen);overflow:hidden}
.phero--img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.phero--img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(30,32,33,.25) 0%,rgba(30,32,33,0) 30%,rgba(30,32,33,.7) 100%)}
.phero--img .wrap{position:relative;z-index:2;padding-bottom:clamp(2rem,5vw,4rem)}
.phero--img .h1{color:var(--linen);margin-top:1rem;max-width:14ch}
.phero--img .crumbs{color:rgba(255,248,242,.8)}
.phero--img .crumbs a{text-decoration-color:rgba(255,248,242,.4)}
.phero--img .label{color:rgba(255,248,242,.85)}

/* ---------- services page ---------- */
.svcp{display:grid;grid-template-columns:5fr 7fr;gap:clamp(2rem,6vw,6rem);align-items:center;padding-block:clamp(3.5rem,7vw,6rem);border-top:1px solid var(--line-strong)}
.svcp:nth-of-type(even) .svcp__img{order:2}
.svcp__img{aspect-ratio:4/5;overflow:hidden}
.svcp__img img{width:100%;height:100%;object-fit:cover}
.svcp h2{margin-top:1rem}
.svcp ul{list-style:none;margin-top:1.75rem;border-top:1px solid var(--line)}
.svcp li{display:flex;gap:.9rem;padding:.85rem 0;border-bottom:1px solid var(--line);font-size:var(--text-sm)}
.svcp li svg{width:18px;height:18px;color:var(--olive);flex:none;margin-top:.15rem}
.svcp .btn{margin-top:2rem}
@media (max-width:900px){.svcp{grid-template-columns:1fr}.svcp:nth-of-type(even) .svcp__img{order:0}.svcp__img{aspect-ratio:16/10}}
.subnav{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:2rem}

/* ---------- about ---------- */
.story{display:grid;grid-template-columns:6fr 6fr;gap:clamp(2rem,6vw,6rem);align-items:center}
.story__img{aspect-ratio:4/5;overflow:hidden;position:relative}
.story__img img{width:100%;height:100%;object-fit:cover}
.story p+p{margin-top:1.1rem}
.principles{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line-strong)}
.principles li{padding:2rem 2rem 2rem 0}
.principles li+li{padding-left:2rem;border-left:1px solid var(--line)}
.principles b{display:block;font-size:var(--text-sm);color:var(--bronze-ink);font-weight:600;margin-bottom:2.5rem}
.principles h3{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;letter-spacing:-.02em;margin-bottom:.75rem}
.principles p{color:var(--color-muted);font-size:var(--text-sm)}
@media (max-width:900px){.story{grid-template-columns:1fr}.principles{grid-template-columns:1fr}.principles li+li{padding-left:0;border-left:0;border-top:1px solid var(--line)}}
.pattern-band{position:relative;background:var(--sage);color:var(--onyx);overflow:hidden}
.pattern-band .close__pattern{color:#B8C9A5}

/* ---------- contact ---------- */
.contact{display:grid;grid-template-columns:5fr 6fr;gap:clamp(2rem,6vw,6rem);align-items:start}
.cinfo{display:grid;gap:0;border-top:1px solid var(--line-strong)}
.cinfo div{padding:1.25rem 0;border-bottom:1px solid var(--line)}
.cinfo dt{font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;color:var(--color-muted);font-weight:600}
.cinfo dd{margin-top:.35rem;font-size:var(--text-base)}
.cinfo a{text-decoration:underline;text-decoration-color:var(--tan);text-underline-offset:3px}
.cform{background:var(--sage-100);border:1px solid var(--line);padding:clamp(1.5rem,4vw,3rem)}
@media (max-width:900px){.contact{grid-template-columns:1fr}}

/* ---------- callback form (shared) ---------- */
.form{display:grid;gap:1.1rem}
.form .row2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form .field .input,.form .field .select,.form .textarea{width:100%;min-width:0}
.textarea{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--linen);padding:.8rem .9rem;font-size:var(--text-sm);min-height:96px;resize:vertical}
.req{color:var(--bronze-ink)}
.opt{font-weight:400;text-transform:none;letter-spacing:0;color:var(--color-muted)}
.phone{display:grid;grid-template-columns:118px 1fr;gap:.5rem}
.phone .select{min-width:0;padding-right:2rem}
.err{font-size:var(--text-xs);color:#9A3B2E;display:none}
.field.is-invalid .input{border-color:#9A3B2E;box-shadow:0 0 0 3px rgba(154,59,46,.12)}
.field.is-invalid .err{display:block}
.ctx{display:flex;gap:.75rem;align-items:center;background:var(--linen);border:1px solid var(--line);padding:.75rem;font-size:var(--text-sm)}
.ctx img{width:56px;height:42px;object-fit:cover;flex:none}
.ctx small{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.14em;color:var(--color-muted);font-weight:600}
.consent{font-size:var(--text-xs);color:var(--color-muted);line-height:1.5}
.form .btn[aria-busy="true"]{pointer-events:none;opacity:.85}
.spinner{width:16px;height:16px;border:2px solid rgba(47,50,52,.25);border-top-color:var(--onyx);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.formerr{display:none;background:#F6E7E2;color:#7A2E22;font-size:var(--text-sm);padding:.75rem .9rem;border-radius:var(--radius)}
.formerr.is-on{display:block}
@media (max-width:520px){.form .row2{grid-template-columns:1fr}}

/* success */
.success{display:none;text-align:left}
.success.is-on{display:block;animation:rise .6s var(--ease)}
.success__mark{width:64px;height:64px;border-radius:50%;background:var(--sage);display:flex;align-items:center;justify-content:center;margin-bottom:1.5rem}
.success__mark svg{width:28px;height:28px;stroke-dasharray:30;stroke-dashoffset:30;animation:draw .6s .2s var(--ease) forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.success h3{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;letter-spacing:-.02em}
.summary{margin-top:1.5rem;border-top:1px solid var(--line)}
.summary div{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--line);font-size:var(--text-sm)}
.summary dt{color:var(--color-muted)}
.summary dd{font-weight:600;text-align:right}
.slots{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-top:.75rem}
.slot{min-height:44px;border:1px solid var(--line-strong);border-radius:var(--radius);font-size:var(--text-sm);font-weight:500}
.slot:hover{border-color:var(--onyx)}
.slot[aria-pressed="true"]{background:var(--onyx);color:var(--linen);border-color:var(--onyx)}

/* modal */
.modal{position:fixed;inset:0;z-index:92;display:grid;place-items:center;padding:1rem;visibility:hidden}
.modal.is-open{visibility:visible}
.modal__scrim{position:absolute;inset:0;background:rgba(30,32,33,.55);opacity:0;transition:opacity var(--t-med)}
.modal.is-open .modal__scrim{opacity:1}
.modal__panel{position:relative;width:min(560px,100%);max-height:calc(100svh - 2rem);overflow:auto;background:var(--linen);border-radius:4px;padding:clamp(1.5rem,4vw,2.5rem);opacity:0;transform:translateY(24px);transition:opacity var(--t-med),transform var(--t-med);box-shadow:0 40px 80px -30px rgba(20,22,23,.5)}
.modal.is-open .modal__panel{opacity:1;transform:none}
.modal__head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem}
.modal__head h2{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;letter-spacing:-.02em;line-height:1.1}
.modal__head p{font-size:var(--text-sm);color:var(--color-muted);margin-top:.5rem}
.modal__x{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;flex:none}
.modal__x:hover{background:var(--linen-2)}
.modal__x svg{width:18px;height:18px}
@media (max-width:600px){.modal{place-items:end center;padding:0}.modal__panel{width:100%;border-radius:12px 12px 0 0;max-height:94svh;transform:translateY(100%)}}

/* ---------- reveal ---------- */
.rv{opacity:0;transform:translateY(22px);transition:opacity 900ms var(--ease),transform 900ms var(--ease)}
.rv.in{opacity:1;transform:none}
.rv-d1{transition-delay:90ms}.rv-d2{transition-delay:180ms}.rv-d3{transition-delay:270ms}
.rv-img>img{clip-path:inset(0 0 100% 0);transition:clip-path 1.3s var(--ease),opacity 700ms var(--ease),transform 1.2s var(--ease)}
.rv-img.in>img{clip-path:inset(0 0 0 0)}
@media (prefers-reduced-motion:reduce){.rv,.rv-img>img{opacity:1;transform:none;clip-path:none}}
.no-js .rv{opacity:1;transform:none}

/* ---------- splash ---------- */
.splash{position:fixed;inset:0;z-index:200;background:var(--linen);cursor:pointer}
.splash canvas{position:absolute;inset:0;width:100%;height:100%}
.splash__skip{position:absolute;right:var(--gutter);bottom:1.75rem;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:rgba(47,50,52,.6);padding:.75rem 0 .75rem 1rem;z-index:2;transition:opacity .3s}
.splash__skip:hover{color:var(--onyx)}
.splash__word{position:absolute;left:0;right:0;text-align:center;color:var(--onyx);font-family:var(--font-display);opacity:0;transition:opacity .5s var(--ease);pointer-events:none}
.splash__word b{display:block;font-weight:700;letter-spacing:.42em;font-size:clamp(.9rem,1.4vw,1.15rem);padding-left:.42em}
.splash__word span{display:block;font-size:.62rem;letter-spacing:.6em;color:var(--bronze);margin-top:.6rem;padding-left:.6em}
.splash.is-word .splash__word{opacity:1}
.splash.is-out .splash__word,.splash.is-out .splash__skip{opacity:0}
html.splash-on body{overflow:hidden}
html.splash-on .header{opacity:0}
.header{transition:opacity .8s var(--ease),background var(--t-med),box-shadow var(--t-med),transform var(--t-med)}
.ctx[hidden],[hidden]{display:none!important}
/* about: founders + vision/mission */
.founders{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--line)}
.founders dt{font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted);font-weight:600}
.founders dd{margin:.35rem 0 0;font-family:var(--font-display);font-size:var(--text-lg);font-weight:500;letter-spacing:-.015em;color:var(--onyx)}
.vm{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,2vw,1.5rem);margin-top:clamp(2rem,4vw,3rem)}
.vm__card{background:#F2EAE2;padding:clamp(1.75rem,4vw,3rem);border-radius:4px}
.vm__card h3{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;line-height:1.15;letter-spacing:-.02em;margin:1rem 0 1.25rem;max-width:22ch}
.vm__card p{max-width:60ch}.vm__card p+p{margin-top:1rem}
.vm__card--dark{background:var(--onyx);color:var(--linen)}
.vm__card--dark p{color:rgba(255,248,242,.78)}
.vm__card--dark .label{color:var(--sage)}
@media (max-width:820px){.vm{grid-template-columns:1fr}}
.cred__n--t{font-size:var(--text-xl);line-height:1.1;padding-top:.4rem;max-width:12ch}
.vm__card h3{max-width:26ch}
/* RERA credential band */
.hero__rera{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.5rem;padding:.5rem .85rem .5rem .65rem;border:1px solid var(--olive);border-radius:999px;font-size:var(--text-xs);font-weight:600;letter-spacing:.02em;color:var(--olive-ink,#4F6340);background:rgba(173,191,152,.14);text-decoration:none;transition:background var(--t-fast,.2s)}
.hero__rera:hover{background:rgba(173,191,152,.3)}
.hero__rera svg{width:18px;height:18px;flex:none}
.rera{background:var(--linen-2);color:var(--onyx);padding:clamp(2.25rem,4.5vw,3.5rem) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.rera__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,300px);gap:clamp(2rem,5vw,4.5rem);align-items:center}
.rera .label{color:var(--olive-ink)}
.rera .label::after{display:none}
.rera__title{margin-top:.75rem;font-family:var(--font-display);font-size:var(--text-lg);font-weight:500;letter-spacing:-.015em;line-height:1.3;max-width:40ch}
.rera .lede{margin-top:.6rem;font-size:var(--text-sm);line-height:1.55;color:var(--color-muted);max-width:60ch}
.rera__dl{display:grid;grid-template-columns:repeat(4,minmax(0,auto));justify-content:start;gap:.5rem clamp(1.25rem,3vw,2.5rem);margin:1.25rem 0 1.1rem;padding-top:1rem;border-top:1px solid var(--line)}
.rera__dl dt{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted);font-weight:600}
.rera__dl dd{margin:.25rem 0 0;font-size:var(--text-sm);font-weight:600;color:var(--onyx)}
.rera .link-arrow{color:var(--onyx);font-size:var(--text-sm)}
.rera__card{margin:0;justify-self:end;width:100%}
.rera__card img{display:block;width:100%;height:auto;border-radius:8px;box-shadow:0 10px 26px -16px rgba(47,50,52,.35),0 0 0 1px rgba(47,50,52,.08);transition:transform .5s var(--ease,ease)}
.rera__card:hover img{transform:translateY(-2px)}
.rera__card figcaption{margin-top:.6rem;font-size:.7rem;color:var(--color-muted);text-align:center}
@media (max-width:900px){.rera__grid{grid-template-columns:1fr}.rera__card{justify-self:start;max-width:280px}.rera__card figcaption{text-align:left}.rera__dl{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (prefers-reduced-motion:reduce){.rera__card:hover img{transform:none}}
.rbox__media video{display:block;width:100%;height:100%;object-fit:cover;background:#000}
.rbox.has-video .rbox__bar{display:none}

/* ---------- FAQ ---------- */
.faq__in{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,5vw,6rem);align-items:start}
.faq__in > .rv{position:sticky;top:110px}
.faq__list{border-top:1px solid var(--line)}
.faq__item{border-bottom:1px solid var(--line)}
.faq__item summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.4rem 0;cursor:pointer}
.faq__item summary::-webkit-details-marker{display:none}
.faq__q{font-size:var(--text-lg);font-weight:500;letter-spacing:-.01em;line-height:1.3}
.faq__ic{position:relative;flex:none;width:18px;height:18px}
.faq__ic::before,.faq__ic::after{content:"";position:absolute;left:0;top:50%;width:18px;height:1.5px;background:currentColor;transition:transform .3s ease}
.faq__ic::after{transform:rotate(90deg)}
.faq__item[open] .faq__ic::after{transform:rotate(0)}
.faq__item summary:focus-visible{outline:2px solid var(--olive);outline-offset:4px}
.faq__a{padding:0 2.5rem 1.6rem 0;color:var(--color-muted);line-height:1.65;max-width:62ch}
.faq__a a{color:var(--color-text);text-decoration:underline;text-decoration-color:var(--tan);text-underline-offset:3px}
@media (max-width:900px){.faq__in{grid-template-columns:1fr}.faq__in > .rv{position:static}.faq__a{padding-right:0}}
