/* ============================================================
   URBANNEST REALTY — Premium Real Estate · Noida
   Design system & styles
   Identity: graphite ink × signal blue × paper · property INDEX, not brochure
   Display: Familjen Grotesk (400/500/700) · Body: Spectral (400/500/600)
   ============================================================ */

/* ---------- Fonts (self-hosted, no third-party requests) ---------- */
/* Familjen Grotesk ships 400/500/700 — there is no 600. Every rule that used to ask for
   600 now names 500 or 700 explicitly (700 where the old semibold was carrying a small
   label or a control, 500 where it was a quiet mid-step), so nothing is synthesised. */
@font-face{font-family:"Familjen Grotesk";font-style:normal;font-weight:400;font-display:swap;src:url("../assets/fonts/familjen-grotesk-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Familjen Grotesk";font-style:normal;font-weight:500;font-display:swap;src:url("../assets/fonts/familjen-grotesk-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Familjen Grotesk";font-style:normal;font-weight:700;font-display:swap;src:url("../assets/fonts/familjen-grotesk-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"Spectral";font-style:normal;font-weight:400;font-display:swap;src:url("../assets/fonts/spectral-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Spectral";font-style:normal;font-weight:500;font-display:swap;src:url("../assets/fonts/spectral-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Spectral";font-style:normal;font-weight:600;font-display:swap;src:url("../assets/fonts/spectral-latin-600-normal.woff2") format("woff2")}

/* ---------- Tokens ---------- */
:root{
  /* palette */
  --paper:#F4F5F7;           /* page ground + alternate bands */
  --paper-2:#E9EBEF;         /* pressed / hover surfaces on paper */
  --surface:#FFFFFF;         /* rails, rows, inputs, white sections */
  --ink:#17181B;             /* graphite ink + dark sections */
  --ink-2:#212327;           /* raised surfaces on graphite */
  --blue:#2F5BEA;            /* signal blue — links, actions, markers */
  --blue-tint:rgba(47,91,234,.08);
  --blue-lt:#8AA6FF;         /* blue for text on graphite (≥ 4.5:1) */
  --muted:#5B606B;           /* secondary text on light (≥ 4.5:1) */
  --line:#DDDFE4;            /* hairline on light */
  --line-2:#C9CCD3;          /* stronger hairline */
  --line-dark:rgba(244,245,247,.16);
  --on-dark:#F4F5F7;
  --on-dark-muted:#B4B8C0;
  --body-ink:#33363D;        /* long-form paragraph ink */
  --whatsapp:#1E9C4E;
  --error:#B3261E;
  --success:#1F6B41;
  /* legacy aliases (kept so no rule silently loses its colour) */
  --white:var(--surface);--off:var(--paper);--off-2:var(--paper-2);
  --charcoal:var(--ink);--charcoal-2:var(--ink-2);

  /* typography */
  --font-head:"Familjen Grotesk",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --font-body:"Spectral",Georgia,"Times New Roman",serif;
  /* Familjen Grotesk sets a shorter cap (0.65em vs 0.71em) and a shorter x-height
     (0.50em vs 0.53em) than the grotesque it replaces, and runs ~9% narrower, so every
     display step goes up ~7% — uppercase labels ~9% — to hold the same optical size,
     and the tight negative tracking is relaxed by about a fifth for the same reason. */
  --text-hero:clamp(2.73rem,6.26vw,5.3rem);
  --text-h2:clamp(1.87rem,3.21vw,2.62rem);
  --text-h3:clamp(1.18rem,1.55vw,1.35rem);
  /* Spectral carries the same x-height as the serif it replaces (0.45em) and sets ~4%
     wider, so the reading sizes hold as they are; only the ch measures are recomputed. */
  --lead:clamp(1.1rem,1.32vw,1.28rem);
  --label:.74rem;

  /* spacing (4pt) */
  --s-1:.25rem;--s-2:.5rem;--s-3:.75rem;--s-4:1rem;--s-5:1.5rem;--s-6:2rem;--s-7:3rem;--s-8:4rem;--s-9:6rem;--s-10:8rem;
  --section-y:clamp(3.25rem,7vw,5.5rem);
  --container:1240px;--gutter:clamp(1.15rem,3.5vw,2.25rem);

  /* shape & motion */
  --r-sm:2px;--r-md:2px;--r-lg:3px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --dur-1:160ms;--dur-2:300ms;--dur-3:520ms;
  --shadow-sheet:0 -18px 40px -24px rgba(23,24,27,.45);
  --header-h:64px;--header-scrolled:64px;
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px);-webkit-text-size-adjust:100%}
html,body{overflow-x:clip}
body{font-family:var(--font-body);font-size:18.5px;line-height:1.58;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;font-variant-numeric:lining-nums proportional-nums;font-synthesis-weight:none}
img,svg,video,iframe{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul,ol{list-style:none}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:0}
.section--dark :focus-visible,.site-footer :focus-visible,.mobile-nav :focus-visible,.lightbox :focus-visible{outline-color:var(--blue-lt)}
::selection{background:var(--blue);color:#fff}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;top:-60px;left:1rem;z-index:1000;background:var(--blue);color:#fff;padding:.7rem 1rem;font-family:var(--font-head);font-weight:700;transition:top var(--dur-1) var(--ease)}
.skip-link:focus{top:1rem}

h1,h2,h3,h4{font-family:var(--font-head);font-weight:700;line-height:1.06;letter-spacing:-.022em}
h1{font-size:var(--text-hero)}
h2{font-size:var(--text-h2)}
h3{font-size:var(--text-h3);font-weight:500;letter-spacing:-.009em;line-height:1.2}
h4{font-weight:500}
h1 em,h2 em{font-style:normal;color:var(--blue);text-decoration:underline;text-decoration-thickness:.07em;text-underline-offset:.12em;text-decoration-color:rgba(47,91,234,.35)}
.section--dark h1 em,.section--dark h2 em,.cta-band h2 em,.page-hero--dark h1 em{color:var(--blue-lt);text-decoration-color:rgba(138,166,255,.35)}
p{max-width:57ch}
.lead{font-size:var(--lead);line-height:1.52;color:var(--body-ink)}
.eyebrow{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--font-head);font-size:var(--label);letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--blue)}
.eyebrow::before{content:"";width:10px;height:10px;background:var(--blue);flex:none}
.muted{color:var(--muted)}
.section--dark .muted{color:var(--on-dark-muted)}
.section--dark .eyebrow,.cta-band .eyebrow,.site-footer .eyebrow{color:var(--blue-lt)}
.section--dark .eyebrow::before,.cta-band .eyebrow::before,.site-footer .eyebrow::before{background:var(--blue-lt)}
.tnum{font-variant-numeric:lining-nums tabular-nums}

/* FIGURES. The grotesque this file used to set had a hostile `tnum`: it widened the
   digits AND swapped comma, period, colon and semicolon for full-figure-width variants,
   so "₹6.4 Cr" set as "₹6 . 4 Cr". Both new faces were measured for exactly that trap
   and both are clean — Familjen Grotesk and Spectral already draw every digit on one
   fixed advance (567/1000 and 500/1000 respectively) and their `tnum` leaves period and
   comma at their normal widths. Tabular figures are therefore safe on the money and area
   columns as well as on the bare numeral stacks, and that is where they now go: the
   index reads down a true column. Running text, headings and labels stay proportional
   so nothing gaps mid-sentence. */
h1,h2,h3,h4,.eyebrow,.prow__loc,.prow__cfg,.project__rera,
.floor-plan__bar,.agent__langs,.review footer,.footer-contact,.crumbs,
.pindex__foot,.pnum{font-variant-numeric:lining-nums proportional-nums}
/* the right-aligned columns — verified safe under tnum for both new faces */
.prow__area,.prow__price,.prop-price,.prop-price-box small,.fact b,.hours,
.project__facts b{font-variant-numeric:lining-nums tabular-nums}

.container{width:min(100% - 2*var(--gutter),var(--container));margin-inline:auto}
.container--wide{width:min(100% - 2*var(--gutter),1560px);margin-inline:auto}
.section{padding-block:var(--section-y)}
.section--white{background:var(--surface);color:var(--ink)}
.section--off{background:var(--paper);color:var(--ink)}
.section--dark{background:var(--ink);color:var(--on-dark)}
.section-head{max-width:760px;margin-bottom:clamp(1.75rem,3.5vw,2.75rem);padding-top:1.1rem;border-top:2px solid var(--ink)}
.section--dark .section-head{border-top-color:var(--on-dark)}
.section-head.center{margin-inline:auto;text-align:center}
.section-head.center .eyebrow::before{display:none}
.section-head h2{margin-top:.6rem}
.section-head p{margin-top:.75rem;color:var(--muted)}
.section--dark .section-head p{color:var(--on-dark-muted)}
.section-head.center p{margin-inline:auto}
.section-head.split{display:flex;justify-content:space-between;align-items:end;gap:1.5rem 2rem;max-width:none}
.section-head.split > div{max-width:640px}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:46px;padding:.7rem 1.35rem;font-family:var(--font-head);font-weight:700;font-size:.96rem;letter-spacing:-.005em;border-radius:var(--r-sm);border:1px solid transparent;transition:background var(--dur-1) var(--ease),color var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease);white-space:nowrap;line-height:1.2}
.btn svg{width:17px;height:17px}
.btn--primary{background:var(--blue);color:#fff;border-color:var(--blue)}
.btn--primary:hover{background:#2449C6;border-color:#2449C6}
.btn--dark{background:var(--ink);color:var(--on-dark);border-color:var(--ink)}
.btn--dark:hover{background:var(--ink-2)}
.btn--light{background:var(--surface);color:var(--ink);border-color:var(--surface)}
.btn--light:hover{background:var(--paper)}
.btn--outline-light{color:var(--on-dark);border-color:rgba(244,245,247,.45)}
.btn--outline-light:hover{background:rgba(244,245,247,.1);border-color:var(--on-dark)}
.btn--outline-dark{color:var(--ink);border-color:var(--line-2);background:var(--surface)}
.btn--outline-dark:hover{border-color:var(--ink);background:var(--paper)}
.btn--whatsapp{background:var(--whatsapp);color:#fff;border-color:var(--whatsapp)}
.btn--whatsapp:hover{background:#177f3f;border-color:#177f3f}
.btn--lg{min-height:54px;padding:.95rem 1.8rem;font-size:.98rem}
.btn--sm{min-height:40px;padding:.5rem 1rem;font-size:.83rem}
.btn--block{width:100%}
.btn[disabled],.btn[aria-busy="true"]{opacity:.65;cursor:progress}
.link-arrow{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--font-head);font-weight:700;font-size:.94rem;color:var(--blue);border-bottom:1px solid transparent;padding-bottom:2px}
.link-arrow svg{width:15px;height:15px;transition:transform var(--dur-1) var(--ease)}
.link-arrow:hover{border-bottom-color:currentColor}
.link-arrow:hover svg{transform:translateX(3px)}
.section--dark .link-arrow,.site-footer .link-arrow,.cta-band .link-arrow{color:var(--blue-lt)}

/* ---------- Icons, tags, flags ---------- */
.ic{width:1em;height:1em;stroke:currentColor;stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round;flex:none}
.tag{display:inline-flex;align-items:center;gap:.3rem;font-family:var(--font-head);font-size:.69rem;letter-spacing:.09em;text-transform:uppercase;font-weight:700;padding:.3rem .5rem;border-radius:0;line-height:1;white-space:nowrap}
.tag--key{background:var(--blue);color:#fff}
.tag--light{background:var(--surface);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
.tag--dark{background:var(--ink);color:var(--on-dark)}
.tag--outline{box-shadow:inset 0 0 0 1px var(--line-2);color:var(--muted)}
.tag--success{background:rgba(31,107,65,.1);color:var(--success)}

/* ---------- Header (flat, sticky, always solid — no photo scrim) ---------- */
.site-header{position:sticky;top:0;z-index:100;height:var(--header-h);display:flex;align-items:center;background:var(--surface);color:var(--ink);border-bottom:1px solid var(--line)}
.site-header::before{display:none}
.site-header.is-scrolled{box-shadow:0 1px 0 var(--line)}
.site-header .container--wide{display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.brand{display:flex;align-items:center;gap:.6rem;font-family:var(--font-head);font-weight:700;font-size:1.37rem;letter-spacing:-.02em;line-height:1}
.brand__mark{width:30px;height:30px;flex:none}
.brand small{display:block;font-family:var(--font-head);font-size:.61rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--muted);margin-top:.28rem}
.site-footer .brand small{color:var(--on-dark-muted)}
.nav{display:flex;align-items:center;gap:1.75rem}
.nav__links{display:flex;gap:1.5rem}
.nav__links a{position:relative;font-family:var(--font-head);font-size:.92rem;font-weight:500;letter-spacing:-.005em;padding:.45rem 0;color:var(--muted)}
.nav__links a::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:right;transition:transform var(--dur-2) var(--ease)}
.nav__links a:hover{color:var(--ink)}
.nav__links a:hover::after,.nav__links a[aria-current="page"]::after{transform:scaleX(1);transform-origin:left}
.nav__links a[aria-current="page"]{color:var(--ink);font-weight:500}
.nav__cta{display:flex;align-items:center;gap:.75rem}
.nav__phone{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-head);font-size:.88rem;font-weight:500;color:var(--muted);font-variant-numeric:lining-nums tabular-nums}
.nav__phone:hover{color:var(--ink)}
.nav__phone .ic{width:15px;height:15px}
.nav__toggle{display:none;width:46px;height:46px;align-items:center;justify-content:center;border:1px solid var(--line-2);border-radius:var(--r-sm)}
.nav__toggle span{display:block;width:20px;height:2px;background:currentColor;position:relative;transition:background var(--dur-1)}
.nav__toggle span::before,.nav__toggle span::after{content:"";position:absolute;left:0;width:20px;height:2px;background:currentColor;transition:transform var(--dur-2) var(--ease),top var(--dur-2) var(--ease)}
.nav__toggle span::before{top:-6px}.nav__toggle span::after{top:6px}
.nav__toggle[aria-expanded="true"] span{background:transparent}
.nav__toggle[aria-expanded="true"] span::before{top:0;transform:rotate(45deg)}
.nav__toggle[aria-expanded="true"] span::after{top:0;transform:rotate(-45deg)}

/* mobile drawer */
.mobile-nav{position:fixed;inset:0;z-index:90;background:var(--ink);color:var(--on-dark);padding:calc(var(--header-h) + 1.25rem) var(--gutter) 2rem;display:flex;flex-direction:column;gap:1.5rem;transform:translateX(100%);transition:transform var(--dur-2) var(--ease);overflow-y:auto;visibility:hidden}
.mobile-nav.is-open{transform:none;visibility:visible}
.mobile-nav__links a{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--font-head);font-weight:700;letter-spacing:-.015em;font-size:1.87rem;padding:.5rem 0;border-bottom:1px solid var(--line-dark)}
.mobile-nav__links a[aria-current="page"]{color:var(--blue-lt)}
.mobile-nav__meta{display:grid;gap:.9rem;font-size:1.02rem;color:var(--on-dark-muted)}
.mobile-nav__meta a,.mobile-nav__meta > span{display:flex;align-items:center;gap:.65rem;color:var(--on-dark)}
.mobile-nav__meta .ic{width:17px;height:17px;flex:none;color:var(--blue-lt)}
body.nav-open{overflow:hidden}

/* ---------- Home masthead: THE QUERY BUILDER ----------
   The first screen is the search. A scrimmed architectural photograph carries a
   sentence the visitor completes with inline native <select>s; a live count of the
   real listings sits under it and carries the selection into properties.html. */
.qhero{position:relative;background:var(--ink);color:var(--on-dark);border-bottom:1px solid var(--ink);overflow:hidden;isolation:isolate}
.qhero__media{position:absolute;inset:0;z-index:0}
.qhero__media img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;filter:grayscale(.72) contrast(.95) brightness(1.06)}
/* two scrims: a directional one that keeps the towers legible on the right, and a
   base wash that holds the sentence at ≥ 4.5:1 wherever the photograph goes pale */
.qhero__media::after{content:"";position:absolute;inset:0;background:
  linear-gradient(101deg,rgba(23,24,27,.95) 0%,rgba(23,24,27,.9) 34%,rgba(23,24,27,.6) 68%,rgba(23,24,27,.36) 100%),
  linear-gradient(180deg,rgba(23,24,27,.45) 0%,rgba(23,24,27,.2) 40%,rgba(23,24,27,.62) 100%)}
.qhero__inner{position:relative;z-index:1;padding-block:clamp(2.5rem,6vw,4.5rem) clamp(2.25rem,5vw,3.75rem)}
.qhero .eyebrow{color:var(--blue-lt)}
.qhero .eyebrow::before{background:var(--blue-lt)}
.qhero__title{margin-top:.85rem;max-width:16ch;font-size:clamp(1.36rem,2.3vw,2.06rem);font-weight:500;letter-spacing:-.014em;color:var(--on-dark)}
.qhero__title em{color:var(--blue-lt);text-decoration-color:rgba(138,166,255,.4)}

/* the sentence */
.qhero__builder{margin-top:clamp(1.5rem,3.5vw,2.5rem);max-width:min(100%,54rem);border-top:2px solid rgba(244,245,247,.28);padding-top:clamp(1.1rem,2.5vw,1.6rem)}
.qhero__sentence{max-width:none;font-family:var(--font-head);font-weight:400;font-size:clamp(1.62rem,4vw,2.95rem);line-height:1.44;letter-spacing:-.02em;color:var(--on-dark-muted);font-variant-numeric:lining-nums proportional-nums;text-wrap:pretty}
.qb-txt{color:var(--on-dark-muted)}
.qb-stop{color:var(--blue-lt)}
.qb-slot{display:inline-block;position:relative;max-width:100%}
/* the ghost carries the *current* label so the control is only as wide as what it says —
   a bare <select> would size itself to its widest option and blow the sentence apart */
.qb-ghost{position:absolute;left:0;top:0;visibility:hidden;pointer-events:none;white-space:pre;font-weight:700;padding:0 1.05em .04em .04em}
.qb-slot select{appearance:none;-webkit-appearance:none;font:inherit;font-weight:700;letter-spacing:inherit;color:var(--on-dark);background:transparent;border:0;border-bottom:2px solid rgba(138,166,255,.55);border-radius:0;padding:0 1.05em .04em .04em;margin:0;max-width:100%;cursor:pointer;transition:border-color var(--dur-1) var(--ease),color var(--dur-1) var(--ease)}
.qb-slot select:hover{border-bottom-color:var(--blue-lt)}
.qb-slot select:focus-visible{outline:2px solid var(--blue-lt);outline-offset:3px}
.qb-slot select option,.qb-slot select optgroup{color:var(--ink);background:var(--surface);font-size:1rem;font-weight:400;letter-spacing:normal}
.qb-slot::after{content:"";position:absolute;right:.3em;top:.44em;width:.36em;height:.36em;border-right:.11em solid var(--blue-lt);border-bottom:.11em solid var(--blue-lt);transform:rotate(45deg);pointer-events:none}

/* the live count */
.qhero__result{max-width:none;display:flex;align-items:baseline;flex-wrap:wrap;gap:.15rem .85rem;margin-top:clamp(1.15rem,2.6vw,1.8rem);font-family:var(--font-head);font-size:clamp(.98rem,1.35vw,1.14rem);color:var(--on-dark-muted)}
.qhero__count b{display:inline-block;color:var(--on-dark);font-weight:700;font-size:clamp(1.32rem,2.1vw,1.72rem);letter-spacing:-.015em;margin-right:.3rem;font-variant-numeric:lining-nums tabular-nums;transition:opacity var(--dur-1) var(--ease)}
.qhero__count.is-swapping b{opacity:.35}
.qhero__go{display:inline-flex;align-items:center;gap:.45rem;font-weight:700;font-size:clamp(1rem,1.35vw,1.14rem);color:var(--blue-lt);border-bottom:1px solid rgba(138,166,255,.45);padding-bottom:.12rem;transition:color var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease)}
.qhero__go:hover{color:var(--on-dark);border-bottom-color:var(--on-dark)}
.qhero__go .ic{width:18px;height:18px;transition:transform var(--dur-1) var(--ease)}
.qhero__go:hover .ic{transform:translateX(3px)}
html.js .qhero__go--nojs{display:none}
html:not(.js) [data-qb-link]{display:none}
.qhero .hero__actions{margin-top:clamp(1.75rem,4vw,2.6rem)}
@media (max-width:900px){
  .qhero__media::after{background:linear-gradient(180deg,rgba(23,24,27,.92) 0%,rgba(23,24,27,.85) 46%,rgba(23,24,27,.94) 100%)}
  .qhero__title{max-width:none}
}
.hero__actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.4rem}
@media (prefers-reduced-motion:reduce){
  .qhero__count b,.qhero__go,.qhero__go .ic,.qb-slot select{transition:none}
}

/* ---------- Filter fields (properties listing) ---------- */
.sfield{display:grid;gap:.15rem;min-width:0;padding:.5rem .75rem .55rem}
.sfield label{font-family:var(--font-head);font-size:.65rem;letter-spacing:.11em;text-transform:uppercase;font-weight:700;color:var(--muted)}
.sfield select,.sfield input{width:100%;min-height:30px;padding:.15rem 1.5rem .15rem 0;font-family:var(--font-head);font-size:16px;font-weight:500;letter-spacing:-.005em;color:var(--ink);background:transparent;border:0;border-radius:0;text-overflow:ellipsis}
.sfield input{padding-right:0}
.sfield select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%232F5BEA' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .1rem center}
.sfield select:focus,.sfield input:focus{outline:none}
.sfield:focus-within{box-shadow:inset 0 0 0 2px var(--blue)}
.sfield:focus-within label{color:var(--blue)}
/* segmented control — squared, not a pill */
.seg{display:inline-flex;border:1px solid var(--line-2);border-radius:0;background:var(--surface)}
.seg button{min-height:38px;padding:0 1.05rem;font-family:var(--font-head);font-weight:500;font-size:.88rem;color:var(--muted);transition:background var(--dur-1),color var(--dur-1)}
.seg button + button{border-left:1px solid var(--line-2)}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--on-dark)}
.seg button:hover:not([aria-pressed="true"]){color:var(--ink);background:var(--paper-2)}

/* ---------- Page masthead (inner pages) — type + plate, no scrim ---------- */
.page-hero{position:relative;background:var(--surface);border-bottom:1px solid var(--line);overflow:hidden}
.page-hero .hero__overlay{display:none}
.page-hero .hero__media{position:relative;align-self:center}
.page-hero .hero__media img{width:100%;height:100%;max-height:240px;object-fit:cover;border:1px solid var(--line);background:var(--paper)}
.page-hero__content{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);column-gap:clamp(1.25rem,4vw,3rem);row-gap:0;align-content:start;align-items:center;padding-block:clamp(1.75rem,4vw,2.75rem)}
.page-hero--compact .page-hero__content{padding-block:clamp(1.5rem,3vw,2.5rem)}
.page-hero__content > *{grid-column:1}
.page-hero__content > .hero__media{grid-column:2;grid-row:1/span 5}
.page-hero__content h1{font-size:clamp(2.19rem,4.65vw,3.66rem);margin-top:.6rem;max-width:21ch}
.page-hero__content p{margin-top:.85rem;color:var(--body-ink)}
.page-hero__content .eyebrow{margin-top:.9rem}
.crumbs{display:flex;flex-wrap:wrap;gap:.4rem;font-family:var(--font-head);font-size:.75rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.crumbs a:hover{color:var(--blue)}
.crumbs--light{color:var(--muted)}
.crumbs--light a:hover{color:var(--blue)}
.crumbs span[aria-current]{color:var(--ink)}

/* ---------- Image frame ---------- */
.frame{position:relative;overflow:hidden;border-radius:0;background:var(--paper-2);border:1px solid var(--line)}
.frame img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur-3) var(--ease)}
.frame:hover img{transform:scale(1.02)}
.ratio-4x5{aspect-ratio:4/5}.ratio-4x3{aspect-ratio:4/3}.ratio-1x1{aspect-ratio:1}.ratio-3x2{aspect-ratio:3/2}.ratio-16x9{aspect-ratio:16/9}.ratio-16x10{aspect-ratio:16/10}

/* ============================================================
   PROPERTY INDEX — the listing is a table, not a card wall
   columns: № · property · locality · configuration · area · price · plate
   ============================================================ */
.pindex{--pcols:2.9rem minmax(0,1fr) 10.5rem 8rem 7rem 8.5rem 96px;
  background:var(--surface);border:1px solid var(--line);border-top:2px solid var(--ink)}
.section--dark .pindex{background:var(--ink-2);border-color:var(--line-dark);border-top-color:var(--on-dark)}
.pindex__head{display:grid;grid-template-columns:var(--pcols);gap:0 1.15rem;align-items:center;padding:.6rem .9rem;font-family:var(--font-head);font-size:.67rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line-2)}
.pindex__head span:nth-child(5),.pindex__head span:nth-child(6){text-align:right}
.pindex__rows{counter-reset:prow}
.pindex__rows:empty{display:none}
.pindex:has(.pindex__rows:empty),.pindex:has(.pindex__rows[hidden]){display:none}

.prow{position:relative;display:grid;grid-template-columns:var(--pcols);gap:0 1.15rem;align-items:center;padding:.8rem .9rem;border-bottom:1px solid var(--line);transition:background var(--dur-1) var(--ease)}
.prow:last-child{border-bottom:0}
.prow:hover{background:var(--blue-tint)}
.prow:has(a:focus-visible){background:var(--blue-tint);outline:2px solid var(--blue);outline-offset:-2px}
.prow__n{font-family:var(--font-head);font-weight:700;font-size:.83rem;color:var(--muted);font-variant-numeric:lining-nums tabular-nums}
.prow__n::before{counter-increment:prow;content:counter(prow,decimal-leading-zero)}
.prow__name{min-width:0}
.prow__name h3{font-family:var(--font-head);font-weight:500;font-size:1.07rem;letter-spacing:-.006em;line-height:1.25}
.prow__name h3 a{color:var(--ink)}
.prow:hover .prow__name h3 a{color:var(--blue)}
.prow__name h3 a::after{content:"";position:absolute;inset:0;z-index:1}
.prow__flags{display:flex;flex-wrap:wrap;gap:.4rem .55rem;margin-top:.22rem;font-family:var(--font-head);font-size:.68rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.prow__flags span + span::before{content:"·";margin-right:.55rem;color:var(--line-2)}
.prow__flags .is-key{color:var(--blue)}
.prow__flags .is-key::before{content:"◆ ";letter-spacing:0}
.prow__loc,.prow__cfg{font-family:var(--font-head);font-size:.9rem;font-weight:400;color:var(--body-ink);letter-spacing:0;line-height:1.35;min-width:0;overflow-wrap:break-word}
.prow__area{font-family:var(--font-head);font-weight:500;font-size:1.05rem;text-align:right;color:var(--body-ink);letter-spacing:-.006em}
.prow__area u{display:block;text-decoration:none;font-size:.65rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.prow__price{font-family:var(--font-head);font-weight:700;font-size:1.26rem;text-align:right;color:var(--ink);letter-spacing:-.011em;white-space:nowrap}
.prow__price u{display:block;text-decoration:none;font-size:.65rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.prow__thumb{width:96px;aspect-ratio:4/3;overflow:hidden;border:1px solid var(--line);background:var(--paper-2);opacity:0;transform:translateX(-8px);transition:opacity var(--dur-2) var(--ease),transform var(--dur-2) var(--ease)}
.prow__thumb img{width:100%;height:100%;object-fit:cover}
.prow:hover .prow__thumb,.prow:focus-within .prow__thumb{opacity:1;transform:none}
.section--dark .prow{border-color:var(--line-dark)}
.section--dark .prow__name h3 a{color:var(--on-dark)}
.section--dark .prow__loc,.section--dark .prow__cfg,.section--dark .prow__area{color:var(--on-dark-muted)}
.section--dark .prow__price{color:var(--on-dark)}
.section--dark .prow:hover{background:rgba(138,166,255,.1)}
.pindex__foot{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding:.7rem .9rem;font-family:var(--font-head);font-size:.75rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--line-2)}

/* ---------- Listing page: sticky filter rail + results ---------- */
.listing{display:grid;grid-template-columns:264px minmax(0,1fr);gap:0;align-items:start;padding-block:2rem 4.5rem}
.filters{position:sticky;top:var(--header-h);max-height:calc(100vh - var(--header-h) - 1rem);overflow:auto;background:transparent;border:0;border-right:1px solid var(--line);padding-right:1.75rem;margin-right:1.75rem;display:flex;flex-direction:column}
.filters__head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;padding:.15rem 0 .7rem;border-bottom:2px solid var(--ink)}
.filters__head h2{font-family:var(--font-head);font-size:.75rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.filters__close{display:none;width:40px;height:40px;place-items:center;border:1px solid var(--line-2)}
.filters__close .ic{width:17px;height:17px}
.filters__body{padding:1rem 0 1.25rem;display:grid;gap:.9rem}
.filters__body .sfield{padding:0;gap:.2rem;border-bottom:1px solid var(--line);padding-bottom:.35rem;background:transparent}
.filters__body .sfield:focus-within{box-shadow:none;border-bottom-color:var(--blue)}
.filters__body .sfield label{font-size:.67rem}
.filters__body .sfield select,.filters__body .sfield input{min-height:34px;font-size:16px;padding-right:1.4rem}
.filters__row{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.filters__seg{display:grid;gap:.35rem;margin-bottom:.35rem}
.filters__seg > span{font-family:var(--font-head);font-size:.65rem;letter-spacing:.11em;text-transform:uppercase;font-weight:700;color:var(--muted)}
.filters__seg .seg{width:100%}
.filters__seg .seg button{flex:1}
.filters__foot{display:none;padding:.85rem 1.15rem calc(.85rem + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface);position:sticky;bottom:0}
.filters__backdrop{display:none;position:fixed;inset:0;background:rgba(23,24,27,.5);z-index:110;opacity:0;transition:opacity var(--dur-2)}
.filters__backdrop.is-open{opacity:1}
.link-reset{font-family:var(--font-head);font-size:.8rem;font-weight:700;color:var(--blue);letter-spacing:.05em;text-transform:uppercase;min-height:36px}
.link-reset:hover{text-decoration:underline;text-underline-offset:3px}
.results__head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem 1.25rem;flex-wrap:wrap;padding-bottom:.9rem;margin-bottom:1.1rem;border-bottom:1px solid var(--line)}
.results__title{font-family:var(--font-head);font-size:clamp(1.2rem,2.03vw,1.54rem);font-weight:700;letter-spacing:-.015em}
.listing-bar__count{font-family:var(--font-head);font-size:.82rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-variant-numeric:lining-nums tabular-nums}
.listing-bar__count b{color:var(--ink);font-weight:700}
.listing-bar__sort{display:flex;align-items:center;gap:.5rem;font-family:var(--font-head);font-size:.75rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-left:auto}
.listing-bar__sort select{min-height:38px;padding:.3rem 1.6rem .3rem .55rem;font-family:var(--font-head);font-weight:500;font-size:16px;letter-spacing:-.005em;color:var(--ink);border:1px solid var(--line-2);border-radius:0;background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%232F5BEA' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right .6rem center;appearance:none;-webkit-appearance:none;text-transform:none}
.filters-toggle{display:none;align-items:center;gap:.45rem;min-height:40px;padding:.45rem .8rem;border:1px solid var(--line-2);border-radius:0;font-family:var(--font-head);font-weight:700;font-size:.88rem;background:var(--surface)}
.filters-toggle .ic{width:16px;height:16px}
.filters-toggle .badge{display:none;min-width:19px;height:19px;padding:0 .3rem;border-radius:0;background:var(--blue);color:#fff;font-size:.73rem;font-weight:700;place-items:center;line-height:1;font-variant-numeric:lining-nums tabular-nums}
.filters-toggle .badge.is-on{display:grid}
.active-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.1rem}
.active-chips:empty{display:none}
.chip{display:inline-flex;align-items:center;gap:.4rem;min-height:36px;padding:.35rem .75rem;border-radius:0;border:1px solid var(--line-2);background:var(--surface);font-family:var(--font-head);font-size:.83rem;font-weight:500;color:var(--ink);transition:border-color var(--dur-1),background var(--dur-1),color var(--dur-1)}
.chip:hover{border-color:var(--blue);color:var(--blue)}
.chip .ic{width:13px;height:13px;color:var(--muted)}
.chip:hover .ic{color:var(--blue)}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--on-dark)}
.chips{display:flex;gap:.4rem;flex-wrap:wrap}
.empty{text-align:center;padding:3.5rem 1.25rem;color:var(--muted);border:1px dashed var(--line-2);background:var(--surface)}
.empty h3{color:var(--ink);font-family:var(--font-head);font-size:1.5rem;font-weight:700;letter-spacing:-.015em;margin-bottom:.5rem}
.empty p{margin-inline:auto}
.empty[hidden]{display:none}

/* ---------- Projects (record sheets, not glossy cards) ---------- */
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.project-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.project{background:var(--surface);border:1px solid var(--line);border-top:2px solid var(--ink);border-radius:0;overflow:hidden;display:flex;flex-direction:column;transition:border-color var(--dur-1) var(--ease)}
.project:hover{border-color:var(--line-2);border-top-color:var(--blue)}
.project__media{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--paper-2);border-bottom:1px solid var(--line)}
.project__media img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur-3) var(--ease)}
.project:hover .project__media img{transform:scale(1.02)}
.project__media .tag{position:absolute;top:0;left:0}
.project__rera{position:absolute;right:0;bottom:0;font-family:var(--font-head);font-size:.69rem;letter-spacing:.08em;background:var(--ink);color:var(--on-dark);padding:.3rem .5rem}
.project__body{padding:1.05rem 1.1rem 1.2rem;display:flex;flex-direction:column;gap:.35rem;flex:1}
.project__body h3{font-size:1.39rem;font-weight:700;letter-spacing:-.017em}
.project__dev,.project__loc{font-family:var(--font-head);font-size:.86rem;color:var(--muted)}
.project__loc{display:flex;align-items:center;gap:.35rem}
.project__loc .ic{width:14px;height:14px;color:var(--blue)}
.project__facts{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:.7rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.project__facts > div{padding:.7rem .7rem .7rem 0;border-right:1px solid var(--line)}
.project__facts > div:last-child{border-right:0}
.project__facts > div + div{padding-left:.7rem}
.project__facts span{display:block;font-family:var(--font-head);font-size:.63rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:700}
.project__facts b{display:block;font-family:var(--font-head);font-weight:700;font-size:1.02rem;letter-spacing:-.015em;margin-top:.2rem}
.project__hl{display:grid;gap:.3rem;font-size:.96rem;color:var(--body-ink);margin-top:.7rem}
.project__hl li{display:flex;gap:.5rem;align-items:flex-start}
.project__hl .ic{width:14px;height:14px;color:var(--blue);margin-top:.35rem}
.project__actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:auto;padding-top:1rem}
.project__actions .btn{flex:1;min-width:140px}

/* ---------- Categories (index tiles) ---------- */
.cat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.cat{position:relative;display:flex;flex-direction:column;background:var(--surface);color:var(--ink);isolation:isolate;padding:0 0 .9rem;transition:background var(--dur-1) var(--ease)}
.cat img{width:100%;aspect-ratio:16/10;object-fit:cover;background:var(--paper-2);filter:saturate(.7)}
.cat::after{display:none}
.cat:hover{background:var(--blue-tint)}
.cat:hover img{filter:saturate(1)}
.cat__body{padding:.85rem .9rem 0;display:flex;flex-direction:column;gap:.2rem}
.cat__body h3{font-size:1.12rem;font-weight:700;letter-spacing:-.015em}
.cat:hover .cat__body h3{color:var(--blue)}
.cat__body span{display:flex;align-items:center;justify-content:space-between;gap:.4rem;font-family:var(--font-head);font-size:.77rem;font-weight:500;letter-spacing:.06em;color:var(--muted);font-variant-numeric:lining-nums tabular-nums}
.cat__body .ic{width:14px;height:14px;color:var(--blue);transition:transform var(--dur-1)}
.cat:hover .cat__body .ic{transform:translateX(3px)}

/* ---------- Why / values / steps / timeline ---------- */
.why-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem}
.why{padding:1.35rem 0 0;background:transparent;border:0;border-top:2px solid var(--ink);position:relative}
.why::before{display:none}
.why__icon{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--line-2);border-radius:0;color:var(--blue);font-size:1.1rem;margin-bottom:.9rem;background:var(--surface)}
.why h3{font-size:1.23rem;font-weight:700;letter-spacing:-.015em}
.why p{margin-top:.45rem;font-size:1rem;color:var(--muted);max-width:none}
.values-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.value{padding:1.35rem 1.35rem 1.5rem;background:var(--surface);border:1px solid var(--line);border-top:2px solid var(--ink)}
.section--dark .value{background:var(--ink-2);border-color:var(--line-dark);border-top-color:var(--blue-lt);color:var(--on-dark)}
.value .num,.step .num{font-family:var(--font-head);font-weight:700;font-size:2.14rem;color:var(--blue);line-height:1;letter-spacing:-.024em;font-variant-numeric:lining-nums tabular-nums}
.section--dark .value .num{color:var(--blue-lt)}
.value h3{margin-top:.6rem;font-weight:700;letter-spacing:-.015em}
.value p{margin-top:.45rem;font-size:1rem;color:var(--muted);max-width:none}
.section--dark .value p{color:var(--on-dark-muted)}
.timeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-top:2.5rem;border-top:2px solid var(--ink)}
.section--dark .timeline{border-top-color:var(--on-dark)}
.timeline div{padding:1rem 1.15rem 1rem 0;border-right:1px solid var(--line)}
.timeline div:last-child{border-right:0}
.timeline div + div{padding-left:1.15rem}
.section--dark .timeline div{border-right-color:var(--line-dark)}
.timeline b{font-family:var(--font-head);font-weight:700;font-size:1.6rem;letter-spacing:-.02em;color:var(--blue);font-variant-numeric:lining-nums tabular-nums}
.section--dark .timeline b{color:var(--blue-lt)}
.timeline p{font-size:.96rem;color:var(--muted);margin-top:.3rem;max-width:none}
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.step{padding:1.35rem;border:1px solid var(--line);border-top:2px solid var(--ink);background:var(--surface)}
.step h3{margin-top:.55rem;font-size:1.26rem;font-weight:700;letter-spacing:-.015em}
.step p{margin-top:.45rem;font-size:1rem;color:var(--muted);max-width:none}

/* ---------- Agents ---------- */
.agent-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.agent{background:var(--surface);border:1px solid var(--line);border-top:2px solid var(--ink);border-radius:0;overflow:hidden;display:flex;flex-direction:column;transition:border-color var(--dur-1)}
.agent:hover{border-top-color:var(--blue)}
.agent .frame{aspect-ratio:16/11;border:0;border-bottom:1px solid var(--line)}
.agent__body{padding:1rem 1.1rem 1.2rem;display:grid;gap:.3rem;flex:1}
.agent__body h3{font-size:1.34rem;font-weight:700;letter-spacing:-.017em}
.agent__role{font-family:var(--font-head);font-size:.69rem;letter-spacing:.11em;text-transform:uppercase;font-weight:700;color:var(--blue)}
.agent__spec{font-size:.96rem;color:var(--body-ink)}
.agent__langs{font-family:var(--font-head);font-size:.83rem;color:var(--muted);display:flex;gap:.4rem;align-items:center}
.agent__langs .ic{width:14px;height:14px;color:var(--blue)}
.agent__actions{display:flex;gap:.5rem;margin-top:.8rem;flex-wrap:wrap}
.agent__actions .btn{flex:1;min-width:0}
.agent__links{margin-top:.5rem;padding-top:.7rem;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:.5rem;font-family:var(--font-head);font-size:.83rem}
.agent__links .muted:hover{color:var(--blue)}

/* ---------- Statistics ---------- */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:2px solid var(--on-dark)}
.stat{padding:1.25rem 1.25rem 0 0;border-right:1px solid var(--line-dark);border-left:0}
.stat:last-child{border-right:0}
.stat + .stat{padding-left:1.25rem}
.stat b{display:block;font-family:var(--font-head);font-weight:700;font-size:clamp(2.46rem,5.08vw,4.07rem);line-height:.98;letter-spacing:-.024em;color:var(--on-dark);font-variant-numeric:lining-nums tabular-nums}
.stat span{display:block;margin-top:.5rem;color:var(--on-dark-muted);font-family:var(--font-head);font-size:.88rem;letter-spacing:-.005em}
.stats-note{margin-top:1.75rem;font-size:.84rem;color:var(--on-dark-muted);opacity:.85}

/* ---------- Testimonials ---------- */
.reviews-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.review{background:var(--surface);border:1px solid var(--line);border-top:2px solid var(--ink);padding:1.35rem;display:flex;flex-direction:column;gap:.7rem;position:relative}
.review__mark{font-family:var(--font-head);font-weight:700;font-size:2.57rem;line-height:.7;color:var(--blue);height:1rem}
.review__stars{color:var(--blue);letter-spacing:.15em;font-size:.85rem}
.review p{font-family:var(--font-body);font-size:1.1rem;line-height:1.54;font-style:normal;max-width:none;color:var(--body-ink)}
.review footer{margin-top:auto;padding-top:.8rem;border-top:1px solid var(--line);font-family:var(--font-head);font-size:.83rem;color:var(--muted);display:flex;gap:.7rem;align-items:center}
.review footer b{display:block;color:var(--ink);font-weight:700;letter-spacing:-.005em}
.review__avatar{width:34px;height:34px;border-radius:0;background:var(--ink);color:var(--on-dark);display:grid;place-items:center;font-family:var(--font-head);font-weight:700;font-size:.83rem;flex:none}
.sample-note{font-size:.86rem;color:var(--muted);margin-top:1.1rem}

/* ---------- Consultation CTA band ---------- */
.cta-band{position:relative;display:flex;flex-direction:column-reverse;color:var(--on-dark);background:var(--ink);padding-block:clamp(3rem,6vw,4.5rem) 0;overflow:hidden}
.cta-band img{position:relative;width:100%;height:clamp(90px,14vw,150px);object-fit:cover;opacity:.85;margin-top:clamp(2rem,4vw,3rem);border-top:1px solid var(--line-dark)}
.cta-band::before{display:none}
.cta-band h2{font-size:clamp(2.03rem,4.07vw,3.16rem);margin-top:.75rem}
.cta-band p{margin-top:.9rem;color:var(--on-dark-muted)}
.cta-band .hero__actions{margin-top:1.5rem}
.cta-band--center{text-align:center}
.cta-band--center p{margin-inline:auto}
.cta-band--center .hero__actions{justify-content:center}
.cta-band--center .eyebrow::before{display:none}
.cta-layout{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4rem);align-items:start}
.callback-card{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-top:2px solid var(--blue);padding:clamp(1.25rem,2.5vw,1.75rem)}
.cta-band .callback-card p,.cta-band .callback-card .field__hint{color:var(--muted);margin-top:0}
.cta-band .callback-card .field__error{color:var(--error)}
.callback-card h3{font-size:1.45rem;font-weight:700;letter-spacing:-.017em}
.callback-card > p{font-size:.98rem;color:var(--muted);margin:.35rem 0 1.1rem}
.cta-points{display:grid;gap:.55rem;margin-top:1.25rem;color:var(--on-dark-muted);font-size:1.02rem}
.cta-points li{display:flex;gap:.6rem;align-items:flex-start}
.cta-points .ic{color:var(--blue-lt);margin-top:.35rem}

/* ---------- Location / info band ---------- */
.location{display:block;border:1px solid var(--line);border-top:2px solid var(--ink);background:var(--surface)}
.location__info{padding:clamp(1.25rem,3vw,1.75rem);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;align-content:start}
.location__info > .info-row{padding-right:1.5rem;border-right:1px solid var(--line)}
.location__info > .info-row:last-child{border-right:0}
.location__info > .info-row + .info-row{padding-left:1.5rem}
.info-row{display:grid;grid-template-columns:40px 1fr;gap:.9rem;align-items:start}
.info-row .why__icon{margin:0;width:36px;height:36px}
.info-row h3{font-size:1.12rem;font-weight:700;letter-spacing:-.015em}
.info-row p,.info-row address{font-style:normal;font-size:1rem;color:var(--muted);margin-top:.25rem;max-width:none}
.info-row a:hover{color:var(--blue)}
.hours{display:grid;gap:.2rem;font-family:var(--font-head);font-size:.91rem}
.hours div{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--line);padding:.3rem 0}
.hours b{font-weight:700;text-align:right}
.site-footer .hours div{border-color:var(--line-dark)}

/* ---------- Forms ---------- */
.form{display:grid;gap:1rem}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.field{display:grid;gap:.3rem}
.field label{font-family:var(--font-head);font-size:.69rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}
.field label .req{color:var(--blue)}
.field input,.field select,.field textarea{width:100%;min-height:46px;padding:.6rem .75rem;font-family:var(--font-head);font-size:16px;font-weight:500;color:var(--ink);background:var(--surface);border:1px solid var(--line-2);border-radius:0;transition:border-color var(--dur-1),box-shadow var(--dur-1)}
.field textarea{min-height:112px;resize:vertical;font-family:var(--font-body);font-weight:400}
.field select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%232F5BEA' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .8rem center;padding-right:2.2rem}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(47,91,234,.18)}
.field.is-invalid input,.field.is-invalid select,.field.is-invalid textarea{border-color:var(--error);box-shadow:0 0 0 3px rgba(179,38,30,.14)}
.field__error{display:none;font-size:.88rem;color:var(--error);font-weight:600}
.field.is-invalid .field__error{display:block}
.field__hint{font-size:.86rem;color:var(--muted)}
.form__status{display:none;padding:.85rem 1rem;font-size:1rem;line-height:1.5;border-left:3px solid transparent}
.form__status.is-error{display:block;background:rgba(179,38,30,.07);border-color:var(--error);color:var(--error)}
.form__status.is-success{display:block;background:rgba(31,107,65,.07);border-color:var(--success);color:var(--success)}
.success-panel{display:none;text-align:center;padding:2.25rem 1.25rem;border:1px solid var(--line);border-top:2px solid var(--success);background:var(--surface)}
.success-panel.is-visible{display:block}
.success-panel .check{width:52px;height:52px;margin:0 auto 1rem;border-radius:0;display:grid;place-items:center;background:var(--success);color:#fff}
.success-panel .check svg{width:26px;height:26px}
.success-panel h3{font-size:1.6rem;font-weight:700;letter-spacing:-.017em}
.success-panel p{margin:.7rem auto 0;font-size:1.02rem;color:var(--muted)}
.success-panel .hero__actions{justify-content:center;margin-top:1.1rem}
.honeypot{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.spinner{display:inline-block;width:15px;height:15px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:sp .7s linear infinite;vertical-align:-3px}
@keyframes sp{to{transform:rotate(360deg)}}
.form-card{background:var(--surface);border:1px solid var(--line);border-top:2px solid var(--ink);padding:clamp(1.25rem,3vw,2rem)}
.form-card > h2{font-size:1.71rem;font-weight:700;letter-spacing:-.017em;margin-bottom:.3rem}
.form-card > p{color:var(--muted);margin-bottom:1.35rem;font-size:1rem}

/* ---------- Property detail ---------- */
.prop-top{padding-top:1.75rem}
.prop-head{display:flex;justify-content:space-between;gap:2rem;align-items:flex-end;margin:.9rem 0 1.35rem;padding-bottom:1.1rem;border-bottom:2px solid var(--ink)}
.prop-head__tags{display:flex;gap:.35rem;flex-wrap:wrap}
.prop-head h1{font-size:clamp(1.93rem,3.42vw,2.95rem);margin-top:.7rem;max-width:25ch}
.prop-loc{display:flex;gap:.45rem;align-items:center;color:var(--muted);margin-top:.5rem;font-family:var(--font-head);font-size:.98rem}
.prop-loc .ic{color:var(--blue);width:16px;height:16px}
.prop-price-box{text-align:right;flex:none}
.prop-price{font-family:var(--font-head);font-weight:700;font-size:clamp(2.05rem,3.48vw,2.95rem);color:var(--ink);line-height:1.02;letter-spacing:-.024em}
.prop-price-box small{display:block;font-family:var(--font-head);font-size:.86rem;color:var(--muted);margin-top:.4rem}
.prop-head__actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.9rem;flex-wrap:wrap}
.gallery{display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:1px;align-items:stretch;background:var(--line);border:1px solid var(--line)}
.gallery-main{position:relative;width:100%;aspect-ratio:16/10;overflow:hidden;background:var(--paper-2)}
.gallery-main button{position:absolute;inset:0;width:100%;height:100%;cursor:zoom-in;display:block}
.gallery-main img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur-3) var(--ease)}
.gallery-main button:hover img{transform:scale(1.02)}
.gallery-main__count{position:absolute;right:0;bottom:0;background:var(--ink);color:var(--on-dark);font-family:var(--font-head);font-size:.79rem;padding:.35rem .55rem;pointer-events:none;display:flex;align-items:center;gap:.35rem;font-variant-numeric:lining-nums tabular-nums}
.gallery-main__count .ic{width:13px;height:13px}
.gallery-thumbs{display:grid;grid-template-rows:repeat(4,minmax(0,1fr));gap:1px;min-height:0}
.gallery-thumbs button{position:relative;overflow:hidden;border:0;background:var(--paper-2);min-height:40px}
.gallery-thumbs button::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 0 var(--blue);transition:box-shadow var(--dur-1)}
.gallery-thumbs button[aria-current="true"]::after{box-shadow:inset 0 0 0 3px var(--blue)}
.gallery-thumbs img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.prop-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:clamp(1.75rem,3.5vw,3rem);align-items:start;margin-top:2rem}
.prop-side{position:sticky;top:calc(var(--header-h) + 1rem);display:grid;gap:1.1rem}
.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;background:var(--surface);border:1px solid var(--line);border-top:2px solid var(--ink)}
.fact{background:var(--surface);padding:.85rem .95rem;min-width:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.facts .fact:nth-child(4n),.facts .fact:last-child{border-right:0}
.facts .fact:nth-last-child(-n+4){border-bottom:0}
.fact span{display:flex;align-items:center;gap:.35rem;font-family:var(--font-head);font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:700}
.fact .ic{width:13px;height:13px;color:var(--blue)}
.fact b{display:block;font-family:var(--font-head);font-weight:700;margin-top:.3rem;font-size:1.02rem;letter-spacing:-.009em;overflow-wrap:anywhere}
.prop-section{padding-top:2.25rem}
.prop-section > h2{font-family:var(--font-head);font-size:1.45rem;font-weight:700;letter-spacing:-.017em;margin-bottom:.9rem;display:flex;align-items:center;gap:.75rem}
.prop-section > h2::after{content:"";flex:1;height:1px;background:var(--line-2)}
.prop-section p{max-width:62ch;color:var(--body-ink)}
.prop-section p + p{margin-top:.8rem}
.amenities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1.5rem}
.amenities li{display:flex;gap:.55rem;align-items:center;padding:.55rem 0;border-bottom:1px solid var(--line);font-size:1rem}
.amenities .ic{color:var(--blue);width:15px;height:15px}
.floor-plan{border:1px solid var(--line);background:var(--surface)}
.floor-plan img{width:100%;height:auto}
.floor-plan__bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding:.75rem .9rem;border-top:1px solid var(--line);background:var(--surface);font-family:var(--font-head);font-size:.88rem;color:var(--muted)}
.agent-card{border:1px solid var(--line);border-top:2px solid var(--ink);padding:1.1rem;display:grid;grid-template-columns:64px 1fr;gap:.9rem;align-items:center;background:var(--surface)}
.agent-card img{width:64px;height:64px;border-radius:0;object-fit:cover;border:1px solid var(--line)}
.agent-card__label{font-family:var(--font-head);font-size:.65rem;letter-spacing:.11em;text-transform:uppercase;font-weight:700;color:var(--blue)}
.agent-card h3{font-size:1.23rem;margin-top:.15rem;font-weight:700;letter-spacing:-.015em}
.agent-card p{font-family:var(--font-head);font-size:.88rem;color:var(--muted);margin-top:.15rem;max-width:none}
.agent-card__actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.enquiry-card{background:var(--paper);border:1px solid var(--line);border-top:2px solid var(--blue);padding:1.25rem}
.enquiry-card h2{font-size:1.45rem;font-weight:700;letter-spacing:-.017em}
.enquiry-card > p{font-size:.95rem;color:var(--muted);margin:.3rem 0 1rem}
.enquiry-card .form{gap:.85rem}
.enquiry-card .field textarea{min-height:104px}
.sticky-prop{display:none}
.prop-notfound{padding:3.5rem 0 4.5rem;text-align:center}
.prop-notfound h1{font-size:clamp(2.03rem,4.07vw,3.05rem)}
/* direct children only: the unscoped selector also caught the <p> cells of the
   suggestion index below and gave them auto side margins, which stops a grid
   item from stretching to its track and knocks the price/area columns out of
   line as soon as the figures are not all the same width. */
.prop-notfound > p{margin:1rem auto 1.5rem;color:var(--muted)}
.prop-notfound .hero__actions{justify-content:center}

/* ---------- About ---------- */
.split{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(1.75rem,5vw,4rem);align-items:center}
.split--reverse > :first-child{order:2}
.split__media{position:relative}
.split__media .frame{aspect-ratio:4/3}
.split__media .frame--tall{position:absolute;right:-1rem;bottom:-1.75rem;width:40%;aspect-ratio:3/4;border:4px solid var(--surface);outline:1px solid var(--line)}
.section--off .split__media .frame--tall{border-color:var(--paper)}
.split__body h2{margin-top:.65rem}
.split__body p{margin-top:.9rem;color:var(--body-ink)}
.split__body .btn{margin-top:1.5rem}
.quote{margin-top:1.35rem;padding-left:1.1rem;border-left:3px solid var(--blue);font-family:var(--font-body);font-size:1.24rem;font-style:normal;line-height:1.5;color:var(--ink)}
.quote cite{display:block;margin-top:.5rem;font-family:var(--font-head);font-style:normal;font-size:.73rem;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}

/* ---------- Contact page ---------- */
.contact-layout{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(1.75rem,4vw,3.25rem);align-items:start}
.contact-cards{display:grid;gap:0;border-top:2px solid var(--ink)}
.contact-card{display:flex;gap:.9rem;align-items:start;padding:1.1rem 0;background:transparent;border:0;border-bottom:1px solid var(--line);transition:none}
.contact-card:hover{border-color:var(--line)}
.contact-card .why__icon{margin:0;flex:none;width:36px;height:36px}
.contact-card h3{font-size:1.16rem;font-weight:700;letter-spacing:-.015em}
.contact-card p,.contact-card a.val{display:block;font-size:1rem;color:var(--muted);margin-top:.2rem}
.contact-card a.val:hover{color:var(--blue)}
.socials{display:flex;gap:.4rem;flex-wrap:wrap}
.socials a{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--line-2);border-radius:0;color:var(--muted);transition:border-color var(--dur-1),color var(--dur-1)}
.socials a:hover{border-color:var(--blue);color:var(--blue)}
.socials svg{width:17px;height:17px}
.section--dark .socials a,.site-footer .socials a{border-color:var(--line-dark);color:var(--on-dark-muted)}
.section--dark .socials a:hover,.site-footer .socials a:hover{border-color:var(--blue-lt);color:var(--blue-lt)}

/* ---------- Footer ---------- */
.site-footer{background:var(--ink);color:var(--on-dark-muted);padding:clamp(3rem,6vw,4.5rem) 0 1.75rem;font-size:1.02rem}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.3fr;gap:2rem}
.site-footer h4{font-family:var(--font-head);font-size:.69rem;letter-spacing:.14em;text-transform:uppercase;color:var(--on-dark);font-weight:700;margin-bottom:1rem;padding-bottom:.55rem;border-bottom:1px solid var(--line-dark)}
.site-footer .brand{color:var(--on-dark)}
.site-footer p{font-size:.98rem;margin-top:.9rem;max-width:36ch}
.footer-links{display:grid;gap:.45rem;font-family:var(--font-head);font-size:.94rem}
.footer-links a:hover{color:var(--blue-lt)}
.footer-contact{display:grid;gap:.55rem;font-family:var(--font-head);font-size:.94rem}
.footer-contact a,.footer-contact > span{display:flex;gap:.55rem;align-items:flex-start}
.footer-contact > span > span,.footer-contact a > span{display:block}
.footer-contact a:hover{color:var(--blue-lt)}
.footer-contact .ic{width:15px;height:15px;margin-top:.25rem;color:var(--blue-lt)}
.footer-bottom{margin-top:2.5rem;padding-top:1.25rem;border-top:1px solid var(--line-dark);display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;font-family:var(--font-head);font-size:.83rem}
.footer-bottom a:hover{color:var(--blue-lt)}
.footer-bottom .made{opacity:.7}
.footer-legal{font-size:.86rem;opacity:.85;margin-top:1.5rem;max-width:none!important}

/* ---------- Floating actions ---------- */
.whatsapp-float{position:fixed;right:1.1rem;bottom:1.1rem;z-index:80;width:50px;height:50px;border-radius:0;background:var(--whatsapp);color:#fff;display:grid;place-items:center;box-shadow:0 10px 24px -12px rgba(23,24,27,.5);transition:background var(--dur-1) var(--ease)}
.whatsapp-float:hover{background:#177f3f}
.whatsapp-float svg{width:25px;height:25px}

/* ---------- Lightbox ---------- */
.lightbox{position:fixed;inset:0;z-index:200;background:rgba(23,24,27,.97);display:none;align-items:center;justify-content:center;padding:1rem}
.lightbox.is-open{display:flex}
.lightbox img{max-width:min(92vw,1400px);max-height:84vh;object-fit:contain}
.lightbox__btn{position:absolute;width:48px;height:48px;display:grid;place-items:center;color:var(--on-dark);border:1px solid var(--line-dark);border-radius:0;background:var(--ink-2);transition:background var(--dur-1)}
.lightbox__btn:hover{background:var(--blue);border-color:var(--blue)}
.lightbox__btn svg{width:20px;height:20px}
.lightbox__close{top:1rem;right:1rem}
.lightbox__prev{left:1rem;top:50%;transform:translateY(-50%)}
.lightbox__next{right:1rem;top:50%;transform:translateY(-50%)}
.lightbox__caption{position:absolute;bottom:1.25rem;left:50%;transform:translateX(-50%);color:var(--on-dark-muted);font-family:var(--font-head);font-size:.88rem;text-align:center;width:min(90vw,700px)}

/* ---------- Reveal animations ---------- */
html.js .reveal{opacity:0;transform:translateY(14px);transition:opacity var(--dur-3) var(--ease),transform var(--dur-3) var(--ease)}
html.js .reveal.in{opacity:1;transform:none}
html.js .reveal.d1{transition-delay:.06s}html.js .reveal.d2{transition-delay:.12s}html.js .reveal.d3{transition-delay:.18s}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  html.js .reveal{opacity:1;transform:none}
}

/* ---------- Utilities ---------- */
.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}.mt-6{margin-top:3rem}
.center{text-align:center}
p.center,.sample-note.center{margin-inline:auto}
.stack{display:grid;gap:1rem}
.divider{height:1px;background:var(--line)}
.section--dark .divider{background:var(--line-dark)}
.prose h2{font-family:var(--font-head);font-size:1.6rem;font-weight:700;letter-spacing:-.017em;margin-top:1.9rem;padding-top:1rem;border-top:1px solid var(--line)}
.prose p{margin-top:.7rem;color:var(--body-ink)}
.prose a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1280px){
  .pindex{--pcols:2.5rem minmax(0,1fr) 9rem 7rem 6.5rem 7.75rem 84px}
  .prow__thumb{width:84px}
}
@media (max-width:1200px){
  .project-grid,.agent-grid,.reviews-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .why-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .prop-layout{grid-template-columns:minmax(0,1fr) 320px}
  .listing{grid-template-columns:236px minmax(0,1fr)}
  .filters{padding-right:1.25rem;margin-right:1.25rem}
  .nav__phone{display:none}
  .nav__links{gap:1.15rem}
}
/* index → stacked records with inline plates */
@media (max-width:1024px){
  .pindex__head{display:none}
  .prow{grid-template-columns:84px minmax(0,1fr) auto;grid-template-areas:"thumb name n" "thumb loc loc" "thumb cfg area" "thumb price price";column-gap:.85rem;row-gap:.12rem;align-items:start;padding:.85rem}
  .prow__thumb{grid-area:thumb;width:84px;opacity:1;transform:none;align-self:start}
  .prow__n{grid-area:n;text-align:right}
  .prow__name{grid-area:name}
  .prow__loc{grid-area:loc;color:var(--muted);white-space:normal}
  .prow__cfg{grid-area:cfg;white-space:normal}
  .prow__area{grid-area:area;text-align:right;font-size:.94rem}
  .prow__area u{display:inline;margin-left:.25rem}
  .prow__price{grid-area:price;text-align:left;margin-top:.3rem;font-size:1.23rem}
  .footer-grid{grid-template-columns:1fr 1fr}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stat:nth-child(2n){border-right:0}
  .facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .timeline{grid-template-columns:repeat(2,minmax(0,1fr))}
  .timeline div:nth-child(2n){border-right:0}
  .values-grid,.steps{grid-template-columns:1fr 1fr}
  .gallery{grid-template-columns:minmax(0,1fr) 150px}
  .location__info{grid-template-columns:1fr;gap:1.25rem}
  .location__info > .info-row{padding:0;border-right:0}
  .location__info > .info-row + .info-row{padding-left:0;padding-top:1.25rem;border-top:1px solid var(--line)}
}
@media (max-width:900px){
  :root{--header-h:60px}
  .nav__links,.nav__cta .btn{display:none}
  .nav__toggle{display:inline-flex}
  .split,.split--reverse{grid-template-columns:1fr}
  .split--reverse > :first-child{order:0}
  .split__media .frame--tall{right:0;bottom:-1rem;width:36%}
  .contact-layout,.cta-layout{grid-template-columns:1fr}
  .section-head.split{flex-direction:column;align-items:start}
  .page-hero__content{grid-template-columns:1fr}
  .page-hero__content > .hero__media{grid-column:1;grid-row:auto;margin-top:1.5rem}
  .page-hero .hero__media img{max-height:200px}
  /* property detail */
  .prop-layout{grid-template-columns:1fr}
  .prop-side{position:static}
  .prop-head{flex-direction:column;align-items:flex-start;gap:.9rem}
  .prop-price-box{text-align:left}
  .prop-head__actions{justify-content:flex-start}
  .gallery{grid-template-columns:1fr}
  .gallery-thumbs{grid-template-rows:none;grid-template-columns:repeat(4,minmax(0,1fr))}
  .gallery-thumbs button{aspect-ratio:4/3}
  /* sticky Call / WhatsApp / Enquire bar — property detail only */
  body.has-sticky .sticky-prop{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:.4rem;position:fixed;left:0;right:0;bottom:0;z-index:85;padding:.5rem var(--gutter) calc(.5rem + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line-2)}
  body.has-sticky .sticky-prop .btn{min-height:46px;padding-inline:.7rem;font-size:.9rem}
  body.has-sticky{padding-bottom:calc(4.25rem + env(safe-area-inset-bottom))}
  body.has-sticky .whatsapp-float{display:none}
  /* listing: rail → bottom sheet */
  .listing{grid-template-columns:1fr;gap:0;padding-top:1.25rem}
  .filters-toggle{display:inline-flex}
  .filters{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:120;max-height:88vh;background:var(--surface);border:0;border-top:2px solid var(--ink);box-shadow:var(--shadow-sheet);padding:1rem 1.15rem 0;margin:0;transform:translateY(104%);transition:transform var(--dur-2) var(--ease);visibility:hidden}
  .filters.is-open{transform:none;visibility:visible}
  .filters__close{display:grid}
  .filters__body{overflow:auto;flex:1;padding-bottom:1rem}
  .filters__foot{display:block;margin-inline:-1.15rem}
  .filters__backdrop{display:block;pointer-events:none}
  .filters__backdrop.is-open{pointer-events:auto}
  body.sheet-open{overflow:hidden}
  .results__head{gap:.6rem 1rem}
}
@media (max-width:640px){
  .project-grid,.agent-grid,.reviews-grid,.why-grid,.timeline,.values-grid,.steps,.form__row,.footer-grid{grid-template-columns:1fr}
  .timeline div{border-right:0;border-bottom:1px solid var(--line)}
  .timeline div + div{padding-left:0}
  .cat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stats{grid-template-columns:1fr 1fr}
  .hero__actions .btn{flex:1 1 100%}
  .lightbox__prev,.lightbox__next{top:auto;bottom:1.1rem;transform:none}
  .lightbox__prev{left:1.1rem}.lightbox__next{right:1.1rem}
  .lightbox__caption{bottom:5rem}
  .facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .amenities{grid-template-columns:1fr}
  .agent-card{grid-template-columns:56px 1fr}
  .agent-card img{width:56px;height:56px}
  .listing-bar__count{display:none}
  .listing-bar__sort{margin-left:0;width:100%}
  .listing-bar__sort select{flex:1}
  .project__actions .btn{flex:1 1 100%}
  .filters__row{grid-template-columns:1fr 1fr}
  .prow{grid-template-columns:76px minmax(0,1fr) auto;padding:.8rem}
  .prow__thumb{width:76px}
  .prow__name h3{font-size:1.05rem}
  .prow__flags{font-size:.65rem;gap:.25rem .45rem;letter-spacing:.075em}
  .prow__flags span + span::before{margin-right:.45rem}
}
@media (max-width:380px){
  .seg button{padding:0 .85rem}
  .stats{grid-template-columns:1fr}
  .stat{border-right:0}
  .stat + .stat{padding-left:0}
}
