/* Keyhouse Estates 2026: self-hosted fonts (SIL OFL 1.1). No CDN. */
@font-face{font-family:"Newsreader";src:url("../fonts/newsreader-opsz-normal.woff2") format("woff2");font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:"Albert Sans";src:url("../fonts/albert-sans-latin-wght-normal.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}

@font-face{font-family:"Newsreader Fallback";src:local("Georgia");size-adjust:96%;ascent-override:92%;descent-override:26%;line-gap-override:0%}
@font-face{font-family:"Albert Sans Fallback";src:local("Arial");size-adjust:102%;ascent-override:90%;descent-override:22.4%;line-gap-override:0%}
:root{
--ivory:#FAF6EE; --ivory-2:#F3EDE1; --stone:#E4DACA; --stone-2:#CDBFA9;
--ink:#16203A; --ink-2:#24304F; --ink-soft:#3D4763; --brass:#B08D57; --brass-deep:#7A5A26;
--bg:var(--ivory); --surface:#FFFDF9; --surface-2:var(--ivory-2); --surface-3:#EAE2D4;
--text:#16203A; --text-muted:#424B63; --text-subtle:#59617A;
--brand:#16203A; --on-brand:#FFFDF9; --brand-hover:#24304F;
--tone-brass:#B08D57; --tone-brass-text:#7A5A26; --on-tone-brass:#16203A;
--border:#E1D7C6; --border-strong:#8C7D66; --focus:#16203A; --focus-ring:#B08D57;
--success:#24613F; --success-bg:#E6F1E8; --danger:#9B2F1E; --danger-bg:#F8E5E0; --warning:#7A4E00; --warning-bg:#FBEFD6; --info:#24406E; --info-bg:#E5ECF6;
--overlay:rgba(14,20,36,.55); --hero-scrim:linear-gradient(90deg,rgba(250,246,238,.94) 0%,rgba(250,246,238,.82) 38%,rgba(250,246,238,0) 64%);
--font-serif:"Newsreader","Newsreader Fallback",Georgia,"Times New Roman",serif;
--font-sans:"Albert Sans","Albert Sans Fallback",Arial,system-ui,sans-serif;
--fs-body:1.1875rem; --fs-lead:1.375rem; --fs-small:1.0625rem; --fs-min:1rem;
--fs-h1:clamp(2.75rem,5.5vw + 1rem,5rem); --fs-h2:clamp(2.125rem,3.5vw + 1rem,3.5rem); --fs-h3:1.75rem; --fs-h4:1.375rem;
--fs-menu:1.1875rem; --fs-btn:1.125rem; --fs-label:1.125rem; --fs-input:1.25rem; --fs-price:1.75rem;
--lh-body:1.65; --lh-head:1.12; --measure:66ch;
--s1:.5rem; --s2:1rem; --s3:1.5rem; --s4:2rem; --s5:2.5rem; --s6:3rem; --s8:4rem; --s10:5rem; --s12:6rem; --s14:7rem; --s16:8rem; --s20:10rem;
--section:clamp(4.5rem,8vw,8.5rem); --container:1240px; --gutter:clamp(1.25rem,4vw,2.5rem); --card-pad:clamp(1.5rem,2.6vw,2.5rem);
--r-sm:12px; --r-lg:24px; --r-pill:999px;
--shadow-1:0 1px 2px rgba(22,32,58,.06),0 2px 8px rgba(22,32,58,.05);
--shadow-2:0 2px 4px rgba(22,32,58,.05),0 8px 24px rgba(22,32,58,.08),0 24px 48px rgba(22,32,58,.06);
--shadow-3:0 4px 8px rgba(22,32,58,.06),0 16px 40px rgba(22,32,58,.12),0 40px 80px rgba(22,32,58,.10);
--hairline:1px solid var(--border);
--ease:cubic-bezier(.22,1,.36,1); --dur-1:500ms; --dur-2:700ms; --dur-3:1000ms; --stagger:80ms;
--demo-bar-h:0px; --demo-banner-h:0px; --header-h:88px; --tap:48px; --input-h:56px;
color-scheme:light;
}
@media (min-width:768px){:root{--fs-body:1.25rem}}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--demo-bar-h) + var(--header-h) + 16px)}
body{margin:0;padding-top:var(--demo-bar-h);background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);font-feature-settings:"kern","liga";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
body.is-locked{overflow:hidden}
img,svg,picture,video{display:block;max-width:100%}
img{height:auto}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4{font-family:var(--font-serif);font-weight:500;line-height:var(--lh-head);letter-spacing:-.01em;margin:0 0 var(--s3);color:var(--text);text-wrap:balance}
h1{font-size:var(--fs-h1);letter-spacing:-.02em}
h2{font-size:var(--fs-h2)}
h3{font-size:var(--fs-h3);line-height:1.2}
h4{font-size:var(--fs-h4);font-family:var(--font-sans);font-weight:600;line-height:1.3}
p{margin:0 0 var(--s3);max-width:var(--measure)}
p:last-child{margin-bottom:0}
ul,ol{margin:0 0 var(--s3);padding-left:1.25em;max-width:var(--measure)}
li{margin-bottom:.4em}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.2em}
.prose a,.link{color:var(--text);text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat,linear-gradient(var(--border-strong),var(--border-strong)) 0 100%/100% 1px no-repeat;transition:background-size var(--dur-1) var(--ease);padding-bottom:2px}
.prose a:hover,.link:hover,.prose a:focus-visible,.link:focus-visible{background-size:100% 1px,100% 1px}
strong{font-weight:600}
small,.small{font-size:var(--fs-small)}
.lead{font-size:var(--fs-lead);line-height:1.55;color:var(--text-muted)}
.kicker{display:inline-flex;align-items:center;gap:.6em;font-family:var(--font-sans);font-size:1rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--tone-brass-text);margin:0 0 var(--s2)}
.kicker::before{content:"";width:28px;height:1px;background:var(--tone-brass)}
.muted{color:var(--text-muted)}
.tabular,.price{font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum","lnum"}
:focus{outline:none}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;box-shadow:0 0 0 6px color-mix(in srgb,var(--focus-ring) 45%,transparent);border-radius:6px}
.skip-link{position:absolute;left:var(--s2);top:calc(var(--demo-bar-h) + 8px);z-index:1000;padding:.75rem 1.25rem;background:var(--brand);color:var(--on-brand);font-weight:600;border-radius:var(--r-sm);transform:translateY(-200%);transition:transform .2s var(--ease)}
.skip-link:focus{transform:none}
.visually-hidden,.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.container{width:100%;max-width:calc(var(--container) + var(--gutter)*2);margin-inline:auto;padding-inline:var(--gutter)}
.container--narrow{max-width:calc(820px + var(--gutter)*2)}
.section{padding-block:var(--section)}
.section--tight{padding-block:calc(var(--section)*.6)}
.section--alt{background:var(--surface-2)}
.section--ink{background:var(--ink);color:#F4EFE6}
.section--ink h2,.section--ink h3{color:#F4EFE6}
.section--ink .kicker{color:#E2C690}
.section--ink .lead,.section--ink .muted{color:#D5D9E3}
.section-head{max-width:760px;margin-bottom:var(--s8)}
.section-head--row{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:var(--s3);max-width:none}
.section-head--row>div{max-width:760px}
.grid{display:grid;gap:var(--s4)}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr))}
.grid-3{grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr))}
.grid-4{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr))}
.stack>*+*{margin-top:var(--s3)}
.cluster{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center}
.split{display:grid;gap:var(--s8);align-items:start}
@media (min-width:1024px){.split{grid-template-columns:minmax(0,1.55fr) minmax(320px,1fr)}
.split--even{grid-template-columns:1fr 1fr}}
hr{border:0;border-top:var(--hairline);margin:var(--s6) 0}
table{border-collapse:collapse;width:100%;font-size:var(--fs-small)}
th,td{text-align:left;padding:.85rem 1rem;border-bottom:var(--hairline);vertical-align:top}
th{font-weight:600}
caption{text-align:left;font-weight:600;padding-bottom:.5rem}
.demo-tag{display:inline-flex;align-items:center;gap:.35em;font-size:1rem;font-weight:600;color:var(--info);background:var(--info-bg);padding:.15rem .6rem;border-radius:var(--r-pill);vertical-align:middle}
.note{border-left:3px solid var(--tone-brass);background:var(--surface-2);padding:var(--s2) var(--s3);border-radius:0 var(--r-sm) var(--r-sm) 0;font-size:var(--fs-small);max-width:var(--measure)}
.placeholder{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:1rem;background:var(--warning-bg);color:var(--warning);padding:.05rem .4rem;border-radius:6px}
.breadcrumbs{font-size:1rem;margin-bottom:var(--s3)}
.breadcrumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;padding:0;margin:0}
.breadcrumbs li{margin:0}
.breadcrumbs li+li::before{content:"/";margin-right:.4rem;color:var(--text-subtle)}
.breadcrumbs a{color:var(--text-muted)}
noscript .note{margin:var(--s3) auto}
.action-bar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;grid-template-columns:repeat(3,1fr);background:var(--surface);border-top:var(--hairline);box-shadow:0 -6px 24px rgba(22,32,58,.08);padding-bottom:env(safe-area-inset-bottom);transition:transform .35s var(--ease)}
.action-bar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:64px;font-size:1rem;font-weight:600;text-decoration:none;color:var(--text)}
.action-bar a svg{width:22px;height:22px}
.action-bar a.is-primary{background:var(--brand);color:var(--on-brand)}
.action-bar.is-hidden{transform:translateY(110%)}
body{padding-bottom:72px}
@media (min-width:1024px){.action-bar{display:none}
body{padding-bottom:0}}
.cta-band{background:var(--ink);color:#F4EFE6;border-radius:var(--r-lg);padding:clamp(2.5rem,6vw,5rem);display:grid;gap:var(--s4);align-items:center;position:relative;overflow:hidden}
.cta-band h2{color:#F4EFE6;margin-bottom:var(--s2)}
.cta-band p{color:#D5D9E3}
.cta-band .kicker{color:#E2C690}
.cta-band::after{content:"";position:absolute;right:-80px;top:-80px;width:320px;height:320px;border:1px solid rgba(226,198,144,.35);border-radius:50% 50% 0 0}
@media (min-width:900px){.cta-band{grid-template-columns:1.4fr auto}}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:56px;padding:.75rem 1.6rem;font-size:var(--fs-btn);font-weight:600;line-height:1.2;border-radius:var(--r-sm);border:1.5px solid transparent;text-decoration:none;cursor:pointer;transition:transform .3s var(--ease),box-shadow .3s var(--ease),background-color .2s,color .2s;white-space:nowrap}
.btn svg{width:20px;height:20px;flex:none}
.btn--primary{background:var(--brand);color:var(--on-brand);box-shadow:var(--shadow-1)}
.btn--primary:hover{background:var(--brand-hover);transform:translateY(-2px);box-shadow:var(--shadow-2)}
.btn--secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}
.btn--secondary:hover{border-color:var(--text);transform:translateY(-2px)}
.btn--ghost{background:transparent;color:var(--text);border-color:transparent}
.btn--ghost:hover{background:var(--surface-2)}
.btn--light{background:#FFFDF9;color:#16203A}
.btn--light:hover{background:#F3EDE1;transform:translateY(-2px)}
.btn--sm{min-height:var(--tap);padding:.5rem 1.1rem;font-size:1.0625rem}
.btn--block{width:100%}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.55;cursor:not-allowed;transform:none}
.icon-btn{display:inline-grid;place-items:center;width:var(--tap);height:var(--tap);border-radius:var(--r-pill);border:var(--hairline);background:var(--surface);color:var(--text);cursor:pointer;transition:transform .25s var(--ease),background-color .2s}
.icon-btn:hover{transform:scale(1.06)}
.icon-btn svg{width:22px;height:22px}
.kh-img{position:relative;overflow:hidden;background:var(--ph-color,var(--surface-3));isolation:isolate}
.kh-img picture,.kh-img img{width:100%;height:100%}
.kh-img img{object-fit:cover;transition:opacity .6s var(--ease),transform 1.2s var(--ease)}
.kh-img.is-loading picture img{opacity:0}
.img-credit{position:absolute;left:12px;bottom:12px;z-index:2;font-size:1rem;line-height:1.3;font-weight:500;background:rgba(14,20,36,.78);color:#fff;padding:.2rem .6rem;border-radius:8px;pointer-events:none}
.badge{display:inline-flex;align-items:center;gap:.4rem;font-size:1rem;font-weight:600;line-height:1.2;padding:.35rem .75rem;border-radius:var(--r-pill);background:var(--surface);color:var(--text);border:var(--hairline);white-space:nowrap}
.badge svg{width:16px;height:16px}
.badge--available{background:var(--success-bg);color:var(--success);border-color:transparent}
.badge--under-offer{background:var(--warning-bg);color:var(--warning);border-color:transparent}
.badge--sstc,.badge--let-agreed{background:var(--info-bg);color:var(--info);border-color:transparent}
.badge--new{background:var(--brand);color:var(--on-brand);border-color:transparent}
.badge--reduced{background:var(--danger-bg);color:var(--danger);border-color:transparent}
.epc{display:inline-flex;align-items:center;gap:.35rem;font-size:1rem;font-weight:700;padding:.2rem .55rem;border-radius:8px;color:#fff}
.epc[data-band="A"]{background:#00704A}
.epc[data-band="B"]{background:#1B7A3E}
.epc[data-band="C"]{background:#4C7A12}
.epc[data-band="D"]{background:#7A6A00;}
.epc[data-band="E"]{background:#9A5200}
.epc[data-band="F"]{background:#A63F12}
.epc[data-band="G"]{background:#B0182A}
.chip{display:inline-flex;align-items:center;gap:.5rem;min-height:var(--tap);padding:.4rem 1rem;font-size:1.0625rem;font-weight:500;border-radius:var(--r-pill);border:1.5px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer;transition:background-color .2s,border-color .2s,transform .2s var(--ease)}
.chip:hover{border-color:var(--text)}
.chip[aria-pressed="true"],.chip.is-active,.chip:has(input:checked){background:var(--brand);color:var(--on-brand);border-color:var(--brand)}
.chip input{position:absolute;opacity:0;pointer-events:none}
.chip .x{width:18px;height:18px}
.card{background:var(--surface);border:var(--hairline);border-radius:var(--r-lg);padding:var(--card-pad);box-shadow:var(--shadow-1)}
.prop-card{position:relative;display:flex;flex-direction:column;background:var(--surface);border:var(--hairline);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-1);transition:transform var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease)}
.prop-card:hover,.prop-card:focus-within,.prop-card.is-hl{transform:translateY(-4px);box-shadow:var(--shadow-3)}
.prop-card .media{position:relative;aspect-ratio:3/2}
.prop-card .media .kh-img{position:absolute;inset:0}
.prop-card:hover .kh-img img{transform:scale(1.03)}
.prop-card .badges{position:absolute;top:14px;left:14px;display:flex;flex-wrap:wrap;gap:.4rem;z-index:2}
.prop-card .heart{position:absolute;top:10px;right:10px;z-index:3}
.prop-card .carousel{position:absolute;inset:auto 10px 10px auto;z-index:3;display:flex;gap:.4rem}
.prop-card .carousel .icon-btn{width:var(--tap);height:var(--tap);background:rgba(255,253,249,.92);color:#16203A}
.prop-card .carousel .icon-btn[disabled]{opacity:.55}
.prop-card .body{padding:var(--card-pad);display:grid;gap:.75rem;flex:1}
.prop-card .price-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem}
.price{font-family:var(--font-serif);font-size:var(--fs-price);font-weight:500;line-height:1.1;color:var(--text)}
.qualifier{font-size:1rem;font-weight:600;color:var(--text-muted);text-transform:none}
.prop-card h3{font-family:var(--font-sans);font-size:1.1875rem;font-weight:600;margin:0;line-height:1.4}
.prop-card h3 a{text-decoration:none;color:var(--text)}
.prop-card h3 a::after{content:"";position:absolute;inset:0;z-index:1}
.prop-card .addr{color:var(--text-muted);margin:0;font-size:1.0625rem}
.facts{display:flex;flex-wrap:wrap;gap:.5rem 1.1rem;list-style:none;padding:0;margin:0;font-size:1.0625rem;color:var(--text)}
.facts li{display:inline-flex;align-items:center;gap:.4rem;margin:0}
.facts svg{width:20px;height:20px;color:var(--text-muted)}
.prop-card .meta{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding-top:.75rem;border-top:var(--hairline);font-size:1rem;color:var(--text-muted)}
.prop-card .meta .epc,.prop-card .compare-toggle{position:relative;z-index:2}
.compare-toggle{display:inline-flex;align-items:center;gap:.5rem;min-height:var(--tap);font-size:1rem;font-weight:600;cursor:pointer}
.compare-toggle input{width:22px;height:22px;accent-color:var(--brand)}
.heart{display:inline-grid;place-items:center;width:var(--tap);height:var(--tap);border-radius:50%;border:0;background:rgba(255,253,249,.94);color:#16203A;cursor:pointer;box-shadow:var(--shadow-1)}
.heart svg{width:24px;height:24px;transition:transform .4s var(--ease)}
.heart[aria-pressed="true"] svg{fill:#9B2F1E;color:#9B2F1E}
.heart.pop svg{animation:heartpop .5s var(--ease)}
.field{display:grid;gap:.5rem;margin-bottom:var(--s3)}
.field>label,.field legend,.label{font-size:var(--fs-label);font-weight:600;color:var(--text)}
.field .hint{font-size:1rem;color:var(--text-muted);margin:0}
.opt{font-weight:400;color:var(--text-muted)}
.input,.select,.textarea{width:100%;min-height:var(--input-h);padding:.75rem 1rem;font-size:var(--fs-input);background:var(--surface);color:var(--text);border:1.5px solid var(--border-strong);border-radius:var(--r-sm);transition:border-color .2s,box-shadow .2s}
.textarea{min-height:140px;resize:vertical}
.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%2359617A' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:3rem}
.input:hover,.select:hover,.textarea:hover{border-color:var(--text-muted)}
.input:focus-visible,.select:focus-visible,.textarea:focus-visible{border-color:var(--focus);outline:3px solid var(--focus-ring);outline-offset:1px;box-shadow:none}
.field.has-error .input,.field.has-error .select,.field.has-error .textarea{border-color:var(--danger)}
.error-msg{display:flex;gap:.4rem;align-items:flex-start;color:var(--danger);font-weight:600;font-size:1rem;margin:0}
fieldset{border:0;padding:0;margin:0 0 var(--s3);min-width:0}
legend{padding:0;margin-bottom:.75rem}
.choice{display:flex;align-items:center;gap:.75rem;min-height:var(--tap);font-size:1.125rem;cursor:pointer}
.choice input{width:24px;height:24px;accent-color:var(--brand);flex:none}
.choice-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr))}
.tile{position:relative;display:flex;align-items:center;gap:.75rem;min-height:64px;padding:.75rem 1rem;border:1.5px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);cursor:pointer;font-weight:500;transition:border-color .2s,background-color .2s}
.tile:has(input:checked){border-color:var(--brand);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--brand)}
.tile input{width:22px;height:22px;accent-color:var(--brand)}
.form-row{display:grid;gap:0 var(--s3);grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.error-summary{border:2px solid var(--danger);background:var(--danger-bg);border-radius:var(--r-sm);padding:var(--s3);margin-bottom:var(--s4)}
.error-summary h2{font-family:var(--font-sans);font-size:1.25rem;font-weight:700;color:var(--danger);margin-bottom:.5rem}
.error-summary a{color:var(--danger);font-weight:600}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.consent{font-size:1.0625rem;color:var(--text-muted)}
.tabs [role="tablist"]{display:inline-flex;gap:.25rem;padding:.3rem;background:var(--surface-2);border-radius:var(--r-pill);border:var(--hairline)}
.tab{min-height:var(--tap);padding:.5rem 1.4rem;border-radius:var(--r-pill);border:0;background:transparent;font-weight:600;font-size:1.125rem;cursor:pointer;color:var(--text-muted);transition:background-color .3s var(--ease),color .3s}
.tab[aria-selected="true"]{background:var(--brand);color:var(--on-brand);box-shadow:var(--shadow-1)}
[role="tabpanel"]{animation:fadeup .5s var(--ease)}
.accordion{border-top:var(--hairline)}
.acc-item{border-bottom:var(--hairline)}
.acc-btn{display:flex;width:100%;justify-content:space-between;align-items:center;gap:var(--s2);min-height:64px;padding:var(--s2) 0;background:none;border:0;text-align:left;font-family:var(--font-serif);font-size:1.5rem;cursor:pointer;color:var(--text)}
.acc-btn svg{width:22px;height:22px;flex:none;transition:transform .4s var(--ease)}
.acc-btn[aria-expanded="true"] svg{transform:rotate(45deg)}
.acc-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--ease)}
.acc-panel>div{overflow:hidden}
.acc-panel.is-open{grid-template-rows:1fr}
.acc-panel .inner{padding-bottom:var(--s3)}
.toasts{position:fixed;z-index:200;left:50%;bottom:88px;transform:translateX(-50%);display:grid;gap:.5rem;width:min(520px,calc(100% - 2rem))}
.toast{display:flex;gap:.75rem;align-items:center;background:var(--ink);color:#F4EFE6;padding:1rem 1.25rem;border-radius:var(--r-sm);box-shadow:var(--shadow-3);font-size:1.0625rem;animation:fadeup .5s var(--ease)}
.toast svg{width:22px;height:22px;color:#E2C690;flex:none}
.skeleton{background:linear-gradient(90deg,var(--surface-2) 0%,var(--surface-3) 50%,var(--surface-2) 100%);background-size:200% 100%;animation:shimmer 1.4s linear infinite;border-radius:var(--r-sm)}
.state{text-align:center;padding:var(--s8) var(--s3);border:1.5px dashed var(--border-strong);border-radius:var(--r-lg);background:var(--surface)}
.state img{width:180px;margin:0 auto var(--s3)}
.state h3{margin-bottom:var(--s1)}
.state p{margin-inline:auto}
.state--success{border-style:solid;border-color:var(--success);background:var(--success-bg)}
.state--error{border-style:solid;border-color:var(--danger);background:var(--danger-bg)}
.ref{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:1.25rem;font-weight:700;letter-spacing:.06em;background:var(--surface);padding:.25rem .6rem;border-radius:8px;border:var(--hairline)}
dialog.modal{width:min(760px,calc(100% - 2rem));max-height:calc(100vh - 2rem);padding:0;border:0;border-radius:var(--r-lg);background:var(--bg);color:var(--text);box-shadow:var(--shadow-3)}
dialog.modal::backdrop{background:var(--overlay)}
dialog.modal[open]{animation:fadeup .5s var(--ease)}
.modal-head{display:flex;justify-content:space-between;align-items:center;gap:var(--s2);padding:var(--s3) var(--card-pad);border-bottom:var(--hairline);position:sticky;top:0;background:var(--bg);z-index:2}
.modal-head h2{font-size:1.75rem;margin:0}
.modal-body{padding:var(--card-pad)}
.progress{height:8px;background:var(--surface-3);border-radius:var(--r-pill);overflow:hidden}
.progress>span{display:block;height:100%;background:var(--brand);border-radius:inherit;transform-origin:left;transition:transform .6s var(--ease)}
.h1-compact{font-size:clamp(2.25rem,3vw + 1rem,3.25rem);margin-bottom:var(--s1)}
.h3{font-size:var(--fs-h3);font-family:var(--font-serif);font-weight:500;line-height:1.2}
.h4{font-size:var(--fs-h4);font-family:var(--font-sans);font-weight:600;line-height:1.3;margin:0 0 var(--s2)}
.page-head{padding-block:var(--s8) var(--s4)}
.page-head--compact{padding-block:var(--s3) var(--s2)}
.mode-switch{color:var(--text-muted);margin:0}
.hs-panel{display:grid;gap:var(--s2);grid-template-columns:1fr}
@media (min-width:640px){.hs-panel{grid-template-columns:1fr 1fr}
.hs-loc{grid-column:1/-1}}
@media (min-width:1024px){.hs-panel{grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr)) auto;align-items:end}
.hs-loc{grid-column:auto}}
.hs-go{min-height:var(--input-h)}
.typeahead{position:relative}
.ta-box{position:relative}
.ta-icon{position:absolute;left:16px;top:50%;width:22px;height:22px;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}
.ta-input{padding-left:48px!important;padding-right:52px!important}
.ta-clear{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:var(--tap);height:var(--tap);border:0;background:none;border-radius:var(--r-sm);display:grid;place-items:center;cursor:pointer;color:var(--text-muted)}
.ta-clear svg{width:20px;height:20px}
.ta-list{position:absolute;z-index:40;left:0;right:0;top:calc(100% + 6px);margin:0;padding:6px;list-style:none;background:var(--surface);border:var(--hairline);border-radius:var(--r-sm);box-shadow:var(--shadow-3);max-height:360px;overflow:auto;max-width:none}
.ta-opt,.ta-empty{display:flex;gap:.75rem;align-items:center;min-height:var(--tap);padding:.6rem .8rem;border-radius:8px;cursor:pointer;margin:0;font-size:1.0625rem}
.ta-opt svg{width:20px;height:20px;flex:none;color:var(--tone-brass-text)}
.ta-opt[aria-selected=true],.ta-opt:hover{background:var(--surface-2);outline:2px solid var(--focus);outline-offset:-2px}
.ta-meta{display:block;font-size:1rem;color:var(--text-muted)}
.ta-empty{color:var(--text-muted);cursor:default}
.seg{display:inline-flex;padding:4px;gap:4px;background:var(--surface-2);border:var(--hairline);border-radius:var(--r-pill)}
.seg-opt{position:relative;margin:0}
.seg-opt input{position:absolute;opacity:0;inset:0;cursor:pointer}
.seg-opt span{display:inline-flex;align-items:center;gap:.4rem;min-height:var(--tap);padding:0 1.1rem;border-radius:var(--r-pill);font-weight:600;font-size:1.0625rem}
.seg-opt svg{width:20px;height:20px}
.seg-opt input:checked+span{background:var(--brand);color:var(--on-brand)}
.seg-opt input:focus-visible+span{outline:3px solid var(--focus);outline-offset:2px}
.filter-bar{position:sticky;top:calc(var(--demo-bar-h) + 72px);z-index:30;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(10px);border-block:var(--hairline);padding-block:var(--s2)}
.fb-inner{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:end}
.fb-loc{flex:1 1 220px;min-width:0}
.filter-form{display:contents}
.sheet-head,.sheet-foot{display:none}
.sheet-body{display:contents}
.fb-quick{display:flex;gap:var(--s2);flex-wrap:wrap}
.fb-field{width:150px;margin:0}
.fb-more,.fb-sort{flex:none}
.fb-sort{width:200px;margin:0}
.fb-more{min-height:var(--input-h)}
.count-pill{display:inline-grid;place-items:center;min-width:28px;height:28px;padding:0 6px;border-radius:var(--r-pill);background:var(--brand);color:var(--on-brand);font-size:1rem}
.more-panel{display:none}
.more-panel.is-open{display:block;position:absolute;left:var(--gutter);right:var(--gutter);top:calc(100% + 8px);max-width:var(--container);margin-inline:auto;background:var(--surface);border:var(--hairline);border-radius:var(--r-lg);box-shadow:var(--shadow-3);padding:var(--s4);z-index:35}
.more-grid{display:grid;gap:var(--s3) var(--s4);grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.more-grid .field{margin:0}
.chip-row{display:flex;flex-wrap:wrap;gap:.6rem}
@media (max-width:899.98px){.fb-quick,.fb-sort{display:none}
.fb-inner{flex-wrap:nowrap;align-items:end}
.fb-more .fb-more-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.fb-more::after{content:"Filters"}
.filter-form{display:none}
.filter-form.is-sheet-open{display:flex;flex-direction:column;position:fixed;inset:auto 0 0 0;max-height:calc(100dvh - var(--demo-bar-h) - 24px);z-index:120;background:var(--surface);border-radius:var(--r-lg) var(--r-lg) 0 0;box-shadow:0 -20px 60px rgba(0,0,0,.25);animation:sheetup .45s var(--ease)}
.filter-form.is-sheet-open::before{content:"";position:fixed;inset:0;z-index:-1;background:var(--overlay)}
.is-sheet-open .sheet-head{display:flex;justify-content:space-between;align-items:center;padding:var(--s2) var(--s3);border-bottom:var(--hairline)}
.is-sheet-open .sheet-head h2{margin:0}
.is-sheet-open .sheet-body{display:block;overflow:auto;padding:var(--s3);flex:1;overscroll-behavior:contain}
.is-sheet-open .fb-quick{display:grid;grid-template-columns:1fr 1fr;margin-bottom:var(--s3)}
.is-sheet-open .fb-quick .fb-field{width:auto}
.is-sheet-open .fb-quick .fb-field:last-child{grid-column:1/-1}
.is-sheet-open .more-panel{display:block}
.is-sheet-open .sheet-foot{display:flex;gap:var(--s2);position:sticky;bottom:0;padding:var(--s2) var(--s3) calc(var(--s2) + env(safe-area-inset-bottom));background:var(--surface);border-top:var(--hairline)}
.is-sheet-open .sheet-foot .btn--primary{flex:1}}
.results-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s2) var(--s3);align-items:center;padding-block:var(--s3)}
.results-summary{display:grid;gap:var(--s1)}
.result-count{margin:0;font-size:var(--fs-lead)}
.result-count strong{font-family:var(--font-serif);font-weight:500}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chip--remove svg{width:16px;height:16px}
.chip--clear{background:none;border-style:dashed}
.results-tools{display:flex;flex-wrap:wrap;gap:var(--s1);align-items:center}
.results-wrap{display:grid;gap:var(--s4);padding-bottom:var(--s12)}
@media (min-width:1240px){.results-wrap{grid-template-columns:minmax(0,1fr) 300px}}
.cards{display:grid;gap:var(--s4);grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr))}
.cards--3{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr))}
.cards--list{grid-template-columns:1fr}
@media (min-width:768px){.cards--list .prop-card{flex-direction:row}
.cards--list .prop-card .media{flex:0 0 42%;aspect-ratio:auto;min-height:280px}}
.results[data-view=map]{display:grid;gap:var(--s3)}
@media (min-width:1024px){.results[data-view=map]{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:start}
.results[data-view=map] .map-view{order:-1;position:sticky;top:calc(var(--demo-bar-h) + 180px)}}
.results[data-view=map] .cards--list .prop-card{flex-direction:column}
.results[data-view=map] .cards--list .prop-card .media{flex:none;aspect-ratio:3/2;min-height:0}
.load-more-wrap{text-align:center;margin-top:var(--s6)}
.load-more-wrap:has([hidden]){margin:0}
.saved-panel{align-self:start;background:var(--surface);border:var(--hairline);border-radius:var(--r-lg);padding:var(--s3)}
.saved-list{list-style:none;padding:0;margin:0}
.saved-list li{display:flex;justify-content:space-between;align-items:center;gap:.5rem;border-bottom:var(--hairline);padding:.25rem 0}
.saved-list a{font-size:1.0625rem;font-weight:600;padding:.5rem 0;min-height:var(--tap);display:flex;align-items:center}
.map-fig{margin:0;overflow-x:auto;border-radius:var(--r-lg);border:var(--hairline);background:var(--surface)}
.map-fig svg{min-width:640px;width:100%;height:auto}
.map-fig figcaption{padding:.75rem 1rem}
.m-land{fill:var(--surface-2)}
.m-river{fill:none;stroke:color-mix(in srgb,var(--info) 30%,var(--surface-2));stroke-width:34;stroke-linecap:round}
.m-road{fill:none;stroke:var(--border);stroke-width:10}
.m-road--wide{stroke-width:22}
.m-area path{fill:color-mix(in srgb,var(--tone-brass) 12%,var(--surface));stroke:var(--border-strong);stroke-width:2;transition:fill .3s}
.m-label{font:600 26px var(--font-sans);fill:var(--text-muted)}
.m-sub{font:500 22px var(--font-sans);fill:var(--text-muted)}
.m-area--link{cursor:pointer;outline:none}
.m-area--link:hover path,.m-area--link:focus path,.m-area.is-hl path{fill:color-mix(in srgb,var(--tone-brass) 35%,var(--surface));stroke:var(--text);stroke-width:4}
.m-area--link:focus-visible path{stroke:var(--focus);stroke-width:6}
.m-area.is-dim{opacity:.35}
.m-pin{cursor:pointer;outline:none}
.m-pin rect,.m-pin path{fill:var(--brand);stroke:var(--surface);stroke-width:3}
.m-pin text{font:700 26px var(--font-sans);fill:var(--on-brand)}
.m-pin:hover rect,.m-pin.is-hl rect,.m-pin:focus rect,.m-pin:hover path,.m-pin.is-hl path,.m-pin:focus path{fill:var(--tone-brass-text)}
.m-pin:focus-visible rect{stroke:var(--focus);stroke-width:6}
.map-list{margin-top:var(--s2)}
.map-list summary{cursor:pointer;font-weight:600;min-height:var(--tap);display:flex;align-items:center}
.compare-tray{position:fixed;z-index:60;left:0;right:0;bottom:0;background:var(--brand);color:var(--on-brand);padding-block:.75rem calc(.75rem + env(safe-area-inset-bottom));box-shadow:var(--shadow-3)}
.compare-inner{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--s2)}
.compare-inner p{margin:0;font-weight:600}
.compare-tray .btn--ghost{color:var(--on-brand);border-color:currentColor}
.compare-tray .btn--primary{background:var(--surface);color:var(--text)}
@media (max-width:1023.98px){.compare-tray{bottom:calc(72px + env(safe-area-inset-bottom))}}
.modal--wide{width:min(1100px,calc(100% - 2rem))}
.compare-scroll{overflow-x:auto}
.compare-table{min-width:720px}
.compare-table th[scope=row]{position:sticky;left:0;background:var(--surface);z-index:1;min-width:150px;box-shadow:1px 0 0 var(--border)}
.compare-table thead th{vertical-align:bottom;min-width:220px}
.compare-table thead .kh-img{border-radius:var(--r-sm);margin-bottom:.5rem}
.strip{margin-bottom:var(--s3)}
.rail{display:grid;grid-auto-flow:column;grid-auto-columns:min(82vw,380px);gap:var(--s3);overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);padding:4px 4px var(--s3);overscroll-behavior-x:contain;scrollbar-width:thin}
.rail>*{scroll-snap-align:start}
.rail-item>.prop-card{height:100%}
.rail-sk{height:520px}
.rail-controls{display:flex;gap:var(--s1)}
.rail-foot{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s3)}
.stat-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--s3);max-width:none}
.stat-list li{border-left:2px solid var(--tone-brass);padding-left:var(--s2);margin:0}
.stat-list strong{display:block;font-family:var(--font-serif);font-weight:500;font-size:clamp(2.5rem,3vw + 1rem,3.5rem);line-height:1}
.stat-list span{color:var(--text-muted)}
.steps-mini{list-style:none;padding:0;counter-reset:s;display:grid;gap:var(--s2);margin-bottom:var(--s4)}
.steps-mini li{counter-increment:s;display:grid;grid-template-columns:48px 1fr;column-gap:var(--s2);margin:0}
.steps-mini li::before{content:counter(s);grid-row:span 2;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--brand);color:var(--on-brand);font-weight:700}
.steps-mini span{color:var(--text-muted)}
.qv{display:grid;gap:var(--s3)}
@media (min-width:900px){.qv{grid-template-columns:1fr 1fr}}
.qv .kh-img{border-radius:var(--r-sm)}
.qv-body>*{margin-bottom:var(--s2)}
.qv .badges{display:flex;gap:.4rem;flex-wrap:wrap}
.gallery{display:grid;gap:var(--s2);margin-bottom:var(--s6)}
@media (min-width:900px){.gallery{grid-template-columns:2fr 1fr}}
.gal-main,.gal-thumb{position:relative;display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in;border-radius:var(--r-lg);overflow:hidden}
.gal-main .kh-img,.gal-thumb .kh-img{border-radius:inherit}
.gal-expand{position:absolute;right:16px;bottom:16px;width:48px;height:48px;padding:12px;border-radius:50%;background:rgba(255,253,249,.92);color:#16203A}
.gal-side{display:grid;gap:var(--s2);align-content:start}
.gal-more{display:flex;gap:var(--s2);align-items:center;text-align:left;padding:var(--s3);border:1.5px dashed var(--border-strong);border-radius:var(--r-lg);background:var(--surface);cursor:pointer;min-height:96px}
.gal-more svg{width:32px;height:32px;flex:none;color:var(--tone-brass-text)}
.gal-more span span{display:block;color:var(--text-muted);font-size:1rem}
.prop-layout{display:grid;gap:var(--s8);padding-bottom:var(--s12)}
@media (min-width:1024px){.prop-layout{grid-template-columns:minmax(0,1fr) 360px}}
.prop-header .badges{display:inline-flex;gap:.4rem;flex-wrap:wrap;vertical-align:middle}
.prop-header .kicker{flex-wrap:wrap;letter-spacing:.04em;text-transform:none}
.prop-header .kicker::before{display:none}
.prop-title{font-size:clamp(2.25rem,3.5vw + 1rem,3.75rem);margin-bottom:var(--s1)}
.prop-header .addr{font-size:var(--fs-lead);color:var(--text-muted)}
.key-facts{margin:var(--s4) 0}
.key-facts-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1px;background:var(--border);border:var(--hairline);border-radius:var(--r-lg);overflow:hidden;margin:0}
.key-facts-list>div{background:var(--surface);padding:var(--s2) var(--s3)}
.key-facts-list>div:first-child{grid-column:1/-1}
.key-facts-list dt{font-size:1rem;color:var(--text-muted);font-weight:600}
.key-facts-list dd{margin:0;font-size:1.25rem}
.in-page{position:sticky;top:calc(var(--demo-bar-h) + 72px);z-index:20;display:flex;gap:var(--s1);overflow-x:auto;background:var(--bg);border-bottom:var(--hairline);padding-block:var(--s1);margin-bottom:var(--s4);scrollbar-width:none}
.in-page a{flex:none;min-height:var(--tap);display:inline-flex;align-items:center;padding:0 var(--s2);border-radius:var(--r-pill);text-decoration:none;font-weight:600;font-size:1.0625rem}
.in-page a:hover{background:var(--surface-2)}
.prop-sec{padding-block:var(--s6);border-bottom:var(--hairline)}
.prop-sec h2{font-size:clamp(1.875rem,2vw + 1rem,2.5rem)}
.feature-list{list-style:none;padding:0;display:grid;gap:.6rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));max-width:none}
.feature-list li{display:flex;gap:.6rem;align-items:flex-start;margin:0}
.feature-list svg{width:22px;height:22px;flex:none;margin-top:.2em;color:var(--success)}
.qv .feature-list{grid-template-columns:1fr}
.summary-list{margin:0;display:grid;gap:0}
.summary-list>div{display:grid;grid-template-columns:minmax(140px,40%) 1fr;gap:var(--s2);padding:.75rem 0;border-bottom:var(--hairline)}
.summary-list dt{font-weight:600}
.summary-list dd{margin:0}
.summary-list ul{margin:0;padding-left:1.1em}
.summary-list--rows>div:has(.change){grid-template-columns:minmax(120px,35%) 1fr auto}
.change .link{border:0;font-weight:600;cursor:pointer;min-height:var(--tap);padding:0 .25rem;font-size:1rem}
.fp-tools{margin-bottom:var(--s2)}
.fp-tools [data-fp-level]{min-width:4.5ch;text-align:center;font-weight:600}
.fp-scroll{overflow:auto;border:var(--hairline);border-radius:var(--r-lg);background:var(--surface);padding:var(--s3);max-height:80vh}
.fp-floor{margin:0 0 var(--s4)}
.fp-floor:last-child{margin:0}
.fp-floor figcaption{margin-bottom:var(--s1)}
.fp-svg{max-width:none;height:auto}
.fp-room rect{fill:var(--surface-2);stroke:var(--text);stroke-width:4}
.fp-name{font:600 18px var(--font-sans);fill:var(--text)}
.fp-dim{font:500 16px var(--font-sans);fill:var(--text-muted)}
.fp-small{font-size:16px}
.epc-chart{margin:0}
.epc-chart svg{width:100%;max-width:760px;height:auto}
.epc-range{font:600 20px var(--font-sans);fill:#fff}
.epc-band{font:700 28px var(--font-sans);fill:#fff}
.epc-score{font:700 22px var(--font-sans);fill:#fff}
.epc-head{font:600 20px var(--font-sans);fill:var(--text)}
.epc-chart figcaption{margin-top:var(--s2)}
.chart{margin:0;display:grid;gap:var(--s2);justify-items:start}
.chart>svg{width:100%;height:auto}
.c-grid{stroke:var(--border);stroke-width:1.5}
.c-axis{font:500 20px var(--font-sans);fill:var(--text-muted)}
.c-line{fill:none;stroke:var(--tone-brass-text);stroke-width:4;stroke-linejoin:round}
.c-dot{fill:var(--surface);stroke:var(--tone-brass-text);stroke-width:3}
.bars{display:grid;gap:.75rem}
.bar{display:grid;grid-template-columns:minmax(110px,30%) 1fr 3.5rem;gap:.75rem;align-items:center;font-size:1.0625rem}
.bar-track{display:block;height:14px;background:var(--surface-3);border-radius:var(--r-pill);overflow:hidden}
.bar-fill{display:block;height:100%;background:var(--tone-brass-text);border-radius:inherit}
.map-fig--loc svg{min-width:0}
.m-home circle{fill:var(--brand)}
.m-home path{fill:var(--on-brand)}
.m-amenity line{stroke:var(--border-strong);stroke-width:3;stroke-dasharray:8 8}
.m-amenity circle{fill:var(--tone-brass-text)}
.m-amenity text{font:600 24px var(--font-sans);fill:var(--text)}
.m-amenity .m-sub{font-weight:500;fill:var(--text-muted)}
.nearby{list-style:none;padding:0;display:grid;gap:.75rem;margin-top:var(--s3)}
.nearby li{display:flex;gap:.75rem;align-items:flex-start;margin:0}
.nearby svg{width:24px;height:24px;flex:none;color:var(--tone-brass-text);margin-top:.15em}
.calc .form-row{margin-bottom:0}
.calc-out{border-top:var(--hairline);padding-top:var(--s3);margin-top:var(--s1)}
.calc-monthly{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:var(--s2);margin-bottom:var(--s2)}
.calc-monthly .price{font-size:2.5rem}
.hint{color:var(--text-muted);font-size:1rem;margin:0}
.prop-aside{position:relative}
.action-panel{position:sticky;top:calc(var(--demo-bar-h) + 96px);background:var(--surface);border:var(--hairline);border-radius:var(--r-lg);padding:var(--s4);box-shadow:var(--shadow-2);display:grid;gap:var(--s2)}
.action-panel>.price{font-size:2.25rem;margin:0}
.action-panel>.qualifier{margin:0}
.ap-actions{display:grid;gap:var(--s1)}
.ap-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.25rem}
.ap-row .btn{padding-inline:.5rem;font-size:1rem}
.ap-agent{display:flex;gap:var(--s2);align-items:center;border-top:var(--hairline);padding-top:var(--s2)}
.ap-agent span span{display:block;font-size:1rem}
.avatar{display:inline-grid;place-items:center;flex:none;width:56px;height:56px;border-radius:50%;background:var(--brand);color:var(--on-brand);font:600 1.125rem var(--font-sans);letter-spacing:.04em}
.heart-btn[aria-pressed=true] svg{fill:currentColor;color:var(--danger)}
dialog.lightbox{width:100vw;height:100vh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:rgba(8,12,22,.96);color:#F4EFE6}
dialog.lightbox::backdrop{background:rgba(8,12,22,.9)}
.lb-inner{height:100%;display:grid;grid-template-rows:1fr auto;padding:var(--s6) var(--s2) var(--s2)}
.lb-stage{display:grid;place-items:center;min-height:0}
.lb-stage .kh-img{width:min(100%,calc((100vh - 200px)*1.5));border-radius:var(--r-sm)}
.lb-nav{display:flex;justify-content:center;align-items:center;gap:var(--s3)}
.lb-nav p{margin:0;min-width:10ch;text-align:center}
.lightbox .icon-btn{background:rgba(255,253,249,.12);color:#F4EFE6;border-color:transparent}
.lb-close{position:absolute;top:16px;right:16px}
.similar .cards{margin-top:0}
.val-layout{display:grid;gap:var(--s6)}
@media (min-width:1024px){.val-layout{grid-template-columns:minmax(0,1fr) 340px;align-items:start}
.val-summary{position:sticky;top:calc(var(--demo-bar-h) + 96px)}}
.stepper{margin-bottom:var(--s3)}
.step-label{font-weight:600;margin-bottom:var(--s1)}
.step-dots{display:flex;justify-content:space-between;list-style:none;padding:0;margin:var(--s2) 0 0;max-width:none;font-size:1rem;color:var(--text-muted)}
.step-dots li{margin:0;display:flex;align-items:center;gap:.4rem}
.step-dots li::before{content:"";width:12px;height:12px;border-radius:50%;border:2px solid var(--border-strong)}
.step-dots .is-done::before{background:var(--success);border-color:var(--success)}
.step-dots .is-current{color:var(--text);font-weight:600}
.step-dots .is-current::before{background:var(--brand);border-color:var(--brand)}
@media (max-width:639.98px){.step-dots li:not(.is-current){font-size:0;gap:0}
.step-dots li:not(.is-current)::before{margin:0}}
.val-step{border:0;padding:0;margin:0;min-width:0}
.val-step>legend{margin-bottom:var(--s3);padding:0}
.choice-grid{display:grid;gap:var(--s2);grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.form-nav{display:flex;justify-content:space-between;gap:var(--s2);margin-top:var(--s4);padding-top:var(--s3);border-top:var(--hairline)}
.form-nav [data-next],.form-nav [data-submit],.form-nav [data-qnext]{margin-left:auto}
.draft-note{margin:var(--s2) 0 0;min-height:1.5em}
.val-done:focus{outline:none}
.val-done h3{margin-top:var(--s4)}
.val-summary h2{margin-bottom:var(--s2)}
.val-summary .summary-list>div{grid-template-columns:1fr;gap:.1rem}
.val-summary dt{font-size:1rem;color:var(--text-muted)}
.review{margin-bottom:var(--s3)}
.timeline{list-style:none;padding:0;display:grid;gap:var(--s4);counter-reset:t;max-width:none;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.timeline li{counter-increment:t;position:relative;padding-top:var(--s6);margin:0;border-top:2px solid var(--tone-brass)}
.timeline li::before{content:counter(t,decimal-leading-zero);position:absolute;top:var(--s2);left:0;font:500 1.5rem var(--font-serif);color:var(--tone-brass-text)}
.timeline strong{display:block;font-size:1.25rem;margin-bottom:.4rem}
.timeline p{color:var(--text-muted)}
.timeline--compact{grid-template-columns:1fr;gap:var(--s3)}
.timeline--compact li{padding:0 0 0 var(--s8);border:0;border-left:2px solid var(--tone-brass)}
.timeline--compact li::before{top:0;left:var(--s2)}
.tick-list{list-style:none;padding:0}
.tick-list li{position:relative;padding-left:2rem}
.tick-list li::before{content:"";position:absolute;left:.2rem;top:.45em;width:.9rem;height:.5rem;border-left:2.5px solid var(--success);border-bottom:2.5px solid var(--success);transform:rotate(-45deg)}
.consent{align-items:flex-start;margin-block:var(--s2)}
.consent input{margin-top:.2em}
.slot-days{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--s2)}
.slot-day{display:grid;gap:.5rem;align-content:start}
.slot-date{font-weight:600;margin:0;font-size:1.0625rem}
.tile--slot{min-height:var(--tap);justify-content:center;padding:.5rem;font-variant-numeric:tabular-nums}
.tile--slot input{position:absolute;opacity:0;inset:0;cursor:pointer}
.tile--slot:has(input:checked){background:var(--brand);color:var(--on-brand);border-color:var(--brand)}
.tile--slot:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}
.viewing-form .chip-row .chip svg{width:20px;height:20px}
.quiz{display:grid;gap:var(--s3)}
.quiz-q{border:0;padding:0;margin:0}
.quiz-q legend{margin-bottom:var(--s3);padding:0}
.scale{display:grid;gap:var(--s1);grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.match-list{list-style:none;padding:0;display:grid;gap:var(--s3);max-width:none}
.match{display:grid;grid-template-columns:56px 1fr;gap:var(--s2);margin:0;padding:var(--s3);background:var(--surface-2);border-radius:var(--r-sm)}
.match:first-child{outline:2px solid var(--tone-brass)}
.match-rank{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--brand);color:var(--on-brand);font:500 1.5rem var(--font-serif)}
.match-head{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem;max-width:none}
.match .bar-track{margin-bottom:.75rem}
.area-cards{display:grid;gap:var(--s3);grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));margin-bottom:var(--s4)}
.area-card{position:relative;display:grid;gap:.25rem;text-decoration:none;color:var(--text);border-radius:var(--r-lg);overflow:hidden;background:var(--surface);border:var(--hairline);padding-bottom:var(--s2);transition:transform var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease)}
.area-card:hover,.area-card:focus-visible{transform:translateY(-4px);box-shadow:var(--shadow-3)}
.area-card .kh-img{aspect-ratio:4/3!important;margin-bottom:var(--s1)}
.area-card .kicker,.area-card strong{padding-inline:var(--s2)}
.area-card .kicker{margin:0}
.area-card strong{font:500 1.5rem var(--font-serif)}
.area-index{display:grid;gap:var(--s6)}
@media (min-width:1024px){.area-index{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start}
.area-map-col{position:sticky;top:calc(var(--demo-bar-h) + 96px)}}
.area-filters{margin-bottom:var(--s2)}
.area-tiles{display:grid;gap:var(--s3)}
.area-tile{display:grid;grid-template-columns:1fr;background:var(--surface);border:var(--hairline);border-radius:var(--r-lg);overflow:hidden;transition:box-shadow var(--dur-1) var(--ease)}
@media (min-width:640px){.area-tile{grid-template-columns:200px 1fr}}
.area-tile.is-hl{box-shadow:0 0 0 3px var(--tone-brass)}
.area-tile-link .kh-img{height:100%;min-height:160px}
.area-tile-body{padding:var(--s3)}
.area-tile-body h3{font-size:1.625rem;margin-bottom:var(--s1)}
.area-tile-body h3 a{text-decoration:none}
.area-tile-body h3 a:hover{text-decoration:underline}
.area-tile-body p:last-child{color:var(--text-muted)}
.guide{padding-block:var(--s8)}
.guide-hero{margin-bottom:var(--s6)}
.guide-hero .kh-img{border-radius:var(--r-lg)}
.guide-body{display:grid;gap:var(--s6)}
.guide-sec h2,.guide-sec h3{margin-bottom:var(--s2)}
.guide-charts{gap:var(--s6)}
.guide-rule{margin:0}
.other-areas ul{list-style:none;padding:0;max-width:none}
.other-areas li{margin:0}
.rounded{border-radius:var(--r-lg);overflow:hidden}
.pillars .card{display:grid;gap:var(--s1);align-content:start}
.pillar-icon{width:48px;height:48px;padding:10px;border-radius:var(--r-sm);background:var(--surface-2);color:var(--tone-brass-text);margin-bottom:var(--s2)}
.post-card{display:grid;gap:var(--s1);text-decoration:none;color:var(--text);transition:transform var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease)}
.post-card:hover,.post-card:focus-visible{transform:translateY(-4px);box-shadow:var(--shadow-3)}
.post-card h3{margin:0}
.post-card p{color:var(--text-muted)}
.team-card{display:grid;gap:.25rem;align-content:start}
.team-card .avatar{width:72px;height:72px;font-size:1.375rem;margin-bottom:var(--s2)}
.team-card h3{margin:0;font-size:1.5rem}
.team-card .kicker{margin-bottom:var(--s1)}
.insights-layout{display:grid;gap:var(--s6);padding-bottom:var(--s12)}
@media (min-width:1024px){.insights-layout{grid-template-columns:300px minmax(0,1fr);align-items:start}
.toc{position:sticky;top:calc(var(--demo-bar-h) + 96px)}}
.toc ol{padding-left:1.2em;margin:0}
.toc a{display:inline-block;padding:.4rem 0;font-weight:500}
.posts{display:grid;gap:var(--s10)}
.post{scroll-margin-top:120px}
.post h2{font-size:clamp(2rem,2.5vw + 1rem,3rem)}
.post h3{font-size:1.625rem;margin-top:var(--s4)}
.prose>*{max-width:var(--measure)}
.contact-cards{display:grid;gap:var(--s2);grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
.contact-card{display:flex;gap:var(--s2);align-items:center;text-decoration:none;color:var(--text);padding:var(--s3)}
.contact-card>svg{width:40px;height:40px;padding:8px;flex:none;border-radius:50%;background:var(--brand);color:var(--on-brand)}
.contact-card span span{display:block;color:var(--text-muted);word-break:break-word}
.legal h2{font-size:2rem;margin-top:var(--s6)}
.page-404 .section{min-height:60vh}
.split,.prop-layout,.val-layout,.area-index,.guide-body,.results-wrap,.insights-layout,.gallery,.posts{grid-template-columns:minmax(0,1fr)}
@media (min-width:900px){.gallery{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}}
@media (min-width:1024px){.split{grid-template-columns:minmax(0,1.55fr) minmax(320px,1fr)}
.split--even{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.prop-layout{grid-template-columns:minmax(0,1fr) 360px}
.val-layout{grid-template-columns:minmax(0,1fr) 340px}
.area-index{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}}
@media (min-width:1024px){.insights-layout{grid-template-columns:300px minmax(0,1fr)}}
@media (min-width:1240px){.results-wrap{grid-template-columns:minmax(0,1fr) 300px}}
[hidden]{display:none!important}
.results[data-view=map]{grid-template-columns:minmax(0,1fr)}
@media (min-width:1024px){.results[data-view=map]{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}}
.summary-list>div{grid-template-columns:minmax(0,40%) minmax(0,1fr)}
.summary-list dd{overflow-wrap:anywhere}
.summary-list--rows>div:has(.change){grid-template-columns:minmax(0,35%) minmax(0,1fr) auto}
@media (max-width:639.98px){.action-panel{padding:var(--s3)}
.ap-row .btn{flex-direction:column;gap:.15rem;min-height:64px;padding:.25rem}
.form-nav .btn{padding-inline:1rem}}
.ap-row{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:899.98px){.fb-inner{flex-wrap:wrap}
.fb-mode{flex:1 0 100%}
.fb-loc{flex:1 1 0}}
.guide .btn,.state .btn,.rail-foot .btn{white-space:normal;text-align:center;height:auto}
.gallery{align-items:start}
.key-facts-list{gap:0;background:var(--surface)}
.key-facts-list>div{box-shadow:inset -1px -1px 0 var(--border)}
.area-tile-link{display:block;min-width:0;overflow:hidden}
@media (min-width:640px){.area-tile-link .kh-img{aspect-ratio:auto!important;width:100%;height:100%}}
@media (max-width:899.98px){.gal-side{grid-template-columns:1fr 1fr}
.gal-more{grid-column:1/-1}}
@media (min-width:640px){.scale{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media (min-width:900px){.area-map .map-fig svg{min-width:0}}
@media (min-width:1024px) and (max-width:1239.98px){.area-index{grid-template-columns:minmax(0,1fr)}
.area-map-col{position:static}}
.chip:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}
@media (max-width:479.98px){.btn{white-space:normal;text-align:center;height:auto;max-width:100%}}
.action-panel{grid-template-columns:minmax(0,1fr)}
.action-panel>.price{overflow-wrap:anywhere;font-size:clamp(1.75rem,8vw,2.25rem)}
h1,h2,h3,.lead{overflow-wrap:break-word;hyphens:auto}
.section-head--row>div{min-width:0;flex:1 1 260px}
.seg{max-width:100%;flex-wrap:wrap}
@media (max-width:419.98px){.seg-opt span{padding:0 .65rem}}
.breadcrumbs ol{flex-wrap:nowrap;min-width:0}
.breadcrumbs li{flex:none;white-space:nowrap}
.breadcrumbs li:last-child{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
:root{
--shadow-1:0 1px 1px rgba(22,32,58,.04),0 2px 4px rgba(22,32,58,.04),0 6px 16px -4px rgba(22,32,58,.06);
--shadow-2:0 1px 2px rgba(22,32,58,.04),0 4px 10px rgba(22,32,58,.05),0 16px 32px -8px rgba(22,32,58,.10);
--shadow-3:0 2px 4px rgba(22,32,58,.04),0 10px 24px rgba(22,32,58,.07),0 32px 64px -16px rgba(22,32,58,.18);
--fs-h1:clamp(2.75rem,5vw + 1rem,4.75rem); --fs-h2:clamp(2.125rem,3vw + 1rem,3.25rem);
--section:clamp(4.5rem,7.5vw,8rem);
}
h1,h2{letter-spacing:-.022em}
h2{line-height:1.08}
h3{letter-spacing:-.012em}
p,li,dd{text-wrap:pretty}
.section-head{margin-bottom:var(--s6)}
.section-head .kicker{margin-bottom:var(--s1)}
.kicker::before{width:32px;background:linear-gradient(90deg,var(--tone-brass),color-mix(in srgb,var(--tone-brass) 30%,transparent))}
.prop-card{border-color:color-mix(in srgb,var(--border) 70%,transparent)}
.prop-card .media::after{content:"";position:absolute;inset:auto 0 0 0;height:38%;background:linear-gradient(to top,rgba(14,20,36,.28),transparent);pointer-events:none;z-index:1;opacity:.6;transition:opacity var(--dur-1) var(--ease)}
.prop-card:hover .kh-img img{transform:none}
@media (hover:hover){.prop-card:hover .kh-img picture img{transform:scale(1.06)}
.prop-card:hover .media::after{opacity:1}
.prop-card:hover{box-shadow:var(--shadow-3)}
.card:hover{box-shadow:var(--shadow-2)}}
.card{transition:box-shadow var(--dur-1) var(--ease)}
.prop-card:focus-within{outline:2px solid var(--focus-ring);outline-offset:3px}
.prop-card h3 a{text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size var(--dur-1) var(--ease)}
.prop-card:hover h3 a,.prop-card h3 a:focus-visible{background-size:100% 1px}
.prop-card h3 a::before{content:"";position:absolute;inset:0;z-index:0}
.prop-card .heart,.prop-card .carousel,.prop-card .compare-toggle,.prop-card .badges{z-index:3}
.prop-card .compare-toggle{position:relative}
.prop-card .price-row{align-items:center}
.prop-card .price{font-size:clamp(1.625rem,1.2vw + 1.1rem,1.875rem);letter-spacing:-.01em}
.qualifier{display:inline-flex;align-items:center;padding:.15rem .6rem;border-radius:var(--r-pill);background:var(--surface-2);border:var(--hairline);font-size:1rem;letter-spacing:.01em}
.action-panel .price{font-size:clamp(2rem,2vw + 1rem,2.5rem);margin:0}
.action-panel{border-top:3px solid var(--tone-brass)}
.hs-go{padding-inline:1.8rem}
@media (hover:hover){.hs-go:hover svg{transform:scale(1.1) rotate(-6deg)}}
.hs-go svg{transition:transform .3s var(--ease)}
.chip{border-color:color-mix(in srgb,var(--border-strong) 65%,var(--border));transition:background-color .2s,border-color .2s,color .2s,transform .2s var(--ease),box-shadow .2s}
@media (hover:hover){.chip:hover{border-color:var(--text);background:var(--surface-2)}}
.chip:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}
.chip:has(input:checked)::before,.chip.is-active::before,.chip[aria-pressed="true"]::before{content:"";width:.9em;height:.5em;border:solid currentColor;border-width:0 0 2px 2px;transform:translateY(-.15em) rotate(-45deg);margin-right:.1rem}
.chip--remove{background:var(--surface-2)}
.chips .chip{min-height:var(--tap)}
.chip:active{transform:scale(.97)}
.filter-bar{container:kh-fb / scroll-state}
.in-page{container:kh-ip / scroll-state}
@container kh-fb scroll-state(stuck: top){.fb-inner{filter:drop-shadow(0 10px 12px rgba(22,32,58,.07))}}
@container kh-ip scroll-state(stuck: top){.in-page>a{opacity:.92}}
.in-page a{border-radius:var(--r-pill);transition:background-color .2s,color .2s}
@media (hover:hover){.in-page a:hover{background:var(--surface-2)}}
@media (max-width:479.98px){.fb-more{width:var(--input-h);padding:0;position:relative}
.fb-more::after{content:none}
.fb-more .count-pill{position:absolute;top:-8px;right:-8px}
.ta-input:placeholder-shown{padding-right:16px!important}}
.results-tools .btn--ghost{border-color:var(--border)}
@media (hover:hover){.results-tools .btn--ghost:hover{border-color:var(--border-strong)}}
.stat-list li{position:relative;border-left-color:transparent}
.stat-list li::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--tone-brass);transform-origin:top}
.stat-list strong{font-variant-numeric:tabular-nums lining-nums}
.heart{position:relative}
.heart::after{content:"";position:absolute;inset:-2px;border-radius:inherit;border:2px solid #9B2F1E;opacity:0;pointer-events:none}
.action-bar--prop{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:var(--s1);padding:.5rem var(--gutter) calc(.5rem + env(safe-area-inset-bottom))}
.action-bar--prop .abp-price{display:grid;line-height:1.15;padding-right:.25rem;min-width:0}
.action-bar--prop .abp-price .price{font-size:1.375rem;white-space:nowrap}
.action-bar--prop .abp-price span:last-child{font-size:1rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.action-bar--prop a.abp-call{min-height:var(--tap);width:var(--tap);border:var(--hairline);border-radius:var(--r-pill);gap:0}
.action-bar--prop .abp-book{min-height:52px;padding-inline:1.1rem;white-space:nowrap}
@media (max-width:359.98px){.action-bar--prop .abp-price{display:none}
.action-bar--prop{grid-template-columns:auto 1fr}
.action-bar--prop .abp-book{width:100%}}
:root{--r-xl:28px}
.prop-card .body{padding:var(--s3);gap:.7rem}
@media (min-width:1240px){.prop-card .body{padding:1.75rem}}
.prop-card .facts{color:var(--text-muted)}
.chip{font-weight:600;padding-inline:1.15rem}
.btn--outline-light{background:transparent;color:#F4EFE6;border-color:#8D97AE}
.btn--outline-light:hover{border-color:#F4EFE6;background:rgba(255,253,249,.06);transform:translateY(-2px)}
.area-chips{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0;padding:0;max-width:none}
.area-chips li{margin:0}
.area-chip{display:inline-flex;align-items:center;gap:.4rem;min-height:var(--tap);padding:.3rem 1.05rem;border-radius:var(--r-pill);background:var(--surface-2);border:1px solid var(--border);color:var(--text);font-size:1rem;font-weight:600;text-decoration:none;transition:background-color .2s,border-color .2s,transform .2s var(--ease)}
.area-chip svg{width:16px;height:16px;flex:none;color:var(--tone-brass-text)}
@media (hover:hover){.area-chip:hover{border-color:var(--border-strong);background:var(--surface-3)}}
.area-chip:active{transform:scale(.97)}
.val-band,.cta-band{border-radius:var(--r-xl);box-shadow:var(--shadow-2)}
.val-band{display:grid;grid-template-columns:minmax(0,1fr);background:var(--ink);color:#F4EFE6;overflow:hidden;position:relative}
.val-band-copy{padding:clamp(2rem,5vw,3.75rem);position:relative}
.val-band h2{color:#F4EFE6;margin-bottom:var(--s2)}
.val-band .kicker{color:#E2C690}
.val-band .lead{color:#D5D9E3;max-width:46ch}
.val-band .steps-mini{margin-block:var(--s4)}
.val-band .steps-mini strong{color:#F4EFE6}
.val-band .steps-mini span{color:#D5D9E3}
.val-band .steps-mini li::before{background:#E7D2A6;color:#16203A}
.val-band-media{position:relative;order:-1}
.val-band-media .kh-img{height:100%}
@media (min-width:1024px){.val-band{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}
.val-band-media{order:0;min-height:100%}
.val-band-media .kh-img{position:absolute;inset:0;aspect-ratio:auto!important}}
.val-band::after,.cta-band::after{content:"";position:absolute;width:320px;height:320px;border:1px solid rgba(226,198,144,.3);border-radius:50% 50% 0 0;pointer-events:none}
.val-band::after{left:-120px;bottom:-200px}
.page-index .cta-sec{display:none}
.pillar-icon{width:56px;height:56px;padding:15px;border-radius:50%;background:var(--brand);color:var(--on-brand)}
.pillars h3{font-size:1.75rem}
.hs-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s1) var(--s3);margin-bottom:var(--s3)}
.hs-sell{margin:0;font-size:var(--fs-small);color:var(--text-muted)}
.hs-sell a{display:inline-flex;align-items:center;gap:.35rem;min-height:var(--tap);font-weight:600;color:var(--text);text-decoration:underline;text-decoration-color:var(--tone-brass);text-decoration-thickness:1.5px;text-underline-offset:5px}
.hs-sell svg{width:18px;height:18px;transition:transform .3s var(--ease)}
@media (hover:hover){.hs-sell a:hover svg{transform:translateX(3px)}}
.hs-popular{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s1) var(--s2);margin-top:var(--s3);padding-top:var(--s2);border-top:1px solid var(--border)}
.hs-pop-label{margin:0;font-size:1rem;font-weight:600;color:var(--text-muted)}
.stats .stat-list{gap:0;grid-template-columns:repeat(2,minmax(0,1fr));border-block:1px solid var(--border);overflow:hidden}
.stats .stat-list li{border:0;margin:0 0 0 -1px;padding:var(--s3) var(--s3) var(--s3);border-left:1px solid var(--border);border-top:1px solid var(--border);margin-top:-1px}
.stats .stat-list li::before{left:var(--s3);top:0;bottom:auto;width:32px;height:2px;transform-origin:left}
@media (min-width:900px){.stats .stat-list{grid-template-columns:repeat(4,minmax(0,1fr))}}
.stat-list span{display:block;margin-top:.35rem;font-size:var(--fs-small)}
.head-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2)}
.strip{gap:.6rem}
.rail-foot{margin-top:var(--s2)}
.area-card{gap:.3rem;padding-bottom:var(--s3);box-shadow:var(--shadow-1);border-color:color-mix(in srgb,var(--border) 75%,transparent)}
.area-card strong{font-size:1.625rem;line-height:1.2}
.area-go{display:inline-flex;align-items:center;gap:.4rem;padding-inline:var(--s2);margin-top:.25rem;font-size:1rem;font-weight:600;color:var(--text-muted)}
.area-go svg{width:16px;height:16px;color:var(--tone-brass-text);transition:transform .3s var(--ease)}
@media (hover:hover){.area-card:hover .kh-img img{transform:scale(1.06)}
.area-card:hover .area-go svg{transform:translateX(3px)}}
.area-card .kh-img img{transition:transform 1.2s var(--ease)}
.gallery{margin-bottom:var(--s2)}
.gal-main,.gal-thumb{border-radius:var(--r-lg)}
.gal-thumb--all::after{content:"";position:absolute;inset:0;background:rgba(14,20,36,.42);z-index:1;transition:background-color .3s}
@media (hover:hover){.gal-thumb--all:hover::after{background:rgba(14,20,36,.3)}}
.gal-all{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);white-space:nowrap;z-index:2;display:inline-flex;align-items:center;gap:.5rem;min-height:var(--tap);padding:0 1.15rem;border-radius:var(--r-pill);background:#FFFDF9;color:#16203A;font-weight:600;font-size:1rem;box-shadow:var(--shadow-2)}
.gal-all svg{width:20px;height:20px;flex:none}
@media (min-width:900px){.gallery{align-items:stretch}
.gal-side{grid-template-columns:none;grid-template-rows:1fr 1fr;height:100%}
.gal-thumb{height:100%;min-height:0}
.gal-thumb .kh-img{position:absolute;inset:0;aspect-ratio:auto!important;height:100%}}
.gal-note{display:block;margin:0;padding-bottom:var(--s6);max-width:none;font-size:1rem;color:var(--text-muted)}
.gal-note svg{display:inline-block;width:20px;height:20px;vertical-align:-4px;margin-right:.4rem;color:var(--tone-brass-text)}
.gal-note .link{border:0;padding:.7rem 0;font:inherit;font-weight:600;line-height:1.5;min-height:var(--tap);cursor:pointer;background-color:transparent;background-origin:content-box;background-clip:content-box}
.prop-title{font-size:clamp(2.25rem,3.4vw + 1rem,4rem);line-height:1.04;margin-block:var(--s2) var(--s1)}
.prop-price-inline{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin:var(--s2) 0 0}
.prop-price-inline .price{font-size:clamp(1.875rem,4vw,2.25rem)}
@media (min-width:1024px){.prop-price-inline{display:none}}
.key-facts{margin:var(--s4) 0 var(--s3)}
.kf-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;border-block:1px solid var(--border);overflow:hidden}
.kf-strip>div{padding:var(--s2) var(--s2) var(--s2) var(--s3);margin:-1px 0 0 -1px;border-left:1px solid var(--border);border-top:1px solid var(--border);min-width:0}
.kf-strip dt{display:flex;align-items:center;gap:.45rem;font-size:1rem;font-weight:500;color:var(--text-muted)}
.kf-strip dt svg{width:20px;height:20px;flex:none}
.kf-strip dd{margin:.3rem 0 0;font:500 clamp(1.5rem,1vw + 1.05rem,1.875rem)/1.15 var(--font-serif);color:var(--text);overflow-wrap:anywhere}
.kf-note{display:block;margin-top:.15rem;font:500 1rem/1.3 var(--font-sans);color:var(--text-muted)}
@media (min-width:640px){.kf-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1100px){.kf-strip{grid-template-columns:repeat(5,minmax(0,1fr))}
.kf-strip>div:first-child{padding-left:0}}
.kf-more{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s4);margin:var(--s2) 0 0}
.kf-more>div{display:flex;align-items:center;gap:.5rem}
.kf-more dt{color:var(--text-muted);font-weight:500}
.kf-more dd{margin:0;font-weight:600}
.in-page{gap:.4rem}
.in-page a[aria-current]{background:var(--brand);color:var(--on-brand)}
.prop-sec h2{font-size:clamp(1.875rem,1.4vw + 1.25rem,2.375rem);margin-bottom:var(--s3)}
.prose--dropcap>p:first-child::first-letter{float:left;font:500 4.4rem/.82 var(--font-serif);color:var(--tone-brass-text);margin:.4rem .65rem 0 0}
.prose--dropcap>p{line-height:1.72}
.placeholder{font-family:var(--font-sans);font-weight:500;padding:.1rem .5rem}
.nearby li{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:.75rem 1rem}
.nearby svg{margin-top:0}
.calc-out{background:var(--surface-2);border:1px solid var(--border);border-radius:20px;padding:var(--s3);margin-top:var(--s2)}
.calc-monthly .price{font-size:clamp(2.25rem,2vw + 1.25rem,3rem)}
.action-panel{padding:var(--s4);box-shadow:var(--shadow-3)}
.action-panel>.price{font-size:clamp(2.25rem,2vw + 1.25rem,2.75rem);line-height:1}
.action-panel>.qualifier{justify-self:start}
.ap-est{margin:0;font-size:1.0625rem;color:var(--text-muted)}
.ap-est strong{color:var(--text);font-weight:600}
.prop-card--overlay{border:0;background:var(--ink);box-shadow:var(--shadow-2)}
.prop-card--overlay .media{aspect-ratio:4/5}
.prop-card--overlay .media::after{display:none}
.prop-card--overlay .body{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:6.5rem var(--s3) var(--s3);gap:.45rem;background:linear-gradient(to top,rgba(14,20,36,.95) 0%,rgba(14,20,36,.9) 70%,rgba(14,20,36,0) 100%)}
.prop-card--overlay .price,.prop-card--overlay h3 a{color:#FFFDF9}
.prop-card--overlay .price{font-size:clamp(1.875rem,1.4vw + 1.2rem,2.125rem)}
.prop-card--overlay .addr,.prop-card--overlay .facts,.prop-card--overlay .meta{color:#E6E9F0}
.prop-card--overlay .facts svg{color:#E2C690}
.prop-card--overlay .qualifier{background:rgba(255,253,249,.14);border-color:rgba(255,253,249,.3);color:#FFFDF9}
.prop-card--overlay .meta{border-top-color:rgba(255,253,249,.22)}
.prop-card--overlay .img-credit{top:12px;bottom:auto}
.prop-card--overlay .badges{top:54px}
.prop-card--overlay .carousel{inset:68px 10px auto auto;flex-direction:column}
.prop-card--overlay:focus-within{outline-color:var(--focus-ring)}
@media (hover:hover){.prop-card--overlay:hover .kh-img picture img{transform:scale(1.05)}}
.hs-panel .field{margin:0}
.hs-panel .typeahead>.label{display:block;margin-bottom:.5rem}
@media (max-width:639.98px){.gal-all-long{display:none}
.gal-all{padding:0 .85rem;gap:.35rem}}
/* =====================================================================
   Keyhouse Estates, 2026 redesign layer.
   Direction: an architect's site plan. Paper ground, navy ink, a single brass rule,
   square photographs, hairlines, numbered section heads. No motion anywhere.
   ===================================================================== */
:root{
  --paper:#F6F3EC; --paper-2:#EEE9DE; --white:#FFFFFF;
  --navy:#14213D; --navy-2:#1B2A4A; --navy-3:#24365C;
  --ink-text:#1A2238; --ink-muted:#475066; --rule:#D9D2C3; --rule-strong:#857A66;
  --brass-line:#A88452; --brass-ink:#6F5124; --brass-on-navy:#E3C894;
  --bg:var(--paper); --surface:var(--white); --surface-2:var(--paper-2); --surface-3:#E6DFD1;
  --text:var(--ink-text); --text-muted:var(--ink-muted); --text-subtle:#4F586C;
  --brand:var(--navy-2); --on-brand:#FFFFFF; --brand-hover:var(--navy);
  --tone-brass:var(--brass-line); --tone-brass-text:var(--brass-ink); --on-tone-brass:#FFFFFF;
  --border:var(--rule); --border-strong:var(--rule-strong); --focus:var(--navy); --focus-ring:var(--brass-line);
  --font-serif:"Newsreader","Newsreader Fallback",Georgia,"Times New Roman",serif;
  --font-sans:"Albert Sans","Albert Sans Fallback",Arial,system-ui,sans-serif;
  --fs-body:1.0625rem; --fs-lead:1.25rem; --fs-small:.9375rem; --fs-min:.875rem;
  --fs-h1:clamp(2.5rem,3.6vw + 1.1rem,4.25rem); --fs-h2:clamp(1.875rem,2.2vw + 1rem,3rem); --fs-h3:1.5rem; --fs-h4:1.1875rem;
  --fs-menu:1rem; --fs-btn:1rem; --fs-label:1rem; --fs-input:1.0625rem; --fs-price:1.5rem;
  --lh-body:1.6; --lh-head:1.08; --measure:68ch;
  --section:clamp(3.5rem,6.5vw,6.5rem); --container:1280px; --gutter:clamp(1.25rem,3.2vw,2.5rem); --card-pad:clamp(1.25rem,2vw,1.75rem);
  --r-sm:2px; --r-lg:2px; --r-pill:2px;
  --shadow-1:none; --shadow-2:0 1px 0 rgba(20,33,61,.04); --shadow-3:0 18px 40px rgba(20,33,61,.14);
  --header-h:76px; --tap:44px; --input-h:52px;
}
@media (min-width:768px){:root{--fs-body:1.0625rem}}
html{scroll-padding-top:96px}
body{font-size:var(--fs-body);line-height:var(--lh-body);background:var(--bg);color:var(--text)}
h1,h2,h3{font-weight:400;letter-spacing:-.018em}
h1{line-height:1.04} h3{line-height:1.2}
h4{font-family:var(--font-sans);font-weight:700;letter-spacing:0}
.lead{color:var(--text-muted);font-size:var(--fs-lead);line-height:1.5}
.kicker{font-size:.875rem;letter-spacing:.16em;font-weight:700;color:var(--brass-ink);gap:.75em}
.kicker::before{width:32px;height:1px;background:var(--brass-line)}
.prose a,.link{background:none;text-decoration:underline;text-decoration-color:var(--rule-strong);text-decoration-thickness:1px;text-underline-offset:.22em;padding-bottom:0}
.prose a:hover,.link:hover{text-decoration-color:currentColor;color:var(--brass-ink)}
:focus-visible{outline:3px solid var(--navy);outline-offset:2px;box-shadow:0 0 0 6px rgba(168,132,82,.35);border-radius:0}
.skip-link{border-radius:0;top:8px}
.skip-link:not(:focus){transform:translateY(-300%)}
.section--alt{background:var(--paper-2)}
.section--ink{background:var(--navy);color:#EEF0F5}
.section--ink .kicker{color:var(--brass-on-navy)} .section--ink .kicker::before{background:var(--brass-on-navy)}
.section--ink h2,.section--ink h3{color:#fff} .section--ink .lead,.section--ink .muted{color:#D3D8E3}
.section-head{margin-bottom:clamp(2rem,3.5vw,3.25rem)}
.section-head h2{margin-bottom:.75rem}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:48px;padding:0 1.375rem;border-radius:0;font-family:var(--font-sans);font-size:1rem;font-weight:700;letter-spacing:.01em;text-decoration:none;border:1px solid transparent;cursor:pointer;line-height:1.2;box-shadow:none;transform:none}
.btn svg{width:18px;height:18px;flex:none}
.btn--primary,.btn--brand{background:var(--navy-2);color:#fff;border-color:var(--navy-2)}
.btn--primary:hover,.btn--brand:hover{background:var(--navy);border-color:var(--navy);color:#fff}
.btn--secondary,.btn--line{background:transparent;color:var(--navy);border-color:var(--navy)}
.btn--secondary:hover,.btn--line:hover{background:var(--navy);color:#fff}
.btn--ghost{background:transparent;color:var(--navy);border-color:transparent;text-decoration:underline;text-underline-offset:.2em}
.btn--ghost:hover{color:var(--brass-ink)}
.btn--light{background:#fff;color:var(--navy);border-color:#fff}
.btn--light:hover{background:var(--paper);color:var(--navy)}
.btn--outline-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}
.btn--outline-light:hover{background:#fff;color:var(--navy)}
.btn--sm{min-height:44px;padding:0 1rem}
.btn--block{width:100%}
.icon-btn{border-radius:0}
.chip,.area-chip,.count-pill,.badge,.tab,.seg-opt{border-radius:0}

/* ---------- Demo banner (utility bar) ---------- */
.demo-banner{background:var(--navy);color:#E9ECF2;font-size:.9375rem;line-height:1.4;border:0;padding:0;text-align:left}
.demo-banner-inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:44px;padding-block:.5rem}
.demo-banner p{margin:0;max-width:none}
.demo-banner strong{color:#fff;font-weight:700}
.demo-banner-hours{color:var(--brass-on-navy);white-space:nowrap;font-variant-numeric:tabular-nums}
@media (max-width:899.98px){.demo-banner-hours{display:none}}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:60;background:#fff;border-bottom:1px solid var(--rule)}
.hdr{display:flex;align-items:center;gap:clamp(.75rem,2vw,2rem);min-height:var(--header-h)}
.brand{display:inline-flex;align-items:center;gap:.7rem;min-height:44px;color:var(--navy);text-decoration:none;flex:none}
.brand-mark{color:var(--navy);flex:none}
.brand-word{display:grid;line-height:1}
.brand-name{font-family:var(--font-serif);font-size:1.75rem;font-weight:500;letter-spacing:-.015em}
.brand-sub{font-family:var(--font-sans);font-size:.875rem;font-weight:700;letter-spacing:.34em;text-transform:uppercase;color:var(--brass-ink);margin-top:.2rem}
.primary-nav{margin-left:auto}
.nav-list{display:flex;align-items:center;gap:.125rem;list-style:none;margin:0;padding:0;max-width:none;flex-wrap:nowrap}
.nav-item{margin:0}
.nav-link{display:inline-flex;align-items:center;gap:.35rem;min-height:var(--header-h);padding:0 .7rem;background:none;border:0;border-radius:0;font:600 1rem/1 var(--font-sans);color:var(--ink-text);text-decoration:none;white-space:nowrap;cursor:pointer;position:relative}
.nav-link .chev{width:12px;height:12px;color:var(--brass-ink)}
.nav-link:hover{color:var(--brass-ink)}
.nav-link[aria-current="page"]{box-shadow:inset 0 -3px 0 var(--brass-line)}
.nav-link[aria-expanded="true"]{color:var(--brass-ink);box-shadow:inset 0 -3px 0 var(--navy)}
.nav-link[aria-expanded="true"] .chev{transform:rotate(180deg)}
.hdr-actions{display:flex;align-items:center;gap:.5rem;flex:none}
.hdr-phone{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:44px;min-width:44px;padding:0 .5rem;color:var(--navy);font-weight:700;text-decoration:none;white-space:nowrap;font-variant-numeric:tabular-nums}
.hdr-phone .ico{width:20px;height:20px;color:var(--brass-ink)}
.hdr-phone:hover{color:var(--brass-ink)}
.hdr-cta .ico{width:18px;height:18px}
.menu-toggle{display:none;align-items:center;gap:.6rem;min-height:44px;min-width:44px;padding:0 .875rem;background:#fff;border:1px solid var(--navy);border-radius:0;color:var(--navy);font-weight:700;cursor:pointer}
.menu-toggle:hover{background:var(--navy);color:#fff}
.burger{display:grid;gap:4px;width:18px}
.burger span{display:block;height:2px;background:currentColor}
.nojs-menu{display:none}
@media (max-width:1379.98px){.hdr-phone-num{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}
@media (max-width:1239.98px){.hdr-cta span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.hdr-cta{width:48px;padding:0}}
@media (max-width:1099.98px){
  .primary-nav{display:none}
  .hdr{min-height:68px} .hdr-actions{margin-left:auto}
  .menu-toggle{display:inline-flex}
  html:not(.js) .menu-toggle{display:none}
  html:not(.js) .nojs-menu{display:inline-flex;align-items:center;min-height:44px;padding:0 .875rem;border:1px solid var(--navy);color:var(--navy);font-weight:700;text-decoration:none}
}
@media (max-width:479.98px){.brand-name{font-size:1.5rem}.brand-mark{width:32px;height:28px}.hdr-cta{display:none}.brand{gap:.5rem}}

/* ---------- Mega menu ---------- */
.mega{display:none;position:absolute;left:0;right:0;top:100%;z-index:70;background:#fff;border-top:1px solid var(--rule);border-bottom:3px solid var(--navy);box-shadow:var(--shadow-3);max-height:calc(100vh - 120px);max-height:calc(100dvh - var(--header-h-live,120px));overflow-y:auto;overscroll-behavior:contain}
.mega.is-open{display:block}
html:not(.js) .nav-item:hover>.mega,html:not(.js) .nav-item:focus-within>.mega{display:block}
.mega-inner{padding-block:2rem 2.25rem}
.mega-grid{display:grid;gap:2rem 2.5rem;align-items:start}
.mega-grid--4{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,1.2fr)}
.mega-grid--3{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr)}
.mega-grid--2{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.mcol{min-width:0}
.mcol--wide .mlist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:2rem}
.mhead{margin:0 0 .5rem;padding-bottom:.625rem;border-bottom:1px solid var(--rule);font:700 .875rem/1.3 var(--font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--brass-ink)}
.mlist{list-style:none;margin:0;padding:0;max-width:none}
.mlist li{margin:0;border-bottom:1px solid #EFEBE3}
.mlist li:last-child{border-bottom:0}
.mlink{display:flex;align-items:center;gap:.875rem;min-height:48px;padding:.4rem 0;color:var(--ink-text);text-decoration:none}
.mlink--plain{min-height:46px}
.mlink .ico{width:18px;height:18px;flex:none;color:var(--brass-ink)}
.mthumb{flex:none;display:block;width:48px;height:48px;background:var(--paper-2)}
.mthumb img{width:48px;height:48px;object-fit:cover;border-radius:0}
.mlink-text{display:grid;gap:.1rem;min-width:0}
.mlink-label{font-weight:600;font-size:1rem;line-height:1.3}
.mlink-sub{font-size:.875rem;line-height:1.3;color:var(--ink-muted)}
.mlink:hover .mlink-label{color:var(--brass-ink);text-decoration:underline;text-underline-offset:.2em}
.mcol--feature .mhead{color:var(--ink-muted)}
.mcard{display:block;color:var(--ink-text);text-decoration:none;background:var(--paper);border:1px solid var(--rule)}
.mcard-img{display:block}
.mcard-img img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:0}
.mcard-body{display:grid;gap:.3rem;padding:1rem 1.125rem 1.125rem}
.mcard-price{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}
.mcard-price .price{font-family:var(--font-serif);font-weight:500;font-size:1.5rem;color:var(--navy)}
.mcard-price .qualifier{font-size:.875rem;color:var(--ink-muted)}
.mcard-title{font-family:var(--font-serif);font-size:1.25rem;line-height:1.25}
.mcard-text{font-size:.9375rem;line-height:1.45;color:var(--ink-muted)}
.mcard:hover .mcard-title{color:var(--brass-ink);text-decoration:underline;text-underline-offset:.18em}
@media (max-width:1279.98px){.mega-grid{gap:1.5rem 1.75rem}}

/* ---------- Drawer (under 1100px) ---------- */
.drawer{position:fixed;inset:0;z-index:200;background:rgba(14,22,40,.55)}
.drawer[hidden]{display:none}
.drawer-panel{position:absolute;top:0;right:0;bottom:0;width:min(440px,100%);background:#fff;display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain}
.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem var(--gutter);border-bottom:1px solid var(--rule);min-height:68px}
.drawer-close{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;min-width:44px;padding:0 .875rem;background:#fff;border:1px solid var(--navy);border-radius:0;color:var(--navy);font-weight:700;cursor:pointer}
.drawer-close:hover{background:var(--navy);color:#fff}
.drawer-close svg{width:18px;height:18px}
.drawer nav{padding:.5rem var(--gutter) 0}
.d-list{list-style:none;margin:0;padding:0;max-width:none}
.d-list>li{margin:0;border-bottom:1px solid var(--rule)}
.d-link{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;min-height:56px;padding:0;background:none;border:0;border-radius:0;font:600 1.125rem/1.2 var(--font-sans);color:var(--ink-text);text-decoration:none;text-align:left;cursor:pointer}
.d-link:hover{color:var(--brass-ink)}
.d-link .chev{width:14px;height:14px;color:var(--brass-ink)}
.d-link[aria-expanded="true"] .chev{transform:rotate(180deg)}
.d-sub{list-style:none;margin:0 0 .75rem;padding:0 0 0 1rem;border-left:2px solid var(--brass-line);max-width:none}
.d-sub li{margin:0}
.d-sub a{display:flex;align-items:center;min-height:44px;color:var(--ink-text);text-decoration:none;font-size:1rem}
.d-sub a:hover{color:var(--brass-ink);text-decoration:underline}
.drawer-foot{display:grid;gap:.75rem;padding:1.5rem var(--gutter) 2rem;margin-top:auto}
.d-hours{font-size:.9375rem;color:var(--ink-muted);margin:0}

/* ---------- Footer ---------- */
.site-footer{background:var(--navy);color:#DDE2EC;padding:clamp(2.75rem,5vw,4rem) 0 1.25rem;font-size:.9375rem;line-height:1.5;margin-bottom:0}
.site-footer a{color:#fff;text-decoration:none}
.site-footer a:hover{color:var(--brass-on-navy);text-decoration:underline;text-underline-offset:.2em}
.f-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,3fr) minmax(0,1.1fr);gap:2rem clamp(1.5rem,3vw,3rem);padding-bottom:2rem;border-bottom:1px solid rgba(255,255,255,.16)}
.f-brand .brand{color:#fff;margin-bottom:1rem}
.f-brand .brand-mark{color:var(--brass-on-navy)}
.f-brand .brand-sub{color:var(--brass-on-navy)}
.f-address{font-style:normal;margin:0 0 .75rem;color:#DDE2EC}
.f-contact{margin:0}
.f-contact a{display:inline-flex;align-items:center;min-height:44px;font-weight:600}
.f-contact br{display:none}
.f-contact{display:grid}
.f-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem}
.fhead{font:700 .875rem/1.3 var(--font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--brass-on-navy);margin:0 0 .5rem}
.fcol ul{list-style:none;margin:0;padding:0}
.fcol li{margin:0}
.fcol a{display:inline-flex;align-items:center;min-height:44px;line-height:1.25}
.f-hours .hours{width:100%;border-collapse:collapse;font-size:.9375rem}
.f-hours th,.f-hours td{text-align:left;padding:.45rem 0;border-bottom:1px solid rgba(255,255,255,.12);vertical-align:top;font-weight:400}
.f-hours th{color:#fff;font-weight:600;padding-right:1rem;white-space:nowrap}
.f-hours td{color:#DDE2EC}
.f-legal{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.5rem;padding-top:1.25rem;color:#C9D0DD;font-size:.875rem}
.f-legal p{margin:0;max-width:none}
.f-legal strong{color:#fff}
.f-placeholders{display:flex;flex-wrap:wrap;gap:.25rem .75rem}
.placeholder{color:#C9D0DD;background:none;border:0;padding:0;font-family:var(--font-sans)}
.back-to-top{margin-left:auto;display:inline-flex;align-items:center;min-height:44px;font-weight:700}
@media (max-width:1199.98px){.f-top{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.f-nav{grid-column:1/-1;grid-row:2}}
@media (max-width:767.98px){.f-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.f-top{grid-template-columns:1fr}.back-to-top{margin-left:0}}
@media (max-width:1099.98px){.site-footer{padding-bottom:calc(1.25rem + 72px)}}

/* ---------- Mobile action bar ---------- */
.action-bar{box-shadow:none;border-top:1px solid var(--rule);background:#fff}
.action-bar a{min-height:60px;font-size:.9375rem;color:var(--navy)}
.action-bar a.is-primary{background:var(--navy-2);color:#fff}
.action-bar svg{width:20px;height:20px}
@media (max-width:1099.98px){.action-bar{display:grid}}
@media (min-width:1100px){.action-bar{display:none}}

/* ---------- Images: square, crisp. Edge fade only on hero + primary feature ---------- */
.kh-img{border-radius:0;background:var(--paper-2)}
.kh-img img,.rounded,.kh-img.rounded{border-radius:0}
.img-credit{font-size:.875rem;background:rgba(20,33,61,.86);color:#fff;border-radius:0;padding:.2rem .55rem;letter-spacing:.01em}
.img-fade{-webkit-mask-image:linear-gradient(to bottom,#000 78%,transparent 100%);mask-image:linear-gradient(to bottom,#000 78%,transparent 100%)}

/* ---------- Numbered section heads (site-plan motif) ---------- */
main{counter-reset:khsec}
.section-head .kicker{counter-increment:khsec}
.section-head .kicker::before{content:counter(khsec,decimal-leading-zero);width:auto;height:auto;background:none;padding-right:.75em;margin-right:.1em;border-right:1px solid var(--brass-line);font-variant-numeric:tabular-nums;letter-spacing:.06em}
.section--ink .section-head .kicker::before,.val-band .kicker::before{border-right-color:var(--brass-on-navy)}

/* ---------- Home: hero ---------- */
.page-index .hero{position:relative;background:var(--paper);padding:clamp(1.25rem,2.5vw,2.25rem) 0 0;min-height:0;overflow:visible;color:var(--text)}
.page-index .hero-band{position:relative;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);width:100%;max-width:calc(var(--container) + var(--gutter)*2);margin-inline:auto;padding-inline:var(--gutter);min-height:0}
.page-index .hero-media{grid-column:2;grid-row:1;position:relative;inset:auto;min-height:clamp(420px,42vw,600px)}
.page-index .hero-media .kh-img{position:absolute;inset:0;aspect-ratio:auto!important;height:100%}
.page-index .hero-media img{width:100%;height:100%;object-fit:cover}
.page-index .hero-media .img-fade{-webkit-mask-image:linear-gradient(to right,transparent 0,#000 16%);mask-image:linear-gradient(to right,transparent 0,#000 16%)}
.page-index .hero-media .img-credit{left:auto;right:.75rem;bottom:.75rem}
.page-index .hero-inner{grid-column:1;grid-row:1;position:relative;z-index:2;max-width:none;margin:0;padding:clamp(1rem,3vw,3rem) clamp(1rem,2.5vw,2.5rem) clamp(4.5rem,7vw,6.5rem) 0;display:flex;align-items:center}
.page-index .hero-copy{max-width:34rem;padding:0;background:none}
.page-index .hero-kicker{margin-bottom:1.25rem}
.page-index .hero-title{font-size:clamp(2.75rem,4.4vw + .75rem,5rem);line-height:1.02;letter-spacing:-.025em;margin-bottom:1.25rem;color:var(--navy)}
.page-index .hero-title span{display:inline}
.page-index .hero-lead{font-size:1.25rem;max-width:30rem;color:var(--ink-muted)}
.page-index .hero-search-wrap{position:relative;z-index:3;margin-top:clamp(-4.5rem,-5vw,-3rem)}
.page-index .hero-search{background:#fff;border:1px solid var(--rule);border-top:3px solid var(--navy);border-radius:0;box-shadow:0 24px 48px -28px rgba(20,33,61,.35);padding:clamp(1.125rem,2vw,1.75rem);max-width:none}
/* standard: photo on the left */
.plan-standard.page-index .hero-band{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
.plan-standard.page-index .hero-media{grid-column:1}
.plan-standard.page-index .hero-inner{grid-column:2;padding-left:clamp(1.5rem,3vw,3rem);padding-right:0}
.plan-standard.page-index .hero-media .img-fade{-webkit-mask-image:linear-gradient(to left,transparent 0,#000 16%);mask-image:linear-gradient(to left,transparent 0,#000 16%)}
.plan-standard.page-index .hero-media .img-credit{right:auto;left:.75rem}
/* mini: full-width photo band, copy below */
.plan-mini.page-index .hero-band{grid-template-columns:1fr}
.plan-mini.page-index .hero-media{grid-column:1;min-height:clamp(300px,34vw,480px)}
.plan-mini.page-index .hero-media .img-fade{-webkit-mask-image:linear-gradient(to bottom,#000 70%,transparent 100%);mask-image:linear-gradient(to bottom,#000 70%,transparent 100%)}
.plan-mini.page-index .hero-inner{grid-column:1;grid-row:2;padding:1.5rem 0 5rem}
.plan-mini.page-index .hero-copy{max-width:56rem;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:.5rem 3rem;align-items:end}
.plan-mini.page-index .hero-kicker{grid-column:1/-1}
@media (max-width:899.98px){
  .page-index .hero-band,.plan-standard.page-index .hero-band{grid-template-columns:1fr}
  .page-index .hero-media,.plan-standard.page-index .hero-media{grid-column:1;grid-row:1;min-height:0;aspect-ratio:4/3}
  .page-index .hero-media .img-fade,.plan-standard.page-index .hero-media .img-fade{-webkit-mask-image:linear-gradient(to bottom,#000 72%,transparent 100%);mask-image:linear-gradient(to bottom,#000 72%,transparent 100%)}
  .page-index .hero-media .img-credit{bottom:auto;top:.75rem}
  .page-index .hero-inner,.plan-standard.page-index .hero-inner{grid-column:1;grid-row:2;padding:1.25rem 0 4.5rem}
  .plan-mini.page-index .hero-copy{grid-template-columns:1fr}
}

/* Hero search panel */
.hs-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1.5rem;margin-bottom:1.125rem}
.hero-search .tabs [role=tablist],.tabs [role=tablist]{display:inline-flex;gap:0;border:1px solid var(--navy);border-radius:0;background:#fff;padding:0}
.hero-search .tab{min-height:44px;padding:0 1.5rem;border:0;border-radius:0;background:#fff;color:var(--navy);font-weight:700;cursor:pointer}
.hero-search .tab[aria-selected="true"]{background:var(--navy);color:#fff}
.hs-sell{margin:0;font-size:.9375rem;color:var(--ink-muted)}
.hs-sell a{color:var(--navy);font-weight:700;display:inline-flex;align-items:center;gap:.35rem;min-height:44px;text-decoration:underline;text-underline-offset:.2em}
.hs-sell a svg{width:16px;height:16px}
.hs-panel{display:grid;grid-template-columns:minmax(0,2.2fr) repeat(3,minmax(0,1fr)) auto;gap:1rem;align-items:end}
.hs-panel .label{font-size:.9375rem;font-weight:700;margin-bottom:.375rem;color:var(--ink-text)}
.hs-go .btn{min-height:var(--input-h);padding:0 1.75rem}
.hs-popular{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.25rem;padding-top:1rem;border-top:1px solid var(--rule)}
.hs-pop-label{font-size:.9375rem;font-weight:700;color:var(--ink-muted);margin-right:.25rem}
.hs-popular ul{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0;padding:0;max-width:none}
.hs-popular li{margin:0}
.area-chip{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;padding:0 .875rem;background:var(--paper);border:1px solid var(--rule);border-radius:0;color:var(--ink-text);font-weight:600;font-size:.9375rem;text-decoration:none}
.area-chip:hover{border-color:var(--navy);color:var(--navy);background:#fff}
.area-chip svg{width:16px;height:16px;color:var(--brass-ink)}
@media (max-width:1099.98px){.hs-panel{grid-template-columns:repeat(3,minmax(0,1fr))}.hs-loc{grid-column:1/-1}.hs-go{grid-column:1/-1}.hs-go .btn{width:100%}}
@media (max-width:599.98px){.hs-panel{grid-template-columns:1fr 1fr}.hs-panel>:nth-child(4){grid-column:1/-1}}

/* Inputs and selects (shared) */
.input,.select,.textarea,select.select{border-radius:0;border:1px solid var(--rule-strong);background-color:#fff;min-height:var(--input-h);font-size:var(--fs-input);color:var(--ink-text)}
.input:hover,.select:hover,.textarea:hover{border-color:var(--navy)}
.input:focus-visible,.select:focus-visible,.textarea:focus-visible{outline:3px solid var(--navy);outline-offset:0;box-shadow:none}
.label{font-weight:700;font-size:1rem}
.hint{font-size:.9375rem;color:var(--ink-muted)}

/* ---------- Home: stats ---------- */
.stats{padding-block:clamp(2.5rem,4vw,3.5rem) 0}
.stat-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;list-style:none;margin:0;padding:0;max-width:none;border-top:1px solid var(--navy);border-bottom:1px solid var(--rule)}
.stat-list li{display:grid;gap:.25rem;align-content:start;margin:0;padding:1.25rem 1.5rem 1.375rem;border-left:1px solid var(--rule);background:none;border-radius:0;box-shadow:none}
.stat-list li:first-child{border-left:0;padding-left:0}
.stat-list li::before{content:none}
.stat-list strong{font-family:var(--font-serif);font-weight:400;font-size:clamp(2.5rem,3.5vw,3.5rem);line-height:1;color:var(--navy);letter-spacing:-.02em}
.stat-list span{font-size:.9375rem;color:var(--ink-muted);max-width:16rem}
@media (max-width:767.98px){.stat-list{grid-template-columns:1fr 1fr}.stat-list li:nth-child(3){border-left:0;padding-left:0}.stat-list li:nth-child(n+3){border-top:1px solid var(--rule)}}

/* ---------- Property cards (rail, results, similar) ---------- */
.prop-card{border-radius:0;background:#fff;border:1px solid var(--rule);box-shadow:none;overflow:hidden}
.prop-card:hover{border-color:var(--navy);box-shadow:none;transform:none}
.prop-card .kh-img,.prop-card .media{border-radius:0}
.prop-card .price{font-family:var(--font-serif);font-weight:500;color:var(--navy);font-size:1.625rem;letter-spacing:-.01em}
.prop-card h3,.prop-card .h3{font-family:var(--font-sans);font-size:1.0625rem;font-weight:700;line-height:1.35}
.qualifier{border-radius:0;font-size:.875rem}
.badge{border-radius:0;font-size:.875rem;font-weight:700;letter-spacing:.02em}
.heart-btn{border-radius:0}
.chip{border-radius:0;min-height:44px;border:1px solid var(--rule-strong);background:#fff;color:var(--ink-text);font-weight:600}
.chip[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:#fff}
.chip:hover{border-color:var(--navy)}
.icon-btn{border:1px solid var(--navy);background:#fff;color:var(--navy);width:44px;height:44px;min-width:44px}
.icon-btn:hover{background:var(--navy);color:#fff}
.rail{gap:1.25rem;padding-bottom:1rem;scrollbar-color:var(--navy) var(--paper-2)}
.rail-foot{margin-top:1.25rem}

/* ---------- Home: valuation band ---------- */
.val-band{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border-radius:0;background:var(--navy);color:#E9ECF2;overflow:hidden;box-shadow:none}
.val-band-copy{padding:clamp(1.75rem,4vw,3.5rem)}
.val-band h2{color:#fff}
.val-band .kicker{color:var(--brass-on-navy)} .val-band .kicker::before{background:var(--brass-on-navy)}
.val-band .lead{color:#D3D8E3}
.val-band-media{position:relative;min-height:320px}
.val-band-media .kh-img{position:absolute;inset:0;aspect-ratio:auto!important;height:100%}
.val-band-media img{width:100%;height:100%;object-fit:cover}
.steps-mini{list-style:none;counter-reset:vs;margin:1.75rem 0 2rem;padding:0;display:grid;gap:0;border-top:1px solid rgba(255,255,255,.18)}
.steps-mini li{counter-increment:vs;display:grid;grid-template-columns:2.5rem 1fr;column-gap:.75rem;padding:.875rem 0;border-bottom:1px solid rgba(255,255,255,.18);margin:0}
.steps-mini li::before{content:counter(vs,decimal-leading-zero);grid-row:1/3;width:auto;height:auto;background:none;border:0;border-radius:0;color:var(--brass-on-navy);font-family:var(--font-serif);font-size:1.375rem;line-height:1.2;display:block}
.steps-mini strong{color:#fff;font-weight:700}
.steps-mini span{color:#D3D8E3;font-size:.9375rem}
@media (max-width:899.98px){.val-band{grid-template-columns:1fr}.val-band-media{min-height:0;aspect-ratio:16/9;grid-row:1}}

/* ---------- Area cards: an indexed row of five ---------- */
.area-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;counter-reset:ac;border-top:1px solid var(--navy)}
.area-card{counter-increment:ac;display:grid;align-content:start;gap:.35rem;padding:1.25rem 1.25rem 1.5rem;border-right:1px solid var(--rule);border-radius:0;background:none;box-shadow:none;color:var(--ink-text);text-decoration:none;min-width:0}
.area-card:first-child{padding-left:0}
.area-card:last-child{border-right:0;padding-right:0}
.area-card .kh-img{margin-bottom:.75rem;border-radius:0}
.area-card .kicker{margin:0;font-size:.875rem}
.area-card .kicker::before{content:counter(ac,decimal-leading-zero);width:auto;height:auto;background:none;padding-right:.6em;border-right:1px solid var(--brass-line)}
.area-card strong{font-family:var(--font-serif);font-weight:400;font-size:1.5rem;line-height:1.15}
.area-go{font-weight:700;color:var(--navy);font-size:.9375rem;text-decoration:underline;text-underline-offset:.2em;text-decoration-color:var(--rule-strong)}
.area-card:hover strong{color:var(--brass-ink)}
.area-card:hover .area-go{text-decoration-color:currentColor}
@media (max-width:1099.98px){.area-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.area-card:nth-child(3){border-right:0;padding-right:0}.area-card:nth-child(4){padding-left:0}.area-card:nth-child(n+4){border-top:1px solid var(--rule)}}
@media (max-width:599.98px){.area-cards{grid-template-columns:1fr}.area-card{padding:1.25rem 0;border-right:0;border-top:1px solid var(--rule)}.area-card:first-child{border-top:0}}
.note{border-left:2px solid var(--brass-line);border-radius:0;background:none;padding:.25rem 0 .25rem 1rem;color:var(--ink-muted);font-size:.9375rem}

/* ---------- Pillars: three numbered columns ---------- */
.pillars{counter-reset:pl;gap:0;border-top:1px solid var(--navy)}
.pillars .card{counter-increment:pl;background:none;border:0;border-right:1px solid var(--rule);border-radius:0;box-shadow:none;padding:1.5rem 2rem 1.5rem 0;margin:0}
.pillars .card+.card{padding-left:2rem}
.pillars .card:last-child{border-right:0}
.pillars .card::before{content:counter(pl,decimal-leading-zero);display:block;font-family:var(--font-serif);font-size:2.5rem;line-height:1;color:var(--brass-ink);margin-bottom:1rem}
.pillars .pillar-icon{display:none}
.pillars h3{font-size:1.5rem}
@media (max-width:767.98px){.pillars .card,.pillars .card+.card{padding:1.5rem 0;border-right:0;border-bottom:1px solid var(--rule)}}

/* ---------- Generic cards / posts ---------- */
.card{border-radius:0;box-shadow:none;border:1px solid var(--rule);background:#fff}
.post-card{border-radius:0;box-shadow:none;border:0;border-top:3px solid var(--navy);background:#fff;padding:var(--card-pad)}
.post-card:hover{transform:none;box-shadow:none}
.post-card h3{font-size:1.375rem}

/* ---------- CTA band ---------- */
.cta-sec{padding-block:0;background:var(--paper)}
.cta-sec .container{max-width:none;padding:0}
.cta-band{border-radius:0;background:var(--paper-2);color:var(--ink-text);box-shadow:none;border-top:1px solid var(--rule);padding:clamp(2.25rem,4.5vw,3.75rem) max(var(--gutter),calc((100vw - var(--container))/2));display:grid;grid-template-columns:minmax(0,1.4fr) auto;gap:1.5rem 3rem;align-items:center;margin:0}
.cta-band h2{color:var(--navy);font-size:clamp(1.75rem,2vw + 1rem,2.5rem);margin-bottom:.5rem}
.cta-band p{color:var(--ink-muted)}
.cta-band .kicker{color:var(--brass-ink)}
.cta-band .btn--light{background:var(--navy-2);color:#fff;border-color:var(--navy-2)}
.cta-band .btn--light:hover{background:var(--navy);color:#fff}
.cta-band .btn--outline-light{color:var(--navy);border-color:var(--navy)}
.cta-band .btn--outline-light:hover{background:var(--navy);color:#fff}
@media (max-width:899.98px){.cta-band{grid-template-columns:1fr}}
.val-band::after,.cta-band::after,.cta-band::before{content:none;display:none}
.val-band .steps-mini li::before{background:none;color:var(--brass-on-navy)}
.section-head--row>div:first-child{max-width:none}
.section-head--row>div:first-child>*{max-width:46rem}
.section-head--row{align-items:end;padding-bottom:0}
@media (max-width:639.98px){.demo-banner-more{display:none}}
.plan-mini.page-index .hero-media .img-credit{bottom:auto;top:.75rem}
.plan-mini.page-index .hero-inner{padding-bottom:6.5rem}
@media (max-width:899.98px){.page-index .hero-search-wrap{margin-top:0}.page-index .hero-inner,.plan-standard.page-index .hero-inner,.plan-mini.page-index .hero-inner{padding-bottom:2rem}}

/* ---------- Page head bands (one composition per page type) ---------- */
.ph-band{background:#fff;border-bottom:1px solid var(--rule)}
.ph-band .page-head{padding-block:clamp(1.25rem,2.5vw,2rem) clamp(2.25rem,4.5vw,3.75rem)}
.page-head h1{color:var(--navy);margin-bottom:1rem}
.page-head .lead{max-width:44rem}
.breadcrumbs{font-size:.9375rem;margin-bottom:clamp(1.25rem,3vw,2.25rem)}
.breadcrumbs ol{align-items:center}
.breadcrumbs li{line-height:44px}
.breadcrumbs a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink-text);text-decoration:underline;text-decoration-color:var(--rule-strong);text-underline-offset:.2em}
.breadcrumbs a:hover{color:var(--brass-ink)}
.breadcrumbs [aria-current]{color:var(--ink-muted)}
.ph-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:2rem clamp(2rem,5vw,5rem);align-items:end}
.ph-grid .page-head{padding-inline:0}
.ph-side{margin-bottom:clamp(2.25rem,4.5vw,3.75rem);border-top:3px solid var(--navy);padding-top:1rem}
.ph-side-head{margin:0 0 .5rem;font:700 .875rem/1.3 var(--font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--brass-ink)}
@media (max-width:899.98px){.ph-grid{grid-template-columns:1fr;align-items:start}.ph-side{margin-top:-1rem}}
/* areas: an index of the five places */
.ph-index ol{list-style:none;margin:0;padding:0;max-width:none}
.ph-index li{margin:0;border-bottom:1px solid var(--rule)}
.ph-idx-link{display:grid;grid-template-columns:2rem 48px 1fr;align-items:center;gap:.875rem;min-height:60px;padding:.375rem 0;color:var(--ink-text);text-decoration:none}
.ph-idx-n{font-family:var(--font-serif);font-size:1.125rem;color:var(--brass-ink);font-variant-numeric:tabular-nums}
.ph-idx-text{display:grid}
.ph-idx-name{font-family:var(--font-serif);font-size:1.25rem;line-height:1.2}
.ph-idx-sub{font-size:.875rem;color:var(--ink-muted)}
.ph-idx-link:hover .ph-idx-name{color:var(--brass-ink);text-decoration:underline;text-underline-offset:.18em}
/* contact: the phone number as the headline fact */
.ph-contact{display:grid;gap:.25rem}
.ph-phone{font-family:var(--font-serif);font-size:clamp(2rem,3vw,2.75rem);line-height:1.1;color:var(--navy);text-decoration:none;font-variant-numeric:tabular-nums;min-height:44px;display:inline-flex;align-items:center}
.ph-phone:hover{color:var(--brass-ink)}
.ph-mail{font-weight:700;color:var(--navy);min-height:44px;display:inline-flex;align-items:center;text-decoration:underline;text-decoration-color:var(--rule-strong);text-underline-offset:.2em}
.ph-hours{margin:.5rem 0 0;color:var(--ink-muted);font-size:.9375rem;line-height:1.6}
/* valuation: an ink band */
.ph-band--valuation{background:var(--navy);border-bottom:0;color:#E9ECF2}
.ph-band--valuation h1{color:#fff}
.ph-band--valuation .lead{color:#D3D8E3}
.ph-band--valuation .kicker{color:var(--brass-on-navy)}
.ph-band--valuation .kicker::before{background:var(--brass-on-navy)}
.ph-band--valuation .breadcrumbs a{color:#fff;text-decoration-color:rgba(255,255,255,.5)}
.ph-band--valuation .breadcrumbs a:hover{color:var(--brass-on-navy)}
.ph-band--valuation .breadcrumbs [aria-current],.ph-band--valuation .breadcrumbs li+li::before{color:#D3D8E3}
/* about: editorial split, title left and lead right */
@media (min-width:900px){
  .ph-band--about .page-head{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);column-gap:clamp(2rem,5vw,5rem);align-items:end}
  .ph-band--about .page-head>*{grid-column:1}
  .ph-band--about .page-head .lead{grid-column:2;grid-row:3;margin:0 0 .5rem;padding-left:1.5rem;border-left:1px solid var(--brass-line)}
  .ph-band--about .page-head h1{margin:0}
}
/* insights: a journal masthead */
.ph-band--insights{background:var(--paper);border-bottom:0}
.ph-band--insights .page-head{border-bottom:1px solid var(--navy);text-align:left}
.ph-band--insights h1{font-size:clamp(2.25rem,3vw + 1rem,3.75rem);max-width:22ch}
/* legal: a plain document */
.ph-band--legal{background:var(--paper);border-bottom:0}
.ph-band--legal .page-head{border-bottom:1px solid var(--rule)}
/* compact heads for results and property */
.page-head--compact{padding-block:1rem 1.25rem}
.page-head--compact .breadcrumbs{margin-bottom:.5rem}
.ph-compact--buy,.ph-compact--rent,.ph-compact--search{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:1.5rem}
.ph-compact--buy .breadcrumbs,.ph-compact--rent .breadcrumbs,.ph-compact--search .breadcrumbs{flex-basis:100%}
.ph-compact--buy h1,.ph-compact--rent h1,.ph-compact--search h1{margin:0;font-size:clamp(2rem,2vw + 1.25rem,2.75rem)}
.mode-switch{margin:0;color:var(--ink-muted)}
.filter-bar{background:#fff;border-block:1px solid var(--rule);box-shadow:none}
/* 404 */
.nf-code{font-family:var(--font-serif);font-size:clamp(5rem,10vw,9rem);line-height:.9;color:var(--navy);margin:0 0 1rem;letter-spacing:-.04em}
.page-404 .split{align-items:center}
/* property: primary gallery image is the feature, allowed the soft edge */
.gallery{border-radius:0;gap:.5rem}
.gallery .kh-img,.gal-side .kh-img{border-radius:0}
.gallery>:first-child .kh-img,.gallery>.kh-img:first-child{-webkit-mask-image:linear-gradient(to bottom,#000 82%,transparent 100%);mask-image:linear-gradient(to bottom,#000 82%,transparent 100%)}
.prop-aside .price-box,.price-box{border-radius:0;border:1px solid var(--rule);border-top:3px solid var(--navy);box-shadow:none}
.prop-title{color:var(--navy)}
.prop-sec{border-top:1px solid var(--rule)}
.prop-sec h2{font-size:clamp(1.625rem,1.4vw + 1rem,2.125rem)}
.subnav,.prop-subnav{border-radius:0}

/* ---------- QA fixes: charts, tables, small targets ---------- */
.chart-scroll{width:100%;max-width:760px;overflow-x:auto}
.chart-scroll svg{display:block;width:100%;height:auto}
@media (max-width:767.98px){.chart-scroll svg{min-width:560px}}
.chart{justify-items:stretch}
.table-wrap{max-width:100%;overflow-x:auto}
.credits-table{min-width:640px}
.breadcrumbs li:first-child a{min-width:44px}
.toc a{display:flex;align-items:center;min-height:44px}
.hp{display:none!important}
.placeholder{color:var(--brass-ink);background:#F3EBDB;border:1px dashed #B9A27B;padding:0 .3em;font-family:var(--font-sans)}
.site-footer .placeholder{color:#C9D0DD;background:none;border:0;padding:0}
@media (max-width:899.98px){.plan-mini.page-index .hero-media{min-height:0}}
@media (max-width:639.98px){.step-dots li:not(.is-current){font-size:1rem}.step-dots li:not(.is-current) .sd-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}

/* ---------- Forms kit (native elements, styled) ---------- */
.field{display:grid;gap:.375rem;margin-bottom:1.25rem}
.field>label,.fk-legend,legend{font-weight:700;font-size:1rem;color:var(--ink-text)}
.opt{font-weight:400;color:var(--ink-muted)}
.input,.select,.textarea{width:100%;padding:0 1rem;font:400 var(--fs-input)/1.4 var(--font-sans)}
.textarea{padding:.75rem 1rem;min-height:9rem;resize:vertical}
.input::placeholder,.textarea::placeholder{color:#626a7d}
.input[aria-invalid="true"],.select[aria-invalid="true"],.textarea[aria-invalid="true"]{border-color:#A3261B;border-width:2px}
.error-msg{color:#A3261B;font-weight:600;font-size:.9375rem;margin:.25rem 0 0}
.error-summary{border:2px solid #A3261B;border-radius:0;background:#FBF1EF;padding:1rem 1.25rem}
.choice{display:flex;align-items:flex-start;gap:.75rem;min-height:44px;padding:.625rem 0;cursor:pointer;line-height:1.45}
.choice input[type=checkbox],.choice input[type=radio]{flex:none;width:22px;height:22px;margin:.1rem 0 0;accent-color:var(--navy-2)}
.choice-grid{display:grid;gap:.5rem}
.choice-grid .choice{border:1px solid var(--rule-strong);background:#fff;padding:.75rem 1rem}
.choice-grid .choice:has(input:checked){border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy)}
fieldset{border:0;margin:0 0 1.25rem;padding:0;min-width:0}
.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:0 1.25rem}
input[type=range]{accent-color:var(--navy-2);min-height:44px;width:100%}
input[type=file].input{padding:.6rem 1rem}
.demo-tag{display:inline-block;margin-left:.5rem;padding:.1rem .45rem;border:1px solid var(--brass-line);color:var(--brass-ink);font:700 .875rem/1.3 var(--font-sans);letter-spacing:.06em;text-transform:uppercase;vertical-align:middle}
/* hours table in page content */
main .hours{width:100%;max-width:28rem;border-collapse:collapse}
main .hours th,main .hours td{text-align:left;padding:.6rem 0;border-bottom:1px solid var(--rule);font-weight:400;vertical-align:top}
main .hours th{font-weight:700;padding-right:1rem}
/* ---------- Image credits table ---------- */
.credits-table{width:100%;border-collapse:collapse;font-size:.9375rem}
.credits-table th,.credits-table td{text-align:left;vertical-align:top;padding:.6rem .75rem .6rem 0;border-bottom:1px solid var(--rule)}
.credits-table thead th{font-weight:700;border-bottom:2px solid var(--navy)}
.credits-table a{display:inline-flex;align-items:center;min-height:44px}

/* ---------- Root launcher and forms demo ---------- */
.root-hdr{background:#fff;border-bottom:1px solid var(--rule)}
.root-hdr-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:76px}
.root-foot{background:var(--navy);color:#DDE2EC;padding:1.5rem 0;font-size:.9375rem}
.root-foot p{margin:0}
.root-foot strong{color:#fff}
.root-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:0;margin-top:2.5rem;border-top:1px solid var(--navy)}
.root-plan{padding:1.5rem 1.5rem 1.5rem 0;border-right:1px solid var(--rule)}
.root-plan+.root-plan{padding-left:1.5rem}
.root-plan:last-child{border-right:0}
.root-plan h2{display:grid;gap:.25rem;font-size:2rem;margin:0 0 1rem}
.root-plan-n{font:700 .875rem/1.3 var(--font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--brass-ink)}
.root-list{list-style:none;margin:1rem 0 0;padding:0}
.root-list li{margin:0;border-bottom:1px solid var(--rule)}
.root-list a{display:flex;align-items:center;min-height:44px;color:var(--ink-text)}
.root-list a:hover{color:var(--brass-ink)}
.root-foot-note{margin-top:2.5rem;color:var(--ink-muted)}
@media (max-width:767.98px){.root-plan,.root-plan+.root-plan{padding:1.5rem 0;border-right:0;border-bottom:1px solid var(--rule)}}
.fk-card{padding:var(--card-pad);margin-bottom:2rem}
.fk-card h2{margin-bottom:1.25rem}
.map-scroll{max-width:none}
@media (max-width:767.98px){.map-scroll svg{min-width:700px}}
@media (max-width:399.98px){.hdr{gap:.5rem}.hdr-actions{gap:.25rem}.menu-toggle{padding:0 .625rem}.brand-name{font-size:1.375rem}.brand-sub{letter-spacing:.24em}.brand-mark{width:28px;height:25px}}
.credits-table a{min-width:44px}
.nav-link:focus-visible{outline-offset:-3px;box-shadow:none}
.mcol--wide .mthumb,.mcol--wide .mthumb img{width:64px;height:64px}
.mcol--wide .mlink{min-height:76px}
.mcol--wide .mlink-label{font-family:var(--font-serif);font-size:1.25rem;font-weight:400}
.map-scroll svg{min-width:720px}
.choice{display:block;position:relative;padding-left:2.25rem}
.choice input[type=checkbox],.choice input[type=radio]{position:absolute;left:0;top:.7rem;margin:0}
.choice-grid .choice{padding-left:3.25rem}
.choice-grid .choice input{left:1rem;top:.85rem}

/* ---------- Without JavaScript ---------- */
html:not(.js) .skeleton{display:none!important}
html:not(.js) .rail-controls,html:not(.js) .strip,html:not(.js) .heart-btn,html:not(.js) .heart,html:not(.js) .compare-toggle,html:not(.js) .carousel .icon-btn,html:not(.js) .fb-actions,html:not(.js) .view-toggle,html:not(.js) .filter-bar,html:not(.js) .results-tools,html:not(.js) [data-chips],html:not(.js) .area-map-col,html:not(.js) .area-filters,html:not(.js) [data-area-count],html:not(.js) #area-match{display:none!important}
html:not(.js) .area-index{display:block}
html:not(.js) .area-index .area-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,22rem),1fr));gap:1rem}
html:not(.js) .ph-compact--property~.container .gallery,html:not(.js) .prop-layout,html:not(.js) .page-property .similar,html:not(.js) [data-area-guide],html:not(.js) .other-areas,html:not(.js) [data-valuation]{display:none!important}
html:not(.js) .page-property main>.container:has(> .gallery){display:none}
.nojs-box{margin:2rem 0;padding:1.25rem 1.5rem;background:#fff;border:1px solid var(--rule);border-left:4px solid var(--brass-line)}
.nojs-box p{margin:0}
.nojs-box .nojs-title{font-family:var(--font-serif);font-size:1.5rem;color:var(--navy);margin-bottom:.375rem}
.nojs-box a{color:var(--navy);font-weight:700;text-decoration:underline;text-underline-offset:.2em}

/* ---------- Tap targets: every link, label and control >= 44x44 without shifting layout ---------- */
/* Field labels (they focus their control): pad the hit area, pull the margins back so spacing is unchanged */
.field>label:not(.choice):not(.chip),label.label,.fk-card .field>label{display:block;padding-block:10px;margin-block:-10px}
.hs-panel .typeahead>.label{margin-block:-10px calc(.5rem - 10px)}
/* Card and tile titles: the link also stretches over the card, but its own box is 44px tall too */
main h2 a,main h3 a,main h4 a{display:inline-block;padding-block:12px;margin-block:-12px;background-origin:content-box;background-clip:content-box}
/* Inline links in running text: vertical padding on an inline box enlarges the target, not the line */
main p a:not(.btn),main li a:not(.btn):not([class*="chip"]),main td a,main dd a,.link,.prose a,.nojs-box a,.note a{padding-block:calc((46px - 1.25em) / 2)}
main p a:not(.btn),main td a,.link,.prose a{-webkit-box-decoration-break:clone;box-decoration-break:clone}
.nojs-h1{font-size:clamp(2rem,3vw + 1rem,3rem);margin:0 0 .5rem;color:var(--navy)}
.root-nav{display:flex;gap:.25rem 1.25rem;flex-wrap:wrap;justify-content:flex-end}
.root-nav a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;color:var(--ink-text);font-weight:600;text-decoration:none;border-bottom:2px solid transparent}
.root-nav a:hover{color:var(--brass-ink)}
.root-nav a[aria-current="page"]{border-bottom-color:var(--brass-line)}

/* ==== Global no-motion rule (2026 redesign): nothing on this site animates or transitions. Keep this block last. ==== */
*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html{scroll-behavior:auto!important}
