/* vision.css — VISION PREVIEW (Oct 10, 2026): the new Rohit section. Brand: 7th Avenue olive, gold and cream; Spectral +
   Jost. Phone first: thumb-reach actions at the bottom, rows you swipe, sheets that rise from the bottom; calm, editorial,
   quick. Dark is the site default (html.sar-dark); light follows the visitor's toggle. */

/* Stand-in fonts sized to the brand fonts (Spectral, Jost), so text wraps the same before and after they arrive and nothing
   moves when they do (widths measured Oct 10: Spectral is 97% of Georgia, its italic 88% of Georgia italic, Jost ~95% of
   Arial). Before this, the hub headline re-wrapped on a slow phone and pushed the page down (layout shift 0.23). */
@font-face{font-family:'Spectral Fallback';font-style:normal;font-weight:100 400;src:local('Georgia');size-adjust:96.9%;}
@font-face{font-family:'Spectral Fallback';font-style:normal;font-weight:500 900;src:local('Georgia');size-adjust:98.6%;}
@font-face{font-family:'Spectral Fallback';font-style:italic;font-weight:100 900;src:local('Georgia Italic'),local('Georgia-Italic'),local('Georgia');size-adjust:88.2%;}
@font-face{font-family:'Jost Fallback';font-style:normal;font-weight:100 350;src:local('Arial'),local('ArialMT');size-adjust:93.1%;}
@font-face{font-family:'Jost Fallback';font-style:normal;font-weight:351 900;src:local('Arial'),local('ArialMT');size-adjust:95.2%;}
:root{
  --bg:#EFEDE5; --bg2:#E6E3D7; --card:#FBFAF4; --ink:#26231A; --ink2:#4A4536; --ink3:#67614B;
  --line:rgba(52,47,28,.13); --line2:rgba(52,47,28,.24); --gold:#6B6142; --olive:#544E2E; --fill:#544E2E; --fill-ink:#F7F5EE;
  --chip:#E6E2D5; --ok:#3B5A44; --amber:#6B4E12; --amber-bg:#F2E8CF; --veil:rgba(239,237,229,.9);
  --shadow:0 1px 2px rgba(40,36,20,.06),0 14px 34px -20px rgba(40,36,20,.38);
  --r:18px; --r2:14px; --serif:Spectral,'Spectral Fallback',Georgia,'Times New Roman',serif; --sans:Jost,'Jost Fallback',system-ui,-apple-system,'Segoe UI',sans-serif;
  --pad:var(--col-pad); --ease:cubic-bezier(.2,.8,.2,1); --navh:57px; --barh:0px;
  --maxw:var(--col-max); /* the page's one column — the site's (assets/theme.css --col-pad / --col-max, Oct 25): every title, row, grid and list shares its edges with the header's logo and the footer */
}
html.sar-dark{
  --bg:#0B0A07; --bg2:#121109; --card:#17160F; --ink:#EFECE3; --ink2:rgba(239,236,227,.76); --ink3:rgba(239,236,227,.56);
  --line:rgba(232,228,214,.10); --line2:rgba(232,228,214,.20); --gold:#CFC4A0; --olive:#B3AA8D; --fill:#C9BE9A; --fill-ink:#0B0A07;
  --chip:#1F1E15; --ok:#A9C79E; --amber:#E9BC72; --amber-bg:rgba(233,188,114,.14); --veil:rgba(11,10,7,.86); --shadow:none;
}
@view-transition{navigation:auto;}
::view-transition-old(root),::view-transition-new(root){animation-duration:.28s;}
::view-transition-group(hero){animation-duration:.42s;animation-timing-function:var(--ease);}
@media (prefers-reduced-motion:reduce){@view-transition{navigation:none;} *{animation-duration:.001s!important;transition-duration:.001s!important;scroll-behavior:auto!important;}}

*,*::before,*::after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html{scroll-padding-top:calc(var(--navh) + 70px);}
body.rv{margin:0;background:var(--bg);color:var(--ink);font:400 15px/1.55 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
:where(body.rv) img{display:block;max-width:100%;height:auto;}
:where(body.rv) a{color:inherit;}
:where(body.rv) button{font:inherit;color:inherit;}
body.rv :focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:6px;}
.skip{position:absolute;left:-999px;top:8px;z-index:9999;background:var(--fill);color:var(--fill-ink);padding:10px 14px;border-radius:10px;}
.skip:focus{left:12px;}
main{display:block;overflow-x:clip;}
h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:-.01em;margin:0;}
.eyebrow{font:500 10.5px/1.3 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin:0 0 12px;}
.hint{font-size:12.5px;line-height:1.55;color:var(--ink3);margin:10px 0 0;}
svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:50px;padding:0 22px;border-radius:999px;border:1px solid transparent;text-decoration:none;cursor:pointer;
  font:500 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;transition:transform .3s var(--ease),background .25s,border-color .25s,color .25s;white-space:nowrap;}
.btn:active{transform:scale(.97);}
/* .btn.btn-* (two classes): the site's light-mode link colour (theme.css: html:not(.sar-dark) a) must never reach a button
   that is a link — it painted "Book a viewing" olive on olive on every listing page (Oct 11, found in a review screenshot) */
.btn-fill,.btn.btn-fill{background:var(--fill);color:var(--fill-ink);}
.btn-ghost,.btn.btn-ghost{background:transparent;border-color:var(--line2);color:var(--ink);}
.btn-ghost:hover{border-color:var(--gold);}
.btn[disabled]{opacity:.4;pointer-events:none;}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:50px;height:50px;border-radius:50%;border:1px solid var(--line2);background:transparent;cursor:pointer;}

/* ---- hero + plain-words search ---- */
.hero{padding:clamp(28px,6vh,72px) var(--pad) 22px;max-width:var(--maxw);margin:0 auto;}
.hero h1{font-weight:300;font-size:clamp(42px,11vw,92px);line-height:.98;letter-spacing:-.025em;}
.hero h1 em{font-style:italic;color:var(--gold);}
.live{display:flex;align-items:flex-start;gap:10px;margin:16px 0 22px;font-size:13.5px;line-height:1.5;color:var(--ink2);}
.live b{color:var(--ink);font-weight:500;}
.pulse{width:8px;height:8px;margin-top:6px;border-radius:50%;background:var(--ok);flex:none;box-shadow:0 0 0 0 rgba(120,170,120,.6);animation:pulse 2.4s infinite;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(120,170,120,.55);}70%{box-shadow:0 0 0 10px rgba(120,170,120,0);}100%{box-shadow:0 0 0 0 rgba(120,170,120,0);}}
.ask{max-width:none;}
.ask-box{max-width:760px;display:flex;align-items:center;gap:12px;min-height:60px;padding:0 8px 0 20px;border-radius:20px;background:var(--card);border:1px solid var(--line2);box-shadow:var(--shadow);transition:border-color .25s,box-shadow .25s;cursor:text;}
.ask-box:focus-within{border-color:var(--gold);box-shadow:0 0 0 4px color-mix(in srgb,var(--gold) 18%,transparent),var(--shadow);}
.ask-box>svg{color:var(--gold);width:20px;height:20px;}
.ask-box input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font:400 16.5px/1.3 var(--sans);padding:12px 0;-webkit-appearance:none;appearance:none;}
.ask-box input:focus-visible{outline:none;}
.ask-box input::placeholder{color:var(--ink3);opacity:1;}
.ask-box input::-webkit-search-cancel-button{display:none;}
.ask-go{flex:none;width:46px;height:46px;border-radius:14px;border:0;background:var(--fill);color:var(--fill-ink);display:flex;align-items:center;justify-content:center;cursor:pointer;}
.ask-out{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:0;margin:12px 0 0;}
.ask-out:empty{display:none;}
.ask-out .got{font-size:12.5px;color:var(--ink3);margin-right:2px;}
.ask-out .res{font-size:13px;color:var(--ink2);margin-left:4px;}
.ask-out .res b{color:var(--ink);font-weight:500;}
.ask-out .res a{color:var(--gold);}
.vpill{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 8px 0 13px;border-radius:999px;background:var(--chip);border:1px solid var(--line);font-size:13px;color:var(--ink);cursor:pointer;}
.vpill i{font-style:normal;opacity:.55;font-size:15px;line-height:1;padding:0 3px;}
/* ideas wrap — nothing is ever cut off, nothing needs dragging (Fadi, Oct 10); a phone shows the best four */
.ask-try{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 0;}
@media (max-width:640px){.ask-try .try:nth-child(n+5){display:none;}}
.try{flex:none;min-height:38px;padding:0 15px;border-radius:999px;border:1px solid var(--line2);background:transparent;font-size:13px;color:var(--ink2);cursor:pointer;transition:border-color .2s,color .2s;}
.try:hover{border-color:var(--gold);color:var(--ink);}

/* ---- section headers + rails ---- */
.sec-h{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:0 var(--pad);margin:0 auto 14px;max-width:var(--maxw);}
.sec-h h2{font-size:clamp(23px,5.6vw,32px);line-height:1.12;}
.sec-h p{margin:5px 0 0;font-size:13px;color:var(--ink3);}
.see{display:inline-flex;align-items:center;gap:6px;flex:none;border:0;background:transparent;padding:8px 0;color:var(--gold);font:500 12px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;}
.see .n{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;padding:0 6px;border-radius:999px;background:var(--chip);color:var(--ink);letter-spacing:0;}
.see svg{width:15px;height:15px;}
.rail{display:flex;gap:14px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--pad);padding:4px var(--pad) 12px;scrollbar-width:none;}
.rail::-webkit-scrollbar{display:none;}
.rail>*{flex:0 0 auto;scroll-snap-align:start;}
/* wide touch screens: a row starts on the page's column and runs off the right edge (each row sits in a .rail-wrap, which
   carries the arrows, so these match any depth) */
@media (min-width:1240px){.comms .rail,.shelf .rail,.models .rail,.others .rail{padding-inline:max(var(--pad),calc((100% - var(--maxw))/2 + var(--pad)));scroll-padding-inline:max(var(--pad),calc((100% - var(--maxw))/2 + var(--pad)));}}   /* 100% (the section's width), not 100vw: a scrollbar's width would otherwise shift the cards off the column (Oct 25) */
/* a computer with a mouse: every row sits inside the page's column — the same left and right edges as the titles, the search,
   the budget line and the home grid — and shows whole cards that line up with that grid: 3 homes or photos, 4 communities or
   plans; the arrows sit on the column's edges (Fadi, Oct 10: "very unorganized here on desktop … make it feel more aligned") */
@media (min-width:1100px) and (hover:hover) and (pointer:fine){
  body.rv .rail-wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad);}
  body.rv .rail-wrap>.rail{gap:24px;padding-inline:0;scroll-padding-inline:0;}
  body.rv .rail-wrap>.rail>.cc,body.rv .rail-wrap>.rail>.mdl{width:auto;flex:0 0 calc((100% - 3*24px)/4);}
  body.rv .rail-wrap>.rail>.hc--compact,body.rv .rail-wrap>.rail--photo>.ph,body.rv .rail-wrap>.rail--plan>.pl{width:auto;flex:0 0 calc((100% - 2*24px)/3);}
  body.rv .rail-wrap>.rail-nav.prev{left:calc(var(--pad) - 23px);}
  body.rv .rail-wrap>.rail-nav.next{right:calc(var(--pad) - 23px);}
}
/* big screens: a wider column, one more card in every row and the grid (4 homes, 5 communities) */
@media (min-width:1680px) and (hover:hover) and (pointer:fine){
  body.rv .rail-wrap>.rail>.cc,body.rv .rail-wrap>.rail>.mdl{flex-basis:calc((100% - 4*24px)/5);}
  body.rv .rail-wrap>.rail>.hc--compact,body.rv .rail-wrap>.rail--photo>.ph,body.rv .rail-wrap>.rail--plan>.pl{flex-basis:calc((100% - 3*24px)/4);}
}
.comms,.shelf,.pals,.models,.sitemap,.others{margin:clamp(28px,5vh,46px) 0 0;}

/* ---- community cards ---- */
.cc{position:relative;display:block;width:min(66vw,280px);aspect-ratio:5/6;border-radius:var(--r);overflow:hidden;text-decoration:none;background:var(--bg2);isolation:isolate;}
.cc img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease);}
.cc:hover img{transform:scale(1.04);}
.cc::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 38%,rgba(0,0,0,.78));}
.cc-in{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:18px;display:flex;flex-direction:column;gap:3px;color:#F4F2EB;}
.cc-in b{font:400 27px/1.05 var(--serif);}
.cc-in span{font-size:12.5px;opacity:.82;}
.cc-in .cc-m{opacity:1;font-weight:500;margin-top:6px;font-size:13px;}

/* ---- budget line ---- */
.bline{padding:0 var(--pad);margin:22px auto 0;max-width:var(--maxw);}
.bline-b{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:12px 16px;border-radius:14px;border:1px dashed var(--line2);background:transparent;cursor:pointer;text-align:left;font-size:12.5px;color:var(--ink2);}
.bline-b b{color:var(--ink);font-weight:500;}
.bline-b u{flex:none;color:var(--gold);text-underline-offset:3px;font-weight:500;}

/* ---- the home card ---- */
.hc{position:relative;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);transition:transform .35s var(--ease),border-color .3s;}
@media (hover:hover){.hc:hover{transform:translateY(-3px);border-color:var(--line2);}}
.hc--compact{width:min(80vw,320px);}
.hc-media{position:relative;aspect-ratio:4/3;background:var(--bg2);overflow:hidden;}
.hc--compact .hc-media{aspect-ratio:16/11;}
.hc-track{display:flex;height:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;}
.hc-track::-webkit-scrollbar{display:none;}
.hc-track:focus-visible{outline:3px solid var(--gold);outline-offset:-3px;border-radius:inherit;}   /* the strip the keyboard reached: ← → move its photos (vision.js; Oct 25, 2026) */
.hc-slide{flex:0 0 100%;height:100%;scroll-snap-align:start;scroll-snap-stop:always;}
.hc-slide img{width:100%;height:100%;object-fit:cover;}
.hc-media::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.28),rgba(0,0,0,0) 30%,rgba(0,0,0,0) 62%,rgba(0,0,0,.42));}
.hc-dots{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);z-index:2;display:flex;gap:5px;}
.hc-dots i{width:6px;height:6px;border-radius:999px;background:rgba(255,255,255,.55);transition:width .3s var(--ease),background .3s;}
.hc-dots i.on{width:16px;background:#fff;}
.hc-flag{position:absolute;top:12px;left:12px;z-index:2;font:500 10px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;padding:7px 10px;border-radius:999px;background:rgba(14,13,9,.62);color:#F4F2EB;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);}
.hc-flag.is-quick{background:rgba(63,97,70,.92);}
.hc-flag.is-cond{background:rgba(233,188,114,.95);color:#2A1D05;}
.hc-flag.is-new{background:#F4F2EB;color:#1B1912;}
.hc-heart{position:absolute;top:8px;right:8px;z-index:3;width:44px;height:44px;border-radius:50%;border:0;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;}
.hc-heart svg{width:24px;height:24px;fill:rgba(0,0,0,.28);stroke:#fff;stroke-width:1.8;filter:drop-shadow(0 1px 3px rgba(0,0,0,.4));transition:transform .3s var(--ease),fill .2s;}
.hc-heart[aria-pressed="true"] svg{fill:#E0566B;stroke:#E0566B;transform:scale(1.08);}
.hc-heart.pop svg{animation:pop .45s var(--ease);}
@keyframes pop{0%{transform:scale(1);}40%{transform:scale(1.35);}100%{transform:scale(1.08);}}
.hc-pal{position:absolute;left:12px;bottom:12px;z-index:2;display:inline-flex;align-items:center;gap:7px;font:500 11px/1 var(--sans);letter-spacing:.04em;color:#F4F2EB;text-shadow:0 1px 3px rgba(0,0,0,.5);}
.hc--compact .hc-pal{bottom:10px;}
.sw{display:inline-flex;}
.sw i{width:11px;height:11px;border-radius:50%;border:1.5px solid rgba(255,255,255,.9);margin-left:-3px;box-shadow:0 1px 2px rgba(0,0,0,.3);}
.sw i:first-child{margin-left:0;}
.hc-dots + .hc-flag{}
.hc-media:has(.hc-dots) .hc-pal{bottom:30px;}
.hc-body{flex:1;display:flex;flex-direction:column;gap:6px;padding:15px 16px 16px;}
.hc-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;}
.hc-price{font:400 25px/1 var(--serif);letter-spacing:-.01em;font-variant-numeric:lining-nums;}
.hc-pay{font-size:12.5px;color:var(--ink3);white-space:nowrap;}
.hc-pay b{color:var(--gold);font-weight:500;}
.hc-addr{font:500 15px/1.3 var(--sans);letter-spacing:.005em;}
.hc-addr a{text-decoration:none;}
.hc-addr a::after{content:"";position:absolute;inset:0;z-index:1;}
.hc-media .hc-track{position:absolute;inset:0;z-index:2;}
.hc-heart{z-index:3;}
.hc-heart{position:absolute;}
.hc-sub{margin:0;font-size:13px;color:var(--ink3);}
.hc-facts{display:flex;flex-wrap:wrap;gap:4px 12px;margin:4px 0 0;padding-top:10px;border-top:1px solid var(--line);font-size:13px;color:var(--ink2);}
.hc-facts .m{margin-left:auto;color:var(--ink3);}
.hc-tags{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:4px 0 0;padding:0;}
.hc-tags li{font-size:12px;line-height:1.3;padding:5px 9px;border-radius:8px;background:var(--chip);color:var(--ink);}
.hc--compact .hc-tags li:nth-child(n+2){display:none;}
.hc-move{display:flex;align-items:center;gap:10px;margin-top:auto;padding-top:8px;font-size:12px;color:var(--ink2);}
.hc-move .bar{position:relative;flex:0 0 64px;height:4px;border-radius:999px;background:var(--line2);overflow:hidden;}
.hc-move .bar i{position:absolute;inset:0;width:calc(var(--p)*100%);border-radius:inherit;background:linear-gradient(90deg,var(--olive),var(--ok));}

/* ---- all homes: smart bar + grid ---- */
.all{max-width:var(--maxw);margin:clamp(34px,6vh,60px) auto 0;padding:0 var(--pad);}
.all-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px;}
.all-h h2{font-size:clamp(26px,6vw,38px);}
.count{margin:0;font-size:13px;color:var(--ink3);}
.count b{color:var(--ink);font-weight:500;}
.sbar{position:sticky;top:var(--navh);z-index:30;display:flex;align-items:center;gap:8px;margin:0 calc(-1*var(--pad));padding:10px var(--pad);background:var(--veil);-webkit-backdrop-filter:blur(16px) saturate(1.2);backdrop-filter:blur(16px) saturate(1.2);border-bottom:1px solid transparent;transition:transform .35s var(--ease),border-color .3s;}
.sbar.stuck{border-bottom-color:var(--line);}
.sbar.away{transform:translateY(calc(-100% - var(--navh)));}
.sb-btn,.sb-sort{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 15px;border-radius:999px;border:1px solid var(--line2);background:var(--card);font-size:13.5px;cursor:pointer;color:var(--ink);}
.sb-sort{flex:1;min-width:0;max-width:260px;}
.sb-sort select{flex:1;min-width:0;border:0;background:transparent;color:var(--ink);font:inherit;outline:0;-webkit-appearance:none;appearance:none;cursor:pointer;}
.sb-saved{margin-left:auto;padding:0 13px;}
.sb-saved svg{width:19px;height:19px;}
.bdg{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--fill);color:var(--fill-ink);font-size:11px;font-weight:500;}
.bdg[hidden]{display:none;}
.active{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0;}
.active:empty{display:none;}
.grid{display:grid;grid-template-columns:1fr;gap:16px;margin-top:14px;}
@media (min-width:680px){.grid{grid-template-columns:repeat(2,1fr);gap:20px;}}
@media (min-width:1100px){.grid{grid-template-columns:repeat(3,1fr);gap:24px;}}
@media (min-width:1680px){.grid{grid-template-columns:repeat(4,1fr);}}
.grid-more{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:26px 0 0;}
.grid-more .btn{max-width:100%;white-space:normal;text-align:center;line-height:1.3;}
.empty{grid-column:1/-1;padding:40px 10px;text-align:center;color:var(--ink2);}
.empty b{display:block;font:400 24px/1.2 var(--serif);color:var(--ink);margin-bottom:8px;}

/* ---- palettes ---- */
.pal-grid{display:grid;gap:14px;padding:0 var(--pad);max-width:var(--maxw);margin:0 auto;}
@media (min-width:860px){.pal-grid{grid-template-columns:repeat(3,1fr);}}
.pal{position:relative;display:block;width:100%;min-height:340px;padding:0;border:0;border-radius:var(--r);overflow:hidden;cursor:pointer;text-align:left;background:var(--bg2);isolation:isolate;}
.pal img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease);}
.pal:hover img{transform:scale(1.04);}
.pal::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05) 20%,rgba(0,0,0,.82));}
.pal-in{position:absolute;inset:auto 0 0 0;z-index:1;display:flex;flex-direction:column;gap:6px;padding:20px;color:#F4F2EB;}
.pal-in b{font:400 30px/1 var(--serif);margin-top:6px;}
.pal-in .w{font-size:11px;letter-spacing:.18em;text-transform:uppercase;opacity:.85;}
.pal-in .st{font-size:13.5px;line-height:1.5;opacity:.9;max-width:36ch;}
.pal-in .n{display:inline-flex;align-items:center;gap:6px;margin-top:6px;font:500 12px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:#E9DFC0;}
.pal-in .n svg{width:15px;height:15px;}
.sw--lg i{width:22px;height:22px;margin-left:-5px;border-width:2px;}

/* ---- guide, spec, FAQ, notes ---- */
.vguide{display:flex;gap:18px;align-items:center;max-width:var(--maxw);margin:clamp(40px,7vh,70px) auto 0;padding:22px var(--pad);}
.vguide img{width:96px;height:96px;border-radius:50%;object-fit:cover;flex:none;}
.vguide h2{font-size:26px;}
.vguide p{margin:6px 0 0;color:var(--ink2);max-width:52ch;}
.guide-a{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;}
@media (max-width:560px){.vguide{flex-direction:column;align-items:flex-start;}}
.spec,.faq,.cguide{max-width:var(--maxw);margin:clamp(34px,6vh,60px) auto 0;padding:0 var(--pad);}
.spec h2,.faq h2,.cguide h2{font-size:clamp(23px,5.6vw,32px);margin-bottom:14px;}
.spec ul{list-style:none;margin:0;padding:0;display:grid;gap:2px 22px;}
@media (min-width:760px){.spec ul{grid-template-columns:1fr 1fr;}}
.spec li{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line);font-size:14.5px;}
.spec li svg{color:var(--ok);margin-top:2px;}
.spec h3{font-size:clamp(20px,4.8vw,26px);margin-bottom:8px;}
.spec-di .lead{max-width:62ch;margin-bottom:8px;}
.spec-di li svg{color:var(--gold);}
/* each list opens with a tap (closed on phones, opened on a computer by vision.js) */
.spec-d{border-bottom:1px solid var(--line);}
.spec-d>summary{position:relative;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px;padding:16px 36px 16px 0;cursor:pointer;list-style:none;}
.spec-d>summary::-webkit-details-marker{display:none;}
.spec-d>summary::after{content:"+";position:absolute;right:4px;top:14px;font:300 26px/1 var(--sans);color:var(--gold);transition:transform .3s var(--ease);}
.spec-d[open]>summary::after{transform:rotate(45deg);}
.spec-d>summary h2,.spec-d>summary h3{margin:0;}
.spec-n{font-size:12.5px;color:var(--ink3);}
.spec-d>.hint{margin-bottom:16px;}
.faq details{border-bottom:1px solid var(--line);}
.faq summary{cursor:pointer;list-style:none;padding:16px 30px 16px 0;position:relative;font:400 18px/1.35 var(--serif);}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";position:absolute;right:4px;top:14px;font:300 24px/1 var(--sans);color:var(--gold);transition:transform .3s var(--ease);}
.faq details[open] summary::after{transform:rotate(45deg);}
.faq details p{margin:0 0 16px;color:var(--ink2);max-width:70ch;}
.faq details p b{color:var(--ink);font-weight:500;}
.cguide p{color:var(--ink2);max-width:60ch;margin:0 0 16px;}
.datanote{width:calc(100% - 2*var(--pad));max-width:calc(var(--maxw) - 2*var(--pad));margin:clamp(40px,7vh,70px) auto 0;padding:18px 0 26px;font-size:11.5px;line-height:1.7;color:var(--ink3);border-top:1px solid var(--line);}
.datanote b{color:var(--ink2);font-weight:500;}
/* the hub's questions end on a rule: the note under them doesn't draw a second one (Fadi, Oct 12: "Yes to all" — the computer view gets the same fix as the phone) */
.rv-hub .datanote{border-top:0;margin-top:26px;}
.legal{padding:16px var(--pad) 22px;text-align:center;font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;line-height:2;color:var(--ink3);}
.alert-cta{max-width:var(--maxw);margin:clamp(30px,5vh,50px) auto 0;padding:22px var(--pad);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;}
.alert-cta p{margin:0;font:400 19px/1.35 var(--serif);max-width:36ch;}

/* ---- bottom bars (phones) ---- */
.qbar,.hbar{display:none;}
@media (max-width:899px){
  body.rv{padding-bottom:calc(76px + env(safe-area-inset-bottom));}
  .qbar,.hbar{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:60;display:flex;align-items:center;gap:6px;padding:6px;border-radius:999px;background:var(--veil);
    -webkit-backdrop-filter:blur(18px) saturate(1.3);backdrop-filter:blur(18px) saturate(1.3);border:1px solid var(--line2);box-shadow:0 18px 40px -18px rgba(0,0,0,.55);}
  .qbar a,.qbar button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:48px;border-radius:999px;border:0;background:transparent;text-decoration:none;font:500 11.5px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);cursor:pointer;white-space:nowrap;}
  .qbar svg{width:16px;height:16px;}
  @media (max-width:400px){.qbar .qbar-book svg{display:none;}}
  .qbar .qbar-book{flex:1.4;background:var(--fill);color:var(--fill-ink);}
  .hbar-p{flex:1;min-width:0;display:flex;flex-direction:column;padding:0 12px;line-height:1.2;}
  .hbar-p b{font:400 20px/1.1 var(--serif);}
  .hbar-p span{font-size:11.5px;color:var(--ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .hbar-p span b{font:500 11.5px/1.2 var(--sans);color:var(--gold);}
  .hbar-t{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;border:1px solid var(--line2);color:var(--ink);}
  .hbar .btn{min-height:48px;padding:0 18px;}
}

/* ---- sheets (dialogs that rise from the bottom on phones) ---- */
dialog.sheet{position:fixed;inset:auto 0 0 0;margin:0;width:100%;max-width:none;max-height:min(90dvh,820px);padding:0;border:0;border-radius:24px 24px 0 0;background:var(--bg);color:var(--ink);overflow:hidden;box-shadow:0 -20px 60px -20px rgba(0,0,0,.5);}
dialog.sheet[open]{display:flex;animation:sheetUp .42s var(--ease);}
dialog.sheet::backdrop{background:rgba(8,7,4,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade .3s ease;}
@keyframes sheetUp{from{transform:translateY(100%);}to{transform:none;}}
@keyframes fade{from{opacity:0;}to{opacity:1;}}
@media (min-width:760px){dialog.sheet{inset:0;margin:auto;width:min(560px,92vw);max-height:min(86dvh,820px);border-radius:24px;}dialog.sheet[open]{animation:pop2 .32s var(--ease);}dialog.sheet--wide{width:min(1000px,94vw);}}
@keyframes pop2{from{opacity:0;transform:translateY(18px) scale(.98);}to{opacity:1;transform:none;}}
.sheet-in{display:flex;flex-direction:column;width:100%;max-height:inherit;min-height:0;}
.sheet-h{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 20px 14px;border-bottom:1px solid var(--line);position:relative;}
.sheet-h::before{content:"";position:absolute;top:8px;left:50%;width:40px;height:4px;margin-left:-20px;border-radius:999px;background:var(--line2);}
@media (min-width:760px){.sheet-h::before{display:none;}}
.sheet-h h2{font-size:26px;}
.x{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;border:1px solid var(--line2);background:transparent;cursor:pointer;color:var(--ink);}
.sheet-b{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px 20px 20px;}
.sheet-f{display:flex;gap:10px;padding:14px 20px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);}
.sheet-f .btn{flex:1;}
.lead{margin:0 0 14px;color:var(--ink2);}
.seg{border:0;margin:0 0 18px;padding:0;}
.seg legend{padding:0;margin:0 0 10px;font:500 11px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink3);}
.chips{display:flex;flex-wrap:wrap;gap:8px;}
.chip{min-height:42px;padding:0 15px;border-radius:999px;border:1px solid var(--line2);background:var(--card);font-size:14px;cursor:pointer;color:var(--ink);transition:background .2s,border-color .2s,color .2s;}
.chip[aria-pressed="true"]{background:var(--fill);border-color:var(--fill);color:var(--fill-ink);}
.chip .c{opacity:.6;margin-left:4px;font-size:12px;}
.range{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.fld{display:block;margin:0 0 12px;}
.fld>span{display:block;font-size:12.5px;color:var(--ink2);margin-bottom:6px;}
.fld i{font-style:normal;color:var(--ink3);}
.fld input,.fld textarea,.fld select{width:100%;min-height:48px;padding:12px 14px;border-radius:12px;border:1px solid var(--line2);background:var(--card)!important;color:var(--ink)!important;font:400 16px/1.3 var(--sans);outline:0;-webkit-appearance:none;appearance:none;}
.fld input:focus,.fld textarea:focus,.fld select:focus{border-color:var(--gold);}
.ck{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--ink2);margin:6px 0 10px;cursor:pointer;}
.ck input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--olive);flex:none;}
.watch{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px;padding:12px;border-radius:14px;background:var(--chip);}
.watch .w0{font-size:13px;color:var(--ink2);}
.preview-note{margin:12px 0 0;padding:12px 14px;border-radius:12px;background:var(--amber-bg);color:var(--amber);font-size:13px;}
.b-example{margin:6px 0 0;padding:14px;border-radius:14px;background:var(--chip);font-size:13.5px;color:var(--ink2);}
.b-example b{color:var(--ink);font-weight:500;}
.saved-list{display:flex;flex-direction:column;gap:10px;}
.sv{display:grid;grid-template-columns:auto 76px 1fr;gap:12px;align-items:center;padding:8px;border-radius:14px;border:1px solid var(--line);background:var(--card);}
.sv input{width:22px;height:22px;accent-color:var(--olive);margin:0 4px;}
.sv img{width:76px;height:58px;border-radius:10px;object-fit:cover;}
.sv a{text-decoration:none;}
.sv b{display:block;font:400 18px/1.1 var(--serif);}
.sv span{font-size:12.5px;color:var(--ink3);}
.cmp{overflow-x:auto;}
.cmp table{border-collapse:collapse;width:100%;min-width:560px;font-size:13.5px;}
.cmp th,.cmp td{text-align:left;vertical-align:top;padding:10px 12px;border-bottom:1px solid var(--line);}
.cmp th{font-weight:500;color:var(--ink3);font-size:11px;letter-spacing:.12em;text-transform:uppercase;width:110px;}
.cmp td img{width:100%;max-width:220px;aspect-ratio:4/3;object-fit:cover;border-radius:10px;}
.cmp td b{font:400 20px/1.1 var(--serif);}
.cmp .best{color:var(--ok);font-weight:500;}
.toast{position:fixed;left:50%;bottom:calc(96px + env(safe-area-inset-bottom));transform:translate(-50%,20px);z-index:3000;padding:12px 18px;border-radius:999px;background:var(--ink);color:var(--bg);font-size:13.5px;opacity:0;pointer-events:none;transition:opacity .25s,transform .35s var(--ease);white-space:nowrap;}
.toast.on{opacity:1;transform:translate(-50%,0);}
@media (max-width:899px){.toast{bottom:calc(150px + env(safe-area-inset-bottom));}} /* clear of the bottom bar and the Jump button */
@media (min-width:900px){.toast{bottom:30px;}}

/* ---- community page ---- */
.ch{position:relative;min-height:min(78vh,640px);display:flex;align-items:flex-end;isolation:isolate;overflow:hidden;background:#15140E;} /* dark behind the photo: the cream text stays readable while it loads, or if it never does */
.ch-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;}
.ch::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.25),rgba(0,0,0,0) 26%,rgba(0,0,0,.18) 48%,rgba(0,0,0,.86));}
.ch-in{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--pad) 26px;color:#F4F2EB;}
.ch .crumbs{color:#F4F2EB;opacity:.85;margin-bottom:auto;}
/* the breadcrumb never sits on the eyebrow below it, on a computer too (Fadi, Oct 12: "Yes to all" — the computer view gets the same fix as the phone) */
@media (min-width:600px){.ch .crumbs{margin-bottom:10px;}}
/* "Back" at the top of the photo, where it sits on every page — the words stay at its foot (Fadi, Oct 11; assets/theme.css .sn-back) */
.ch-top{position:absolute;top:0;left:0;right:0;z-index:1;max-width:var(--maxw);margin:0 auto;padding:16px var(--pad) 0;box-sizing:border-box;}
.ch-top .sn-back{margin:0;}
.ch .eyebrow{color:#E6DCBB;}
.ch h1{font-weight:300;font-size:clamp(40px,10vw,84px);line-height:1;}
.ch-facts{display:flex;flex-wrap:wrap;gap:10px 26px;list-style:none;margin:18px 0 0;padding:0;}
.ch-facts li{display:flex;flex-direction:column;}
.ch-facts b{font:400 26px/1.1 var(--serif);}
.ch-facts span{font-size:11px;letter-spacing:.16em;text-transform:uppercase;opacity:.75;}
.ch-sub{margin:14px 0 0;font-size:13px;opacity:.82;}
.ch-cap{position:absolute;top:calc(var(--navh) + 10px);right:max(var(--pad),calc((100% - var(--maxw))/2 + var(--pad)));margin:0;font-size:10.5px;color:#F4F2EB;opacity:.7;text-shadow:0 1px 2px rgba(0,0,0,.6);max-width:60%;text-align:right;}
.mdl{display:flex;flex-direction:column;width:min(66vw,260px);padding:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--card);cursor:zoom-in;text-align:left;}
.mdl img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:top;background:#fff;}
.mdl-in{display:flex;flex-direction:column;gap:3px;padding:12px 14px 14px;}
.mdl-in b{font:400 19px/1.15 var(--serif);}
.mdl-in span{font-size:12.5px;color:var(--ink3);}
.mdl-in .n{color:var(--gold);font-weight:500;}
.sitemap .map-btn,.where .map-btn{margin:0 var(--pad);}
.map-btn{position:relative;display:block;width:calc(100% - 2*var(--pad));max-width:calc(var(--maxw) - 2*var(--pad));padding:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff;cursor:zoom-in;}
@media (min-width:1440px){.map-btn{margin-inline:auto!important;}}   /* centred once the column has stopped growing (--col-max) */
.map-btn img{width:100%;}
.zoom-hint{position:absolute;right:12px;bottom:12px;display:inline-flex;align-items:center;gap:7px;padding:9px 13px;border-radius:999px;background:rgba(14,13,9,.72);color:#F4F2EB;font-size:12px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);}
.zoom-hint svg{width:15px;height:15px;}
.cguide .btn{margin-top:4px;}

/* ---- home page ---- */
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;color:var(--ink3);}
.crumbs a{text-decoration:none;color:inherit;}
.crumbs a:hover{color:var(--gold);}
.crumbs--home{max-width:var(--maxw);margin:0 auto;padding:14px var(--pad) 10px;}
/* the top of a home's page: "Back" (assets/theme.css .sn-back), then the breadcrumbs — the listing pages' .ix-top (Fadi, Oct 11) */
.nh-top{max-width:var(--maxw);margin:0 auto;padding:12px var(--pad) 0;}
.nh-top .sn-back{margin:0;}
.nh-top .crumbs--home{max-width:none;margin:0;padding:8px 0 10px;}
.hm{max-width:var(--maxw);margin:0 auto;}
@media (min-width:900px){.hm{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(340px,1fr);gap:36px;padding:0 var(--pad);align-items:start;}
  .hm-i{position:sticky;top:calc(var(--navh) + 18px);}}
.hm-g{position:relative;}
.g-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;aspect-ratio:4/3;background:var(--bg2);overscroll-behavior-x:contain;}
.g-track::-webkit-scrollbar{display:none;}
@media (min-width:900px){.g-track{border-radius:var(--r);}}
.g-slide{flex:0 0 100%;margin:0;scroll-snap-align:start;scroll-snap-stop:always;position:relative;}
.g-slide img{width:100%;height:100%;object-fit:cover;cursor:zoom-in;}
.g-slide figcaption{position:absolute;left:12px;right:60px;bottom:12px;font-size:11.5px;line-height:1.35;color:#F4F2EB;text-shadow:0 1px 3px rgba(0,0,0,.7);}
.g-slide:first-child img{view-transition-name:hero;}
.g-ui{position:absolute;top:12px;right:12px;display:flex;gap:8px;z-index:2;}
.g-n{display:inline-flex;align-items:center;padding:0 11px;height:34px;border-radius:999px;background:rgba(14,13,9,.62);color:#F4F2EB;font-size:12px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);}
.g-x{position:relative;width:34px;height:34px;border-radius:50%;border:0;background:rgba(14,13,9,.62);color:#F4F2EB;display:flex;align-items:center;justify-content:center;cursor:pointer;}
.g-x::after{content:"";position:absolute;inset:-5px;}   /* a 44 px touch ring round the 34 px button; nothing on screen moves (Batch 3, Oct 25) */
.g-x svg{width:15px;height:15px;}
.g-thumbs{display:none;}
@media (min-width:900px){.g-thumbs{display:flex;gap:8px;margin-top:10px;overflow-x:auto;scrollbar-width:none;}
  .g-thumbs button{flex:none;width:80px;height:60px;padding:0;border:2px solid transparent;border-radius:10px;overflow:hidden;cursor:pointer;background:var(--bg2);opacity:.7;transition:opacity .2s,border-color .2s;}
  .g-thumbs button.on{border-color:var(--gold);opacity:1;}
  .g-thumbs img{width:100%;height:100%;object-fit:cover;}}
.hm-i{padding:18px var(--pad) 0;}
@media (min-width:900px){.hm-i{padding:0;}}
.hm-flags{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px;}
.hm-act{display:flex;gap:6px;margin-left:auto;}
.hm-act .icon-btn{width:42px;height:42px;}
.hm-act .icon-btn svg{width:19px;height:19px;}
.tag{font:500 10.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;padding:7px 10px;border-radius:999px;background:var(--chip);color:var(--ink2);}
.tag--quick{background:rgba(63,97,70,.16);color:var(--ok);}
.tag--cond{background:var(--amber-bg);color:var(--amber);}
.hm-a{font-weight:400;font-size:clamp(30px,7.4vw,44px);line-height:1.05;}
.hm-s{margin:8px 0 0;color:var(--ink3);font-size:14px;}
.hm-p{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px;margin:18px 0 0;}
.hm-price{font:300 clamp(36px,9vw,48px)/1 var(--serif);letter-spacing:-.02em;}
.hm-pay{display:inline-flex;align-items:baseline;gap:10px;border:0;background:transparent;padding:4px 0;cursor:pointer;font-size:14px;color:var(--ink2);}
.hm-pay b{color:var(--gold);font-weight:500;}
.hm-pay u{font-size:12px;color:var(--gold);text-underline-offset:3px;}
.hm-f{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;list-style:none;margin:20px 0 0;padding:0;}
.hm-f li{display:flex;flex-direction:column;gap:5px;padding:12px 10px;border-radius:14px;background:var(--card);border:1px solid var(--line);}
.hm-f svg{color:var(--gold);width:19px;height:19px;}
/* the four values in one type and size, each on one line ("Double" / "detached garage" like "3" / "bedrooms" —
   build-new-homes.mjs parkingOf), so the four labels start on one line too (Oct 12 phone review) */
.hm-f b{font:400 19px/1.1 var(--serif);word-break:break-word;}
.hm-f span{font-size:11px;color:var(--ink3);letter-spacing:.06em;}
@media (max-width:420px){.hm-f{gap:6px;} .hm-f li{padding:12px 8px;} .hm-f b{font-size:clamp(17px,4.9vw,19px);}} /* "Double" fits a 360 px phone's tile */
@media (max-width:899px){.hm-f--long b{font-size:clamp(15px,4.1vw,19px);}} /* a longer parking word ("Full-size"): the row's four values a size down together */
.hm-rms{margin:10px 0 0;font-size:12.5px;line-height:1.5;color:var(--ink3);}   /* Rohit's measurement vs RMS (d-111) */
.hm-move{margin:18px 0 0;padding:16px;border-radius:16px;background:var(--card);border:1px solid var(--line);}
.mv-bar{height:6px;border-radius:999px;background:var(--line2);overflow:hidden;}
.mv-bar i{display:block;height:100%;width:calc(var(--p)*100%);border-radius:inherit;background:linear-gradient(90deg,var(--olive),var(--ok));transform-origin:left;animation:grow 1.1s var(--ease) both .2s;}
@keyframes grow{from{transform:scaleX(0);}}
.mv-t{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;margin-top:10px;}
.mv-t b{font-weight:500;}
.mv-t span{font-size:12px;color:var(--ink3);}
.mv-steps{display:flex;justify-content:space-between;list-style:none;margin:10px 0 0;padding:0;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);}
.hm-cta{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0;}
.hm-cta .btn{flex:1 1 150px;}
.hm-act .hc-heart{position:static;width:42px;height:42px;border:1px solid var(--line2);color:var(--ink);}
.hm-act .hc-heart svg{fill:transparent;stroke:currentColor;filter:none;width:20px;height:20px;}
.hm-act .hc-heart[aria-pressed="true"] svg{fill:#E0566B;stroke:#E0566B;}
.why,.hpal,.plan,.where,.money{max-width:var(--maxw);margin:clamp(34px,6vh,58px) auto 0;}
.why,.money{padding:0 var(--pad);}
.why h2,.money h2,.hpal h2{font-size:clamp(25px,6vw,34px);}
.why ul{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:10px;}
@media (min-width:760px){.why ul{grid-template-columns:1fr 1fr;}}
.why li{display:flex;gap:14px;align-items:center;padding:16px;border-radius:16px;background:var(--card);border:1px solid var(--line);font-size:15px;}
.why li svg{width:22px;height:22px;color:var(--gold);}
.why li.k-lot svg{color:var(--ok);}
.hpal-h{padding:0 var(--pad);}
.hpal-h .w{margin:6px 0 0;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);}
.hpal-h p{max-width:60ch;color:var(--ink2);margin:10px 0 0;}
.sw-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;list-style:none;margin:18px 0 6px;padding:0 var(--pad);max-width:560px;}
.sw-list li{display:flex;flex-direction:column;align-items:center;gap:7px;font-size:10.5px;line-height:1.25;text-align:center;color:var(--ink3);}
.sw-list i{width:100%;aspect-ratio:1;border-radius:14px;border:1px solid var(--line2);box-shadow:inset 0 0 0 3px rgba(255,255,255,.08);}
.rail--photo .ph,.rail--plan .pl{padding:0;border:0;border-radius:var(--r2);overflow:hidden;cursor:zoom-in;background:var(--bg2);}
.rail--photo .ph{width:min(80vw,420px);aspect-ratio:4/3;}
.rail--photo img,.rail--plan img{width:100%;height:100%;object-fit:cover;}
.rail--photo .ph--chart img{object-fit:contain;background:#E3DBCF;}
.rail--plan .pl{width:min(78vw,440px);aspect-ratio:1000/1294;background:#fff;border:1px solid var(--line);}
.rail--plan img{object-fit:contain;}
.plan>.btn{margin:4px var(--pad) 0;}
.tour{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin:12px var(--pad) 0;padding:16px;border-radius:16px;border:1px solid var(--line2);background:linear-gradient(120deg,color-mix(in srgb,var(--s1,#888) 22%,transparent),color-mix(in srgb,var(--s4,#888) 18%,transparent));}
.tour-in{display:flex;flex-direction:column;gap:3px;}
.tour-in b{font:400 18px/1.25 var(--serif);}
.tour-in span{font-size:12.5px;color:var(--ink3);}
.tour-frame{flex:1 0 100%;aspect-ratio:16/10;border-radius:12px;overflow:hidden;background:#000;}
.tour-frame iframe{width:100%;height:100%;border:0;}
.where-a{display:flex;flex-wrap:wrap;gap:8px;padding:14px var(--pad) 0;}
.money-card{margin-top:14px;padding:18px;border-radius:18px;background:var(--card);border:1px solid var(--line);}
.m-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px dashed var(--line);font-size:14px;color:var(--ink2);}
.m-row b{color:var(--ink);font-weight:500;}
.m-row.total{border:0;padding-top:14px;align-items:baseline;}
.m-row.total b{font:400 30px/1 var(--serif);color:var(--gold);}
.m-ctl{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 0;}
.m-ctl .chip{min-height:38px;font-size:13px;}
.gst{margin-top:12px;padding:14px 16px;border-radius:14px;background:var(--chip);font-size:13.5px;line-height:1.55;color:var(--ink2);}
.gst b{color:var(--ink);font-weight:500;}
.gst a{color:var(--gold);}

/* ---- image viewer ---- */
dialog.lb{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#060504;color:#F4F2EB;}
dialog.lb[open]{display:flex;flex-direction:column;animation:fade .25s ease;}
dialog.lb::backdrop{background:#060504;}
.lb-top{display:flex;align-items:center;gap:8px;padding:calc(10px + env(safe-area-inset-top)) 12px 10px;}
.lb-n{flex:1;font-size:13px;opacity:.8;}
.lb .x,.lb-zoom{width:44px;height:44px;border-color:rgba(255,255,255,.25);color:#F4F2EB;}   /* 44 px to touch (audit C M11: 42) */
.lb-zoom{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:transparent;cursor:pointer;}
/* the page behind the viewer does not scroll while it is open (showModal() leaves the document scrollable; audit C M11) */
html:has(dialog.lb[open]){overflow:hidden;}
.lb-zoom[aria-pressed="true"]{background:#F4F2EB;color:#060504;}
.lb-track{flex:1;min-height:0;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;}
.lb-track::-webkit-scrollbar{display:none;}
.lb-s{flex:0 0 100%;height:100%;overflow:auto;scroll-snap-align:center;display:flex;align-items:center;justify-content:center;touch-action:pan-x pan-y pinch-zoom;}
.lb-s img{max-width:100%;max-height:100%;object-fit:contain;}
.lb.zoomed .lb-track{scroll-snap-type:none;}
.lb.zoomed .lb-s{display:block;}
.lb.zoomed .lb-s img{max-width:none;max-height:none;width:240%;}
@media (min-width:900px){.lb.zoomed .lb-s img{width:170%;}}
.lb-cap{margin:0;padding:10px 16px calc(14px + env(safe-area-inset-bottom));font-size:12.5px;color:#F4F2EB;opacity:.82;text-align:center;}   /* the viewer is always black: its caption is cream in both themes (light read 2.1:1 — Batch 3 probe, Oct 25) */
html:not(.sar-dark) dialog.lb .lb-cap{color:#F4F2EB !important;}   /* theme.css paints every light-mode <p> ink (!important); the viewer's floor stays black */

/* ---- arrive gently ---- */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .7s var(--ease),transform .7s var(--ease);}
.reveal.in{opacity:1;transform:none;}

/* the site's light theme (theme.css) paints every field beige and recolours links; on these pages the fields follow our tokens */
html:not(.sar-dark) body.rv .ask-box input,html:not(.sar-dark) body.rv .sb-sort select{background-color:transparent!important;color:var(--ink)!important;border-color:transparent!important;}
html:not(.sar-dark) body.rv .fld input,html:not(.sar-dark) body.rv .fld textarea,html:not(.sar-dark) body.rv .fld select{background-color:var(--card)!important;color:var(--ink)!important;border-color:var(--line2)!important;}
html:not(.sar-dark) body.rv{background:var(--bg)!important;color:var(--ink)!important;}

/* ---- arrows for a mouse: rows, card photos, the gallery and the viewer (touch screens swipe; keyboards use Tab/arrows) ---- */
.rail-wrap{position:relative;}
.rail-nav,.hc-nav,.g-nav,.lb-nav{display:none;}
@media (hover:hover) and (pointer:fine){
  .rail-nav{position:absolute;top:50%;z-index:5;display:flex;align-items:center;justify-content:center;width:46px;height:46px;margin-top:-23px;border-radius:50%;
    border:1px solid var(--line2);background:var(--veil);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--ink);cursor:pointer;
    box-shadow:0 10px 26px -12px rgba(0,0,0,.5);transition:opacity .25s,transform .25s var(--ease);}
  .rail-nav:hover{transform:scale(1.06);}
  .rail-nav.prev{left:max(10px,calc((100vw - var(--maxw))/2 - 10px));}
  .rail-nav.next{right:max(10px,calc((100vw - var(--maxw))/2 - 10px));}
  .rail-wrap--in .rail-nav.prev{left:10px;} .rail-wrap--in .rail-nav.next{right:10px;}
  .rail-nav[hidden]{display:none;}
  .hc-nav{position:absolute;top:50%;z-index:4;display:flex;align-items:center;justify-content:center;width:34px;height:34px;margin-top:-17px;border-radius:50%;border:0;
    background:rgba(255,255,255,.9);color:#1B1912;cursor:pointer;opacity:0;transition:opacity .2s,transform .2s;box-shadow:0 4px 12px rgba(0,0,0,.25);}
  .hc-nav svg{width:16px;height:16px;}
  .hc-nav.prev{left:10px;} .hc-nav.next{right:10px;}
  .hc-media:hover .hc-nav:not([hidden]),.hc-media:focus-within .hc-nav:not([hidden]){opacity:1;}   /* a keyboard on the strip shows the arrows too (Oct 25, 2026) */
  .hc-nav:hover{transform:scale(1.08);}
  .hc-nav[hidden]{display:none;}
  .g-nav,.lb-nav{position:absolute;top:50%;z-index:3;display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin-top:-22px;border-radius:50%;border:0;
    background:rgba(255,255,255,.9);color:#1B1912;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.3);}
  .g-nav.prev,.lb-nav.prev{left:14px;} .g-nav.next,.lb-nav.next{right:14px;}
  .g-nav[hidden],.lb-nav[hidden]{display:none;}
  .lb{position:fixed;} .lb-nav{position:fixed;}
}

/* ===== faster up and down on a phone (t-177, Fadi, Oct 10: "the scrolling is too long … a jump to …") ===== */
/* Quick picks: the six rows as one row with tabs; tabs wrap, nothing cut off or dragged */
.picks{margin:clamp(28px,5vh,46px) 0 0;}
.picks-tabs{display:flex;flex-wrap:wrap;gap:8px;max-width:var(--maxw);margin:0 auto 14px;padding:0 var(--pad);}
.picks-tabs [role="tab"]{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 8px 0 14px;border-radius:999px;border:1px solid var(--line2);background:transparent;font-size:13px;color:var(--ink2);cursor:pointer;transition:background .2s,border-color .2s,color .2s;}
.picks-tabs [role="tab"]:hover{border-color:var(--gold);color:var(--ink);}
.picks-tabs [role="tab"] .n{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--chip);color:var(--ink);font-size:11px;}
.picks-tabs [role="tab"][aria-selected="true"]{background:var(--fill);border-color:var(--fill);color:var(--fill-ink);}
.picks-tabs [role="tab"][aria-selected="true"] .n{background:color-mix(in srgb,var(--fill-ink) 20%,transparent);color:var(--fill-ink);}
.picks-tabs [role="tab"][hidden]{display:none;}
.shelf.pick{margin:0;}
.pick-h{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;max-width:var(--maxw);margin:0 auto 10px;padding:0 var(--pad);}
.pick-h h3{font-size:clamp(19px,4.6vw,24px);line-height:1.15;}
.pick-h p{margin:4px 0 0;font-size:13px;color:var(--ink3);}

/* palettes: a row you swipe on a phone instead of three tall tiles */
@media (max-width:859px){
  .pal-grid{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--pad);overscroll-behavior-x:contain;scrollbar-width:none;}
  .pal-grid::-webkit-scrollbar{display:none;}
  .pal{flex:0 0 min(82vw,360px);min-height:320px;scroll-snap-align:start;}
}

/* a community's homes: the first 12, then "Show more" (every home stays in the page for search engines) */
.grid.clamp>.hc:nth-child(n+13){display:none;}

/* homes as a compact list: photo left, the facts right, about six to a phone screen (phones start here; the view
   button in the bar switches, and the choice is remembered) */
.sb-view{padding:0 12px;}
.sb-view span{display:inline-flex;}
.sb-view .v-cards,html.rv-list .sb-view .v-list{display:none;}
html.rv-list .sb-view .v-cards{display:inline-flex;}
html.rv-list .grid{grid-template-columns:1fr;gap:10px;}
@media (min-width:900px){html.rv-list .grid{grid-template-columns:1fr 1fr;gap:12px 20px;}}
html.rv-list .grid .hc{display:grid;grid-template-columns:clamp(112px,30vw,168px) minmax(0,1fr);border-radius:14px;}
html.rv-list .grid .hc-media{aspect-ratio:auto;height:100%;min-height:108px;}
html.rv-list .grid .hc-media .hc-track{overflow:hidden;}
html.rv-list .grid .hc-media::after,html.rv-list .grid .hc-dots,html.rv-list .grid .hc-pal,html.rv-list .grid .hc-tags,html.rv-list .grid .hc-nav{display:none;}
html.rv-list .grid .hc-flag{top:auto;bottom:6px;left:6px;padding:5px 7px;font-size:8.5px;letter-spacing:.1em;} /* clear of the heart */
html.rv-list .grid .hc-heart{top:0;right:0;width:40px;height:40px;}
html.rv-list .grid .hc-heart svg{width:20px;height:20px;}
html.rv-list .grid .hc-body{gap:2px;padding:10px 12px;}
html.rv-list .grid .hc-price{font-size:20px;}
html.rv-list .grid .hc-pay{font-size:11.5px;}
html.rv-list .grid .hc-addr{font-size:13.5px;}
html.rv-list .grid .hc-sub{font-size:12px;}
html.rv-list .grid .hc-facts{margin:2px 0 0;padding-top:0;border-top:0;gap:2px 9px;font-size:12px;}
html.rv-list .grid .hc-facts .m{margin-left:0;}
html.rv-list .grid .hc-move{padding-top:4px;font-size:11.5px;}
html.rv-list .grid .hc-move .bar{flex-basis:36px;}
@media (hover:hover){html.rv-list .grid .hc:hover{transform:none;}}

/* a home page: section tabs that stick under the header once the photos scroll away, and follow the scroll */
.htabs{position:sticky;top:var(--navh);z-index:30;margin:clamp(18px,3vh,28px) 0 0;background:var(--veil);-webkit-backdrop-filter:blur(16px) saturate(1.2);backdrop-filter:blur(16px) saturate(1.2);border-bottom:1px solid var(--line);}
.htabs-in{display:flex;gap:2px;max-width:var(--maxw);margin:0 auto;padding:0 calc(var(--pad) - 12px);overflow-x:auto;scrollbar-width:none;}
.htabs-in::-webkit-scrollbar{display:none;}
.htabs a{flex:none;display:inline-flex;align-items:center;min-height:46px;padding:0 12px;border-bottom:2px solid transparent;font-size:13.5px;color:var(--ink3);text-decoration:none;white-space:nowrap;transition:color .2s,border-color .2s;}
.htabs a:hover{color:var(--ink);}
.htabs a[aria-current]{color:var(--ink);border-bottom-color:var(--gold);}
/* all seven fit a phone from 360 px, the first tab's word on the page's column (it sat 11 px in from the edge, the column is
   ~22 px — Oct 12 phone review); a narrower screen scrolls the row, and a fade at the cut edge says so (vision.js .more-r/.more-l) */
@media (max-width:640px){.htabs-in{gap:0;padding:0 calc(var(--pad) - 7px);} .htabs a{padding:0 7px;font-size:13px;}}
.htabs.more-r .htabs-in{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 40px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 40px),transparent);}
.htabs.more-l .htabs-in{-webkit-mask-image:linear-gradient(90deg,transparent,#000 40px);mask-image:linear-gradient(90deg,transparent,#000 40px);}

/* the tab bar holds still while the page scrolls (Fadi, Oct 12, on his iPhone: "wobbles weirdly and is not smooth"): on a
   touch screen it is solid — a see-through bar with a live blur re-paints on every frame of the scroll and lagged it — and
   its row is a sideways scroller only while its tabs don't fit (.scrolls, measured by the page's script) */
@media (hover:none),(pointer:coarse){.htabs{background:var(--bg);-webkit-backdrop-filter:none;backdrop-filter:none;} .htabs:not(.scrolls) .htabs-in{overflow-x:visible;touch-action:pan-y;}}
.htabs.more-l.more-r .htabs-in{-webkit-mask-image:linear-gradient(90deg,transparent,#000 40px,#000 calc(100% - 40px),transparent);mask-image:linear-gradient(90deg,transparent,#000 40px,#000 calc(100% - 40px),transparent);}

/* "Jump to": one small button on every page — a ring shows how far down you are; a tap lists the page's sections */
.jump{position:fixed;right:14px;bottom:calc(84px + env(safe-area-inset-bottom));z-index:55;display:flex;align-items:center;justify-content:center;width:52px;height:52px;padding:0;border-radius:50%;border:1px solid var(--line2);
  background:var(--veil);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:var(--ink);cursor:pointer;box-shadow:0 12px 28px -14px rgba(0,0,0,.55);
  opacity:0;transform:translateY(12px) scale(.92);pointer-events:none;transition:opacity .25s,transform .3s var(--ease);}
.jump.on{opacity:1;transform:none;pointer-events:auto;}
.jump .ring{position:absolute;inset:-1px;width:52px;height:52px;transform:rotate(-90deg);}
.jump .ring circle{fill:none;stroke-width:2.5;}
.jump .ring .track{stroke:var(--line);}
.jump .ring .prog{stroke:var(--gold);stroke-linecap:round;}
.jump .ico{width:20px;height:20px;}
.jump-menu{position:fixed;right:14px;bottom:calc(146px + env(safe-area-inset-bottom));z-index:56;min-width:220px;max-width:calc(100vw - 28px);max-height:62vh;overflow-y:auto;padding:8px;border-radius:18px;
  background:var(--bg);border:1px solid var(--line2);box-shadow:0 24px 60px -20px rgba(0,0,0,.6);}
.jump-menu[hidden]{display:none;}
.jump-menu p{margin:6px 12px 4px;font:500 10.5px/1.3 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--ink3);}
.jump-menu a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:0 12px;border-radius:12px;color:var(--ink);font-size:15px;text-decoration:none;}
.jump-menu a:hover,.jump-menu a:focus-visible{background:var(--chip);}
.jump-menu a[aria-current]{color:var(--gold);}
.jump-menu a[aria-current]::after{content:"";width:7px;height:7px;border-radius:50%;background:var(--gold);}
@media (min-width:900px){.jump{right:28px;bottom:28px;} .jump-menu{right:28px;bottom:90px;}}
/* the first visit on a computer: a pointing hand beside the button says what it is for (once per device) */
.jump-tip{position:fixed;right:92px;bottom:24px;z-index:57;display:flex;align-items:center;gap:14px;max-width:min(340px,calc(100vw - 130px));padding:12px 14px 12px 18px;border-radius:16px;
  background:var(--bg);border:1px solid var(--line2);box-shadow:0 18px 44px -18px rgba(0,0,0,.55);color:var(--ink);opacity:0;transform:translateX(-12px);transition:opacity .35s,transform .45s var(--ease);}
.jump-tip.on{opacity:1;transform:none;}
.jump-tip .jt-t{display:flex;flex-direction:column;align-items:flex-start;}
.jump-tip b{font:400 17px/1.2 var(--serif);}
.jump-tip span{margin-top:3px;font-size:12.5px;line-height:1.4;color:var(--ink3);}
.jump-tip .jt-ok{margin-top:8px;padding:0;border:0;background:transparent;color:var(--gold);font:500 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;text-decoration:underline;text-underline-offset:3px;cursor:pointer;}
.jump-tip .hand{flex:none;width:42px;height:42px;stroke:var(--gold);stroke-width:1.5;animation:jt-nudge 1.5s var(--ease) infinite;}
@keyframes jt-nudge{0%,100%{transform:translateX(0);}50%{transform:translateX(7px);}}

/* ---- your own rate (Fadi, Oct 10, d-091): the published rate is one chip; beside it, a box for the rate a bank offered ---- */
.rate-row,.m-rate{align-items:center;}
.m-rate{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0;}
.rate-mine{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 14px 0 15px;border-radius:999px;border:1px dashed var(--line2);background:var(--card);font-size:14px;color:var(--ink2);cursor:text;transition:border-color .2s,background .2s;}
.rate-mine:focus-within{border-style:solid;border-color:var(--gold);}
.rate-mine.on{border-style:solid;border-color:var(--fill);background:color-mix(in srgb,var(--fill) 12%,var(--card));color:var(--ink);}
.rate-mine input{width:5.4ch;border:0;outline:0;padding:0;background:transparent;color:var(--ink);font:500 16px/1 var(--sans);text-align:right;-moz-appearance:textfield;appearance:textfield;} /* 16px: phones don't zoom in */
.rate-mine input::-webkit-outer-spin-button,.rate-mine input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.rate-mine input::placeholder{color:var(--ink3);opacity:1;}
.rate-mine i{font-style:normal;color:var(--ink3);}

/* ---- what a form says back (missing details, sending, sent) ---- */
.form-msg{margin:10px 0 0;padding:11px 14px;border-radius:12px;background:var(--amber-bg);color:var(--amber);font-size:13.5px;line-height:1.45;}
.form-msg.ok{background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--ok);}

/* ---- a home that has left Rohit's list (kept six months, d-090) ---- */
.tag--gone{background:var(--ink);color:var(--bg);}
.gone-note{margin:16px 0 0;padding:14px 16px;border-radius:14px;background:var(--chip);font-size:14px;line-height:1.55;color:var(--ink2);}
.gone-note b{display:block;margin-bottom:2px;color:var(--ink);font-weight:500;}
.rv-gone .hm-g{filter:saturate(.8);}
/* a community with none listed: a plain header (no photo) */
.ch--quiet{min-height:0;padding-top:clamp(28px,6vh,64px);background:none;}
.ch--quiet::before{display:none;}
.ch--quiet .ch-in{color:var(--ink);}
.ch--quiet .crumbs{color:var(--ink2);margin-bottom:18px;}
.ch--quiet .eyebrow{color:var(--gold);}
.ch--quiet .hm-cta{margin-top:20px;}
/* the community header's words sit on its photo in both themes: they stay light even though the site theme darkens
   every paragraph and eyebrow in light mode (assets/theme.css) — found by the light-theme contrast check, Oct 10 */
html:not(.sar-dark) body.rv .ch:not(.ch--quiet) .ch-in p{color:#F4F2EB !important;}
html:not(.sar-dark) body.rv .ch:not(.ch--quiet) .eyebrow{color:#E6DCBB !important;}
html:not(.sar-dark) body.rv .ch:not(.ch--quiet) .ch-cap{color:#F4F2EB !important;}
html:not(.sar-dark) body.rv .ch:not(.ch--quiet) h1{color:#F4F2EB !important;}
html:not(.sar-dark) body.rv .ch:not(.ch--quiet) .crumbs a{color:inherit;}

/* the site header (assets/site-nav.js, loaded deferred) takes this slot's place: the page keeps its room from the first paint,
   so nothing drops when the header arrives (it moved the whole page 58 px on a slow phone — Oct 10 speed check). The slot's
   height is theme.css's (the header's own measured step: 57 / 58 px, t-222) */

/* ===== the phone review (Oct 12, 2026: iPhone screenshots of the live pages; the computer view stays as it was) ===== */
@media (max-width:899px){
  /* the page ends clear of the bottom bar (62 px tall, 10 px up) + the safe area + 16 px. assets/site-nav.js zeroes the body's
     bottom padding on pages without its own quick bar ("body{padding-bottom:0!important}"), which left the footer's brokerage
     line under the bar for good — hence the stronger selector */
  html body.rv{padding-bottom:calc(88px + env(safe-area-inset-bottom)) !important;}
  /* the photo's caption reads on a white photo: a soft shade under it, like the cards' (it was white on white) */
  .g-slide::after{content:"";position:absolute;left:0;right:0;bottom:0;height:96px;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.62) 72%);}
  .g-slide figcaption{z-index:1;}
  /* a row's home cards are all the same size, with "Est. ready" on one line across them (Fadi, Oct 12: "All cards need
     to be same size" — a card without highlights keeps the space above its "Est. ready" rather than ending short) */
  /* the community photo's credit on the page's column, not 12 px from the edge */
  .ch-cap{right:var(--pad);max-width:calc(100% - 2*var(--pad));}
  /* breadcrumbs (where they still show) no longer touch the eyebrow under them */
  .ch .crumbs{margin-bottom:10px;}
  /* the hub ends its questions with their own line; the note under them no longer draws a second one across an empty band */
  .rv-hub .datanote{border-top:0;margin-top:26px;}
  /* "Your budget" is a 44 px target (the ring is invisible; the words don't move) */
  .hm-pay{position:relative;}
  .hm-pay::after{content:"";position:absolute;left:0;right:0;top:50%;height:44px;transform:translateY(-50%);}
}
@media (max-width:599px){
  /* "Back" already names the page above, so the visible breadcrumb goes (its BreadcrumbList stays in the page for search
     engines) — as on the calculators (assets/calculators/vx.css) */
  .ch .crumbs,.nh-top .crumbs--home{display:none;}
  .nh-top{padding-bottom:12px;}
  /* stacked buttons share the column's full width ("Show more homes" / "Alert me…", "All 31 homes…" / "Our … guide") */
  .grid-more .btn,.where-a .btn{flex:1 1 100%;}
  /* a home's sticky section tabs already jump around the page, so its round "Jump to" button stays off a phone there (it sat
     over the cost card's figures). The hub and the community pages keep it (t-177). */
  .rv-home .jump,.rv-home .jump-menu{display:none !important;}
}
/* ---- the smarter search (Oct 20, 2026; Fadi: "make everything typed more forgiving"): the hub, body[data-search="v2"].
   Goals under the box with live counts, the chips at 44 px, the notes the reader says, what each card has, a helpful
   no-results. Every row keeps the search box's left edge (one column on a computer). ---- */
.ask-goals{display:flex;flex-wrap:wrap;gap:8px;max-width:760px;margin:14px 0 0;}
.ask-goals[hidden]{display:none;}
.ask-goal{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 7px 0 15px;border-radius:999px;border:1px solid var(--line2);background:transparent;font:400 14px/1.2 var(--sans);color:var(--ink);cursor:pointer;transition:border-color .2s,background-color .2s;text-align:left;}
.ask-goal:hover{border-color:var(--gold);}
.ask-goal:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}
.ask-goal .n{flex:none;min-width:30px;height:30px;padding:0 8px;border-radius:999px;background:var(--chip);color:var(--ink2);font-size:12.5px;display:inline-flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums;}
body[data-search="v2"] .ask-out{max-width:760px;}
body[data-search="v2"] .ask-out .vpill,body[data-search="v2"] #active .vpill{min-height:44px;padding:0 10px 0 14px;font-size:14px;}
body[data-search="v2"] .ask-out .vpill i,body[data-search="v2"] #active .vpill i{font-size:17px;padding:0 2px 0 4px;}
.ask-notes{flex-basis:100%;list-style:none;margin:4px 0 2px;padding:0;display:grid;gap:5px;}
.ask-notes li{position:relative;padding-left:15px;font-size:13.5px;line-height:1.45;color:var(--ink2);overflow-wrap:anywhere;}
.ask-notes li::before{content:'';position:absolute;left:2px;top:.6em;width:6px;height:6px;border-radius:50%;background:var(--gold);}
body[data-search="v2"] .ask-out .res{flex-basis:100%;margin:2px 0 0;font-size:14px;}
body[data-search="v2"] .ask-out .res a{display:inline-flex;align-items:center;min-height:44px;}
.hc-why{margin:4px 0 0;font-size:13px;line-height:1.35;color:var(--ok);font-weight:500;}
.empty.nm .nm-fact{max-width:560px;margin:6px auto;font-size:15px;line-height:1.5;}
.nm-try{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:18px 0 6px;}
.nm-alert{margin:12px 0 0;}
@media (max-width:640px){.ask-goals .ask-goal:nth-child(n+5){display:none;}.ask-goal{font-size:13.5px;}}
/* "Show more homes" with nothing more to show: .btn's display beat [hidden], so the button stayed (every Rohit page) */
.grid-more .btn[hidden]{display:none;}
