/* Andy Scott, GPS Group | Dave Perry-Miller Real Estate. Premium Dallas editorial (redesign 2026-11-06):
   midnight navy + warm ivory + stone, bronze only as a small accent. Newsreader (headings) + DM Sans (everything else).
   Spacing scale: 4 8 12 16 24 32 48 64 80 104. Radius 4px. Minimal shadows. */
:root {
  --navy: #172b3b; --navy-d: #101f2b; --navy-2: #22394c;
  --ivory: #faf9f6; --white: #fff; --stone: #f0eee9; --stone-2: #e9e6df;
  --bronze: #a38d72; --bronze-d: #7e6a52;
  --ink: #1c2832; --body: #3a4650; --muted: #66717a; --line: #e5e3de; --line-d: #d6d2ca;
  --serif: 'Newsreader', Georgia, 'Times New Roman', serif;
  --sans: 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --wrap: 1240px; --gut: 40px; --r: 4px;
  --sec: 104px; --sec-s: 72px;
  --head: 76px;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--head) + 24px); }
body { margin: 0; background: var(--ivory); color: var(--body); font: 400 17px/1.7 var(--sans); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { max-width: 100%; height: auto; display: block; }
figure { margin: 0; }
a { color: var(--navy); text-decoration-color: var(--bronze); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--bronze-d); }
h1, h2, h3, h4 { font-family: var(--serif); color: var(--ink); font-weight: 400; line-height: 1.12; margin: 0 0 .5em; letter-spacing: -.012em; font-optical-sizing: auto; }
h1 { font-size: clamp(40px, 5vw, 64px); }
h2 { font-size: clamp(32px, 3.3vw, 44px); }
h3 { font-size: clamp(22px, 1.9vw, 26px); line-height: 1.25; }
h4 { font: 600 15px/1.4 var(--sans); letter-spacing: 0; }
p { margin: 0 0 1em; }
ul, ol { margin: 0 0 1em; padding-left: 1.2em; }
li { margin-bottom: .4em; }
strong { color: var(--ink); font-weight: 600; }
.wrap { width: 100%; max-width: calc(var(--wrap) + 2 * var(--gut)); margin: 0 auto; padding-left: var(--gut); padding-right: var(--gut); }
.narrow { max-width: calc(780px + 2 * var(--gut)); }
.sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: -999px; top: 0; background: var(--navy); color: #fff; padding: 10px 16px; z-index: 400; }
.skip:focus { left: 8px; color: #fff; }
:focus-visible { outline: 2px solid var(--bronze-d); outline-offset: 3px; }
svg { width: 18px; height: 18px; flex: none; }

/* type helpers */
.eyebrow { display: block; font: 600 12.5px/1.3 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--bronze-d); margin-bottom: 18px; }
.lead { font-size: 19px; line-height: 1.65; color: var(--body); }
.muted { color: var(--muted); }
.small { font-size: 14px; }
.serif-quote { font: 400 clamp(24px, 2.3vw, 31px)/1.45 var(--serif); color: var(--ink); letter-spacing: -.005em; }

/* buttons */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 50px; padding: 0 26px; border-radius: var(--r); font: 600 15px/1.1 var(--sans); letter-spacing: .01em; text-decoration: none; border: 1px solid transparent; cursor: pointer; transition: background .18s, color .18s, border-color .18s; white-space: nowrap; }
.btn svg { width: 17px; height: 17px; }
.btn-primary { background: var(--navy); color: #fff; }
.btn-primary:hover { background: var(--navy-d); color: #fff; }
.btn-outline { background: transparent; color: var(--navy); border-color: var(--navy); }
.btn-outline:hover { background: var(--navy); color: #fff; }
.btn-light { background: #fff; color: var(--navy); }
.btn-light:hover { background: var(--stone); color: var(--navy); }
.btn-ghost-light { color: #fff; border-color: rgba(255,255,255,.4); background: transparent; }
.btn-ghost-light:hover { border-color: #fff; color: #fff; background: rgba(255,255,255,.06); }
.btn-sm { min-height: 44px; padding: 0 20px; font-size: 14.5px; }
.btn[disabled] { opacity: .65; cursor: progress; }
.text-link { display: inline-flex; align-items: center; gap: 8px; font: 600 15px/1.3 var(--sans); color: var(--navy); text-decoration: none; border-bottom: 1px solid var(--bronze); padding-bottom: 3px; }
.text-link svg { width: 15px; height: 15px; transition: transform .18s; }
.text-link:hover { color: var(--bronze-d); }
.text-link:hover svg { transform: translateX(3px); }
.cta-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }

/* preview ribbon */
.ribbon { background: var(--navy-d); color: #b9c4cd; font-size: 13px; }
.ribbon .wrap { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 38px; padding-top: 6px; padding-bottom: 6px; }
.ribbon strong { color: #fff; font-weight: 600; }
.ribbon a { color: #fff; display: inline-flex; gap: 6px; align-items: center; white-space: nowrap; text-decoration: none; }
.ribbon a svg { width: 14px; height: 14px; }

/* ================= header ================= */
.top { position: sticky; top: 0; z-index: 200; background: rgba(250,249,246,.97); border-bottom: 1px solid var(--line); }
.top-in { display: flex; align-items: center; gap: 28px; height: var(--head); }
.brand { display: flex; align-items: center; gap: 16px; text-decoration: none; flex: none; }
.brand .gps { height: 22px; width: auto; }
.brand .bsep { width: 1px; height: 30px; background: var(--line-d); }
.brand .dpm { height: 26px; width: auto; }
.nav { display: flex; align-items: center; margin-left: auto; }
.nav-list { list-style: none; display: flex; align-items: center; gap: 2px; margin: 0; padding: 0; }
.nav-list > li { margin: 0; }
.nav-link { display: inline-flex; align-items: center; gap: 6px; height: 44px; padding: 0 13px; background: none; border: 0; font: 500 15px/1 var(--sans); color: var(--ink); text-decoration: none; cursor: pointer; border-radius: var(--r); }
.nav-link svg { width: 13px; height: 13px; color: var(--muted); transition: transform .2s; }
.nav-link:hover, .nav-link[aria-expanded="true"], .nav-link[aria-current="page"] { color: var(--bronze-d); }
.nav-link[aria-expanded="true"] svg { transform: rotate(180deg); }
.top-actions { display: flex; align-items: center; gap: 18px; flex: none; }
.top-phone { display: inline-flex; align-items: center; gap: 8px; color: var(--ink); text-decoration: none; font: 500 15px/1 var(--sans); white-space: nowrap; }
.top-phone svg { color: var(--bronze-d); width: 17px; height: 17px; }
.burger { display: none; align-items: center; gap: 10px; height: 44px; padding: 0 14px; border: 1px solid var(--line-d); background: transparent; border-radius: var(--r); cursor: pointer; font: 600 14px/1 var(--sans); color: var(--ink); }
.burger svg { width: 20px; height: 20px; }

/* mega panels: full width under the header, so nothing clips on small laptops */
.mega { position: absolute; left: 0; right: 0; top: 100%; background: var(--white); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); box-shadow: 0 24px 40px -24px rgba(16,31,43,.22); opacity: 0; visibility: hidden; transform: translateY(-4px); transition: opacity .16s ease, transform .16s ease, visibility 0s linear .16s; }
.mega.open { opacity: 1; visibility: visible; transform: none; transition: opacity .16s ease, transform .16s ease, visibility 0s; }
.mega-in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 320px; gap: 8px 48px; padding-top: 36px; padding-bottom: 40px; }
.mega-h { grid-column: 1 / -1; font: 600 12px/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--muted); margin: 0 0 8px; }
.mega-links { grid-column: 1 / 3; display: grid; grid-template-columns: 1fr 1fr; gap: 4px 48px; list-style: none; margin: 0; padding: 0; align-content: start; }
.mega-links li { margin: 0; }
.mega-links a { display: block; padding: 14px 0; border-bottom: 1px solid var(--line); text-decoration: none; color: var(--ink); }
.mega-links a b { display: block; font: 400 21px/1.25 var(--serif); }
.mega-links a small { display: block; font-size: 14px; color: var(--muted); margin-top: 4px; line-height: 1.45; }
.mega-links a:hover b { color: var(--bronze-d); }
.mega-feature { grid-column: 3; grid-row: 2 / span 2; text-decoration: none; color: var(--ink); align-self: start; }
.mega-feature .ph { aspect-ratio: 3 / 2; overflow: hidden; border-radius: var(--r); margin-bottom: 14px; }
.mega-feature .ph img { width: 100%; height: 100%; object-fit: cover; }
.mega-feature b { display: block; font: 400 20px/1.3 var(--serif); }
.mega-feature span { font-size: 14px; color: var(--muted); }
.mega-all { grid-column: 1 / 3; margin-top: 16px; }

/* mobile drawer */
.drawer { position: fixed; inset: 0; z-index: 300; visibility: hidden; transition: visibility 0s linear .25s; }
.drawer.open { visibility: visible; transition: visibility 0s; }
.drawer-bg { position: absolute; inset: 0; background: rgba(16,31,43,.45); opacity: 0; transition: opacity .2s; }
.drawer.open .drawer-bg { opacity: 1; }
.drawer-panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(440px, 100%); background: var(--ivory); display: flex; flex-direction: column; transform: translateX(100%); transition: transform .25s ease; }
.drawer.open .drawer-panel { transform: none; }
.drawer-top { display: flex; align-items: center; justify-content: space-between; padding: 0 20px; height: 68px; border-bottom: 1px solid var(--line); flex: none; }
.drawer-top .gps { height: 18px; width: auto; }
.drawer-close { display: inline-flex; align-items: center; gap: 8px; height: 44px; padding: 0 14px; border: 1px solid var(--line-d); background: transparent; border-radius: var(--r); font: 600 14px/1 var(--sans); color: var(--ink); cursor: pointer; }
.drawer-body { flex: 1; overflow-y: auto; padding: 8px 20px 24px; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; }
.drawer-body ul { list-style: none; margin: 0; padding: 0; }
.drawer-body li { margin: 0; }
.d-row { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 56px; padding: 0; border: 0; border-bottom: 1px solid var(--line); background: none; font: 400 22px/1.2 var(--serif); color: var(--ink); text-decoration: none; text-align: left; cursor: pointer; }
.d-row svg { width: 18px; height: 18px; color: var(--muted); transition: transform .2s; }
.d-row[aria-expanded="true"] svg { transform: rotate(180deg); }
.d-sub { display: none; padding: 6px 0 12px; border-bottom: 1px solid var(--line); }
.d-sub.open { display: block; }
.d-sub a { display: flex; align-items: center; min-height: 44px; padding: 0 0 0 4px; font: 500 16px/1.3 var(--sans); color: var(--body); text-decoration: none; }
.d-sub a:hover { color: var(--bronze-d); }
.drawer-foot { flex: none; display: grid; gap: 10px; padding: 16px 20px calc(16px + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); background: var(--white); }
.drawer-foot .btn { width: 100%; }
.drawer-foot .two { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
html.lock, html.lock body { overflow: hidden; }

/* ================= sections ================= */
.sec { padding-top: var(--sec); padding-bottom: var(--sec); }
.sec-s { padding-top: var(--sec-s); padding-bottom: var(--sec-s); }
.bg-white { background: var(--white); }
.bg-stone { background: var(--stone); }
.bg-navy { background: var(--navy); color: #c3ccd4; }
.bg-navy h2, .bg-navy h3, .bg-navy strong, .bg-navy .serif-quote { color: #fff; }
.bg-navy .eyebrow { color: #c9b79f; }
.bg-navy a:not(.btn) { color: #fff; }
.bg-navy .form-card a:not(.btn) { color: var(--navy); }
.line-top { border-top: 1px solid var(--line); }
.head { max-width: 720px; margin-bottom: 56px; }
.head p { font-size: 18px; color: var(--body); margin: 0; }
.bg-navy .head p { color: #c3ccd4; }
.head-row { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; margin-bottom: 48px; }
.head-row .head { margin-bottom: 0; }

/* ================= home: hero ================= */
.hero { padding-top: 72px; padding-bottom: 88px; }
.hero-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 64px; align-items: center; }
.hero h1 { font-size: clamp(42px, 4.8vw, 64px); line-height: 1.06; margin-bottom: 26px; }
.hero h1 em { font-style: italic; color: var(--navy-2); }
.hero .lead { max-width: 520px; margin-bottom: 34px; }
.proof { display: flex; align-items: center; gap: 14px; margin-top: 36px; padding-top: 24px; border-top: 1px solid var(--line); max-width: 520px; }
.proof img { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; object-position: 50% 22%; }
.proof p { margin: 0; font-size: 14px; line-height: 1.5; color: var(--muted); }
.proof b { color: var(--ink); font-weight: 600; }
.stars { color: var(--bronze); letter-spacing: 1px; }
.hero-photo .ph { aspect-ratio: 5 / 4; overflow: hidden; border-radius: var(--r); }
.hero-photo .ph img { width: 100%; height: 100%; object-fit: cover; }
.cap { display: block; font-size: 13px; color: var(--muted); margin-top: 12px; line-height: 1.45; }
.cap b { color: var(--ink); font-weight: 600; }
.cap a { color: var(--muted); }

/* credibility strip */
.facts-strip { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--white); }
.facts-strip ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.facts-strip li { margin: 0; padding: 30px 28px; border-left: 1px solid var(--line); }
.facts-strip li:first-child { border-left: 0; padding-left: 0; }
.facts-strip b { display: block; font: 400 40px/1 var(--serif); color: var(--navy); margin-bottom: 8px; }
.facts-strip span { display: block; font-size: 14.5px; line-height: 1.45; color: var(--muted); }

/* services (home) */
.services { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; }
.svc { display: flex; flex-direction: column; text-decoration: none; color: var(--body); }
.svc .ph { aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--r); margin-bottom: 22px; }
.svc .ph img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.svc:hover .ph img { transform: scale(1.03); }
.svc .num { font: 400 15px/1 var(--serif); color: var(--bronze-d); margin-bottom: 10px; }
.svc h3 { margin-bottom: 10px; }
.svc:hover h3 { color: var(--bronze-d); }
.svc p { font-size: 15.5px; margin-bottom: 18px; }
.svc .text-link { margin-top: auto; align-self: flex-start; }

/* featured property */
.feature { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 56px; align-items: center; }
.feature-photos { display: grid; grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr; gap: 12px; aspect-ratio: 16 / 11; }
.feature-photos figure { overflow: hidden; border-radius: var(--r); }
.feature-photos figure:first-child { grid-row: span 2; }
.feature-photos img { width: 100%; height: 100%; object-fit: cover; }
.spec { list-style: none; padding: 0; margin: 24px 0 28px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.spec li { margin: 0; padding: 14px 0; border-bottom: 1px solid var(--line); font-size: 15px; }
.spec li span { display: block; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin-bottom: 2px; }
.spec li b { font: 400 22px/1.2 var(--serif); color: var(--ink); }
.badge { display: inline-block; font: 600 12px/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--bronze-d); border: 1px solid var(--bronze); padding: 7px 10px; border-radius: 2px; margin-bottom: 18px; }
.props { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; margin-top: 64px; padding-top: 48px; border-top: 1px solid var(--line); }
.prop .ph { aspect-ratio: 3 / 2; overflow: hidden; border-radius: var(--r); margin-bottom: 16px; }
.prop .ph img { width: 100%; height: 100%; object-fit: cover; }
.prop h3 { font-size: 21px; margin-bottom: 4px; }
.prop p { margin: 0; font-size: 14.5px; color: var(--muted); }

/* meet andy */
.meet { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 80px; align-items: center; }
.portrait { aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--r); background: #d8d8d6; }
.portrait img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; }
.sig { font: italic 400 26px/1.2 var(--serif); color: var(--ink); margin: 28px 0 4px; }
.sig + small { display: block; color: var(--muted); font-size: 14px; margin-bottom: 28px; }

/* testimonials (home + bands) */
.quotes { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 72px; align-items: start; }
.q-feature blockquote { margin: 0; }
.q-feature .serif-quote { margin: 0 0 24px; }
.q-who { font-size: 14.5px; color: var(--muted); }
.q-who b { color: var(--ink); font-weight: 600; }
.bg-navy .q-who { color: #aeb9c3; }
.q-side { display: grid; gap: 36px; }
.q-side blockquote { margin: 0; padding-left: 24px; border-left: 1px solid var(--bronze); }
.q-side p { font: 400 19px/1.55 var(--serif); color: var(--ink); margin: 0 0 12px; }
.q-mark { width: 34px; height: 26px; color: var(--bronze); margin-bottom: 22px; }
.rating-line { display: flex; align-items: baseline; gap: 14px; margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--line); flex-wrap: wrap; }
.rating-line b { font: 400 34px/1 var(--serif); color: var(--ink); }
.rating-line span { font-size: 14px; color: var(--muted); }

/* neighborhood cards */
.hoods { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 44px 32px; }
.hood { display: flex; flex-direction: column; text-decoration: none; color: var(--body); }
.hood .ph { aspect-ratio: 3 / 2; overflow: hidden; border-radius: var(--r); margin-bottom: 18px; background: var(--stone-2); }
.hood .ph img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.hood:hover .ph img { transform: scale(1.03); }
.hood .ph.typo { display: flex; flex-direction: column; justify-content: flex-end; padding: 24px; background: var(--navy); }
.hood .ph.typo span { font: 400 32px/1.1 var(--serif); color: #fff; }
.hood .ph.typo small { font: 600 11.5px/1.3 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: #c9b79f; margin-bottom: 8px; }
.hood h3 { margin-bottom: 6px; }
.hood:hover h3 { color: var(--bronze-d); }
.hood p { font-size: 15px; color: var(--muted); margin: 0; }
.hood-group { margin-bottom: 80px; }
.hood-group:last-child { margin-bottom: 0; }
.hood-group > header { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; padding-bottom: 16px; border-bottom: 1px solid var(--line); margin-bottom: 32px; flex-wrap: wrap; }
.hood-group > header h2 { font-size: clamp(26px, 2.4vw, 32px); margin: 0; }
.hood-group > header p { margin: 0; color: var(--muted); font-size: 15px; }

/* valuation */
.val { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 80px; align-items: center; }
.ticks { list-style: none; padding: 0; margin: 28px 0 0; display: grid; gap: 14px; }
.ticks li { display: flex; gap: 14px; align-items: flex-start; margin: 0; }
.ticks svg { color: var(--bronze); width: 18px; height: 18px; margin-top: 5px; }
.bg-navy .ticks li { color: #dde3e8; }

/* forms */
.form-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--r); padding: 36px; color: var(--body); }
.bg-navy .form-card { border-color: transparent; }
.form-card h3 { margin-bottom: 6px; }
.form-card .intro { font-size: 15px; color: var(--muted); margin: 0; }
.preview-note { display: flex; gap: 10px; align-items: flex-start; background: var(--stone); border-radius: var(--r); padding: 12px 14px; font-size: 13.5px; line-height: 1.5; color: var(--body); margin: 18px 0 0; }
.preview-note svg { color: var(--bronze-d); width: 16px; height: 16px; margin-top: 2px; }
.f-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 22px; }
.f-grid .full { grid-column: 1 / -1; }
.field > label, .field > legend { display: block; font: 600 13.5px/1.3 var(--sans); color: var(--ink); margin-bottom: 7px; padding: 0; }
.field .req { color: var(--bronze-d); }
.field input, .field select, .field textarea { display: block; width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid var(--line-d); border-radius: var(--r); font: 400 16px/1.4 var(--sans); color: var(--ink); background: #fff; }
.field textarea { min-height: 112px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--navy); box-shadow: 0 0 0 3px rgba(23,43,59,.12); }
.field.invalid input, .field.invalid select, .field.invalid textarea { border-color: #a2402f; }
.field .err { display: none; font-size: 13px; color: #a2402f; margin-top: 6px; }
.field.invalid .err { display: block; }
fieldset.field { border: 0; margin: 0; padding: 0; min-width: 0; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chips label { position: relative; margin: 0; }
.chips input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.chips span { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border: 1px solid var(--line-d); border-radius: 999px; font: 500 14.5px/1 var(--sans); color: var(--ink); cursor: pointer; background: #fff; }
.chips input:checked + span { background: var(--navy); border-color: var(--navy); color: #fff; }
.chips input:focus-visible + span { outline: 2px solid var(--bronze-d); outline-offset: 2px; }
.hp { position: absolute !important; left: -5000px; width: 1px; height: 1px; overflow: hidden; }
.form-card .btn[type="submit"] { width: 100%; margin-top: 22px; }
.f-fine { font-size: 13px; color: var(--muted); margin: 12px 0 0; }
.f-status { display: none; margin-top: 16px; padding: 14px 16px; border-radius: var(--r); font-size: 14.5px; line-height: 1.5; }
.f-status.show { display: block; }
.f-status.ok { background: #e8efe9; color: #1f4a2c; }
.f-status.bad { background: #f6e9e6; color: #6d2a1e; }
.f-status.info { background: var(--stone); color: var(--ink); }

/* guide cards */
.guides { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; }
.guides.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.guide { display: flex; flex-direction: column; text-decoration: none; color: var(--body); }
.guide .ph { aspect-ratio: 3 / 2; overflow: hidden; border-radius: var(--r); margin-bottom: 18px; background: var(--stone-2); }
.guide .ph img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.guide:hover .ph img { transform: scale(1.03); }
.guide .cat { font: 600 12px/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--bronze-d); margin-bottom: 10px; }
.guide h3 { font-size: 21px; line-height: 1.3; margin-bottom: 8px; }
.guide:hover h3 { color: var(--bronze-d); }
.guide p { font-size: 14.5px; color: var(--muted); margin: 0; }

/* closing invitation */
.invite { display: grid; grid-template-columns: 200px minmax(0, 1fr) auto; gap: 48px; align-items: center; }
.invite .portrait { aspect-ratio: 1; border-radius: 50%; }
.invite h2 { margin-bottom: 12px; }
.invite p { margin: 0; max-width: 580px; }
.invite .cta-row { flex-direction: column; align-items: stretch; }

/* ================= inner pages ================= */
.crumbs { font-size: 13.5px; color: var(--muted); margin-bottom: 28px; display: flex; flex-wrap: wrap; gap: 8px; }
.crumbs a { color: var(--muted); text-decoration: none; }
.crumbs a:hover { color: var(--bronze-d); }
.phero { padding-top: 56px; padding-bottom: 80px; }
.phero-grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: 64px; align-items: center; }
.phero h1 { font-size: clamp(38px, 4.4vw, 58px); margin-bottom: 22px; }
.phero .lead { max-width: 560px; margin-bottom: 32px; }
.phero .ph { aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--r); }
.phero .ph img { width: 100%; height: 100%; object-fit: cover; }
.phero.simple { padding-bottom: 56px; border-bottom: 1px solid var(--line); }
.phero.simple .lead { max-width: 720px; margin-bottom: 0; }

/* in brief + reasons */
.brief { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 64px; align-items: start; }
.brief p.big { font: 400 clamp(21px, 1.9vw, 25px)/1.55 var(--serif); color: var(--ink); margin: 0; }
.reasons { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 64px 0 0; border-top: 1px solid var(--line); }
.reasons li { margin: 0; padding: 28px 32px 0 0; }
.reasons li + li { padding-left: 32px; border-left: 1px solid var(--line); }
.reasons b { display: block; font: 400 15px/1 var(--serif); color: var(--bronze-d); margin-bottom: 12px; }
.reasons span { display: block; font: 400 21px/1.35 var(--serif); color: var(--ink); }

/* process (numbered, horizontal) */
.process { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(var(--n, 5), minmax(0, 1fr)); counter-reset: p; border-top: 1px solid var(--line-d); }
.process li { counter-increment: p; margin: 0; padding: 28px 24px 0 0; position: relative; }
.process li::before { content: counter(p, decimal-leading-zero); display: block; font: 400 32px/1 var(--serif); color: var(--bronze); margin-bottom: 18px; }
.process li::after { content: ''; position: absolute; top: -4px; left: 0; width: 7px; height: 7px; border-radius: 50%; background: var(--navy); }
.process h3 { font-size: 21px; margin-bottom: 8px; }
.process p { font-size: 15px; margin: 0; }
.bg-navy .process { border-top-color: rgba(255,255,255,.25); }
.bg-navy .process li::after { background: #c9b79f; }
.bg-navy .process p { color: #c3ccd4; }

/* groups (prepare / relocation tiles) */
.groups { display: grid; grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.group { padding: 32px 28px 36px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--white); }
.group .gnum { font: 400 14px/1 var(--serif); color: var(--bronze-d); margin-bottom: 14px; display: block; }
.group h3 { font-size: 22px; margin-bottom: 14px; }
.group ul { list-style: none; padding: 0; margin: 0; }
.group li { padding: 9px 0; border-top: 1px solid var(--line); font-size: 15px; margin: 0; }
.group p { font-size: 15px; margin: 0 0 12px; }
.group a { font-size: 14.5px; }

/* comparison: four strategies side by side */
.compare { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.strat { background: var(--white); border: 1px solid var(--line); border-radius: var(--r); padding: 28px 24px; display: flex; flex-direction: column; }
.strat .tl { margin-bottom: 22px; }
.strat .tag { font: 600 12px/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--bronze-d); margin-bottom: 12px; }
.strat h3 { font-size: 23px; margin-bottom: 12px; }
.strat > p { font-size: 15px; }
.strat dl { margin: auto 0 0; border-top: 1px solid var(--line); padding-top: 6px; }
.strat dt { font: 600 12px/1.3 var(--sans); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin-top: 12px; }
.strat dd { margin: 4px 0 0; font-size: 14.5px; color: var(--ink); }
.tl { display: flex; gap: 4px; height: 8px; }
.tl i { flex: 1; border-radius: 2px; background: var(--stone-2); }
.tl i.s { background: var(--navy); }
.tl i.b { background: var(--bronze); }
.tl i.x { background: repeating-linear-gradient(90deg, var(--navy) 0 6px, var(--bronze) 6px 12px); }
.tl-legend { display: flex; flex-wrap: wrap; gap: 8px 24px; font-size: 13.5px; color: var(--muted); margin: 0 0 24px; }
.tl-legend span::before { content: ''; display: inline-block; width: 16px; height: 6px; border-radius: 2px; margin-right: 8px; vertical-align: middle; }
.tl-legend .s::before { background: var(--navy); }
.tl-legend .b::before { background: var(--bronze); }
.tl-legend .x::before { background: repeating-linear-gradient(90deg, var(--navy) 0 4px, var(--bronze) 4px 8px); }

/* tables */
.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--r); background: var(--white); }
table.t { width: 100%; border-collapse: collapse; font-size: 15px; }
table.t caption { text-align: left; padding: 18px 18px 6px; font: 400 21px/1.3 var(--serif); color: var(--ink); }
table.t th, table.t td { text-align: left; padding: 14px 18px; border-bottom: 1px solid var(--line); vertical-align: top; }
table.t thead th { font: 600 12px/1.3 var(--sans); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); background: var(--ivory); }
table.t tbody th { font: 400 18px/1.35 var(--serif); color: var(--ink); font-weight: 400; }
table.t tr:last-child td, table.t tr:last-child th { border-bottom: 0; }
.tables { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: start; }
.defs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin: 0; }
.def { border-top: 2px solid var(--navy); padding-top: 18px; }
.def dt { font: 400 21px/1.3 var(--serif); color: var(--ink); margin-bottom: 8px; }
.def dd { margin: 0; font-size: 15px; }
.example { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 48px; align-items: center; background: var(--white); border: 1px solid var(--line); border-radius: var(--r); padding: 36px; }
.example h3 { margin-bottom: 8px; }
.example p { margin: 0; font-size: 15px; }
.example .figs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; }
.example .figs div { padding: 0 24px; border-left: 1px solid var(--line); }
.example .figs b { display: block; font: 400 34px/1.1 var(--serif); color: var(--navy); }
.example .figs span { font-size: 14px; color: var(--muted); }
.note { font-size: 13.5px; color: var(--muted); margin-top: 14px; }
.sub-h { font-size: clamp(26px, 2.4vw, 32px); margin: 64px 0 24px; }

/* luxury blocks */
.lux-block { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 72px; align-items: center; padding: 72px 0; border-top: 1px solid var(--line); }
.lux-block:first-child { border-top: 0; padding-top: 0; }
.lux-block.rev { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.lux-block.rev .ph { order: 2; }
.lux-block .ph { aspect-ratio: 3 / 2; overflow: hidden; border-radius: var(--r); }
.lux-block .ph img { width: 100%; height: 100%; object-fit: cover; }
.lux-block .tag { font: 400 15px/1 var(--serif); color: var(--bronze-d); display: block; margin-bottom: 14px; }
.lux-block p { font-size: 16.5px; }
.lux-hero .ph { aspect-ratio: 21 / 8; overflow: hidden; }
.lux-hero .ph img { width: 100%; height: 100%; object-fit: cover; }

/* testimonial band inside pages */
.tband { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: 56px; align-items: end; }
.tband blockquote { margin: 0; }
.tband .serif-quote { margin: 0 0 20px; }

/* in-depth article layout */
.depth { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 80px; }
.toc { position: sticky; top: calc(var(--head) + 32px); align-self: start; font-size: 14.5px; }
.toc-h { font: 600 12px/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin-bottom: 16px; }
.toc ol { list-style: none; padding: 0; margin: 0; border-left: 1px solid var(--line); }
.toc li { margin: 0; }
.toc a { display: block; padding: 7px 0 7px 16px; margin-left: -1px; border-left: 1px solid transparent; color: var(--body); text-decoration: none; line-height: 1.4; }
.toc a:hover { color: var(--ink); border-left-color: var(--bronze); }
.prose { max-width: 720px; }
.prose > section + section { margin-top: 56px; padding-top: 56px; border-top: 1px solid var(--line); }
.prose h2 { font-size: clamp(28px, 2.5vw, 36px); margin-bottom: 20px; }
.prose h3 { font-size: 22px; margin-top: 32px; }
.prose ul li::marker, .prose ol li::marker { color: var(--bronze-d); }
.callout { border-left: 2px solid var(--bronze); background: var(--white); padding: 20px 24px; margin: 28px 0; }
.callout .callout-h { display: block; font: 400 19px/1.3 var(--serif); color: var(--ink); margin-bottom: 6px; }
.callout p { margin: 0; font-size: 16px; }
.takeaways { background: var(--white); border: 1px solid var(--line); border-radius: var(--r); padding: 28px 32px; margin-bottom: 56px; }
.takeaways h2 { font: 600 12px/1 var(--sans) !important; letter-spacing: .14em; text-transform: uppercase; color: var(--bronze-d); margin: 0 0 16px !important; }
.takeaways ul { margin: 0; }
.takeaways li { color: var(--ink); }

/* FAQ */
.faq { border-top: 1px solid var(--line-d); }
.faq details { border-bottom: 1px solid var(--line-d); }
.faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 22px 0; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary h3 { margin: 0; font: 400 21px/1.35 var(--serif); color: var(--ink); }
.faq summary:hover h3 { color: var(--bronze-d); }
.faq summary .pm { position: relative; width: 16px; height: 16px; flex: none; }
.faq summary .pm::before, .faq summary .pm::after { content: ''; position: absolute; left: 0; right: 0; top: 7.5px; height: 1px; background: var(--ink); transition: transform .2s; }
.faq summary .pm::after { transform: rotate(90deg); }
.faq details[open] summary .pm::after { transform: rotate(0); }
.faq .a { padding: 0 0 24px; max-width: 760px; }
.faq .a p { margin: 0; }
.faq-wrap { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 64px; }

/* byline / author */
.byline { display: flex; gap: 12px; align-items: center; color: var(--muted); font-size: 14px; margin-top: 8px; }
.byline img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; object-position: 50% 20%; }
.byline b { color: var(--ink); font-weight: 600; }
.art-photo { margin-top: 48px; aspect-ratio: 21 / 9; overflow: hidden; border-radius: var(--r); }
.art-photo img { width: 100%; height: 100%; object-fit: cover; }
.author { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 22px; align-items: center; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 28px 0; margin-top: 64px; }
.author img { width: 88px; height: 88px; border-radius: 50%; object-fit: cover; object-position: 50% 20%; }
.author p { margin: 0; font-size: 15px; }

/* about */
.story { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 64px; padding: 56px 0; border-top: 1px solid var(--line); }
.story.first { border-top: 0; padding-top: 0; }
.story h2 { font-size: clamp(28px, 2.6vw, 36px); }
.story p { font-size: 17.5px; }
.pull { font: italic 400 clamp(26px, 2.6vw, 34px)/1.4 var(--serif); color: var(--ink); max-width: 860px; margin: 0; }
.bg-navy .pull { color: #fff; }
.pull + .q-who { margin-top: 18px; display: block; }
.links-list { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--line); }
.links-list li { margin: 0; border-bottom: 1px solid var(--line); }
.links-list a { display: flex; justify-content: space-between; align-items: center; min-height: 52px; text-decoration: none; color: var(--ink); }
.links-list a:hover { color: var(--bronze-d); }

/* team */
.team { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 64px; }
.member .portrait { margin-bottom: 28px; max-width: 440px; background: #6f7273; }
.member h2 { font-size: 36px; margin-bottom: 4px; }
.member .role { display: block; font: 600 12.5px/1.3 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--bronze-d); margin-bottom: 18px; }
.history { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.history li { margin: 0; border-top: 2px solid var(--navy); padding-top: 22px; }
.history b { display: block; font: 400 52px/1 var(--serif); color: var(--navy); margin-bottom: 12px; }
.history p { margin: 0; font-size: 15.5px; }

/* contact */
.contact { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 80px; align-items: start; }
.contact-me { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 22px; align-items: center; margin-bottom: 36px; }
.contact-me .portrait { aspect-ratio: 1; border-radius: 50%; }
.contact-me p { margin: 0; font-size: 14.5px; color: var(--muted); line-height: 1.5; }
.contact-me b { display: block; font: 400 24px/1.2 var(--serif); color: var(--ink); margin-bottom: 2px; }
.contact h1 { font-size: clamp(38px, 4.2vw, 56px); }
.c-list { list-style: none; padding: 0; margin: 36px 0 0; border-top: 1px solid var(--line); }
.c-list li { display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--line); margin: 0; font-size: 15.5px; }
.c-list li > span:first-child { font: 600 12px/1.9 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.c-list a { word-break: break-word; }
.c-phone { font: 400 30px/1.15 var(--serif); color: var(--ink); text-decoration: none; display: inline-block; }
.c-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 12px; }
.office { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 64px; align-items: center; }
.office .ph { aspect-ratio: 3 / 2; overflow: hidden; border-radius: var(--r); }
.office .ph img { width: 100%; height: 100%; object-fit: cover; }

/* sold */
.track { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); margin-top: 48px; }
.track div { padding: 28px 24px; border-left: 1px solid var(--line); }
.track div:first-child { border-left: 0; padding-left: 0; }
.track b { display: block; font: 400 38px/1 var(--serif); color: var(--navy); margin-bottom: 8px; }
.track span { font-size: 14px; color: var(--muted); }
.sold-feature { padding: 64px 0; border-top: 1px solid var(--line); }
.sold-feature:first-child { border-top: 0; padding-top: 0; }
.sold-feature .head-row { margin-bottom: 28px; }
.sold-feature h3 { font-size: clamp(28px, 2.6vw, 36px); margin-bottom: 6px; }
.sold-feature .meta { color: var(--muted); font-size: 15px; margin: 0; }
.gal { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 200px; gap: 12px; }
.gal figure { overflow: hidden; border-radius: var(--r); }
.gal figure:first-child { grid-column: span 2; grid-row: span 2; }
.gal img { width: 100%; height: 100%; object-fit: cover; }
.gal.few { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 280px; }
.gal.few figure:first-child { grid-column: span 2; grid-row: span 1; }
.gal.one { grid-template-columns: 1fr; grid-auto-rows: auto; }
.gal.one figure:first-child { grid-column: auto; grid-row: auto; aspect-ratio: 21 / 9; }
.filters { display: flex; flex-wrap: wrap; gap: 16px; align-items: end; margin-bottom: 28px; }
.filters .field { min-width: 240px; }
.filters .count { margin-left: auto; font-size: 14px; color: var(--muted); padding-bottom: 14px; }
.sold-list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 32px; border-top: 1px solid var(--line); }
.sold-list li { margin: 0; padding: 16px 0; border-bottom: 1px solid var(--line); }
.sold-list b { display: block; font: 400 18px/1.35 var(--serif); color: var(--ink); }
.sold-list span { font-size: 13.5px; color: var(--muted); }
.sold-list li[hidden] { display: none; }
.empty { display: none; padding: 24px 0; color: var(--muted); }
.empty.show { display: block; }

/* testimonials page */
.t-grid { columns: 3 320px; column-gap: 32px; }
.t-card { break-inside: avoid; background: var(--white); border: 1px solid var(--line); border-radius: var(--r); padding: 28px; margin: 0 0 32px; }
.t-card blockquote { margin: 0; }
.t-card p { font: 400 18px/1.55 var(--serif); color: var(--ink); margin: 0 0 18px; }
.t-card footer { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; font-size: 13.5px; color: var(--muted); padding-top: 14px; border-top: 1px solid var(--line); }
.t-card footer b { color: var(--ink); font-weight: 600; }

/* answers index */
.ans-theme { padding: 48px 0; border-top: 1px solid var(--line); }
.ans-theme:first-child { border-top: 0; padding-top: 0; }
.ans-theme h2 { font-size: clamp(26px, 2.3vw, 32px); display: flex; justify-content: space-between; gap: 16px; align-items: baseline; flex-wrap: wrap; }
.ans-theme h2 a { font: 600 14.5px/1 var(--sans); }
.ans-list { columns: 2 340px; column-gap: 48px; list-style: none; padding: 0; margin: 0; }
.ans-list li { break-inside: avoid; margin: 0; padding: 9px 0; border-bottom: 1px solid var(--line); font-size: 15.5px; }
.ans-list a { color: var(--ink); text-decoration: none; }
.ans-list a:hover { color: var(--bronze-d); text-decoration: underline; }
.ans-list .n { display: inline-block; min-width: 36px; font-size: 13px; color: var(--muted); }
.q-missing { color: #a2402f; }

/* lead modal: two short steps, 760px, small portrait next to the heading */
.lm { position: fixed; inset: 0; z-index: 350; display: none; align-items: center; justify-content: center; padding: 24px; background: rgba(16,31,43,.5); }
.lm.open { display: flex; }
.lm-box { position: relative; width: 100%; max-width: 760px; max-height: calc(100vh - 48px); overflow: auto; overscroll-behavior: contain; background: var(--white); border: 1px solid var(--line); border-radius: var(--r); box-shadow: 0 24px 60px -20px rgba(16,31,43,.35); padding: 36px 40px 32px; }
.lm-head { display: flex; gap: 16px; align-items: center; padding-right: 52px; }
.lm-head img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; object-position: 50% 20%; flex: none; }
.lm-head h2 { font-size: clamp(26px, 3vw, 32px); margin: 0 0 4px; }
.lm-head p { margin: 0; font-size: 15px; color: var(--muted); line-height: 1.5; }
.lm-close { position: absolute; top: 16px; right: 16px; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid var(--line-d); background: var(--white); border-radius: 50%; color: var(--ink); cursor: pointer; }
.step-n { font: 600 12px/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--bronze-d); margin: 28px 0 14px; }
.step-top { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.step-top .step-n { margin-bottom: 0; }
.step-back { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; background: none; border: 0; padding: 0; margin-top: 18px; font: 500 14px/1.2 var(--sans); color: var(--navy); cursor: pointer; text-align: right; }
.step-back svg { width: 15px; height: 15px; }
.intents { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.intents label { position: relative; margin: 0; }
.intents input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.intents span { display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 14px; border: 1px solid var(--line-d); border-radius: var(--r); font: 500 15px/1.25 var(--sans); color: var(--ink); cursor: pointer; background: #fff; transition: border-color .15s, background .15s; }
.intents span:hover { border-color: var(--navy); }
.intents span svg { width: 18px; height: 18px; color: var(--bronze-d); }
.intents input:checked + span { border-color: var(--navy); box-shadow: inset 0 0 0 1px var(--navy); background: var(--ivory); }
.intents input:focus-visible + span { outline: 2px solid var(--bronze-d); outline-offset: 2px; }
.step .btn[data-next], .step .btn[type="submit"] { width: 100%; margin-top: 22px; }
.lm .preview-note { margin-top: 20px; }
.opt { font-weight: 400; color: var(--muted); font-size: 12.5px; margin-left: 4px; }
.oneof { font-size: 13px; color: var(--muted); margin: -6px 0 0; }
.oneof.bad { color: #a2402f; }
[hidden] { display: none !important; }

/* library tools (guides, questions) */
.lib-tools { display: flex; flex-wrap: wrap; gap: 16px 24px; align-items: end; padding: 28px 0 32px; border-bottom: 1px solid var(--line); margin-bottom: 56px; }
.lib-tools .field { flex: 1 1 260px; max-width: 420px; }
.cat-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.cat-chips button { min-height: 44px; padding: 0 16px; border: 1px solid var(--line-d); border-radius: 999px; background: #fff; font: 500 14px/1 var(--sans); color: var(--ink); cursor: pointer; }
.cat-chips button:hover { border-color: var(--navy); }
.cat-chips button[aria-pressed="true"] { background: var(--navy); border-color: var(--navy); color: #fff; }
.lib-count { margin: 0 0 0 auto; font-size: 14px; color: var(--muted); padding-bottom: 12px; }
.empty a { color: var(--navy); }

/* grouped neighborhoods menu, icons in Sell/Buy menus */
.mega-groups { grid-column: 1 / 3; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 40px; align-content: start; }
.mega-groups .mg-h { font: 600 12px/1.3 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--bronze-d); margin: 0 0 8px; }
.mega-groups ul { list-style: none; margin: 0; padding: 0; }
.mega-groups li { margin: 0; }
.mega-groups a { display: block; padding: 6px 0; font: 400 19px/1.3 var(--serif); color: var(--ink); text-decoration: none; }
.mega-groups a:hover { color: var(--bronze-d); }
.mega-links a.has-ic { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 14px; align-items: start; }
.mega-links .mi { color: var(--bronze-d); padding-top: 5px; }
.mega-links .mi svg { width: 18px; height: 18px; }

/* footer */
.foot { background: var(--navy-d); color: #9eabb6; font-size: 14.5px; }
.foot a { color: #dfe5ea; text-decoration: none; }
.foot a:hover { color: #fff; text-decoration: underline; }
.foot-top { display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(4, minmax(0, 1fr)); gap: 40px; padding-top: 80px; padding-bottom: 56px; }
.foot .gps { height: 22px; width: auto; margin-bottom: 12px; }
.foot .tag { font: italic 400 18px/1.4 var(--serif); color: #dfe5ea; margin: 0 0 24px; }
.foot .dpm { height: 30px; width: auto; margin-bottom: 22px; opacity: .92; }
.foot-h { font: 600 12px/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: #fff; margin: 0 0 18px; }
.foot ul { list-style: none; padding: 0; margin: 0; }
.foot li { margin-bottom: 10px; }
.foot-legal { border-top: 1px solid rgba(255,255,255,.1); padding-top: 24px; padding-bottom: 32px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 32px; font-size: 13px; line-height: 1.6; }
.foot-legal p { margin: 0; max-width: 860px; }
.callbar { display: none; }

/* ================= responsive ================= */
@media (max-width: 1240px) {
  .nav-link { padding: 0 10px; font-size: 14.5px; }
  .top-in { gap: 18px; }
  .top-phone span { display: none; }
  .mega-in { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 260px; gap: 8px 32px; }
}
@media (max-width: 1080px) {
  :root { --gut: 32px; --sec: 88px; }
  .nav, .top-actions, .mega { display: none; }
  .burger { display: inline-flex; margin-left: auto; }
  .hero-grid, .phero-grid, .feature, .meet, .quotes, .val, .brief, .contact, .office, .tband, .faq-wrap, .story, .lux-block, .lux-block.rev { grid-template-columns: minmax(0, 1fr); gap: 48px; }
  .lux-block.rev .ph { order: 0; }
  .story { gap: 16px; }
  .services, .guides { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px 32px; }
  .hoods { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .process { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; border-top: 0; }
  .process li { border-top: 1px solid var(--line-d); padding-bottom: 32px; }
  .groups, .compare, .defs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tables { grid-template-columns: minmax(0, 1fr); }
  .depth { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .toc { display: none; }
  .meet .portrait { max-width: 520px; }
  .invite { grid-template-columns: 140px minmax(0, 1fr); gap: 32px; }
  .invite .cta-row { grid-column: 1 / -1; flex-direction: row; }
  .foot-top { grid-template-columns: 1fr 1fr; }
  .sold-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .example { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .reasons { grid-template-columns: minmax(0, 1fr); }
  .reasons li, .reasons li + li { padding: 22px 0; border-left: 0; border-bottom: 1px solid var(--line); }
  .phero .ph { aspect-ratio: 3 / 2; }
}
@media (max-width: 760px) {
  :root { --gut: 20px; --sec: 64px; --sec-s: 48px; --head: 64px; }
  body { font-size: 16.5px; }
  h1, .phero h1, .contact h1 { font-size: clamp(36px, 10vw, 44px); }
  h2 { font-size: clamp(30px, 8vw, 36px); }
  .lead { font-size: 18px; }
  .ribbon .rb-long { display: none; }
  .brand { gap: 10px; }
  .brand .gps { height: 16px; }
  .brand .bsep { height: 24px; }
  .brand .dpm { height: 20px; }
  .burger .bl { display: none; }
  .btn { white-space: normal; text-align: center; line-height: 1.25; padding-top: 10px; padding-bottom: 10px; }
  .hero { padding-top: 36px; padding-bottom: 56px; }
  .hero h1 { font-size: clamp(38px, 10.5vw, 46px); }
  .hero-photo { margin: 0 calc(-1 * var(--gut)); }
  .hero-photo .ph { border-radius: 0; aspect-ratio: 4 / 3; }
  .hero-photo .cap { padding: 0 var(--gut); }
  .hero .cta-row .btn, .phero .cta-row .btn { flex: 1 1 100%; }
  .phero { padding-top: 32px; padding-bottom: 56px; }
  .facts-strip ul { grid-template-columns: 1fr 1fr; }
  .facts-strip li { padding: 22px 16px; border-left: 0; border-top: 1px solid var(--line); }
  .facts-strip li:nth-child(-n+2) { border-top: 0; }
  .facts-strip li:nth-child(odd) { padding-left: 0; border-right: 1px solid var(--line); }
  .facts-strip b { font-size: 32px; }
  .services, .guides, .guides.three, .hoods, .props, .groups, .compare, .defs, .team, .history, .sold-list { grid-template-columns: minmax(0, 1fr); }
  .services { gap: 48px; }
  .svc .ph { aspect-ratio: 3 / 2; }
  .process { grid-template-columns: minmax(0, 1fr); }
  .head-row { flex-direction: column; align-items: flex-start; gap: 20px; }
  .head { margin-bottom: 40px; }
  .feature-photos { aspect-ratio: 4 / 3; }
  .f-grid { grid-template-columns: minmax(0, 1fr); }
  .form-card { padding: 24px 20px; }
  .track { grid-template-columns: 1fr 1fr; }
  .track div { padding: 20px 16px; border-left: 0; border-top: 1px solid var(--line); }
  .track div:nth-child(-n+2) { border-top: 0; }
  .track div:nth-child(odd) { padding-left: 0; border-right: 1px solid var(--line); }
  .gal, .gal.few { grid-template-columns: 1fr 1fr; grid-auto-rows: 140px; }
  .gal figure:first-child, .gal.few figure:first-child { grid-column: span 2; grid-row: span 2; }
  .example .figs { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .example .figs div { border-left: 0; padding: 0; }
  .example { padding: 24px 20px; }
  .invite { grid-template-columns: minmax(0, 1fr); }
  .invite .portrait { width: 120px; }
  .invite .cta-row { flex-direction: column; }
  .contact-me { grid-template-columns: 96px minmax(0, 1fr); gap: 18px; }
  .c-list li { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .filters .field { min-width: 0; flex: 1 1 100%; }
  .filters .count { margin-left: 0; padding-bottom: 0; }
  .foot-top { grid-template-columns: minmax(0, 1fr); gap: 36px; padding-top: 56px; }
  .lux-hero .ph { aspect-ratio: 4 / 3; }
  .lux-block { padding: 48px 0; gap: 28px; }
  .art-photo { aspect-ratio: 4 / 3; margin-top: 32px; }
  .lm { padding: 0; align-items: stretch; }
  .lm-box { max-height: 100vh; border-radius: 0; border: 0; padding: 24px 20px 32px; }
  .intents { grid-template-columns: 1fr 1fr; }
  .intents span { padding: 0 12px; font-size: 14.5px; }
  .lm-head img { width: 48px; height: 48px; }
  .lib-count { margin-left: 0; padding-bottom: 0; }
  .lib-tools .field { max-width: none; }
  .faq summary h3 { font-size: 19px; }
  .faq-wrap { gap: 24px; }
  .member .portrait { max-width: none; }
  .callbar { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 150; background: var(--white); border-top: 1px solid var(--line); padding: 8px 12px calc(8px + env(safe-area-inset-bottom)); }
  .callbar .btn { min-height: 46px; padding: 0 10px; font-size: 14.5px; }
  body { padding-bottom: 68px; }
}
@media (max-width: 360px) {
  .brand { gap: 8px; }
  .brand .dpm { height: 17px; }
  .brand .gps { height: 13px; }
  .burger { padding: 0 11px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

.lm .field textarea { min-height: 76px; }
.lm .f-grid { gap: 12px 16px; }

/* Nov 9: Equal Housing mark, staff cards, listing marketing list */
.eho { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.eho-mark { width: 18px; height: 18px; }
.staff { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; margin-top: 56px; padding-top: 40px; border-top: 1px solid var(--line); }
.staff-card h3 { font-size: 26px; margin-bottom: 4px; }
.staff-card .role { display: block; font: 600 12.5px/1.3 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--bronze-d); margin-bottom: 12px; }
.staff-card p { margin: 0; font-size: 15.5px; }
.mkt { margin-top: 56px; padding-top: 40px; border-top: 1px solid rgba(255,255,255,.2); }
.mkt h3 { margin-bottom: 18px; }
.mkt ul { list-style: none; padding: 0; margin: 0; columns: 3 240px; column-gap: 32px; }
.mkt li { display: flex; gap: 10px; align-items: flex-start; break-inside: avoid; margin: 0 0 12px; font-size: 15px; color: #dde3e8; }
.mkt svg { color: #c9b79f; width: 16px; height: 16px; margin-top: 4px; }
@media (max-width: 760px) { .staff { grid-template-columns: minmax(0, 1fr); } }
/* five service paths on the home page */
.services { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 24px; }
.services .svc h3 { font-size: clamp(20px, 1.6vw, 23px); }
@media (max-width: 1240px) { .services { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 28px; } }
@media (max-width: 1080px) { .services { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) { .services { grid-template-columns: minmax(0, 1fr); gap: 48px; } }
