/* ===== styles/00-base.css ===== */
/* ==========================================================================
   Stone Group design system: one stylesheet for every page.
   Principles: contrast (serif display vs. quiet sans), repetition (one hero,
   one button set, one card), alignment (one 1240px grid, left edges agree),
   proximity (related things grouped, generous space between groups).
   ========================================================================== */

@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400 700;font-display:swap;src:url('/assets/fonts/cormorantgaramond-latin.woff2') format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400 700;font-display:swap;src:url('/assets/fonts/manrope-latin.woff2') format('woff2')}

:root{
 --paper:#fdfbf7; --stone:#f2f5f9; --sand:#e4eaf1; --line:#e3e7ed; --line-strong:#c9d1db;
 --ink:#14202e; --ink-2:#3b4654; --muted:#677283; --navy:#0c2d52; --navy-2:#13406f; --navy-deep:#071b33; --blue:#1f6fb8; --bronze:#1f6fb8; --bronze-soft:#8fc0ec;
 --white:#fff; --night:#071b33;
 --sans:'Manrope',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
 --serif:var(--sans);
 --wrap:1200px; --gutter:clamp(20px,4vw,48px); --section:clamp(64px,8vw,112px);
 --radius:8px; --shadow:0 1px 3px rgba(16,24,40,.08),0 10px 28px -12px rgba(16,24,40,.18);
 --ease:cubic-bezier(.2,.7,.2,1);
 --header-h:68px;
 color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink-2);font:400 1.0625rem/1.65 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,video{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.2em}
button,input,select,textarea{font:inherit;color:inherit}
[hidden]{display:none!important}
.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}
.skip{position:fixed;left:16px;top:-80px;z-index:100;background:var(--ink);color:#fff;padding:12px 18px;border-radius:var(--radius)}
.skip:focus{top:16px}
:focus-visible{outline:2px solid var(--bronze);outline-offset:3px}
::selection{background:var(--bronze-soft);color:var(--ink)}

/* ---------- Type ---------- */
h1,h2,h3,h4{color:var(--ink);margin:0}
h1,h2{font-family:var(--sans);font-weight:700;letter-spacing:-.022em;text-wrap:balance}
h1{font-size:clamp(2.25rem,4.2vw,3.5rem);line-height:1.08}
h2{font-size:clamp(1.625rem,2.6vw,2.25rem);line-height:1.15}
h3{font:700 1.0625rem/1.35 var(--sans);letter-spacing:-.01em}
h4{font:600 1rem/1.4 var(--sans)}
h2 strong,h3 strong{font-weight:inherit}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}
strong{color:var(--ink);font-weight:600}
mark{background:none;color:inherit}
.eyebrow,.reading-label,.scan-eyebrow,.section-overline,.kicker,.sg-eyebrow,.premium-eyebrow{display:block;font:700 .75rem/1.4 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--bronze);margin:0 0 18px}
.reading-label svg,.scan-eyebrow svg{display:none}
.text-link,.underlink,.estate-link,.sg-text-link,.quiet-link a{display:inline-flex;align-items:center;gap:.5em;font:600 .9375rem/1.3 var(--sans);color:var(--ink);text-decoration:none;padding-bottom:4px;border-bottom:1px solid var(--line-strong);transition:border-color .2s,gap .2s}
.text-link::after,.underlink::after{content:'→';font-weight:400}
.text-link:hover,.underlink:hover,.estate-link:hover,.sg-text-link:hover{border-color:var(--ink);gap:.75em}
.fineprint,.listing-disclosure,.sg-disclosure,.spotlight-attribution{font-size:.8125rem;line-height:1.5;color:var(--muted);margin-top:28px}

/* ---------- Layout ---------- */
.wrap,.estate-width,.shell-width{width:100%;max-width:calc(var(--wrap) + var(--gutter)*2);margin-inline:auto;padding-inline:var(--gutter)}
.wrap .estate-width,.wrap .shell-width,.estate-width .shell-width,.estate-width .estate-width{padding-inline:0}
.section{padding-block:var(--section)}
.section-tint{background:var(--stone)}
.section-ink{background:var(--night);color:rgba(255,255,255,.74)}
.section-ink h2,.section-ink h3,.section-ink strong{color:#fff}
.section-ink .eyebrow{color:var(--bronze-soft)}
.section-ink .text-link{color:#fff;border-color:rgba(255,255,255,.35)}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px 48px;flex-wrap:wrap;margin-bottom:clamp(36px,5vw,64px)}
.section-head h2{max-width:20ch}
.split{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:end}
.split-copy p{font-size:1.125rem;max-width:38rem}
.split-copy .text-link{margin-top:12px}

/* ---------- Buttons ---------- */
.btn,.sg-button,.solid-button,.cinematic-action,.close-contact-button,.premium-button,.print-button,.calc-reset,.search-reset,.directory-reset,.guide-check-reset,
button[type=submit],.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:0 22px;border-radius:6px;border:1px solid var(--navy);background:var(--navy);color:#fff;font:700 .875rem/1 var(--sans);letter-spacing:.02em;text-decoration:none;cursor:pointer;transition:background .2s,color .2s,border-color .2s,transform .2s var(--ease)}
.btn:hover,.sg-button:hover,.solid-button:hover,button[type=submit]:hover:not(:disabled),.button:hover{background:var(--navy-2);border-color:var(--navy-2)}
.btn:active{transform:translateY(1px)}
button[type=submit]:disabled{opacity:.45;cursor:not-allowed}
.btn-light{background:#fff;border-color:#fff;color:var(--ink)}
.btn-light:hover{background:var(--stone);border-color:var(--stone)}
.btn-ghost-light{background:transparent;border-color:rgba(255,255,255,.55);color:#fff}
.btn-ghost-light:hover{background:rgba(255,255,255,.12);border-color:#fff}
.sg-button-outline,.calc-reset,.search-reset,.directory-reset,.guide-check-reset,.print-button{background:transparent;color:var(--ink);border-color:var(--line-strong)}
.sg-button-outline:hover,.calc-reset:hover,.search-reset:hover,.directory-reset:hover,.guide-check-reset:hover,.print-button:hover{border-color:var(--ink);background:transparent}

/* ---------- Header: solid navy bar ---------- */
.site-header{position:sticky;top:0;z-index:60;background:var(--navy-deep);color:#fff;transition:box-shadow .3s}
.site-header.is-scrolled{box-shadow:0 6px 20px -10px rgba(4,14,28,.6)}
.site-header-bar{display:flex;align-items:center;gap:20px;height:68px;max-width:calc(1440px + var(--gutter)*2);margin:0 auto;padding-inline:var(--gutter)}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:inherit;flex-shrink:0}
.brand-mark{width:30px;height:30px;flex-shrink:0}
.brand>span{display:flex;flex-direction:column;font:800 1.0625rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase}
.brand small{font:600 .5625rem/1 var(--sans);letter-spacing:.12em;margin-top:5px;opacity:.68}
.site-nav{margin-left:18px}
.site-nav ul{display:flex;align-items:center;gap:2px;list-style:none;margin:0;padding:0}
.nav-item{position:relative}
.nav-trigger{display:inline-flex;align-items:center;gap:6px;height:68px;padding:0 12px;border:0;background:none;font:500 .9375rem/1 var(--sans);color:rgba(255,255,255,.88);text-decoration:none;cursor:pointer;position:relative}
.nav-trigger:hover,.nav-item.is-open .nav-trigger,.nav-item.is-active .nav-trigger{color:#fff}
.nav-trigger svg{opacity:.7;transition:transform .2s}
.nav-item.is-open .nav-trigger svg{transform:rotate(180deg)}
.nav-trigger::after{content:'';position:absolute;left:12px;right:12px;bottom:0;height:3px;border-radius:3px 3px 0 0;background:var(--bronze-soft);transform:scaleY(0);transform-origin:bottom;transition:transform .2s var(--ease)}
.nav-item.is-active .nav-trigger::after,.nav-item.is-open .nav-trigger::after{transform:scaleY(1)}
.nav-panel{position:absolute;top:calc(100% - 4px);left:0;min-width:280px;padding:8px;background:#fff;color:var(--ink);border-radius:10px;box-shadow:0 18px 44px -12px rgba(4,14,28,.35);animation:panel .18s var(--ease)}
.nav-panel::before{content:'';position:absolute;left:0;right:0;top:-12px;height:12px}
.nav-panel a{display:block;padding:10px 12px;border-radius:6px;font-size:.9375rem;line-height:1.3;text-decoration:none;color:var(--ink-2)}
.nav-panel a:hover,.nav-panel a[aria-current]{background:var(--stone);color:var(--navy)}
.nav-panel .nav-panel-lead{display:flex;justify-content:space-between;font-weight:700;color:var(--navy);border-bottom:1px solid var(--line);border-radius:6px 6px 0 0;margin-bottom:6px;padding-bottom:12px}
@keyframes panel{from{opacity:0;transform:translateY(-4px)}}
.site-nav-contact{display:none}
.site-header-tools{display:flex;align-items:center;gap:4px;margin-left:auto}
.tool-link{position:relative;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;color:#fff;text-decoration:none}
.tool-link:hover{background:rgba(255,255,255,.1)}
.tool-link svg{width:18px;height:18px}
.saved-count{position:absolute;top:2px;right:0;font-size:.625rem;font-weight:700}
.saved-count:empty{display:none}
.tool-phone{font:600 .875rem/1 var(--sans);text-decoration:none;color:#fff;padding:0 12px;white-space:nowrap}
.btn-header{min-height:40px;padding:0 18px;margin-left:6px;background:var(--blue);border-color:var(--blue);font-size:.8125rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;border-radius:6px}
.btn-header:hover{background:#2a82d1;border-color:#2a82d1}
.menu-toggle{display:none;width:44px;height:44px;border:0;background:none;cursor:pointer;position:relative;color:#fff}
.menu-toggle span:first-child,.menu-toggle::before{content:'';position:absolute;left:11px;right:11px;height:1.5px;background:currentColor;transition:transform .3s var(--ease)}
.menu-toggle span:first-child{top:26px}
.menu-toggle::before{top:18px}
.menu-toggle[aria-expanded=true]::before{transform:translateY(4px) rotate(45deg)}
.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(-4px) rotate(-45deg)}
@media (max-width:1280px){.tool-phone{display:none}}
@media (max-width:1080px){
 .menu-toggle{display:block}
 .site-nav{position:fixed;inset:var(--header-h) 0 0;margin:0;background:var(--paper);color:var(--ink);padding:16px var(--gutter) 40px;overflow-y:auto;display:none;flex-direction:column;justify-content:space-between}
 .site-nav.is-open{display:flex}
 .site-nav ul{flex-direction:column;align-items:stretch;gap:0}
 .nav-item{border-bottom:1px solid var(--line)}
 .nav-trigger{width:100%;height:auto;justify-content:space-between;padding:18px 0;font:700 1.25rem/1 var(--sans);color:var(--ink)}
 .nav-trigger:hover,.nav-item.is-open .nav-trigger,.nav-item.is-active .nav-trigger{color:var(--navy)}
 .nav-trigger::after{display:none}
 .nav-trigger svg{width:14px;height:14px}
 .nav-panel{position:static;box-shadow:none;border:0;padding:0 0 14px;background:none;min-width:0;animation:none}
 .nav-panel a{padding:9px 0;font-size:1rem}
 .nav-panel a:hover{background:none}
 .nav-panel .nav-panel-lead{border:0;margin:0;padding-bottom:9px}
 .site-nav-contact{display:flex;flex-direction:column;gap:8px;padding-top:28px}
 .site-nav-contact a{text-decoration:none;font-weight:600}
 body.menu-open{overflow:hidden}
}
@media (max-width:560px){.btn-header{display:none}.brand small{display:none}.site-header-bar{height:64px;gap:8px}}

/* ---------- Hero (one component, three heights) ---------- */
.hero{position:relative;display:flex;color:#fff;background:var(--night);overflow:hidden;isolation:isolate}
.hero-full{min-height:clamp(500px,66svh,640px)}
.hero-page{min-height:clamp(420px,58svh,560px)}
.hero-compact{min-height:clamp(340px,44svh,440px)}
.hero-media{position:absolute;inset:0;z-index:-1}
.hero-media img,.hero-media video{width:100%;height:100%;object-fit:cover;animation:settle 2.6s var(--ease) both}
.hero-media::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,18,36,.78) 0%,rgba(5,18,36,.5) 38%,rgba(5,18,36,.08) 70%,rgba(5,18,36,0) 100%),linear-gradient(0deg,rgba(5,18,36,.35) 0%,rgba(5,18,36,0) 40%)}
.hero-center .hero-media::after{background:radial-gradient(ellipse 60% 70% at 50% 50%,rgba(5,18,36,.6),rgba(5,18,36,.18) 75%),linear-gradient(0deg,rgba(5,18,36,.3),rgba(5,18,36,0) 45%)}
.hero h1,.hero-lead,.hero .eyebrow,.hero-kicker{text-shadow:0 1px 18px rgba(0,0,0,.35)}
@keyframes settle{from{transform:scale(1.06)}}
.hero-inner{position:relative;display:flex;flex-direction:column;justify-content:flex-end;gap:24px;padding-top:28px;padding-bottom:clamp(40px,6vw,72px)}
.hero-crumbs{margin-bottom:auto;font-size:.8125rem;color:rgba(255,255,255,.72);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.hero-crumbs a{color:#fff;text-decoration:none}
.hero-crumbs a:hover{text-decoration:underline}
.hero-copy{max-width:52rem;animation:rise .9s .1s var(--ease) both}
.hero .eyebrow{color:rgba(255,255,255,.82)}
.hero h1{color:#fff;max-width:20ch}
.hero-full h1{font-size:clamp(2.25rem,4.4vw,3.5rem)}
.hero-compact h1{font-size:clamp(2rem,3.6vw,3rem);max-width:24ch}
.hero-lead{font-size:clamp(1rem,1.3vw,1.125rem);line-height:1.6;color:rgba(255,255,255,.88);max-width:40rem;margin:16px 0 0}
.hero-meta{font-size:.8125rem;color:rgba(255,255,255,.7);margin-top:14px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
@keyframes rise{from{opacity:0;transform:translateY(16px)}}
.page-tabs{display:flex;gap:4px 28px;flex-wrap:wrap;max-width:calc(var(--wrap) + var(--gutter)*2);margin:0 auto;padding:22px var(--gutter);border-bottom:1px solid var(--line);font-size:.9375rem}
.page-tabs a{text-decoration:none;color:var(--ink-2);font-weight:500}
.page-tabs a:hover{color:var(--ink)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* ---------- Reveal ---------- */


/* ---------- Homepage ---------- */
.hero-center .hero-inner{align-items:center;justify-content:center;text-align:center}
.hero-center .hero-copy{display:flex;flex-direction:column;align-items:center;max-width:none;width:100%}
.hero-center h1{max-width:22ch}
.hero-kicker{font:700 1rem/1.4 var(--sans);color:#fff;margin:0 0 10px}
.hero-search{display:flex;align-items:center;gap:8px;width:min(100%,660px);margin:28px auto 0;padding:8px;background:#fff;border-radius:14px;box-shadow:0 16px 48px -12px rgba(0,0,0,.45);text-align:left}
.seg{display:flex;flex-shrink:0;background:var(--stone);border-radius:10px;padding:4px}
.seg label{margin:0;cursor:pointer;position:relative}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg span{display:block;padding:10px 16px;border-radius:7px;font:700 .875rem/1 var(--sans);color:var(--ink-2);transition:background .2s,color .2s}
.seg input:checked+span{background:var(--navy);color:#fff}
.seg input:focus-visible+span{outline:2px solid var(--blue);outline-offset:2px}
main .hero-search input[type=search]{flex:1;min-width:0;border:0;min-height:46px;padding:0 10px;font:500 1rem/1 var(--sans);color:var(--ink);background:transparent;outline:none;box-shadow:none}
.hero-search input[type=search]::placeholder{color:var(--muted)}
.hero-search button[type=submit]{flex-shrink:0;width:48px;height:48px;min-height:0;margin:0;padding:0;border-radius:50%;border:0;background:var(--navy);color:#fff;display:grid;place-items:center}
.hero-search button[type=submit]:hover{background:var(--blue)}
.hero-pill{display:inline-flex;align-items:center;gap:10px;margin-top:18px;padding:13px 22px;border-radius:8px;background:rgba(7,27,51,.78);color:#fff;font:600 .875rem/1 var(--sans);text-decoration:none;backdrop-filter:blur(6px);transition:background .2s}
.hero-pill:hover{background:var(--navy)}
.chip-row{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:8px;padding:22px var(--gutter);border-bottom:1px solid var(--line);background:var(--paper)}
.chip-row>span{font-weight:600;color:var(--muted);margin-right:6px}
.chip-row a{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border:1px solid var(--line-strong);border-radius:999px;background:#fff;color:var(--ink);font:700 .75rem/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;text-decoration:none;transition:border-color .2s,color .2s}
.chip-row a:hover{border-color:var(--navy);color:var(--navy)}
.section-head h2{margin:0}
.view-all{display:inline-flex;align-items:center;gap:8px;font:700 .8125rem/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);text-decoration:none}
.view-all::after{content:'';width:7px;height:7px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg)}
.view-all:hover{color:var(--blue)}
.listing-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.listing-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;text-decoration:none;color:inherit;box-shadow:0 1px 2px rgba(16,24,40,.05);transition:box-shadow .25s,transform .25s var(--ease)}
.listing-card:hover{box-shadow:var(--shadow);transform:translateY(-3px)}
.listing-photo{position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--sand)}
.listing-photo img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.listing-card:hover .listing-photo img{transform:scale(1.04)}
.tag{position:absolute;left:12px;top:12px;background:#fff;color:var(--ink);font:700 .6875rem/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;padding:8px 10px;border-radius:6px;box-shadow:0 1px 3px rgba(0,0,0,.15)}
.listing-info{padding:16px 18px 14px;flex:1}
.listing-price{font:800 1.375rem/1 var(--sans);color:var(--ink);margin:0 0 8px;letter-spacing:-.01em}
.listing-info h3{font-size:.9375rem;font-weight:600;margin:0 0 4px}
.listing-specs{font-size:.8125rem;color:var(--muted);margin:0;text-transform:capitalize}
.listing-agent{display:flex;align-items:center;gap:10px;padding:12px 18px;border-top:1px solid var(--line);font-size:.75rem;color:var(--muted);line-height:1.35}
.listing-agent strong{display:block;color:var(--ink);font-size:.8125rem}
.agent-avatar{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;border-radius:50%;background:var(--navy);color:#fff}
.option-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,3vw,40px)}
.option{display:flex;flex-direction:column;gap:10px}
.option h3{font-size:1.125rem;margin:0}
.option p{font-size:.9375rem;color:var(--ink-2);flex:1}
.btn-outline{background:transparent;color:var(--navy);border:1px solid var(--navy);min-height:42px;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;margin-top:8px}
.btn-outline:hover{background:var(--navy);color:#fff}
.journal-band{padding-bottom:var(--section);background:var(--paper)}
.photo-strip{display:grid;grid-template-columns:repeat(8,1fr);gap:6px;overflow:hidden}
.photo-strip img{width:100%;aspect-ratio:4/3;object-fit:cover}
.journal-band-copy{text-align:center;padding-top:clamp(48px,6vw,80px)}
.journal-band-copy h2{font-size:clamp(2rem,3.6vw,3rem);margin:0 auto 16px}
.journal-band-copy>p{max-width:42rem;margin:0 auto 28px;font-size:1.0625rem}
.journal-band-copy .btn{text-transform:uppercase;letter-spacing:.08em;font-size:.8125rem;min-width:240px}
.journal-points{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,56px);margin-top:clamp(48px,6vw,72px);text-align:left}
.journal-points h3{font-size:1.125rem;margin-bottom:8px}
.journal-points p{font-size:.9375rem;margin:0}
.city-grid{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:repeat(2,minmax(220px,24vw));gap:14px;max-height:640px}
.city-card{position:relative;overflow:hidden;border-radius:10px;color:#fff;text-decoration:none;display:block;background:var(--navy-deep)}
.city-card-lead{grid-row:span 2}
.city-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.city-card::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,20,40,.75),rgba(5,20,40,0) 55%)}
.city-card:hover img{transform:scale(1.05)}
.city-card-copy{position:absolute;left:20px;right:20px;bottom:18px;z-index:1;display:flex;justify-content:space-between;align-items:flex-end;gap:12px}
.city-card-name{font:800 1.5rem/1 var(--sans);letter-spacing:-.01em}
.city-card-lead .city-card-name{font-size:clamp(2rem,3vw,2.75rem)}
.city-card-cta{font-size:.8125rem;font-weight:700;opacity:0;transform:translateY(6px);transition:.3s var(--ease)}
.city-card:hover .city-card-cta,.city-card:focus-visible .city-card-cta{opacity:1;transform:none}
.team-feature{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:center}
.team-feature img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:10px}
.team-feature h2{font-size:clamp(1.75rem,3vw,2.5rem)}
.team-feature p:not(.eyebrow){font-size:1.0625rem}
.team-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;margin-top:24px}
.team-actions .btn{text-transform:uppercase;letter-spacing:.08em;font-size:.8125rem}
.quote-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.quote-card{margin:0;display:flex;flex-direction:column;justify-content:space-between;gap:28px;padding:28px;border-radius:10px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1)}
.quote-card blockquote{margin:0;font:500 1.0625rem/1.6 var(--sans);color:#fff}
.quote-card figcaption{display:flex;flex-direction:column;gap:2px;font-size:.875rem}
.quote-card figcaption span{color:rgba(255,255,255,.6)}
.section-ink .view-all{color:rgba(255,255,255,.8)}
.explore{padding-block:clamp(56px,7vw,96px);background:#fff;border-top:1px solid var(--line)}
.explore h2{font-size:1.5rem;margin-bottom:32px}
.explore-group{padding-block:24px;border-top:1px solid var(--line)}
.explore-group h3{font-size:1rem;margin-bottom:14px}
.explore-links{display:grid;grid-template-columns:repeat(4,1fr);gap:6px 24px}
.explore-links a,.explore-more{font-size:.875rem;line-height:1.6;color:var(--blue);text-decoration:none}
.explore-links a:hover,.explore-more:hover{text-decoration:underline}
.explore-more{display:inline-block;margin-top:12px;font-weight:700}
@media (max-width:1080px){
 .listing-grid,.option-grid{grid-template-columns:repeat(2,1fr)}
 .quote-grid{grid-template-columns:1fr}
 .photo-strip{grid-template-columns:repeat(4,1fr)}
 .photo-strip img:nth-child(n+9){display:none}
 .team-feature{grid-template-columns:1fr}
 .explore-links{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:720px){
 .hero-search{flex-wrap:wrap;border-radius:12px}
 .seg{width:100%}
 .seg label{flex:1}
 .seg span{text-align:center}
 .listing-grid{grid-template-columns:1fr}
 .option-grid,.journal-points{grid-template-columns:1fr}
 .city-grid{grid-template-columns:1fr 1fr;grid-template-rows:none;grid-auto-rows:180px;max-height:none}
 .city-card-lead{grid-column:span 2;grid-row:auto}
 .city-card-cta{display:none}
 .explore-links{grid-template-columns:1fr 1fr}
 .chip-row{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto}
 .chip-row a{flex-shrink:0}
}

/* ---------- Footer ---------- */
.site-footer{background:var(--navy-deep);color:rgba(255,255,255,.66);padding-block:clamp(64px,8vw,104px) 32px;font-size:.9375rem}
.footer-top{display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:48px}
.site-footer h2{font:600 .75rem/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--bronze-soft);margin-bottom:20px}
.site-footer nav a{display:block;padding:6px 0;text-decoration:none;color:rgba(255,255,255,.78)}
.site-footer a:hover{color:#fff}
.brand-light{color:#fff;margin-bottom:20px}
.brand-light>span{font-size:1.75rem}
.footer-brand p{max-width:30ch}
.footer-contact{display:flex;flex-direction:column;gap:6px;margin-top:24px}
.footer-contact a{color:#fff;text-decoration:none;font-weight:600}
.footer-social{display:flex;gap:18px;margin-top:24px}
.footer-social a{color:rgba(255,255,255,.78);font-size:.875rem}
.footer-base{display:flex;flex-wrap:wrap;gap:12px 32px;justify-content:space-between;margin-top:72px;padding-top:28px;border-top:1px solid rgba(255,255,255,.12);font-size:.8125rem;color:rgba(255,255,255,.5)}
.footer-base span:nth-child(2){display:flex;gap:20px}
.footer-base a{color:rgba(255,255,255,.7);text-decoration:none}
@media (max-width:900px){.footer-top{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}
@media (max-width:520px){.footer-top{grid-template-columns:1fr}}

/* ==========================================================================
   Content system: every inner page is built from these pieces.
   ========================================================================== */

/* ---------- Page rhythm ---------- */
main>:is(section,div,nav,aside,article,header):not(.hero):not(.section):not(.path-strip):not(.chip-row):not(.journal-band):not(.explore):not(.page-tabs):not(.sg-next-step):not(.reading-related):not(.city-planning-band):not(.sg-coffee):not(.journal-article):not(.purchase-comparison):not(.details-section):not(.section-space),
.journal-article>:is(section,aside,header,div){width:100%;max-width:calc(var(--wrap) + var(--gutter)*2);margin-inline:auto;padding-inline:var(--gutter);margin-block:clamp(56px,7vw,104px)}
main>.hero+:not(.chip-row):not(.page-tabs){margin-top:clamp(48px,6vw,88px)}
main>.page-tabs+*{margin-top:clamp(48px,6vw,88px)}
.section-space,.details-section{padding-block:clamp(56px,7vw,104px)}
.section-space+.section-space{padding-top:0}
main ul,main ol{padding-left:1.25em}
main li{margin-bottom:.4em}
main li::marker{color:var(--bronze)}
main svg.sg-icon{width:22px;height:22px;flex-shrink:0}
main svg.sg-ui-icon{width:18px;height:18px;flex-shrink:0}
.chapter-symbol svg,.guide-topic-icon,.point-number svg,.overview-icon,.home-planning-symbol,.directory-topic-symbol,.planning-tool-symbol,.local-tool-symbol,.estimate-symbol{display:none}
main figure{margin:0}
main figure img{border-radius:var(--radius);width:100%;object-fit:cover}
figcaption{font-size:.8125rem;color:var(--muted);margin-top:10px}
main h2{margin-bottom:20px}
main h3{margin-bottom:8px}
.scan-lead,.chapter-lead{font-size:1.1875rem;line-height:1.55;color:var(--ink)}
.scan-lead strong,.chapter-lead strong{font-weight:500}
hr{border:0;border-top:1px solid var(--line);margin:48px 0}

/* ---------- Section headings ---------- */
.reading-section-title,.section-heading,.estate-heading,.team-collection-heading,.local-heading,.reel-feed-heading,.journal-hub-intro,.discovery-heading,.property-section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px 48px;flex-wrap:wrap;margin-bottom:clamp(28px,4vw,48px)}
.reading-section-title h2,.section-heading h2,.team-collection-heading h2,.local-heading h2{margin-bottom:0;max-width:22ch}
.team-collection-heading>div:last-child{max-width:30rem}
.property-section-heading{display:block}
.second-title{margin-top:clamp(56px,7vw,96px)}
.editorial-intro,.details-heading{max-width:44rem;margin-bottom:clamp(32px,4vw,56px)}
.editorial-intro p,.details-heading p{font-size:1.125rem}

/* ---------- At-a-glance strip ---------- */
.page-brief,.guide-summary{display:grid;grid-template-columns:200px 1fr;gap:24px 48px;align-items:start;border-bottom:1px solid var(--line);padding-bottom:clamp(40px,5vw,64px)}
.guide-summary{grid-template-columns:repeat(3,1fr);border:0;padding:0}
.page-brief>div{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.page-brief>div>p,.guide-summary>div{margin:0;display:flex;flex-direction:column;gap:6px;padding-top:20px;border-top:1px solid var(--ink)}
.page-brief>div>p svg{display:none}
.page-brief strong,.guide-summary h2{font:600 1.0625rem/1.35 var(--sans);color:var(--ink);margin:0}
.page-brief span,.guide-summary p{font-size:.9375rem;color:var(--muted)}
.point-number{font:600 .75rem/1 var(--sans);letter-spacing:.14em;color:var(--bronze)}

/* ---------- Line cards (text groups) ---------- */
.three-points,.local-facts,.journal-facts,.property-feature-grid,.property-scan-points,.program-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:clamp(24px,3vw,48px)}
.three-points>*,.local-facts>*,.journal-facts>*,.property-feature-grid>*,.property-scan-points>*,.program-grid>*{padding-top:22px;border-top:1px solid var(--line-strong)}
.local-number,.neighbourhood-number{display:block;font:600 .75rem/1 var(--sans);letter-spacing:.14em;color:var(--bronze);margin-bottom:14px}
.journal-facts span{display:block;font:700 2.47rem/1 var(--serif);color:var(--ink);margin-bottom:14px}
.journal-facts svg{display:none}
.journal-facts h2{font:600 1.0625rem/1.35 var(--sans);margin-bottom:6px}

/* ---------- Box cards (links) ---------- */
.reading-cards,.related-grid,.official-grid,.journal-cards,.directory-results,.neighbourhood-links,.calculator-directory>div,.community-card-grid,.buyer-path-grid,.resource-topics,.contact-guide-links,.site-directory-groups,.discovery-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:20px}
.reading-card,.related-card,.official-grid>a,.journal-card,.directory-card,.neighbourhood-links>a,.calculator-card,.resource-topics>a,.buyer-path-grid>*,.discovery-results>*{position:relative;display:flex;flex-direction:column;gap:10px;padding:28px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);text-decoration:none;color:var(--ink-2);transition:border-color .25s,box-shadow .25s,transform .25s var(--ease)}
:is(.reading-card,.related-card,.official-grid>a,.journal-card,.neighbourhood-links>a,.calculator-card,.resource-topics>a):hover{border-color:var(--ink);box-shadow:var(--shadow);transform:translateY(-2px)}
.reading-card h3,.related-card h3,.official-grid h3,.journal-card h3,.directory-card h2,.neighbourhood-links h3,.calculator-card h3{font:700 1.14rem/1.15 var(--serif);color:var(--ink);margin:0}
.directory-card h2 a{text-decoration:none}
.reading-card p,.related-card p,.official-grid p,.journal-card p,.directory-card p,.neighbourhood-links p{font-size:.9375rem;color:var(--muted);margin:0}
.reading-card .reading-label,.journal-card .reading-label{margin:0;font-size:.6875rem}
.guide-card-top{display:flex;justify-content:space-between}
.reading-action,.journal-card-action,.community-card-action{margin-top:auto;padding-top:14px;font:600 .875rem/1 var(--sans);color:var(--ink)}
.reading-action::after,.journal-card-action::after{content:' →'}
.journal-card{padding:0;overflow:hidden}
.journal-card-photo img{aspect-ratio:16/10;border-radius:0}
.journal-card-copy{padding:24px 26px 28px;display:flex;flex-direction:column;gap:10px;flex:1}
.resource-topics>a strong{font:700 1.14rem/1.15 var(--serif);color:var(--ink)}
.resource-topics>a span{font-size:.9375rem;color:var(--muted)}
.resource-shortcuts{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0 40px}
.resource-shortcuts a,.calc-nav a,.local-tool-links a,.property-section-nav a,.city-next-tools nav a,.home-type-selector a,.comparison-jumps a,.journal-reading nav a,.journal-city-links a,.discovery-popular a,.discovery-categories a,.directory-shortcuts a{display:inline-flex;align-items:center;min-height:40px;padding:0 16px;border:1px solid var(--line-strong);border-radius:999px;font-size:.875rem;font-weight:500;text-decoration:none;color:var(--ink);background:#fff;transition:border-color .2s,background .2s}
:is(.resource-shortcuts,.calc-nav,.local-tool-links,.property-section-nav,.city-next-tools nav,.home-type-selector,.comparison-jumps,.journal-reading nav,.journal-city-links,.discovery-popular,.discovery-categories,.directory-shortcuts) a:hover,.calc-nav a[aria-current]{border-color:var(--ink);background:var(--stone)}
.calc-nav,.local-tool-links,.property-section-nav,.home-type-selector nav,.comparison-jumps,.journal-reading nav,.journal-city-links,.discovery-popular,.discovery-categories{display:flex;flex-wrap:wrap;gap:10px}

/* ---------- Disclosure ---------- */
main details{border-top:1px solid var(--line)}
main details:last-of-type{border-bottom:1px solid var(--line)}
main details+details{border-top:1px solid var(--line)}
main details>summary{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 0;cursor:pointer;list-style:none;font:600 1rem/1.4 var(--sans);color:var(--ink)}
main details>summary::-webkit-details-marker{display:none}
main details>summary::after{content:'+';font:300 1.5rem/1 var(--sans);color:var(--bronze);transition:transform .25s}
main details[open]>summary::after{transform:rotate(45deg)}
main details>summary svg{display:none}
main details>:not(summary){padding-bottom:24px}
main details>div>p{max-width:44rem}
.accordion details:first-child{border-top:1px solid var(--ink)}
.details-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,6vw,96px);align-items:start}
.details-heading{position:sticky;top:calc(var(--header-h) + 32px)}

/* ---------- Guides (reading template) ---------- */
.guide-brief{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,5vw,80px);align-items:start;padding-bottom:clamp(40px,5vw,64px);border-bottom:1px solid var(--line)}
.guide-brief h2{font-size:clamp(1.5rem,2.3vw,2rem)}
.guide-check-help,.guide-check-progress{font-size:.9375rem;color:var(--muted);margin:0 0 6px}
.guide-check-reset{min-height:36px;padding:0 14px;font-size:.8125rem;margin-top:10px}
.guide-brief ol{list-style:none;padding:0;margin:0;display:grid;gap:10px;counter-reset:check}
.guide-brief li{margin:0}
.guide-brief label{display:flex;gap:16px;align-items:flex-start;padding:20px 22px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;transition:border-color .2s}
.guide-brief label:hover{border-color:var(--ink)}
.guide-brief label strong{font-weight:500}
input[type=checkbox]{appearance:none;flex-shrink:0;width:22px;height:22px;margin:1px 0 0;border:1.5px solid var(--line-strong);border-radius:3px;background:#fff;display:grid;place-items:center;cursor:pointer}
input[type=checkbox]::after{content:'';width:10px;height:6px;border:2px solid #fff;border-top:0;border-right:0;transform:rotate(-45deg) translate(1px,-1px);opacity:0}
input[type=checkbox]:checked{background:var(--navy);border-color:var(--navy)}
input[type=checkbox]:checked::after{opacity:1}
input[type=checkbox]:checked+strong{text-decoration:line-through;color:var(--muted)}
.mobile-chapters{display:none}
.reading-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(40px,7vw,120px);align-items:start}
.reading-copy{max-width:46rem}
.reading-copy>section{padding-block:clamp(40px,5vw,64px);border-top:1px solid var(--line)}
.reading-copy>section:first-child{border-top:0;padding-top:0}
.chapter-heading{display:flex;flex-direction:column;gap:14px;margin-bottom:20px}
.chapter-symbol{font:600 .75rem/1 var(--sans);letter-spacing:.14em;color:var(--bronze)}
.chapter-heading h2,.reading-copy>section>h2{font-size:clamp(1.5rem,2.3vw,1.875rem);margin:0}
.chapter-takeaways{list-style:none;padding:0;margin:20px 0 0}
.chapter-takeaways li{position:relative;padding-left:28px;margin-bottom:12px}
.chapter-takeaways li::before{content:'';position:absolute;left:0;top:.8em;width:14px;height:1px;background:var(--bronze)}
.chapter-more,.reading-copy details{margin-top:24px}
.chapter-photo img{aspect-ratio:3/2;margin-top:28px}
.chapter-photo{margin-bottom:clamp(24px,3vw,40px)}
.comparison-list{display:grid;grid-template-columns:1fr 1fr;gap:24px 32px;margin:32px 0 0}
.comparison-list>div{padding-top:16px;border-top:1px solid var(--ink)}
.comparison-list dt{font-weight:600;color:var(--ink);margin-bottom:4px}
.comparison-list dd{margin:0;font-size:.9375rem;color:var(--muted)}
.local-planning-details{margin-top:8px}
.local-planning-details a{display:block;margin-top:10px}
.reading-sources,.journal-sources,.source-list{margin-top:48px;padding:32px;background:var(--stone);border-radius:var(--radius)}
.reading-sources h2,.journal-sources h2,.source-list h3{font:600 .75rem/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--bronze);margin-bottom:12px}
.reading-sources p,.journal-sources p{font-size:.9375rem}
.reading-sources a,.journal-sources a,.source-list a{display:block;padding:12px 0;border-top:1px solid var(--line-strong);font-weight:500;text-decoration:none;color:var(--ink)}
.reading-sources a::after,.journal-sources a::after,.source-list a::after{content:' ↗';color:var(--bronze)}
.reading-sources span{display:block;font-size:.8125rem;color:var(--muted);margin-top:12px}
.reading-aside{position:sticky;top:calc(var(--header-h) + 32px);display:flex;flex-direction:column;gap:32px}
.takeaway{display:flex;flex-direction:column;flex-wrap:nowrap;gap:0;align-items:stretch}
.chapter-link{display:flex;gap:14px;padding:12px 0;border-top:1px solid var(--line);font-size:.9375rem;text-decoration:none;color:var(--ink-2)}
.chapter-link span{font-size:.75rem;font-weight:600;color:var(--bronze);padding-top:3px}
.chapter-link:hover{color:var(--ink)}
.reading-print{align-self:flex-start;margin-top:12px;padding:0;border:0;background:none;font-size:.8125rem;font-weight:600;color:var(--muted);text-decoration:underline;cursor:pointer}
.reading-help{padding:28px;background:var(--navy);color:rgba(255,255,255,.8);border-radius:var(--radius);display:flex;flex-direction:column;gap:14px}
.reading-help .reading-label{color:var(--bronze-soft);margin:0}
.reading-help .solid-button{background:#fff;color:var(--ink);border-color:#fff}
.support-service{font-size:.875rem;color:#fff}
.reading-related{background:var(--stone);padding-block:var(--section);margin-top:clamp(56px,7vw,104px)}
.reading-related>*{max-width:calc(var(--wrap) + var(--gutter)*2);margin-inline:auto;padding-inline:var(--gutter)}

/* ---------- Next-step band (every page) ---------- */
.sg-next-step{display:grid;grid-template-columns:minmax(0,1.3fr) auto;gap:32px 64px;align-items:end;padding:var(--section) max(var(--gutter),calc((100% - var(--wrap))/2));background:var(--navy);color:rgba(255,255,255,.76);margin:0}
.reading-related+.sg-next-step,.section-tint+.sg-next-step{margin-top:0}
main>:not(.reading-related):not(.section-ink)+.sg-next-step{margin-top:clamp(56px,7vw,104px)}
.sg-next-step h2{color:#fff;font-size:clamp(1.75rem,3vw,2.5rem);margin:0 0 14px;max-width:18ch}
.sg-next-step .sg-eyebrow{color:var(--bronze-soft)}
.sg-next-step p{font-size:1.125rem;margin:0}
.sg-action-row{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px}
.sg-next-step .sg-button{background:#fff;border-color:#fff;color:var(--ink)}
.sg-next-step .sg-button:hover{background:var(--stone)}
.sg-next-step .sg-text-link{color:#fff;border-color:rgba(255,255,255,.4)}
.sg-next-step svg{display:none}

/* ---------- Forms ---------- */
main label,.calc-field label{display:block;font:600 .8125rem/1.4 var(--sans);color:var(--ink);margin-bottom:8px;letter-spacing:.01em}
main input:not([type=checkbox]):not([type=radio]):not([type=range]),main select,main textarea{width:100%;min-height:50px;padding:12px 14px;border:1px solid var(--line-strong);border-radius:var(--radius);background:#fff;font-size:1rem;color:var(--ink);transition:border-color .2s,box-shadow .2s}
main textarea{min-height:120px;resize:vertical}
main select{appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%2315181c' stroke-width='1.6'%3E%3Cpath d='m2 4 4 4 4-4'/%3E%3C/svg%3E") no-repeat right 14px center;padding-right:40px}
main input:focus,main select:focus,main textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(148,113,63,.18)}
main small{display:block;font-size:.8125rem;color:var(--muted);margin-top:6px}
.form-grid,.local-form-grid,.sg-fields,.calc-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.form-grid .full,.form-wide,.sg-field-wide,.local-form-grid>label.form-wide{grid-column:1/-1}
.local-form-grid>label{margin:0}
.local-form-grid>label input,.local-form-grid>label select,.local-form-grid>label textarea{margin-top:8px;font-weight:400}
form button[type=submit]{margin-top:24px}
.form-note,.request-note,.sg-form-note,.enquiry-direct,.calc-example,.property-form-assurance,.property-enquiry-note{font-size:.8125rem;color:var(--muted);margin-top:14px}
.request-ready,.sg-lead-ready,.status-message{margin-top:24px;padding:24px;background:var(--stone);border-radius:var(--radius)}
.request-ready pre{white-space:pre-wrap;font:400 .875rem/1.6 var(--sans);background:#fff;padding:16px;border-radius:var(--radius)}
.request-ready .solid-button,.sg-lead-ready .sg-button{margin:8px 8px 0 0}

/* ---------- Coffee / enquiry section ---------- */
.sg-coffee{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);margin:0;background:var(--stone)}
.sg-coffee-story{padding:var(--section) clamp(32px,6vw,96px) var(--section) max(var(--gutter),calc((100vw - var(--wrap))/2));background:var(--night);color:rgba(255,255,255,.74);display:flex;flex-direction:column;gap:20px}
.sg-coffee-story h2{color:#fff;font-size:clamp(1.875rem,3.2vw,2.625rem)}
.sg-coffee-story .reading-label,.sg-coffee-story .sg-eyebrow{color:var(--bronze-soft)}
.conversation-steps{list-style:none;padding:0;margin:8px 0;display:grid;gap:14px;counter-reset:step}
.conversation-steps li{display:grid;grid-template-columns:32px 1fr;gap:0 12px;margin:0;font-size:.9375rem;counter-increment:step}
.conversation-steps li::before{content:'0' counter(step);grid-row:span 2;font:600 .75rem/1.8 var(--sans);letter-spacing:.12em;color:var(--bronze-soft)}
.conversation-steps strong{color:#fff}
.sg-person{font-size:.875rem;color:rgba(255,255,255,.6)}
.sg-person strong{color:#fff}
.sg-social{display:flex;flex-direction:column;gap:12px;margin-top:8px}
.sg-social-networks,.sg-social-direct{display:flex;flex-wrap:wrap;gap:8px 18px}
.sg-social a{display:inline-flex;align-items:center;gap:8px;font-size:.875rem;font-weight:600;color:inherit;text-decoration:none}
.sg-coffee-story .sg-social a{color:#fff}
.sg-social svg{display:inline-block!important;width:16px;height:16px}
.sg-coffee-form{padding:var(--section) max(var(--gutter),calc((100vw - var(--wrap))/2)) var(--section) clamp(32px,6vw,96px);display:flex;flex-direction:column;justify-content:center}
.sg-coffee-form h2,.sg-coffee-form h3{font:700 clamp(1.52rem,2.28vw,2.09rem)/1.1 var(--serif);margin-bottom:24px}
.sg-lead-form{max-width:40rem}
.contact-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(40px,7vw,112px);align-items:start}
.contact-details{display:flex;flex-direction:column;gap:10px}
.contact-person{font:700 1.52rem/1.1 var(--serif);color:var(--ink);margin:0}
.contact-details>a{font-size:1.125rem;font-weight:600;color:var(--ink);text-decoration:none}
.contact-details .sg-button{align-self:flex-start;margin-top:12px}
.contact-details .sg-button svg{display:none}
.contact-setting{margin-top:28px}
.contact-setting img{aspect-ratio:4/3}
.contact-grid>div:last-child{padding:clamp(28px,4vw,48px);background:#fff;border:1px solid var(--line);border-radius:var(--radius)}
.contact-guide-links{display:flex;flex-wrap:wrap;gap:10px 24px;align-items:center}
.contact-guide-links p{margin:0;font-weight:600;color:var(--ink)}

/* ---------- Request pages (home finder, valuation, updates) ---------- */
.local-request-page{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(40px,7vw,112px);align-items:start}
.local-request-intro ul{list-style:none;padding:0;margin:0 0 24px;display:grid;gap:0}
.local-request-intro li{display:flex;gap:14px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line);margin:0}
.local-request-intro li svg{color:var(--bronze)}
.local-request-page>div:last-child{padding:clamp(28px,4vw,48px);background:#fff;border:1px solid var(--line);border-radius:var(--radius)}

/* ---------- Calculators ---------- */
.calculator-heading{margin-bottom:0}
.calculator-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;border:1px solid var(--line);border-radius:var(--radius);background:#fff;overflow:hidden}
.calculator-form{padding:clamp(28px,4vw,48px)}
.calculator-form h2,.calculator-output h2{font:700 1.52rem/1.1 var(--serif);display:flex;gap:10px;align-items:center}
.calculator-form h2 svg{display:none}
.calc-actions{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap}
.calc-actions button{margin:0}
.calc-error{color:#9b2c2c;font-size:.875rem}
.calculator-output{padding:clamp(28px,4vw,48px);background:var(--stone)}
.calc-awaiting{color:var(--muted)}
.calc-result-label{font:600 .75rem/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--bronze)}
.calc-total{font:700 clamp(2.28rem,4.56vw,3.42rem)/1 var(--serif);color:var(--ink);margin:8px 0 16px}
.calc-breakdown{display:grid;gap:0;margin:20px 0}
.calc-breakdown>div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line-strong)}
.calc-breakdown dt{color:var(--ink-2)}
.calc-breakdown dd{margin:0;font-weight:600;color:var(--ink)}
.calc-bar{height:10px;border-radius:999px;background:var(--sand);overflow:hidden;display:flex;margin:12px 0}
.calc-bar>*{height:100%;background:var(--navy)}
.calc-bar>*+*{background:var(--bronze-soft)}
.calc-subnote,.calc-reviewed{font-size:.8125rem;color:var(--muted)}
.calculator-notes{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(40px,6vw,96px)}
.calculator-notes aside{padding:32px;background:var(--stone);border-radius:var(--radius);align-self:start}
.calculator-notes aside h2{font:600 .75rem/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--bronze)}
.calculator-notes aside a{display:block;padding:10px 0;border-top:1px solid var(--line-strong);font-weight:500;text-decoration:none;color:var(--ink)}
.table-wrap,.comparison-table-wrap,.calc-schedule{overflow-x:auto}
main table{width:100%;border-collapse:collapse;font-size:.9375rem;margin:16px 0}
main th,main td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line)}
main th{font-weight:600;color:var(--ink);background:var(--stone)}
.calculator-card{gap:12px}

/* ---------- Cities ---------- */
.city-local .local-facts>article h3{font:700 1.33rem/1.1 var(--serif)}
.local-source{margin-top:28px;font-size:.875rem}
.city-planning-band{background:var(--stone);padding-block:var(--section);margin-block:clamp(56px,7vw,104px)}
.city-planning-band>.estate-width{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:center}
.city-planning-photo img{aspect-ratio:4/3}
.official-toolkit .reading-section-title>p{max-width:22rem;font-size:.875rem;color:var(--muted)}
.official-grid>a h3::after{content:' ↗';color:var(--bronze);font-family:var(--sans);font-size:1rem}
.city-next-tools{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:clamp(32px,6vw,96px);align-items:start}
.city-next-tools nav{display:flex;flex-direction:column;gap:0}
.city-next-tools nav a{border:0;border-top:1px solid var(--line);border-radius:0;background:none;min-height:72px;padding:0;font:700 1.04rem/1.2 var(--serif);justify-content:space-between}
.city-next-tools nav a::after{content:'→';font-family:var(--sans);font-size:1rem}
.city-next-tools nav a:hover{background:none}
.city-next-tools nav svg{display:none}
.neighbourhood-links>a{padding:24px 26px}
.neighbourhood-links>a:first-child{background:var(--navy);border-color:var(--navy)}
.neighbourhood-links>a:first-child h3,.neighbourhood-links>a:first-child p,.neighbourhood-links>a:first-child *{color:#fff}
.neighbourhood-action{font:600 .8125rem/1 var(--sans);color:var(--ink);margin-top:10px;display:inline-block}
.home-type-selector nav{gap:10px}
.home-type-selector nav a{min-height:auto;padding:14px 20px;border-radius:var(--radius);flex-direction:column;align-items:flex-start;gap:2px}

/* ---------- About ---------- */
.portrait-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.person-portrait{margin:0}
.portrait-frame{overflow:hidden;border-radius:var(--radius);aspect-ratio:3/4;background:var(--sand)}
.portrait-frame img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.person-portrait:hover img{transform:scale(1.04)}
.person-portrait figcaption{font-size:.875rem;color:var(--ink-2)}
.person-portrait figcaption strong{display:block;font:700 1.04rem/1.2 var(--serif);color:var(--ink);margin-top:14px}
.reel-feed{position:relative;padding-block:var(--section);background:var(--night);color:rgba(255,255,255,.74);max-width:none!important;margin-inline:0!important;padding-inline:max(var(--gutter),calc((100% - var(--wrap))/2))!important;overflow:hidden}
.reel-backdrop{display:none}
.reel-feed h2,.reel-feed h3{color:#fff}
.reel-feed a{color:#fff}
.reel-feed-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;font-size:.875rem}
.reel-feed-toolbar div{display:flex;gap:8px}
.reel-feed-toolbar button,.reel-feed-caption button,.theatre-top button,.theatre-bottom button{min-height:38px;padding:0 14px;border:1px solid rgba(255,255,255,.3);border-radius:999px;background:none;color:#fff;font-size:.8125rem;cursor:pointer}
.reel-feed-track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px,1fr);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px}
.reel-feed-card{position:relative;scroll-snap-align:start;border-radius:var(--radius);overflow:hidden;background:#000;aspect-ratio:9/16}
.reel-video{width:100%;height:100%;object-fit:cover}
.reel-sound{position:absolute;top:12px;right:12px;width:40px;height:40px;border-radius:50%;border:0;background:rgba(255,255,255,.9);display:grid;place-items:center;cursor:pointer}
.reel-sound img{width:16px;height:16px}
.reel-feed-caption{position:absolute;left:0;right:0;bottom:0;padding:48px 16px 16px;background:linear-gradient(0deg,rgba(0,0,0,.75),transparent);display:flex;justify-content:space-between;align-items:flex-end;gap:8px}
.reel-feed-caption h3{font:700 1.04rem/1.1 var(--serif);margin:0}
.reel-feed-caption h3 a{text-decoration:none}
.reel-progress{position:absolute;left:0;right:0;bottom:0;width:100%;height:3px;appearance:none;border:0;background:transparent}
.reel-progress::-webkit-progress-bar{background:transparent}
.reel-progress::-webkit-progress-value{background:#fff}
.reel-feed-note{font-size:.8125rem;margin-top:16px}
.film-theatre{border:0;padding:0;background:#000;color:#fff;max-width:min(480px,94vw);width:100%;border-radius:var(--radius)}
.film-theatre::backdrop{background:rgba(0,0,0,.85)}
.theatre-top,.theatre-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px}
.theatre-video{width:100%;max-height:75vh}
.editorial-story,.story-copy{max-width:46rem}

/* ---------- Journal articles ---------- */
.journal-answer{max-width:calc(56rem + var(--gutter)*2)!important;padding-block:clamp(32px,4vw,48px)!important;border-block:1px solid var(--ink)}
.journal-answer>p:not(.reading-label){font:700 clamp(1.14rem,1.82vw,1.52rem)/1.35 var(--serif);color:var(--ink)}
.journal-answer strong{font-weight:500}
.journal-answer a{display:inline-block;margin-top:16px;font-size:.875rem;font-weight:600}
.journal-detail-layout{max-width:52rem}
.journal-workspace{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px)}
.journal-example,.journal-checks{padding:clamp(28px,4vw,44px);border-radius:var(--radius)}
.journal-example{background:var(--stone)}
.journal-checks{background:#fff;border:1px solid var(--line)}
.journal-example h2,.journal-checks h2,.journal-questions h2{font-size:clamp(1.375rem,2vw,1.75rem)}
.journal-example dl{margin:20px 0}
.journal-example dl>div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line-strong)}
.journal-example dd{margin:0;font-weight:600;color:var(--ink)}
.journal-checks ol{margin:16px 0 24px}
.journal-questions{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,5vw,72px)}
.journal-reading h2{font:600 .75rem/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--bronze)}
.journal-sources{max-width:calc(var(--wrap) + var(--gutter)*2)}
.journal-hub-intro{display:block}
.journal-topic-layout{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(32px,5vw,72px)}

/* ---------- Listings ---------- */
.property-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:clamp(20px,3vw,36px)}
.property-card{display:flex;flex-direction:column;text-decoration:none;color:inherit}
.property-photo{position:relative;overflow:hidden;border-radius:var(--radius);aspect-ratio:4/3;background:var(--sand)}
.property-photo img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.property-card:hover .property-photo img{transform:scale(1.04)}
.property-label{position:absolute;left:12px;top:12px;background:rgba(255,255,255,.94);font:600 .6875rem/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;padding:7px 9px;border-radius:2px;color:var(--ink)}
.property-info{padding-top:18px;display:flex;flex-direction:column;gap:4px}
.property-info>strong{font:700 1.33rem/1 var(--serif);color:var(--ink);margin-bottom:6px}
.property-info h3{margin:0}
.property-info>p{font-size:.875rem;color:var(--muted);margin:0}
.property-specs{display:flex;gap:14px;font-size:.875rem;color:var(--muted);margin-top:4px}
.property-card-note{font-size:.875rem;margin-top:10px}
.property-view{margin-top:12px;font:600 .875rem/1 var(--sans);color:var(--ink)}
.property-view::after{content:' →'}
.local-property-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;align-items:end;padding:24px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:32px}
.local-results-meta{font-size:.875rem;color:var(--muted);margin-bottom:20px}
.local-property-detail{padding-top:32px}
.local-back{display:inline-block;font-size:.875rem;font-weight:600;color:var(--ink);text-decoration:none;margin-bottom:24px}
.local-back::before{content:'← '}
.local-listing-opening{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:center;margin-bottom:40px}
.listing-detail-photo img{aspect-ratio:4/3}
.listing-detail-copy h1{font-size:clamp(1.75rem,3vw,2.5rem);margin-bottom:16px}
.local-listing-price{font:700 1.9rem/1 var(--serif);color:var(--ink);margin:0 0 20px}
.listing-detail-copy dl{display:flex;gap:32px;margin:0 0 20px}
.listing-detail-copy dt{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.listing-detail-copy dd{margin:0;font:700 1.33rem/1.1 var(--serif);color:var(--ink)}
.property-section-nav{padding-block:20px;border-block:1px solid var(--line);margin-bottom:clamp(48px,6vw,80px)}
.local-property-detail>section{margin-bottom:clamp(56px,7vw,96px)}
.property-fact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:20px;margin:32px 0}
.property-fact-grid>div{padding-top:14px;border-top:1px solid var(--ink)}
.property-fact-grid dt{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.property-fact-grid dd{margin:4px 0 0;font-weight:600;color:var(--ink)}
.property-source-note{font-size:.8125rem;color:var(--muted)}
.sg-property-perspective{padding:clamp(28px,4vw,56px);background:var(--stone);border-radius:var(--radius)}
.property-enquiry{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);padding:clamp(28px,4vw,56px);background:#fff;border:1px solid var(--line);border-radius:var(--radius)}
.property-enquiry-choices{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}
.property-intent{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border:1px solid var(--navy);border-radius:var(--radius);font-weight:600;font-size:.875rem;text-decoration:none;color:var(--navy)}
.property-advisor>a:not(.property-intent){display:block;margin-top:8px;font-weight:600}

/* ---------- Resources, search, directory ---------- */
.resource-hub .resource-topics{grid-template-columns:repeat(4,1fr)}
.resource-topics svg{display:none}
.directory-controls{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto auto;gap:12px;align-items:end;padding:20px;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}
.directory-controls label{margin-bottom:6px}
.directory-controls button{margin:0}
.directory-meta{font-size:.875rem;color:var(--muted);margin:20px 0}
.directory-card{padding:24px 26px}
.directory-more{margin-top:24px}
.discovery-form{display:flex;gap:12px;align-items:end;max-width:44rem}
.discovery-query-row{display:flex;gap:12px;flex:1;align-items:end}
.discovery-query-row>*{flex:1}
.discovery-form button{margin:0}
.discovery-start,.discovery-results{margin-top:40px}
.site-directory-groups>*{padding-top:20px;border-top:1px solid var(--ink)}
.site-directory-groups a{display:block;padding:6px 0;text-decoration:none;color:var(--ink-2)}
.site-directory-groups a:hover{color:var(--ink);text-decoration:underline}
.photo-credits{max-width:52rem}
.photo-credits li{font-size:.9375rem}

/* ---------- Communities hub & property library ---------- */
.community-card{position:relative;display:flex;flex-direction:column;text-decoration:none;color:inherit;border-radius:var(--radius);overflow:hidden;background:#fff;border:1px solid var(--line)}
.community-card img{aspect-ratio:4/3;border-radius:0;width:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.community-card:hover img{transform:scale(1.04)}
.community-card-copy{padding:22px 24px 26px;display:flex;flex-direction:column;gap:8px}
.community-card-copy h2,.community-card-copy h3{font:700 1.33rem/1.1 var(--serif)}
.community-panorama img{aspect-ratio:21/9}
.community-help-card{padding:28px;background:var(--navy);color:rgba(255,255,255,.8);border-radius:var(--radius)}
.community-help-card *{color:#fff}
.property-library{display:grid;gap:clamp(40px,5vw,72px)}
.property-city{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:clamp(28px,5vw,72px);align-items:center}
.property-city-image{position:relative}
.property-city-image img{aspect-ratio:4/3}
.property-city-overlay{position:absolute;left:20px;bottom:16px;color:#fff;font:700 1.9rem/1 var(--serif)}
.property-city-nav,.property-city-guides{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}

/* ---------- Comparison & buyer pages ---------- */
.purchase-comparison>section:not(.hero),.purchase-comparison>div,.purchase-comparison>nav{max-width:calc(var(--wrap) + var(--gutter)*2);margin:clamp(48px,6vw,88px) auto;padding-inline:var(--gutter)}
.purchase-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.purchase-option{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.purchase-option img{aspect-ratio:16/10;border-radius:0}
.purchase-option-copy{padding:24px}
.buyer-process ol{list-style:none;padding:0;counter-reset:s;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px}
.buyer-process li{counter-increment:s;padding-top:20px;border-top:1px solid var(--ink)}
.buyer-process li::before{content:'0' counter(s);display:block;font:600 .75rem/1 var(--sans);letter-spacing:.14em;color:var(--bronze);margin-bottom:12px}
.checklist-groups{display:grid;gap:24px}
.checklist-groups label{display:flex;gap:14px;align-items:flex-start;font-weight:500;padding:10px 0}

/* ---------- Responsive ---------- */
@media (max-width:1080px){
 .reading-layout{grid-template-columns:1fr}
 .reading-aside{position:static}
 .reading-aside .takeaway{display:none}
 .mobile-chapters{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px}
 .mobile-chapters a{flex-shrink:0;display:inline-flex;gap:8px;align-items:center;min-height:40px;padding:0 16px;border:1px solid var(--line-strong);border-radius:999px;font-size:.875rem;text-decoration:none;color:var(--ink);background:#fff}
 .mobile-chapters span{font-weight:600;color:var(--bronze);font-size:.75rem}
 .portrait-grid{grid-template-columns:repeat(3,1fr)}
 .resource-hub .resource-topics{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:860px){
 .guide-brief,.details-grid,.contact-grid,.local-request-page,.calculator-workspace,.calculator-notes,.city-planning-band>.estate-width,.city-next-tools,.journal-workspace,.journal-questions,.sg-coffee,.local-listing-opening,.property-enquiry,.property-city,.journal-topic-layout{grid-template-columns:1fr}
 .details-heading{position:static}
 .page-brief{grid-template-columns:1fr}
 .page-brief>div,.guide-summary{grid-template-columns:1fr}
 .sg-next-step{grid-template-columns:1fr;align-items:start}
 .sg-coffee-story,.sg-coffee-form{padding:64px var(--gutter)}
 .directory-controls{grid-template-columns:1fr 1fr}
 .directory-query{grid-column:1/-1}
}
@media (max-width:600px){
 .form-grid,.local-form-grid,.sg-fields,.calc-fields,.comparison-list{grid-template-columns:1fr}
 .portrait-grid{grid-template-columns:repeat(2,1fr)}
 .resource-hub .resource-topics{grid-template-columns:1fr}
 .reading-section-title,.section-heading{align-items:flex-start}
 .hero-actions .btn{flex:1 1 100%}
 .discovery-form{flex-direction:column;align-items:stretch}
}
@media print{.site-header,.site-footer,.sg-next-step,.reading-aside,.hero-media,.reveal{opacity:1!important;transform:none!important}.site-header,.site-footer,.sg-next-step,.hero-media{display:none}.hero{color:var(--ink);min-height:0;background:none}.hero h1{color:var(--ink)}}

/* ---------- Fixes after first review ---------- */
.sg-next-step{max-width:none!important;width:100%}
.local-heading{display:block}
.city-next-tools nav a>span{display:flex;flex-direction:column;gap:4px;padding-block:16px}
.city-next-tools nav a strong{font:700 1.04rem/1.2 var(--serif);color:var(--ink)}
.city-next-tools nav a>span{font:400 .875rem/1.4 var(--sans);color:var(--muted)}
.page-discovery-tools{display:inline-flex}
.hero-crumbs .page-discovery-tools{margin-left:auto}
.save-item{display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:0 14px;border:1px solid rgba(255,255,255,.5);border-radius:999px;background:rgba(255,255,255,.08);color:#fff;font:600 .75rem/1 var(--sans);letter-spacing:.06em;cursor:pointer;backdrop-filter:blur(6px)}
.save-item::before{content:'';width:10px;height:12px;background:currentColor;clip-path:polygon(0 0,100% 0,100% 100%,50% 75%,0 100%)}
.save-item[aria-pressed=true]{background:#fff;color:var(--ink);border-color:#fff}
main:not(:has(.hero)) .save-item,.discovery-card .save-item{color:var(--ink);border-color:var(--line-strong);background:#fff}
.hero-copy>.page-discovery-tools{margin-bottom:20px}
main details>summary{justify-content:flex-start}
main details>summary::after{margin-left:auto}
main details>summary>span:first-child{font:600 .75rem/1 var(--sans);letter-spacing:.14em;color:var(--bronze);min-width:28px}
main ol:has(>li>span:first-child){list-style:none;padding:0}
main ol>li>span:first-child{display:inline-block;min-width:32px;font:600 .75rem/1 var(--sans);letter-spacing:.12em;color:var(--bronze)}
.journal-checks li{display:flex;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--line);margin:0}
.journal-checks strong{font-weight:500}
.reel-feed-caption button{white-space:nowrap;min-height:32px;padding:0 12px;font-size:.75rem;background:rgba(0,0,0,.35)}
.reel-feed-heading{align-items:center}
.reel-instagram{font-weight:600;text-decoration:none}
.editorial-story figure img,.story-detail img{aspect-ratio:16/9;max-height:620px}
.page-brief{grid-template-columns:1fr;gap:20px}
.page-brief .scan-eyebrow{margin:0}
.contact-details>a.sg-button{color:#fff;font-size:.9375rem}
.directory-more{display:flex;justify-content:center}
.directory-more button,button.directory-more{min-height:46px;padding:0 24px;border:1px solid var(--ink);border-radius:var(--radius);background:transparent;color:var(--ink);font-weight:600;cursor:pointer;margin:32px auto 0}
.journal-hub-intro nav{display:flex;flex-wrap:wrap;gap:10px}
.journal-hub-intro nav a{display:inline-flex;align-items:center;min-height:40px;padding:0 16px;border:1px solid var(--line-strong);border-radius:999px;font-size:.875rem;font-weight:500;text-decoration:none;color:var(--ink);background:#fff}
.journal-hub-intro nav a:hover{border-color:var(--ink)}
.journal-hub-intro nav svg{display:none}
.journal-hub-start{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,40px)}
.journal-hub-start>div{display:flex;flex-direction:column;gap:6px;padding-top:20px;border-top:1px solid var(--ink)}
.journal-hub-start a{font-weight:600;color:var(--ink)}
.journal-topic{display:grid;grid-template-columns:minmax(0,.55fr) minmax(0,1.45fr);gap:clamp(24px,5vw,72px);padding-top:clamp(32px,4vw,48px);border-top:1px solid var(--line)}
.journal-topic+.journal-topic{margin-top:0}
.journal-topic .reading-section-title{display:block;margin:0}
.journal-topic h2{font-size:clamp(1.5rem,2.3vw,2rem)}
.journal-topic-layout{display:block}
.journal-topic-photo{display:none}
.journal-topic .journal-cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr))}
@media (max-width:860px){.journal-topic,.journal-hub-start{grid-template-columns:1fr}}
@media (max-width:1080px){
 /* backdrop-filter would make the header the containing block for the fixed menu */
 .site-header:has(.site-nav.is-open){backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--paper)}
 .site-nav{height:calc(100dvh - var(--header-h))}
}
.site-nav-contact .btn{color:#fff;margin-bottom:12px;align-self:stretch}

/* ---------- Neighbourhood library ---------- */
.property-library{gap:0}
.property-city{padding-block:clamp(40px,5vw,64px);border-top:1px solid var(--line);align-items:stretch}
.property-city-image{position:relative;min-height:340px;border-radius:var(--radius);overflow:hidden;background:var(--night)}
.property-city-image::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(9,12,16,.78),rgba(9,12,16,.1) 65%)}
.property-city-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:0}
.property-city-overlay{position:absolute;left:28px;right:28px;bottom:24px;z-index:1;font:inherit;color:rgba(255,255,255,.8)}
.property-city-overlay span{display:block;font:600 .75rem/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.75);margin-bottom:10px}
.property-city-overlay h2{color:#fff;font-size:clamp(1.875rem,3vw,2.5rem);margin:0 0 6px}
.property-city-overlay p{font-size:.8125rem;margin:0}
.property-city-guides{display:flex;flex-direction:column;gap:16px;margin:0}
.property-city-description{color:var(--muted);margin:0}
.property-city-guides nav{display:grid;grid-template-columns:1fr 1fr;gap:0 28px}
.property-city-guides nav a{display:flex;flex-direction:column;gap:2px;padding:14px 0;border-top:1px solid var(--line);text-decoration:none}
.property-city-guides nav a strong{color:var(--ink);font-weight:600}
.property-city-guides nav a span{font-size:.875rem;color:var(--muted)}
.property-city-guides nav a:hover strong{text-decoration:underline}
.property-city-explore{align-self:flex-start;font-weight:600;color:var(--ink)}
@media (max-width:600px){.property-city-guides nav{grid-template-columns:1fr}}

/* ---------- Site search ---------- */
.discovery-form{display:grid!important;grid-template-columns:1fr auto;gap:14px 12px;max-width:52rem;align-items:center}
.discovery-form>label{grid-column:1/-1;margin:0}
.discovery-query-row{grid-column:1/-1;display:flex;align-items:center;gap:0;position:relative}
.discovery-query-row svg{position:absolute;left:16px;width:18px;height:18px;color:var(--muted)}
.discovery-query-row input{padding-left:44px!important;min-height:56px!important;border-radius:var(--radius) 0 0 var(--radius)!important;font-size:1.0625rem!important}
.discovery-query-row button{margin:0;min-height:56px;border-radius:0 var(--radius) var(--radius) 0;flex:0 0 auto}
.discovery-categories{grid-column:1;display:flex;flex-wrap:wrap;gap:8px}
.discovery-categories button{min-height:38px;padding:0 14px;border:1px solid var(--line-strong);border-radius:999px;background:#fff;color:var(--ink);font-size:.8125rem;font-weight:500;cursor:pointer}
.discovery-categories button[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:#fff}
.discovery-categories button span:not(:empty){margin-left:6px;opacity:.7}
.discovery-form .search-reset{grid-column:2;min-height:38px;padding:0 14px;font-size:.8125rem}
.discovery-card{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.discovery-card h3{font:700 1.04rem/1.2 var(--serif)}
.discovery-card h3 a{text-decoration:none}
.discovery-card .result-description{font-size:.9375rem;color:var(--muted)}

/* ---------- Next-step link pairs ---------- */
.resource-photo-pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px}
.resource-photo-pair>a{display:flex;flex-direction:column;justify-content:flex-end;min-height:220px;padding:32px;border-radius:var(--radius);background:var(--stone);text-decoration:none;color:var(--ink);transition:background .25s}
.resource-photo-pair>a:hover{background:var(--sand)}
.resource-photo-pair>a span{display:block;font:600 .75rem/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--bronze);margin-bottom:12px}
.resource-photo-pair>a h2{font-size:clamp(1.375rem,2vw,1.75rem);margin:0 0 16px}
.resource-photo-pair>a strong{font-size:.875rem}
.resource-photo-pair>a strong::after{content:' →'}
.resource-photo-pair img{border-radius:var(--radius);margin-bottom:20px;aspect-ratio:16/9}
/* Plain link rows never run together. Zero specificity so every component rule wins. */
:where(main nav){display:flex;flex-wrap:wrap;gap:10px 24px}
:where(main nav) a{font-weight:500}
.conversation-steps strong{display:block}
.chip-row>span{white-space:nowrap}

/* ---------- Page loader (brand interlude) ---------- */
.page-loader{position:fixed;inset:0;z-index:200;display:grid;place-items:center;background:var(--navy);color:#f0f4f9;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .35s ease,visibility .35s}
.is-entering .page-loader,.is-leaving .page-loader{opacity:1;visibility:visible;pointer-events:auto}
.is-leaving .page-loader{transition-duration:.18s}
.loader-inner{display:flex;flex-direction:column;align-items:center;text-align:center;padding:30px;transition:transform .5s var(--ease)}
.page-loader[aria-hidden=true] .loader-inner{transform:translateY(-10px)}
.is-entering .loader-inner{animation:loader-in .5s var(--ease) both}
.loader-mark{width:64px;height:64px;margin-bottom:26px}
.loader-wordmark{font:800 clamp(1.5rem,3vw,1.875rem)/1.2 var(--sans);letter-spacing:.18em;padding-left:.18em}
.loader-signature{font-size:.75rem;letter-spacing:.06em;color:#c7d4e2;margin-top:12px}
.loader-track{position:relative;display:block;width:110px;height:2px;margin-top:30px;border-radius:2px;background:rgba(255,255,255,.18);overflow:hidden}
.loader-track span{position:absolute;inset:0 auto 0 0;width:40%;border-radius:2px;background:#d1dbe7;animation:loader-progress 1.2s infinite var(--ease)}
@keyframes loader-in{from{opacity:0;transform:translateY(10px)}}
@keyframes loader-progress{from{transform:translateX(-110%)}to{transform:translateX(280%)}}
@media (prefers-reduced-motion:reduce){.page-loader{display:none}}
@media print{.page-loader{display:none}}

/* ---------- Slim banner for short utility pages ---------- */
.hero-slim{min-height:clamp(220px,28svh,280px)}
.hero-slim h1{font-size:clamp(1.875rem,3vw,2.5rem)}
.hero-slim .hero-inner{padding-bottom:clamp(28px,4vw,44px)}

/* ---------- Body photography ---------- */
.reading-photo,.article-photo,.photo-band{margin:0}
.reading-photo{padding-block:8px 40px}
.reading-photo img,.article-photo img,.photo-band img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:10px}
.reading-photo figcaption,.article-photo figcaption,.photo-band figcaption{font-size:.75rem;color:var(--muted);margin-top:10px}
.article-photo{max-width:calc(56rem + var(--gutter)*2);margin:clamp(40px,5vw,64px) auto;padding-inline:var(--gutter)}
main>.photo-band{width:100%;max-width:calc(var(--wrap) + var(--gutter)*2);margin:clamp(40px,5vw,72px) auto;padding-inline:var(--gutter)}
main>.photo-band img{aspect-ratio:21/9}
@media (max-width:720px){main>.photo-band img{aspect-ratio:4/3}}

/* ---------- Official top bar ---------- */
.topbar{background:#eef2f7;color:var(--navy);font-size:.8125rem;border-bottom:1px solid #dbe3ec}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:40px;max-width:calc(1440px + var(--gutter)*2);margin:0 auto;padding-inline:var(--gutter)}
.topbar-region{font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.6875rem}
.topbar-actions{display:flex;align-items:center;gap:18px}
.topbar a{color:var(--navy);text-decoration:none;font-weight:700}
.topbar a:hover{text-decoration:underline}
.topbar-coffee{display:inline-flex;align-items:center;gap:7px;padding-left:18px;border-left:1px solid #c9d4e0}
.topbar-coffee svg,.footer-coffee svg,.btn-coffee svg,.hero-pill-coffee svg{width:15px;height:15px}
@media (max-width:760px){.topbar-region,.topbar-call{display:none}.topbar-inner{justify-content:center}.topbar-coffee{border:0;padding:0}}

/* ---------- Brand-coloured social icons ---------- */
.sg-brand-link{display:inline-flex;align-items:center;gap:8px}
.sg-brand-icon{width:18px;height:18px;flex-shrink:0}
.sg-brand-icon.bi-whatsapp{color:#25d366}
.sg-brand-icon.bi-instagram{color:#e1306c}
.sg-brand-icon.bi-facebook{color:#1877f2}
.social-icons{display:flex;align-items:center;gap:8px}
.social-icons a{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.18);text-decoration:none;transition:transform .2s var(--ease)}
.social-icons a:hover{transform:translateY(-2px);text-decoration:none}
.social-icons .sg-brand-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.social-icons-small a{width:28px;height:28px}
.social-icons-small .sg-brand-icon{width:15px;height:15px}
.footer-social{margin-top:24px}
.footer-coffee{display:inline-flex;align-items:center;gap:8px;margin-top:18px;padding:10px 16px;border:1px solid rgba(255,255,255,.25);border-radius:8px;color:#fff!important;font-weight:600;font-size:.875rem;text-decoration:none}
.footer-coffee:hover{background:rgba(255,255,255,.08)}
.site-nav-contact .social-icons{margin-top:12px}
.site-nav-contact .btn-coffee{background:#fff;color:var(--navy);border-color:var(--navy)}
@media (max-width:1080px){.site-nav-contact .btn{color:#fff}.site-nav-contact .btn-coffee{color:var(--navy)}}

/* ---------- Hero pills ---------- */
.hero-pills{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px}
.hero-pills .hero-pill{margin:0}
.hero-pill-coffee{background:#fff;color:var(--navy)}
.hero-pill-coffee:hover{background:var(--stone)}

/* ---------- Coffee Time card (official) ---------- */
.sg-coffee{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);max-width:calc(var(--wrap) + var(--gutter)*2);margin:clamp(56px,7vw,96px) auto!important;padding-inline:var(--gutter);background:none}
.sg-coffee-story{padding:clamp(32px,4.5vw,56px);background:var(--navy);border-radius:14px 0 0 14px;color:rgba(255,255,255,.82);gap:18px}
.sg-coffee-symbol{display:block;color:#fff}
.sg-coffee-symbol svg{width:44px;height:44px}
.sg-coffee-story .sg-eyebrow{color:#c7d4e2;margin:0}
.sg-coffee-story h2{font-size:clamp(2rem,3.4vw,2.75rem);color:#fff;margin:0}
.sg-coffee-story>p{font-size:1.0625rem;margin:0}
.conversation-steps{list-style:none;padding:0;margin:6px 0;display:block}
.conversation-steps li{display:flex;gap:16px;align-items:flex-start;padding:18px 0;margin:0;border-top:1px solid rgba(255,255,255,.14);font-size:.9375rem;grid-template-columns:none}
.conversation-steps li::before{display:none}
.conversation-steps li svg{width:22px;height:22px;color:#fff;flex-shrink:0;margin-top:2px}
.conversation-steps strong{display:block;color:#fff;font-size:1rem;margin-bottom:2px}
.conversation-steps span{color:rgba(255,255,255,.74)}
.sg-person{display:flex;flex-direction:column;gap:2px;margin:10px 0 0;font-size:.875rem}
.sg-person strong{font-size:1.0625rem}
.sg-social{display:flex;flex-direction:column;gap:16px;margin:0}
.sg-social-networks{display:flex;flex-wrap:wrap;gap:10px}
.sg-social-networks a{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;background:#fff;border-radius:8px;color:var(--ink)!important;font-size:.875rem;font-weight:700;text-decoration:none;box-shadow:0 1px 2px rgba(0,0,0,.15);transition:transform .2s var(--ease)}
.sg-social-networks a:hover{transform:translateY(-2px)}
.sg-social-direct{display:flex;gap:20px}
.sg-social-direct a{color:var(--ink)!important;font-size:.875rem;font-weight:700;text-decoration:underline;text-underline-offset:.25em}
.sg-coffee-story .sg-social-direct a{color:#fff!important}
.sg-coffee-form{padding:clamp(32px,4.5vw,56px);background:#f3f6fa;border:1px solid var(--line);border-left:0;border-radius:0 14px 14px 0;box-shadow:var(--shadow);justify-content:flex-start}
.sg-coffee-form .sg-eyebrow{margin-bottom:10px}
.sg-coffee-form h3{font:800 clamp(1.375rem,2.2vw,1.75rem)/1.2 var(--sans);color:var(--ink);margin:0 0 24px;letter-spacing:-.015em}
.sg-lead-form{max-width:none}
.sg-lead-form label>span{font-weight:400;color:var(--muted)}
.sg-lead-form label input,.sg-lead-form label select,.sg-lead-form label textarea{margin-top:8px}
.sg-lead-form .sg-button{width:100%;margin-top:22px}
.sg-lead-form .sg-button svg{width:16px;height:16px}
.sg-coffee-heading{text-align:center;margin-bottom:0!important}
.sg-coffee-heading+.sg-coffee{margin-top:28px!important}
@media (max-width:860px){
 .sg-coffee{grid-template-columns:1fr}
 .sg-coffee-story{border-radius:14px 14px 0 0;padding:32px 24px}
 .sg-coffee-form{border-radius:0 0 14px 14px;border-left:1px solid var(--line);border-top:0;padding:32px 24px}
}
/* Coffee & social polish */
.hero strong{color:#fff;font-weight:700}
.sg-coffee-symbol svg.sg-ui-icon{width:40px;height:40px}
.sg-coffee-story>p.sg-eyebrow{font-size:.75rem;letter-spacing:.1em}
.sg-person span{font-size:.875rem;color:rgba(255,255,255,.66)}
.sg-coffee-story .sg-social{align-items:flex-start}
.site-footer .social-icons a,.site-nav-contact .social-icons a{display:grid;padding:0}
main>.hero+.sg-coffee-heading{margin-top:36px}
.contact-details .sg-social{align-items:flex-start;margin-top:8px}
.contact-details .sg-social-networks a{border:1px solid var(--line)}

/* Light top strip: icons sit in white circles with a hairline so they stay crisp. */
.topbar .social-icons a{box-shadow:none;border:1px solid #d3dce6}
.topbar-region{color:#4b5d73}
.topbar-inner{min-height:38px}

/* ---------- Team showcase: the full group photograph, never cropped ---------- */
.team-showcase-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px clamp(32px,5vw,72px);align-items:end;margin-bottom:clamp(28px,4vw,44px)}
.team-showcase-head h2{font-size:clamp(1.75rem,3vw,2.5rem);margin:0;max-width:18ch}
.team-showcase-head p:not(.eyebrow){font-size:1.0625rem;margin:0}
.team-showcase-head .team-actions{margin-top:20px}
.team-photo{margin:0;border-radius:12px;overflow:hidden;background:var(--sand);box-shadow:var(--shadow)}
.team-photo img{width:100%;height:auto;aspect-ratio:1860/846;object-fit:contain;display:block}
@media (max-width:860px){.team-showcase-head{grid-template-columns:1fr}}

/* About banner uses the group photo: anchor to the top so every face stays in frame. */
.hero-media img[src*="team-cinematic"]{object-position:center 12%}

/* ==========================================================================
   Component audit (Oct 6): every content component has a designed state.
   ========================================================================== */
/* Decision notes and worked examples inside guides */
.decision-note,.decision-example,.note,.program-example,.program-example-note{margin:28px 0 0;padding:22px 24px;border:1px solid #dbe6f3;background:#f2f7fc;border-radius:var(--radius)}
.decision-example :is(.decision-note,.note),.program-example .program-example-note{margin-top:16px;padding:0;border:0;background:none;border-radius:0}
.decision-note h3,.decision-example h3,.program-example h3{font-size:1rem;margin:0 0 6px;color:var(--navy)}
.decision-note p,.decision-example p,.note p{margin:0;font-size:.9375rem}
.decision-example dl{display:grid;grid-template-columns:1fr auto;gap:8px 20px;margin:12px 0 0}
.decision-example dt{color:var(--ink-2)}
.decision-example dd{margin:0;font-weight:700;color:var(--ink)}
/* Viewing notes on neighbourhood guides */
.visit-record-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:24px}
.visit-record-grid>div{display:flex;flex-direction:column;gap:6px;padding:22px;background:#fff;border:1px solid var(--line);border-radius:10px}
.visit-record-grid svg{width:26px!important;height:26px!important;color:var(--blue);margin-bottom:8px}
.visit-record-grid h3{font-size:1rem;margin:0}
.visit-record-grid p{font-size:.9rem;color:var(--muted);margin:0}
@media (max-width:860px){.visit-record-grid{grid-template-columns:1fr}}
/* Calculator call-out at the end of money guides */
.context-calculator{display:flex;align-items:center;justify-content:space-between;gap:20px 40px;flex-wrap:wrap;padding:28px 32px!important;background:var(--navy);color:rgba(255,255,255,.8);border-radius:12px;max-width:calc(var(--wrap) - 0px)!important}
.context-calculator .scan-eyebrow{color:var(--bronze-soft);margin:0 0 6px}
.context-calculator strong{display:block;color:#fff;font-size:1.375rem;margin-bottom:4px}
.context-calculator p{margin:0}
.context-calculator>a{display:inline-flex;align-items:center;min-height:46px;padding:0 22px;border-radius:6px;background:#fff;color:var(--navy);font-weight:700;font-size:.875rem;text-decoration:none}
.context-calculator>a::after{content:' →';margin-left:6px}
/* Journal breakdown: photo beside the details */
.journal-detail-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,4vw,56px);align-items:start;max-width:none}
.journal-detail-layout.sg-without-photo{grid-template-columns:1fr;max-width:52rem}
.journal-detail-layout figure img{aspect-ratio:4/3;border-radius:10px}
.journal-local-photo img{aspect-ratio:16/9;border-radius:10px}
@media (max-width:860px){.journal-detail-layout{grid-template-columns:1fr}}
/* Long-form guide text */
.full-guide{max-width:46rem;margin-top:40px}
.full-guide h2{font-size:clamp(1.5rem,2.4vw,2rem);margin:12px 0 16px}
.full-guide h3{font-size:1.125rem;margin:32px 0 8px}
.full-guide .eyebrow{color:var(--muted);letter-spacing:.04em;text-transform:none;font-weight:600}
/* Request pages and other photos */
.local-request-image,.calculator-intro-photo img,.purchase-option-photo img,.property-plan-photo img{width:100%;border-radius:10px;aspect-ratio:16/10;object-fit:cover;margin-bottom:24px}
.local-request-form button[type=submit]{width:100%}
.editorial-figure img{border-radius:10px}
/* Property detail pages */
.property-overview,.property-questions,.property-plan{max-width:none}
.property-question-list details{max-width:52rem}
.property-area-link{display:inline-block;margin-top:16px;font-weight:700;color:var(--blue)}
.property-enquiry-form{padding:clamp(24px,3vw,36px);background:#f3f6fa;border-radius:10px}
.property-form-invitation{color:var(--muted)}
/* Communities hub */
.community-intro{max-width:46rem;margin-bottom:32px}
.community-image-note{font-size:.8125rem;color:var(--muted);margin-top:10px}
.community-next{margin-top:clamp(40px,5vw,64px)}
/* Buy page */
.buyer-start,.buyer-process,.buyer-reading,.buyer-scope{margin-block:clamp(48px,6vw,88px)}
.buyer-actions{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0}
/* Presale vs resale */
.purchase-journey{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.journey-stop{padding:16px 0;border-top:1px solid var(--line)}
.purchase-priorities details{max-width:52rem}
.comparison-essentials,.comparison-next,.comparison-sources{margin-block:clamp(40px,5vw,72px)}
@media (max-width:860px){.purchase-journey{grid-template-columns:1fr}}
/* Saved / search / directory empty states */
.discovery-empty,.directory-empty,.local-no-results{padding:32px;background:#fff;border:1px dashed var(--line-strong);border-radius:10px;text-align:center;color:var(--muted)}
.checklist-progress{font-weight:700;color:var(--navy)}
.blank-space{display:none}

/* ---------- Listing pages: open with a large photo, no empty band ---------- */
.no-hero main>.page-discovery-tools{position:absolute;right:max(var(--gutter),calc((100% - var(--wrap))/2));top:calc(var(--header-h) + 64px);z-index:2}
.no-hero main>.page-discovery-tools .save-item{color:var(--ink);border-color:var(--line-strong);background:#fff}
.local-property-detail{margin-top:24px!important;padding-top:0}
.local-listing-opening{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);padding:clamp(16px,2vw,24px);background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}
.listing-detail-photo{margin:0}
.listing-detail-photo img{aspect-ratio:4/3;width:100%;object-fit:cover;border-radius:10px;background:var(--sand)}
.listing-detail-copy{padding:8px 8px 8px 0}
@media (max-width:860px){.local-listing-opening{grid-template-columns:1fr}.listing-detail-copy{padding:0 4px 8px}}

/* ===== styles/40-home.css ===== */
/* ==========================================================================
   Homepage additions (parity with the current site): Benny's reels,
   "Start with the numbers", "Picture everyday life here" and the Google
   review spotlight. Reel behaviour comes from /assets/cinema.js.
   ========================================================================== */

/* ---------- Reels: Watch Benny → styles/45-reels.css (shared screening room) ---------- */

/* ---------- Start with the numbers (inside "How we can help") ---------- */
.home-numbers{margin-top:clamp(56px,7vw,88px);padding-top:clamp(40px,5vw,64px);border-top:1px solid var(--line-strong)}
.home-numbers .section-head{margin-bottom:clamp(24px,3vw,36px)}
.home-numbers .eyebrow{margin-bottom:10px}
.home-numbers-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.home-number-card{display:flex;flex-direction:column;padding:26px;border-radius:12px;border:1px solid var(--line);background:#fff;color:var(--ink-2);text-decoration:none;box-shadow:0 1px 2px rgba(16,24,40,.04);transition:border-color .2s,box-shadow .2s,transform .2s var(--ease)}
.home-number-card:hover{border-color:var(--navy);box-shadow:var(--shadow);transform:translateY(-2px)}
.home-number-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:10px;background:var(--stone);color:var(--navy);margin-bottom:18px}
.home-number-icon svg{width:20px;height:20px}
.home-number-kicker{font:700 .6875rem/1.4 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--blue);margin-bottom:6px}
.home-number-card h3{font-size:1.1875rem;color:var(--navy);margin-bottom:6px}
.home-number-card p{font-size:.9375rem;margin:0 0 20px}
.home-number-card strong{margin-top:auto;font-size:.875rem;color:var(--navy)}

/* ---------- Picture everyday life here (Surrey) ---------- */
.home-surrey{padding-top:0}
.home-surrey-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(32px,6vw,80px);align-items:center}
.home-surrey-photo{margin:0}
.home-surrey-photo img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:14px;box-shadow:var(--shadow)}
.home-surrey-photo figcaption{margin-top:10px;font-size:.75rem;color:var(--muted)}
.home-surrey-copy h2{margin-bottom:16px}
.home-surrey-copy>p:not(.eyebrow){font-size:1.0625rem;margin-bottom:24px}
.home-surrey-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}
.home-surrey-links a{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border:1px solid var(--line-strong);border-radius:999px;background:#fff;color:var(--ink);font:700 .75rem/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;text-decoration:none;transition:border-color .2s,color .2s}
.home-surrey-links a:hover{border-color:var(--navy);color:var(--navy)}

/* ---------- Google review spotlight ---------- */
.home-reviews .section-head .eyebrow{margin-bottom:10px}
.home-reviews-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:20px;align-items:stretch}
.home-review-spotlight{margin:0;display:flex;flex-direction:column;gap:28px;padding:clamp(28px,4vw,48px);border-radius:14px;background:#fff;color:var(--ink-2)}
.home-review-spotlight blockquote{margin:0;font:600 clamp(1.25rem,2vw,1.625rem)/1.4 var(--sans);letter-spacing:-.015em;color:var(--ink)}
.home-review-spotlight mark{background:#dbe9f7;color:var(--navy);border-radius:4px;padding:0 .15em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.home-review-spotlight figcaption{display:flex;align-items:center;gap:12px}
.home-review-spotlight figcaption>span:last-child{display:flex;flex-direction:column;font-size:.875rem;color:var(--muted)}
.home-review-spotlight figcaption strong{color:var(--ink);font-size:1rem}
.home-review-avatar{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--navy);color:#fff;font:700 .875rem/1 var(--sans)}
.home-review-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 24px;margin-top:auto;padding-top:22px;border-top:1px solid var(--line)}
.home-review-spotlight figcaption{margin-bottom:8px}
.home-review-source{display:inline-flex;align-items:center;gap:8px;font-size:.8125rem;color:var(--muted);text-decoration:none}
.home-review-source img{width:auto;height:22px}
main .home-review-spotlight details.home-review-full{font-size:.875rem;flex-basis:100%;border:0}
main .home-review-spotlight details.home-review-full>summary{display:inline-flex;gap:10px;padding:0;font:700 .875rem/1.4 var(--sans);color:var(--navy)}
.home-review-full p{margin:10px 0 0}
.home-review-list{grid-template-columns:1fr;gap:14px}
.home-review-list .quote-card{gap:16px;padding:22px 24px}
.home-review-list .quote-card blockquote{font-size:.9375rem}
.home-reviews .fineprint{color:rgba(255,255,255,.55)}

@media (max-width:1080px){
 .home-reviews-grid{grid-template-columns:1fr}
}
@media (max-width:860px){
 .home-numbers-grid{grid-template-columns:1fr}
 .home-surrey-grid{grid-template-columns:1fr}
}
@media (max-width:560px){
 .home-number-card{padding:22px}
}
/* Phones: the long kicker wrapped to three lines above the headline. */
@media (max-width:560px){.hero-center .hero-kicker{font-size:.8125rem;max-width:30ch;margin-inline:auto}}

/* ===== styles/45-reels.css ===== */
/* ==========================================================================
   Screening room: Benny's reels on the homepage (#reels) and /about/ (#films).
   Markup: cinema.mjs (screeningRoom). Behaviour: /assets/cinema.js, which sets
   each card's coverflow transform from its distance to the centre of the track.
   ========================================================================== */
.screening{
 --sr-bg:#030a15; --sr-ink:rgba(255,255,255,.72); --sr-faint:rgba(255,255,255,.5); --sr-line:rgba(255,255,255,.14);
 --sr-accent:var(--bronze-soft);
 --sr-w:clamp(240px,min(25vw,calc((100svh - 250px)*.5625)),372px); --sr-h:calc(var(--sr-w)*16/9); --sr-gap:clamp(14px,2vw,28px);
 position:relative;isolation:isolate;overflow:hidden;padding-block:clamp(64px,8vw,112px) clamp(56px,7vw,96px);
 background:var(--sr-bg);color:var(--sr-ink)
}
/* Depth: the centred film's poster, hugely blurred, then a vignette and a fine static grain. */
.screening-ambient{position:absolute;inset:0;z-index:-2;overflow:hidden}
.screening-ambient img{position:absolute;left:50%;top:50%;width:120%;height:120%;max-width:none;object-fit:cover;transform:translate(-50%,-50%);filter:blur(80px) saturate(1.5);opacity:0;transition:opacity 1.4s var(--ease)}
.screening-ambient img.is-on{opacity:.6}
.screening::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:
 radial-gradient(ellipse 75% 65% at 50% 58%,rgba(3,10,21,0) 0%,rgba(3,10,21,.45) 60%,rgba(3,10,21,.92) 100%),
 linear-gradient(180deg,var(--sr-bg) 0%,rgba(3,10,21,.35) 22%,rgba(3,10,21,.35) 72%,var(--sr-bg) 100%)}
.screening::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.07;mix-blend-mode:overlay;
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.screening-inner{width:100%;max-width:calc(var(--wrap) + var(--gutter)*2);margin-inline:auto;padding-inline:var(--gutter)}
.screening a{color:#fff}

/* Heading */
.screening-head{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:24px clamp(32px,6vw,96px);align-items:end;margin-bottom:clamp(36px,5vw,64px)}
.screening-eyebrow{display:flex;align-items:center;gap:12px;margin:0 0 20px;font:700 .75rem/1.4 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--sr-accent)}
.screening-eyebrow span{width:28px;height:1px;background:currentColor}
.screening-head h2{margin:0;color:#fff;font:800 clamp(2.5rem,6.2vw,5.25rem)/.98 var(--sans);letter-spacing:-.045em;text-wrap:balance}
.screening-head-aside p{margin:0 0 22px;font-size:1.0625rem;line-height:1.6;color:var(--sr-ink);max-width:34rem}
.screening-follow{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 18px 0 14px;border:1px solid var(--sr-line);border-radius:999px;background:rgba(255,255,255,.04);text-decoration:none;font-size:.875rem;transition:background .25s,border-color .25s}
.screening-follow:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.4)}
.screening-follow span{color:var(--sr-faint)}
.screening-follow strong{color:#fff;font-weight:700}

/* Stage: full-bleed coverflow track */
.screening-stage{position:relative}
/* A soft pool of projector light under the featured film. */
.screening-stage::before{content:"";position:absolute;left:50%;bottom:-6%;width:min(900px,140vw);height:46%;transform:translateX(-50%);background:radial-gradient(ellipse 50% 50% at 50% 50%,rgba(143,192,236,.16),rgba(143,192,236,0) 70%);pointer-events:none;z-index:0}
.screening-track{position:relative;z-index:1;display:flex;gap:var(--sr-gap);overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;
 padding:clamp(8px,1.5vw,20px) calc(50% - var(--sr-w)/2) clamp(20px,2.5vw,32px);scrollbar-width:none;-webkit-overflow-scrolling:touch}
.screening-track::-webkit-scrollbar{display:none}
.screening-track:focus-visible{outline:none}
.screening-track:focus-visible .screening-card.is-active{outline:2px solid var(--sr-accent);outline-offset:6px}
.screening-card{--off:0;position:relative;flex:0 0 var(--sr-w);height:var(--sr-h);scroll-snap-align:center;scroll-snap-stop:always;border-radius:18px;overflow:hidden;background:#0a1626;
 box-shadow:0 40px 80px -30px rgba(0,0,0,.85),0 0 0 1px rgba(255,255,255,.07);transform-origin:50% 50%;will-change:transform;cursor:pointer;margin:0}
.screening-card.is-active{cursor:default;box-shadow:0 50px 110px -30px rgba(0,0,0,.95),0 0 0 1px rgba(255,255,255,.16)}
.screening-poster,.screening-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.screening-video{background:transparent;opacity:0;transition:opacity .6s var(--ease)}
.screening-card.is-playing .screening-video{opacity:1}
/* Off-centre films sink into the dark. */
.screening-card::after{content:"";position:absolute;inset:0;background:#030a15;opacity:calc(var(--off)*.62);pointer-events:none;z-index:3}
.screening-card::before{content:"";position:absolute;inset:auto 0 0;height:46%;z-index:1;background:linear-gradient(0deg,rgba(3,10,21,.86),rgba(3,10,21,0));pointer-events:none}
.screening-chip{position:absolute;z-index:2;top:16px;left:16px;max-width:calc(100% - 32px);padding:6px 11px;border-radius:999px;background:rgba(3,10,21,.55);color:#fff;font:700 .6875rem/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.screening-play{position:absolute;z-index:2;left:50%;top:50%;display:grid;place-items:center;width:72px;height:72px;margin:-36px 0 0 -36px;border:1px solid rgba(255,255,255,.5);border-radius:50%;background:rgba(255,255,255,.14);color:#fff;cursor:pointer;
 backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);opacity:0;transform:scale(.86);transition:opacity .4s var(--ease),transform .4s var(--ease),background .25s}
.screening-play img{width:26px;height:26px;grid-area:1/1;filter:invert(1)}
.screening-play img:first-child{margin-left:3px}
.screening-play img+img,.screening-play[aria-pressed=true] img:first-child{display:none}
.screening-play[aria-pressed=true] img+img{display:block}
.screening-card.is-active .screening-play{opacity:1;transform:none}
.screening-card.is-active.is-playing .screening-play{opacity:0}
.screening-card.is-active:hover .screening-play,.screening-play:focus-visible{opacity:1!important;transform:none}
.screening-play:hover{background:rgba(255,255,255,.28)}
.screening-card-caption{position:absolute;z-index:2;left:18px;right:18px;bottom:20px}
.screening-card-caption h3{margin:0;color:#fff;font:700 clamp(1.125rem,1.6vw,1.375rem)/1.15 var(--sans);letter-spacing:-.02em}
.screening-card-caption p{margin:4px 0 0;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--sr-faint)}
.screening-progress{position:absolute;z-index:2;left:0;right:0;bottom:0;height:3px;background:rgba(255,255,255,.12);opacity:0;transition:opacity .4s}
.screening-progress i{display:block;height:100%;background:var(--sr-accent);transform-origin:0 50%;transform:scaleX(0)}
.screening-card.is-playing .screening-progress{opacity:1}
.screening-error{position:absolute;z-index:4;left:14px;right:14px;top:50%;transform:translateY(-50%);margin:0;padding:12px;border-radius:10px;background:rgba(3,10,21,.92);color:#fff;font-size:.8125rem;text-align:center}
.screening-arrow{position:absolute;z-index:5;top:calc(50% - 26px);display:grid;place-items:center;width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.28);background:rgba(3,10,21,.5);color:#fff;cursor:pointer;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:background .25s,border-color .25s,transform .25s var(--ease)}
.screening-arrow:hover{background:#fff;color:var(--navy-deep);border-color:#fff}
.screening-arrow-prev{left:calc(50% - var(--sr-w)/2 - 26px - clamp(28px,4vw,64px))}
.screening-arrow-next{right:calc(50% - var(--sr-w)/2 - 26px - clamp(28px,4vw,64px))}

/* Now showing */
.screening-now{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px 48px;align-items:end;padding-top:clamp(18px,2.5vw,30px);border-top:1px solid var(--sr-line)}
.screening-meta{min-width:0;transition:opacity .35s var(--ease),transform .35s var(--ease)}
.screening-meta.is-changing{opacity:0;transform:translateY(6px)}
.screening-count{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0 0 10px;font:600 .8125rem/1.3 var(--sans);letter-spacing:.08em;color:var(--sr-faint);font-variant-numeric:tabular-nums}
.screening-count>span:first-child{color:#fff}
.screening-topic,.screening-duration{display:inline-flex;align-items:center;gap:10px;text-transform:uppercase}
.screening-topic{color:var(--sr-accent)}
.screening-topic::before,.screening-duration::before{content:"";width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.6}
.screening-title{margin:0 0 6px;color:#fff;font:700 clamp(1.375rem,2.4vw,2rem)/1.15 var(--sans);letter-spacing:-.025em}
.screening-summary{margin:0;max-width:44rem;font-size:.9688rem;line-height:1.6}
.screening-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.screening-sound,.screening-full,.screening-guide,.screening-pause{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 20px;border-radius:999px;font:700 .875rem/1 var(--sans);letter-spacing:.01em;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .25s,color .25s,border-color .25s}
.screening-sound{border:1px solid #fff;background:#fff;color:var(--navy-deep)}
.screening-sound:hover{background:var(--sr-accent);border-color:var(--sr-accent)}
.screening-sound[aria-pressed=true]{background:transparent;color:#fff}
.screening-full,.screening-guide,.screening-pause{border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.04);color:#fff}
.screening-full:hover,.screening-guide:hover,.screening-pause:hover{border-color:#fff;background:rgba(255,255,255,.1)}
.screening-guide svg{width:18px;height:18px;transition:transform .25s var(--ease)}
.screening-guide:hover svg{transform:translateX(3px)}

/* Filmstrip */
.screening-strip{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:clamp(24px,3vw,36px)}
.screening-thumbs{display:flex;gap:8px}
.screening-thumbs button{position:relative;width:44px;height:64px;padding:0;border:0;border-radius:8px;overflow:hidden;background:#0a1626;cursor:pointer;opacity:.42;transition:opacity .3s,transform .3s var(--ease)}
.screening-thumbs button::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.screening-thumbs button:hover{opacity:.8}
.screening-thumbs button[aria-current=true]{opacity:1;transform:translateY(-3px)}
.screening-thumbs button[aria-current=true]::after{box-shadow:inset 0 0 0 2px #fff}
.screening-thumbs img{width:100%;height:100%;object-fit:cover}
.screening-pause{min-height:44px;font-size:.8125rem;font-weight:600}
.screening-note{margin:20px 0 0;font-size:.8125rem;color:var(--sr-faint)}

/* Theatre: letterboxed full-screen viewer */
.screen-theatre{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#000;color:#fff;overflow:hidden}
.screen-theatre[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.screen-theatre::backdrop{background:#000}
.screen-theatre-ambient{position:absolute;inset:-10%;width:120%;height:120%;max-width:none;object-fit:cover;filter:blur(80px) saturate(1.3);opacity:.35;pointer-events:none}
.screen-theatre-ambient:not([src]){display:none}
.screen-theatre-top,.screen-theatre-bottom{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:max(14px,env(safe-area-inset-top)) clamp(16px,3vw,32px) 14px;background:#000}
.screen-theatre-bottom{padding:14px clamp(16px,3vw,32px) max(16px,env(safe-area-inset-bottom))}
.screen-theatre-top p{display:flex;gap:14px;margin:0;font:600 .75rem/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.6);font-variant-numeric:tabular-nums}
.screen-theatre-top p span+span{color:var(--sr-accent,var(--bronze-soft))}
.screen-theatre button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:44px;min-height:44px;padding:0 16px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(255,255,255,.06);color:#fff;font:700 .8125rem/1 var(--sans);cursor:pointer;transition:background .25s,border-color .25s}
.screen-theatre button:hover{background:#fff;color:#000;border-color:#fff}
.screen-theatre-frame{position:relative;z-index:1;min-height:0}
.screen-theatre .theatre-video{position:absolute;top:0;left:50%;display:block;width:auto;height:100%;max-height:none;max-width:100%;aspect-ratio:9/16;transform:translateX(-50%);object-fit:contain;background:#000;border-radius:6px;box-shadow:0 0 120px rgba(0,0,0,.8)}
.screen-theatre-bottom>div{flex:1;min-width:0;text-align:center}
.screen-theatre-title{margin:0;font:700 1.0625rem/1.3 var(--sans);letter-spacing:-.01em}
.screen-theatre-disclosure{margin:4px 0 0;font-size:.75rem;color:rgba(255,255,255,.55)}
.screen-theatre-disclosure:empty{display:none}
body.theatre-open{overflow:hidden}
@media (prefers-reduced-motion:no-preference){
 .screen-theatre[open]{animation:sr-fade .45s var(--ease)}
 .screen-theatre[open] .theatre-video{animation:sr-rise .6s var(--ease)}
}
@keyframes sr-fade{from{opacity:0}}
@keyframes sr-rise{from{opacity:0;transform:translateX(-50%) scale(.96)}}

@media (max-width:900px){
 .screening-head{grid-template-columns:1fr}
 .screening-now{grid-template-columns:1fr}
}
@media (max-width:600px){
 .screening{--sr-w:min(68vw,calc((100svh - 230px)*.5625));--sr-gap:12px}
 .screening-head-aside p{font-size:1rem}
 .screening-arrow{width:44px;height:44px;top:calc(50% - 22px)}
 .screening-arrow-prev{left:8px}
 .screening-arrow-next{right:8px}
 .screening-play{width:64px;height:64px;margin:-32px 0 0 -32px}
 .screening-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
 .screening-actions .screening-guide{grid-column:1/-1}
 .screening-sound,.screening-full,.screening-guide{padding:0 14px}
 .screening-strip{flex-wrap:wrap}
 .screening-thumbs{gap:6px}
 .screening-thumbs button{width:40px;height:58px}
 .screen-theatre button span{display:none}
 .screen-theatre button{padding:0}
 .screen-theatre .theatre-video{border-radius:0}
}
@media (prefers-reduced-motion:reduce){
 .screening-card,.screening-meta,.screening-ambient img,.screening-video{transition:none!important}
}

/* ===== styles/50-listings.css ===== */
/* ==========================================================================
   Listings: property detail pages (/properties/*), listing cards on the
   homepage and /property-search/. One card system, one radius, one shadow.
   60-desktop / 70-mobile load after this file, so selectors here are scoped
   (.lp-page, .listing-card) to win where those files touch the same classes.
   ========================================================================== */
:root{--lp-radius:12px;--lp-shadow:0 1px 2px rgba(16,24,40,.05),0 10px 30px -18px rgba(16,24,40,.28)}

/* ---------- Listing cards (homepage + property search) ---------- */
.listing-grid,.property-grid.listing-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;align-items:stretch}
.listing-card{height:100%}
.listing-card .listing-photo,.listing-card.property-card .property-photo{position:relative;aspect-ratio:4/3;border:0;border-radius:0;background:var(--sand);overflow:hidden;flex:none}
.listing-card .listing-photo img,.listing-card.property-card .property-photo img{position:absolute;inset:0;width:100%;height:100%;margin:0!important;padding:0;object-fit:cover;object-position:center;border-radius:0!important;aspect-ratio:auto!important}
.listing-card.property-card .property-label{position:absolute;left:12px;top:12px;background:#fff;color:var(--ink);font:700 .6875rem/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;padding:8px 10px;border-radius:6px;box-shadow:0 1px 3px rgba(0,0,0,.15);z-index:1}
.listing-card .listing-info{display:flex;flex-direction:column;gap:0;padding:16px 18px 14px;flex:1}
.listing-card .listing-price{order:0}
.listing-card .listing-info h3{font-size:.9375rem;font-weight:600;line-height:1.35;margin:0 0 4px}
.listing-card .listing-specs{margin:0}
.listing-card .property-card-note{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:.8125rem;line-height:1.5;color:var(--ink-2)}
.listing-card .listing-agent{margin-top:auto}
.listing-card .listing-agent>span:not(.lp-avatar):not(.agent-avatar){flex:1;min-width:0}
.lp-avatar{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;border-radius:50%;background:var(--navy);color:#fff;font:700 .75rem/1 var(--sans);letter-spacing:.04em}
.listing-card:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
/* Homepage source photos that arrive letterboxed in a 4:3 canvas: scale past the baked-in
   white bars (uses `scale`, so it composes with the hover transform). Cropped
   `-card.jpg` files exist for these; see the property-data.mjs `crops` table. */
.listing-photo img[src$="sg-15515718-02-1600.jpg"]{scale:1.34}
.listing-photo img[src$="sg-15511934-02-1600.jpg"]{scale:1.14}
.local-property-search .property-grid.listing-grid{margin-top:8px}
@media (min-width:621px){.local-property-search .listing-card .listing-specs{min-height:2.9em}}
@media (max-width:1100px){.listing-grid,.property-grid.listing-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.listing-grid,.property-grid.listing-grid{grid-template-columns:1fr;gap:16px}}

/* ---------- Property detail page ---------- */
.local-property-detail.lp-page{padding-bottom:clamp(48px,6vw,88px)}
.local-property-detail.lp-page>section{margin-bottom:0}
.local-property-detail.lp-page>.lp-gallery{margin-bottom:28px}
.lp-page .local-back{margin:4px 0 18px}
.lp-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px 40px;flex-wrap:wrap;margin-bottom:20px}
.lp-title{min-width:0}
.lp-head .reading-label{margin:0 0 8px}
.lp-head h1{font-size:clamp(1.75rem,3vw,2.5rem);line-height:1.1;margin:0}
.lp-subtitle{margin:8px 0 0;color:var(--muted);font-size:.9375rem}
.lp-head-price{text-align:right}
.lp-head-price .local-listing-price{font:800 clamp(1.625rem,2.6vw,2.125rem)/1 var(--sans);letter-spacing:-.015em;color:var(--ink);margin:0 0 6px}
.lp-head-price span{font-size:.8125rem;color:var(--muted)}

/* Gallery: large photo + 2×2 tiles, "View all" opens the lightbox */
.lp-gallery{position:relative;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:8px;height:clamp(340px,38vw,520px);margin:0 0 28px;border-radius:var(--lp-radius);overflow:hidden;background:#fff}
.lp-gallery-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:8px;min-height:0}
.lp-gallery-n2 .lp-gallery-tiles{grid-template-columns:1fr}
.lp-gallery-main{grid-column:1;grid-row:1}
.lp-gallery-tiles{grid-column:2;grid-row:1}
.lp-gallery-n1{grid-template-columns:1fr}
.lp-gallery-main,.lp-gallery-tile{position:relative;display:block;width:100%;height:100%;min-height:0;margin:0;padding:0;border:0;border-radius:0;background:var(--sand);overflow:hidden;cursor:zoom-in;font:inherit;color:inherit}
.lp-gallery-main img,.lp-gallery-tile img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease),filter .3s}
.lp-gallery-main:hover img,.lp-gallery-tile:hover img{transform:scale(1.03);filter:brightness(.94)}
.lp-gallery-main:focus-visible,.lp-gallery-tile:focus-visible{outline:3px solid var(--blue);outline-offset:-3px;z-index:1}
.lp-gallery .is-plan{background:#fff}
.lp-gallery .is-plan img{object-fit:contain;padding:12px}
.lp-gallery .is-plan:hover img{transform:none}
.lp-gallery-all{grid-column:-2/-1;grid-row:1;align-self:end;justify-self:end;z-index:2;display:inline-flex;align-items:center;gap:8px;margin:16px;min-height:42px;padding:0 16px;border:0;border-radius:8px;background:#fff;color:var(--ink);font:700 .875rem/1 var(--sans);box-shadow:0 2px 10px rgba(7,27,51,.25);cursor:pointer}
.lp-gallery-all:hover{background:var(--stone)}
.lp-gallery-all:focus-visible{outline:3px solid var(--blue);outline-offset:2px}

/* Two-column layout: content + sticky agent card */
.lp-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;align-items:start}
.lp-main{grid-column:1;grid-row:1;display:grid;gap:24px;min-width:0}
.lp-aside{grid-column:2;grid-row:1;position:sticky;top:calc(var(--header-h) + 20px)}
.lp-card,.lp-page .property-enquiry{background:#fff;border:1px solid var(--line);border-radius:var(--lp-radius);box-shadow:var(--lp-shadow);padding:clamp(20px,2.6vw,32px)}
.lp-page .lp-card .property-section-heading{margin:0 0 18px}
.lp-page .lp-card .reading-label,.lp-page .lp-card .sg-eyebrow{margin:0 0 8px}
.lp-page .lp-card h2{font-size:clamp(1.375rem,2vw,1.625rem);line-height:1.2}
.lp-page .lp-card .property-section-heading p:not(.reading-label){margin:8px 0 0;font-size:.9375rem;color:var(--muted)}

/* Agent card */
.lp-agent-card{padding:22px;background:#fff;border:1px solid var(--line);border-radius:var(--lp-radius);box-shadow:var(--lp-shadow)}
.lp-agent{display:flex;align-items:center;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.lp-agent .lp-avatar{width:48px;height:48px;font-size:.9375rem}
.lp-agent p{margin:0;font-size:.8125rem;line-height:1.4;color:var(--muted)}
.lp-agent strong{display:block;font-size:1rem;color:var(--ink)}
.lp-agent-price{margin:16px 0;font:800 1.625rem/1.1 var(--sans);letter-spacing:-.01em;color:var(--ink)}
.lp-agent-price span{display:block;margin-bottom:6px;font:700 .6875rem/1.4 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.lp-agent-card .listing-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin:0}
.lp-agent-card .solid-button{display:flex;width:100%;justify-content:center;align-items:center;min-height:46px;margin:0}
.lp-agent-card .listing-actions .save-status{grid-column:1/-1}
.lp-agent-links{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
.lp-agent-links a{display:flex;align-items:center;justify-content:center;min-height:44px;padding:0 10px;border:1px solid var(--line-strong);border-radius:8px;font:600 .8125rem/1.2 var(--sans);text-align:center;text-decoration:none;color:var(--navy);background:#fff}
.lp-agent-links a:hover{border-color:var(--navy);background:var(--stone)}
.lp-agent-note{margin:14px 0 0;font-size:.75rem;line-height:1.5;color:var(--muted)}

/* Key facts: one card */
.lp-facts dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0}
.lp-facts dl>div{padding:14px 16px;background:var(--stone);border-radius:10px;min-width:0}
.lp-facts dt{font:700 .6875rem/1.4 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.lp-facts dd{margin:4px 0 0;font:700 1.0625rem/1.3 var(--sans);color:var(--ink);overflow-wrap:anywhere}
.lp-facts .listing-disclosure{margin:16px 0 0;font-size:.8125rem;line-height:1.5}
.lp-facts .listing-disclosure strong{display:inline;margin:0 6px 0 0}

/* About this home */
.lp-summary{margin:0;font-size:1rem;line-height:1.7;color:var(--ink-2);max-width:68ch}
.lp-subhead{margin:28px 0 12px;font:700 .75rem/1.4 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}
.lp-page ul.property-feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:12px;margin:0;padding:0;list-style:none}
.lp-page ul.property-feature-grid>li{display:flex;gap:12px;align-items:flex-start;padding:16px;border:0;border-radius:10px;background:var(--stone)}
.lp-feature-icon{display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:8px;background:#fff;color:var(--navy)}
.lp-feature-icon svg{width:18px;height:18px}
.lp-page .property-feature-grid h4{margin:0;font:700 .9375rem/1.35 var(--sans);color:var(--ink)}
.lp-page .property-feature-grid p{margin:4px 0 0;font-size:.8125rem;line-height:1.5;color:var(--muted)}
.lp-page .property-fact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;margin:0}
.lp-page .property-fact-grid>div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:11px 0;border:0;border-bottom:1px solid var(--line)}
.lp-page .property-fact-grid dt{font-size:.875rem;letter-spacing:0;text-transform:none;color:var(--muted)}
.lp-page .property-fact-grid dd{margin:0;font-weight:600;font-size:.9375rem;color:var(--ink);text-align:right}
.lp-page .property-source-note{margin:14px 0 0;font-size:.75rem;color:var(--muted)}

/* Viewing notes */
.lp-page .sg-property-perspective.lp-card{background:#fff}
.lp-page .sg-property-perspective h2{margin-bottom:18px}
.lp-page .property-scan-points{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:12px}
.lp-page .property-scan-points>div{padding:16px;border:0;border-radius:10px;background:var(--stone)}
.lp-page .property-scan-points svg{width:20px;height:20px;color:var(--navy)}
.lp-page .property-scan-points h3{margin:10px 0 6px;font-size:.9375rem}
.lp-page .property-scan-points p{margin:0;font-size:.875rem;line-height:1.55}
.lp-page .property-full-notes{margin-top:16px}
.lp-page .sg-property-perspective>.property-source-note{margin-top:12px}

/* Questions + tools */
.lp-page .property-question-list details{max-width:none}
.lp-page .property-area-link{display:inline-flex;align-items:center;gap:8px;margin-top:16px}
.lp-page .property-area-link svg{width:16px;height:16px}
.lp-page .local-tool-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:12px}
.lp-page .local-tool-links a{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:2px 12px;min-height:64px;padding:14px 16px;border:0;border-radius:10px;background:var(--stone);text-decoration:none;line-height:1.3}
.lp-page .local-tool-links a:hover{background:var(--sand)}
.lp-page .local-tool-links a svg{grid-row:span 2;width:20px;height:20px;color:var(--navy)}

/* Enquiry */
.lp-page .property-enquiry{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:28px;margin:0}
.lp-page .property-advisor h2{font-size:clamp(1.375rem,2vw,1.625rem);line-height:1.2;margin-bottom:10px}
.lp-page .property-enquiry-form{border-radius:10px}

/* Lightbox (dialog built by listing-gallery.js) */
.lp-lightbox{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#071b33;color:#fff;overflow:hidden}
.lp-lightbox[open]{display:grid;grid-template-rows:auto minmax(0,1fr)}
.lp-lightbox::backdrop{background:rgba(7,27,51,.9)}
.lp-lightbox-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:calc(12px + env(safe-area-inset-top,0px)) 16px 12px 24px}
.lp-lightbox-count{margin:0;font:600 .875rem/1 var(--sans);color:rgba(255,255,255,.85)}
.lp-lightbox-close,.lp-lightbox-nav{display:grid;place-items:center;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;cursor:pointer;transition:background .2s}
.lp-lightbox-close{width:44px;height:44px}
.lp-lightbox-close:hover,.lp-lightbox-nav:hover{background:rgba(255,255,255,.24)}
.lp-lightbox :focus-visible{outline:2px solid #8fc0ec;outline-offset:3px}
.lp-lightbox-stage{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0;margin:0;padding:0 96px 28px}
.lp-lightbox-stage img{width:auto;height:auto;max-width:100%;max-height:calc(100dvh - 150px);object-fit:contain;border-radius:6px;background:#0c1f36}
.lp-lightbox-stage img.is-plan{background:#fff;padding:12px}
.lp-lightbox-stage figcaption{margin-top:14px;font-size:.875rem;color:rgba(255,255,255,.82);text-align:center}
.lp-lightbox-nav{position:absolute;top:50%;width:52px;height:52px;transform:translateY(-50%)}
.lp-lightbox-prev{left:24px}
.lp-lightbox-next{right:24px}
html.lp-lightbox-open{overflow:hidden}

@media (max-width:1060px){
 .lp-layout{grid-template-columns:1fr;gap:20px}
 .lp-main,.lp-aside{grid-column:1;grid-row:auto}
 .lp-aside{position:static}
 .lp-agent-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 24px;align-items:center}
 .lp-agent{grid-column:1/-1}
 .lp-agent-note{grid-column:1/-1}
 .lp-agent-price{display:none}
 .lp-agent-card .listing-actions{margin-top:16px}
 .lp-agent-links{margin-top:16px}
}
@media (max-width:860px){
 .lp-page .property-enquiry{grid-template-columns:1fr}
}
@media (max-width:760px){
 .lp-head{align-items:flex-start;flex-direction:column;gap:12px;margin-bottom:16px}
 .lp-head-price{text-align:left}
 .lp-gallery{grid-template-columns:1fr;height:auto;gap:6px;background:transparent}
 .local-property-detail.lp-page>.lp-gallery{margin-bottom:20px}
 .lp-gallery-main{aspect-ratio:4/3;border-radius:var(--lp-radius)}
 .lp-gallery-tiles{grid-column:1;grid-row:2;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
 .lp-gallery-n2 .lp-gallery-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}
 .lp-gallery-tile{aspect-ratio:1;border-radius:8px}
 .lp-gallery-all{grid-column:1;grid-row:1;margin:12px;min-height:40px;font-size:.8125rem}
 .lp-agent-card{display:block;padding:18px}
 .lp-agent-links{margin-top:8px}
 .lp-facts dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .lp-facts dl>div{padding:12px 14px}
 .lp-page .property-fact-grid{grid-template-columns:1fr}
 .lp-lightbox-bar{padding-left:16px}
 .lp-lightbox-stage{padding:0 0 84px}
 .lp-lightbox-stage img{border-radius:0;max-height:calc(100dvh - 190px)}
 .lp-lightbox-stage figcaption{padding:0 16px}
 .lp-lightbox-nav{top:auto;bottom:calc(16px + env(safe-area-inset-bottom,0px));transform:none;width:48px;height:48px}
 .lp-lightbox-prev{left:calc(50% - 60px)}
 .lp-lightbox-next{right:calc(50% - 60px)}
}
@media (prefers-reduced-motion:reduce){.lp-gallery-main img,.lp-gallery-tile img{transition:none}}

/* ===== styles/55-idx.css ===== */
/* ---------- Live MLS® search band (links to Paragon IDX in a new tab) ---------- */
.mls-band{background:var(--navy);color:rgba(255,255,255,.82);padding-block:clamp(40px,5vw,64px);margin:0!important;max-width:none!important}
main>.hero+.mls-band{margin-top:0}
.mls-band-inner{display:flex;align-items:center;justify-content:space-between;gap:24px 48px;flex-wrap:wrap}
.mls-band .eyebrow{color:var(--bronze-soft);margin-bottom:10px}
.mls-band h2{color:#fff;margin:0 0 8px;font-size:clamp(1.75rem,3vw,2.5rem)}
.mls-band p:not(.eyebrow){margin:0;font-size:1.0625rem}
.mls-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 16px}
.mls-small{color:#fff;font-size:.875rem;font-weight:600;text-decoration:underline;text-underline-offset:.25em;width:100%}
@media (max-width:720px){.mls-actions .btn{width:100%}}

/* ===== styles/60-desktop.css ===== */
/* ==========================================================================
   Desktop consistency pass (contrast, repetition, alignment, proximity).
   Loads after 00-base and 40-home, before the 70-* mobile layer.
   Rules that only make sense on wide screens sit inside the 861px+ query so
   the mobile layer keeps full control of small screens.
   ========================================================================== */

/* ---------- Save control: one intentional home on every page type ---------- */
/* Hero pages: the control sits at the right end of the breadcrumb row. */
.hero-crumbs{align-items:center;min-height:34px}
.hero-crumbs .page-discovery-tools{margin-left:auto;padding-left:16px}
/* Hero pages without a breadcrumb get a slim toolbar in the same position. */
.hero-toolbar{display:flex;justify-content:flex-end;align-items:center;min-height:34px;margin-bottom:auto}
.hero-toolbar+.hero-copy{margin-top:0}
/* Every Save button: same pill, same size, everywhere. */
.save-item{min-height:36px;padding:0 16px;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;transition:background .2s,border-color .2s,color .2s}
.hero .save-item:hover{background:rgba(255,255,255,.18);border-color:#fff}
.hero .save-item[aria-pressed=true]:hover{background:#fff}
/* Listing pages: Save sits beside "Ask about this home" as a secondary action. */
.listing-disclosure strong{display:block;margin-bottom:2px}
.listing-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:4px}
.listing-actions .page-discovery-tools{display:inline-flex}
.listing-actions .save-item,.page-toolbar .save-item{min-height:46px;padding:0 20px;border-radius:6px;background:#fff;color:var(--ink);border-color:var(--line-strong);backdrop-filter:none}
.listing-actions .save-item:hover,.page-toolbar .save-item:hover{border-color:var(--ink)}
.listing-actions .save-item[aria-pressed=true],.page-toolbar .save-item[aria-pressed=true]{background:var(--stone);border-color:var(--navy);color:var(--navy)}
.listing-actions .save-status{flex-basis:100%;margin:0;font-size:.8125rem;color:var(--muted)}
.page-toolbar{display:flex;justify-content:flex-end;margin-top:24px!important;margin-bottom:0!important}
/* Retire the old floating placement. */
.no-hero main>.page-discovery-tools{position:static}
.hero-crumbs .save-status,.hero-toolbar .save-status{flex-basis:100%;text-align:right;color:rgba(255,255,255,.8);font-size:.75rem;margin:6px 0 0}

/* ---------- Eyebrows: one size, one gap, everywhere (repetition) ---------- */
main :is(.eyebrow,.reading-label,.scan-eyebrow,.section-overline,.kicker,.sg-eyebrow,.premium-eyebrow){font:700 .75rem/1.4 var(--sans);letter-spacing:.1em;text-transform:uppercase}
.sg-next-step p.sg-eyebrow,.details-heading p.kicker,.editorial-intro p.kicker{margin:0 0 14px;font-size:.75rem}
.decision-example .reading-label{margin-bottom:10px}

/* ---------- Primary call-to-action band ---------- */
.sg-next-step h2{max-width:22ch}
.sg-next-step{align-items:center}

/* ---------- Page rhythm: padded sections no longer stack with margins ---------- */
main>:is(.details-section,.section-space):not(.section-tint):not(.section-ink){padding-block:0;margin-block:clamp(56px,7vw,104px)}
main>.section-space+.section-space{margin-top:0}
.decision-example{padding:28px 32px}
.decision-example h2{font-size:clamp(1.375rem,2.2vw,1.75rem);margin:0 0 12px}
.decision-example .chapter-lead{margin-bottom:16px}

/* ---------- Buttons: fix shared submit margin that knocks rows out of line ---------- */
:is(.calc-actions,.discovery-query-row,.local-property-filters,.directory-controls,.contact-grid form,.local-request-form,.sg-lead-form) button{margin-top:0}
.calc-actions{align-items:center;gap:12px}
.calc-actions>*{min-height:46px}
.local-property-filters button[type=reset],.local-property-filters button:not(.sg-button){min-height:46px;border:1px solid var(--line-strong);border-radius:6px;background:transparent;color:var(--ink);font:700 .875rem/1 var(--sans);cursor:pointer}
.local-property-filters button:not(.sg-button):hover{border-color:var(--ink)}
.directory-more button,button.directory-more{display:flex;align-items:center;justify-content:center;min-height:46px;border-radius:6px;font:700 .875rem/1 var(--sans);border-color:var(--line-strong);margin-bottom:clamp(48px,6vw,80px)}
.directory-more button:hover,button.directory-more:hover{border-color:var(--ink)}

/* ---------- Inline label + value pairs that ran together ---------- */
.property-card-note>span:first-child{display:block;font:700 .6875rem/1.4 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--bronze);margin-bottom:4px}
.quiet-link{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px}
.local-tool-links a{display:inline-grid;grid-template-columns:auto 1fr;align-items:center;column-gap:10px;row-gap:2px;line-height:1.3}
.local-tool-links a svg{grid-row:span 2;width:18px;height:18px;color:var(--blue)}
.local-tool-links a strong{font-weight:700;color:var(--ink)}
.local-tool-links a span{font-size:.8125rem;color:var(--muted)}
.local-tool-links a:not(:has(svg)) :is(strong,span){grid-column:1/-1}
.comparison-sources{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 24px;font-size:.9375rem}
.comparison-sources>p{flex-basis:100%;margin:0 0 4px}
.comparison-sources>a{font-weight:600;color:var(--ink)}
.comparison-sources>a::after{content:' ↗';color:var(--blue)}

/* ---------- Calculator result header ---------- */
.calc-result-label{display:block;margin-bottom:6px}
.calc-total{display:block}

/* ---------- Property cards: one photo frame, one label style ---------- */
.property-photo{border:1px solid var(--line)}
.property-photo img{position:absolute;inset:0;width:100%;height:100%;margin:0!important;aspect-ratio:auto!important;border-radius:0!important;object-fit:cover}
.property-plan-photo{background:#fff}
.property-plan-photo img{object-fit:contain;padding:12px}
.property-label{border-radius:6px;font-weight:700;letter-spacing:.06em;padding:8px 10px;box-shadow:0 1px 3px rgba(0,0,0,.15);z-index:1}
.local-results-meta{display:flex;flex-wrap:wrap;gap:4px 16px}
.local-results-meta p{margin:0}
.local-property-search .listing-disclosure,.local-property-search .fineprint{margin-bottom:clamp(40px,5vw,64px)}

/* ---------- Presale vs resale: photo labels and the comparison table ---------- */
.purchase-option-photo{position:relative}
.purchase-option-photo img{margin-bottom:0}
.purchase-option-photo>span{position:absolute;left:16px;top:16px;background:#fff;color:var(--ink);font:700 .6875rem/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;padding:8px 10px;border-radius:6px;box-shadow:0 1px 3px rgba(0,0,0,.15)}
.purchase-option-copy{padding:28px 32px 32px}
.purchase-table .mobile-option-label{display:none}
.purchase-table th[scope=row]{vertical-align:middle}
.purchase-table th[scope=row] svg{width:18px;height:18px;color:var(--blue);vertical-align:-3px;margin-right:10px}
.purchase-journey{display:block}
.purchase-journey>.estate-width{padding-inline:0;max-width:none}
.purchase-paths h3{display:flex;align-items:center;gap:10px}
.purchase-paths h3 svg{width:20px;height:20px;color:var(--blue)}
.comparison-next nav a{text-decoration:none;color:var(--ink-2)}
.comparison-next nav span{display:flex;flex-direction:column;gap:2px;font-size:.9375rem}
.comparison-next nav strong{font-weight:700;color:var(--ink)}
.comparison-next nav svg{width:20px;height:20px;flex-shrink:0;color:var(--blue)}

@media (min-width:861px){
 /* Box-card grids fill the row instead of leaving an empty fourth column. */
 .reading-cards,.related-grid,.buyer-path-grid,.official-grid,.neighbourhood-links,.contact-guide-links{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
 .journal-cards.journal-with-icons:has(>:only-child){grid-template-columns:minmax(0,1fr) minmax(0,1fr)}

 /* Alignment: framed tools share the 1200px content edge. */
 main .calculator-workspace{width:calc(100% - var(--gutter)*2)!important;max-width:var(--wrap)!important;padding-inline:0!important;margin-inline:auto!important}
 .contact-stage>.contact-grid{padding-inline:0;max-width:none}
 .contact-grid{align-items:start}

 /* Calculator directory: three equal cards side by side, each ending in a clear action. */
 .calculator-directory{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
 .calculator-directory>.calculator-card{margin:0}
 .calculator-card h2,.calculator-card h3{font-size:clamp(1.25rem,1.8vw,1.5rem)!important;line-height:1.2;margin:0}
 .calculator-card p{margin:0}
 .calculator-card>:last-child:not(p){margin-top:auto;padding-top:12px;font-weight:600;color:var(--ink)}

 /* Presale vs resale: two journeys side by side; related links as a three-column list. */
 .purchase-paths{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,64px)}
 .purchase-paths ol{margin:0}
 .comparison-next nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:32px}
 .comparison-next nav a{display:flex;gap:14px;align-items:flex-start;padding:20px 0 0;border-top:1px solid var(--ink)}
 .comparison-next .solid-button{margin-top:8px}

 /* Neighbourhood/property libraries: city jump links as pills, close to the hero. */
 .property-library-intro{margin-bottom:clamp(24px,3vw,40px)!important}
 .property-city-nav{margin-top:0}
 .property-city-nav a{display:inline-flex;align-items:center;min-height:40px;padding:0 16px;border:1px solid var(--line-strong);border-radius:999px;background:#fff;text-decoration:none;color:var(--ink);font-weight:500;font-size:.9375rem;transition:border-color .2s}
 .property-city-nav a:hover{border-color:var(--ink)}

 /* Site directory: shortcuts sit above the groups, not on their rules. */
 .site-directory>header{margin-bottom:clamp(28px,3vw,40px)}
 .site-directory-groups summary{align-items:center}
 .site-directory-groups summary>span{white-space:nowrap;flex-shrink:0;margin-left:auto;padding-left:12px}
 .site-directory-groups summary{gap:8px}
 .journal-cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}

 /* Site search: input and button share one height and baseline. */
 .discovery-query-row{align-items:stretch}
 .discovery-query-row button{min-height:56px}
 .discovery-start nav+p,.discovery-start p{margin-top:14px}

 /* Coffee page: the call link reads as a utility aligned to the card edge. */
 .sg-coffee-heading{text-align:right}

 /* Buyer checklist / resource cards: content sits at the top, no dead space. */
 .resource-photo-pair>a{justify-content:flex-start;min-height:0}
 .resource-photo-pair:has(>:only-child)>a{max-width:none}
 .print-button,.guide-print{width:auto;align-self:flex-start}
}

/* ---------- Small consistency fixes ---------- */
.calculator-card>strong:last-child::after,.calculator-card>span:last-child::after{content:' →';font-weight:400}
.local-property-detail .local-listing-opening{margin-bottom:clamp(28px,3vw,40px)}
.discovery-query-row svg{top:50%;transform:translateY(-50%);z-index:1}
.discovery-start+.discovery-result-header,.discovery-result-header{margin-top:20px}
.discovery-result-header p{margin:0}
@media (min-width:861px){
 /* Tool pages: the decorative photo above the calculator becomes a slim band so the tool is reached sooner. */
 .tool-heading+.photo-band img{aspect-ratio:32/9}
 .tool-heading+.photo-band{margin-block:clamp(32px,4vw,56px)!important}
}
nav[aria-label="Local advice"]{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:20px}
nav[aria-label="Local advice"] a{font-weight:600;color:var(--ink);text-decoration:none;padding-bottom:4px;border-bottom:1px solid var(--line-strong)}
nav[aria-label="Local advice"] a::after{content:' →';font-weight:400}
nav[aria-label="Local advice"] a:hover{border-color:var(--ink)}
.site-directory-groups{align-items:start}

/* ===== styles/65-content.css ===== */
/* ==========================================================================
   Content depth (content-depth.mjs): steps, photo splits, FAQs, link cards and
   comparison columns added to hub, service and tool pages. Also tidies the
   utility pages (saved, search, explore directory).
   ========================================================================== */

.cd-section{padding-block:clamp(56px,7vw,96px)}
.cd-section.cd-tint{background:var(--stone)}
.cd-section+.cd-section:not(.cd-tint){padding-top:clamp(24px,3vw,40px)}
.cd-tint+.cd-section,.cd-section+.cd-tint{padding-top:clamp(56px,7vw,96px)}
.cd-wrap{width:100%;max-width:calc(var(--wrap) + var(--gutter)*2);margin-inline:auto;padding-inline:var(--gutter)}

.cd-head{max-width:46rem;margin-bottom:clamp(28px,3.4vw,44px)}
.cd-head h2{margin-top:10px}
.cd-head>p:not(.reading-label){margin-top:14px;color:var(--muted);font-size:1.0625rem}

/* Numbered steps */
.cd-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:clamp(16px,2vw,24px);counter-reset:none}
.cd-steps.cd-steps-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.cd-steps li{background:#fff;border:1px solid var(--line);border-radius:10px;padding:24px 22px 26px;display:flex;flex-direction:column;gap:10px}
.cd-tint .cd-steps li{border-color:transparent;box-shadow:0 1px 2px rgba(16,24,40,.05)}
.cd-step-number{font:700 .8125rem/1 var(--sans);letter-spacing:.08em;color:var(--blue);padding-bottom:14px;border-bottom:1px solid var(--line)}
.cd-steps h3{font-size:1.0625rem}
.cd-steps p{margin:0;color:var(--ink-2);font-size:.9688rem;line-height:1.6}

/* Photo beside copy */
.cd-split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:center}
.cd-split-reverse .cd-photo{order:2}
.cd-photo{margin:0}
.cd-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;background:var(--sand)}
.cd-photo figcaption{margin-top:10px;font-size:.8125rem;color:var(--muted)}
.cd-split-copy h2{margin:10px 0 16px}
.cd-split-copy>p:not(.reading-label){color:var(--ink-2)}
.cd-split-copy .sg-text-link{margin-top:22px}
.cd-split-copy .buyer-actions{margin-top:24px}

/* Check-mark lists */
.cd-list{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:10px}
.cd-list li{position:relative;padding-left:30px;color:var(--ink-2);line-height:1.55}
.cd-list li::before{content:'';position:absolute;left:0;top:.2em;width:18px;height:18px;border-radius:50%;background:var(--navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4 8.2 2.6 2.6L12 5.4' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px no-repeat}
.cd-list a{color:var(--ink);font-weight:600}

/* Comparison columns */
.cd-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:clamp(16px,2vw,24px)}
.cd-columns>div{background:#fff;border:1px solid var(--line);border-radius:10px;padding:24px 22px 26px}
.cd-tint .cd-columns>div{border-color:transparent}
.cd-columns h3{padding-bottom:14px;border-bottom:1px solid var(--line)}
.cd-columns .cd-list{margin-top:16px;font-size:.9688rem}

/* FAQ */
.cd-faq{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(32px,5vw,72px);align-items:start}
.cd-faq .cd-head{margin-bottom:0}
.cd-faq-list{border-top:1px solid var(--ink)}
.cd-faq-list details{border-bottom:1px solid var(--line-strong)}
.cd-faq-list summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 0;font:600 1.0313rem/1.4 var(--sans);color:var(--ink)}
.cd-faq-list summary::-webkit-details-marker{display:none}
.cd-faq-list summary::after{content:'+';flex-shrink:0;font:400 1.375rem/1 var(--sans);color:var(--blue);transition:transform .2s var(--ease)}
.cd-faq-list details[open] summary::after{transform:rotate(45deg)}
.cd-faq-list summary:hover{color:var(--navy-2)}
.cd-answer{padding:0 40px 22px 0;color:var(--ink-2)}

/* Link cards */
.cd-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:clamp(14px,1.6vw,20px)}
.cd-link{display:flex;flex-direction:column;gap:8px;padding:22px 22px 24px;background:#fff;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:var(--ink-2);transition:border-color .2s var(--ease),box-shadow .2s var(--ease),transform .2s var(--ease)}
.cd-link strong{font-size:1.0625rem;line-height:1.35}
.cd-link>span:last-child{font-size:.9375rem;color:var(--muted)}
.cd-link strong::after{content:' →';font-weight:400;color:var(--blue)}
.cd-link:hover{border-color:var(--line-strong);box-shadow:var(--shadow);transform:translateY(-2px)}

/* Chips */
.cd-chips{display:flex;flex-wrap:wrap;gap:10px}
.cd-chips a{display:inline-flex;align-items:center;padding:12px 20px;border:1px solid var(--line-strong);border-radius:999px;background:#fff;color:var(--ink);font:600 .9375rem/1.2 var(--sans);text-decoration:none}
.cd-chips a:hover{border-color:var(--ink)}

/* Contact note */
.cd-note-box{display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap}
.cd-note-box>div{max-width:44rem}
.cd-note-box h2{margin:10px 0 14px}
.cd-note-box a:not(.sg-button){color:var(--ink);font-weight:600}

/* Buy page: featured-homes split keeps the listing photograph proportionate */
.buyer-featured .cd-photo img{aspect-ratio:4/3}

/* Utility pages */
.discovery-empty a{margin:0 10px}
.discovery-empty a+a{margin-left:10px}
.site-directory-list{display:grid!important;grid-template-columns:1fr!important;gap:clamp(28px,3vw,40px)!important}
.site-directory-group{padding-top:20px;border-top:1px solid var(--ink)}
.site-directory-group h2{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:1.25rem;margin-bottom:12px}
.site-directory-group h2 span{font:600 .8125rem/1.3 var(--sans);letter-spacing:.06em;color:var(--blue);white-space:nowrap}
.site-directory-group nav{columns:3 220px;column-gap:clamp(24px,3vw,48px)}
.site-directory-group nav a{break-inside:avoid;font-size:.9688rem}

@media (max-width:1080px){
 .cd-steps.cd-steps-4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:860px){
 .cd-split,.cd-faq{grid-template-columns:1fr}
 .cd-split-reverse .cd-photo{order:0}
 .cd-photo img{aspect-ratio:3/2}
 .cd-answer{padding-right:0}
}
@media (max-width:600px){
 .cd-steps.cd-steps-4{grid-template-columns:1fr}
 .cd-steps li,.cd-columns>div{padding:20px 18px 22px}
 .site-directory-group nav{columns:1}
 .cd-note-box .sg-button{width:100%;justify-content:center}
}

/* Five-up columns (one per city) */
@media (min-width:1081px){.cd-columns.cd-columns-5{grid-template-columns:repeat(5,minmax(0,1fr))}}
/* Sections nested inside the communities hub sit within its width: give tinted ones a panel edge. */
.community-hub .cd-section{margin-block:clamp(32px,4vw,56px)}
.community-hub .cd-tint{border-radius:12px}
.community-hub .cd-wrap{padding-inline:clamp(20px,3vw,40px)}
.community-hub .cd-section:not(.cd-tint) .cd-wrap{padding-inline:0}
.cd-qa{background:#fff;border:1px solid var(--line);border-radius:10px;padding:clamp(24px,3vw,36px)}
.cd-qa h3{font-size:1.1875rem;margin:10px 0 12px}
.cd-qa .sg-text-link{margin-top:18px}
.site-directory-list .site-directory-group nav{display:block}
@media (max-width:600px){
 .cd-steps{gap:12px}
 .cd-steps li{display:grid;grid-template-columns:auto 1fr;column-gap:14px;row-gap:4px;padding:18px}
 .cd-step-number{grid-row:span 2;padding:3px 0 0;border:0}
}
.cd-section a[href^="tel:"]{white-space:nowrap}
/* Even rows: six steps in two rows of three; five link cards in one row. */
.cd-steps.cd-steps-6{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (min-width:1081px){.cd-links.cd-links-5{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media (max-width:860px){.cd-steps.cd-steps-6{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.cd-steps.cd-steps-6{grid-template-columns:1fr}}

/* ===== styles/66-reading.css ===== */
/* ==========================================================================
   Reading templates: guides, journal articles, journal hub and resource guides.
   Tighter vertical rhythm plus the long-form "full guide" layer (.gd).
   ========================================================================== */

/* ---------- Rhythm: remove oversized gaps between stacked blocks ---------- */
main:is(:has(.reading-layout),:has(.journal-article),:has(.journal-hub-intro),:has(.resource-depth))>:is(section,div,nav,aside,article,header):not(.hero):not(.sg-next-step):not(.reading-related){margin-block:clamp(32px,4vw,56px)}
main:is(:has(.reading-layout),:has(.journal-article),:has(.journal-hub-intro),:has(.resource-depth))>.hero+*{margin-top:clamp(32px,4vw,56px)}
main:is(:has(.reading-layout),:has(.journal-article),:has(.journal-hub-intro),:has(.resource-depth))>.photo-band{margin-block:clamp(24px,3vw,40px)}
main:has(.resource-depth)>.details-section{padding-block:clamp(32px,4vw,56px)}
.journal-article>:is(section,aside,header,div,figure){margin-block:clamp(28px,3.5vw,48px)}
.journal-article>.article-photo{margin-block:clamp(24px,3vw,40px)}
main:has(.reading-layout) .guide-brief{padding-bottom:clamp(28px,3.5vw,44px)}
.reading-copy>section{padding-block:clamp(28px,3.5vw,44px)}
.reading-copy>.reading-photo{padding-block:4px 24px}
.reading-copy>.reading-photo img{aspect-ratio:2/1}
.reading-related{padding-block:clamp(48px,6vw,80px);margin-top:clamp(40px,5vw,64px)}
.reading-copy .reading-sources{margin-top:32px}

/* The sticky aside stays useful through a long guide instead of leaving a blank column. */
.reading-layout{gap:clamp(32px,5vw,80px)}
.reading-copy{max-width:48rem}
.reading-aside .takeaway{max-height:calc(100vh - var(--header-h) - 220px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.reading-aside .chapter-link{padding-block:8px}

/* Journal hub: topics sit closer together. */
.journal-topic{padding-top:clamp(24px,3vw,36px)}
main:has(.journal-hub-intro)>.journal-topic+.journal-topic{margin-top:0}
.journal-hub-glossary{border-top:1px solid var(--line);padding-top:clamp(24px,3vw,36px)}
.journal-hub-glossary h2{font-size:clamp(1.5rem,2.3vw,2rem);margin:6px 0 8px}
.journal-hub-glossary>p{max-width:44rem;margin:0 0 20px}
.journal-hub-glossary dl{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:12px;margin:0}
.journal-hub-glossary dl>div{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}
.journal-hub-glossary dt{font-weight:700;color:var(--ink);margin-bottom:4px}
.journal-hub-glossary dd{margin:0;font-size:.9375rem;line-height:1.55}
.journal-hub-glossary dd a{font-weight:600}

/* ---------- Full guide layer ---------- */
.gd{display:grid;gap:0}
.gd-block{padding-block:clamp(26px,3.2vw,40px)}
.gd-block>.reading-label{margin:0 0 6px}
.gd-block>h2{font-size:clamp(1.375rem,2.2vw,1.75rem);line-height:1.2;margin:0 0 14px}
.gd-p{margin:0 0 14px;line-height:1.7}
.gd-p:last-child{margin-bottom:0}
.gd h3{font-size:1.0625rem;line-height:1.35;margin:0 0 4px;color:var(--ink)}

.gd-step-list{list-style:none;padding:0;margin:16px 0 0;display:grid;gap:10px;counter-reset:none}
.gd-step-list li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;align-items:start;margin:0;padding:16px 18px;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}
main .gd-step-list>li>.gd-num{display:grid;place-items:center;min-width:0;width:36px;height:36px;margin:0;padding:0;border-radius:50%;background:var(--navy);color:#fff;font:700 .8125rem/1 var(--sans);letter-spacing:.04em}
.gd-step-list .gd-p{font-size:.9688rem;line-height:1.6}

.gd-mistake-list{list-style:none;padding:0;margin:4px 0 0;display:grid;gap:10px}
.gd-mistake-list li{margin:0;padding:16px 20px;border:1px solid #f1dccd;background:#fdf6f1;border-radius:var(--radius)}
.gd-mistake-list .gd-p{font-size:.9688rem;line-height:1.6}

.gd-example{}
.gd-table-wrap{overflow-x:auto;margin:6px 0 14px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}
.gd-table{width:100%;border-collapse:collapse;font-size:.9688rem}
.gd-table th,.gd-table td{padding:11px 16px;text-align:left;vertical-align:top;border-top:1px solid var(--line)}
.gd-table tr:first-child th,.gd-table tr:first-child td{border-top:0}
.gd-table th{font-weight:500;color:var(--ink-2);width:58%}
.gd-table td{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.gd-table tr:last-child th,.gd-table tr:last-child td{background:#eef4fb}
.gd-note{font-size:.9063rem;color:var(--muted)}

.gd-ask-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:12px;margin-top:6px}
.gd-ask-card{background:var(--stone);border-radius:var(--radius);padding:18px 20px}
.gd-ask-card h3{font-size:.8125rem;letter-spacing:.12em;text-transform:uppercase;color:var(--bronze);margin-bottom:10px}
.gd-ask-card ul{margin:0;padding-left:1.1em}
.gd-ask-card li{font-size:.9375rem;line-height:1.55;margin-bottom:8px}
.gd-ask-card li:last-child{margin-bottom:0}

.gd-faq-list{display:grid;gap:0;border-top:1px solid var(--line-strong)}
.gd-faq-list details{border-bottom:1px solid var(--line-strong);margin:0}
.gd-faq-list summary{cursor:pointer;list-style:none;padding:16px 36px 16px 0;position:relative;font-weight:600;color:var(--ink);line-height:1.4}
.gd-faq-list summary::-webkit-details-marker{display:none}
.gd-faq-list summary::after{content:'+';position:absolute;right:4px;top:13px;font-size:1.375rem;font-weight:400;color:var(--bronze)}
.gd-faq-list details[open] summary::after{content:'−'}
.gd-faq-list details>.gd-p{padding:0 0 16px;margin:0;font-size:.9688rem}
.reading-copy .gd-faq-list details{margin-top:0}

.gd-sources{font-size:.9375rem}
.gd-sources h2{font:600 .75rem/1.4 var(--sans)!important;letter-spacing:.16em;text-transform:uppercase;color:var(--bronze)!important}
.gd-sources ul{list-style:none;padding:0;margin:12px 0 0}
.gd-sources li{margin:0;border-top:1px solid var(--line-strong)}
.gd-sources a{display:block;padding:10px 0;font-weight:500;text-decoration:none;color:var(--ink)}
.gd-sources a::after{content:' ↗';color:var(--bronze)}

/* Wide hosts (journal articles, resource guides): use the full width instead of one narrow column. */
:is(.journal-depth,.resource-depth) .gd{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(32px,5vw,72px)}
:is(.journal-depth,.resource-depth) .gd-block:not(.gd-plain):not(.gd-why){grid-column:1/-1}
:is(.journal-depth,.resource-depth) .gd-step-list{grid-template-columns:repeat(2,minmax(0,1fr))}
:is(.journal-depth,.resource-depth) .gd-example{display:grid;grid-template-rows:auto auto auto 1fr;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);column-gap:clamp(24px,4vw,56px);align-items:start}
:is(.journal-depth,.resource-depth) .gd-example>:is(.reading-label,h2,.gd-p:not(.gd-note)){grid-column:1}
:is(.journal-depth,.resource-depth) .gd-example>.gd-table-wrap{grid-column:2;grid-row:1/span 4;margin-top:0;align-self:start}
:is(.journal-depth,.resource-depth) .gd-example>.gd-note{grid-column:2}
:is(.journal-depth,.resource-depth) .gd-faq{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);grid-template-rows:auto auto 1fr;column-gap:clamp(32px,5vw,72px);align-items:start}
:is(.journal-depth,.resource-depth) .gd-faq>:is(.reading-label,h2){grid-column:1}
:is(.journal-depth,.resource-depth) .gd-faq>.gd-faq-list{grid-column:2;grid-row:1/span 3}


@media (max-width:860px){
 :is(.journal-depth,.resource-depth) .gd,
 :is(.journal-depth,.resource-depth) .gd-step-list,
 :is(.journal-depth,.resource-depth) .gd-example,
 :is(.journal-depth,.resource-depth) .gd-faq{grid-template-columns:1fr}
 :is(.journal-depth,.resource-depth) .gd-example>*,
 :is(.journal-depth,.resource-depth) .gd-faq>*{grid-column:1!important;grid-row:auto!important}
 :is(.journal-depth,.resource-depth) .gd-example>.gd-table-wrap{margin-top:6px}
}
@media (max-width:600px){
 .gd-step-list li{grid-template-columns:32px minmax(0,1fr);gap:12px;padding:14px}
 main .gd-step-list>li>.gd-num{width:30px;height:30px;font-size:.75rem}
 .gd-table th,.gd-table td{padding:10px 12px}
 .gd-table th{width:55%}
 .gd-ask-card{padding:16px}
 .reading-copy>.reading-photo img{aspect-ratio:16/10}
}
@media print{.gd-faq-list details>.gd-p{display:block}.reading-aside .takeaway{max-height:none}}

/* ---------- Journal hub: topic columns and the full guide index ---------- */
.journal-topic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.journal-topic-col{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px 22px 10px}
.journal-topic-col>.reading-label{display:flex;align-items:center;gap:8px;margin:0 0 6px}
.journal-topic-col>.reading-label svg{display:inline-block;width:18px;height:18px}
.journal-topic-col ul{list-style:none;padding:0;margin:0}
.journal-topic-col li{margin:0;border-top:1px solid var(--line)}
.journal-topic-col li:first-child{border-top:0}
.journal-topic-col a{display:block;padding:12px 0;text-decoration:none}
.journal-topic-col a strong{display:block;color:var(--ink);font-weight:700;line-height:1.35;margin-bottom:3px}
.journal-topic-col a span{display:block;font-size:.9063rem;line-height:1.5;color:var(--ink-2)}
.journal-topic-col a:hover strong{color:var(--blue);text-decoration:underline;text-underline-offset:.2em}
.journal-stage-index .reading-section-title{margin-bottom:18px}
.journal-stage-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.journal-stage-grid nav{display:block;background:var(--stone);border-radius:12px;padding:18px 20px}
.journal-stage-grid nav:first-child{grid-column:span 2;columns:2;column-gap:28px}
.journal-stage-grid h3{font-size:.8125rem;letter-spacing:.12em;text-transform:uppercase;color:var(--bronze);margin:0 0 8px;column-span:all}
.journal-stage-grid a{display:block;padding:7px 0;font-size:.9375rem;line-height:1.4;font-weight:500;color:var(--ink);text-decoration:none;break-inside:avoid}
.journal-stage-grid a:hover{color:var(--blue);text-decoration:underline}
@media (max-width:1100px){.journal-topic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.journal-stage-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.journal-stage-grid nav:first-child{grid-column:1/-1;columns:3}}
@media (max-width:800px){.journal-stage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.journal-stage-grid nav:first-child{columns:2}}
@media (max-width:640px){.journal-topic-grid,.journal-stage-grid{grid-template-columns:1fr}.journal-stage-grid nav:first-child{grid-column:auto;columns:1}}

/* Journal pieces (journal.mjs): one reading rhythm. Boxes sit on the content width rather than spilling
   into the gutter, sections are separated by space rather than rules, and grids never strand one card. */
.journal-article>:is(.journal-answer,.journal-sources){width:calc(100% - var(--gutter)*2)!important;max-width:var(--wrap)!important;margin-inline:auto!important;padding:clamp(24px,3.5vw,40px)!important;background:var(--stone);border:0;border-radius:var(--radius)}
.journal-answer>p:not(.reading-label){max-width:60ch}
.journal-sources a.journal-back::after{content:' →'}
.journal-facts{margin-top:clamp(28px,4vw,40px)}
.journal-facts>*{padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}
.journal-facts span{font-size:clamp(1.75rem,2.6vw,2.125rem);margin-bottom:12px}
.journal-depth .gd>.gd-block,.journal-depth .gd>.gd-block:nth-child(-n+2){border-top:0}
.journal-depth .cta-inline{grid-column:1/-1;margin-block:clamp(8px,2vw,16px)}
.gd-mistake-list{grid-template-columns:repeat(2,minmax(0,1fr))}
.gd-mistake-list>li:last-child:nth-child(odd),:is(.journal-depth,.resource-depth) .gd-step-list>li:last-child:nth-child(odd){grid-column:1/-1}
.gd-table th{background:none}
@media (max-width:760px){.gd-mistake-list,:is(.journal-depth,.resource-depth) .gd-mistake-list{grid-template-columns:1fr}}
/* Program cards: several source links in a row need space between them. */
.buyer-programs article>a{display:inline-block;margin:10px 16px 0 0}

/* ===== styles/67-answers.css ===== */
/* ==========================================================================
   /answers/ family (answers.mjs). Plain-language answer pages and their hub.
   Reading measure first: one column of prose, wider bands for steps, tables and cards.
   ========================================================================== */

.answer-page{padding-block:clamp(28px,4vw,48px) clamp(48px,7vw,96px)}
/* The shared hero spacing rule adds a large top margin; the short answer should sit right under the hero. */
main>.hero+.answer-page{margin-top:0!important} /* beats the shared main>:is(...):not(...) section rhythm rule */
.answer-page>*{max-width:46rem}
.answer-page>.answer-short,.answer-page>.answer-cta,.answer-page>.answer-related,.answer-page>.answer-hub-group,.answer-page>#ans-steps,.answer-page>.answer-who{max-width:none}
.answer-page h2{font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.2;color:var(--ink);margin:0 0 16px;letter-spacing:-.01em}
.answer-page h3{font-size:1.0625rem;line-height:1.35;color:var(--ink);margin:0 0 6px}
.answer-page p{margin:0 0 14px}
.answer-page a.answer-ctx{color:var(--navy-2);text-decoration:underline;text-decoration-color:var(--bronze-soft);text-underline-offset:.18em}
.answer-page a.answer-ctx:hover{text-decoration-color:currentColor}
.answer-section{margin-top:clamp(40px,5vw,64px);scroll-margin-top:calc(var(--header-h) + 24px)}

/* The short answer: the first thing a searcher reads. */
.answer-short{background:var(--stone);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(20px,3vw,32px)}
.answer-short .reading-label{margin:0 0 10px}
.answer-short-copy{font-size:clamp(1.0625rem,1.4vw,1.1875rem);line-height:1.6;color:var(--ink);max-width:52rem}
.answer-check{font-size:.9375rem;color:var(--ink-2);background:#fff;border:1px solid var(--line);border-radius:6px;padding:10px 14px;max-width:52rem}
.answer-jump{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.answer-jump a{font-size:.875rem;font-weight:600;color:var(--navy-2);text-decoration:none;border:1px solid var(--line-strong);background:#fff;border-radius:999px;padding:6px 12px;min-height:36px;display:inline-flex;align-items:center}
.answer-jump a:hover,.answer-jump a:focus-visible{border-color:var(--blue);color:var(--blue)}

/* Steps */
.answer-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px}
.answer-steps li{display:flex;gap:14px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:20px}
.answer-step-n{flex:none;font:700 .8125rem/1 var(--sans);letter-spacing:.06em;color:var(--blue);padding-top:4px}
.answer-steps p{margin:0;font-size:.975rem}

/* Worked example table */
.answer-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--radius);background:#fff}
.answer-table{width:100%;border-collapse:collapse;font-size:.975rem}
.answer-table caption{text-align:left;font-weight:700;color:var(--ink);padding:14px 16px 4px}
.answer-table th,.answer-table td{padding:12px 16px;border-top:1px solid var(--line);vertical-align:top;text-align:left}
.answer-table th{font-weight:500;color:var(--ink-2)}
.answer-table td{font-weight:700;color:var(--ink);white-space:nowrap}
.answer-table tr:last-child td{color:var(--navy)}
.answer-note,.answer-example-intro{font-size:.9375rem;color:var(--muted);margin-top:12px}
@media (max-width:560px){.answer-table td{white-space:normal}.answer-table th,.answer-table td{display:block;border-top:0;padding:4px 16px}.answer-table tr{display:block;border-top:1px solid var(--line);padding-block:8px}}

/* Who it applies to */
.answer-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:clamp(16px,3vw,32px)}
.answer-columns>div{background:#fff;border:1px solid var(--line);border-radius:10px;padding:20px 22px}
.answer-columns ul,.answer-mistakes,.answer-sources ul{margin:0;padding-left:1.15em}
.answer-columns li,.answer-mistakes li{margin-bottom:8px}
.answer-mistakes li::marker{color:var(--blue)}

/* FAQ */
.answer-faq-list details{border-top:1px solid var(--line)}
.answer-faq-list details:last-child{border-bottom:1px solid var(--line)}
.answer-faq-list summary{cursor:pointer;font-weight:700;color:var(--ink);padding:16px 32px 16px 0;position:relative;list-style:none;min-height:44px}
.answer-faq-list summary::-webkit-details-marker{display:none}
.answer-faq-list summary::after{content:'+';position:absolute;right:4px;top:14px;font-weight:400;font-size:1.25rem;color:var(--blue)}
.answer-faq-list details[open] summary::after{content:'−'}
.answer-faq-list details p{margin:0 0 18px;color:var(--ink-2)}

/* Sources */
.answer-sources>p{font-size:.9375rem;color:var(--muted)}
.answer-sources li{margin-bottom:10px}
.answer-sources li a{color:var(--navy-2);font-weight:600;overflow-wrap:anywhere}
.answer-sources li span{display:block;font-size:.8125rem;color:var(--muted)}

/* Related answers and hub cards */
.answer-related-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:16px}
.answer-card{display:flex;flex-direction:column;gap:8px;text-decoration:none;background:#fff;border:1px solid var(--line);border-radius:10px;padding:20px;transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}
.answer-card:hover,.answer-card:focus-visible{border-color:var(--blue);box-shadow:var(--shadow)}
.answer-card .reading-label{margin:0;font-size:.6875rem}
.answer-card strong{color:var(--ink);font-size:1.0625rem;line-height:1.35}
.answer-card span:last-child{color:var(--muted);font-size:.9375rem}
.answer-more{margin-top:18px}
.answer-more a{font-weight:700;color:var(--navy-2)}
.answer-hub-group>p{max-width:46rem;color:var(--muted)}

/* CTA blocks */
.answer-cta{margin-top:clamp(40px,5vw,64px);display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:clamp(16px,3vw,40px);align-items:center;background:var(--navy);color:#fff;border-radius:12px;padding:clamp(24px,4vw,44px)}
.answer-cta h2{color:#fff;margin-bottom:10px}
.answer-cta p{color:rgba(255,255,255,.86);margin:0}
.answer-cta .reading-label{color:var(--bronze-soft);margin-bottom:8px}
.answer-cta-actions{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.answer-cta-actions .sg-button{background:#fff;color:var(--navy);border-color:#fff}
.answer-cta-actions .sg-text-link{color:#fff;font-weight:600;text-decoration:underline;text-underline-offset:.2em}
.answer-cta-end{background:var(--navy-deep)}
@media (max-width:760px){.answer-cta{grid-template-columns:1fr}}

/* Hub: an intro with the topic index, then one row per topic (title on the left, question list on the right). */
.answer-page>.ah-intro,.answer-page>.ah-group,.answer-page>.ah-more{max-width:none}
.ah-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:start;padding-bottom:clamp(28px,4vw,40px);border-bottom:1px solid var(--line)}
.ah-intro .reading-label{margin:0 0 10px}
.ah-intro-copy{margin:0;font-size:clamp(1.0625rem,1.4vw,1.1875rem);line-height:1.6;color:var(--ink)}
.ah-topics{display:grid;gap:0;margin:0;border-top:1px solid var(--line)}
.ah-topics a{display:grid;grid-template-columns:2.25rem 1fr auto;align-items:center;gap:12px;min-height:0;padding:14px 4px;border:0;border-bottom:1px solid var(--line);color:var(--ink);font-size:1rem;font-weight:600;text-decoration:none;background:none;border-radius:0}
.ah-topics a:hover,.ah-topics a:focus-visible{border-color:var(--line)}
.answer-hub{padding-bottom:clamp(40px,5vw,64px)}
.ah-topics a:hover .ah-topic,.ah-topics a:focus-visible .ah-topic{color:var(--blue)}
.ah-num{font:700 .75rem/1 var(--sans);letter-spacing:.08em;color:var(--blue)}
.ah-count{min-width:1.75rem;padding:4px 8px;border-radius:999px;background:var(--stone);color:var(--ink-2);font-size:.8125rem;text-align:center}
.ah-group{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(0,2fr);gap:clamp(20px,4vw,56px);align-items:start}
.ah-group-head{position:sticky;top:calc(var(--header-h) + 24px)}
.ah-group-head .ah-num{display:block;margin-bottom:12px}
.ah-group-head h2{margin:0 0 10px}
.ah-group-head p{margin:0 0 14px;color:var(--muted);line-height:1.55}
.ah-group-count{font-size:.8125rem;font-weight:600;color:var(--ink-2)}
.ah-list{margin:0;padding:0;list-style:none;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.ah-list li{margin:0}
.ah-list li+li{border-top:1px solid var(--line)}
.ah-row{position:relative;display:grid;gap:6px;padding:20px 56px 20px 22px;text-decoration:none;transition:background-color .2s var(--ease)}
.ah-row:hover,.ah-row:focus-visible{background:var(--stone)}
.ah-row .reading-label{margin:0;font-size:.6875rem}
.ah-row strong{color:var(--ink);font-size:1.0625rem;line-height:1.35}
.ah-deck{color:var(--muted);font-size:.9375rem;line-height:1.55}
.ah-arrow{position:absolute;right:20px;top:50%;margin-top:-10px;color:var(--muted);transition:transform .2s var(--ease),color .2s var(--ease)}
.ah-row:hover .ah-arrow,.ah-row:focus-visible .ah-arrow{color:var(--blue);transform:translateX(3px)}
.ah-more-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.ah-more-card{display:flex;flex-direction:column;gap:8px;padding:22px;border:1px solid var(--line);border-radius:12px;background:#fff;text-decoration:none;transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}
.ah-more-card:hover,.ah-more-card:focus-visible{border-color:var(--blue);box-shadow:var(--shadow)}
.ah-more-card strong{color:var(--ink);font-size:1.0625rem}
.ah-more-card span{color:var(--muted);font-size:.9375rem;line-height:1.55}
.ah-more-card.ah-more-ask{background:var(--navy);border-color:var(--navy)}
.ah-more-ask strong{color:#fff}
.ah-more-ask span{color:rgba(255,255,255,.82)}
@media (max-width:1000px){.ah-more-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){.ah-intro,.ah-group{grid-template-columns:1fr}.ah-group-head{position:static}}
@media (max-width:520px){.ah-more-grid{grid-template-columns:1fr}.ah-row{padding:18px 44px 18px 18px}.ah-arrow{right:14px}}
/* Single answers: the short answer box shares the reading column instead of spanning the page. */
.answer-page>.answer-short{max-width:52rem}
.answer-related .ah-list{max-width:52rem}
.answer-related .answer-more{margin-top:16px}

/* ===== styles/70-mobile.css ===== */
/* ==========================================================================
   Phone & tablet pass (Oct 6). Loads last; every rule sits inside a
   max-width query so desktop (1081px+) is never touched.
   Homepage-only classes are deliberately left to styles/40-home.css.
   ========================================================================== */

/* ---------- Tablet and below (menu mode) ---------- */
@media (max-width:1080px){
 /* Open menu: pin the bar to the top so the panel starts exactly under it,
    keep it navy so the logo and close button stay visible. */
 .site-header:has(.site-nav.is-open){position:fixed;top:0;left:0;right:0;background:var(--navy-deep)}

 /* Top strip: one tidy line on tablets (region label hides, nothing wraps) */
 .topbar-region{display:none}
 .topbar-inner{justify-content:flex-end}
 .topbar a{white-space:nowrap}
 .site-nav{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
 .site-nav .nav-trigger{min-height:56px}
 .site-nav .nav-panel a{min-height:44px;display:flex;align-items:center}
 .site-nav-contact>a:not(.btn){min-height:44px;display:flex;align-items:center}

 /* Pill links: room between icon and label, finger-sized */
 .resource-shortcuts a,.calc-nav a,.local-tool-links a,.property-section-nav a,.home-type-selector a,.comparison-jumps a,.journal-reading nav a,.journal-city-links a,.discovery-popular a,.discovery-categories a,.directory-shortcuts a,.journal-hub-intro nav a,.mobile-chapters a{gap:8px;min-height:44px}
 .resource-shortcuts a svg,.journal-reading nav a svg,.local-tool-links a svg{width:18px;height:18px;flex-shrink:0}

 /* Nested wrappers were adding a second gutter */
 .community-hub>.estate-width,.contact-stage>.contact-grid,.purchase-journey>.estate-width{padding-inline:0}

 /* Small labels that ran into the following text */
 .property-card-note>span:first-child{display:block;font:700 .6875rem/1.4 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--bronze);margin-bottom:4px}
 .listing-disclosure>strong{display:block;margin-bottom:2px}
 .purchase-paths h3{display:flex;align-items:center;gap:10px}
 .purchase-paths h3 svg{width:22px;height:22px}
 .comparison-sources>a{display:block;margin-top:8px;font-weight:600}
 .comparison-next nav{display:grid;gap:0;margin-top:24px}
 .comparison-next nav a{display:flex;gap:14px;align-items:flex-start;padding:16px 0;border-top:1px solid var(--line);text-decoration:none;color:var(--ink-2)}
 .comparison-next nav a:last-child{border-bottom:1px solid var(--line)}
 .comparison-next nav svg{width:22px;height:22px;flex-shrink:0;margin-top:2px;color:var(--blue)}
 .comparison-next nav span{display:flex;flex-direction:column;gap:2px;font-size:.9375rem}
 .comparison-next nav strong{font-weight:700;color:var(--ink);font-size:1rem}
 .purchase-option-photo{position:relative}
 .purchase-option-photo>span{position:absolute;left:12px;top:12px;background:#fff;color:var(--ink);font:700 .6875rem/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;padding:8px 10px;border-radius:6px;box-shadow:0 1px 3px rgba(0,0,0,.15)}

 /* Tool rows (property pages, home finder): title over description */
 .local-tool-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:10px}
 .local-tool-links a{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:2px 12px;min-height:56px;padding:10px 16px;border-radius:10px;line-height:1.3}
 .local-tool-links a svg{grid-row:span 2}
 .local-tool-links a strong{font-weight:700;color:var(--ink)}
 .local-tool-links a span{font-size:.8125rem;color:var(--muted)}
 .local-tool-links a:not(:has(svg)) :is(strong,span){grid-column:1/-1}

 /* Help card on the communities hub: the button was navy on navy */
 .community-help-card .sg-button{background:#fff;border-color:#fff;color:var(--navy)}
 .community-help-card .sg-button:hover{background:var(--stone)}
 .community-collection>header{margin:36px 0 24px}
 .community-card figcaption{padding:0 24px;margin-top:12px}

 /* Calculators */
 .calc-result-label{display:block}

 /* Money-guide calculator band kept inside the gutter */
 main .context-calculator{margin-inline:var(--gutter)!important;width:auto!important}

 /* Card actions that rendered as plain text */
 .buyer-path-grid>a>span:last-child{margin-top:auto;padding-top:10px;font:700 .9375rem/1.3 var(--sans);color:var(--navy)}
 .buyer-path-grid>a>span:last-child::after{content:' →'}
 .official-grid>a>span:last-child{margin-top:auto;padding-top:8px;font:700 .9375rem/1.3 var(--sans);color:var(--navy)}
 .buyer-path-grid>a svg{width:22px;height:22px;color:var(--blue)}

 /* Property-type links in city guides fill the row */
 .home-type-selector nav{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr))}
 .home-type-selector nav a{width:100%}
 .home-type-selector nav a h3{margin:0}
 .home-type-selector nav a p{font-size:.875rem;color:var(--muted);margin:0}
 .home-type-selector nav a>span{margin-top:6px;font-weight:700;font-size:.8125rem;color:var(--navy)}

 /* In-page tab rows scroll sideways instead of wrapping into a cramped block */
 .page-tabs{flex-wrap:nowrap;overflow-x:auto;gap:8px;padding-block:14px;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent)}
 .page-tabs::-webkit-scrollbar{display:none}
 .page-tabs a{flex-shrink:0;display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid var(--line-strong);border-radius:999px;background:#fff;color:var(--ink);font-size:.875rem;white-space:nowrap}
 .property-city-nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid var(--line-strong);border-radius:999px;background:#fff;text-decoration:none;color:var(--ink);font-weight:500;font-size:.9375rem}

 /* Plain reset button on featured homes */
 .local-property-filters button[type=reset]{min-height:46px;border:1px solid var(--line-strong);border-radius:6px;background:transparent;color:var(--ink);font:700 .875rem/1 var(--sans);cursor:pointer}
 .local-property-filters button{margin:0}

 /* Site search: input and button share one row height */
 .discovery-query-row{align-items:center}
 .discovery-query-row button{margin:0!important;min-height:56px}

 /* Listing page: Save sits on the back-link row, not over the photo */
 .no-hero main>.page-discovery-tools{position:relative;top:auto;right:auto;left:auto;z-index:3;display:flex;justify-content:flex-end;width:100%;max-width:calc(var(--wrap) + var(--gutter)*2);margin:0 auto -50px!important;padding:16px var(--gutter) 0;pointer-events:none}
 .no-hero main>.page-discovery-tools .save-item{pointer-events:auto;min-height:40px}
 .property-area-link,.property-advisor>a:not(.property-intent){display:flex;align-items:center;gap:8px;min-height:44px;margin-top:4px}
 .property-area-link svg,.property-advisor>a svg{width:18px;height:18px;flex-shrink:0}

 /* Resource next-step tiles: no empty top band */
 .resource-photo-pair>a{min-height:0}

 /* Guides directory */
 .directory-more,button.directory-more{margin-bottom:clamp(40px,6vw,64px)!important}
 .directory-more button,button.directory-more{display:flex;align-items:center;justify-content:center;font-size:.9375rem}
 .site-footer .brand-light>span{white-space:nowrap;font-size:1.5rem}
}


/* ---------- Tablet portrait: five portraits as 3 + 2, centred ---------- */
@media (min-width:601px) and (max-width:1080px){
 .portrait-grid{display:flex;flex-wrap:wrap;justify-content:center}
 .portrait-grid>*{width:calc((100% - 32px)/3)}
}

/* ---------- Tablet portrait and below ---------- */
@media (max-width:860px){
 /* Compare table becomes one card per decision */
 .purchase-table,.purchase-table tbody,.purchase-table tr,.purchase-table th,.purchase-table td{display:block;width:100%}
 .purchase-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
 .purchase-table{margin:0}
 .purchase-table tr{margin:0 0 14px;padding:18px 20px;background:#fff;border:1px solid var(--line);border-radius:10px}
 .purchase-table th,.purchase-table td{padding:0;border:0;background:none}
 .purchase-table th{display:flex;align-items:center;gap:10px;font-size:1.0625rem;color:var(--ink);padding-bottom:12px;margin-bottom:4px;border-bottom:1px solid var(--line)}
 .purchase-table th svg{width:22px;height:22px;color:var(--blue);flex-shrink:0}
 .purchase-table td{padding-top:12px;font-size:.9375rem}
 .purchase-table td+td{margin-top:12px;border-top:1px dashed var(--line)}
 .purchase-table .mobile-option-label{display:block;font:700 .6875rem/1.4 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--blue);margin-bottom:4px}
 .comparison-table-wrap{overflow:visible}

 /* Reel controls wrap cleanly */
 .reel-feed-toolbar{flex-wrap:wrap}
 .reel-feed-toolbar>span{flex:1 1 100%}
 .reel-feed-toolbar button{min-height:44px;white-space:nowrap}

 /* Enquiry choices on listing pages */
 .property-enquiry-choices .property-intent{flex:1 1 200px;justify-content:center}
}

/* ---------- Phones ---------- */
@media (max-width:600px){
 /* Primary actions span the column */
 .buyer-actions{flex-direction:column}
 .buyer-actions>a,.calc-actions>*,.contact-details .sg-button,.comparison-next .solid-button,.property-enquiry-choices .property-intent,.listing-detail-copy .solid-button,.context-calculator>a{width:100%;justify-content:center;align-self:stretch}
 .calc-actions{flex-direction:column}
 .sg-action-row{flex-direction:column;align-items:stretch;gap:16px}
 .sg-action-row .sg-button{width:100%}
 .sg-action-row .sg-text-link{align-self:center}
 :is(.sg-lead-form,.local-request-form,.contact-grid form,.property-enquiry-form,.local-property-filters) button[type=submit]{width:100%}
 .buyer-scope{margin-block:16px 24px}

 /* Forms: give inputs the width, not the card padding */
 .contact-grid>div:last-child,.local-request-page>div:last-child,.property-enquiry,.calculator-form,.calculator-output{padding:24px 20px}
 .directory-controls{grid-template-columns:1fr}
 .directory-controls button{width:100%}
 .local-property-filters{padding:20px}

 /* Calculator card: border inside the gutter */
 main .calculator-workspace{padding-inline:0!important;margin-inline:var(--gutter)!important;width:auto!important}

 /* Site search: Clear search sits on its own line */
 .discovery-form .search-reset{grid-column:1/-1;justify-self:start}

 /* Readable checklist text */
 .guide-brief label{padding:16px 18px}
 .guide-brief label strong{font-size:.9375rem;line-height:1.45}
 .checklist-groups label{font-size:.9375rem;line-height:1.45;font-weight:500}

 /* About: the fifth portrait centres instead of hanging alone */
 .portrait-grid>:last-child:nth-child(odd){grid-column:1/-1;justify-self:center;width:calc(50% - 8px)}

 /* Footer: two short link columns instead of one long list */
 .footer-top{grid-template-columns:1fr 1fr;gap:40px 20px}
 .footer-brand{grid-column:1/-1}
 .site-footer nav a{padding:9px 0;line-height:1.35}
 .footer-base{margin-top:48px}
 .footer-base span:nth-child(2){flex-wrap:wrap;gap:4px 20px}
 .footer-base a{display:inline-block;padding:8px 0}

 /* Section rhythm a touch tighter on phones */
 .sg-next-step{padding-block:56px}
 .reading-sources,.journal-sources,.source-list,.calculator-notes aside{padding:24px 20px}

 /* Example boxes: heading needs air before its copy */
 .decision-example h2,.decision-note h2{margin-bottom:12px}
}

@media (max-width:340px){
 .footer-top{grid-template-columns:1fr}
 .brand>span{letter-spacing:.1em}
}

/* ===== styles/75-cta.css ===== */
/* ==========================================================================
   Conversion layer (Oct 2026): page-aware prompt (.nudge), inline "Ask Benny"
   card (.cta-inline) and mobile action bar (.cta-sticky).
   Markup: cta-pass.mjs (server) and dist/assets/nudge.js (prompt).
   ========================================================================== */

/* ---------- Inline "Ask Benny" card ---------- */
.cta-inline{display:grid;gap:18px;margin-block:clamp(32px,4vw,48px);padding:clamp(22px,3vw,30px);border:1px solid var(--line);border-radius:12px;background:var(--stone);color:var(--ink-2)}
.reading-copy>.cta-inline{margin-block:8px clamp(32px,4vw,48px)}
.cta-inline p{margin:0}
.cta-inline-kicker{font:700 .75rem/1.4 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--bronze)}
.cta-inline .cta-inline-kicker{margin-bottom:8px}
.cta-inline-title{font:700 clamp(1.1875rem,1.8vw,1.375rem)/1.3 var(--sans);letter-spacing:-.012em;color:var(--ink);text-wrap:balance}
.cta-inline .cta-inline-text{margin-top:6px;font-size:.9375rem;line-height:1.55;color:var(--ink-2)}
.cta-inline-actions{display:flex;flex-wrap:wrap;gap:10px}
.cta-inline-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border:1px solid var(--line-strong);border-radius:6px;background:#fff;color:var(--ink);font:700 .875rem/1 var(--sans);text-decoration:none;transition:border-color .2s,background .2s}
.cta-inline-btn:hover{border-color:var(--navy)}
.cta-inline-btn.cta-inline-primary{background:var(--navy);border-color:var(--navy);color:#fff}
.cta-inline-btn.cta-inline-primary:hover{background:var(--navy-2);border-color:var(--navy-2)}
.cta-inline-btn svg{width:16px;height:16px;flex-shrink:0}
.cta-inline-btn .sg-brand-icon{width:17px;height:17px}
/* Full-width contexts: align with the 1200px content grid (overrides the generic main>aside rhythm rule). */
main>.cta-inline,.journal-article>.cta-inline{width:calc(100% - var(--gutter)*2)!important;max-width:var(--wrap)!important;margin-inline:auto!important;padding:clamp(22px,3vw,30px)!important}
@media (min-width:1081px){main>.cta-inline,.journal-article>.cta-inline,.journal-depth .cta-inline{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px 40px}}
@media (max-width:520px){.cta-inline-actions{display:grid;grid-template-columns:1fr 1fr}.cta-inline-primary{grid-column:1/-1}.cta-inline-btn{padding:0 10px;white-space:nowrap}}

/* ---------- Page-aware prompt ---------- */
.nudge{position:fixed;right:24px;bottom:24px;z-index:70;width:min(372px,calc(100vw - 48px));padding:18px 20px 20px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink-2);box-shadow:0 2px 6px rgba(7,27,51,.08),0 24px 48px -16px rgba(7,27,51,.32);opacity:0;transform:translateY(18px);transition:opacity .35s var(--ease),transform .45s var(--ease)}
.nudge.is-in{opacity:1;transform:none}
.nudge-head{display:flex;align-items:center;gap:12px;margin:0 -8px 12px 0}
.nudge-avatar{display:grid;place-items:center;flex:0 0 40px;height:40px;border-radius:50%;background:var(--navy);color:#fff;font:700 .8125rem/1 var(--sans);letter-spacing:.04em}
.nudge-from{flex:1;margin:0;display:flex;flex-direction:column;font-size:.75rem;line-height:1.35;color:var(--muted)}
.nudge-from strong{font-size:.875rem;color:var(--ink)}
.nudge-close{flex:0 0 44px;width:44px;height:44px;margin:-6px 0 0;padding:0;display:grid;place-items:center;border:0;border-radius:50%;background:transparent;color:var(--muted);font:400 1.625rem/1 var(--sans);cursor:pointer}
.nudge-close:hover{background:var(--stone);color:var(--ink)}
.nudge-title{margin:0 0 6px;text-wrap:pretty;font:700 1.125rem/1.3 var(--sans);letter-spacing:-.01em;color:var(--ink)}
.nudge-message{margin:0 0 16px;font-size:.9375rem;line-height:1.5}
.nudge-actions{display:flex;flex-wrap:wrap;gap:8px}
.nudge-btn{flex:1 1 auto;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 14px;border:1px solid var(--navy);border-radius:6px;font:700 .8125rem/1.1 var(--sans);text-decoration:none;white-space:nowrap;transition:background .2s,border-color .2s}
.nudge-btn svg{width:16px;height:16px;flex-shrink:0}
.nudge-wa{background:var(--navy);color:#fff}
.nudge-wa:hover{background:var(--navy-2);border-color:var(--navy-2)}
.nudge-wa svg{color:#25d366}
.nudge-btn .sg-brand-icon,.nudge-btn .sg-ui-icon{width:16px;height:16px}
.nudge-coffee{background:#fff;color:var(--ink);border-color:var(--line-strong)}
.nudge-coffee:hover{border-color:var(--navy)}
body.menu-open .nudge,body.menu-open .cta-sticky{display:none}

/* ---------- Mobile action bar ---------- */
.cta-sticky{display:none}
@media (max-width:760px){
 .nudge{left:0;right:0;bottom:0;width:auto;max-height:35vh;overflow-y:auto;overscroll-behavior:contain;padding:14px 16px calc(16px + env(safe-area-inset-bottom,0px));border-width:1px 0 0;border-radius:16px 16px 0 0;transform:translateY(100%)}
 .nudge-head{margin-bottom:8px}
 .nudge-avatar{flex-basis:34px;height:34px;font-size:.75rem}
 .nudge-title{font-size:1.0625rem}
 .nudge-message{font-size:.875rem;margin-bottom:12px}
 .nudge-actions{flex-wrap:nowrap}
 .nudge-btn{flex:1 1 0;padding:0 10px;white-space:normal;text-align:center}
 .nudge-wa{flex-grow:1.35}

 .cta-sticky{position:fixed;left:0;right:0;bottom:0;z-index:65;display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) 44px;align-items:stretch;padding:0 0 env(safe-area-inset-bottom,0px);background:var(--navy-deep);box-shadow:0 -8px 24px -12px rgba(7,27,51,.45);animation:cta-rise .3s var(--ease)}
 .cta-sticky a{display:flex;align-items:center;justify-content:center;gap:7px;min-height:52px;padding:0 6px;color:#fff;font:700 .8125rem/1 var(--sans);text-decoration:none;border-right:1px solid rgba(255,255,255,.12)}
 .cta-sticky a svg{width:17px;height:17px;flex-shrink:0}
 .cta-sticky .sg-brand-icon.bi-whatsapp{color:#25d366}
 .cta-sticky a:active{background:rgba(255,255,255,.08)}
 .cta-sticky-close{display:grid;place-items:center;min-height:52px;padding:0;border:0;background:transparent;color:rgba(255,255,255,.7);font:400 1.375rem/1 var(--sans);cursor:pointer}
}
@keyframes cta-rise{from{transform:translateY(100%)}to{transform:none}}
@media (prefers-reduced-motion:reduce){
 .nudge,.nudge.is-in{transition:none;transform:none}
 .nudge:not(.is-in){opacity:1}
 .cta-sticky{animation:none}
}
@media print{.nudge,.cta-sticky,.cta-inline{display:none!important}}

/* Lead-form honeypot (dist/assets/enquiry-context.mjs): invisible to people, filled by bots. */
.enquiry-trap{position:absolute!important;left:-10000px!important;width:1px;height:1px;opacity:0;pointer-events:none}

/* ===== styles/80-refine.css ===== */
/* ---------- Oct 6 client refinement: simpler cards, leaner homepage ---------- */
/* REW-style listing cards: photo first, price, specs, address. Every card identical. */
.listing-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;align-items:stretch}
.listing-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 1px 2px rgba(16,24,40,.06);text-decoration:none;color:inherit;transition:box-shadow .25s,transform .25s var(--ease)}
.listing-card:hover{box-shadow:var(--shadow);transform:translateY(-3px)}
.listing-card .listing-photo{aspect-ratio:4/3;overflow:hidden;background:var(--sand)}
.listing-card .listing-photo img{width:100%;height:100%;object-fit:cover;transform:none}
.listing-card:hover .listing-photo img{transform:scale(1.04)}
.listing-card .listing-info{padding:16px 18px 18px;display:flex;flex-direction:column;gap:4px}
.listing-card .listing-price{font:800 1.375rem/1.1 var(--sans);color:var(--ink);margin:0}
.listing-card .listing-specs{font-size:.875rem;color:var(--ink-2);margin:2px 0 6px}
.listing-card .listing-specs span{text-transform:capitalize}
.listing-card h3{font:600 .9375rem/1.35 var(--sans);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.listing-card .listing-city{font-size:.8125rem;color:var(--muted);margin:0}
.listing-card .tag,.listing-card .listing-agent{display:none}
@media (max-width:1080px){.listing-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.listing-grid{grid-template-columns:1fr}}

/* Hero: one search, two clear actions, four quick paths. */
.hero-center .hero-lead{margin-inline:auto}
.hero-paths{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 22px;margin-top:22px}
.hero-paths a{color:#fff;font-weight:600;font-size:.9375rem;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.45);padding-bottom:2px}
.hero-paths a:hover{border-color:#fff}
.hero-search{max-width:560px}

/* Reels on the homepage: less text, the films do the talking. */
#reels .screening-summary,#reels .screening-note,#reels .screening-guide{display:none}

/* Homepage hero: fewer pieces, centred, evenly tinted. */
.hero-center{min-height:clamp(520px,72svh,720px)}
.hero-center .hero-inner{justify-content:safe center;padding-block:clamp(48px,7vh,88px)}
.hero-center .hero-copy{gap:0}
.hero-center h1{font-size:clamp(2.5rem,5vw,4rem);max-width:16ch;margin-inline:auto}
.hero-center .hero-lead{margin-top:14px;font-size:clamp(1.0625rem,1.4vw,1.25rem)}
.hero-center .hero-search{margin-top:30px}
.hero-center .hero-pills{margin-top:20px;gap:12px}
.hero-center .hero-media::after{background:linear-gradient(180deg,rgba(5,18,36,.45) 0%,rgba(5,18,36,.55) 55%,rgba(5,18,36,.7) 100%)}
.hero-center .hero-media img{object-position:center 45%}
@media (max-width:560px){.hero-center h1{font-size:2.25rem}.hero-center .hero-pills{flex-direction:column;align-items:stretch;width:100%;max-width:340px;margin-inline:auto}.hero-center .hero-pill{justify-content:center}}

/* Tighter rhythm right under the hero. */
.chip-row+.section{padding-top:clamp(40px,5vw,64px)}

/* "How we can help" tiles. */
.path-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.path-tiles a{display:flex;flex-direction:column;gap:6px;padding:24px 22px;background:#fff;border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--ink-2);transition:border-color .2s,box-shadow .2s,transform .2s var(--ease)}
.path-tiles a:hover{border-color:var(--navy);box-shadow:var(--shadow);transform:translateY(-2px)}
.path-tiles strong{font:700 1.125rem/1.25 var(--sans);color:var(--ink)}
.path-tiles strong::after{content:' →';color:var(--blue)}
.path-tiles span{font-size:.9375rem;color:var(--muted)}
@media (max-width:1080px){.path-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.path-tiles{grid-template-columns:1fr}}
.hero-center .hero-lead{max-width:48rem;text-wrap:balance}

/* ===== Round 2: brighter hero, richer cards, tighter rhythm ===== */
/* Bright photo: tint mostly where the text sits so the house still shines. */
.hero-center .hero-media::after{background:radial-gradient(ellipse 70% 60% at 50% 48%,rgba(5,18,36,.62),rgba(5,18,36,.28) 70%,rgba(5,18,36,.18)),linear-gradient(180deg,rgba(5,18,36,.25),rgba(5,18,36,0) 30%,rgba(5,18,36,.35))}
.hero-center .hero-media img{object-position:center 60%}

/* Listing cards: photo-led, city label on the image, icon facts, clear call to action. */
.listing-card{border-radius:14px}
.listing-card .listing-photo{position:relative;aspect-ratio:16/11}
.listing-city-tag{position:absolute;left:12px;top:12px;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.95);color:var(--navy);font:700 .75rem/1 var(--sans);letter-spacing:.02em;box-shadow:0 1px 4px rgba(0,0,0,.18)}
.listing-card .listing-info{padding:18px 20px 20px;gap:10px;flex:1}
.listing-card .listing-price{font-size:1.5rem;letter-spacing:-.015em}
.listing-facts{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;list-style:none;margin:0;padding:0;font-size:.875rem;color:var(--ink-2)}
.listing-facts li{display:inline-flex;align-items:center;gap:6px;margin:0}
.listing-facts svg{color:var(--blue)}
.listing-facts .listing-type{text-transform:capitalize;padding:3px 9px;border-radius:999px;background:var(--stone);font-size:.8125rem}
.listing-card h3{font-size:1rem;color:var(--ink);margin:2px 0 0}
.listing-more{margin-top:auto;padding-top:12px;border-top:1px solid var(--line);font:700 .875rem/1 var(--sans);color:var(--blue)}
.listing-card:hover .listing-more span{margin-left:4px}

/* Section rhythm on the homepage. */
.home-page .section{padding-block:clamp(56px,6vw,88px)}
.home-page main>.hero+.section{padding-top:clamp(48px,5vw,72px)}
.home-page .section-head{margin-bottom:clamp(24px,3vw,36px)}
/* No stacked margin + padding under the hero. */
.home-page main>.hero+.section{margin-top:0}
/* Cards: four across down to 900px, three on small laptops, then two. */
@media (max-width:1080px){.home-page .listing-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.home-page .listing-grid>:nth-child(4){display:none}}
@media (max-width:760px){.home-page .listing-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-page .listing-grid>:nth-child(4){display:flex}}
@media (max-width:560px){.home-page .listing-grid{grid-template-columns:1fr}}

/* ===== Homepage reels: continuous, infinitely looping strip ===== */
.reel-marquee{position:relative;padding-block:clamp(64px,7vw,104px);background:radial-gradient(ellipse 80% 70% at 50% 0%,#0d2a4d 0%,#030a15 70%);color:rgba(255,255,255,.8);overflow:hidden;margin:0!important;max-width:none!important}
.reel-marquee-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px 40px;flex-wrap:wrap;margin-bottom:clamp(28px,3vw,40px)}
.reel-marquee .eyebrow{color:var(--bronze-soft)}
.reel-marquee h2{color:#fff;font-size:clamp(2rem,4.4vw,3.75rem);line-height:1.02;letter-spacing:-.03em;margin:0;max-width:14ch}
.reel-marquee-tools{display:flex;align-items:center;gap:12px}
.reel-insta{color:#fff;font-weight:700;font-size:.9375rem;text-decoration:none;padding:10px 16px;border:1px solid rgba(255,255,255,.25);border-radius:999px}
.reel-insta:hover{background:rgba(255,255,255,.08)}
.reel-pause{min-height:44px;padding:0 18px;border-radius:999px;border:1px solid rgba(255,255,255,.25);background:transparent;color:#fff;font:600 .875rem/1 var(--sans);cursor:pointer}
.reel-pause:hover{background:rgba(255,255,255,.08)}
.reel-track{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;cursor:grab;padding-block:12px 18px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.reel-track::-webkit-scrollbar{display:none}
.reel-track:active{cursor:grabbing}
.reel-track:focus-visible{outline:2px solid var(--bronze-soft);outline-offset:4px}
.reel-row{display:flex;gap:18px;width:max-content;padding-inline:18px}
.reel-tile{position:relative;flex:0 0 auto;width:clamp(210px,19vw,280px);aspect-ratio:9/16;padding:0;border:0;border-radius:18px;overflow:hidden;background:#000;cursor:pointer;color:#fff;text-align:left;box-shadow:0 24px 50px -24px rgba(0,0,0,.9);transition:transform .45s var(--ease),box-shadow .45s}
.reel-tile:hover,.reel-tile:focus-visible{transform:translateY(-6px) scale(1.02);box-shadow:0 32px 60px -22px rgba(0,0,0,.95)}
.reel-tile:focus-visible{outline:3px solid #fff;outline-offset:3px}
.reel-tile img,.reel-tile video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;user-select:none;-webkit-user-drag:none;pointer-events:none}
.reel-tile video{opacity:0;transition:opacity .4s}
.reel-tile.is-playing video{opacity:1}
.reel-tile-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.25) 0%,rgba(0,0,0,0) 28%,rgba(0,0,0,0) 50%,rgba(0,0,0,.82) 100%)}
.reel-tile-play{position:absolute;left:50%;top:50%;width:58px;height:58px;margin:-29px 0 0 -29px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.92);color:var(--navy);box-shadow:0 8px 24px rgba(0,0,0,.35);transition:transform .3s var(--ease),opacity .3s}
.reel-tile-play svg{margin-left:3px}
.reel-tile.is-playing .reel-tile-play{opacity:0;transform:scale(.8)}
.reel-tile-copy{position:absolute;left:16px;right:16px;bottom:16px;display:flex;flex-direction:column;gap:4px}
.reel-tile-topic{align-self:flex-start;padding:4px 9px;border-radius:999px;background:rgba(255,255,255,.16);backdrop-filter:blur(6px);font:700 .6875rem/1.2 var(--sans);letter-spacing:.06em;text-transform:uppercase}
.reel-tile-copy strong{font:800 1.25rem/1.15 var(--sans);letter-spacing:-.01em}
.reel-tile-time{font-size:.8125rem;color:rgba(255,255,255,.75)}
.reel-theatre{border:0;padding:0;background:#000;border-radius:16px;width:min(440px,92vw);max-height:92vh;overflow:visible}
.reel-theatre::backdrop{background:rgba(3,10,21,.9);backdrop-filter:blur(6px)}
.reel-theatre-video{display:block;width:100%;max-height:82vh;aspect-ratio:9/16;border-radius:16px;background:#000}
.reel-theatre-title{margin:12px 4px 0;color:#fff;font-weight:700;text-align:center}
.reel-theatre-close{position:absolute;right:-14px;top:-14px;width:44px;height:44px;border-radius:50%;border:0;background:#fff;color:var(--navy);font-size:1.5rem;line-height:1;cursor:pointer;z-index:2;box-shadow:0 4px 14px rgba(0,0,0,.4)}
@media (max-width:560px){.reel-tile{width:62vw}.reel-marquee-head{align-items:flex-start}.reel-theatre-close{right:6px;top:6px}}
@media (prefers-reduced-motion:reduce){.reel-tile,.reel-tile-play{transition:none}}
.reel-tile-copy strong{color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.6)}

/* ===== Communities grid: fixed rows, so photos never spill out of the section ===== */
.home-page .city-grid{grid-template-rows:repeat(2,clamp(200px,19vw,290px));max-height:none}
@media (max-width:720px){.home-page .city-grid{grid-template-rows:none;grid-auto-rows:180px}}

/* ===== Reviews: four equal cards ===== */
.review-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;align-items:stretch}
.review-card{margin:0;display:flex;flex-direction:column;gap:16px;padding:26px 24px;border-radius:14px;background:#fff;color:var(--ink-2);box-shadow:0 18px 40px -24px rgba(0,0,0,.6)}
.review-stars{color:#f5b301;font-size:1rem;letter-spacing:2px}
.review-card blockquote{margin:0;flex:1;font:500 1rem/1.6 var(--sans);color:var(--ink)}
.review-card figcaption{display:flex;align-items:center;gap:12px;padding-top:16px;border-top:1px solid var(--line);font-size:.8125rem;color:var(--muted)}
.review-card figcaption strong{display:block;color:var(--ink);font-size:.9375rem}
.review-card .home-review-avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff;font:700 .8125rem/1 var(--sans)}
.review-google{display:inline-flex;align-items:center;gap:10px;padding:8px 16px 8px 12px;border-radius:999px;background:#fff;color:var(--ink);font:700 .8125rem/1 var(--sans);text-decoration:none}
.review-google img{height:22px;width:auto}
@media (max-width:1080px){.review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.review-grid{grid-template-columns:1fr}}
.answers-band{padding-block:28px!important;margin-block:0!important;background:#eef4fb;max-width:none!important;border-bottom:1px solid var(--line)}
.answers-band .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px 32px;flex-wrap:wrap}
.answers-band h2{font-size:clamp(1.25rem,2vw,1.625rem);margin:0 0 4px}
.answers-band p:not(.eyebrow){margin:0;color:var(--ink-2)}
.answers-band .eyebrow{margin-bottom:6px}

/* "How we can help" tiles: icon badge, title, line, round arrow; fills navy on hover/tap. Two-up on phones. */
.path-tiles a{position:relative;gap:10px;padding:26px 24px 24px;border-color:#dfe6ee;border-radius:16px;box-shadow:0 1px 2px rgba(11,37,69,.05);transition:background-color .25s ease,border-color .25s ease,box-shadow .25s ease,transform .25s ease}
.path-tiles .path-icon{display:inline-grid;place-items:center;width:52px;height:52px;margin-bottom:6px;border-radius:14px;background:#e8f0fa;color:var(--blue);transition:background-color .25s ease,color .25s ease}
.path-tiles strong::after{content:none}
.path-tiles strong{font-size:1.1875rem}
.path-tiles .path-text{flex:1}
.path-tiles .path-go{display:inline-grid;place-items:center;width:38px;height:38px;margin-top:10px;border-radius:50%;border:1px solid #cfdae6;color:var(--navy);transition:background-color .25s ease,color .25s ease,border-color .25s ease,transform .25s ease}
.path-tiles a:hover,.path-tiles a:focus-visible{background:var(--navy);border-color:var(--navy);box-shadow:0 14px 30px rgba(11,37,69,.18);transform:translateY(-3px)}
.path-tiles a:hover strong,.path-tiles a:focus-visible strong{color:#fff}
.path-tiles a:hover .path-text,.path-tiles a:focus-visible .path-text{color:rgba(255,255,255,.78)}
.path-tiles a:hover .path-icon,.path-tiles a:focus-visible .path-icon{background:rgba(255,255,255,.12);color:#fff}
.path-tiles a:hover .path-go,.path-tiles a:focus-visible .path-go{background:#fff;border-color:#fff;color:var(--navy);transform:translateX(3px)}
@media (max-width:560px){
 .path-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .path-tiles a{padding:18px 16px 16px;gap:6px}
 .path-tiles .path-icon{width:44px;height:44px;border-radius:12px;margin-bottom:4px}
 .path-tiles .path-icon svg{width:22px;height:22px}
 .path-tiles strong{font-size:1.0625rem}
 .path-tiles .path-text{font-size:.8125rem;line-height:1.4}
 .path-tiles .path-go{width:32px;height:32px;margin-top:8px}
}
@media (max-width:340px){.path-tiles{grid-template-columns:1fr}}

/* Mobile top bar: "Coffee with Benny" as a plain link on the left, compact social icons on the right. */
@media (max-width:760px){
 .topbar-inner{justify-content:stretch;min-height:44px}
 .topbar-actions{width:100%;justify-content:space-between;gap:10px}
 .topbar .topbar-coffee{display:inline-flex;align-items:center;gap:7px;padding:0;border:0;background:none;color:var(--navy);font-size:.875rem;line-height:1.2}
 .topbar .topbar-coffee svg{width:17px;height:17px;color:var(--blue)}
 .topbar .social-icons-small{gap:8px}
 .topbar .social-icons-small a{width:30px;height:30px;background:#fff}
 .topbar .social-icons-small .sg-brand-icon{width:15px;height:15px}
}
/* Stronger highlight: solid navy badge with a larger white icon; filled arrow. */
.path-tiles .path-icon{width:58px;height:58px;border-radius:16px;background:linear-gradient(145deg,var(--navy),#1d4f8c);color:#fff;box-shadow:0 8px 18px rgba(11,37,69,.18)}
.path-tiles .path-icon svg{width:30px!important;height:30px!important}
.path-tiles .path-go{background:#e8f0fa;border-color:#e8f0fa;color:var(--blue)}
.path-tiles a:hover .path-icon,.path-tiles a:focus-visible .path-icon{background:#fff;color:var(--navy);box-shadow:none}
@media (max-width:560px){.path-tiles .path-icon{width:50px;height:50px;border-radius:14px}.path-tiles .path-icon svg{width:26px!important;height:26px!important}}

/* First-time buyers page: down payment and closing costs as one tidy card each (consolidate.mjs tidyFirstHome). */
.fh-chapter{padding:clamp(48px,6vw,88px) var(--gutter);scroll-margin-top:90px}
.fh-chapter:nth-of-type(even){background:#f4f7fb}
.fh-chapter-inner{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(28px,4vw,56px);align-items:start}
.fh-copy h2{margin:.2em 0 .35em}
.fh-lead{font-size:1.0625rem;color:var(--muted);margin:0 0 22px;max-width:36rem}
.fh-points{list-style:none;margin:0 0 26px;padding:0;display:grid;gap:12px}
main .fh-points li{display:flex;gap:12px;align-items:flex-start;margin:0;line-height:1.5}
.fh-points svg{flex:none;margin-top:3px;width:22px;height:22px;padding:3px;border-radius:50%;background:#e8f0fa;color:var(--blue)}
.fh-example .gd-block{margin:0;padding:clamp(22px,3vw,30px);background:#fff;border:1px solid #dfe6ee;border-radius:16px;box-shadow:0 10px 28px rgba(11,37,69,.07)}
.fh-sources{margin-top:28px;border-top:1px solid var(--line);padding-top:18px}
.fh-sources summary{cursor:pointer;font-weight:700;color:var(--navy)}
.fh-sources p{font-size:.875rem;color:var(--muted)}
.fh-sources ul{columns:2;column-gap:32px;font-size:.875rem;padding-left:1.1em}
#programs,#homes,#questions{scroll-margin-top:90px}
@media (max-width:860px){.fh-chapter-inner{grid-template-columns:1fr}.fh-sources ul{columns:1}}
.fh-chapter:nth-of-type(even){border-radius:24px}
/* Tiles: arrow in the top-right corner instead of its own row, so cards stay compact and even. */
.path-tiles a{padding-right:72px}
.path-tiles .path-go{position:absolute;top:24px;right:22px;margin:0}
.path-tiles .path-text{flex:0 1 auto}
@media (max-width:560px){.path-tiles a{padding-right:16px}.path-tiles .path-go{top:16px;right:14px}}

/* ===== styles/85-listings.css ===== */
/* Benny's listings (October 7): one listing card everywhere, the home search page, listing pages
   and the on-site MLS® search. Loaded last so it settles earlier card rules. */

/* ---------- Listing card ---------- */
.listing-card{position:relative;display:flex;flex-direction:column;height:100%;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;color:inherit;text-decoration:none;box-shadow:0 1px 2px rgba(16,24,40,.06);transition:box-shadow .25s,transform .25s}
.listing-card:hover{box-shadow:var(--shadow);transform:translateY(-3px)}
.listing-card[hidden]{display:none!important}
.listing-card .listing-photo{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--sand)}
.listing-card .listing-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;scale:1;transition:transform .8s var(--ease,ease)}
.listing-card:hover .listing-photo img{transform:scale(1.04)}
.listing-card .listing-city-tag{position:absolute;left:12px;top:12px;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.94);color:var(--navy);font:700 .75rem/1 var(--sans)}
.listing-photo-count{position:absolute;right:12px;bottom:12px;padding:5px 9px;border-radius:6px;background:rgba(7,27,51,.72);color:#fff;font:600 .75rem/1 var(--sans)}
.listing-card .listing-info{display:flex;flex-direction:column;gap:6px;padding:16px 18px 18px}
.listing-card .listing-price{margin:0;font:800 1.375rem/1.1 var(--sans);letter-spacing:-.01em;color:var(--ink)}
.listing-card .listing-facts{display:flex;flex-wrap:wrap;gap:4px 14px;margin:0;padding:0;list-style:none;color:var(--ink-2);font-size:.875rem}
.listing-card .listing-facts li{display:inline-flex;align-items:center;gap:5px}
.listing-card .listing-facts svg{color:var(--muted)}
.listing-card .listing-address{margin:4px 0 0;font:700 .9375rem/1.35 var(--sans);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.listing-card .listing-area{margin:0;font-size:.8125rem;color:var(--muted)}

/* ---------- Buttons shared by these pages ---------- */
.lx-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 20px;border:1px solid var(--line-strong);border-radius:10px;background:#fff;color:var(--navy);font:700 .9375rem/1 var(--sans);text-decoration:none;cursor:pointer;transition:background .2s,border-color .2s}
.lx-btn:hover{border-color:var(--navy);background:var(--stone)}
.lx-btn-primary{background:var(--navy);border-color:var(--navy);color:#fff}
.lx-btn-primary:hover{background:var(--navy-2);border-color:var(--navy-2)}
.lx-btn svg{width:18px;height:18px;flex:none}

/* ---------- Home search (/property-search/) ---------- */
.lx-search{padding-block:clamp(28px,4vw,48px) clamp(48px,6vw,80px)}
.lx-search-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 24px;margin-bottom:20px}
.lx-search-head h1{margin:0 0 6px;font:800 clamp(1.75rem,3.2vw,2.5rem)/1.1 var(--sans);letter-spacing:-.02em;color:var(--ink)}
.lx-search-head p{margin:0;color:var(--ink-2);font-size:1rem}
.lx-mls-link{font-weight:700;color:var(--blue);text-decoration:none;white-space:nowrap}
.lx-mls-link:hover{text-decoration:underline}
.local-property-filters.lx-filters{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) auto auto;gap:10px;align-items:center;margin:0 0 14px;padding:10px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 1px 2px rgba(16,24,40,.05)}
.lx-filters label{display:block;margin:0}
.lx-filters input,.lx-filters select{width:100%;height:46px;margin:0;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font:500 .9375rem/1 var(--sans)}
.lx-filters input:focus,.lx-filters select:focus{outline:2px solid var(--blue);outline-offset:0;border-color:transparent}
.lx-reset{height:46px;padding:0 12px;border:0;background:none;color:var(--muted);font:600 .875rem/1 var(--sans);cursor:pointer}
.lx-reset:hover{color:var(--ink)}
.lx-count{margin:0 0 14px;color:var(--muted);font-size:.875rem;font-weight:600}
.lx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}
.lx-search .local-no-results:not([hidden]){display:grid;justify-items:center;gap:10px;padding:40px 20px;border:1px dashed var(--line-strong);border-radius:14px;text-align:center}
.lx-search .local-no-results h2{margin:0;font-size:1.25rem}
.lx-search .local-no-results p{margin:0 0 6px;color:var(--ink-2)}
.lx-beyond{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px;margin-top:clamp(32px,4vw,48px);padding:clamp(22px,3vw,32px);border-radius:16px;background:var(--navy);color:#fff}
.lx-beyond h2{margin:0 0 6px;color:#fff;font-size:clamp(1.25rem,2vw,1.5rem)}
.lx-beyond p{margin:0;color:rgba(255,255,255,.82);max-width:52ch}
.lx-beyond-actions{display:flex;flex-wrap:wrap;gap:10px}
.lx-beyond .lx-btn-primary{background:#fff;border-color:#fff;color:var(--navy)}
.lx-beyond .lx-btn:not(.lx-btn-primary){background:transparent;border-color:rgba(255,255,255,.5);color:#fff}

/* ---------- Listing page ---------- */
.lx-detail{padding-block:clamp(18px,3vw,32px) clamp(48px,6vw,80px)}
.lx-crumbs{display:flex;gap:8px;align-items:center;margin-bottom:14px;font-size:.875rem;color:var(--muted)}
.lx-crumbs a{color:var(--blue);font-weight:600;text-decoration:none}
.lx-crumbs a:hover{text-decoration:underline}
.lx-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:10px 24px;margin-bottom:18px}
.lx-head h1{margin:0 0 4px;font:800 clamp(1.625rem,3vw,2.375rem)/1.1 var(--sans);letter-spacing:-.02em;color:var(--ink)}
.lx-head p{margin:0;color:var(--ink-2)}
.lx-price{text-align:right}
.lx-price strong{display:block;font:800 clamp(1.625rem,3vw,2.25rem)/1 var(--sans);letter-spacing:-.015em;color:var(--ink)}
.lx-price span{display:block;margin-top:6px;color:var(--ink-2);font-size:.9375rem}
.lx-detail .lp-gallery{margin-bottom:clamp(20px,3vw,32px)}
.lx-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(24px,4vw,48px);align-items:start}
.lx-main{display:grid;gap:clamp(22px,3vw,32px);min-width:0}
.lx-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1px;margin:0;padding:0;list-style:none;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--line)}
.lx-stats li{display:grid;align-content:start;gap:4px;margin:0;padding:14px 16px;background:#fff}
.lx-stats span{font-size:.8125rem;color:var(--muted)}
.lx-stats strong{font:800 1.125rem/1.2 var(--sans);color:var(--ink)}
.lx-section h2,.lx-enquiry h2{margin:0 0 12px;font:800 1.375rem/1.2 var(--sans);color:var(--ink)}
.lx-section p{margin:0 0 12px;max-width:68ch;color:var(--ink-2);font-size:1.0625rem;line-height:1.7}
.lx-features{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.lx-features li{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;background:var(--stone);color:var(--ink);font-size:.875rem;font-weight:600}
.lx-features svg{color:var(--blue)}
.lx-qa{display:grid;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}
.lx-qa details+details{border-top:1px solid var(--line)}
.lx-qa summary{display:flex;justify-content:space-between;gap:16px;padding:16px 18px;cursor:pointer;font-weight:700;color:var(--ink);list-style:none}
.lx-qa summary::-webkit-details-marker{display:none}
.lx-qa summary::after{content:'+';font-size:1.25rem;line-height:1;color:var(--muted)}
.lx-qa details[open] summary::after{content:'–'}
.lx-qa details p{margin:0;padding:0 18px 16px;color:var(--ink-2)}
.lx-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.lx-links a{display:flex;gap:12px;align-items:flex-start;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink-2);font-size:.875rem;line-height:1.45;text-decoration:none;transition:border-color .2s,box-shadow .2s}
.lx-links a:hover{border-color:var(--navy);box-shadow:var(--shadow)}
.lx-links strong{display:block;margin-bottom:2px;color:var(--ink);font-size:.9375rem}
.lx-links svg{flex:none;width:22px;height:22px;color:var(--blue)}
.lx-enquiry{padding:clamp(20px,3vw,28px);border:1px solid var(--line);border-radius:16px;background:#fff}
.lx-enquiry>p{margin:0 0 16px;color:var(--ink-2)}
.lx-enquiry .property-request{margin:0}
.lx-source{margin:0;color:var(--muted);font-size:.8125rem}
.lx-aside{position:sticky;top:calc(var(--header-h,72px) + 20px);display:grid;gap:10px;padding:22px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:var(--shadow)}
.lx-agent{display:flex;gap:12px;align-items:center}
.lx-agent .lp-avatar{width:52px;height:52px;font-size:1rem}
.lx-agent p{margin:0;color:var(--muted);font-size:.875rem;line-height:1.4}
.lx-agent strong{display:block;color:var(--ink);font-size:1rem}
.lx-agent-price{margin:6px 0 4px;font:800 1.625rem/1 var(--sans);color:var(--ink)}
.lx-agent-note{margin:2px 0 0;text-align:center;color:var(--muted);font-size:.8125rem}
.lx-more{margin-top:clamp(40px,6vw,72px)}
.lx-more-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:16px}
.lx-more-head h2{margin:0;font:800 1.5rem/1.2 var(--sans)}
.lx-more-head a{font-weight:700;color:var(--blue);text-decoration:none}

/* ---------- MLS® search (/mls-search/) ---------- */
.mls-page{padding-block:clamp(24px,3.5vw,44px) clamp(48px,6vw,80px)}
.mls-page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 32px;margin-bottom:18px}
.mls-page-head h1{margin:0 0 6px;font:800 clamp(1.75rem,3.2vw,2.5rem)/1.1 var(--sans);letter-spacing:-.02em}
.mls-page-head p{margin:0;max-width:62ch;color:var(--ink-2)}
.mls-tabs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
.mls-tabs [role=tab]{min-height:42px;padding:0 16px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink-2);font:700 .875rem/1 var(--sans);cursor:pointer}
.mls-tabs [role=tab][aria-selected=true]{background:var(--navy);border-color:var(--navy);color:#fff}
.mls-tab-link{margin-left:auto;font-weight:700;color:var(--blue);text-decoration:none;font-size:.875rem}
.mls-frame-wrap{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;box-shadow:var(--shadow)}
.mls-frame-wrap iframe{display:block;width:100%;height:min(1500px,max(820px,calc(100vh - 140px)));border:0}
.mls-help{margin:14px 0 0;color:var(--ink-2);font-size:.9375rem}
.mls-help a{color:var(--blue);font-weight:600}

@media (max-width:1000px){
 .lx-layout{grid-template-columns:1fr}
 .lx-aside{position:static}
 .lx-links{grid-template-columns:1fr}
}
@media (max-width:760px){
 .local-property-filters.lx-filters{grid-template-columns:1fr 1fr}
 .lx-filters label:first-child{grid-column:1/-1}
 .lx-filters button[type=submit]{grid-column:1/-1}
 .lx-reset{grid-column:1/-1;height:36px}
 .lx-price{text-align:left}
 .mls-tab-link{margin-left:0}
 .mls-frame-wrap iframe{height:1100px}
}

/* Save control sits at the end of the breadcrumb row; the enquiry form uses the full card width. */
.lx-crumbs .page-discovery-tools{margin-left:auto}
.lx-crumbs .save-item{min-height:36px;padding:0 14px;border:1px solid var(--line-strong);border-radius:999px;background:#fff;color:var(--navy);font:700 .8125rem/1 var(--sans);cursor:pointer}
.lx-crumbs .save-item[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:#fff}
.property-enquiry.lx-enquiry{display:block;grid-template-columns:none;max-width:none;margin:0}
.lx-enquiry .local-request-form{max-width:none;width:100%;margin:0;padding:0;border:0;box-shadow:none;background:none}
.lx-enquiry .local-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}
.lx-enquiry .local-form-grid .form-wide{grid-column:1/-1}
.lx-enquiry .local-form-grid input,.lx-enquiry .local-form-grid select,.lx-enquiry .local-form-grid textarea{width:100%;max-width:none}
@media (max-width:620px){.lx-enquiry .local-form-grid{grid-template-columns:1fr}}

/* These pages open straight onto results: no section margin from the editorial page rhythm. */
main>.lx-search,main>.lx-detail,main>.mls-page{margin-block:0!important}
.lx-filters .lx-reset{min-height:0;border:0;background:none;box-shadow:none;color:var(--muted);text-decoration:underline;text-underline-offset:3px}

/* ---------- Home search: quick searches, toolbar, alert ---------- */
.lx-quick{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.lx-quick button{min-height:36px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink-2);font:600 .8125rem/1 var(--sans);cursor:pointer}
.lx-quick button:hover{border-color:var(--navy);color:var(--navy)}
.lx-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin:0 0 14px}
.lx-toolbar .lx-count{margin:0 auto 0 0}
.lx-alert{display:inline-flex;align-items:center;gap:7px;color:var(--blue);font:700 .875rem/1.2 var(--sans);text-decoration:none}
.lx-alert:hover{text-decoration:underline}
.lx-sort{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font:600 .8125rem/1 var(--sans)}
.lx-sort select{height:36px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font:600 .8125rem/1 var(--sans)}

/* ---------- Homes on guide pages ---------- */
main>.homes-strip{margin:0!important;max-width:none!important;width:100%;padding-inline:0;padding-block:clamp(36px,5vw,64px);background:var(--stone);border-block:1px solid var(--line)}
.homes-strip-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:10px 24px;margin-bottom:20px}
.homes-strip-head h2{margin:2px 0 6px;font:800 clamp(1.5rem,2.6vw,2rem)/1.15 var(--sans);letter-spacing:-.015em;color:var(--ink)}
.homes-strip-head p{margin:0;max-width:62ch;color:var(--ink-2)}
.homes-strip-all{font-weight:700;color:var(--blue);text-decoration:none;white-space:nowrap}
.homes-strip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px}
.homes-strip-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.lx-empty-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px}

/* "Choose your kind of home": a contained photo beside the guide cards, never a full-height portrait. */
.home-type-selector{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(16px,3vw,32px);align-items:stretch;margin-top:20px}
.home-type-selector figure{margin:0;border-radius:var(--radius);overflow:hidden;min-height:240px;max-height:420px}
.home-type-selector figure img{width:100%;height:100%;object-fit:cover;display:block}
.home-type-selector nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-content:start}
.home-type-selector nav a{width:100%;justify-content:space-between}
.home-type-selector nav a h3{margin:0;font-size:1.05rem}
.home-type-selector nav a p{margin:4px 0 0;font-size:.875rem;color:var(--muted)}
.home-type-selector nav a>span{margin-top:10px;font-weight:700;font-size:.8125rem;color:var(--navy)}
@media (max-width:760px){.home-type-selector{grid-template-columns:1fr}.home-type-selector figure{aspect-ratio:16/9;min-height:0;max-height:none}.home-type-selector nav{grid-template-columns:1fr}}

/* ===== styles/88-search-ui.css ===== */
/* One search pattern across the site, built for a thumb first:
   a single rounded field with the search button inside it, filters as one compact row,
   shortcuts as a single swipeable chip row, and secondary actions as small links.
   No stacked full-width buttons and no boxes drawn inside boxes. */

/* ---------- Homepage hero ---------- */
main .hero .hero-search{display:flex;align-items:center;gap:6px;width:min(100%,600px);height:60px;padding:6px 6px 6px 22px;border-radius:999px;background:#fff;box-shadow:0 18px 44px -14px rgba(0,0,0,.5)}
main .hero .hero-search input[type=search]{flex:1;min-width:0;height:48px;min-height:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;outline:none;font:500 1rem/1 var(--sans)!important;color:var(--ink)}
main .hero .hero-search button[type=submit]{width:48px;height:48px;flex:none;border-radius:50%}
.hero-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px}
.hero-chips a{display:inline-flex;align-items:center;min-height:36px;padding:0 16px;border:1px solid rgba(255,255,255,.3);border-radius:999px;background:rgba(7,27,51,.5);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;font:600 .8125rem/1 var(--sans);text-decoration:none;white-space:nowrap;transition:background .2s,border-color .2s}
.hero-chips a:hover{background:rgba(7,27,51,.8);border-color:rgba(255,255,255,.6)}
@media (max-width:560px){
 .hero-full{min-height:min(560px,78svh)}
 main .hero .hero-search{height:56px;padding-left:18px}
 main .hero .hero-search button[type=submit]{width:44px;height:44px}
 .hero-chips{gap:6px;margin-top:14px}
 .hero-chips a{min-height:34px;padding:0 12px;font-size:.78rem}
}

/* ---------- Homes for sale (/property-search/) ---------- */
.local-property-filters.lx-filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 12px;padding:0;border:0;border-radius:0;background:none;box-shadow:none}
.lx-q{display:flex;align-items:center;gap:6px;flex:1 1 360px;height:54px;padding:5px 5px 5px 20px;border:1px solid var(--line-strong);border-radius:999px;background:#fff;box-shadow:0 4px 14px -8px rgba(7,27,51,.25);transition:border-color .2s,box-shadow .2s}
.lx-q:focus-within{border-color:var(--navy);box-shadow:0 0 0 3px rgba(31,94,170,.16)}
.lx-q label{flex:1;min-width:0}
.lx-filters .lx-q input{width:100%;height:42px;min-height:0;padding:0;border:0!important;border-radius:0;background:transparent;box-shadow:none;outline:none!important;font:500 1rem/1 var(--sans)}
.local-property-filters .lx-q-go{display:grid;place-items:center;flex:none;width:44px;height:44px;min-height:0;margin:0;padding:0;border:0;border-radius:50%;background:var(--navy);color:#fff;cursor:pointer}
.local-property-filters .lx-q-go:hover{background:var(--blue);border:0}
.lx-selects{display:flex;gap:8px;flex:0 1 auto}
.lx-selects label{margin:0}
.lx-filters .lx-selects select{height:44px;padding:0 34px 0 16px;border:1px solid var(--line-strong);border-radius:999px;-webkit-appearance:none;appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%23071b33' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 14px center/11px;color:var(--ink);font:600 .875rem/1 var(--sans);cursor:pointer}
.lx-filters .lx-selects select:focus{outline:2px solid var(--blue);outline-offset:1px;border-color:var(--line-strong)}
.lx-quick{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.lx-quick button{flex:none;white-space:nowrap}
.lx-toolbar{display:flex;flex-wrap:nowrap;align-items:center;gap:12px;margin:0 0 14px;padding-top:12px;border-top:1px solid var(--line)}
.lx-toolbar .lx-count{margin:0;font:700 .9375rem/1.2 var(--sans);color:var(--ink)}
.lx-toolbar .lx-reset{height:auto;min-height:0;padding:0;border:0;background:none;color:var(--muted);font:600 .8125rem/1 var(--sans);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.lx-toolbar .lx-alert{margin-left:auto;white-space:nowrap}
.lx-search-head{margin-bottom:18px}

@media (max-width:700px){
 .lx-search{padding-top:20px}
 .lx-search-head{display:block;margin-bottom:16px}
 .lx-search-head h1{font-size:1.625rem;margin-bottom:4px}
 .lx-search-head p{font-size:.9375rem}
 .lx-mls-link{display:inline-block;margin-top:6px;font-size:.875rem}
 .local-property-filters.lx-filters{gap:8px;margin-bottom:10px}
 .lx-q{flex-basis:100%;height:52px;padding-left:18px}
 .lx-selects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;flex:1 1 100%}
 .lx-filters .lx-selects select{width:100%;height:40px;padding:0 24px 0 12px;background-position:right 10px center;background-size:10px;font-size:.8125rem}
 /* Shortcuts swipe sideways in one line instead of wrapping into a wall of buttons. */
 .lx-quick{flex-wrap:nowrap;overflow-x:auto;margin:0 -20px 14px;padding:2px 20px;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 20px,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,transparent 0,#000 20px,#000 calc(100% - 28px),transparent)}
 .lx-quick::-webkit-scrollbar{display:none}
 .lx-quick button{min-height:34px;padding:0 13px}
 .lx-toolbar{gap:10px}
 .lx-toolbar .lx-alert{font-size:.8125rem}
}

/* ---------- Site search (/search/) ---------- */
.discovery-heading{display:block}
.discovery-heading h1{margin:0 0 6px;font:800 clamp(1.625rem,3.2vw,2.5rem)/1.1 var(--sans);letter-spacing:-.02em}
.discovery-heading p{margin:0;color:var(--ink-2)}
.discovery-query-row{height:56px;padding:5px 5px 5px 0;border:1px solid var(--line-strong);border-radius:999px;background:#fff;box-shadow:0 4px 14px -8px rgba(7,27,51,.25)}
.discovery-query-row:focus-within{border-color:var(--navy);box-shadow:0 0 0 3px rgba(31,94,170,.16)}
.discovery-query-row svg{left:20px}
main .discovery-query-row input{height:44px;min-height:0!important;padding-left:48px!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;outline:none!important;font-size:1rem!important}
main .discovery-query-row button{flex:none;height:44px;min-height:0!important;margin:0!important;padding:0 20px;border-radius:999px!important}
/* Only offer "Clear search" once there is something to clear. */
.discovery-form:has(#discovery-query:placeholder-shown) .search-reset{display:none}
@media (max-width:700px){
 .discovery-categories{flex-wrap:nowrap;overflow-x:auto;margin-inline:-20px;padding:2px 20px;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 20px,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,transparent 0,#000 20px,#000 calc(100% - 28px),transparent)}
 .discovery-categories::-webkit-scrollbar{display:none}
 .discovery-categories button{flex:none;white-space:nowrap;min-height:36px;padding:0 14px;font-size:.8125rem}
 .discovery-popular{flex-wrap:nowrap;overflow-x:auto;margin-inline:-20px;padding:2px 20px;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 20px,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,transparent 0,#000 20px,#000 calc(100% - 28px),transparent)}
 .discovery-popular::-webkit-scrollbar{display:none}
 .discovery-popular a{flex:none;white-space:nowrap;min-height:38px;font-size:.8125rem}
}

/* Older generic form rules (full-width buttons, "first field spans the row") must not reach the new search row. */
form.local-property-filters.lx-filters button.lx-q-go{width:44px!important;height:44px;min-height:0!important;flex:none;margin:0!important;padding:0!important;border:0!important;border-radius:50%!important;background:var(--navy);color:#fff}
form.local-property-filters.lx-filters button.lx-q-go:hover{background:var(--blue)}
form.local-property-filters.lx-filters .lx-q label{grid-column:auto;flex:1 1 auto;width:auto;min-width:0}
form.local-property-filters.lx-filters .lx-selects label{grid-column:auto!important;width:auto;min-width:0}

/* ---------- Homes for sale: two views on one page ---------- */
.lx-search-head h1{margin:0 0 4px}
.lx-views{display:inline-flex;gap:4px;margin:0 0 18px;padding:4px;border-radius:999px;background:var(--stone,#eef1f5);border:1px solid var(--line)}
.lx-views [role=tab]{display:inline-flex;align-items:center;gap:8px;min-height:40px;margin:0;padding:0 18px;border:0;border-radius:999px;background:transparent;color:var(--ink-2);font:700 .875rem/1 var(--sans);cursor:pointer;white-space:nowrap;transition:background .2s,color .2s,box-shadow .2s}
.lx-views [role=tab][aria-selected=true]{background:#fff;color:var(--navy);box-shadow:0 1px 3px rgba(7,27,51,.14),0 4px 12px -6px rgba(7,27,51,.2)}
.lx-views [role=tab]:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.lx-views-count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--navy);color:#fff;font-size:.75rem}
.lx-views [aria-selected=false] .lx-views-count{background:rgba(7,27,51,.12);color:var(--ink-2)}
.lx-panel[hidden]{display:none!important}

/* MLS® view: ask Benny (left) and search it yourself (right), the search below on desktop. */
.mls-paths{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:20px;margin-bottom:20px}
.mls-ask,.mls-browse{padding:clamp(18px,2.4vw,26px);border:1px solid var(--line);border-radius:16px;background:#fff}
.mls-ask h3,.mls-browse h3{margin:0 0 6px;font:800 1.2rem/1.25 var(--sans);letter-spacing:-.01em;color:var(--ink)}
.mls-ask>p,.mls-browse-note{margin:0 0 16px;color:var(--ink-2);font-size:.9375rem}
.mls-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}
.mls-field{display:grid;gap:6px;margin:0}
.mls-field span{font:700 .75rem/1 var(--sans);letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
main .mls-field select{width:100%;height:46px;min-height:0;margin:0;padding:0 30px 0 12px;border:1px solid var(--line-strong);border-radius:12px;-webkit-appearance:none;appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%23071b33' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 12px center/10px;color:var(--ink);font:600 .9375rem/1 var(--sans)}
.mls-ask-actions{display:flex;flex-wrap:wrap;gap:10px}
.mls-ask-actions .lx-btn{min-height:46px}
.lx-btn-wa{display:inline-flex;align-items:center;gap:8px}
.lx-btn-wa svg{width:18px;height:18px}
.mls-browse-list{display:grid;gap:8px}
.mls-browse-list button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:60px;margin:0;padding:10px 14px 10px 16px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);text-align:left;cursor:pointer;transition:border-color .2s,background .2s}
.mls-browse-list button span{display:grid;gap:3px}
.mls-browse-list strong{font:700 .9375rem/1.2 var(--sans)}
.mls-browse-list small{font-size:.8125rem;color:var(--muted);line-height:1.3}
.mls-browse-list button svg{flex:none;color:var(--muted)}
.mls-browse-list button:hover{border-color:var(--navy)}

/* ---------- The merged first-home guide ---------- */
.guide-chapters{position:sticky;top:calc(var(--header-h,68px) + env(safe-area-inset-top,0px));z-index:20;background:rgba(250,250,248,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.guide-chapters-inner{display:flex;gap:6px;max-width:1200px;margin:0 auto;padding:10px 20px;overflow-x:auto;scrollbar-width:none}
.guide-chapters-inner::-webkit-scrollbar{display:none}
.guide-chapters a{flex:none;display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink-2);font:600 .8125rem/1 var(--sans);text-decoration:none;white-space:nowrap}
.guide-chapters a:hover,.guide-chapters a[aria-current=true]{border-color:var(--navy);color:var(--navy)}
.guide-chapter-head{scroll-margin-top:64px;padding-top:clamp(40px,6vw,72px);border-top:1px solid var(--line)}
.guide-chapter-head .eyebrow{margin:0 0 8px}
.guide-chapter-head h2{margin:0 0 10px;font:800 clamp(1.75rem,3.4vw,2.6rem)/1.08 var(--sans);letter-spacing:-.02em}
.guide-chapter-head>p:last-child{max-width:62ch;margin:0;color:var(--ink-2);font-size:1.0625rem}
#plan,#questions{scroll-margin-top:64px}

@media (max-width:760px){
 .lx-views{display:flex;width:100%}
 .lx-views [role=tab]{flex:1;justify-content:center;padding:0 10px;font-size:.8125rem}
 .mls-paths{grid-template-columns:1fr;gap:14px}
 .mls-ask,.mls-browse{padding:18px;border-radius:14px}
 .mls-fields{grid-template-columns:1fr 1fr;gap:8px}
 main .mls-field select{height:44px;font-size:.9375rem}
 .mls-ask-actions{display:grid;grid-template-columns:1fr}
 .mls-ask-actions .lx-btn{justify-content:center;width:100%}
 .guide-chapters-inner{padding:8px 16px}
}
html.mls-sheet-open,html.mls-sheet-open body{overflow:hidden}
.mls-ask-actions .lx-btn{display:inline-flex;align-items:center;justify-content:center;height:46px;min-height:0;padding:0 20px;line-height:1}
.mls-ask-actions{align-items:center}
.mls-ask-actions .lx-btn,.mls-ask-actions button[type=submit]{margin:0!important}
.lx-search .lx-search-head{display:block}
.lx-search .lx-search-head p{margin:0}

/* The board's MLS® search never sits on the page. It opens on request in its own window over the page
   (full screen on a phone, a large panel on a computer) with a Back bar, so visitors stay on the site. */
.mls-sheet{display:none}
.mls-sheet.is-open{display:flex;flex-direction:column;position:fixed;inset:0;z-index:1000;background:#fff;padding-top:env(safe-area-inset-top,0px)}
.mls-sheet-bar{display:flex;align-items:center;gap:8px;min-height:56px;padding:0 8px;background:var(--navy);color:#fff}
.mls-sheet-close{display:inline-flex;align-items:center;gap:4px;min-height:44px;margin:0;padding:0 10px;border:0;background:none;color:#fff;font:700 .9375rem/1 var(--sans);cursor:pointer}
.mls-sheet-close svg{transform:rotate(180deg)}
.mls-sheet-title{flex:1;margin:0;overflow:hidden;color:#fff;font:700 .9375rem/1.2 var(--sans);text-align:center;white-space:nowrap;text-overflow:ellipsis}
.mls-sheet-wa{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;color:#fff}
.mls-sheet-wa svg{width:22px;height:22px}
.mls-sheet-tip{margin:0;padding:10px 16px;background:#f3f6fa;border-bottom:1px solid var(--line);color:var(--ink-2);font-size:.8125rem;line-height:1.4}
.mls-sheet .mls-frame-wrap{flex:1;min-height:0;background:#fff}
.mls-sheet iframe{display:block;width:100%;height:100%;border:0}
.mls-sheet .mls-help{margin:0;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);color:var(--ink-2);font-size:.8125rem}
@media (min-width:761px){
 .mls-sheet.is-open{inset:24px;max-width:1180px;margin:0 auto;padding-top:0;border-radius:16px;overflow:hidden;box-shadow:0 0 0 100vmax rgba(7,27,51,.55),0 30px 80px -20px rgba(0,0,0,.5)}
 .mls-sheet .mls-tip-phone{display:none}
}
/* Without the search on the page, the two cards sit side by side at equal height. */
.mls-paths{align-items:stretch;margin-bottom:0}

/* ---------- All MLS® homes from the CREA DDF® feed ---------- */
.mls-live[hidden]{display:none!important}
.mls-filters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:0 0 16px}
.mls-toolbar{justify-content:space-between}
.mls-powered{display:inline-flex;align-items:center;flex:none}
.mls-powered img{display:block;width:96px;height:auto}
.mls-grid[aria-busy=true]{opacity:.55;transition:opacity .2s}
.listing-brokerage{margin:6px 0 0;font-size:.75rem;line-height:1.35;color:var(--muted)}
.mls-no-photo{display:grid;place-items:center;width:100%;aspect-ratio:4/3;background:#eef1f5;color:var(--muted);font-size:.875rem}
.mls-more-wrap{display:flex;justify-content:center;margin:20px 0 0}
.mls-more[hidden]{display:none}
.mls-empty{margin:8px 0 0;padding:28px 20px;border:1px dashed var(--line-strong);border-radius:14px;text-align:center;color:var(--ink-2)}
.mls-retry{margin-left:6px;padding:0;border:0;background:none;color:var(--blue);font:inherit;font-weight:700;text-decoration:underline;cursor:pointer}
.mls-legal{max-width:90ch;margin:28px 0 0;font-size:.75rem;line-height:1.55;color:var(--muted)}
.mls-legal a{color:inherit}
/* With live listings, the request form and the board search move below the homes as "Can't find it?". */
#mls.is-live .mls-paths{margin-top:36px}

/* ---------- One MLS® listing ---------- */
.mls-detail .lx-head h1{margin:0 0 4px}
.mls-detail-loading{font:700 1.25rem/1.3 var(--sans);color:var(--muted)}
.mls-gallery{display:flex;gap:8px;margin:18px 0 22px;overflow-x:auto;scroll-snap-type:x mandatory;border-radius:16px;scrollbar-width:thin}
.mls-gallery figure{position:relative;flex:0 0 min(100%,760px);margin:0;scroll-snap-align:start}
.mls-gallery img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;background:#eef1f5}
.mls-gallery figcaption{position:absolute;right:10px;bottom:10px;padding:4px 9px;border-radius:999px;background:rgba(7,27,51,.72);color:#fff;font:600 .75rem/1 var(--sans)}
.mls-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(20px,4vw,48px);align-items:start}
.mls-detail-main>.lx-stats,.mls-detail-main>.lx-section{margin-bottom:clamp(22px,3vw,32px)}
.mls-detail-aside{display:grid;gap:10px;padding:20px;border:1px solid var(--line);border-radius:16px;background:#fff;position:sticky;top:calc(var(--header-h) + 16px)}
.mls-detail-aside p{margin:0;color:var(--ink-2);font-size:.9375rem}
.mls-detail-aside .lx-aside-price{font:800 1.5rem/1.1 var(--sans);color:var(--ink)}
.mls-detail-aside .lx-btn{justify-content:center;width:100%}
.mls-brokerage{margin:22px 0 10px;font-size:.9375rem;color:var(--ink)}
.mls-powered-detail img{width:125px}
.terms-body{max-width:72ch}
.terms-body h2{margin:28px 0 8px;font:800 1.25rem/1.25 var(--sans)}
.terms-body p{color:var(--ink-2)}
@media (max-width:900px){.mls-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.mls-detail-grid{grid-template-columns:1fr}.mls-detail-aside{position:static}}
@media (max-width:760px){
 .mls-filters{display:flex;gap:8px;overflow-x:auto;margin:0 -20px 14px;padding:2px 20px;scrollbar-width:none}
 .mls-filters::-webkit-scrollbar{display:none}
 .mls-filters .mls-field{flex:0 0 auto;min-width:128px}
 .mls-gallery{margin-inline:-20px;border-radius:0;padding-inline:20px;scroll-padding-inline:20px}
 .mls-gallery figure{flex-basis:88%}
}
.mls-legal-next{margin-top:8px}
.mls-powered-text{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;border:1px solid #d52b1e;border-radius:6px;color:#d52b1e;font:600 .75rem/1 var(--sans);white-space:nowrap}
.mls-powered-text b{font-weight:800}
.mls-toolbar .mls-powered{margin-left:auto}

/* "Search all MLS® listings" sits below Benny's homes on the same page. */
.lx-mls{margin-top:clamp(40px,6vw,64px);padding-top:clamp(28px,4vw,40px);border-top:1px solid var(--line);scroll-margin-top:calc(var(--header-h) + 12px)}
.mls-section-head{margin:0 0 18px}
.mls-section-head h2{margin:0 0 6px;font:800 clamp(1.5rem,2.8vw,2rem)/1.15 var(--sans);letter-spacing:-.02em;color:var(--ink)}
.mls-section-head p{margin:0;color:var(--ink-2)}
.lx-mls-jump{white-space:nowrap;font-weight:700;color:var(--blue);text-decoration:none}
.lx-mls-jump:hover{text-decoration:underline}
.mls-live-head{margin:0 0 14px}
.mls-live-head h3{margin:0 0 4px;font:800 clamp(1.2rem,2vw,1.45rem)/1.2 var(--sans)}
.mls-live-head p{margin:0;color:var(--ink-2);font-size:.9375rem}
.mls-hero-photo{margin:18px 0 22px;border-radius:16px;overflow:hidden;background:#eef1f5}
.mls-hero-photo img{display:block;width:100%;max-height:560px;object-fit:cover}
@media (max-width:760px){.mls-hero-photo{margin-inline:-20px;border-radius:0}}

/* ===== styles/90-team-listings.css ===== */
/* Oct 11 client changes: brand line + slogan, MLS® filters with sub-areas and $50k price steps,
   the Stone Group Real Estate Team's take on each listing, the listings sign-up prompt, presales by area. */

/* Brand: "Stone Group" with "Real Estate Team" and the slogan under the logo */
.brand>span .brand-team{display:block;margin-top:4px;font:700 .625rem/1 var(--sans);letter-spacing:.16em;color:var(--blue);font-style:normal}
.brand>span .brand-slogan{font:500 .625rem/1.2 var(--sans);letter-spacing:.02em;text-transform:none;margin-top:4px;opacity:.75}
.brand-light>span .brand-team{color:var(--bronze-soft)}
@media (max-width:560px){.site-header .brand>span .brand-slogan{display:block;font-size:.5625rem}.brand>span .brand-team{font-size:.5625rem;letter-spacing:.12em}}

/* MLS® filters: six fields, the area select a little wider */
.mls-filters{grid-template-columns:1.6fr repeat(5,minmax(0,1fr))}
@media (max-width:900px){.mls-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.mls-filters .mls-field-area{grid-column:1/-1}}
@media (max-width:760px){.mls-filters .mls-field-area{min-width:240px}}

/* The Stone Group Real Estate Team's take */
.sg-take{background:var(--stone);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(20px,3vw,32px)}
.sg-take-kicker,.sg-signup-kicker{font:700 .6875rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--blue);margin:0 0 10px}
.sg-take h2{margin-top:0}
.sg-take dl{display:grid;gap:0;margin:18px 0 0}
.sg-take dl>div{display:grid;grid-template-columns:minmax(160px,210px) 1fr;gap:6px 24px;padding:14px 0}
.sg-take dl>div+div{border-top:1px solid var(--line)}
.sg-take dt{font-weight:700;color:var(--ink);line-height:1.6}
.sg-take dd{margin:0;max-width:62ch;color:var(--ink-2);line-height:1.6}
.sg-take .sg-take-note{max-width:none;margin:6px 0 0;padding-top:16px;border-top:1px solid var(--line);font-size:.8125rem;line-height:1.55;color:var(--muted)}
@media (max-width:640px){.sg-take dl>div{grid-template-columns:1fr}}

/* Sign-up tile in the MLS® grid and the sign-up dialog */
.sg-signup-tile{justify-content:center;gap:10px;padding:28px 24px;background:var(--navy);color:#fff;border-color:var(--navy)}
.sg-signup-tile h3{margin:0;color:#fff;font-size:1.375rem}
.sg-signup-tile p{margin:0;color:#d9e4f0}
.sg-signup-tile .sg-signup-kicker{color:var(--bronze-soft)}
.sg-signup-tile .lx-btn{align-self:flex-start;margin-top:8px;background:#fff;color:var(--navy);border-color:#fff}
.sg-signup{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;padding:16px}
.sg-signup[hidden]{display:none}
.sg-signup-open{overflow:hidden}
.sg-signup-backdrop{position:absolute;inset:0;background:rgba(7,27,51,.6)}
.sg-signup-card{position:relative;width:min(480px,100%);max-height:calc(100dvh - 32px);overflow:auto;background:#fff;border-radius:14px;padding:clamp(22px,4vw,34px);box-shadow:var(--shadow)}
.sg-signup-card h2{margin:0 0 8px;font-size:1.5rem}
.sg-signup-lead{margin:0 0 18px;color:var(--ink-2)}
.sg-signup-x{position:absolute;top:10px;right:12px;width:40px;height:40px;border:0;background:none;font-size:1.75rem;line-height:1;color:var(--muted);cursor:pointer}
.sg-signup-form{display:grid;gap:12px}
.sg-signup-form label{display:grid;gap:6px;font:600 .8125rem/1.2 var(--sans);color:var(--ink)}
.sg-signup-form input,.sg-signup-form select{height:46px;padding:0 12px;border:1px solid var(--line-strong);border-radius:10px;font:500 1rem var(--sans);background:#fff;color:var(--ink)}
.sg-signup-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}
.sg-signup-later{border:0;background:none;color:var(--muted);text-decoration:underline;cursor:pointer;padding:6px;font:inherit}
.sg-signup-error{margin:0;color:#b42318;font-size:.875rem}
.sg-signup-fine{margin:0;font-size:.75rem;color:var(--muted)}
@media (max-width:480px){.sg-signup-actions{grid-template-columns:1fr}}

/* Presales by area (/presales/) */
.presale-areas{padding:var(--section) var(--gutter);background:var(--stone);border-radius:var(--radius)}
.presale-areas-inner{width:100%}
.presale-areas header{max-width:720px;margin-bottom:24px}
.presale-areas header h2{margin:0 0 10px}
.presale-area-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:32px}
.presale-area-tabs a{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border:1px solid var(--line-strong);border-radius:999px;background:#fff;text-decoration:none;color:var(--ink);font-weight:600;font-size:.875rem}
.presale-area-tabs a small{color:var(--muted);font-weight:500}
.presale-area-tabs a span{background:var(--sand);border-radius:999px;padding:2px 8px;font-size:.75rem}
.presale-area-tabs a:hover{border-color:var(--blue);color:var(--blue)}
.presale-area{margin-bottom:36px;scroll-margin-top:calc(var(--header-h) + 16px)}
.presale-area h3{margin:0 0 14px;font-size:1.375rem}
.presale-area h3 small{font-size:.8125rem;color:var(--muted);font-weight:500}
.presale-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
@media (max-width:1000px){.presale-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.presale-grid{grid-template-columns:1fr}}
.presale-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px}
.presale-card-type{margin:0 0 6px;font:700 .6875rem/1.2 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--blue)}
.presale-card h4{margin:0;font-size:1.125rem}
.presale-card-dev{margin:2px 0 10px;color:var(--muted);font-size:.875rem}
.presale-card ul{margin:0 0 14px;padding-left:18px;color:var(--ink-2);font-size:.875rem;line-height:1.6}
.presale-card-ask{margin-top:auto;font-weight:700;color:var(--navy);font-size:.875rem}
.presale-note{font-size:.8125rem;color:var(--muted);max-width:820px}

/* Team cards on /about/: a role line under each name; "Read bio" opens the bio in a centred panel (team.mjs, stone.js). */
.person-portrait figcaption > p{margin:4px 0 0;font-size:.8125rem;color:var(--blue)}
.person-bio-open{margin-top:12px;padding:0 0 4px;border:0;border-bottom:1px solid currentColor;background:none;cursor:pointer;font:600 .75rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--navy)}
.person-bio-open:hover{color:var(--blue)}
.bio-dialog{width:min(640px,calc(100vw - 32px));max-height:min(86vh,760px);padding:0;border:0;border-radius:6px;background:var(--paper,#fff);color:var(--ink);box-shadow:0 40px 80px -30px rgba(6,22,43,.55);overflow:auto}
.bio-dialog::backdrop{background:rgba(6,22,43,.55);backdrop-filter:blur(4px)}
.bio-dialog-head{position:sticky;top:0;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:28px 32px 22px;background:var(--navy-deep);color:#fff}
.bio-dialog-head h2{margin:6px 0 0;font:700 clamp(1.5rem,3vw,2rem)/1.1 var(--sans);color:#fff}
.bio-role{margin:0;font:600 .75rem/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:#9cc4ef}
.bio-close{flex:none;width:40px;height:40px;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:none;color:#fff;font-size:1.5rem;line-height:1;cursor:pointer}
.bio-close:hover{background:#fff;color:var(--navy-deep)}
.bio-dialog-body{padding:26px 32px 32px}
.bio-dialog .bio-copy{margin:0 0 14px!important;font:400 1rem/1.65 var(--sans)!important;color:var(--ink-2)}
.bio-dialog .btn{margin-top:8px}
@media (max-width:700px){.bio-dialog-head{padding:22px 20px 18px}.bio-dialog-body{padding:20px 20px 26px}}

/* ===== styles/96-calm.css ===== */
/* Calm pass, October 2026. The client found pages busy with horizontal rules: FAQ rows, table rows,
   step numbers, link lists and section edges all drew lines. Separation now comes from spacing and soft
   cards instead. Underlines on text links stay: they show what is clickable. Loaded last on purpose. */

/* FAQs and other fold-outs: one soft card per question instead of ruled rows. */
main .accordion, main .cd-faq-list, main .gd-faq-list, main .answer-faq-list{border:0!important}
main .accordion details, main .cd-faq-list details, main .gd-faq-list details, main .answer-faq-list details,
main details.chapter-more, main details.local-planning-details, main details.sg-disclosure, main details.fh-sources{
 border:0!important;background:#fff;border-radius:12px;padding:2px 20px;margin:0 0 10px;box-shadow:0 1px 3px rgba(11,37,69,.07)}
main .cd-tint details, main .fh-chapter details{background:#fff}

/* Tables: gentle row shading instead of a rule on every row. */
main table th, main table td{border-top:0!important;border-bottom:0!important}
main table tbody tr:nth-child(even) td, main table tbody tr:nth-child(even) th{background:#f5f8fb}

/* Step numbers: no underline under "01", "02"… */
main .cd-step-number{border-bottom:0!important;padding-bottom:0!important;margin-bottom:6px}

/* Link lists, point rows and small lists: spacing, not rules. */
main .takeaway .chapter-link, main .reading-sources a, main .source-list a, main .calculator-notes a,
main .three-points .point, main .gd-block li, main .comparison-list > div, main .buyer-process li,
main .conversation-steps li, main .page-brief p, main .cd-columns h3{border-top:0!important;border-bottom:0!important}
main .three-points .point{padding-top:0}
main .ah-list li{border-top:0!important;border-bottom:0!important}
main .ah-list .ah-row{border-radius:10px}
main .ah-list .ah-row:hover{background:#f1f5fa}

/* Section edges. */
main .homes-strip, main .guide-chapters, main .guide-brief, main .guide-chapter.visual-chapter,
main .reading-copy > section, main .site-directory-group, main .answers-band, main .page-brief, main figcaption{border-top:0!important;border-bottom:0!important}

/* Plain-English explanations for real estate terms (plain-words.mjs explainTerms): hover or tap. */
main .term{position:relative;cursor:help;text-decoration:underline dotted var(--blue);text-underline-offset:3px;text-decoration-thickness:1.5px}
main .term:hover::after, main .term:focus::after{content:attr(data-tip);position:absolute;left:0;top:calc(100% + 8px);z-index:30;width:max-content;max-width:min(280px,78vw);padding:10px 12px;border-radius:10px;background:var(--navy);color:#fff;font:400 .8125rem/1.45 var(--sans);letter-spacing:0;text-transform:none;white-space:normal;box-shadow:0 10px 26px rgba(12,45,82,.25)}
main .term:focus{outline:2px solid var(--blue);outline-offset:2px;border-radius:3px}

/* Link rows as cards that say what each page covers (plain-words.mjs enrichLinkRows). */
main .link-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:14px;margin-top:18px}
main .link-cards .link-card{display:flex;flex-direction:column;gap:6px;padding:18px 20px;background:#fff;border-radius:14px;text-decoration:none;box-shadow:0 1px 2px rgba(12,45,82,.06),0 10px 26px -14px rgba(12,45,82,.22);transition:transform .2s ease,box-shadow .2s ease}
main .link-cards .link-card:hover{transform:translateY(-2px);box-shadow:0 14px 30px -12px rgba(12,45,82,.3)}
main .link-cards .link-card strong{color:var(--navy);font-size:1rem}
main .link-cards .link-card strong::after{content:' →';color:var(--blue)}
main .link-cards .link-card span{color:var(--muted);font-size:.875rem;line-height:1.45}
main .journal-reading .link-cards .link-card{text-align:left;align-items:flex-start}
main .link-cards .link-card:only-child{max-width:420px}
main .link-cards:not(:has(.link-card span)){grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr))}
@media (min-width:1100px){main .link-cards:has(> .link-card:nth-child(5):last-child){grid-template-columns:repeat(5,minmax(0,1fr))}}

/* ===== styles/97-blue.css ===== */
/* Blue theme and fuller pages, October 15, 2026 (Benny: "more blue theme in every page", "lots of
   empty fields"). The beige paper becomes a cool blue-white, every other top-level section sits on a
   light blue band, sparse rows become filled cards, and the oversized gaps between sections shrink. */
:root{--paper:#f7faff;--section:clamp(48px,6vw,84px);--blue-wash:#eaf2fc;--blue-wash-2:#dceafa}
body{background:var(--paper)}

/* Alternate light-blue bands on top-level sections (not the hero, dark bands or the closing call). */
main > section:nth-of-type(even):not(.hero):not(.hero-page):not(.sg-next-step):not(.section-ink):not(.mls-band):not(.reel-marquee):not([class*="ink"]):not(.guide-chapter-head):not(.fh-chapter):not(.estate-width):not(.sg-coffee):not(.home-useful):not(.reading-layout):not(.guide-brief):not(.shell-width):not(.calculator-directory):not(.page-brief):not(.contact-stage):not(.team-collection):not(.editorial-story):not(.calculator-heading):not(.calculator-notes):not(.photo-credits):not(.sg-why):not(.sg-float):not(.sg-help):not(.sg-cities){background:var(--blue-wash)}
/* Boxed sections (estate-width, the coffee panel) keep the page background: a band behind a box looked framed. */
main .cd-tint, main .fh-chapter:nth-of-type(even){background:var(--blue-wash)!important}
main section[style*="background"]{background-clip:padding-box}

/* Cards sit white on the blue bands, with a soft blue shadow. */
main .path-tiles a, main .cd-step, main .cd-card, main .related-card, main .buyer-start a, main .buyer-start article,
main .three-points .point, main .cd-columns > div, main .cd-columns > article{background:#fff;box-shadow:0 1px 2px rgba(12,45,82,.06),0 10px 26px -14px rgba(12,45,82,.22)}

/* Sparse step rows ("01 / 02 / 03" with a line of text) become filled blue-numbered cards. */
main .three-points{gap:16px}
main .three-points .point{padding:24px 22px;border-radius:16px}
main .buyer-process ol, main .buyer-process ul{gap:16px}
main .buyer-process li{background:#fff;border-radius:16px;padding:22px 22px 24px;box-shadow:0 1px 2px rgba(12,45,82,.06),0 10px 26px -14px rgba(12,45,82,.22)}
main .cd-step-number, main .three-points .point > span:first-child{justify-self:start;align-self:start;width:max-content;display:inline-grid;place-items:center;min-width:36px;height:36px;padding:0 8px;border-radius:10px;background:var(--navy);color:#fff!important;font-weight:700;letter-spacing:0}

/* Eyebrows and small labels in brand blue everywhere. */
main .eyebrow, main .reading-label, main .kicker, main .section-overline, main .cd-head .reading-label{color:var(--blue)}

/* Check-mark bullets as filled blue circles. */
main .cd-split-copy li svg, main .split-list li svg{color:#fff}

/* Closing call to action: deep blue gradient so every page ends on brand colour. */
main .sg-next-step{background:linear-gradient(135deg,var(--navy) 0%,var(--navy-2) 100%);color:#fff;border-radius:0!important}
main .sg-next-step h2, main .sg-next-step p, main .sg-next-step .reading-label{color:#fff}

main .buyer-process li::before{content:'0' counter(s);display:inline-grid;place-items:center;width:36px;height:36px;margin-bottom:14px;border-radius:10px;background:var(--navy);color:#fff;font:700 .8125rem/1 var(--sans);letter-spacing:0}
main .buyer-process li{border-top:0!important;padding-top:22px}
.buyer-start-lead{max-width:44rem;color:var(--muted);margin:-.2em 0 22px}
@media (min-width:1100px){main .buyer-path-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
main .buyer-path-grid>a{background:#fff;border-radius:16px}
main .buyer-path-grid>a svg{width:26px;height:26px;padding:10px;box-sizing:content-box;border-radius:12px;background:var(--navy);color:#fff!important}
main .buyer-process li{display:flex;flex-direction:column;align-items:flex-start}
main .cd-step-number, main .three-points .point > span:first-child{display:inline-flex!important;align-items:center;justify-content:center;line-height:1!important;padding:0 10px!important;font-size:.8125rem!important}
main .buyer-path-grid>a>span:last-child{margin-top:auto;padding-top:12px;font-weight:700;color:var(--navy)}
main .buyer-path-grid>a>span:last-child::after{content:' →';color:var(--blue)}
main .buyer-path-grid>a{display:flex;flex-direction:column}

/* Edge rule (scripts/design-rules.mjs): anything that runs the full width of the screen is a square band;
   only boxes with space around them get rounded corners. The closing call flows straight into the footer. */
main .sg-next-step, main .sg-next-step.estate-width{border-radius:0!important;margin-bottom:0!important}
@media (max-width:700px){
 main .presale-areas, main .fh-chapter, main > .cta-inline, main .cta-inline{border-radius:0!important}
 main .calculator-directory{background:transparent!important}
}
main > .cta-inline{border-radius:12px}
/* Nothing pokes past the screen edge on a phone: long chapter pills wrap, form fields fit. */
main .mobile-chapters a{max-width:100%;white-space:normal;box-sizing:border-box}
main .mls-field, main .mls-field select, main .mls-field input{max-width:100%;min-width:0;box-sizing:border-box}
main .mls-field select{width:100%}
main#main > aside.cta-inline{width:calc(100% - var(--gutter)*2)!important;max-width:var(--wrap)!important;margin-inline:auto!important;border-radius:12px!important}
main .purchase-comparison > aside.cta-inline{width:calc(100% - var(--gutter)*2)!important;max-width:var(--wrap)!important;margin-inline:auto!important;border-radius:12px!important}
/* Home valuation / home finder: on a phone the hero already shows a photo, so the side photo is not repeated below it. */
@media (max-width:700px){main .local-request-image{display:none}}
main .calculator-notes aside{background:#fff;box-shadow:0 1px 2px rgba(12,45,82,.06),0 10px 26px -14px rgba(12,45,82,.22)}

/* ===== styles/98-rhythm.css ===== */
/* Spacing rhythm, October 2026. Sections each carried their own top and bottom space, so where two met the
   spacing stacked (96px padding + 100px margin) and left empty holes the client noticed. Here every top-level
   section gets one consistent space, and scripts/design-rules.mjs (rule "empty-gap") fails any hole left. */
main .cd-section{padding-block:var(--section)}
main > * + .sg-next-step, main > .sg-next-step{margin-top:clamp(32px,4vw,56px)!important}
main .answer-page{padding-bottom:clamp(24px,3vw,40px)}
main .reading-related, main .journal-feature{margin-top:clamp(24px,3vw,48px)!important}
main .city-planning-band{margin-block:clamp(24px,3vw,48px)}
main > .cd-section + .cd-section, main > .cd-section + .journal-feature, main > .cd-section + nav, main > .cd-section + .details-section{margin-top:0!important}
/* The shared page rhythm (00-base.css) gave every plain section ~100px of margin; next to a band that already has
   its own ~84px padding that doubled up. Same selector, smaller step. */
main>:is(section,div,nav,aside,article,header):not(.hero):not(.section):not(.path-strip):not(.chip-row):not(.journal-band):not(.explore):not(.page-tabs):not(.sg-next-step):not(.reading-related):not(.city-planning-band):not(.sg-coffee):not(.journal-article):not(.purchase-comparison):not(.details-section):not(.section-space),
.journal-article>:is(section,aside,header,div){margin-block:clamp(32px,4vw,56px)}
main .reading-related + .context-calculator{margin-top:clamp(24px,3vw,40px)!important}
/* Two blue sections in a row read as one band: no second full gap between them. */
main > section.cd-section:nth-of-type(even) + section.cd-tint{padding-top:0}
/* "What to read next" was a grey barely different from the page, so it looked like empty space. */
main .reading-related{background:var(--blue-wash)}
main .reading-related:has(+ .context-calculator){padding-bottom:clamp(40px,5vw,64px)}

/* ===== styles/99-hero-fx.css ===== */
/* Homepage hero (story.js). It always fills the screen below the header. Once story.js marks it .is-live it
   pins for a while: the headline and search lift away, and the drone film shrinks into the letters of
   STONE GROUP on a white page (an SVG mask), with "Real Estate Team" settling underneath.
   --hp is the scroll progress through the pinned stretch, 0 → 1. */
main .hero.hero-home{display:block;min-height:calc(100svh - var(--chrome,107px));padding:0;overflow:clip}
main .hero-home .hero-stage{position:relative;isolation:isolate;display:flex;min-height:calc(100svh - var(--chrome,107px));overflow:hidden}
main .hero-home .hero-inner{position:relative;z-index:2;flex:1}
main .hero-home.is-live{height:calc(100svh - var(--hdr,68px) + 170vh)}
main .hero-home.is-live .hero-stage{position:sticky;top:var(--hdr,68px);height:calc(100svh - var(--hdr,68px));min-height:0}

main .hero-home .hero-media img, main .hero-home .hero-media .hero-drone{animation:none;transform:scale(calc(1.06 - var(--hp,0) * .04))}
main .hero-home .hero-media .hero-drone{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;pointer-events:none;transition:opacity 1.2s ease}
main .hero-home .hero-media .hero-drone.is-on{opacity:1}
main .hero-home .hero-media::after{z-index:1;opacity:clamp(0,calc(1 - var(--hp,0) * 5),1);background:radial-gradient(ellipse 55% 60% at 50% 46%,rgba(5,18,36,.5),rgba(5,18,36,.16) 78%,rgba(5,18,36,.1)),linear-gradient(0deg,rgba(5,18,36,.4),rgba(5,18,36,0) 45%),linear-gradient(180deg,rgba(5,18,36,.3),rgba(5,18,36,0) 30%)}
main .hero-home h1, main .hero-home .hero-lead{text-shadow:0 2px 24px rgba(5,18,36,.45)}

/* The headline block lifts, blurs and fades in the first tenth of the pinned stretch. */
main .hero-home .hero-copy{opacity:clamp(0,calc(1 - var(--hp,0) * 7),1);transform:translate3d(0,calc(var(--hp,0) * -260px),0);filter:blur(calc(var(--hp,0) * 18px));will-change:transform,opacity}
main .hero-home.is-gone .hero-copy{pointer-events:none;visibility:hidden}

/* Arrival: the headline lines rise, then the lead, search and links follow (also after the intro). */
.sg-ready main .hero-home:not(.is-entered) .hero-copy > *{opacity:0;transform:translateY(34px)}
.sg-ready main .hero-home .hero-copy > *{transition:opacity .9s var(--ease),transform 1.1s var(--ease)}
.sg-ready main .hero-home .hero-copy > :nth-child(2){transition-delay:.12s}
.sg-ready main .hero-home .hero-copy > :nth-child(3){transition-delay:.22s}
.sg-ready main .hero-home .hero-copy > :nth-child(4){transition-delay:.32s}

/* The wordmark: white page with STONE GROUP cut out of it; the film shows through the letters. */
.hero-mark{position:absolute;inset:0;z-index:1;width:100%;height:100%;pointer-events:none;opacity:0}
.hero-mark-paper{fill:var(--paper)}
.hero-mark-text{font-family:var(--sans);font-weight:800;letter-spacing:-.045em;font-size:12vw}
.hero-mark-sub{position:absolute;left:var(--gutter);right:var(--gutter);top:calc(50% + 7vw);z-index:2;margin:0;text-align:center;color:var(--navy-deep);font:700 clamp(.75rem,1.2vw,1rem)/1.4 var(--sans);letter-spacing:.32em;text-transform:uppercase;opacity:0}
.hero-mark-sub span{color:var(--blue)}
.is-live .hero-mark{opacity:clamp(0,calc((var(--hp,0) - .05) * 9),1)}
.is-live .hero-mark-sub{opacity:clamp(0,calc((var(--hp,0) - .5) * 6),1);transform:translateY(calc((1 - clamp(0,(var(--hp,0) - .5) * 6,1)) * 24px))}
@media (max-width:700px){.hero-mark-sub{letter-spacing:.2em}.hero-mark-sub span{display:none}}

/* Intro (first visit of a session; the inline script in the markup removes it otherwise), about five seconds.
   The homepage shows through it, faint and soft at first, then clearer and sharper as the words roll (hi-tease),
   with the film already playing.
   One centred line: "Find your" over a word that rolls up in place through HOMES, TOWNHOMES, CONDOS, PRESALES.
   The line clears, STONE GROUP rises letter by letter, navy and blue shutters slide across from above and below
   and open straight onto the homepage in colour as the film starts. story.js sizes and times it. ?intro replays it. */
main > .home-intro{width:auto!important;max-width:none!important;margin:0!important;padding:0!important}
.home-intro{position:fixed;inset:0;z-index:300;overflow:hidden;background:color-mix(in srgb,var(--paper) 76%,transparent);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);color:var(--navy-deep);cursor:pointer;animation:hi-tease 4.4s .3s cubic-bezier(.45,0,.55,1) forwards,intro-failsafe 0s 7.5s forwards}
@keyframes hi-tease{to{background-color:color-mix(in srgb,var(--paper) 42%,transparent);-webkit-backdrop-filter:blur(.5px);backdrop-filter:blur(.5px)}}
.has-intro .page-loader{display:none}
.has-intro .hero-home .hero-copy{visibility:hidden}
.hi-roll{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);text-align:center;transition:opacity .45s var(--ease),transform .6s var(--ease)}
.hi-roll.is-out{opacity:0;transform:translateY(calc(-50% - 30px))}
.hi-lead{display:block;margin-bottom:.9em;font:700 clamp(.875rem,1.9vw,1.75rem)/1 var(--sans);letter-spacing:.42em;padding-left:.42em;text-transform:uppercase;color:var(--blue);opacity:0;transform:translateY(12px);transition:opacity .5s var(--ease),transform .7s var(--ease)}
.hi-roll.is-on .hi-lead{opacity:1;transform:none}
.hi-slot{position:relative;display:block;height:1em;overflow:hidden;font:800 clamp(3.25rem,11vw,10.5rem)/1 var(--sans);letter-spacing:-.045em}
.hi-word{position:absolute;left:0;right:0;top:0;white-space:nowrap;color:var(--navy-deep);transform:translateY(105%);transition:transform .55s cubic-bezier(.76,0,.24,1)}
.hi-word.is-on{transform:none}
.hi-word.is-past{transform:translateY(-105%)}
.hi-brand{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);text-align:center;font:800 100px/.86 var(--sans);letter-spacing:-.05em}
.hi-letters{display:inline-block;white-space:nowrap}
.hi-line{display:block;overflow:hidden;padding-bottom:.06em}
.hi-letters .hi-l{display:inline-block;transform:translateY(110%);transition:transform .75s cubic-bezier(.22,1,.36,1)}
.hi-brand.is-in .hi-l{transform:none}
.hi-shutter{position:absolute;inset:0;z-index:2;display:flex;pointer-events:none}
.hi-shutter i{position:relative;flex:1 1 0;margin-right:-1px}
.hi-shutter i::before,.hi-shutter i::after{content:'';position:absolute;inset:0;transform:scaleY(0);transform-origin:50% 0;transition:transform .42s cubic-bezier(.76,0,.24,1)}
.hi-shutter i:nth-child(even)::before,.hi-shutter i:nth-child(even)::after{transform-origin:50% 100%}
.hi-shutter i::before{background:var(--blue);transition-delay:calc(var(--i) * 38ms)}
.hi-shutter i::after{background:var(--navy-deep);transition-delay:calc(var(--i) * 38ms + 70ms)}
.hi-shutter.is-cover i::before,.hi-shutter.is-cover i::after{transform:none}
/* Opening carries on in the same direction: strips that came down leave through the bottom, and the other way round. */
.hi-shutter.is-open i::before,.hi-shutter.is-open i::after{transform-origin:50% 100%}
.hi-shutter.is-open i:nth-child(even)::before,.hi-shutter.is-open i:nth-child(even)::after{transform-origin:50% 0}
.hi-shutter.is-open i::after{transition-delay:calc(var(--i) * 38ms)}
.hi-shutter.is-open i::before{transition-delay:calc(var(--i) * 38ms + 70ms)}
.home-intro-skip{position:absolute;z-index:3;right:var(--gutter);bottom:calc(22px + env(safe-area-inset-bottom,0px));padding:8px 0;border:0;background:none;color:var(--muted);font:600 .75rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.home-intro.is-through{animation:none;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;cursor:default}
.home-intro.is-through .hi-roll,.home-intro.is-through .hi-brand,.home-intro.is-through .home-intro-skip{visibility:hidden}
.home-intro.is-lift{transform:translateY(-101%)}
@keyframes intro-failsafe{to{visibility:hidden;opacity:0;pointer-events:none}}

/* ===== styles/99z-premium.css ===== */
/* Premium finish, October 19, 2026 (client: "not eye pleasing … get this design premium"). Shape and detail only:
   hairline cards instead of drop shadows, squarer buttons with spaced small capitals and slow image
   zooms. Colours, header (light top bar, blue Book a call) and fonts stay as on stonegroup.ca — a darker navy and a
   serif heading trial were both reverted at the client's request. Last in the cascade; delete this file to revert. */
:root{
 --radius:4px; --shadow:0 1px 2px rgba(6,22,43,.05),0 18px 40px -26px rgba(6,22,43,.35);
 --hair:1px solid var(--line);
}

/* Small capitals labels: quieter, wider, with a short leading rule. */
main .eyebrow, main .reading-label, main .kicker, main .section-overline, main .sg-eyebrow, main .scan-eyebrow, main .premium-eyebrow{
 display:flex;align-items:center;gap:14px;font:600 .6875rem/1.4 var(--sans);letter-spacing:.24em;color:var(--blue)}
main .eyebrow::before, main .reading-label::before, main .kicker::before, main .section-overline::before, main .sg-eyebrow::before{
 content:'';flex:0 0 28px;height:1px;background:currentColor;opacity:.7}

/* ---------- Buttons: squarer, taller, small capitals ---------- */
.btn:not(.btn-header), .sg-button, .solid-button, .button, main .lx-btn, main form:not(.hero-search) button[type=submit]{
 border-radius:2px!important;min-height:48px;padding-inline:26px;font:600 .75rem/1 var(--sans)!important;letter-spacing:.16em!important;text-transform:uppercase;
 transition:background .3s var(--ease),border-color .3s var(--ease),color .3s var(--ease),transform .3s var(--ease)}
.btn-light{color:var(--navy-deep)}
.sg-button-outline{background:transparent;border:1px solid var(--navy);color:var(--navy)}

/* Hero search: a slim squared bar, matching the buttons. */
main .hero-search{border-radius:4px!important;padding:6px;box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
main .hero-search button[type=submit]{border-radius:2px!important;width:52px;height:48px}
main .hero-chips a{border-radius:2px!important;font-size:.6875rem!important;letter-spacing:.16em;text-transform:uppercase;font-weight:600;
 background:rgba(6,22,43,.28)!important;border:1px solid rgba(255,255,255,.4)!important;backdrop-filter:blur(8px)}
main .hero-chips a:hover{background:#fff!important;color:var(--navy-deep)!important}

/* Reels: squarer frames, quieter labels. */
main .reel-tile{border-radius:4px}

/* ---------- Cards: hairlines, not pillows ---------- */
main .listing-card, main .path-tiles a, main .cd-step, main .cd-card, main .related-card, main .buyer-start a, main .buyer-start article,
main .three-points .point, main .buyer-path-grid > a, main .directory-card, main .link-card, main .buyer-process li, main .city-card{
 border-radius:var(--radius)!important;border:var(--hair)!important;box-shadow:none!important;transition:border-color .4s var(--ease),box-shadow .4s var(--ease),transform .4s var(--ease)}
main .listing-card:hover, main .path-tiles a:hover, main .directory-card:hover, main .link-card:hover, main .related-card:hover, main .buyer-path-grid > a:hover{
 border-color:var(--line-strong)!important;box-shadow:var(--shadow)!important;transform:translateY(-3px)}
main .city-card{border:0!important}

/* Listing cards: image zoom, quieter tags. */
main .listing-photo{overflow:hidden;border-radius:0}
main .listing-photo img{transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}
main .listing-card:hover .listing-photo img{transform:scale(1.05)}
main .listing-city-tag, main .listing-photo-count{border-radius:2px!important;font-size:.625rem!important;letter-spacing:.16em;text-transform:uppercase;font-weight:600;backdrop-filter:blur(6px)}
main .listing-city-tag{background:rgba(255,255,255,.92)!important;color:var(--navy-deep)!important}
main .listing-photo-count{background:rgba(6,22,43,.62)!important;color:#fff!important}

/* Community mosaic: slow zoom. */
main .city-card{overflow:hidden}
main .city-card img{transition:transform 1.6s cubic-bezier(.2,.7,.2,1)}
main .city-card:hover img{transform:scale(1.06)}

/* Step numbers: numerals on a hairline, not filled squares. */
main .cd-step-number, main .three-points .point > span:first-child, main .buyer-process li::before{
 background:transparent!important;color:var(--blue)!important;border:0;border-bottom:1px solid currentColor;border-radius:0!important;
 font:600 1.125rem/1 var(--sans)!important;padding:0 0 6px!important;height:auto!important;min-width:0!important;letter-spacing:0}

/* ---------- Forms ---------- */
main input:not([type=checkbox]):not([type=radio]), main select, main textarea{border-radius:2px!important;border-color:var(--line-strong)}
main input:focus, main select:focus, main textarea:focus{border-color:var(--navy)!important;box-shadow:0 0 0 3px rgba(45,95,147,.14)!important;outline:0}

/* ---------- Images ---------- */
main figure img, main .split-media img, main .team-showcase img{border-radius:var(--radius)}

/* Header with the Listings tab: keep every label on one line; tighten spacing on narrower laptops. */
.site-nav .nav-trigger, .btn-header{white-space:nowrap}
@media (min-width:1001px) and (max-width:1240px){.site-nav > ul{gap:0!important}.site-nav .nav-trigger{padding-inline:7px!important;font-size:.875rem!important}.site-header-tools{gap:4px!important}.tool-phone{display:none!important}.btn-header{padding-inline:16px!important}}

/* Tinted bands (97-blue) on margin-spaced sections: space inside the band, so cards never sit on its edge. */
main > .details-section{padding-block:clamp(56px,7vw,104px)!important;margin-block:0!important}
main > .cd-section + .details-section{padding-top:0!important}
main .three-points .point > span:first-child{margin-bottom:14px!important}
