/* ============================================================================
   app.css — application pages. Loaded after style.css.

   Covers: journey, offer-builder, home-value-estimate, shortlist, brokerages, compare, properties, collection, itinerary, search, agent-profile, listing-detail, document-reader, deal-room, open-houses, my-home, brokerage-profile, compare-homes, cash-offer, match,
   and pages/user/dashboard.html.

   Each page's CSS was extracted to "OLD - CSS/page-local/" when style.css was
   rebuilt from the homepage design, and was never put back — so these pages
   were rendering as unstyled markup. The rules are restored here with the
   legacy token names mapped onto the current system, so the layouts work and
   the palette matches the rest of the site.

   These pages carry substantial JS tied to their DOM (journey alone has 191
   classes and 7 fetches), which is why the markup is untouched.
   ========================================================================= */

/* ── Legacy token bridge ─────────────────────────────────────────────────
   The names the ported rules below ask for, pointed at current values. One
   place to change if the palette moves. */
:root{
  --surface:var(--white); --surface-2:var(--wash);
  --bg:var(--wash); --bg-subtle:var(--wash); --bg-muted:#eceef1;
  /* Dark hero backing for the profile templates (agent-profile / brokerage-profile).
     Was never defined here, so background-color:var(--bg-dark) resolved to nothing
     → a white hero with invisible white text. Near-black. */
  --bg-dark:#0b0c0f;
  --border:var(--line); --border-strong:#cbd5e0; --border-light:var(--line);
  --text:var(--ink); --text-secondary:var(--ink-2); --text-muted:var(--muted);
  --text-faint:var(--faint); --text-on-brand:#fff;
  --radius-xs:8px; --radius-sm:12px; --radius-md:16px; --radius-lg:20px; --radius-pill:99px;
  --shadow-sm:0 1px 3px rgba(16,24,40,.09);
  --shadow-md:0 8px 26px rgba(16,24,40,.08);
  --shadow-lg:0 18px 40px -18px rgba(9,10,12,.3);
  --space-1:4px; --space-2:8px; --space-3:14px; --space-4:20px; --space-5:28px; --space-6:40px;
  --t-fast:.18s; --t-med:.28s; --ease-out:var(--ease);
  --success:#1f9d55; --success-tint:#eaf7ef;
  --warning:#b7791f; --warning-tint:#fdf6e7;
  --danger:var(--brand); --danger-tint:var(--brand-tint);
  --info:#2b6cb0; --info-tint:#ebf3fb;
  --blue:var(--brand);
}


/* ══════════ journey ══════════ */


        :root { --header-h: 84px; }
        @media (max-width: 900px) { :root { --header-h: 72px; } }

        .jn-wrap { max-width: 1180px; margin: 0 auto; padding: 2.25rem 1.5rem 5rem; box-sizing: border-box; }

        /* ── Hero ─────────────────────────────────────────────────────── */
        .jn-hero { margin-bottom: 1.75rem; }
        .jn-eyebrow { display: inline-flex; align-items: center; gap: 0.45rem; font-size: 0.76rem; font-weight: 700; letter-spacing: 1.2px; color: var(--brand); text-transform: uppercase; margin-bottom: 0.65rem; }
        .jn-eyebrow svg { width: 15px; height: 15px; }
        .jn-title { font-size: 2.2rem; font-weight: 700; letter-spacing: -1px; color: var(--text); margin: 0 0 0.4rem; }
        .jn-sub { color: var(--text-secondary); font-size: 1.05rem; margin: 0; }

        /* ── Progress + readiness strip ───────────────────────────────── */
        .jn-strip { display: grid; grid-template-columns: 1fr auto; gap: 1.25rem; align-items: center; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 1.25rem 1.5rem; margin-bottom: 1.5rem; box-shadow: 0 2px 10px rgba(16,24,40,0.04); }
        .jn-prog-label { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 0.55rem; }
        .jn-prog-h { font-size: 0.95rem; font-weight: 700; color: var(--text); }
        .jn-prog-pct { font-size: 0.85rem; font-weight: 700; color: var(--brand); font-variant-numeric: tabular-nums; }
        .jn-bar { height: 9px; border-radius: 99px; background: var(--bg-muted); overflow: hidden; }
        .jn-bar-fill { height: 100%; border-radius: 99px; background: linear-gradient(90deg, var(--brand), var(--brand-hover, var(--brand))); transition: width .5s ease; }
        .jn-ready { text-align: center; min-width: 128px; padding-left: 1.25rem; border-left: 1px solid var(--border); }
        .jn-ready-num { font-size: 2rem; font-weight: 700; letter-spacing: -1px; color: var(--text); line-height: 1; font-variant-numeric: tabular-nums; }
        .jn-ready-lbl { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.6px; color: var(--text-muted); margin-top: 0.3rem; }

        /* ── What's new banner ────────────────────────────────────────── */
        .jn-whatsnew { display: flex; align-items: center; gap: 0.75rem; background: var(--brand-tint); border: 1px solid #f2d3d3; border-radius: var(--radius-md); padding: 0.8rem 1rem; margin-bottom: 1.5rem; }
        .jn-wn-ic { flex-shrink: 0; color: var(--brand); display: inline-flex; }
        .jn-wn-ic svg { width: 19px; height: 19px; }
        .jn-wn-text { flex: 1; font-size: 0.92rem; color: var(--text); line-height: 1.4; }
        .jn-wn-x { flex-shrink: 0; background: none; border: none; color: var(--text-faint); cursor: pointer; padding: 3px; border-radius: 5px; line-height: 0; }
        .jn-wn-x:hover { color: var(--brand); }
        .jn-wn-x svg { width: 15px; height: 15px; }

        /* ── Roadmap stepper ──────────────────────────────────────────── */
        .jn-road { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 1.5rem 1.25rem 1.35rem; margin-bottom: 1.5rem; box-shadow: 0 2px 10px rgba(16,24,40,0.04); overflow-x: auto; }
        .jn-steps { display: flex; min-width: min-content; gap: 0; }
        .jn-step { flex: 1 1 0; min-width: 108px; position: relative; text-align: center; padding: 0 0.35rem; }
        .jn-step::before { content: ''; position: absolute; top: 15px; left: -50%; width: 100%; height: 2px; background: var(--border); z-index: 0; }
        .jn-step:first-child::before { display: none; }
        .jn-step.done::before, .jn-step.current::before { background: var(--brand); }
        .jn-dot { position: relative; z-index: 1; width: 32px; height: 32px; border-radius: 50%; margin: 0 auto 0.6rem; display: grid; place-items: center; background: var(--surface); border: 2px solid var(--border); color: var(--text-faint); }
        .jn-dot svg { width: 15px; height: 15px; }
        .jn-step.done .jn-dot { background: var(--brand); border-color: var(--brand); color: var(--text-on-brand); }
        .jn-step.current .jn-dot { border-color: var(--brand); color: var(--brand); box-shadow: 0 0 0 4px var(--brand-tint); }
        .jn-step-lbl { font-size: 0.78rem; font-weight: 700; color: var(--text-muted); line-height: 1.25; }
        .jn-step.current .jn-step-lbl, .jn-step.done .jn-step-lbl { color: var(--text); }
        .jn-step-blurb { font-size: 0.68rem; color: var(--text-faint); margin-top: 0.2rem; line-height: 1.3; display: none; }
        .jn-step.current .jn-step-blurb { display: block; }

        /* ── Main grid ────────────────────────────────────────────────── */
        .jn-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 1.35rem; align-items: start; }
        @media (max-width: 940px) { .jn-grid { grid-template-columns: 1fr; } .jn-strip { grid-template-columns: 1fr; } .jn-ready { border-left: none; border-top: 1px solid var(--border); padding-left: 0; padding-top: 0.9rem; } }

        .jn-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 1.4rem 1.5rem 1.5rem; box-shadow: 0 2px 10px rgba(16,24,40,0.04); margin-bottom: 1.35rem; }
        .jn-card-head { display: flex; align-items: center; gap: 0.6rem; margin-bottom: 1.05rem; }
        .jn-card-ic { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 10px; flex-shrink: 0; background: var(--brand-tint); color: var(--brand); }
        .jn-card-ic svg { width: 19px; height: 19px; }
        .jn-card-h { font-size: 1.06rem; font-weight: 700; letter-spacing: -0.3px; color: var(--text); margin: 0; }
        .jn-card-note { font-size: 0.84rem; color: var(--text-muted); margin: 0.1rem 0 0; }

        /* ── Next best action (hero card) ─────────────────────────────── */
        .jn-nba { background: linear-gradient(135deg, var(--brand), var(--brand-hover, var(--brand-hover))); color: var(--text-on-brand); border: none; }
        .jn-nba .jn-nba-eyebrow { font-size: 0.72rem; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; opacity: 0.85; margin-bottom: 0.5rem; }
        .jn-nba-title { font-size: 1.5rem; font-weight: 700; letter-spacing: -0.6px; margin: 0 0 0.5rem; }
        .jn-nba-detail { font-size: 0.98rem; line-height: 1.5; opacity: 0.95; margin: 0 0 1.2rem; max-width: 46ch; }
        .jn-nba-btn { display: inline-flex; align-items: center; gap: 0.5rem; background: var(--surface); color: var(--brand); font-weight: 700; font-size: 0.95rem; padding: 0.7rem 1.35rem; border-radius: var(--radius-pill); text-decoration: none; transition: transform .12s ease; }
        .jn-nba-btn:hover { transform: translateY(-1px); }
        .jn-nba-btn svg { width: 17px; height: 17px; }

        /* ── Affordability ────────────────────────────────────────────── */
        .jn-afford-main { display: flex; align-items: baseline; gap: 0.6rem; flex-wrap: wrap; }
        .jn-afford-num { font-size: 2.35rem; font-weight: 700; letter-spacing: -1.2px; color: var(--text); line-height: 1; font-variant-numeric: tabular-nums; }
        .jn-afford-cap { font-size: 0.9rem; color: var(--text-muted); }
        .jn-afford-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.8rem; margin-top: 1.25rem; }
        .jn-metric { background: var(--bg-subtle); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 0.8rem 0.9rem; }
        .jn-metric-lbl { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.6px; color: var(--text-faint); margin-bottom: 0.3rem; }
        .jn-metric-num { font-size: 1.15rem; font-weight: 700; color: var(--text); letter-spacing: -0.4px; font-variant-numeric: tabular-nums; }
        .jn-afford-note { font-size: 0.82rem; color: var(--text-muted); margin: 0.95rem 0 0; display: flex; gap: 0.4rem; align-items: flex-start; }
        .jn-afford-note svg { width: 15px; height: 15px; flex-shrink: 0; margin-top: 1px; color: var(--brand); }

        /* ── Expandable details ───────────────────────────────────────── */
        .jn-details { margin-top: 0.9rem; }
        .jn-details summary { cursor: pointer; font-size: 0.85rem; font-weight: 700; color: var(--brand); list-style: none; padding: 0.3rem 0; }
        .jn-details summary::-webkit-details-marker { display: none; }
        .jn-details summary::before { content: '+ '; font-weight: 700; }
        .jn-details[open] summary::before { content: '– '; }

        /* ── What-if calculator ───────────────────────────────────────── */
        .jn-whatif-body { padding-top: 0.6rem; }
        .jn-wi-field { margin-bottom: 0.85rem; }
        .jn-wi-field label { display: flex; justify-content: space-between; font-size: 0.82rem; font-weight: 700; color: var(--text-secondary); margin-bottom: 0.35rem; }
        .jn-wi-field label b { color: var(--text); }
        .jn-wi-field input[type=range] { width: 100%; accent-color: var(--brand); }
        .jn-wi-result { display: flex; justify-content: space-between; align-items: center; padding: 0.7rem 0.9rem; background: var(--brand-tint); border-radius: var(--radius-md); font-weight: 700; margin-top: 0.5rem; }
        .jn-wi-result span:last-child { color: var(--brand); font-size: 1.1rem; font-variant-numeric: tabular-nums; }

        /* ── Cash to close ────────────────────────────────────────────── */
        .jn-ctc { margin-top: 1.1rem; border: 1px solid var(--border); border-radius: var(--radius-md); overflow: hidden; }
        .jn-ctc-head { display: flex; justify-content: space-between; align-items: center; padding: 0.7rem 0.9rem; background: var(--bg-subtle); font-weight: 700; font-size: 0.9rem; color: var(--text); }
        .jn-ctc-total { color: var(--brand); font-variant-numeric: tabular-nums; }
        .jn-ctc-rows { padding: 0.4rem 0.9rem 0.6rem; }
        .jn-ctc-row { display: flex; justify-content: space-between; padding: 0.35rem 0; font-size: 0.85rem; color: var(--text-secondary); }
        .jn-ctc-row span:last-child { font-weight: 700; color: var(--text); font-variant-numeric: tabular-nums; }

        /* ── Readiness checklist ──────────────────────────────────────── */
        .jn-check { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.7rem; }
        .jn-check li { display: flex; gap: 0.65rem; align-items: flex-start; }
        .jn-check-mark { width: 20px; height: 20px; border-radius: 50%; flex-shrink: 0; display: grid; place-items: center; margin-top: 1px; }
        .jn-check-mark.on { background: var(--success, #16a34a); color: var(--text-on-brand); }
        .jn-check-mark.off { background: var(--bg-muted); color: var(--text-faint); border: 1px solid var(--border); }
        .jn-check-mark svg { width: 12px; height: 12px; }
        .jn-check-txt { font-size: 0.9rem; color: var(--text); line-height: 1.35; }
        .jn-check li.pending .jn-check-txt { color: var(--text-muted); }
        .jn-check-cta { display: inline-block; margin-top: 0.15rem; font-size: 0.82rem; font-weight: 700; color: var(--brand); text-decoration: none; }
        .jn-check-cta:hover { text-decoration: underline; }

        /* ── Stage checklist ──────────────────────────────────────────── */
        .jn-tasks { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.15rem; }
        .jn-task { display: flex; align-items: center; gap: 0.7rem; padding: 0.55rem 0.15rem; border-bottom: 1px solid var(--border); }
        .jn-task:last-child { border-bottom: none; }
        .jn-task-box { flex-shrink: 0; width: 22px; height: 22px; border-radius: 6px; border: 1.8px solid var(--border); background: var(--surface); cursor: pointer; display: grid; place-items: center; color: var(--text-on-brand); padding: 0; transition: all .12s ease; }
        .jn-task-box:hover:not(:disabled) { border-color: var(--brand); }
        .jn-task-box:disabled { cursor: default; opacity: 0.85; }
        .jn-task-box svg { width: 13px; height: 13px; }
        .jn-task.done .jn-task-box { background: var(--success, #16a34a); border-color: var(--success, #16a34a); }
        .jn-task-txt { flex: 1; font-size: 0.92rem; color: var(--text); line-height: 1.35; }
        .jn-task.done .jn-task-txt { color: var(--text-muted); text-decoration: line-through; }
        .jn-task-go { flex-shrink: 0; color: var(--brand); display: inline-flex; padding: 0.25rem; border-radius: 6px; }
        .jn-task-go:hover { background: var(--brand-tint); }
        .jn-task-go svg { width: 16px; height: 16px; }
        .jn-guide-link { display: inline-flex; align-items: center; gap: 0.45rem; margin-top: 0.9rem; font-size: 0.85rem; font-weight: 700; color: var(--brand); text-decoration: none; }
        .jn-guide-link:hover { text-decoration: underline; }
        .jn-guide-link svg { width: 15px; height: 15px; }

        /* ── Signals / nudges ─────────────────────────────────────────── */
        .jn-signal { display: flex; gap: 0.7rem; align-items: flex-start; padding: 0.9rem 1rem; border-radius: var(--radius-md); margin-bottom: 0.7rem; border: 1px solid var(--border); position: relative; }
        .jn-signal.act { background: #fff7f7; border-color: #f6d5d5; }
        .jn-signal.good { background: #f0fdf4; border-color: #bbf7d0; }
        .jn-signal-ic { flex-shrink: 0; margin-top: 1px; }
        .jn-signal-ic svg { width: 17px; height: 17px; }
        .jn-signal.act .jn-signal-ic { color: var(--brand); }
        .jn-signal.good .jn-signal-ic { color: var(--success, #16a34a); }
        .jn-signal-body { flex: 1; }
        .jn-signal-txt { font-size: 0.87rem; color: var(--text); line-height: 1.4; }
        .jn-signal-cta { display: inline-block; margin-top: 0.4rem; font-size: 0.82rem; font-weight: 700; color: var(--brand); text-decoration: none; }
        .jn-signal-cta:hover { text-decoration: underline; }
        .jn-signal-x { position: absolute; top: 0.5rem; right: 0.55rem; background: none; border: none; color: var(--text-faint); cursor: pointer; padding: 2px; line-height: 0; border-radius: 4px; }
        .jn-signal-x:hover { color: var(--text); background: var(--bg-muted); }
        .jn-signal-x svg { width: 14px; height: 14px; }

        /* ── Closing countdown ────────────────────────────────────────── */
        .jn-closing { display: flex; align-items: center; gap: 1.25rem; background: linear-gradient(135deg, #0f172a, #1e293b); border: none; color: var(--text-on-brand); }
        .jn-closing-count { flex-shrink: 0; text-align: center; padding-right: 1.25rem; border-right: 1px solid rgba(255,255,255,0.15); }
        .jn-closing-num { display: block; font-size: 2.6rem; font-weight: 700; line-height: 1; letter-spacing: -1.5px; }
        .jn-closing-unit { display: block; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.6px; opacity: 0.75; margin-top: 0.3rem; }
        .jn-closing-h { font-size: 1.25rem; font-weight: 700; letter-spacing: -0.4px; }
        .jn-closing-date { font-size: 0.92rem; opacity: 0.85; margin: 0.25rem 0 0.6rem; }
        .jn-closing .jn-mini-link { color: var(--text-on-brand); text-decoration: underline; }

        /* ── Post-close review ────────────────────────────────────────── */
        .jn-review { border-color: #f2d3d3; background: linear-gradient(160deg, var(--surface), #fff7ed); }
        .jn-stars { display: flex; gap: 0.35rem; }
        .jn-star { background: none; border: none; cursor: pointer; padding: 0.15rem; color: #f59e0b; line-height: 0; }
        .jn-star svg { width: 30px; height: 30px; }
        .jn-star.on { color: #f59e0b; }
        .jn-review-text { width: 100%; box-sizing: border-box; padding: 0.65rem 0.8rem; border: 1px solid var(--border); border-radius: var(--radius-md); font-family: inherit; font-size: 0.92rem; color: var(--text); resize: vertical; }
        .jn-review-text:focus { outline: none; border-color: var(--brand); }

        /* ── Your agent ───────────────────────────────────────────────── */
        .jn-agent { background: linear-gradient(160deg, var(--surface), var(--brand-tint)); border-color: #f2d3d3; }
        .jn-agent-eyebrow { font-size: 0.72rem; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--brand); margin-bottom: 0.75rem; }
        .jn-agent-id { display: flex; gap: 0.8rem; align-items: center; margin-bottom: 1rem; }
        .jn-agent-ava { width: 52px; height: 52px; border-radius: 50%; flex-shrink: 0; overflow: hidden; background: var(--brand); color: var(--text-on-brand); font-weight: 700; font-size: 1.1rem; display: grid; place-items: center; }
        .jn-agent-ava img { width: 100%; height: 100%; object-fit: cover; }
        .jn-agent-name { font-size: 1.05rem; font-weight: 700; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
        .jn-agent-sub { font-size: 0.82rem; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
        .jn-agent-actions { display: flex; gap: 0.5rem; flex-wrap: wrap; }
        .jn-agent-btn { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.85rem; font-weight: 700; padding: 0.5rem 0.85rem; border-radius: var(--radius-pill); text-decoration: none; border: 1px solid var(--border); color: var(--text); background: var(--surface); transition: all .12s ease; }
        .jn-agent-btn:hover { border-color: var(--brand); color: var(--brand); }
        .jn-agent-btn.primary { background: var(--brand); color: var(--text-on-brand); border-color: var(--brand); }
        .jn-agent-btn.primary:hover { background: var(--brand-hover, var(--brand-hover)); color: var(--text-on-brand); }
        .jn-agent-btn svg { width: 15px; height: 15px; }

        /* ── Notifications ────────────────────────────────────────────── */
        .jn-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 99px; background: var(--brand); color: var(--text-on-brand); font-size: 0.72rem; font-weight: 700; margin-left: 0.15rem; vertical-align: middle; }
        .jn-notifs { display: flex; flex-direction: column; }
        .jn-notif { display: flex; gap: 0.6rem; padding: 0.7rem 0.15rem; border-bottom: 1px solid var(--border); text-decoration: none; color: inherit; align-items: flex-start; }
        .jn-notif:last-child { border-bottom: none; }
        .jn-notif:hover { background: var(--bg-subtle); }
        .jn-notif-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; margin-top: 6px; background: transparent; }
        .jn-notif.unread .jn-notif-dot { background: var(--brand); }
        .jn-notif-title { font-size: 0.88rem; font-weight: 700; color: var(--text); line-height: 1.3; }
        .jn-notif.unread .jn-notif-title { color: var(--text); }
        .jn-notif:not(.unread) .jn-notif-title { color: var(--text-muted); font-weight: 600; }
        .jn-notif-text { font-size: 0.8rem; color: var(--text-muted); margin-top: 0.15rem; line-height: 1.35; }
        .jn-notif-time { font-size: 0.72rem; color: var(--text-faint); margin-top: 0.25rem; }

        /* ── Down payment goal ────────────────────────────────────────── */
        .jn-dp-row { display: flex; justify-content: space-between; font-size: 0.85rem; font-weight: 700; color: var(--text); }
        .jn-dp-row span:last-child { color: var(--brand); }

        /* ── Saved searches ───────────────────────────────────────────── */
        .jn-ss-list { display: flex; flex-direction: column; }
        .jn-ss { display: flex; align-items: center; gap: 0.5rem; padding: 0.55rem 0.15rem; border-bottom: 1px solid var(--border); }
        .jn-ss:last-child { border-bottom: none; }
        .jn-ss-main { flex: 1; min-width: 0; text-decoration: none; color: inherit; }
        .jn-ss-name { font-size: 0.9rem; font-weight: 700; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
        .jn-ss-name:hover { color: var(--brand); }
        .jn-ss-sum { font-size: 0.78rem; color: var(--text-muted); margin-top: 0.1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
        .jn-ss-x { flex-shrink: 0; background: none; border: none; color: var(--text-faint); cursor: pointer; padding: 3px; border-radius: 5px; line-height: 0; }
        .jn-ss-x:hover { color: var(--brand); background: var(--bg-muted); }
        .jn-ss-x svg { width: 14px; height: 14px; }

        /* ── Concierge card ───────────────────────────────────────────── */
        .jn-cq { display: flex; flex-direction: column; gap: 0.5rem; margin-bottom: 0.6rem; }
        .jn-cq-btn { text-align: left; background: var(--bg-subtle); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 0.6rem 0.8rem; font-size: 0.86rem; font-weight: 600; color: var(--text); cursor: pointer; font-family: inherit; line-height: 1.3; transition: border-color .12s ease, background .12s ease; }
        .jn-cq-btn:hover { border-color: var(--brand); background: var(--brand-tint); color: var(--brand); }
        .jn-cq-open { width: 100%; background: none; border: none; color: var(--brand); font-weight: 700; font-size: 0.85rem; cursor: pointer; font-family: inherit; display: inline-flex; align-items: center; justify-content: center; gap: 0.35rem; padding: 0.35rem; }
        .jn-cq-open:hover { text-decoration: underline; }
        .jn-cq-open svg { width: 15px; height: 15px; }

        /* ── Home cards (recommended + saved) ─────────────────────────── */
        .jn-homes { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.9rem; }
        @media (max-width: 560px) { .jn-homes { grid-template-columns: 1fr; } }
        .jn-home { display: block; text-decoration: none; color: inherit; border: 1px solid var(--border); border-radius: var(--radius-md); overflow: hidden; background: var(--surface); transition: box-shadow .15s ease, transform .12s ease; }
        .jn-home:hover { box-shadow: 0 6px 18px rgba(16,24,40,0.10); transform: translateY(-2px); }
        .jn-home-img { aspect-ratio: 3/2; background: var(--bg-muted) center/cover no-repeat; position: relative; }
        .jn-home-drop { position: absolute; top: 0.5rem; left: 0.5rem; background: var(--brand); color: var(--text-on-brand); font-size: 0.68rem; font-weight: 700; padding: 0.2rem 0.5rem; border-radius: 99px; text-transform: uppercase; letter-spacing: 0.4px; }
        .jn-home-body { padding: 0.7rem 0.85rem 0.85rem; }
        .jn-home-price { font-size: 1.05rem; font-weight: 700; color: var(--text); letter-spacing: -0.4px; }
        .jn-home-specs { font-size: 0.8rem; color: var(--text-muted); margin: 0.2rem 0 0.15rem; }
        .jn-home-loc { font-size: 0.8rem; color: var(--text-faint); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

        /* ── Transactions (offers & tours) ────────────────────────────── */
        .jn-tx-list { display: flex; flex-direction: column; }
        .jn-tx { display: flex; align-items: center; gap: 0.7rem; padding: 0.7rem 0.15rem; border-bottom: 1px solid var(--border); text-decoration: none; color: inherit; }
        .jn-tx:last-child { border-bottom: none; }
        .jn-tx:hover { background: var(--bg-subtle); }
        .jn-tx-link { display: flex; align-items: center; gap: 0.7rem; flex: 1; min-width: 0; text-decoration: none; color: inherit; }
        .jn-tx-withdraw { flex-shrink: 0; background: none; border: none; color: var(--text-faint); cursor: pointer; padding: 4px; border-radius: 6px; line-height: 0; }
        .jn-tx-withdraw:hover { color: var(--brand); background: var(--bg-muted); }
        .jn-tx-withdraw svg { width: 14px; height: 14px; }
        .jn-tx-ic { flex-shrink: 0; width: 32px; height: 32px; border-radius: 8px; display: grid; place-items: center; background: var(--brand-tint); color: var(--brand); }
        .jn-tx-ic svg { width: 17px; height: 17px; }
        .jn-tx-body { flex: 1; min-width: 0; }
        .jn-tx-title { font-size: 0.9rem; font-weight: 700; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
        .jn-tx-sub { font-weight: 500; color: var(--text-muted); }
        .jn-tx-meta { font-size: 0.76rem; color: var(--text-faint); margin-top: 0.1rem; }
        .jn-badge2 { flex-shrink: 0; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.4px; padding: 0.22rem 0.55rem; border-radius: 99px; }
        .jn-badge2.blue { background: #eff6ff; color: #1d4ed8; }
        .jn-badge2.green { background: #f0fdf4; color: #16a34a; }
        .jn-badge2.amber { background: #fffbeb; color: var(--warning); }
        .jn-badge2.gray { background: var(--bg-muted); color: var(--text-muted); }

        /* ── Saved homes (with rating + notes) ────────────────────────── */
        .jn-saved { display: flex; flex-direction: column; gap: 0.5rem; }
        .jn-saved-row { display: flex; gap: 0.85rem; padding: 0.7rem 0; border-bottom: 1px solid var(--border); }
        .jn-saved-row:last-child { border-bottom: none; }
        .jn-saved-img { flex-shrink: 0; width: 96px; height: 72px; border-radius: var(--radius-md); background: var(--bg-muted) center/cover no-repeat; position: relative; display: block; }
        .jn-saved-img .jn-home-drop { top: 0.35rem; left: 0.35rem; font-size: 0.6rem; padding: 0.12rem 0.4rem; }
        .jn-saved-body { flex: 1; min-width: 0; }
        .jn-saved-top { display: flex; align-items: baseline; gap: 0.55rem; text-decoration: none; }
        .jn-saved-price { font-size: 1.02rem; font-weight: 700; color: var(--text); letter-spacing: -0.4px; }
        .jn-saved-loc { font-size: 0.8rem; color: var(--text-faint); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
        .jn-saved-specs { font-size: 0.8rem; color: var(--text-muted); margin: 0.1rem 0 0.35rem; }
        .jn-hstars { display: flex; gap: 0.1rem; margin-bottom: 0.4rem; }
        .jn-hstar { background: none; border: none; cursor: pointer; padding: 0.1rem; color: #d1d5db; line-height: 0; }
        .jn-hstar.on { color: #f59e0b; }
        .jn-hstar svg { width: 17px; height: 17px; }
        .jn-note-show { font-size: 0.82rem; color: var(--text-secondary); line-height: 1.4; background: var(--bg-subtle); border-radius: var(--radius-md); padding: 0.5rem 0.65rem; }
        .jn-note-edit { background: none; border: none; color: var(--brand); font-weight: 700; font-size: 0.78rem; cursor: pointer; font-family: inherit; padding: 0 0 0 0.25rem; }
        .jn-note-edit:hover { text-decoration: underline; }
        .jn-note-add { background: none; border: none; color: var(--brand); font-weight: 700; font-size: 0.82rem; cursor: pointer; font-family: inherit; display: inline-flex; align-items: center; gap: 0.3rem; padding: 0; }
        .jn-note-add svg { width: 14px; height: 14px; }
        .jn-note-ta { width: 100%; box-sizing: border-box; padding: 0.55rem 0.7rem; border: 1px solid var(--border); border-radius: var(--radius-md); font-family: inherit; font-size: 0.85rem; color: var(--text); resize: vertical; }
        .jn-note-ta:focus { outline: none; border-color: var(--brand); }

        /* ── Tools quicklinks ─────────────────────────────────────────── */
        .jn-tools { display: grid; grid-template-columns: 1fr 1fr; gap: 0.6rem; }
        .jn-tool { display: flex; gap: 0.6rem; align-items: center; padding: 0.75rem 0.85rem; border: 1px solid var(--border); border-radius: var(--radius-md); text-decoration: none; color: var(--text); transition: border-color .12s ease, background .12s ease; }
        .jn-tool:hover { border-color: var(--brand); background: var(--brand-tint); }
        .jn-tool-ic { color: var(--brand); flex-shrink: 0; }
        .jn-tool-ic svg { width: 18px; height: 18px; }
        .jn-tool-txt { font-size: 0.85rem; font-weight: 700; line-height: 1.2; }

        .jn-empty { font-size: 0.9rem; color: var(--text-muted); padding: 0.5rem 0; }
        .jn-mini-link { font-size: 0.85rem; font-weight: 700; color: var(--brand); text-decoration: none; }
        .jn-mini-link:hover { text-decoration: underline; }
        .jn-card-toplink { margin-left: auto; }

        /* ── Profile summary ──────────────────────────────────────────── */
        .jn-prof-row { display: flex; justify-content: space-between; gap: 1rem; padding: 0.5rem 0; border-bottom: 1px solid var(--border); font-size: 0.88rem; }
        .jn-prof-row:last-child { border-bottom: none; }
        .jn-prof-k { color: var(--text-muted); }
        .jn-prof-v { color: var(--text); font-weight: 700; text-align: right; }

        /* ── Onboarding wizard ────────────────────────────────────────── */
        .jn-onb { max-width: 640px; margin: 0 auto; }
        .jn-onb-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 2rem 2.1rem 2.2rem; box-shadow: 0 4px 20px rgba(16,24,40,0.06); }
        .jn-onb-h { font-size: 1.5rem; font-weight: 700; letter-spacing: -0.6px; margin: 0 0 0.4rem; color: var(--text); }
        .jn-onb-sub { color: var(--text-secondary); font-size: 0.98rem; margin: 0 0 1.6rem; }
        .jn-intent { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 0.7rem; margin-bottom: 1.5rem; }
        @media (max-width: 520px) { .jn-field-row { grid-template-columns: 1fr !important; } }
        @media (max-width: 420px) { .jn-intent { grid-template-columns: 1fr 1fr; } }
        /* Mobile safeguards for the richer cards */
        @media (max-width: 600px) {
            .jn-wrap { padding-left: 1rem; padding-right: 1rem; }
            .jn-card { padding: 1.15rem 1.15rem 1.25rem; }
            .jn-title { font-size: 1.8rem; }
            .jn-afford-num { font-size: 2rem; }
            .jn-afford-metrics { grid-template-columns: 1fr 1fr; }
            .jn-saved-actions { flex-wrap: wrap; }
            .jn-saved-img { width: 84px; height: 64px; }
            .jn-closing { flex-direction: column; align-items: flex-start; gap: 0.9rem; }
            .jn-closing-count { padding-right: 0; border-right: none; text-align: left; display: flex; align-items: baseline; gap: 0.5rem; }
            .jn-nba-title { font-size: 1.3rem; }
            .jn-tx-title, .jn-notif-title { white-space: normal; }
            .jn-modal-card { padding: 1.35rem 1.25rem 1.5rem; }
        }
        .jn-intent-opt { cursor: pointer; border: 1px solid var(--border); border-radius: var(--radius-md); padding: 0.95rem 0.8rem; text-align: center; transition: all .12s ease; }
        .jn-intent-opt:hover { border-color: var(--brand); }
        .jn-intent-opt.sel { border-color: var(--brand); background: var(--brand-tint); }
        .jn-intent-opt input { position: absolute; opacity: 0; }
        .jn-intent-ic { color: var(--brand); margin-bottom: 0.4rem; }
        .jn-intent-ic svg { width: 22px; height: 22px; }
        .jn-intent-lbl { font-size: 0.92rem; font-weight: 700; }
        .jn-intent-desc { font-size: 0.74rem; color: var(--text-muted); margin-top: 0.15rem; }
        .jn-field { margin-bottom: 1.1rem; }
        .jn-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.9rem; }
        .jn-label { display: block; font-size: 0.82rem; font-weight: 700; color: var(--text); margin-bottom: 0.4rem; }
        .jn-input, .jn-select { width: 100%; box-sizing: border-box; padding: 0.65rem 0.8rem; border: 1px solid var(--border); border-radius: var(--radius-md); font-size: 0.95rem; font-family: inherit; color: var(--text); background: var(--surface); }
        .jn-input:focus, .jn-select:focus { outline: none; border-color: var(--brand); }
        .jn-check-inline { display: flex; align-items: center; gap: 0.55rem; font-size: 0.92rem; font-weight: 600; cursor: pointer; }
        .jn-check-inline input { width: 18px; height: 18px; accent-color: var(--brand); }
        .jn-hint { font-size: 0.76rem; color: var(--text-faint); margin-top: 0.3rem; }
        .jn-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; background: var(--brand); color: var(--text-on-brand); font-weight: 700; font-size: 0.98rem; padding: 0.8rem 1.6rem; border-radius: var(--radius-pill); border: none; cursor: pointer; text-decoration: none; transition: background .12s ease; }
        .jn-btn:hover { background: var(--brand-hover, var(--brand-hover)); }
        .jn-btn.full { width: 100%; }
        .jn-btn.ghost { background: transparent; color: var(--text-muted); }
        /* Inline icons inside a button must be sized — the raw SVGs carry only a
           viewBox, so without this a check/plus/arrow balloons and warps the button. */
        .jn-btn svg { width: 1.15rem; height: 1.15rem; flex: none; }
        .jn-onb-foot { display: flex; align-items: center; justify-content: space-between; margin-top: 1.6rem; gap: 1rem; }
        .jn-seller-only, .jn-buyer-only { display: none; }

        /* ── Home card tour button ────────────────────────────────────── */
        .jn-home-wrap { position: relative; }
        .jn-tour-btn { position: absolute; top: 0.5rem; right: 0.5rem; width: 32px; height: 32px; border-radius: 8px; border: none; background: rgba(255,255,255,0.94); color: var(--brand); cursor: pointer; display: grid; place-items: center; box-shadow: 0 2px 8px rgba(16,24,40,0.16); transition: transform .12s ease; }
        .jn-tour-btn:hover { transform: scale(1.08); background: var(--surface); }
        .jn-tour-btn svg { width: 17px; height: 17px; }
        .jn-saved-actions { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; margin-bottom: 0.4rem; }
        .jn-saved-btns { display: flex; gap: 0.4rem; }
        .jn-ask-link { padding: 0.3rem 0.5rem; }
        .jn-ask-link svg { width: 14px; height: 14px; margin: 0; }
        .jn-coll-btn { padding: 0.3rem 0.5rem; position: relative; }
        .jn-coll-btn svg { width: 14px; height: 14px; margin: 0; }
        .jn-coll-count { position: absolute; top: -5px; right: -5px; background: var(--brand); color: var(--text-on-brand); font-size: 0.6rem; font-weight: 700; min-width: 15px; height: 15px; border-radius: 99px; display: grid; place-items: center; padding: 0 3px; }
        .jn-coll-picker { display: flex; flex-direction: column; gap: 0.15rem; margin-bottom: 0.5rem; }
        .jn-coll-opt { display: flex; align-items: center; gap: 0.6rem; padding: 0.55rem 0.15rem; font-size: 0.92rem; font-weight: 600; color: var(--text); cursor: pointer; border-bottom: 1px solid var(--border); }
        .jn-coll-opt:last-child { border-bottom: none; }
        .jn-coll-opt input { width: 18px; height: 18px; accent-color: var(--brand); }
        .jn-tour-link { display: inline-flex; align-items: center; gap: 0.3rem; background: none; border: 1px solid var(--border); border-radius: var(--radius-pill); color: var(--text); font-weight: 700; font-size: 0.78rem; padding: 0.3rem 0.7rem; cursor: pointer; font-family: inherit; }
        .jn-tour-link:hover { border-color: var(--brand); color: var(--brand); }
        .jn-tour-link svg { width: 13px; height: 13px; }

        /* ── Modal ────────────────────────────────────────────────────── */
        .jn-modal { position: fixed; inset: 0; z-index: 3000; background: rgba(12,15,20,0.5); display: grid; place-items: center; padding: 1.25rem; }
        .jn-modal-card { background: var(--surface); border-radius: var(--radius-lg); padding: 1.6rem 1.7rem 1.75rem; width: min(460px, 100%); max-height: 90vh; overflow-y: auto; box-shadow: 0 24px 60px rgba(16,24,40,0.28); position: relative; }
        .jn-modal-x { position: absolute; top: 0.9rem; right: 0.9rem; width: 32px; height: 32px; border-radius: 50%; border: none; background: var(--bg-muted); cursor: pointer; display: grid; place-items: center; }
        .jn-modal-x::before { content: ''; width: 14px; height: 2px; background: var(--text-muted); position: absolute; transform: rotate(45deg); }
        .jn-modal-x::after { content: ''; width: 14px; height: 2px; background: var(--text-muted); position: absolute; transform: rotate(-45deg); }
        .jn-modal-x:hover { background: var(--border); }
        .jn-modal-h { font-size: 1.3rem; font-weight: 700; letter-spacing: -0.5px; margin: 0 0 0.35rem; color: var(--text); }
        .jn-modal-sub { font-size: 0.92rem; color: var(--text-muted); margin: 0 0 1.25rem; line-height: 1.45; }
        .jn-tourtype { display: flex; gap: 0.6rem; }
        .jn-tt-opt { flex: 1; display: flex; align-items: center; gap: 0.45rem; border: 1px solid var(--border); border-radius: var(--radius-md); padding: 0.6rem 0.8rem; font-size: 0.9rem; font-weight: 600; cursor: pointer; }
        .jn-tt-opt input { accent-color: var(--brand); }

        /* Sits directly below the fixed site header (.nav, ~var(--header-h)).
           Without the top offset it rendered inside the header band, hidden
           behind it and unclickable. .jn-wrap below no longer double-counts the
           header offset (it now only adds its own breathing room). */
        .jn-portalbar { display:flex; align-items:center; gap:1rem; flex-wrap:wrap;
                        max-width:1140px; margin:var(--header-h) auto 0; padding:.75rem 1.25rem;
                        border-bottom:1px solid var(--border); }
        .jn-portalbar a { text-decoration:none; font-size:.86rem; font-weight:700; color:var(--text-secondary); }
        .jn-portalbar a:hover { color:var(--brand); }
        .jn-portalbar-back { color:var(--brand) !important; }
        .jn-portalbar-links { display:flex; gap:1.1rem; flex-wrap:wrap; margin-left:auto; }
        @media (max-width:560px) { .jn-portalbar-links { margin-left:0; width:100%; } }
        .jn-loading { text-align: center; padding: 5rem 1rem; color: var(--text-muted); }
        .jn-spin { width: 34px; height: 34px; border: 3px solid var(--border); border-top-color: var(--brand); border-radius: 50%; margin: 0 auto 1rem; animation: jnspin 0.8s linear infinite; }
        @keyframes jnspin { to { transform: rotate(360deg); } }
        [hidden] { display: none !important; }

/* ══════════ offer-builder ══════════ */


        :root { --header-h: 84px; }
        @media (max-width: 900px) { :root { --header-h: 72px; } }

        .ob-wrap { max-width: 1080px; margin: 0 auto; padding: calc(var(--header-h) + 2.25rem) 1.5rem 5rem; box-sizing: border-box; }

        /* ── Hero ─────────────────────────────────────────────────────── */
        .ob-hero { margin-bottom: 1.75rem; }
        /* Typography matches the public tool pages (see .calc-kicker / .calc h1 /
           .calc-lede in style.css) so the offer builder reads like the rest of
           the site, not an admin screen. style.css is the base sheet here, so
           --display / --ink / --muted / --ink-2 are all available. */
        .ob-eyebrow { display: inline-flex; align-items: center; gap: 0.45rem; font: 400 14px/1.4 var(--font); letter-spacing: 0; color: var(--muted); text-transform: none; margin-bottom: 14px; }
        .ob-eyebrow svg { width: 15px; height: 15px; color: var(--brand); }
        .ob-title { font: 550 clamp(32px, 4vw, 52px)/1.08 var(--display); letter-spacing: -.03em; color: var(--ink); margin: 0 0 0.4rem; }
        .ob-sub { font: 400 17.5px/1.55 var(--font); color: var(--ink-2); margin: 18px 0 0; max-width: 54ch; }

        /* ── Cards ────────────────────────────────────────────────────── */
        .ob-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 1.4rem 1.5rem 1.5rem; box-shadow: 0 2px 10px rgba(16,24,40,0.04); margin-bottom: 1.35rem; }
        .ob-card-head { display: flex; align-items: center; gap: 0.6rem; margin-bottom: 1.15rem; }
        .ob-card-ic { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 10px; flex-shrink: 0; background: var(--brand-tint); color: var(--brand); }
        .ob-card-ic svg { width: 19px; height: 19px; }
        .ob-card-h { font-size: 1.06rem; font-weight: 700; letter-spacing: -0.3px; color: var(--text); margin: 0; }
        .ob-card-note { font-size: 0.84rem; color: var(--text-muted); margin: 0.1rem 0 0; }

        /* ── Home summary header ──────────────────────────────────────── */
        .ob-home { display: flex; gap: 1.1rem; align-items: center; }
        .ob-home-img { width: 132px; height: 92px; flex-shrink: 0; border-radius: var(--radius-md); background: var(--bg-muted) center/cover no-repeat; }
        .ob-home-body { min-width: 0; flex: 1; }
        .ob-home-title { font-size: 1.1rem; font-weight: 700; letter-spacing: -0.4px; color: var(--text); margin: 0 0 0.2rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
        .ob-home-loc { font-size: 0.88rem; color: var(--text-muted); margin: 0 0 0.5rem; }
        .ob-home-meta { display: flex; align-items: baseline; gap: 0.85rem; flex-wrap: wrap; }
        .ob-home-price { font-size: 1.3rem; font-weight: 700; color: var(--text); letter-spacing: -0.6px; font-variant-numeric: tabular-nums; }
        .ob-home-specs { font-size: 0.85rem; color: var(--text-muted); }
        .ob-home-change { margin-left: auto; align-self: flex-start; }
        @media (max-width: 560px) { .ob-home { flex-wrap: wrap; } .ob-home-img { width: 100%; height: 160px; } .ob-home-change { margin-left: 0; } }

        /* ── Home picker ──────────────────────────────────────────────── */
        .ob-pick { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.9rem; }
        @media (max-width: 560px) { .ob-pick { grid-template-columns: 1fr; } }
        .ob-pick-item { text-align: left; cursor: pointer; border: 1px solid var(--border); border-radius: var(--radius-md); overflow: hidden; background: var(--surface); padding: 0; font-family: inherit; transition: box-shadow .15s ease, transform .12s ease, border-color .12s ease; }
        .ob-pick-item:hover { box-shadow: 0 6px 18px rgba(16,24,40,0.10); transform: translateY(-2px); border-color: var(--brand); }
        .ob-pick-img { aspect-ratio: 3/2; background: var(--bg-muted) center/cover no-repeat; }
        .ob-pick-body { padding: 0.7rem 0.85rem 0.85rem; }
        .ob-pick-price { font-size: 1.05rem; font-weight: 700; color: var(--text); letter-spacing: -0.4px; }
        .ob-pick-title { font-size: 0.85rem; font-weight: 700; color: var(--text); margin: 0.15rem 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
        .ob-pick-loc { font-size: 0.8rem; color: var(--text-faint); }
        .ob-empty { text-align: center; padding: 1.5rem 0.5rem; }
        .ob-empty-ic { color: var(--text-faint); margin-bottom: 0.6rem; }
        .ob-empty-ic svg { width: 34px; height: 34px; }
        .ob-empty-txt { font-size: 0.95rem; color: var(--text-muted); margin: 0 0 1.1rem; }

        /* ── Layout grid (form + summary) ─────────────────────────────── */
        .ob-grid { display: grid; grid-template-columns: 1.55fr 1fr; gap: 1.35rem; align-items: start; }
        @media (max-width: 900px) { .ob-grid { grid-template-columns: 1fr; } }

        /* ── Form ─────────────────────────────────────────────────────── */
        .ob-field { margin-bottom: 1.1rem; }
        .ob-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.9rem; }
        @media (max-width: 520px) { .ob-field-row { grid-template-columns: 1fr; } }
        .ob-label { display: block; font-size: 0.82rem; font-weight: 700; color: var(--text); margin-bottom: 0.4rem; }
        .ob-label .ob-opt { font-weight: 500; color: var(--text-faint); }
        .ob-input, .ob-select, .ob-textarea { width: 100%; box-sizing: border-box; padding: 0.65rem 0.8rem; border: 1px solid var(--border); border-radius: var(--radius-md); font-size: 0.95rem; font-family: inherit; color: var(--text); background: var(--surface); }
        .ob-input:focus, .ob-select:focus, .ob-textarea:focus { outline: none; border-color: var(--brand); }
        .ob-textarea { min-height: 92px; resize: vertical; line-height: 1.45; }
        .ob-suggest { margin-top: 0.55rem; padding: 0.6rem 0.75rem; background: var(--brand-tint); border: 1px solid #f2d3d3; border-radius: var(--radius-md, 10px); }
        .ob-suggest-range { display: block; font-size: 0.85rem; font-weight: 700; color: var(--brand); }
        .ob-suggest-msg { display: block; font-size: 0.8rem; color: var(--text-secondary); margin-top: 0.15rem; line-height: 1.4; }
        .ob-input-money { position: relative; }
        .ob-input-money .ob-dollar { position: absolute; left: 0.8rem; top: 50%; transform: translateY(-50%); color: var(--text-faint); font-size: 0.95rem; pointer-events: none; }
        .ob-input-money .ob-input { padding-left: 1.5rem; }
        .ob-hint { font-size: 0.76rem; color: var(--text-faint); margin-top: 0.3rem; }

        .ob-conts { display: grid; grid-template-columns: 1fr 1fr; gap: 0.55rem 0.9rem; }
        @media (max-width: 520px) { .ob-conts { grid-template-columns: 1fr; } }
        .ob-check-inline { display: flex; align-items: center; gap: 0.55rem; font-size: 0.9rem; font-weight: 600; cursor: pointer; padding: 0.55rem 0.7rem; border: 1px solid var(--border); border-radius: var(--radius-md); transition: border-color .12s ease, background .12s ease; }
        .ob-check-inline:hover { border-color: var(--brand); }
        .ob-check-inline input { width: 18px; height: 18px; accent-color: var(--brand); flex-shrink: 0; }
        .ob-check-inline input:checked ~ span { color: var(--text); }
        .ob-check-inline.on { border-color: var(--brand); background: var(--brand-tint); }

        /* ── Summary side panel ───────────────────────────────────────── */
        .ob-summary { position: sticky; top: calc(var(--header-h) + 1.25rem); }
        .ob-sum-price { font-size: 2.1rem; font-weight: 700; letter-spacing: -1.2px; color: var(--text); line-height: 1; font-variant-numeric: tabular-nums; }
        .ob-sum-cap { font-size: 0.85rem; color: var(--text-muted); margin-top: 0.35rem; }
        .ob-sum-delta { display: inline-flex; align-items: center; gap: 0.3rem; font-size: 0.85rem; font-weight: 700; margin-top: 0.55rem; padding: 0.28rem 0.6rem; border-radius: var(--radius-pill); }
        .ob-sum-delta svg { width: 14px; height: 14px; }
        .ob-sum-delta.over { color: var(--success, #16a34a); background: #f0fdf4; }
        .ob-sum-delta.under { color: var(--text-muted); background: var(--bg-muted); }
        .ob-sum-delta.even { color: var(--text-muted); background: var(--bg-muted); }
        .ob-sum-rows { list-style: none; padding: 0; margin: 1.25rem 0 0; }
        .ob-sum-row { display: flex; justify-content: space-between; gap: 1rem; padding: 0.6rem 0; border-bottom: 1px solid var(--border); font-size: 0.88rem; align-items: baseline; }
        .ob-sum-row:last-child { border-bottom: none; }
        .ob-sum-k { color: var(--text-muted); flex-shrink: 0; }
        .ob-sum-v { color: var(--text); font-weight: 700; text-align: right; font-variant-numeric: tabular-nums; }
        .ob-sum-v.muted { color: var(--text-faint); font-weight: 600; }
        .ob-sum-conts { margin-top: 0.35rem; display: flex; flex-wrap: wrap; gap: 0.3rem; justify-content: flex-end; }
        .ob-tag { font-size: 0.72rem; font-weight: 700; color: var(--brand); background: var(--brand-tint); padding: 0.2rem 0.5rem; border-radius: var(--radius-pill); }

        .ob-reassure { display: flex; gap: 0.45rem; align-items: flex-start; font-size: 0.82rem; color: var(--text-muted); margin: 1.15rem 0; line-height: 1.4; }
        .ob-reassure svg { width: 15px; height: 15px; flex-shrink: 0; margin-top: 1px; color: var(--brand); }

        .ob-actions { display: flex; flex-direction: column; gap: 0.6rem; }
        .ob-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; background: var(--brand); color: var(--text-on-brand); font-weight: 700; font-size: 0.98rem; padding: 0.8rem 1.5rem; border-radius: var(--radius-pill); border: none; cursor: pointer; text-decoration: none; font-family: inherit; transition: background .12s ease, transform .12s ease, border-color .12s ease; }
        .ob-btn:hover:not(:disabled) { background: var(--brand-hover, var(--brand-hover)); }
        .ob-btn:disabled { opacity: 0.65; cursor: default; }
        .ob-btn svg { width: 17px; height: 17px; }
        .ob-btn.full { width: 100%; }
        .ob-btn.ghost { background: transparent; color: var(--text); border: 1px solid var(--border); }
        .ob-btn.ghost:hover:not(:disabled) { border-color: var(--brand); color: var(--brand); background: transparent; }

        .ob-err { color: var(--brand); font-size: 0.85rem; font-weight: 600; margin-top: 0.4rem; display: none; align-items: flex-start; gap: 0.4rem; line-height: 1.4; }
        .ob-err svg { width: 15px; height: 15px; flex-shrink: 0; margin-top: 1px; }
        .ob-err.show { display: flex; }

        /* ── Confirmation ─────────────────────────────────────────────── */
        .ob-done { max-width: 560px; margin: 1rem auto 0; text-align: center; }
        .ob-done-ic { width: 68px; height: 68px; border-radius: 50%; background: #f0fdf4; color: var(--success, #16a34a); display: grid; place-items: center; margin: 0 auto 1.25rem; }
        .ob-done-ic svg { width: 34px; height: 34px; }
        .ob-done-h { font-size: 1.7rem; font-weight: 700; letter-spacing: -0.8px; margin: 0 0 0.6rem; color: var(--text); }
        .ob-done-txt { font-size: 1rem; color: var(--text-secondary); line-height: 1.55; margin: 0 auto 1.75rem; max-width: 46ch; }
        .ob-done-actions { display: flex; gap: 0.7rem; justify-content: center; flex-wrap: wrap; }

        /* ── Loading ──────────────────────────────────────────────────── */
        .ob-loading { text-align: center; padding: 5rem 1rem; color: var(--text-muted); }
        .ob-spin { width: 34px; height: 34px; border: 3px solid var(--border); border-top-color: var(--brand); border-radius: 50%; margin: 0 auto 1rem; animation: obspin 0.8s linear infinite; }
        @keyframes obspin { to { transform: rotate(360deg); } }
        [hidden] { display: none !important; }

/* ══════════ home-value-estimate ══════════ */
/* ================================================================
           INSTANT HOME VALUE / CMA  —  seller lead-gen
           Scoped with .hv- prefix. Uses site design tokens throughout.
           ================================================================ */
        .hv-hero {
            position: relative;
            padding: 9rem 0 3.5rem;
            background:
                linear-gradient(180deg, rgba(26,32,44,0.82) 0%, rgba(26,32,44,0.72) 100%),
                url('/assets/images/cr-modern-farmhouse-sunset.jpg') center/cover no-repeat;
            color: var(--text-on-dark);
        }
        /* width:100% is load-bearing: body is a column flex container, and a flex
           child with auto side margins opts out of stretching and sizes to its
           own content instead. Without it this section is as wide as its longest
           line — which is why the FAQ rendered in a narrow column while the
           sections above it, whose content happened to exceed the cap, looked fine. */
        .hv-wrap { width: 100%; max-width: var(--page-w); margin: 0 auto; padding-inline: var(--page-gutter); }
        .hv-hero-inner { max-width: 720px; margin: 0 auto; text-align: center; }
        .hv-pill {
            display: inline-flex; align-items: center; gap: 0.45rem;
            background: rgba(255,255,255,0.12);
            border: 1px solid rgba(255,255,255,0.22);
            color: var(--text-on-dark);
            font-size: 0.72rem; font-weight: 700; letter-spacing: 1.4px;
            text-transform: uppercase; padding: 0.4rem 0.9rem;
            border-radius: var(--radius-pill); margin-bottom: 1.4rem;
        }
        .hv-pill svg { width: 14px; height: 14px; }
        .hv-hero h1 {
            font-size: clamp(2.2rem, 5vw, 3.6rem);
            font-weight: 700; letter-spacing: -1.5px; line-height: 1.06;
            margin: 0 0 1.1rem; color: var(--text-on-dark);
            text-shadow: 0 2px 16px rgba(0,0,0,0.35);
        }
        .hv-hero p.hv-sub {
            font-size: clamp(1rem, 2vw, 1.2rem); line-height: 1.6;
            color: rgba(255,255,255,0.9); max-width: 600px; margin: 0 auto;
        }
        .hv-trust {
            display: flex; justify-content: center; flex-wrap: wrap;
            gap: 0.5rem 1.4rem; margin-top: 1.5rem;
            font-size: 0.85rem; color: rgba(255,255,255,0.85);
        }
        .hv-trust span { display: inline-flex; align-items: center; gap: 0.4rem; }
        .hv-trust svg { width: 15px; height: 15px; color: #7ee0a3; }

        /* ── Card shell shared by the form + result + lead ─────────────── */
        .hv-stage { max-width: 640px; margin: -2.5rem auto 0; position: relative; z-index: 3; }
        .hv-card {
            background: var(--surface);
            border: 1px solid var(--border);
            border-radius: var(--radius-2xl);
            box-shadow: 0 24px 60px rgba(26,32,44,0.14);
            padding: 2.25rem;
        }
        .hv-card + .hv-card { margin-top: 1.25rem; }
        .hv-card-head { margin-bottom: 1.5rem; }
        .hv-eyebrow {
            font-size: 0.72rem; font-weight: 700; letter-spacing: 1.2px;
            text-transform: uppercase; color: var(--brand); margin-bottom: 0.5rem;
            display: flex; align-items: center; gap: 0.5rem;
        }
        .hv-eyebrow svg { width: 15px; height: 15px; }
        .hv-card-head h2 {
            font-size: 1.5rem; font-weight: 700; letter-spacing: -0.5px;
            color: var(--text); margin: 0 0 0.35rem; line-height: 1.2;
        }
        .hv-card-head p { color: var(--text-muted); font-size: 0.95rem; line-height: 1.5; margin: 0; }

        /* ── Form fields ──────────────────────────────────────────────── */
        .hv-field { display: flex; flex-direction: column; gap: 0.4rem; margin-bottom: 1rem; }
        .hv-label { font-size: 0.75rem; font-weight: 700; color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.5px; }
        .hv-label .hv-opt { color: var(--text-faint); font-weight: 600; text-transform: none; letter-spacing: 0; }
        .hv-input, .hv-select {
            width: 100%; box-sizing: border-box;
            padding: 0.8rem 1rem;
            border: 2px solid var(--border); border-radius: var(--radius);
            font-family: inherit; font-size: 1rem;
            background: var(--surface); color: var(--text);
            transition: border-color 0.15s, box-shadow 0.15s;
        }
        .hv-input:focus, .hv-select:focus {
            outline: none; border-color: var(--brand);
            box-shadow: 0 0 0 3px var(--brand-ring);
        }
        .hv-select {
            appearance: none; cursor: pointer; padding-right: 2.5rem;
            background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23718096' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
            background-repeat: no-repeat; background-position: right 1rem center;
        }
        .hv-row { display: grid; gap: 1rem; }
        .hv-row-2 { grid-template-columns: 1fr 1fr; }
        .hv-row-3 { grid-template-columns: 1fr 1fr 1fr; }
        .hv-hint { font-size: 0.78rem; color: var(--text-faint); margin: 0.15rem 0 0; }

        .hv-btn {
            width: 100%; box-sizing: border-box;
            display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
            padding: 1.05rem 1.5rem;
            background: var(--brand); color: var(--text-on-dark);
            border: none; border-radius: var(--radius-md);
            font-weight: 700; font-size: 1rem; font-family: inherit;
            cursor: pointer; transition: background 0.2s, transform 0.15s, box-shadow 0.2s;
        }
        .hv-btn svg { width: 18px; height: 18px; }
        .hv-btn:hover:not(:disabled) { background: var(--brand-hover); transform: translateY(-1px); box-shadow: 0 12px 28px rgba(219,37,43,0.35); }
        .hv-btn:disabled { background: var(--text-faint); cursor: not-allowed; }
        .hv-btn-ghost {
            background: var(--surface); color: var(--text);
            border: 2px solid var(--border);
        }
        .hv-btn-ghost:hover:not(:disabled) { background: var(--bg-subtle); border-color: var(--border-strong); transform: none; box-shadow: none; }

        .hv-err {
            display: none; color: var(--danger); font-size: 0.88rem;
            margin-bottom: 1rem; padding: 0.75rem 1rem;
            background: var(--danger-tint); border: 1px solid var(--danger-border);
            border-radius: var(--radius); text-align: center;
        }
        .hv-fineprint {
            font-size: 0.78rem; color: var(--text-faint);
            text-align: center; line-height: 1.5; margin: 0.9rem 0 0;
        }

        /* ── Result card ──────────────────────────────────────────────── */
        #hv-result, #hv-lead, #hv-done { display: none; }
        .hv-result-label { font-size: 0.8rem; font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: 1px; text-align: center; }
        .hv-result-value {
            font-size: clamp(2.8rem, 9vw, 4.2rem); font-weight: 700; letter-spacing: -2.5px;
            line-height: 1; text-align: center; color: var(--text); margin: 0.5rem 0 0.75rem;
        }
        .hv-range {
            display: flex; align-items: center; justify-content: center; gap: 0.6rem;
            color: var(--text-secondary); font-size: 1rem; font-weight: 600; text-align: center;
        }
        .hv-range .hv-dash { flex: 0 0 26px; height: 2px; background: var(--border-strong); border-radius: 2px; }
        .hv-metrics {
            display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem;
            margin: 1.5rem 0 0;
        }
        .hv-metric {
            background: var(--bg-subtle); border: 1px solid var(--border);
            border-radius: var(--radius-md); padding: 0.9rem 1rem; text-align: center;
        }
        .hv-metric .hv-m-k { font-size: 0.72rem; font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.6px; }
        .hv-metric .hv-m-v { font-size: 1.15rem; font-weight: 700; color: var(--text); margin-top: 0.2rem; }
        .hv-conf-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 0.4rem; vertical-align: middle; }
        .hv-conf-high { background: var(--success); }
        .hv-conf-medium { background: #d69e2e; }
        .hv-conf-low { background: var(--brand); }
        .hv-honest {
            display: flex; gap: 0.7rem; align-items: flex-start;
            margin: 1.5rem 0 0; padding: 1rem 1.1rem;
            background: var(--brand-tint); border-radius: var(--radius-md);
            color: var(--text-secondary); font-size: 0.9rem; line-height: 1.55;
        }
        .hv-honest svg { width: 18px; height: 18px; color: var(--brand); flex-shrink: 0; margin-top: 1px; }
        .hv-basis { text-align: center; font-size: 0.82rem; color: var(--text-faint); margin: 1rem 0 0; }

        /* ── Lead confirmation ────────────────────────────────────────── */
        .hv-done-inner { text-align: center; padding: 0.5rem 0; }
        .hv-done-badge {
            width: 60px; height: 60px; margin: 0 auto 1.1rem; border-radius: 50%;
            background: var(--success-tint); color: var(--success);
            display: flex; align-items: center; justify-content: center;
        }
        .hv-done-badge svg { width: 30px; height: 30px; }
        .hv-done-inner h2 { font-size: 1.5rem; font-weight: 700; color: var(--text); margin: 0 0 0.5rem; letter-spacing: -0.5px; }
        .hv-done-inner p { color: var(--text-secondary); font-size: 0.98rem; line-height: 1.6; margin: 0 auto; max-width: 420px; }

        /* ── Value-prop section ───────────────────────────────────────── */
        .hv-value { padding: 5.5rem 0 4rem; }
        .hv-value-head { max-width: 640px; margin: 0 auto 3rem; text-align: center; }
        .hv-value-head .hv-eyebrow { justify-content: center; }
        .hv-value-head h2 { font-size: clamp(1.9rem, 4vw, 2.8rem); font-weight: 700; letter-spacing: -1px; color: var(--text); line-height: 1.12; margin: 0 0 0.9rem; }
        .hv-value-head p { color: var(--text-secondary); font-size: 1.1rem; line-height: 1.6; margin: 0; }
        .hv-value-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
        .hv-vp {
            background: var(--surface); border: 1px solid var(--border);
            border-radius: var(--radius-xl); padding: 2rem 1.75rem;
            transition: transform 0.2s, box-shadow 0.2s;
        }
        .hv-vp:hover { transform: translateY(-3px); box-shadow: 0 18px 40px rgba(26,32,44,0.09); }
        .hv-vp-icon {
            width: 48px; height: 48px; border-radius: 12px;
            background: var(--brand-tint); color: var(--brand);
            display: flex; align-items: center; justify-content: center; margin-bottom: 1.25rem;
        }
        .hv-vp-icon svg { width: 24px; height: 24px; }
        .hv-vp h3 { font-size: 1.2rem; font-weight: 700; color: var(--text); margin: 0 0 0.5rem; }
        .hv-vp p { color: var(--text-secondary); font-size: 0.96rem; line-height: 1.6; margin: 0; }

        /* ── Footer CTA band ──────────────────────────────────────────── */
        .hv-cta {
            background: var(--surface-ink,#14161a); color: var(--text-on-dark,#fff);
            border-radius: var(--radius-2xl); padding: 3.5rem 2.5rem;
            display: flex; align-items: center; justify-content: space-between; gap: 2rem;
            flex-wrap: wrap; margin-bottom: 5rem;
        }
        .hv-cta h2 { font-size: clamp(1.7rem, 3.5vw, 2.4rem); font-weight: 700; letter-spacing: -1px; margin: 0 0 0.6rem; line-height: 1.1; color: var(--text-on-dark); }
        .hv-cta p { color: rgba(255,255,255,0.75); font-size: 1.02rem; line-height: 1.55; margin: 0; max-width: 460px; }
        .hv-cta-btn {
            flex-shrink: 0; display: inline-flex; align-items: center; gap: 0.5rem;
            background: var(--brand); color: var(--text-on-dark);
            border: none; border-radius: var(--radius-md);
            padding: 1.05rem 2rem; font-weight: 700; font-size: 1rem; font-family: inherit;
            text-decoration: none; cursor: pointer; transition: background 0.2s, transform 0.15s;
        }
        .hv-cta-btn svg { width: 18px; height: 18px; }
        .hv-cta-btn:hover { background: var(--brand-hover); transform: translateY(-1px); }

        /* ── Responsive ───────────────────────────────────────────────── */
        @media (max-width: 720px) {
            .hv-hero { padding: 7.5rem 0 3rem; }
            .hv-card { padding: 1.5rem; }
            .hv-value-grid { grid-template-columns: 1fr; gap: 1rem; }
            .hv-value { padding: 3.5rem 0 2.5rem; }
            .hv-cta { padding: 2.5rem 1.5rem; text-align: center; justify-content: center; margin-bottom: 3.5rem; }
            .hv-cta > div { flex: 1 1 100%; }
            .hv-cta-btn { width: 100%; justify-content: center; }
        }
        @media (max-width: 480px) {
            .hv-row-2, .hv-row-3 { grid-template-columns: 1fr; }
            .hv-metrics { grid-template-columns: 1fr; }
        }

        /* ── FAQ accordion ────────────────────────────────────────────── */
        .hvf-faq { padding: 4rem 0 6rem; }
        .hvf-inner { max-width: var(--page-w); margin: 0 auto; padding-inline: var(--page-gutter); }
        .hvf-faq h2 { font-size: 2.5rem; font-weight: 700; letter-spacing: -0.03em; color: var(--text); margin: 0 0 0.75rem; }
        .hvf-faq > .hvf-inner > p { color: var(--text-muted); margin: 0 0 2.5rem; font-size: 1.05rem; }
        .hvf-list { display: grid; gap: 0; }
        details.hvf-item { border-bottom: 1px solid var(--border); padding: 1.4rem 0; }
        details.hvf-item summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; font-size: 1.08rem; font-weight: 700; color: var(--text); }
        details.hvf-item summary::-webkit-details-marker { display: none; }
        details.hvf-item summary::after { content: '+'; flex-shrink: 0; font-size: 1.5rem; font-weight: 400; color: var(--brand); line-height: 1; transition: transform var(--t-fast) var(--ease-out); }
        details.hvf-item[open] summary::after { transform: rotate(45deg); }
        details.hvf-item p { margin: 1rem 0 0; max-width: 85ch; color: var(--text-secondary); line-height: 1.7; }
        @media (max-width: 640px) { .hvf-faq h2 { font-size: 1.9rem; } }

/* ══════════ shortlist ══════════ */
.sl-wrap { width: 100%; max-width: 1000px; margin: 0 auto; padding: 7rem var(--page-gutter) 5rem; box-sizing: border-box; }
        .sl-eyebrow { font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--brand); display: inline-flex; align-items: center; gap: .4rem; }
        .sl-h1 { font-family: var(--font-family-display); font-size: clamp(1.6rem, 3.5vw, 2.3rem); font-weight: 700; letter-spacing: -.03em; color: var(--text); margin: .4rem 0 .2rem; line-height: 1.1; }
        .sl-sub { color: var(--text-secondary); font-size: .98rem; }
        .sl-head { background: var(--surface); border: 1px solid var(--border); border-radius: 18px; padding: 1.6rem 1.9rem; box-shadow: 0 4px 14px rgba(16,24,40,.05); }
        .sl-share { display: flex; gap: .5rem; margin-top: 1.1rem; flex-wrap: wrap; }
        .sl-in { flex: 1; min-width: 0; font: inherit; font-size: .9rem; padding: .6rem .75rem; border: 1px solid var(--border); border-radius: 9px; background: var(--surface); color: var(--text); box-sizing: border-box; }
        .sl-btn { border: none; border-radius: 9px; padding: .6rem 1rem; font-weight: 700; font-size: .86rem; cursor: pointer; font-family: inherit; background: var(--brand); color: var(--text-on-brand); text-decoration: none; display: inline-flex; align-items: center; gap: .4rem; justify-content: center; }
        .sl-btn.ghost { background: var(--surface); color: var(--text); border: 1px solid var(--border); }
        .sl-btn.mini { padding: .4rem .7rem; font-size: .78rem; }
        .sl-btn:disabled { opacity: .55; cursor: default; }
        /* Home cards */
        .sl-grid { margin-top: 1.5rem; display: grid; gap: 1.25rem; }
        .sl-card { background: var(--surface); border: 1px solid var(--border); border-radius: 16px; overflow: hidden; box-shadow: 0 4px 14px rgba(16,24,40,.05); display: grid; grid-template-columns: 260px 1fr; }
        .sl-photo { position: relative; background: var(--bg-muted); min-height: 190px; }
        .sl-photo img { width: 100%; height: 100%; object-fit: cover; display: block; position: absolute; inset: 0; }
        .sl-photo .noimg { position: absolute; inset: 0; display: grid; place-items: center; color: var(--text-faint); }
        .sl-body { padding: 1.25rem 1.4rem; min-width: 0; }
        .sl-price { font-size: 1.35rem; font-weight: 700; color: var(--text); letter-spacing: -.02em; }
        .sl-specs { display: flex; flex-wrap: wrap; gap: .9rem; margin: .5rem 0 .35rem; color: var(--text-secondary); font-size: .9rem; font-weight: 600; }
        .sl-specs span { display: inline-flex; align-items: center; gap: .3rem; }
        .sl-addr { color: var(--text-muted); font-size: .9rem; }
        .sl-view { display: inline-flex; align-items: center; gap: .3rem; color: var(--brand); font-weight: 700; font-size: .86rem; text-decoration: none; margin-top: .55rem; }
        .sl-gone { color: var(--text-faint); font-style: italic; font-size: .92rem; }
        /* Votes */
        .sl-votes { display: flex; align-items: center; gap: .6rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--border); flex-wrap: wrap; }
        .sl-vote { display: inline-flex; align-items: center; gap: .35rem; border: 1px solid var(--border); background: var(--surface); color: var(--text-secondary); border-radius: 999px; padding: .35rem .8rem; font-weight: 700; font-size: .85rem; cursor: pointer; font-family: inherit; }
        .sl-vote:hover { border-color: var(--brand); }
        .sl-vote.up.on { border-color: #16a34a; color: #16a34a; background: #dcfce7; }
        .sl-vote.down.on { border-color: var(--danger); color: var(--danger); background: #fee2e2; }
        .sl-owneractions { margin-left: auto; }
        /* Comments */
        .sl-comments { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--border); }
        .sl-clabel { font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--text-faint); margin-bottom: .7rem; display: block; }
        .sl-comment { display: flex; gap: .7rem; padding: .55rem 0; }
        .sl-ava { flex: 0 0 auto; width: 30px; height: 30px; border-radius: 50%; background: var(--brand-tint); color: var(--brand); display: grid; place-items: center; font-weight: 700; font-size: .78rem; }
        .sl-cbody { min-width: 0; }
        .sl-cname { font-weight: 700; color: var(--text); font-size: .86rem; }
        .sl-cwhen { color: var(--text-faint); font-size: .74rem; font-weight: 600; }
        .sl-ctext { color: var(--text-secondary); font-size: .92rem; margin-top: .15rem; line-height: 1.45; overflow-wrap: anywhere; }
        .sl-crow { display: flex; gap: .5rem; margin-top: .7rem; flex-wrap: wrap; }
        .sl-crow .sl-in { flex: 2 1 260px; }
        .sl-crow .sl-in.name { flex: 1 1 130px; }
        .sl-none { color: var(--text-muted); font-size: .88rem; }
        /* My lists */
        .sl-list { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.2rem; border: 1px solid var(--border); border-radius: 14px; background: var(--surface); margin-top: .9rem; flex-wrap: wrap; }
        .sl-list-n { font-weight: 700; color: var(--text); font-size: 1.02rem; }
        .sl-list-c { color: var(--text-muted); font-size: .82rem; font-weight: 600; }
        .sl-list-actions { margin-left: auto; display: flex; gap: .5rem; flex-wrap: wrap; }
        .sl-empty { text-align: center; padding: 4rem 1.5rem; color: var(--text-muted); }
        .sl-toast { position: fixed; left: 50%; bottom: 2rem; transform: translateX(-50%); background: var(--text); color: var(--text-on-brand); padding: .7rem 1.2rem; border-radius: 10px; font-weight: 700; font-size: .88rem; opacity: 0; transition: opacity .2s; pointer-events: none; z-index: 50; }
        .sl-toast.show { opacity: 1; }
        @media (max-width: 720px) {
            .sl-card { grid-template-columns: 1fr; }
            .sl-photo { min-height: 200px; }
        }

/* ══════════ brokerages ══════════ */
/* ─── Hero: image background + dark overlay (mirrors /agents) ─── */
        .ag-hero {
            position: relative; padding: 12rem 2rem 5rem; text-align: center;
            color: var(--text-on-dark); background-color: var(--bg-dark);
            background-image: url('/assets/images/cr-agent-showing-home.jpg');
            background-size: cover; background-position: center; overflow: hidden; isolation: isolate;
        }
        .ag-hero::before { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,14,22,0.72) 0%, rgba(10,14,22,0.55) 45%, rgba(10,14,22,0.88) 100%); z-index: 0; }
        .ag-hero > * { position: relative; z-index: 1; }
        .ag-hero h1 { font-size: 4.5rem; font-weight: 700; letter-spacing: -2px; margin: 0 0 1.25rem; line-height: 1.05; text-shadow: 0 2px 20px rgba(0,0,0,0.4); }
        .ag-hero p  { font-size: 1.2rem; color: var(--border); max-width: 680px; margin: 0 auto 2.25rem; line-height: 1.6; text-shadow: 0 1px 10px rgba(0,0,0,0.35); }
        .ag-search-wrap { position: relative; max-width: 640px; margin: 0 auto; }
        .ag-search-wrap svg { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); color: var(--text-faint); pointer-events: none; }
        .ag-search-wrap input { width: 100%; padding: 1rem 1rem 1rem 3rem; border: none; border-radius: var(--radius-lg); font-size: 1rem; font-family: inherit; background: var(--surface); color: var(--text); outline: none; box-sizing: border-box; box-shadow: 0 15px 40px rgba(0,0,0,0.2); }

        /* Count row */
        .ag-count-row { max-width: var(--page-w); margin: 0 auto; padding: 1.5rem var(--page-gutter); }
        .ag-count { color: var(--text-muted); font-size: 0.9rem; font-weight: 600; }
        .ag-count strong { color: var(--text); font-weight: 700; }

        /* ─── Card (avatar/logo · tagline · team size · specialties · button) — same classes as /agents ── */
        .agent-card.ac-v2 { padding: 1.5rem; overflow: visible; }
        .ac-head { display: flex; align-items: center; gap: 0.9rem; margin-bottom: 1rem; }
        .ac-avatar { position: relative; width: 56px; height: 56px; border-radius: 14px; flex-shrink: 0; background: var(--brand-tint); display: flex; align-items: center; justify-content: center; overflow: hidden; }
        .ac-avatar img { width: 56px; height: 56px; border-radius: 14px; object-fit: cover; }
        .ac-initials { font-weight: 700; color: var(--brand); font-size: 1.1rem; }
        .ac-id { min-width: 0; }
        .ac-name { font-size: 1.05rem; font-weight: 700; color: var(--text); margin: 0; line-height: 1.2; }
        .ac-broker { font-size: 0.85rem; color: var(--text-muted); margin-top: 0.12rem; }
        .ac-years { font-size: 0.8rem; font-weight: 700; color: var(--brand); margin-top: 0.15rem; }
        .ac-bio { font-size: 0.9rem; color: var(--text-secondary); line-height: 1.55; margin: 0 0 1rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
        .ac-serves { margin-bottom: 1.1rem; }
        .ac-serves-label { display: block; font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; color: var(--text-faint); margin-bottom: 0.45rem; }
        .ac-chips { display: flex; flex-wrap: wrap; gap: 0.35rem; }
        .ac-chip { background: var(--brand-tint); color: var(--brand); font-size: 0.78rem; font-weight: 700; padding: 0.25rem 0.6rem; border-radius: var(--radius-pill); }
        .ac-chip--more { background: var(--bg-muted); color: var(--text-muted); }
        .ac-btn { margin-top: auto; display: block; text-align: center; background: var(--surface-ink,#14161a); color: var(--text-on-dark,#fff); font-weight: 700; padding: 0.8rem; border-radius: var(--radius); font-size: 0.92rem; transition: background 0.15s; }
        .agent-link-wrapper:hover .ac-btn { background: var(--bg-dark); }

        .ag-empty { grid-column: 1 / -1; background: var(--surface); border: 1px solid var(--bg-muted); border-radius: var(--radius-lg); padding: 3rem 2rem; text-align: center; max-width: 680px; margin: 0 auto; }

        @media (max-width: 900px) {
            .ag-hero { padding: 7rem 1.25rem 3rem; }
            .ag-hero h1 { font-size: 2.5rem; letter-spacing: -1px; }
            .ag-hero p { font-size: 1rem; }
            .agents-grid { gap: 1.25rem !important; padding: 1.25rem 1.25rem 3rem !important; }
        }
        @media (max-width: 480px) {
            .ag-hero h1 { font-size: 2rem; letter-spacing: -1px; }
            .ag-hero p  { font-size: 0.95rem; }
            .ag-hero { padding: 6.25rem 1rem 2.5rem; }
        }

/* ══════════ compare ══════════ */
.cmp-wrap { width: 100%; max-width: var(--page-w); margin: 0 auto; padding: 8.5rem var(--page-gutter) 5rem; box-sizing: border-box; }
        .cmp-eyebrow { color: var(--brand); font-size: 0.74rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; margin-bottom: 0.9rem; }
        .cmp-h1 { font-family: var(--font-family-display); font-size: clamp(1.9rem, 3.4vw, 2.8rem); font-weight: 700; letter-spacing: -0.035em; color: var(--text); margin: 0 0 0.6rem; line-height: 1.08; }
        .cmp-lede { color: var(--text-secondary); font-size: 1.05rem; margin: 0 0 2.25rem; }
        .cmp-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
        .cmp-table { border-collapse: separate; border-spacing: 0; width: 100%; min-width: 640px; }
        .cmp-table th, .cmp-table td { text-align: left; vertical-align: top; padding: 1rem 1.1rem; border-bottom: 1px solid #eef2f7; }
        .cmp-rowlabel { width: 190px; font-size: 0.82rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.4px; color: var(--text-faint); background: var(--bg-subtle); border-right: 1px solid #eef2f7; }
        .cmp-col { min-width: 220px; }
        .cmp-agent-head { text-align: center; padding: 1.5rem 1.1rem 1.25rem; border-bottom: 1px solid #eef2f7; }
        .cmp-ava { width: 68px; height: 68px; border-radius: 50%; object-fit: cover; margin: 0 auto 0.6rem; background: var(--brand-tint); color: var(--brand); display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 1.3rem; }
        .cmp-name { font-size: 1.2rem; font-weight: 700; color: var(--text); line-height: 1.15; }
        .cmp-cr { display: inline-block; font-size: 0.6rem; font-weight: 700; color: var(--brand); background: var(--brand-tint); padding: 0.1rem 0.4rem; border-radius: 5px; text-transform: uppercase; margin-top: 0.3rem; }
        .cmp-broker { color: var(--text-muted); font-size: 0.86rem; margin-top: 0.25rem; }
        .cmp-val { font-size: 1.05rem; font-weight: 700; color: var(--text); }
        .cmp-val.best { color: var(--brand); }
        .cmp-val .best-tag { display: inline-block; font-size: 0.6rem; font-weight: 700; text-transform: uppercase; color: var(--text-on-brand); background: var(--brand); border-radius: 5px; padding: 0.05rem 0.35rem; margin-left: 0.35rem; vertical-align: middle; }
        .cmp-sub { color: var(--text-faint); font-size: 0.85rem; }
        .cmp-chips { display: flex; flex-wrap: wrap; gap: 0.3rem; }
        .cmp-chip { font-size: 0.72rem; font-weight: 700; color: var(--brand); background: var(--brand-tint); padding: 0.12rem 0.5rem; border-radius: 999px; }
        .cmp-cta { display: flex; flex-direction: column; gap: 0.5rem; }
        .cmp-btn { text-align: center; border-radius: 10px; padding: 0.7rem 0.9rem; font-weight: 700; font-size: 0.9rem; text-decoration: none; border: 1px solid var(--border); background: var(--surface); color: var(--text); }
        .cmp-btn.primary { background: var(--brand); color: var(--text-on-brand); border-color: var(--brand); }
        .cmp-empty { text-align: center; padding: 3rem 1.5rem; color: var(--text-muted); }
        .cmp-verified-note { display: inline-flex; align-items: center; gap: 0.35rem; background: var(--brand-tint); color: var(--brand); font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.4px; padding: 0.3rem 0.65rem; border-radius: 999px; margin-bottom: 1.75rem; }

/* ══════════ properties ══════════ */
.ag-hero { position: relative; padding: 12rem 2rem 5rem; text-align: center; color: var(--text-on-dark); background-color: var(--bg-dark); background-image: url('/assets/images/cr-agent-showing-home.jpg'); background-size: cover; background-position: center; overflow: hidden; isolation: isolate; }
        .ag-hero::before { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,14,22,0.72) 0%, rgba(10,14,22,0.55) 45%, rgba(10,14,22,0.88) 100%); z-index: 0; }
        .ag-hero > * { position: relative; z-index: 1; }
        .ag-hero h1 { font-size: 4.5rem; font-weight: 700; letter-spacing: -2px; margin: 0 0 1.25rem; line-height: 1.05; text-shadow: 0 2px 20px rgba(0,0,0,0.4); }
        .ag-hero p { font-size: 1.2rem; color: var(--border); max-width: 680px; margin: 0 auto 2.25rem; line-height: 1.6; text-shadow: 0 1px 10px rgba(0,0,0,0.35); }
        .ag-search-wrap { position: relative; max-width: 640px; margin: 0 auto; }
        .ag-search-wrap svg { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); color: var(--text-faint); pointer-events: none; }
        .ag-search-wrap input { width: 100%; padding: 1rem 1rem 1rem 3rem; border: none; border-radius: var(--radius-lg); font-size: 1rem; font-family: inherit; background: var(--surface); color: var(--text); outline: none; box-sizing: border-box; box-shadow: 0 15px 40px rgba(0,0,0,0.2); }

        .pr-bar { max-width: var(--page-w); margin: 0 auto; padding: 1.5rem var(--page-gutter); display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
        .pr-count { color: var(--text-muted); font-size: 0.9rem; font-weight: 600; }
        .pr-count strong { color: var(--text); font-weight: 700; }
        .pr-maplink { margin-left: auto; display: inline-flex; align-items: center; gap: 0.45rem; text-decoration: none; color: var(--brand); border: 1px solid var(--brand); border-radius: 999px; padding: 0.5rem 1.1rem; font-weight: 700; font-size: 0.88rem; }
        .pr-maplink:hover { background: var(--brand-tint); }

        .pr-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1.5rem; max-width: var(--page-w); margin: 0 auto; padding: 1.5rem var(--page-gutter) 5rem; }
        .pr-card { display: block; text-decoration: none; color: inherit; background: var(--surface); border: 1px solid var(--bg-muted); border-radius: 14px; overflow: hidden; transition: box-shadow .2s, transform .15s; }
        .pr-card:hover { box-shadow: 0 14px 30px rgba(16,24,40,0.12); transform: translateY(-3px); }
        .pr-img { position: relative; aspect-ratio: 4/3; background: var(--bg-muted); }
        .pr-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
        .pr-badge { position: absolute; top: 0.7rem; left: 0.7rem; background: rgba(15,23,42,0.85); color: var(--text-on-brand); font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; padding: 0.25rem 0.6rem; border-radius: 6px; }
        .pr-b { padding: 1rem 1.1rem 1.15rem; }
        .pr-price { font-weight: 700; color: var(--text); font-size: 1.25rem; letter-spacing: -0.02em; }
        .pr-facts { font-size: 0.88rem; color: var(--text-secondary); margin-top: 0.3rem; }
        .pr-addr { font-size: 0.85rem; color: var(--text-muted); margin-top: 0.35rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
        .pr-empty { grid-column: 1/-1; text-align: center; color: var(--text-faint); padding: 4rem 1rem; }

        @media (max-width: 900px) {
            .ag-hero { padding: 7rem 1.25rem 3rem; }
            .ag-hero h1 { font-size: 2.5rem; letter-spacing: -1px; }
            .ag-hero p { font-size: 1rem; }
        }
        @media (max-width: 480px) { .ag-hero h1 { font-size: 2rem; } .ag-hero { padding: 6.25rem 1rem 2.5rem; } }

/* ══════════ collection ══════════ */
:root { --brand:#db252b; --ink:#111827; --muted:#6b7280; --line:#e5e7eb; }
        * { box-sizing:border-box; }

        img { display:block; max-width:100%; }
        .wrap { max-width:960px; margin:0 auto; padding:0 1.25rem; }
        .top { background:var(--surface); border-bottom:1px solid var(--line); }
        .top .wrap { display:flex; align-items:center; gap:0.7rem; height:64px; }
        .av { width:40px; height:40px; border-radius:50%; overflow:hidden; background:var(--brand); color:var(--text-on-brand); display:grid; place-items:center; font-weight: 700; }
        .av img { width:100%; height:100%; object-fit:cover; }
        .hero { padding:2rem 0 1rem; }
        .hero h1 { font-size:1.9rem; font-weight:600; margin:0 0 0.3rem; letter-spacing:-0.5px; }
        .hero p { color:var(--muted); margin:0; }
        .grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1.25rem; padding-bottom:3rem; }
        .card { border:1px solid var(--line); border-radius:14px; overflow:hidden; background:var(--surface); transition:box-shadow .15s; }
        .card.passed { opacity:0.5; }
        .card .ph { aspect-ratio:4/3; background:#e5e7eb; position:relative; }
        .card .ph img { width:100%; height:100%; object-fit:cover; }
        .card .body { padding:0.9rem 1rem; }
        .card .price { font-weight: 700; font-size:1.2rem; }
        .card .det { color:var(--muted); font-size:0.85rem; margin-top:0.15rem; }
        .card .loc { color:#94a3b8; font-size:0.82rem; margin-top:0.1rem; }
        .fb { display:flex; gap:0.5rem; padding:0 1rem 1rem; }
        .fb button { flex:1; border:1px solid var(--line); background:var(--surface); border-radius:9px; padding:0.55rem; font:inherit; font-weight:700; cursor:pointer; font-size:0.9rem; }
        .fb button.like.on { background:#dcfce7; border-color:#86efac; color:#166534; }
        .fb button.pass.on { background:#fee2e2; border-color:#fca5a5; color:#991b1b; }
        .card a.view { display:block; padding:0 1rem 0.6rem; color:var(--brand); font-weight:700; text-decoration:none; font-size:0.85rem; }
        /* Removed a stray global `.foot` override — the site footer is styled
           only by style.css so every page matches the index footer. */

/* ══════════ itinerary ══════════ */
:root { --brand:#db252b; --ink:#111827; --muted:#6b7280; --line:#e5e7eb; }
        * { box-sizing:border-box; }

        .wrap { max-width:680px; margin:0 auto; padding:0 1.25rem; }
        .top { background:var(--surface); border-bottom:1px solid var(--line); }
        .top .wrap { display:flex; align-items:center; gap:0.7rem; height:64px; }
        .av { width:40px; height:40px; border-radius:50%; overflow:hidden; background:var(--brand); color:var(--text-on-brand); display:grid; place-items:center; font-weight: 700; }
        .av img { width:100%; height:100%; object-fit:cover; }
        .hero { padding:2rem 0 1rem; }
        .hero h1 { font-size:1.9rem; font-weight:600; margin:0 0 0.3rem; letter-spacing:-0.5px; }
        .hero .meta { color:var(--muted); }
        .stop { background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:1.1rem 1.2rem; margin-bottom:0.9rem; display:flex; gap:1rem; }
        .stop .n { width:30px; height:30px; border-radius:50%; background:var(--brand); color:var(--text-on-brand); font-weight: 700; display:grid; place-items:center; flex-shrink:0; }
        .stop .lbl { font-weight: 700; font-size:1.05rem; }
        .stop .addr { color:var(--muted); font-size:0.92rem; margin-top:0.1rem; }
        .stop .row { display:flex; gap:1rem; flex-wrap:wrap; margin-top:0.5rem; font-size:0.9rem; }
        .stop .chip { background:#f1f5f9; border-radius:99px; padding:0.2rem 0.7rem; font-weight:700; }
        .stop .note { color:#374151; font-size:0.9rem; margin-top:0.5rem; }
        .stop a { color:var(--brand); font-weight:700; text-decoration:none; font-size:0.9rem; }
        /* (stray global `.foot` overrides removed — footer comes from style.css) */

/* ══════════ search ══════════ */
/* ── Layout helper ─────────────────────────────────────────────── */
        .srh-container { max-width: var(--page-w); margin: 0 auto; padding-inline: 1.5rem; }

        /* ── HERO ──────────────────────────────────────────────────────── */
        .srh-hero {
            position: relative;
            min-height: 88vh;
            display: flex;
            align-items: center;
            justify-content: center;
            text-align: center;
            padding: 7rem 1.5rem 4rem;
            background-image: url('/assets/images/mn-aerial-lake-homes.jpg');
            background-size: cover;
            background-position: center;
            overflow: hidden;
        }
        .srh-hero::before {
            content: '';
            position: absolute;
            inset: 0;
            background: linear-gradient(180deg, rgba(15,20,30,0.55) 0%, rgba(15,20,30,0.45) 45%, rgba(15,20,30,0.70) 100%);
        }
        .srh-hero-inner { position: relative; width: 100%; max-width: 820px; }
        .srh-eyebrow {
            display: inline-block;
            font-size: 0.72rem;
            font-weight: 700;
            letter-spacing: 2px;
            text-transform: uppercase;
            color: var(--text-on-dark);
            opacity: 0.85;
            padding: 0.45rem 1rem;
            border: 1px solid rgba(255,255,255,0.35);
            border-radius: var(--radius-pill);
            margin-bottom: 1.6rem;
        }
        .srh-hero-title {
            font-size: clamp(2.4rem, 6vw, 4.2rem);
            line-height: 1.04;
            font-weight: 700;
            letter-spacing: -1.5px;
            color: var(--text-on-dark);
            margin: 0 0 1rem;
            text-shadow: 0 2px 30px rgba(0,0,0,0.35);
        }
        .srh-hero-sub {
            font-size: clamp(1rem, 2.4vw, 1.3rem);
            line-height: 1.5;
            color: var(--text-on-dark);
            opacity: 0.92;
            margin: 0 auto 2.4rem;
            max-width: 620px;
            font-weight: 500;
        }

        /* ── Search form ───────────────────────────────────────────────── */
        .srh-form {
            display: flex;
            align-items: center;
            gap: 0.5rem;
            background: var(--surface);
            border-radius: var(--radius-pill);
            padding: 0.5rem 0.5rem 0.5rem 1.2rem;
            box-shadow: 0 24px 60px -20px rgba(0,0,0,0.55);
            max-width: 640px;
            margin: 0 auto;
        }
        .srh-form .srh-search-icon { flex: none; color: var(--text-muted); display: flex; }
        .srh-form input {
            flex: 1;
            min-width: 0;
            border: none;
            outline: none;
            background: transparent;
            font-family: inherit;
            font-size: 1.05rem;
            color: var(--text);
            padding: 0.85rem 0.4rem;
        }
        .srh-form input::placeholder { color: var(--text-faint); }
        .srh-form button {
            flex: none;
            border: none;
            cursor: pointer;
            font-family: inherit;
            font-weight: 700;
            font-size: 0.98rem;
            color: var(--text-on-dark);
            background: var(--brand);
            border-radius: var(--radius-pill);
            padding: 0.85rem 1.7rem;
            transition: background 0.18s ease;
        }
        .srh-form button:hover { background: var(--brand-hover); }
        .srh-hero-hint { margin-top: 1.4rem; font-size: 0.85rem; color: var(--text-on-dark); opacity: 0.75; }

        /* ── Results band (server-rendered) ────────────────────────────── */
        .srh-results-band { padding: 4rem 0 1rem; }
        .srh-results-band:has(.search-results:empty) { display: none; }
        .srh-results-band .search-results { max-width: 900px; margin: 0 auto; }
        /* Styling for the server-injected result markup */
        .search-group { margin-bottom: 2.75rem; }
        .search-group h2 {
            font-size: 0.78rem; font-weight: 700; letter-spacing: 1.2px;
            text-transform: uppercase; color: var(--brand); margin-bottom: 1rem;
        }
        .search-hit {
            display: block; padding: 1rem 1.15rem;
            border: 1px solid var(--border); border-radius: var(--radius-md);
            margin-bottom: 0.75rem; text-decoration: none; color: inherit;
            transition: border-color 0.15s, transform 0.15s, box-shadow 0.15s;
            background: var(--surface);
        }
        .search-hit:hover { border-color: var(--brand); transform: translateY(-2px); box-shadow: var(--shadow); }
        .search-hit .h-name { font-size: 1.1rem; font-weight: 700; color: var(--text); }
        .search-hit .h-meta {
            font-size: 0.82rem; color: var(--text-faint); font-weight: 600;
            text-transform: uppercase; letter-spacing: 0.4px; margin-left: 0.5rem;
        }
        .search-hit .h-sub { font-size: 0.92rem; color: var(--text-muted); line-height: 1.5; margin-top: 0.3rem; }
        .search-empty { color: var(--text-faint); font-size: 1.05rem; padding: 1.5rem 0; text-align: center; }

        /* ── Recommendation bands ──────────────────────────────────────── */
        .srh-band { padding: 4.5rem 0; }
        .srh-band.alt { background: var(--bg-subtle); }
        .srh-band-head { margin-bottom: 2.2rem; }
        .srh-kicker {
            display: block; font-size: 0.75rem; font-weight: 700; letter-spacing: 1.4px;
            text-transform: uppercase; color: var(--brand); margin-bottom: 0.5rem;
        }
        .srh-band-title {
            font-size: clamp(1.6rem, 3.5vw, 2.15rem); font-weight: 700;
            letter-spacing: -0.6px; color: var(--text); margin: 0;
        }
        .srh-band-sub { color: var(--text-muted); font-size: 1rem; margin: 0.5rem 0 0; }

        /* Listing cards */
        .srh-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
        .srh-card {
            display: flex; flex-direction: column; text-decoration: none; color: inherit;
            background: var(--surface); border: 1px solid var(--border);
            border-radius: var(--radius-lg); overflow: hidden;
            transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
        }
        .srh-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); border-color: var(--border-strong); }
        .srh-card-photo {
            aspect-ratio: 3 / 2; background-size: cover; background-position: center;
            background-color: var(--bg-muted);
        }
        .srh-card-body { padding: 1.15rem 1.2rem 1.3rem; }
        .srh-price { font-size: 1.3rem; font-weight: 700; color: var(--text); letter-spacing: -0.5px; }
        .srh-card-title {
            font-size: 0.98rem; font-weight: 600; color: var(--text-secondary); margin-top: 0.25rem;
            white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
        }
        .srh-specs { display: flex; gap: 0.9rem; margin-top: 0.7rem; font-size: 0.85rem; color: var(--text-muted); font-weight: 600; }
        .srh-specs span { display: inline-flex; align-items: center; gap: 0.3rem; }
        .srh-loc { display: flex; align-items: center; gap: 0.35rem; margin-top: 0.7rem; font-size: 0.85rem; color: var(--text-faint); }

        /* Agent cards */
        .srh-agrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
        .srh-agent {
            display: flex; flex-direction: column; align-items: center; text-align: center;
            text-decoration: none; color: inherit; padding: 2rem 1.25rem;
            background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg);
            transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
        }
        .srh-agent:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); border-color: var(--border-strong); }
        .srh-agent-photo {
            width: 92px; height: 92px; border-radius: var(--radius-pill);
            background-size: cover; background-position: center; background-color: var(--bg-muted);
            margin-bottom: 1rem; box-shadow: 0 0 0 4px var(--bg-subtle);
        }
        .srh-agent-name { font-size: 1.05rem; font-weight: 700; color: var(--text); }
        .srh-agent-broker { font-size: 0.85rem; color: var(--text-muted); margin-top: 0.2rem; }
        .srh-agent-city { display: inline-flex; align-items: center; gap: 0.3rem; font-size: 0.82rem; color: var(--text-faint); margin-top: 0.55rem; }

        /* Blog cards */
        .srh-pgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
        .srh-post {
            display: flex; flex-direction: column; text-decoration: none; color: inherit;
            background: var(--surface); border: 1px solid var(--border);
            border-radius: var(--radius-lg); overflow: hidden;
            transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
        }
        .srh-post:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); border-color: var(--border-strong); }
        .srh-post-photo { aspect-ratio: 16 / 9; background-size: cover; background-position: center; background-color: var(--bg-muted); }
        .srh-post-body { padding: 1.25rem 1.3rem 1.4rem; display: flex; flex-direction: column; flex: 1; }
        .srh-post-title { font-size: 1.1rem; font-weight: 700; color: var(--text); line-height: 1.3; }
        .srh-post-excerpt {
            font-size: 0.92rem; color: var(--text-muted); line-height: 1.55; margin: 0.55rem 0 1rem;
            display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
        }
        .srh-post-link { margin-top: auto; font-size: 0.85rem; font-weight: 700; color: var(--brand); display: inline-flex; align-items: center; gap: 0.35rem; }

        /* ── FAQ ───────────────────────────────────────────────────────── */
        .srh-faq { padding: 4.5rem 0; }
        .srh-faq-inner { max-width: 760px; margin: 0 auto; }
        .srf-item { border-bottom: 1px solid var(--border); }
        .srf-item summary {
            list-style: none; cursor: pointer;
            display: flex; align-items: center; justify-content: space-between; gap: 1rem;
            padding: 1.3rem 0.25rem; font-size: 1.08rem; font-weight: 700; color: var(--text);
        }
        .srf-item summary::-webkit-details-marker { display: none; }
        .srf-item summary::after {
            content: '+'; color: var(--brand); font-size: 1.6rem; font-weight: 400;
            line-height: 1; flex: none; transition: transform 0.2s ease;
        }
        .srf-item[open] summary::after { transform: rotate(45deg); }
        .srf-item p { margin: -0.2rem 0.25rem 1.4rem; color: var(--text-secondary); line-height: 1.65; font-size: 0.98rem; }

        /* ── Contact band ──────────────────────────────────────────────── */
        .srh-contact { background: var(--surface-ink); padding: 5rem 1.5rem; text-align: center; }
        .srh-contact h2 { font-size: clamp(1.8rem, 4vw, 2.6rem); font-weight: 700; letter-spacing: -0.8px; color: var(--text-on-dark); margin: 0 0 0.9rem; }
        .srh-contact p { color: var(--text-on-dark); opacity: 0.8; font-size: 1.05rem; max-width: 540px; margin: 0 auto 2rem; line-height: 1.6; }
        .srh-contact-btns { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }
        .srh-contact-btns .btn { padding: 0.95rem 2rem; font-size: 0.95rem; }
        .srh-btn-ghost {
            background: transparent; color: var(--text-on-dark);
            border: 1px solid rgba(255,255,255,0.4);
        }
        .srh-btn-ghost:hover { background: rgba(255,255,255,0.08); border-color: var(--text-on-dark); }

        /* ── Responsive ────────────────────────────────────────────────── */
        @media (max-width: 900px) {
            .srh-grid, .srh-pgrid { grid-template-columns: repeat(2, 1fr); }
            .srh-agrid { grid-template-columns: repeat(2, 1fr); }
        }
        @media (max-width: 600px) {
            .srh-hero { min-height: 88vh; padding: 6rem 1.25rem 3.5rem; }
            .srh-form { flex-wrap: nowrap; padding-left: 1rem; }
            .srh-form button { padding: 0.8rem 1.15rem; }
            .srh-grid, .srh-pgrid, .srh-agrid { grid-template-columns: 1fr; }
            .srh-band { padding: 3.5rem 0; }
            .srh-contact-btns .btn { width: 100%; }
        }

/* ══════════ agent-profile ══════════ */
.agent-back-wrap {
            position: absolute;
            top: 6.5rem;
            left: 2rem;
            z-index: 10;
        }
        .agent-back-link {
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            color: var(--text-faint);
            text-decoration: none;
            font-size: 0.9rem;
            font-weight: 500;
            padding: 0.5rem 0.9rem;
            border-radius: var(--radius-pill);
            border: 1px solid rgba(255,255,255,0.12);
            background: rgba(255,255,255,0.04);
            transition: color 0.2s, background 0.2s, border-color 0.2s, transform 0.2s;
        }
        .agent-back-link:hover {
            color: var(--text-on-dark);
            background: rgba(255,255,255,0.08);
            border-color: rgba(255,255,255,0.25);
            transform: translateX(-2px);
        }
        @media (max-width: 600px) {
            .agent-back-wrap { top: 5.5rem; left: 1rem; }
            .agent-back-link { font-size: 0.82rem; padding: 0.4rem 0.75rem; }
        }

        /* Mobile optimization for agent + team profile pages.
           The hero itself is styled entirely by the .aph-* rules further down —
           the old #profile-hero img/h1/p/span rules were deleted (both profiles
           moved to .aph-* classes, and those generic rules conflicted between
           600–768px). Only the two-column → one-column body layout lives here. */
        @media (max-width: 768px) {
            #profile-section {
                padding: 2.5rem 0 4rem !important;
            }
            #profile-body {
                grid-template-columns: 1fr !important;
                gap: 1.25rem !important;
                padding: 0 1rem !important;
            }
            #profile-body > div {
                padding: 1.75rem 1.25rem !important;
                position: static !important;
                top: auto !important;
            }
            #profile-body h2 {
                font-size: 0.95rem !important;
            }
            #profile-body p {
                font-size: 0.98rem !important;
            }
            #profile-body input,
            #profile-body textarea {
                font-size: 16px !important; /* Prevent iOS zoom on focus */
            }
        }

    /* --- narrow-phone floor ---
       Additive only; the locked .ap-* design is untouched. */
    @media (max-width: 380px) {
        #profile-body, .ap-main, .ap-main > * { min-width: 0; max-width: 100%; }
    }



        /* ── Profile sections ─────────────────────────────────────────────
           The page is long now, so a sticky rail of jump links rides under the
           navbar. It only ever lists sections that actually rendered. */
        /* --nav-h is published by components.js and tracks the navbar's live
           height (it shrinks 78px→65px on scroll). A fixed `top` here would leave
           a strip of page showing through the gap. */
        .ap-nav {
            position: sticky; top: var(--nav-h, 78px); z-index: 40;
            background: rgba(255,255,255,0.94);
            backdrop-filter: blur(8px);
            border-bottom: 1px solid var(--bg-muted);
        }
        /* One measure for the whole page, matching the listing detail layout
           (.zx-dwrap): same max-width, same column ratio, same gap. */
        :root { --ap-w: var(--page-w, 1340px); }

        .ap-nav-inner {
            max-width: var(--ap-w); margin: 0 auto; padding: 0 1.5rem;
            display: flex; gap: 1.75rem; overflow-x: auto;
            scrollbar-width: none;
        }
        .ap-nav-inner::-webkit-scrollbar { display: none; }
        .ap-nav a {
            flex: 0 0 auto; padding: 1.05rem 0; text-decoration: none; white-space: nowrap;
            font-size: 0.92rem; font-weight: 600; color: var(--text-muted);
            border-bottom: 2px solid transparent;
        }
        .ap-nav a:hover { color: var(--text); }
        .ap-nav a.is-active { color: var(--brand); border-bottom-color: var(--brand); }
        .ap-nav a[hidden] { display: none; }

        /* The left column reads as the page itself, not a card floating on it.
           Only the contact rail stays boxed, so it still reads as a widget. */
        .ap-main { background: transparent; border: 0; box-shadow: none; padding: 0; }
        #profile-section { background: var(--surface) !important; }

        /* Same grid as the listing detail page. Overrides the inline style. */
        #profile-body {
            max-width: var(--ap-w) !important;
            padding: 0 1.5rem !important;
            grid-template-columns: minmax(0, 1.62fr) minmax(320px, 1fr) !important;
            column-gap: 3rem !important;
        }
        /* Sections that live outside #profile-body share the same measure. */
        #agent-faq-section .inner,
        #agent-reviews-section > div,
        #agent-blog-section > div { max-width: var(--ap-w) !important; padding: 0 1.5rem !important; }

        /* This block sits after the phone rules above, so restore their gutter. */
        @media (max-width: 768px) {
            #profile-body,
            #agent-faq-section .inner,
            #agent-reviews-section > div,
            #agent-blog-section > div { padding: 0 1rem !important; }
        }

        /* Contact rail: same input + button treatment as the listing form. */
        #agent-lead-form .input-sys {
            width: 100%; font: inherit; font-size: 0.94rem; color: var(--text);
            padding: 0.7rem 0.8rem; background: var(--surface);
            border: 1px solid var(--border-strong); border-radius: 6px;
        }
        #agent-lead-form .input-sys:focus {
            outline: none; border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-ring);
        }
        #agent-lead-form textarea.input-sys { resize: vertical; min-height: 82px; }
        #agent-lead-form .form-group-sys { margin-bottom: 0.6rem !important; }
        /* Placeholder-only visually, like the listing form — but the label stays
           in the accessibility tree (display:none would remove it). */
        #agent-lead-form .form-group-sys label {
            position: absolute; width: 1px; height: 1px; overflow: hidden;
            clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
        }
        #submit-lead-btn { border-radius: 6px !important; margin-top: 0.4rem; }

        /* Three reviews, straight across, spanning the same measure as the
           sections above. A single stack of full-width paragraphs read like a
           changelog. The aggregate above still reports the true total. */
        /* The widget centres itself in 820px by default; here it spans the page. */
        #agent-reviews-section .rw { max-width: none; }
        /* auto-fit + a capped card width, left-aligned: three reviews fill the
           row, and one review is a single normal-width card on the left (in line
           with the heading and the Leave-a-review button) — not stretched full
           width and not stranded beside empty grid columns. */
        #agent-reviews-section .rw-list {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(280px, 380px));
            justify-content: start;
            gap: 1.25rem;
            align-items: stretch;
        }
        #agent-reviews-section .rw-card {
            background: var(--surface); border: 1px solid var(--bg-muted); border-radius: 12px;
            padding: 1.5rem; margin: 0;
        }
        /* Three by default; the rest unfold behind the toggle below. */
        #agent-reviews-section .rw-list:not(.is-expanded) .rw-card:nth-child(n + 4) { display: none; }

        .ap-rw-more {
            display: block; margin: 0 auto 1.5rem;
            border: 1px solid var(--border-strong); background: var(--surface);
            color: var(--text); font: inherit; font-weight: 700; font-size: 0.9rem;
            padding: 0.7rem 1.4rem; border-radius: 8px; cursor: pointer;
        }
        .ap-rw-more:hover { border-color: var(--brand); color: var(--brand); }

        /* The primary action here is contacting the agent, not reviewing them. */
        #agent-reviews-section .rw-leave {
            padding: 0.55rem 1rem; font-size: 0.86rem; border-radius: 8px;
            background: var(--surface); color: var(--brand); border: 1px solid var(--brand);
        }
        #agent-reviews-section .rw-leave:hover { background: var(--brand-tint); }

        /* auto-fit already narrows to two-up on tablets; only force a single
           full-width column on phones. */
        @media (max-width: 640px)  { #agent-reviews-section .rw-list { grid-template-columns: 1fr; } }

        /* Reviews now live INSIDE the main column (so the contact rail stays
           sticky beside them to the CTA). Drop the full-width section chrome and
           let it read as a normal in-column section. */
        .ap-main #agent-reviews-section { background: transparent; padding: 3rem 0 0; margin-top: 1rem; border-top: 1px solid var(--bg-muted); }
        .ap-main #agent-reviews-section > div { max-width: none; margin: 0; padding: 0; }

        /* The closing CTA band: --radius-2xl is undefined on this page, so the
           red box rendered with square corners. Round it and give the section
           breathing room above (from the reviews) and below (from the footer). */
        #ap-cta { padding: 1.5rem 2rem 5rem; }
        #ap-cta .cta-band { border-radius: 28px; }
        /* Anchors must clear the fixed navbar + the sticky jump rail. */
        .ap-sec { scroll-margin-top: calc(var(--nav-h, 78px) + 78px); }
        .ap-sec + .ap-sec { margin-top: 3.25rem; padding-top: 2.75rem; border-top: 1px solid var(--bg-muted); }
        .ap-h2 { font-size: 1.5rem; font-weight: 700; color: var(--text); letter-spacing: -0.02em; margin: 0 0 1.25rem; }
        .ap-h3 { font-size: 1rem; font-weight: 700; color: var(--text); margin: 0 0 0.9rem; }
        .ap-count { color: var(--text-faint); font-weight: 600; }
        .ap-p { font-size: 1.02rem; line-height: 1.8; color: var(--text-secondary); margin: 0 0 1.1rem; }
        .ap-p:last-child { margin-bottom: 0; }
        .ap-headline {
            font-size: 1.12rem; line-height: 1.6; font-weight: 600; color: var(--text);
            margin: 0 0 1.4rem; padding-left: 1rem; border-left: 3px solid var(--brand);
        }
        .ap-pills { display: flex; flex-wrap: wrap; gap: 0.15rem; }

        .ap-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 1rem; }
        .ap-stat { background: var(--bg-subtle); border-radius: 10px; padding: 1.25rem 1rem; text-align: center; }
        .ap-stat-v { font-size: 1.75rem; font-weight: 700; color: var(--text); letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
        .ap-stat-l { font-size: 0.78rem; color: var(--text-muted); margin-top: 0.25rem; }

        /* Verified track-record panel — the trust moat. Deliberately more
           prominent than the self-reported "By the numbers" section. */
        .ap-verified { background: linear-gradient(135deg, var(--surface), #fff6f6); border: 1px solid #fbd5d0; border-radius: 16px; padding: 1.6rem 1.75rem; margin-bottom: 2.25rem; box-shadow: 0 8px 24px rgba(219,37,43,0.06); }
        .ap-verified-top { margin-bottom: 1.25rem; }
        .ap-verified-badge { display: inline-flex; align-items: center; gap: 0.35rem; background: var(--brand); color: var(--text-on-brand); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.03em; text-transform: uppercase; padding: 0.35rem 0.7rem; border-radius: 999px; }
        .ap-verified-sub { margin: 0.65rem 0 0; font-size: 0.9rem; color: var(--text-muted); line-height: 1.5; max-width: 60ch; }
        .ap-score { flex: 0 0 auto; display: flex; align-items: center; gap: 0.6rem; text-decoration: none; background: var(--brand); color: var(--text-on-brand); border-radius: 14px; padding: 0.7rem 1rem; box-shadow: 0 6px 18px rgba(219,37,43,0.25); }
        .ap-score-n { font-size: 2rem; font-weight: 700; line-height: 1; }
        .ap-score-l { font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; line-height: 1.3; opacity: 0.95; }
        .ap-score-l b { font-size: 0.8rem; }
        .ap-provenance { margin: 1.1rem 0 0; padding-top: 0.9rem; border-top: 1px solid #fbd5d0;
                         font-size: 0.83rem; color: var(--text-muted); line-height: 1.55; }
        .ap-provenance b { color: var(--text); }
        .ap-provenance a { color: var(--brand); font-weight: 700; text-decoration: none; }
        .ap-provenance a:hover { text-decoration: underline; }
        /* Recent work — a scroll strip rather than a grid, so a long career
           doesn't push the rest of the profile off the screen. */
        .ap-work { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 1rem; }
        .ap-wcard { border: 1px solid var(--border, var(--border)); border-radius: 14px; overflow: hidden; background: var(--surface); }
        .ap-wimg { height: 132px; background: var(--bg-muted) center/cover; position: relative; }
        .ap-wimg .ap-wside { position: absolute; top: .6rem; left: .6rem; background: rgba(26,32,44,.82); color: var(--text-on-brand);
                             font-size: .64rem; font-weight: 700; letter-spacing: .4px; text-transform: uppercase;
                             padding: .22rem .5rem; border-radius: 999px; }
        .ap-wbody { padding: .85rem .95rem; }
        .ap-wprice { font-size: 1.02rem; font-weight: 700; letter-spacing: -.3px; }
        .ap-waddr { font-size: .84rem; color: var(--text-secondary, var(--text-secondary)); margin-top: .1rem; }
        .ap-wmeta { font-size: .74rem; color: var(--text-faint, var(--text-faint)); margin-top: .35rem; display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; }
        .ap-wconf { display: inline-flex; align-items: center; gap: .2rem; color: #276749; font-weight: 700; }
        .ap-wself { color: var(--text-faint); font-weight: 600; }
        .ap-vgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; }
        .ap-vtile { text-align: center; background: var(--surface); border: 1px solid #f3d9d7; border-radius: 12px; padding: 1.25rem 0.85rem; }
        .ap-vv { font-size: 1.9rem; font-weight: 700; color: var(--brand); letter-spacing: -0.03em; font-variant-numeric: tabular-nums; line-height: 1.05; }
        .ap-vl { font-size: 0.76rem; color: var(--text-secondary); margin-top: 0.35rem; line-height: 1.3; }

        /* Fees & commission — the honest-cost differentiator. */
        .ap-comm-rows { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 0.75rem 1.5rem; margin-bottom: 1rem; }
        .ap-comm-row { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: 0.7rem 0; border-bottom: 1px solid #f0f3f7; }
        .ap-comm-k { color: var(--text-muted); font-size: 0.92rem; }
        .ap-comm-v { font-weight: 700; color: var(--text); font-size: 1.05rem; }
        .ap-comm-note { color: var(--text-secondary); line-height: 1.6; margin: 0 0 1rem; }
        .ap-comm-fine { background: var(--brand-tint); border-radius: 12px; padding: 1rem 1.15rem; font-size: 0.9rem; line-height: 1.6; color: var(--text-strong); }
        .ap-comm-fine strong { color: var(--brand); }
        .ap-comm-fine a { color: var(--brand); font-weight: 700; white-space: nowrap; }

        .ap-contact { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 1.25rem 2rem; }
        .ap-ci { display: flex; flex-direction: column; gap: 0.2rem; min-width: 0; }
        .ap-ci-l { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-faint); }
        .ap-ci a, .ap-ci span:last-child { color: var(--text-strong); font-weight: 600; font-size: 0.96rem; overflow-wrap: anywhere; }
        .ap-ci a { color: var(--brand); text-decoration: none; }
        .ap-ci a:hover { text-decoration: underline; }
        /* Long email addresses: break on the element that holds the text, not an ancestor. */
        .ap-ci-email { display: block; min-width: 0; overflow-wrap: anywhere; word-break: break-word; }

        .ap-svc + .ap-svc { margin-top: 1.75rem; }
        .ap-ticks { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 0.6rem 1.5rem; }
        .ap-ticks--2 { margin-bottom: 2rem; }
        .ap-ticks li { display: flex; gap: 0.65rem; align-items: flex-start; font-size: 0.96rem; color: var(--text-secondary); }
        .ap-ticks svg { flex: 0 0 auto; width: 16px; height: 16px; margin-top: 3px; color: var(--brand); }

        .ap-awards { display: grid; gap: 0.2rem; }
        .ap-award { display: flex; gap: 1.25rem; align-items: flex-start; padding: 0.9rem 0; border-top: 1px solid var(--bg-muted); }
        .ap-award:first-child { border-top: 0; }
        .ap-award-y { flex: 0 0 auto; font-weight: 700; color: var(--brand); font-variant-numeric: tabular-nums; width: 3.2rem; }
        .ap-award-t { font-weight: 700; color: var(--text); }
        .ap-award-o { font-size: 0.88rem; color: var(--text-muted); margin-top: 0.1rem; }

        .ap-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.5rem; }
        .ap-steps li { display: flex; gap: 1.1rem; align-items: flex-start; }
        .ap-step-n {
            flex: 0 0 auto; width: 32px; height: 32px; border-radius: 50%;
            display: grid; place-items: center; font-weight: 700; font-size: 0.9rem;
            background: var(--brand-tint); color: var(--brand);
        }
        .ap-step-t { font-weight: 700; color: var(--text); margin-bottom: 0.25rem; }
        .ap-step-b { margin: 0; color: var(--text-secondary); line-height: 1.65; font-size: 0.97rem; }

        /* ── Testimonials ────────────────────────────────────────────────
           Long-form and vetted, so they get room to breathe: full-measure
           cards, a serif-ish rhythm, and the CR mark instead of stars. They
           are read, not scanned — which is why they aren't a 3-up grid. */
        .ap-tst { display: grid; gap: 1.25rem; }
        .ap-tst-card {
            position: relative; margin: 0;
            background: var(--bg-subtle);
            border: 1px solid var(--bg-muted);
            border-left: 3px solid var(--brand);
            border-radius: 12px;
            padding: 2rem 2.25rem 1.75rem;
        }
        .ap-tst-mark {
            display: inline-flex; align-items: center; gap: 0.4rem;
            font-size: 0.7rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
            color: var(--brand); margin-bottom: 1rem;
        }
        .ap-tst-mark svg { width: 16px; height: 16px; }
        .ap-tst-body p {
            margin: 0 0 1rem;
            color: var(--text-strong);
            font-size: 1.04rem; line-height: 1.75;
        }
        .ap-tst-body p:first-child::before { content: '\201C'; }
        .ap-tst-body p:last-child { margin-bottom: 0; }
        .ap-tst-body p:last-child::after { content: '\201D'; }
        .ap-tst-by {
            display: flex; align-items: center; gap: 0.8rem;
            margin-top: 1.5rem; padding-top: 1.1rem; border-top: 1px solid var(--border);
        }
        .ap-tst-av {
            flex: 0 0 auto; width: 40px; height: 40px; border-radius: 50%;
            display: grid; place-items: center; font-weight: 700;
            background: var(--brand-tint); color: var(--brand);
        }
        .ap-tst-n { display: block; font-weight: 700; color: var(--text); }
        .ap-tst-m { display: block; font-size: 0.85rem; color: var(--text-muted); margin-top: 0.05rem; }

        @media (max-width: 640px) { .ap-tst-card { padding: 1.5rem 1.25rem; } }

        .ap-press { display: grid; gap: 0.2rem; }
        .ap-press-i { display: block; padding: 0.95rem 0; border-top: 1px solid var(--bg-muted); text-decoration: none; }
        .ap-press-i:first-child { border-top: 0; }
        a.ap-press-i:hover .ap-press-t { color: var(--brand); }
        .ap-press-o { font-size: 0.76rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-faint); }
        .ap-press-t { font-weight: 600; color: var(--text); margin-top: 0.2rem; }

        .ap-homes { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 1.25rem; }
        .ap-home { text-decoration: none; color: inherit; border: 1px solid var(--bg-muted); border-radius: 10px; overflow: hidden; background: var(--surface); transition: box-shadow .2s, transform .15s; }
        .ap-home:hover { box-shadow: 0 10px 24px rgba(16,24,40,0.10); transform: translateY(-2px); }
        .ap-home-img { position: relative; aspect-ratio: 4/3; background: var(--bg-muted); }
        .ap-home-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
        .ap-sold {
            position: absolute; top: 0.5rem; left: 0.5rem;
            background: #1a202c; color: var(--text-on-brand); font-size: 0.68rem; font-weight: 700;
            text-transform: uppercase; letter-spacing: 0.05em; padding: 0.25rem 0.5rem; border-radius: 6px;
        }
        .ap-home-b { padding: 0.75rem 0.85rem 0.9rem; }
        .ap-home-p { font-weight: 700; color: var(--text); font-size: 1.05rem; }
        .ap-home-f { font-size: 0.85rem; color: var(--text-secondary); margin-top: 0.15rem; }
        .ap-home-a { font-size: 0.82rem; color: var(--text-muted); margin-top: 0.2rem; }

        @media (max-width: 900px) {
            #profile-body { grid-template-columns: 1fr !important; }
            .ap-main { padding: 1.75rem; }
            .ap-nav { top: 64px; }
            .ap-sec { scroll-margin-top: 120px; }
        }
    


            #agent-faq-section .inner { max-width:820px; margin:0 auto; padding:0 2rem; }
            #agent-faq-section h2 { font-size:2rem; font-weight:700; color:var(--text); letter-spacing:-0.5px; margin:0 0 2rem; }
            .agent-faq-item { border:1px solid var(--bg-muted); border-radius:var(--radius-md); margin-bottom:0.85rem; background:var(--surface); overflow:hidden; }
            .agent-faq-item summary { cursor:pointer; list-style:none; padding:1.15rem 1.35rem; font-size:1.02rem; font-weight:700; color:var(--text); display:flex; justify-content:space-between; align-items:center; gap:1rem; }
            .agent-faq-item summary::-webkit-details-marker { display:none; }
            .agent-faq-item summary::after { content:'+'; font-size:1.4rem; font-weight:400; color:var(--brand); flex-shrink:0; }
            .agent-faq-item[open] summary::after { content:'\2013'; }
            .agent-faq-a { padding:0 1.35rem 1.25rem; }
            .agent-faq-a p { margin:0; color:var(--text-secondary); line-height:1.65; font-size:0.98rem; white-space:pre-line; }
            @media (max-width:600px){ #agent-faq-section { padding:3rem 0; } #agent-faq-section h2 { font-size:1.6rem; } }

/* ══════════ listing-detail ══════════ */
:root { --blue:var(--brand); --blue-dark:var(--brand-hover); --ink:#1a202c; --body:var(--text-secondary); --muted:#697180; --faint:#98a0ad; --line:#e6eaf0; --tint:#fdecec; }
    .pp-page *, .pp-page *::before, .pp-page *::after { box-sizing: border-box; }
    /* Clear the FIXED site header (its live height = --nav-h) + a real gap. */
    .pp-page { color:var(--ink); padding-top:calc(var(--nav-h, 78px) + 1.5rem); }
    @media (max-width:640px){ .pp-page { padding-top:calc(var(--nav-h, 64px) + 1rem); } }

    /* Summary sub-bar */
    .pp-subbar { position:sticky; top:var(--nav-h, 0px); z-index:40; background:var(--surface); border-bottom:1px solid var(--line); }
    .pp-subbar-in { position:relative; padding:0; }
    .pp-back { position:absolute; left:1.5rem; top:50%; transform:translateY(-50%); z-index:1; display:inline-flex; align-items:center; gap:0.4rem; color:var(--blue); font-weight:700; font-size:0.85rem; text-decoration:none; white-space:nowrap; }
    .pp-back:hover { text-decoration:underline; }
    .pp-subbar-mid { max-width:var(--page-w, 1340px); margin:0 auto; padding:0.7rem 1.5rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; }
    .pp-sum { display:flex; align-items:baseline; gap:0.75rem; min-width:0; flex-wrap:wrap; }
    .pp-sum .pp-sum-addr { font-size:1.4rem; font-weight: 700; color:var(--ink); }
    .pp-sum .price { font-size:1.4rem; font-weight: 700; color:var(--blue); }
    .pp-sum .specs { color:var(--muted); font-size:1.05rem; }
    .pp-sum .specs b { color:var(--body); }
    .pp-subbar-r { display:flex; gap:0.5rem; flex:none; }
    .pp-iconbtn { display:inline-flex; align-items:center; gap:0.4rem; border:1px solid var(--line); background:var(--surface); border-radius:9px; padding:0.5rem 0.9rem; font:inherit; font-weight:600; font-size:0.88rem; color:var(--ink); cursor:pointer; }
    .pp-iconbtn:hover { background:var(--bg-subtle); }

    .pp-wrap { max-width:var(--page-w, 1340px); margin:0 auto; padding:1.5rem 1.5rem 4rem; }

    /* Photo collage — 3-image hero */
    .pp-photos { display:grid; grid-template-columns:1.7fr 1fr; gap:0.5rem; aspect-ratio:2.85/1; border-radius:16px; overflow:hidden; margin-bottom:2rem; }
    .pp-ph-main, .pp-ph-cell { background-size:cover; background-position:center; background-color:#eceff3; cursor:pointer; position:relative; border:0; padding:0; transition:filter .12s; }
    .pp-ph-main:hover, .pp-ph-cell:hover { filter:brightness(0.95); }
    .pp-ph-grid { display:grid; grid-template-columns:1fr; grid-template-rows:1fr 1fr; gap:0.5rem; }
    .pp-viewall { position:absolute; right:0.9rem; bottom:0.9rem; display:inline-flex; align-items:center; gap:0.45rem; background:var(--surface); color:var(--ink); border:1px solid var(--line); border-radius:10px; padding:0.55rem 1rem; font:inherit; font-weight:700; font-size:0.88rem; box-shadow:0 6px 18px rgba(0,0,0,0.18); }
    .pp-viewall svg { width:15px; height:15px; }

    /* Two-column body (split section) — right column is sticky/scrolls */
    .pp-body { display:grid; grid-template-columns:1fr 380px; gap:3rem; align-items:start; }
    .pp-side { position:sticky; top:calc(var(--nav-h, 0px) + 4rem); }
    .pp-h { font-size:1.5rem; font-weight: 700; letter-spacing:-0.4px; margin:0 0 0.15rem; }
    .pp-addr { color:var(--muted); font-size:1rem; margin:0 0 1rem; }
    /* Asking price — the headline figure, sits with the address */
    .pp-listprice { font-size:2rem; font-weight: 700; color:var(--ink); letter-spacing:-0.8px; margin:0 0 0.1rem; line-height:1.1; }
    .pp-listprice-label { font-size:0.72rem; font-weight: 700; letter-spacing:0.06em; text-transform:uppercase; color:var(--muted); margin:0 0 0.15rem; }
    .pp-tagrow { display:flex; flex-wrap:wrap; gap:0.5rem; margin-bottom:1.5rem; }
    .pp-tag { background:#f0f3f7; color:#3a4658; font-size:0.72rem; font-weight: 700; letter-spacing:0.4px; text-transform:uppercase; border-radius:7px; padding:0.4rem 0.7rem; }
    .pp-desc { color:var(--body); line-height:1.75; font-size:1.02rem; }
    .pp-more { display:inline-block; color:var(--blue); font-weight:700; margin-top:0.4rem; cursor:pointer; text-decoration:none; }
    .pp-meta { display:flex; gap:1.25rem; flex-wrap:wrap; align-items:center; color:var(--body); font-size:0.9rem; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:0.9rem 0; margin:1.5rem 0; }
    .pp-meta b { color:var(--ink); }
    .pp-meta .sep { color:var(--faint); }

    .pp-sec { margin-top:2.75rem; }
    .pp-sec:first-child { margin-top:0; }
    .pp-sec-h { font-size:1.4rem; font-weight: 700; letter-spacing:-0.4px; margin:0 0 1.1rem; }

    /* What's special */
    .pp-hl { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:0.7rem 1.5rem; }
    .pp-hl li { display:flex; gap:0.55rem; align-items:flex-start; color:var(--body); }
    .pp-hl svg { flex:0 0 auto; width:16px; height:16px; margin-top:3px; color:var(--blue); }

    /* Facts */
    .pp-facts { display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem 2rem; }
    .pp-fact { border-top:1px solid var(--line); padding-top:0.7rem; }
    .pp-fact dt { font-size:0.72rem; letter-spacing:0.05em; text-transform:uppercase; color:var(--muted); }
    .pp-fact dd { margin:0.25rem 0 0; font-weight:700; color:var(--ink); }

    /* Price & tax history table */
    .pp-hist { width:100%; border-collapse:collapse; font-size:0.94rem; }
    .pp-hist th { text-align:left; font-size:0.72rem; letter-spacing:0.05em; text-transform:uppercase; color:var(--muted); padding:0 0 0.6rem; }
    .pp-hist th:last-child, .pp-hist td:last-child { text-align:right; }
    .pp-hist td { padding:0.8rem 0; border-top:1px solid var(--line); color:var(--body); }
    .pp-hist td:nth-child(2) { color:var(--ink); font-weight:700; }
    .pp-hist td:last-child { font-weight: 700; color:var(--ink); }
    .pp-tax { color:var(--muted); font-size:0.9rem; margin:0.9rem 0 0; }

    /* Rows (schools / nearby) */
    .pp-row { display:flex; align-items:center; gap:1rem; padding:0.9rem 0; border-top:1px solid var(--line); }
    .pp-row:first-child { border-top:0; }
    .pp-rate { flex:0 0 auto; width:42px; height:42px; border-radius:9px; display:grid; place-items:center; font-weight: 700; background:var(--tint); color:var(--blue); font-size:1.05rem; }
    .pp-rate small { font-size:0.6rem; font-weight:700; }
    .pp-row-m { flex:1; min-width:0; }
    .pp-row-t { font-weight:700; color:var(--ink); }
    .pp-row-s { font-size:0.85rem; color:var(--muted); }
    .pp-row-d { font-size:0.88rem; color:var(--muted); }

    .pp-map { height:320px; border-radius:14px; overflow:hidden; margin-top:0.5rem; border:1px solid var(--line); background:#e9edf2; }
    .pp-map iframe { width:100%; height:100%; border:0; display:block; }

    /* CR Value (AVM) card */
    .pp-avm { border:1px solid var(--line); border-radius:14px; padding:1.25rem 1.4rem; background:#fbfcfe; margin:1.5rem 0; }
    .pp-avm-top { display:flex; align-items:baseline; gap:0.7rem; flex-wrap:wrap; }
    .pp-avm-label { font-size:0.7rem; font-weight: 700; letter-spacing:0.06em; text-transform:uppercase; color:var(--blue); }
    .pp-avm-v { font-size:1.6rem; font-weight: 700; color:var(--ink); letter-spacing:-0.5px; }
    .pp-avm-range { font-size:0.85rem; color:var(--muted); }
    .pp-avm-verdict { font-size:0.92rem; margin-top:0.35rem; font-weight:700; }
    .pp-avm-basis { font-size:0.76rem; color:var(--faint); margin-top:0.4rem; }
    /* Services teaser */
    .pp-svc { border:1px solid var(--line); border-radius:14px; padding:1.25rem 1.4rem; background:var(--surface); }
    .pp-svc p { margin:0; color:var(--body); line-height:1.6; }
    .pp-svc-cta { display:inline-block; margin-top:0.6rem; color:var(--blue); font-weight: 700; text-decoration:none; }
    .pp-svc-cta:hover { text-decoration:underline; }

    /* Tour / video buttons (matches the template accent) */
    .pp-tours { display:flex; gap:0.6rem; flex-wrap:wrap; margin-top:1rem; }
    .pp-tourlink { display:inline-flex; align-items:center; gap:0.45rem; border:1px solid var(--line); background:var(--surface); color:var(--ink); border-radius:10px; padding:0.6rem 1.1rem; font:inherit; font-weight:700; font-size:0.9rem; text-decoration:none; }
    .pp-tourlink:hover { border-color:var(--blue); color:var(--blue); }

    /* Sidebar cards (open house + agent contact) */
    .pp-card { background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:1.5rem; box-shadow:0 2px 10px rgba(16,24,40,0.04); }
    .pp-card + .pp-card { margin-top:1.25rem; }
    .pp-oh-h { font-weight: 700; font-size:1.05rem; margin:0 0 0.6rem; }
    .pp-oh-date { font-weight: 700; }
    .pp-oh-time { color:var(--body); font-size:0.92rem; }
    .pp-oh-cal { display:inline-block; margin-top:0.5rem; color:var(--blue); font-weight:700; text-decoration:none; cursor:pointer; }
    .pp-listed { font-size:0.72rem; text-transform:uppercase; letter-spacing:0.5px; color:var(--muted); }
    .pp-agent { text-align:center; margin:0.75rem 0 1rem; }
    .pp-avatar { width:64px; height:64px; border-radius:50%; background:var(--tint); color:var(--blue); display:inline-flex; align-items:center; justify-content:center; font-size:1.5rem; font-weight: 700; object-fit:cover; }
    .pp-agent-n { font-weight: 700; font-size:1.1rem; margin-top:0.5rem; }
    .pp-agent-b { color:var(--muted); font-size:0.9rem; }
    .pp-agent-h { color:var(--body); font-size:0.9rem; margin:0.5rem 0 0; }
    .pp-cform { display:grid; gap:0.6rem; margin-top:0.25rem; }
    .pp-cform input, .pp-cform textarea { width:100%; box-sizing:border-box; font:inherit; font-size:0.95rem; padding:0.7rem 0.85rem; border:1px solid var(--border-strong); border-radius:9px; outline:none; }
    .pp-cform input:focus, .pp-cform textarea:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(219,37,43,0.12); }
    .pp-cform textarea { min-height:78px; resize:vertical; }
    .pp-contact-btn { background:var(--blue); color:var(--text-on-brand); border:0; border-radius:10px; padding:0.85rem; font:inherit; font-weight: 700; cursor:pointer; line-height:1.3; }
    .pp-contact-btn small { display:block; font-weight:500; font-size:0.78rem; opacity:0.85; }
    .pp-contact-btn:hover { background:var(--blue-dark); }
    .pp-fine { text-align:center; color:var(--muted); font-size:0.78rem; margin:0.25rem 0 0; }
    .pp-ok { display:none; padding:0.9rem; background:var(--success-tint); color:var(--success); border:1px solid #c6f6d5; border-radius:9px; font-weight:600; text-align:center; margin-top:0.5rem; }
    .pp-viewprofile { display:block; text-align:center; margin-top:0.75rem; border:1px solid var(--blue); color:var(--blue); border-radius:10px; padding:0.75rem; font-weight: 700; text-decoration:none; }

    /* Blue "Request a tour" band at the bottom */
    .pp-tour { margin:3rem 0 0; }
    .pp-tour-in { background:var(--blue); color:var(--text-on-brand); border-radius:20px; padding:2.5rem 3rem; display:flex; align-items:center; justify-content:space-between; gap:2.5rem; flex-wrap:wrap; box-shadow:0 24px 50px rgba(219,37,43,0.28); }
    .pp-tour-in h2 { font-size:2.2rem; font-weight: 700; letter-spacing:-0.8px; margin:0 0 0.4rem; }
    .pp-tour-in p { margin:0; opacity:0.92; font-size:1.15rem; max-width:520px; }
    .pp-tour-btn { background:var(--surface); color:var(--blue); border:0; border-radius:99px; padding:1.1rem 2.5rem; font:inherit; font-weight: 700; font-size:1.1rem; cursor:pointer; white-space:nowrap; }
    .pp-tour-btn:hover { background:#f0f4ff; }

    /* Mortgage calculator */
    .pp-mtg { margin-top:3rem; }
    .mtg-card { border:1px solid var(--line); border-radius:16px; padding:1.75rem; display:grid; grid-template-columns:1.2fr 1fr; gap:1.75rem; align-items:center; }
    .mtg-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:0.9rem; }
    /* The inputs have their own intrinsic width, which 1fr respects — so
       the pair overflowed on narrow phones. */
    .mtg-grid label, .mtg-grid input, .mtg-grid select { min-width: 0; max-width: 100%; }
    @media (max-width: 380px) { .mtg-grid { grid-template-columns: 1fr; } }
    .mtg-grid label { display:flex; flex-direction:column; gap:0.3rem; font-size:0.72rem; font-weight: 700; text-transform:uppercase; letter-spacing:0.4px; color:var(--muted); }
    .mtg-grid input, .mtg-grid select { font:inherit; font-size:1rem; font-weight:600; color:var(--ink); padding:0.6rem 0.7rem; border:1px solid #d9e0ea; border-radius:9px; outline:none; }
    .mtg-grid input:focus, .mtg-grid select:focus { border-color:var(--blue); }
    .mtg-out { text-align:center; border-left:1px solid var(--line); padding-left:1.5rem; }
    .mtg-total span { font-size:2.4rem; font-weight: 700; color:var(--blue); letter-spacing:-1.5px; display:block; }
    .mtg-total small { color:var(--faint); font-size:0.8rem; font-weight:600; }
    .mtg-break { list-style:none; padding:0; margin:1rem 0 0; font-size:0.88rem; }
    .mtg-break li { display:flex; justify-content:space-between; padding:0.35rem 0; color:var(--muted); border-top:1px solid #f0f3f7; }
    .mtg-break li span { font-weight:700; color:var(--ink); }
    .mtg-fine { font-size:0.8rem; color:var(--faint); margin:0.8rem 0 0; }
    @media (max-width:640px){ .mtg-card { grid-template-columns:1fr; gap:1.25rem; } .mtg-out { border-left:0; border-top:1px solid var(--line); padding-left:0; padding-top:1.25rem; } }

    /* Investor snapshot */
    .pp-inv { margin-top:3rem; }
    .pp-inv-card { border:1px solid var(--line); border-radius:16px; padding:1.75rem; }
    .pp-inv-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0.9rem; margin-bottom:1.5rem; }
    .pp-inv-grid label { display:flex; flex-direction:column; gap:0.3rem; font-size:0.72rem; font-weight: 700; text-transform:uppercase; letter-spacing:0.4px; color:var(--muted); }
    .pp-inv-grid input { width:100%; box-sizing:border-box; font:inherit; font-size:1rem; font-weight:600; color:var(--ink); padding:0.65rem 0.8rem; border:1px solid #d9e0ea; border-radius:9px; outline:none; background:var(--surface); transition:border-color .12s ease, box-shadow .12s ease; -webkit-appearance:none; -moz-appearance:textfield; appearance:none; }
    .pp-inv-grid input:focus { border-color:var(--blue); box-shadow:0 0 0 3px var(--tint); }
    /* Strip the browser number-spinner arrows — they clash with the clean card. */
    .pp-inv-grid input::-webkit-outer-spin-button,
    .pp-inv-grid input::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
    .pp-inv-out { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
    .pp-inv-stat { border:1px solid var(--line); border-radius:12px; padding:1rem; text-align:center; }
    .pp-inv-stat .v { font-size:1.4rem; font-weight: 700; letter-spacing:-0.5px; color:var(--ink); }
    .pp-inv-stat .l { font-size:0.72rem; color:var(--muted); margin-top:0.2rem; }
    .pp-inv-note { font-size:0.8rem; color:var(--faint); margin:0.9rem 0 0; }
    @media (max-width:760px){ .pp-inv-grid, .pp-inv-out { grid-template-columns:1fr 1fr; } }
    @media (max-width:460px){ .pp-inv-grid, .pp-inv-out { grid-template-columns:1fr; } }

    /* Related listings */
    .pp-rel { margin-top:3rem; }
    .lst-rel-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:1rem; }
    .lst-rel-card { display:block; text-decoration:none; border:1px solid var(--line); border-radius:12px; overflow:hidden; transition:box-shadow .15s, transform .15s; color:inherit; background:var(--surface); }
    .lst-rel-card:hover { box-shadow:0 8px 22px rgba(16,24,40,0.10); transform:translateY(-2px); }
    .lst-rel-card .img { width:100%; aspect-ratio:4/3; object-fit:cover; background:#eef2f7; display:block; }
    .lst-rel-card .b { padding:0.7rem 0.85rem 0.9rem; }
    .lst-rel-card .p { font-weight: 700; color:var(--ink); font-size:1.05rem; }
    .lst-rel-card .t { color:var(--body); font-size:0.9rem; margin-top:0.15rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .lst-rel-card .m { color:var(--faint); font-size:0.8rem; margin-top:0.2rem; }
    @media (max-width:600px){ .lst-rel-grid { grid-template-columns:1fr 1fr; gap:0.6rem; } }

    /* Responsive */
    @media (max-width:1100px){ .pp-body { grid-template-columns:1fr 330px; gap:2rem; } .pp-hl, .pp-facts { gap:0.7rem 1.25rem; } }
    @media (max-width:900px){
      .pp-body { grid-template-columns:1fr; gap:2rem; }
      .pp-side { position:static; }
      .pp-hl, .pp-facts { grid-template-columns:1fr 1fr; }
      .pp-photos { grid-template-columns:1fr; aspect-ratio:auto; gap:0.4rem; margin-bottom:1.5rem; }
      .pp-ph-main { aspect-ratio:16/10; }
      .pp-ph-grid { grid-template-columns:1fr 1fr; grid-template-rows:1fr; aspect-ratio:3/1; }
      .pp-tour-in { flex-direction:column; align-items:flex-start; gap:1.5rem; padding:2.25rem 2rem; }
      .pp-tour-in h2 { font-size:1.9rem; } .pp-tour-in p { font-size:1.05rem; }
    }
    @media (max-width:760px){ .pp-back { position:static; transform:none; display:inline-flex; padding:0.5rem 1.25rem 0; } .pp-subbar-mid { padding-top:0.35rem; } }
    @media (max-width:640px){
      .pp-wrap { padding:1rem 1rem 2.5rem; }
      .pp-subbar-mid { padding:0.4rem 1rem 0.6rem; gap:0.75rem; }
      .pp-back { padding:0.6rem 1rem 0; }
      .pp-sum { gap:0.15rem 0.6rem; }
      .pp-sum .pp-sum-addr, .pp-sum .price { font-size:1.1rem; }
      .pp-sum .specs { font-size:0.9rem; flex-basis:100%; }
      .pp-iconbtn { padding:0.45rem 0.65rem; font-size:0.8rem; }
      .pp-photos { border-radius:12px; } .pp-ph-main { aspect-ratio:4/3; } .pp-ph-grid { aspect-ratio:2/1; }
      .pp-viewall { right:0.6rem; bottom:0.6rem; padding:0.45rem 0.7rem; font-size:0.78rem; }
      .pp-hl, .pp-facts { grid-template-columns:1fr; }
      .pp-h { font-size:1.35rem; } .pp-sec-h { font-size:1.25rem; } .pp-sec { margin-top:2.25rem; }
      .pp-map { height:230px; } .pp-card { padding:1.25rem; }
      .pp-tour { margin-top:2.25rem; } .pp-tour-in { padding:1.75rem 1.5rem; border-radius:16px; gap:1.25rem; }
      .pp-tour-in h2 { font-size:1.5rem; } .pp-tour-in p { font-size:1rem; }
      .pp-tour-btn { width:100%; text-align:center; padding:0.95rem; font-size:1.05rem; }
    }
    @media (max-width:380px){ .pp-sum .pp-sum-addr, .pp-sum .price { font-size:1rem; } .pp-iconbtn { padding:0.4rem 0.55rem; font-size:0.75rem; } }
    /* Mobile safety: long words / tables never cause horizontal scroll. */
    .pp-h, .pp-addr, .pp-sum-addr, .pp-row-t, .pp-agent-n { overflow-wrap:anywhere; }
    .pp-hist-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; }
    .pp-hist { min-width:340px; }
    @media (max-width:520px){ .pp-meta { gap:0.5rem 0.9rem; } .pp-meta .sep { display:none; } }

    /* Lightbox */
    .pp-lb { position:fixed; inset:0; z-index:200; background:rgba(10,14,20,0.94); display:none; flex-direction:column; }
    .pp-lb.open { display:flex; }
    .pp-lb-top { display:flex; align-items:center; justify-content:space-between; padding:1rem 1.5rem; color:var(--text-on-brand); }
    .pp-lb-count { font-weight:700; font-size:0.95rem; }
    .pp-lb-x { background:none; border:0; color:var(--text-on-brand); font-size:1.6rem; cursor:pointer; line-height:1; }
    .pp-lb-stage { flex:1; display:flex; align-items:center; justify-content:center; gap:1rem; padding:0 1rem 1.5rem; min-height:0; }
    .pp-lb-img { max-width:min(1100px,92vw); max-height:100%; object-fit:contain; border-radius:10px; }
    .pp-lb-nav { background:rgba(255,255,255,0.14); border:0; color:var(--text-on-brand); width:52px; height:52px; border-radius:50%; font-size:1.5rem; cursor:pointer; flex:none; }
    .pp-lb-nav:hover { background:rgba(255,255,255,0.28); }
    @media (max-width:640px){ .pp-lb-nav { width:42px; height:42px; } }

    /* Tour / generic modal */
    .pp-modal { position:fixed; inset:0; z-index:210; background:rgba(10,14,20,0.55); display:none; align-items:center; justify-content:center; padding:1.5rem; }
    .pp-modal.open { display:flex; }
    .pp-modal-card { background:var(--surface); border-radius:18px; max-width:440px; width:100%; padding:2rem; box-shadow:0 30px 70px rgba(0,0,0,0.35); }
    .pp-modal-card h3 { margin:0 0 0.35rem; font-size:1.5rem; font-weight: 700; color:var(--ink); }
    .pp-modal-card .sub { margin:0 0 1.25rem; color:var(--muted); font-size:0.95rem; }
    .pp-modal-card input, .pp-modal-card textarea { width:100%; box-sizing:border-box; border:1px solid var(--line); border-radius:10px; padding:0.7rem 0.85rem; font:inherit; margin-bottom:0.6rem; }
    .pp-modal-card textarea { min-height:70px; resize:vertical; }
    .pp-modal-go { width:100%; background:var(--blue); color:var(--text-on-brand); border:0; border-radius:10px; padding:0.85rem; font:inherit; font-weight: 700; cursor:pointer; }
    .pp-modal-go:hover { background:var(--blue-dark); }
    .pp-modal-x { float:right; background:none; border:0; font-size:1.4rem; cursor:pointer; color:var(--muted); line-height:1; margin:-0.5rem -0.5rem 0 0; }

    /* Toast */
    .pp-toast { position:fixed; left:50%; bottom:2rem; transform:translateX(-50%) translateY(1rem); background:var(--ink); color:var(--text-on-brand); padding:0.85rem 1.4rem; border-radius:99px; font-weight:600; font-size:0.9rem; opacity:0; pointer-events:none; transition:opacity .2s, transform .2s; z-index:220; }
    .pp-toast.show { opacity:1; transform:translateX(-50%) translateY(0); }
    
    /* --- narrow-phone floor ---
       Additive only: the locked .pp-* design is untouched. The main column
       carried an intrinsic minimum that pushed it past a 320px screen, so the
       headline and address were clipped on the right. */
    @media (max-width: 380px) {
        .pp-page, .pp-wrap, .pp-body, #pp-main { min-width: 0; max-width: 100%; }
        #pp-main > * { min-width: 0; max-width: 100%; }
        .pp-h { overflow-wrap: anywhere; }
    }

/* ══════════ document-reader ══════════ */
.tool-head, .dr-wrap, .tool-cta { width: 100%; box-sizing: border-box; }
        .tool-head { max-width: var(--page-w); margin: 0 auto; padding: 9.5rem var(--page-gutter) 0.5rem; }
        .tool-eyebrow { color: var(--brand); font-size: 0.74rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; margin-bottom: 1.1rem; }
        .tool-head h1 { font-family: var(--font-family-display); font-size: clamp(2.3rem, 3.6vw, 3.3rem); font-weight: 700; color: var(--text); letter-spacing: -0.035em; line-height: 1.05; margin: 0 0 1rem; }
        .tool-head p { font-size: 1.12rem; color: var(--text-secondary); line-height: 1.65; max-width: 62ch; margin: 0; }

        .dr-wrap { max-width: var(--page-w); margin: 0 auto; padding: 2.25rem var(--page-gutter) 5rem; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 2rem; align-items: start; min-width: 0; }
        .dr-card { border: 1px solid #e8edf3; border-radius: 18px; background: var(--surface); box-shadow: 0 12px 40px rgba(16,24,40,0.06); padding: 1.75rem; min-width: 0; }
        .dr-card h2 { font-size: 1.05rem; font-weight: 700; color: var(--text); margin: 0 0 0.9rem; display: flex; align-items: center; gap: 0.5rem; }
        .dr-card h2 svg { width: 18px; height: 18px; flex: none; }

        .dr-toolbar { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: center; margin-bottom: 0.9rem; }
        .dr-filebtn { display: inline-flex; align-items: center; gap: 0.4rem; border: 1px solid var(--border-strong); background: var(--bg-subtle); color: var(--text-secondary); font-family: inherit; font-weight: 700; font-size: 0.85rem; padding: 0.5rem 0.9rem; border-radius: var(--radius-pill); cursor: pointer; }
        .dr-filebtn:hover { border-color: var(--brand); color: var(--brand); }
        .dr-filebtn svg { width: 15px; height: 15px; }
        .dr-filename { font-size: 0.82rem; color: var(--text-muted); font-weight: 600; }
        .dr-count { margin-left: auto; font-size: 0.78rem; color: var(--text-faint); font-weight: 700; }

        #dr-text { width: 100%; box-sizing: border-box; min-height: 340px; resize: vertical; border: 1px solid var(--border); border-radius: var(--radius); padding: 0.9rem 1rem; font-family: inherit; font-size: 0.95rem; line-height: 1.6; color: var(--text); background: var(--surface); }
        #dr-text:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-ring); }
        .dr-note { font-size: 0.8rem; color: var(--text-muted); margin: 0.7rem 0 0; line-height: 1.5; }

        .dr-actions { display: flex; gap: 0.75rem; margin-top: 1.1rem; }
        .dr-analyze { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; background: var(--brand); color: var(--text-on-brand); border: 0; font-family: inherit; font-weight: 700; font-size: 0.98rem; padding: 0.85rem 1.6rem; border-radius: var(--radius-pill); cursor: pointer; }
        .dr-analyze:hover { background: var(--brand-hover); }
        .dr-analyze:disabled { opacity: 0.6; cursor: default; }
        .dr-analyze svg { width: 17px; height: 17px; }
        .dr-clear { background: none; border: 0; color: var(--text-muted); font-family: inherit; font-weight: 700; font-size: 0.9rem; cursor: pointer; padding: 0.85rem 0.5rem; }
        .dr-clear:hover { color: var(--brand); }

        /* Results column */
        .dr-empty { border: 1px dashed var(--border-strong); border-radius: 18px; padding: 3rem 1.75rem; text-align: center; color: var(--text-muted); }
        .dr-empty svg { width: 34px; height: 34px; color: var(--text-faint); margin-bottom: 0.75rem; }
        .dr-empty p { margin: 0; font-size: 0.95rem; line-height: 1.6; }
        .dr-error { display: none; background: var(--danger-tint); border: 1px solid var(--danger-border); color: var(--danger); border-radius: var(--radius); padding: 0.9rem 1.1rem; font-size: 0.9rem; font-weight: 600; margin-bottom: 1.25rem; }

        .dr-section { margin-bottom: 1.6rem; }
        .dr-section:last-child { margin-bottom: 0; }
        .dr-label { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-faint); margin: 0 0 0.7rem; display: flex; align-items: center; gap: 0.4rem; }
        .dr-label svg { width: 14px; height: 14px; }
        .dr-summary { font-size: 1rem; line-height: 1.7; color: var(--text-secondary); margin: 0; }
        .dr-ai-badge { display: inline-flex; align-items: center; gap: 0.3rem; margin-left: 0.5rem; font-size: 0.62rem; font-weight: 700; letter-spacing: 0.06em; color: var(--brand); background: var(--brand-tint); padding: 0.15rem 0.45rem; border-radius: var(--radius-pill); text-transform: uppercase; }

        .dr-flag { display: flex; gap: 0.75rem; border: 1px solid; border-radius: var(--radius-md); padding: 0.85rem 1rem; margin-bottom: 0.7rem; }
        .dr-flag:last-child { margin-bottom: 0; }
        .dr-flag .ico { flex: none; width: 20px; height: 20px; margin-top: 1px; }
        .dr-flag .body { min-width: 0; }
        .dr-flag .flabel { font-weight: 700; font-size: 0.92rem; margin: 0 0 0.2rem; display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
        .dr-flag .sev { font-size: 0.6rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; padding: 0.12rem 0.4rem; border-radius: var(--radius-pill); }
        .dr-flag .fdetail { font-size: 0.86rem; line-height: 1.55; margin: 0; color: var(--text-secondary); }
        .dr-flag.high { background: var(--danger-tint); border-color: var(--danger-border); }
        .dr-flag.high .ico, .dr-flag.high .flabel { color: var(--danger); }
        .dr-flag.high .sev { background: var(--danger); color: var(--text-on-brand); }
        .dr-flag.medium { background: var(--warning-tint); border-color: #fde3c0; }
        .dr-flag.medium .ico, .dr-flag.medium .flabel { color: var(--warning); }
        .dr-flag.medium .sev { background: var(--warning); color: var(--text-on-brand); }
        .dr-flag.low { background: var(--bg-subtle); border-color: var(--border); }
        .dr-flag.low .ico, .dr-flag.low .flabel { color: var(--text-strong); }
        .dr-flag.low .sev { background: var(--text-muted); color: var(--text-on-brand); }

        .dr-clean { display: flex; gap: 0.6rem; align-items: center; background: var(--success-tint); border: 1px solid #c6f0d6; color: var(--success); border-radius: var(--radius-md); padding: 0.85rem 1rem; font-size: 0.9rem; font-weight: 700; }
        .dr-clean svg { width: 19px; height: 19px; flex: none; }

        .dr-terms { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 0.5rem; }
        .dr-terms li { border: 1px solid var(--border); border-radius: var(--radius); padding: 0.55rem 0.8rem; min-width: 0; }
        .dr-terms .t { font-size: 0.7rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--text-faint); }
        .dr-terms .v { font-size: 0.98rem; font-weight: 700; color: var(--text); word-break: break-word; }

        .dr-disclaimer { display: flex; gap: 0.6rem; align-items: flex-start; margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--bg-muted); font-size: 0.82rem; line-height: 1.55; color: var(--text-muted); }
        .dr-disclaimer svg { width: 16px; height: 16px; flex: none; margin-top: 1px; color: var(--text-faint); }

        .dr-spin { display: none; align-items: center; gap: 0.6rem; color: var(--text-muted); font-weight: 700; font-size: 0.92rem; }
        .dr-spin svg { width: 20px; height: 20px; animation: dr-rot 0.9s linear infinite; }
        @keyframes dr-rot { to { transform: rotate(360deg); } }

        .tool-cta { max-width: var(--page-w); margin: 0 auto; padding: 0 var(--page-gutter) 5rem; }
        .tool-cta .inner { text-align: center; background: linear-gradient(135deg,var(--brand),var(--brand-hover)); border-radius: 18px; padding: 2.5rem; color: var(--text-on-dark); }
        .tool-cta h3 { font-size: 1.6rem; font-weight: 700; margin: 0 0 0.5rem; }
        .tool-cta p { color: rgba(255,255,255,0.9); margin: 0 0 1.5rem; }
        .tool-cta a { display: inline-block; background: var(--surface); color: var(--brand); font-weight: 700; padding: 0.9rem 2rem; border-radius: var(--radius-pill); text-decoration: none; }

        @media (max-width: 900px) {
            .dr-wrap { grid-template-columns: 1fr; }
            .tool-head { padding: 7.5rem var(--page-gutter) 0.5rem; }
        }
        @media (max-width: 460px) {
            .dr-card { padding: 1.35rem; }
            .dr-terms { grid-template-columns: 1fr; }
            .tool-cta .inner { padding: 2rem 1.5rem; }
        }

/* ══════════ deal-room ══════════ */
.dr-wrap { width: 100%; max-width: 1100px; margin: 0 auto; padding: 7rem var(--page-gutter) 5rem; box-sizing: border-box; }
        .dr-back { display: inline-flex; align-items: center; gap: .4rem; color: var(--text-muted); text-decoration: none; font-weight: 600; font-size: .9rem; margin-bottom: 1.25rem; }
        .dr-head { background: var(--surface); border: 1px solid var(--border); border-radius: 18px; padding: 1.75rem 2rem; box-shadow: 0 4px 14px rgba(16,24,40,.05); }
        .dr-eyebrow { font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--brand); }
        .dr-h1 { font-family: var(--font-family-display); font-size: clamp(1.5rem, 3vw, 2.1rem); font-weight: 700; letter-spacing: -.03em; color: var(--text); margin: .35rem 0 .1rem; line-height: 1.1; }
        .dr-sub { color: var(--text-secondary); font-size: .98rem; }
        .dr-stagebar { display: flex; align-items: center; gap: 1rem; margin-top: 1.25rem; flex-wrap: wrap; }
        .dr-stage { display: inline-flex; align-items: center; gap: .5rem; background: var(--brand-tint); color: var(--brand); font-weight: 700; font-size: .82rem; padding: .4rem .8rem; border-radius: 999px; }
        .dr-progress { flex: 1; min-width: 180px; height: 9px; background: var(--bg-muted); border-radius: 999px; overflow: hidden; }
        .dr-progress > i { display: block; height: 100%; background: var(--brand); border-radius: 999px; transition: width .3s; }
        .dr-progtext { font-size: .82rem; color: var(--text-muted); font-weight: 700; }
        .dr-meta { display: flex; flex-wrap: wrap; gap: 1.5rem; margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid var(--border); }
        .dr-metaitem .l { font-size: .68rem; text-transform: uppercase; letter-spacing: .06em; color: var(--text-faint); font-weight: 700; }
        .dr-metaitem .v { font-size: 1rem; font-weight: 700; color: var(--text); margin-top: .1rem; }
        .dr-grid { display: grid; grid-template-columns: 1.55fr 1fr; gap: 1.5rem; margin-top: 1.5rem; align-items: start; }
        .dr-card { background: var(--surface); border: 1px solid var(--border); border-radius: 18px; padding: 1.5rem 1.65rem; box-shadow: 0 4px 14px rgba(16,24,40,.05); }
        .dr-card h2 { font-size: 1.15rem; font-weight: 700; color: var(--text); margin: 0 0 1.15rem; letter-spacing: -.01em; }
        /* Milestone stepper */
        .ms { list-style: none; margin: 0; padding: 0; position: relative; }
        .ms li { display: flex; gap: .9rem; padding: 0 0 1.15rem; position: relative; }
        .ms li:not(:last-child)::before { content: ''; position: absolute; left: 13px; top: 26px; bottom: 0; width: 2px; background: var(--border); }
        .ms li.done:not(:last-child)::before { background: var(--brand); }
        .ms-dot { flex: 0 0 auto; width: 28px; height: 28px; border-radius: 50%; border: 2px solid var(--border); background: var(--surface); display: grid; place-items: center; cursor: default; color: transparent; transition: all .15s; z-index: 1; }
        .ms li.done .ms-dot { background: var(--brand); border-color: var(--brand); color: var(--text-on-brand); }
        .ms-dot.can { cursor: pointer; }
        .ms-dot.can:hover { border-color: var(--brand); }
        .ms-body { flex: 1; min-width: 0; padding-top: .15rem; }
        .ms-title { font-weight: 700; color: var(--text); font-size: .98rem; }
        .ms li.done .ms-title { color: var(--text-muted); }
        .ms-sub { font-size: .8rem; color: var(--text-faint); margin-top: .1rem; }
        .ms-del { margin-left: auto; border: none; background: none; color: var(--text-faint); cursor: pointer; font-size: 1.1rem; line-height: 1; padding: 0 .25rem; }
        .ms-del:hover { color: var(--danger); }
        /* Documents */
        .doc { display: flex; align-items: center; gap: .8rem; padding: .8rem 0; border-top: 1px solid var(--border); }
        .doc:first-child { border-top: 0; }
        .doc-ic { flex: 0 0 auto; width: 36px; height: 36px; border-radius: 9px; background: var(--brand-tint); display: grid; place-items: center; color: var(--brand); }
        .doc-b { min-width: 0; flex: 1; }
        .doc-n { font-weight: 700; color: var(--text); font-size: .92rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
        .doc-pill { display: inline-block; font-size: .66rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; padding: .12rem .45rem; border-radius: 5px; margin-top: .2rem; }
        .doc-pill.none { background: var(--bg-muted); color: var(--text-muted); }
        .doc-pill.sent { background: #fef3c7; color: #92400e; }
        .doc-pill.signed { background: #dcfce7; color: #166534; }
        .dr-inrow { display: flex; gap: .5rem; margin-top: 1rem; flex-wrap: wrap; }
        .dr-in { flex: 1; min-width: 0; font: inherit; font-size: .9rem; padding: .6rem .75rem; border: 1px solid var(--border); border-radius: 9px; background: var(--surface); color: var(--text); box-sizing: border-box; }
        .dr-btn { border: none; border-radius: 9px; padding: .6rem 1rem; font-weight: 700; font-size: .86rem; cursor: pointer; font-family: inherit; background: var(--brand); color: var(--text-on-brand); text-decoration: none; display: inline-block; text-align: center; }
        .dr-btn.ghost { background: var(--surface); color: var(--text); border: 1px solid var(--border); }
        .dr-btn.mini { padding: .35rem .7rem; font-size: .76rem; }
        .dr-signnote { font-size: .74rem; color: var(--text-faint); margin-top: .6rem; line-height: 1.45; }
        .dr-agent { display: flex; align-items: center; gap: .85rem; margin-top: 1rem; }
        .dr-ava { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; background: var(--brand-tint); color: var(--brand); display: grid; place-items: center; font-weight: 700; }
        .dr-empty { text-align: center; padding: 5rem 1.5rem; color: var(--text-muted); }
        .dr-danger { color: var(--danger); }
        .dr-svc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1rem; }
        .dr-svc { border: 1px solid var(--border); border-radius: 14px; padding: 1.1rem 1.15rem; display: flex; flex-direction: column; }
        .dr-svc-cat { font-weight: 700; color: var(--text); font-size: 1rem; }
        .dr-svc-when { color: var(--text-muted); font-size: .82rem; margin: .25rem 0 .7rem; line-height: 1.4; }
        .dr-svc-partner { font-size: .9rem; font-weight: 700; color: var(--text); margin-top: auto; }
        .dr-svc-partner span { display: block; font-weight: 400; color: var(--text-secondary); font-size: .82rem; margin-top: .2rem; line-height: 1.4; }
        .dr-svc-done { margin-top: .7rem; background: #dcfce7; color: #166534; font-weight: 700; font-size: .82rem; border-radius: 8px; padding: .5rem .7rem; text-align: center; }
        @media (max-width: 860px) { .dr-grid { grid-template-columns: 1fr; } }

/* ══════════ open-houses ══════════ */
.ag-hero { position: relative; padding: 12rem 2rem 5rem; text-align: center; color: var(--text-on-dark); background-color: var(--bg-dark); background-image: url('/assets/images/cr-agent-showing-home.jpg'); background-size: cover; background-position: center; overflow: hidden; isolation: isolate; }
        .ag-hero::before { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,14,22,0.72) 0%, rgba(10,14,22,0.55) 45%, rgba(10,14,22,0.88) 100%); z-index: 0; }
        .ag-hero > * { position: relative; z-index: 1; }
        .ag-hero h1 { font-size: 4.5rem; font-weight: 700; letter-spacing: -2px; margin: 0 0 1.25rem; line-height: 1.05; text-shadow: 0 2px 20px rgba(0,0,0,0.4); }
        .ag-hero p { font-size: 1.2rem; color: var(--border); max-width: 680px; margin: 0 auto 2.25rem; line-height: 1.6; text-shadow: 0 1px 10px rgba(0,0,0,0.35); }
        .ag-search-wrap { position: relative; max-width: 640px; margin: 0 auto; }
        .ag-search-wrap svg { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); color: var(--text-faint); pointer-events: none; }
        .ag-search-wrap input { width: 100%; padding: 1rem 1rem 1rem 3rem; border: none; border-radius: var(--radius-lg); font-size: 1rem; font-family: inherit; background: var(--surface); color: var(--text); outline: none; box-sizing: border-box; box-shadow: 0 15px 40px rgba(0,0,0,0.2); }

        .oh-bar { max-width: var(--page-w); margin: 0 auto; padding: 1.5rem var(--page-gutter); display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; }
        .oh-chip { border: 1px solid var(--border); background: var(--surface); color: var(--text-secondary); border-radius: 999px; padding: 0.5rem 1.1rem; font-weight: 700; font-size: 0.85rem; cursor: pointer; font-family: inherit; }
        .oh-chip.active { background: var(--brand); color: var(--text-on-brand); border-color: var(--brand); }
        .oh-count { margin-left: auto; color: var(--text-muted); font-size: 0.9rem; font-weight: 600; }
        .oh-maplink { display: inline-flex; align-items: center; gap: 0.45rem; text-decoration: none; color: var(--brand); border: 1px solid var(--brand); border-radius: 999px; padding: 0.5rem 1.1rem; font-weight: 700; font-size: 0.85rem; }
        .oh-maplink:hover { background: var(--brand-tint); }

        .oh-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(290px, 100%), 1fr));
                   gap: 1.5rem; width: 100%; max-width: var(--page-w); margin: 0 auto;
                   padding: 1.5rem var(--page-gutter) 5rem; box-sizing: border-box; }
        /* body is a column flex container, and `margin: 0 auto` on a flex
           item opts it out of stretching — so the grid sized to max-content
           and laid out four 291px columns inside a 320px phone. width:100%
           gives it the container width to divide up. */
        /* minmax(290px,…) can't shrink below 290px, so every card ran off
           the right edge on a phone. min() lets the track collapse. */
        .oh-card, .oh-img { min-width: 0; max-width: 100%; }
        .oh-card { background: var(--surface); border: 1px solid var(--bg-muted); border-radius: 16px; overflow: hidden; transition: box-shadow .2s, transform .15s; display: flex; flex-direction: column; }
        .oh-card:hover { box-shadow: 0 14px 30px rgba(16,24,40,0.12); transform: translateY(-3px); }
        .oh-img { position: relative; aspect-ratio: 16/10; background: var(--bg-muted); }
        .oh-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
        .oh-datechip { position: absolute; left: 0.8rem; bottom: 0.8rem; background: rgba(219,37,43,0.96); color: var(--text-on-brand); border-radius: 10px; padding: 0.45rem 0.7rem; box-shadow: 0 6px 16px rgba(219,37,43,0.4); }
        .oh-datechip .d { font-size: 0.78rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; line-height: 1; }
        .oh-datechip .t { font-size: 0.8rem; font-weight: 600; margin-top: 0.15rem; opacity: 0.95; }
        .oh-live { position: absolute; left: 0.8rem; top: 0.8rem; background: #16a34a; color: var(--text-on-brand); font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; padding: 0.25rem 0.55rem; border-radius: 7px; display: inline-flex; align-items: center; gap: 0.3rem; }
        .oh-live::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--surface); }
        .oh-save { position: absolute; right: 0.8rem; top: 0.8rem; width: 38px; height: 38px; border-radius: 50%; border: none; background: rgba(255,255,255,0.92); color: var(--text-muted); cursor: pointer; display: grid; place-items: center; box-shadow: 0 4px 12px rgba(0,0,0,0.15); }
        .oh-save.saved { color: var(--brand); }
        .oh-save svg { width: 19px; height: 19px; }
        .oh-b { padding: 1rem 1.1rem 1.15rem; display: flex; flex-direction: column; flex: 1; }
        .oh-price { font-weight: 700; color: var(--text); font-size: 1.2rem; }
        .oh-addr { font-size: 0.9rem; color: var(--text-secondary); margin-top: 0.15rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
        .oh-facts { font-size: 0.84rem; color: var(--text-muted); margin-top: 0.3rem; }
        .oh-host { margin-top: auto; padding-top: 0.9rem; display: flex; align-items: center; gap: 0.5rem; font-size: 0.82rem; color: var(--text-muted); }
        .oh-host .av { width: 26px; height: 26px; border-radius: 50%; object-fit: cover; background: var(--brand-tint); color: var(--brand); display: grid; place-items: center; font-weight: 700; font-size: 0.7rem; overflow: hidden; }
        .oh-empty { grid-column: 1/-1; text-align: center; color: var(--text-faint); padding: 4rem 1rem; }
        .oh-view { display: block; text-align: center; margin-top: 0.85rem; background: var(--surface-ink); color: var(--text-on-brand); font-weight: 700; padding: 0.65rem; border-radius: 9px; font-size: 0.88rem; text-decoration: none; }
        .oh-card:hover .oh-view { background: var(--bg-dark); }

        @media (max-width: 900px) { .ag-hero { padding: 7rem 1.25rem 3rem; } .ag-hero h1 { font-size: 2.5rem; letter-spacing: -1px; } .ag-hero p { font-size: 1rem; } }
        @media (max-width: 480px) { .ag-hero h1 { font-size: 2rem; } .ag-hero { padding: 6.25rem 1rem 2.5rem; } }

/* ══════════ my-home ══════════ */



        :root { --header-h: 84px; }
        @media (max-width: 900px) { :root { --header-h: 72px; } }

        .mh-wrap { max-width: 1120px; margin: 0 auto; padding: calc(var(--header-h) + 2.5rem) 1.5rem 5rem; box-sizing: border-box; }

        /* ── Page head ─────────────────────────────────────────────── */
        .mh-head { margin-bottom: 2rem; }
        .mh-eyebrow { display: inline-flex; align-items: center; gap: 0.45rem; font-size: 0.78rem; font-weight: 700; letter-spacing: 1.2px; color: var(--brand); text-transform: uppercase; margin-bottom: 0.7rem; }
        .mh-eyebrow svg { width: 15px; height: 15px; }
        .mh-title { font-size: 2.15rem; font-weight: 700; letter-spacing: -1px; color: var(--text); margin: 0 0 0.45rem; }
        .mh-sub { color: var(--text-secondary); font-size: 1.05rem; margin: 0; }

        /* ── Card primitives ───────────────────────────────────────── */
        .mh-grid { display: grid; grid-template-columns: 1.35fr 1fr; gap: 1.25rem; align-items: start; }
        .mh-card {
            background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg);
            padding: 1.5rem 1.6rem 1.65rem; box-shadow: 0 2px 10px rgba(16,24,40,0.04);
        }
        .mh-card-head { display: flex; align-items: center; gap: 0.6rem; margin-bottom: 1.1rem; }
        .mh-card-ic {
            display: inline-flex; align-items: center; justify-content: center;
            width: 38px; height: 38px; border-radius: 10px; flex-shrink: 0;
            background: var(--brand-tint); color: var(--brand);
        }
        .mh-card-ic svg { width: 20px; height: 20px; }
        .mh-card-h { font-size: 1.08rem; font-weight: 700; letter-spacing: -0.3px; color: var(--text); margin: 0; }
        .mh-card-note { font-size: 0.85rem; color: var(--text-muted); margin: 0.15rem 0 0; line-height: 1.4; }

        /* ── Value & equity ────────────────────────────────────────── */
        .mh-value-main { display: flex; align-items: baseline; gap: 0.65rem; flex-wrap: wrap; }
        .mh-value-num { font-size: 2.5rem; font-weight: 700; letter-spacing: -1.2px; color: var(--text); line-height: 1; font-variant-numeric: tabular-nums; }
        .mh-conf {
            display: inline-flex; align-items: center; gap: 0.35rem;
            font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.6px;
            padding: 0.2rem 0.55rem; border-radius: var(--radius-pill);
        }
        .mh-conf.high { background: var(--success-tint); color: var(--success); }
        .mh-conf.medium { background: var(--warning-tint); color: var(--warning); }
        .mh-conf.low { background: var(--bg-muted); color: var(--text-muted); }
        .mh-band { font-size: 0.88rem; color: var(--text-muted); margin: 0.6rem 0 0; }
        .mh-basis { font-size: 0.78rem; color: var(--text-faint); margin: 0.25rem 0 0; }
        .mh-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.85rem; margin-top: 1.35rem; }
        .mh-metric { background: var(--bg-subtle); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 0.85rem 0.95rem; }
        .mh-metric-lbl { font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.7px; color: var(--text-faint); margin-bottom: 0.35rem; }
        .mh-metric-num { font-size: 1.3rem; font-weight: 700; color: var(--text); letter-spacing: -0.5px; line-height: 1.1; font-variant-numeric: tabular-nums; }
        .mh-appr { display: inline-flex; align-items: center; gap: 0.35rem; margin-top: 0.9rem; font-size: 0.9rem; font-weight: 700; }
        .mh-appr.up { color: var(--success); }
        .mh-appr.down { color: var(--danger); }
        .mh-appr svg { width: 16px; height: 16px; }

        /* ── Forms & inputs ────────────────────────────────────────── */
        .mh-field { margin-bottom: 0.9rem; }
        .mh-field label { display: block; font-size: 0.82rem; font-weight: 600; color: var(--text-secondary); margin-bottom: 0.35rem; }
        .mh-input {
            width: 100%; box-sizing: border-box; padding: 0.7rem 0.9rem;
            border: 1px solid var(--border); border-radius: var(--radius-sm);
            font-size: 0.95rem; font-family: inherit; color: var(--text);
            background: var(--surface); outline: none; transition: border-color 0.15s;
        }
        .mh-input:focus { border-color: var(--brand); }
        .mh-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0.9rem; }
        .mh-row3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 0.9rem; }

        .mh-btn {
            display: inline-flex; align-items: center; justify-content: center; gap: 0.45rem;
            padding: 0.72rem 1.4rem; border-radius: var(--radius); font-weight: 700; font-size: 0.9rem;
            font-family: inherit; cursor: pointer; border: 1px solid transparent; transition: background 0.15s, opacity 0.15s;
        }
        .mh-btn svg { width: 16px; height: 16px; }
        .mh-btn-primary { background: var(--brand); color: var(--text-on-dark); }
        .mh-btn-primary:hover { background: var(--brand-hover); }
        .mh-btn-primary:disabled { opacity: 0.6; cursor: not-allowed; }
        .mh-btn-ghost { background: var(--surface); color: var(--text); border-color: var(--border-strong); }
        .mh-btn-ghost:hover { border-color: var(--brand); color: var(--brand); }
        .mh-btn-sm { padding: 0.5rem 0.9rem; font-size: 0.82rem; }

        .mh-inline-form { display: flex; gap: 0.55rem; align-items: center; margin-top: 1rem; flex-wrap: wrap; }
        .mh-inline-form .mh-input { flex: 1; min-width: 140px; width: auto; }

        .mh-note { padding: 0.7rem 0.95rem; border-radius: var(--radius-sm); font-size: 0.86rem; margin-top: 0.85rem; display: none; }
        .mh-note.show { display: block; }
        .mh-note.ok { background: var(--success-tint); color: var(--success); border: 1px solid var(--success); }
        .mh-note.err { background: var(--danger-tint); color: var(--danger); border: 1px solid var(--danger-border); }

        /* ── Refi signal banner ────────────────────────────────────── */
        .mh-signal {
            display: flex; gap: 0.7rem; align-items: flex-start;
            background: var(--brand-tint); border: 1px solid var(--brand-ring, var(--brand)); border-radius: var(--radius-md);
            padding: 0.85rem 1rem; margin-top: 1.1rem;
        }
        .mh-signal svg { width: 18px; height: 18px; color: var(--brand); flex-shrink: 0; margin-top: 1px; }
        .mh-signal-t { font-size: 0.9rem; font-weight: 700; color: var(--text); margin: 0 0 0.15rem; }
        .mh-signal-d { font-size: 0.83rem; color: var(--text-secondary); margin: 0; line-height: 1.45; }

        /* ── Task list ─────────────────────────────────────────────── */
        .mh-list { display: flex; flex-direction: column; gap: 0.5rem; }
        .mh-task { display: flex; align-items: center; gap: 0.7rem; padding: 0.65rem 0.8rem; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--bg-subtle); }
        .mh-check {
            appearance: none; -webkit-appearance: none; flex-shrink: 0;
            width: 20px; height: 20px; border: 1px solid var(--border-strong); border-radius: 6px;
            background: var(--surface); cursor: pointer; position: relative; transition: background 0.15s, border-color 0.15s;
        }
        .mh-check:checked { background: var(--brand); border-color: var(--brand); }
        .mh-check:checked::after { content: ''; position: absolute; left: 6px; top: 2px; width: 5px; height: 10px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
        .mh-task-main { flex: 1; min-width: 0; }
        .mh-task-title { font-size: 0.92rem; font-weight: 600; color: var(--text); }
        .mh-task.done .mh-task-title { text-decoration: line-through; color: var(--text-faint); }
        .mh-tag { display: inline-block; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.5px; text-transform: uppercase; color: var(--brand); background: var(--brand-tint); padding: 0.15rem 0.45rem; border-radius: 5px; margin-left: 0.5rem; vertical-align: middle; }
        .mh-x {
            flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center;
            width: 28px; height: 28px; border: none; background: none; border-radius: 7px;
            color: var(--text-faint); cursor: pointer; transition: background 0.15s, color 0.15s;
        }
        .mh-x:hover { background: var(--danger-tint); color: var(--danger); }
        .mh-x svg { width: 15px; height: 15px; }

        /* ── Documents ─────────────────────────────────────────────── */
        .mh-doc { display: flex; align-items: center; gap: 0.7rem; padding: 0.7rem 0.8rem; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--bg-subtle); }
        .mh-doc svg.doc-ic { width: 20px; height: 20px; color: var(--brand); flex-shrink: 0; }
        .mh-doc-main { flex: 1; min-width: 0; }
        .mh-doc-name { font-size: 0.92rem; font-weight: 700; color: var(--text); }
        .mh-doc-name a { color: var(--brand); text-decoration: none; }
        .mh-doc-name a:hover { text-decoration: underline; }
        .mh-doc-meta { font-size: 0.76rem; color: var(--text-faint); }

        /* ── Pros ──────────────────────────────────────────────────── */
        .mh-pro { display: flex; align-items: flex-start; gap: 0.8rem; padding: 0.9rem; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--bg-subtle); }
        .mh-pro-ic { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 10px; background: var(--brand-tint); color: var(--brand); flex-shrink: 0; }
        .mh-pro-ic svg { width: 20px; height: 20px; }
        .mh-pro-main { flex: 1; min-width: 0; }
        .mh-pro-cat { font-size: 0.68rem; font-weight: 700; letter-spacing: 0.6px; text-transform: uppercase; color: var(--text-faint); }
        .mh-pro-name { font-size: 0.95rem; font-weight: 700; color: var(--text); margin: 0.1rem 0; }
        .mh-pro-blurb { font-size: 0.83rem; color: var(--text-secondary); line-height: 1.45; margin: 0; }

        .mh-empty-state { color: var(--text-muted); font-size: 0.9rem; text-align: center; padding: 1.75rem 1rem; background: var(--bg-subtle); border: 1px dashed var(--border-strong); border-radius: var(--radius-md); }

        /* ── First-run empty (no home yet) ─────────────────────────── */
        .mh-hero-empty {
            background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-xl);
            padding: 2.75rem 2.5rem 3rem; max-width: 720px; margin: 0 auto; box-shadow: 0 2px 10px rgba(16,24,40,0.04);
        }
        .mh-hero-ic {
            display: inline-flex; align-items: center; justify-content: center;
            width: 60px; height: 60px; border-radius: 16px; background: var(--brand-tint); color: var(--brand); margin-bottom: 1.25rem;
        }
        .mh-hero-ic svg { width: 30px; height: 30px; }
        .mh-hero-empty h2 { font-size: 1.5rem; font-weight: 700; letter-spacing: -0.5px; margin: 0 0 0.5rem; }
        .mh-hero-empty p.lead { color: var(--text-secondary); font-size: 1rem; line-height: 1.6; margin: 0 0 1.9rem; }

        .mh-loading { color: var(--text-faint); font-size: 0.95rem; text-align: center; padding: 4rem 1rem; }

        .mh-section-h { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: var(--text-faint); margin: 0 0 0.7rem; }

        @media (max-width: 860px) {
            .mh-grid { grid-template-columns: 1fr; }
        }
        @media (max-width: 560px) {
            .mh-title { font-size: 1.7rem; }
            .mh-metrics { grid-template-columns: 1fr; }
            .mh-row2, .mh-row3 { grid-template-columns: 1fr; }
            .mh-hero-empty { padding: 1.9rem 1.4rem 2.2rem; }
            .mh-wrap { padding-left: 1.1rem; padding-right: 1.1rem; }
        }

/* ══════════ brokerage-profile ══════════ */
.agent-back-wrap { position: absolute; top: 6.5rem; left: 2rem; z-index: 10; }
        .agent-back-link { display: inline-flex; align-items: center; gap: 0.5rem; color: rgba(255,255,255,0.9); text-decoration: none; font-size: 0.9rem; font-weight: 500; padding: 0.5rem 0.9rem; border-radius: var(--radius-pill); border: 1px solid rgba(255,255,255,0.12); background: rgba(255,255,255,0.04); transition: color 0.2s, background 0.2s, border-color 0.2s, transform 0.2s; }
        .agent-back-link:hover { color: var(--text-on-dark); background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.25); transform: translateX(-2px); }
        @media (max-width: 600px) { .agent-back-wrap { top: 5.5rem; left: 1rem; } .agent-back-link { font-size: 0.82rem; padding: 0.4rem 0.75rem; } }

        @media (max-width: 768px) {
            /* hero is .aph-* only now — no #profile-hero img/h1/p/span rules */
            #profile-section { padding: 2.5rem 0 4rem !important; }
            #profile-body { grid-template-columns: 1fr !important; gap: 1.25rem !important; padding: 0 1rem !important; }
            #profile-body > div { padding: 1.75rem 1.25rem !important; position: static !important; top: auto !important; }
        }
    


        /* ── Profile sections — reused verbatim from the agent profile ────── */
        .ap-nav { position: sticky; top: var(--nav-h, 78px); z-index: 40; background: rgba(255,255,255,0.94); backdrop-filter: blur(8px); border-bottom: 1px solid var(--bg-muted); }
        :root { --ap-w: var(--page-w, 1340px); }
        .ap-nav-inner { max-width: var(--ap-w); margin: 0 auto; padding: 0 1.5rem; display: flex; gap: 1.75rem; overflow-x: auto; scrollbar-width: none; }
        .ap-nav-inner::-webkit-scrollbar { display: none; }
        .ap-nav a { flex: 0 0 auto; padding: 1.05rem 0; text-decoration: none; white-space: nowrap; font-size: 0.92rem; font-weight: 600; color: var(--text-muted); border-bottom: 2px solid transparent; }
        .ap-nav a:hover { color: var(--text); }
        .ap-nav a.is-active { color: var(--brand); border-bottom-color: var(--brand); }
        .ap-nav a[hidden] { display: none; }
        .ap-main { background: transparent; border: 0; box-shadow: none; padding: 0; }
        #profile-section { background: var(--surface) !important; }
        #profile-body { max-width: var(--ap-w) !important; padding: 0 1.5rem !important; grid-template-columns: minmax(0, 1.62fr) minmax(320px, 1fr) !important; column-gap: 3rem !important; }
        @media (max-width: 768px) { #profile-body { padding: 0 1rem !important; } }

        .ap-sec { scroll-margin-top: calc(var(--nav-h, 78px) + 78px); }
        .ap-sec + .ap-sec { margin-top: 3.25rem; padding-top: 2.75rem; border-top: 1px solid var(--bg-muted); }
        .ap-h2 { font-size: 1.5rem; font-weight: 700; color: var(--text); letter-spacing: -0.02em; margin: 0 0 1.25rem; }
        .ap-h3 { font-size: 1rem; font-weight: 700; color: var(--text); margin: 0 0 0.9rem; }
        .ap-count { color: var(--text-faint); font-weight: 600; }
        .ap-p { font-size: 1.02rem; line-height: 1.8; color: var(--text-secondary); margin: 0 0 1.1rem; }
        .ap-p:last-child { margin-bottom: 0; }

        .ap-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 1rem; }
        .ap-stat { background: var(--bg-subtle); border-radius: 10px; padding: 1.25rem 1rem; text-align: center; }
        .ap-stat-v { font-size: 1.75rem; font-weight: 700; color: var(--text); letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
        .ap-stat-l { font-size: 0.78rem; color: var(--text-muted); margin-top: 0.25rem; }

        .ap-contact { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 1.25rem 2rem; }
        .ap-ci { display: flex; flex-direction: column; gap: 0.2rem; min-width: 0; }
        .ap-ci-l { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-faint); }
        .ap-ci a, .ap-ci span:last-child { color: var(--text-strong); font-weight: 600; font-size: 0.96rem; overflow-wrap: anywhere; }
        .ap-ci a { color: var(--brand); text-decoration: none; }
        .ap-ci a:hover { text-decoration: underline; }

        .ap-ticks { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 0.6rem 1.5rem; }
        .ap-ticks li { display: flex; gap: 0.65rem; align-items: flex-start; font-size: 0.96rem; color: var(--text-secondary); }
        .ap-ticks svg { flex: 0 0 auto; width: 16px; height: 16px; margin-top: 3px; color: var(--brand); }

        .ap-homes { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 1.25rem; }
        .ap-home { text-decoration: none; color: inherit; border: 1px solid var(--bg-muted); border-radius: 10px; overflow: hidden; background: var(--surface); transition: box-shadow .2s, transform .15s; }
        .ap-home:hover { box-shadow: 0 10px 24px rgba(16,24,40,0.10); transform: translateY(-2px); }
        .ap-home-img { position: relative; aspect-ratio: 4/3; background: var(--bg-muted); }
        .ap-home-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
        .ap-home-b { padding: 0.75rem 0.85rem 0.9rem; }
        .ap-home-p { font-weight: 700; color: var(--text); font-size: 1.05rem; }
        .ap-home-f { font-size: 0.85rem; color: var(--text-secondary); margin-top: 0.15rem; }
        .ap-home-a { font-size: 0.82rem; color: var(--text-muted); margin-top: 0.2rem; }

        /* Sidebar contact card */
        .ap-side-card { background: var(--surface); border: 1px solid var(--bg-muted); border-radius: 14px; padding: 1.75rem; position: sticky; top: calc(var(--nav-h, 78px) + 90px); box-shadow: 0 4px 16px rgba(16,24,40,0.05); }
        .bc-in { width: 100%; box-sizing: border-box; padding: 0.65rem 0.8rem; border: 1px solid var(--border); border-radius: 9px; font: inherit; font-size: 0.92rem; }
        .bc-in:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 3px rgba(219,37,43,0.12); }
        .bc-send { background: var(--brand); color: var(--text-on-brand); border: 0; border-radius: 9px; padding: 0.7rem; font: inherit; font-weight: 700; cursor: pointer; }
        @media (max-width: 900px) { #profile-body { grid-template-columns: 1fr !important; } .ap-side-card { position: static; } }

        /* Team cards — same vocabulary as the /agents directory cards */
        .agent-card.ac-v2 { padding: 1.5rem; overflow: visible; height: 100%; box-sizing: border-box; display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--bg-muted); border-radius: 14px; }
        .agent-card.ac-v2:hover { box-shadow: 0 10px 24px rgba(16,24,40,0.10); }
        .ac-head { display: flex; align-items: center; gap: 0.9rem; margin-bottom: 1rem; }
        .ac-avatar { position: relative; width: 52px; height: 52px; border-radius: 50%; flex-shrink: 0; background: var(--border); display: flex; align-items: center; justify-content: center; overflow: hidden; }
        .ac-avatar img { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; }
        .ac-initials { font-weight: 700; color: var(--text-secondary); font-size: 1.05rem; }
        .ac-name { font-size: 1rem; font-weight: 700; color: var(--text); margin: 0; line-height: 1.2; }
        .ac-broker { font-size: 0.83rem; color: var(--text-muted); margin-top: 0.12rem; }
        .ac-years { font-size: 0.78rem; font-weight: 700; color: var(--brand); margin-top: 0.15rem; }
        .ac-bio { font-size: 0.88rem; color: var(--text-secondary); line-height: 1.55; margin: 0 0 1rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
        .ac-btn { margin-top: auto; display: block; text-align: center; background: var(--surface-ink,#14161a); color: var(--text-on-dark,#fff); font-weight: 700; padding: 0.7rem; border-radius: var(--radius); font-size: 0.9rem; transition: background 0.15s; }
        .agent-link-wrapper:hover .ac-btn { background: var(--bg-dark); }

        .ap-hero-btns { display: flex; gap: 0.6rem; justify-content: center; flex-wrap: wrap; margin-top: 1.5rem; }
        .ap-hero-btn { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.7rem 1.4rem; border-radius: 99px; font-weight: 700; font-size: 0.95rem; text-decoration: none; cursor: pointer; }
        .ap-hero-btn--solid { background: var(--brand); color: var(--text-on-brand); border: 1px solid var(--brand); }
        .ap-hero-btn--ghost { background: rgba(255,255,255,0.12); color: var(--text-on-brand); border: 1px solid rgba(255,255,255,0.28); }

/* ══════════ compare-homes ══════════ */



        :root { --header-h: 84px; }
        @media (max-width: 900px) { :root { --header-h: 72px; } }

        .cmp-wrap { max-width: 1180px; margin: 0 auto; padding: calc(var(--header-h) + 2.25rem) 1.5rem 5rem; box-sizing: border-box; }

        /* ── Hero ─────────────────────────────────────────────────────── */
        .cmp-hero { margin-bottom: 1.75rem; }
        .cmp-eyebrow { display: inline-flex; align-items: center; gap: 0.45rem; font-size: 0.76rem; font-weight: 700; letter-spacing: 1.2px; color: var(--brand); text-transform: uppercase; margin-bottom: 0.65rem; }
        .cmp-eyebrow svg { width: 15px; height: 15px; }
        .cmp-title { font-size: 2.2rem; font-weight: 700; letter-spacing: -1px; color: var(--text); margin: 0 0 0.4rem; }
        .cmp-sub { color: var(--text-secondary); font-size: 1.05rem; margin: 0; }

        /* ── Card primitive ───────────────────────────────────────────── */
        .cmp-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 1.4rem 1.5rem 1.5rem; box-shadow: 0 2px 10px rgba(16,24,40,0.04); margin-bottom: 1.35rem; }
        .cmp-card-head { display: flex; align-items: center; gap: 0.6rem; margin-bottom: 1.1rem; }
        .cmp-card-ic { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 10px; flex-shrink: 0; background: var(--brand-tint); color: var(--brand); }
        .cmp-card-ic svg { width: 19px; height: 19px; }
        .cmp-card-h { font-size: 1.06rem; font-weight: 700; letter-spacing: -0.3px; color: var(--text); margin: 0; }
        .cmp-card-note { font-size: 0.84rem; color: var(--text-muted); margin: 0.1rem 0 0; }

        /* ── Picker: selectable thumbnail cards ───────────────────────── */
        .cmp-picker { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 0.85rem; }
        .cmp-pick { position: relative; text-align: left; padding: 0; cursor: pointer; border: 1px solid var(--border); border-radius: var(--radius-md); overflow: hidden; background: var(--surface); font-family: inherit; color: inherit; transition: border-color .12s ease, box-shadow .15s ease, transform .12s ease; }
        .cmp-pick:hover { border-color: var(--brand); transform: translateY(-2px); box-shadow: 0 6px 18px rgba(16,24,40,0.10); }
        .cmp-pick.sel { border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-tint); }
        .cmp-pick:disabled { cursor: not-allowed; opacity: 0.55; }
        .cmp-pick:disabled:hover { border-color: var(--border); transform: none; box-shadow: none; }
        .cmp-pick-img { aspect-ratio: 3/2; background: var(--bg-muted) center/cover no-repeat; position: relative; }
        .cmp-pick-tick { position: absolute; top: 0.5rem; right: 0.5rem; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: var(--surface); border: 1px solid var(--border); color: transparent; transition: all .12s ease; }
        .cmp-pick.sel .cmp-pick-tick { background: var(--brand); border-color: var(--brand); color: var(--text-on-brand); }
        .cmp-pick-tick svg { width: 13px; height: 13px; }
        .cmp-pick-body { padding: 0.6rem 0.75rem 0.75rem; }
        .cmp-pick-price { font-size: 1rem; font-weight: 700; color: var(--text); letter-spacing: -0.4px; }
        .cmp-pick-loc { font-size: 0.78rem; color: var(--text-faint); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 0.15rem; }
        .cmp-pick-hint { font-size: 0.82rem; color: var(--text-muted); margin: 0.9rem 0 0; }

        /* ── Comparison table ─────────────────────────────────────────── */
        .cmp-table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 2px 10px rgba(16,24,40,0.04); }
        .cmp-table { border-collapse: collapse; width: 100%; min-width: min-content; }
        .cmp-table th, .cmp-table td { text-align: left; vertical-align: top; padding: 0.85rem 1rem; border-bottom: 1px solid var(--border); }
        .cmp-table tr:last-child th, .cmp-table tr:last-child td { border-bottom: none; }
        .cmp-row-label { position: sticky; left: 0; z-index: 1; background: var(--bg-subtle); font-size: 0.74rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.6px; color: var(--text-faint); white-space: nowrap; min-width: 130px; }
        .cmp-stars { display: inline-flex; gap: 0.05rem; }
        .cmp-note { display: block; font-size: 0.85rem; color: var(--text-secondary); line-height: 1.4; white-space: normal; max-width: 240px; text-align: left; }
        .cmp-cell { min-width: 190px; font-size: 0.95rem; color: var(--text); font-variant-numeric: tabular-nums; }
        .cmp-cell-strong { font-weight: 700; letter-spacing: -0.3px; }
        .cmp-cell-price { font-size: 1.15rem; font-weight: 700; letter-spacing: -0.5px; }
        .cmp-cell-muted { color: var(--text-muted); }

        /* Photo row */
        .cmp-thumb { display: block; aspect-ratio: 3/2; width: 190px; max-width: 100%; border-radius: var(--radius-md); background: var(--bg-muted) center/cover no-repeat; text-decoration: none; }
        .cmp-thumb-title { font-size: 0.82rem; font-weight: 700; color: var(--text); margin-top: 0.5rem; line-height: 1.3; text-decoration: none; display: block; max-width: 220px; }
        .cmp-thumb-title:hover { color: var(--brand); }

        /* Smart-highlight best-value / lowest-price cell */
        .cmp-best { background: var(--brand-tint); border-radius: var(--radius-sm); }
        .cmp-best-tag { display: inline-flex; align-items: center; gap: 0.3rem; margin-top: 0.4rem; font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; color: var(--brand); background: var(--surface); border: 1px solid var(--brand); padding: 0.15rem 0.45rem; border-radius: var(--radius-pill); }
        .cmp-best-tag svg { width: 11px; height: 11px; }

        .cmp-wf-yes { display: inline-flex; align-items: center; gap: 0.35rem; font-weight: 700; color: var(--success, #16a34a); }
        .cmp-wf-yes svg { width: 15px; height: 15px; }

        .cmp-agent-link { color: var(--brand); text-decoration: none; font-weight: 700; }
        .cmp-agent-link:hover { text-decoration: underline; }

        /* Footer action row */
        .cmp-view-btn { display: inline-flex; align-items: center; gap: 0.4rem; background: var(--brand); color: var(--text-on-brand); font-weight: 700; font-size: 0.86rem; padding: 0.55rem 1rem; border-radius: var(--radius-pill); text-decoration: none; transition: background .12s ease; white-space: nowrap; }
        .cmp-view-btn:hover { background: var(--brand-hover, var(--brand-hover)); }
        .cmp-view-btn svg { width: 15px; height: 15px; }
        .cmp-remove-btn { display: inline-flex; align-items: center; gap: 0.35rem; margin-top: 0.6rem; background: none; border: none; padding: 0.2rem 0; font-family: inherit; font-size: 0.8rem; font-weight: 700; color: var(--text-muted); cursor: pointer; }
        .cmp-remove-btn:hover { color: var(--brand); }
        .cmp-remove-btn svg { width: 13px; height: 13px; }

        /* ── Empty state ──────────────────────────────────────────────── */
        .cmp-empty { text-align: center; max-width: 480px; margin: 1rem auto 0; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 3rem 2rem 3.2rem; box-shadow: 0 2px 10px rgba(16,24,40,0.04); }
        .cmp-empty-ic { display: inline-flex; align-items: center; justify-content: center; width: 60px; height: 60px; border-radius: 16px; background: var(--brand-tint); color: var(--brand); margin-bottom: 1.25rem; }
        .cmp-empty-ic svg { width: 30px; height: 30px; }
        .cmp-empty h2 { font-size: 1.4rem; font-weight: 700; letter-spacing: -0.5px; margin: 0 0 0.5rem; color: var(--text); }
        .cmp-empty p { color: var(--text-secondary); font-size: 0.98rem; line-height: 1.55; margin: 0 0 1.7rem; }
        .cmp-btn { display: inline-flex; align-items: center; gap: 0.5rem; background: var(--brand); color: var(--text-on-brand); font-weight: 700; font-size: 0.95rem; padding: 0.75rem 1.5rem; border-radius: var(--radius-pill); border: none; cursor: pointer; text-decoration: none; transition: background .12s ease; }
        .cmp-btn:hover { background: var(--brand-hover, var(--brand-hover)); }
        .cmp-btn svg { width: 17px; height: 17px; }

        /* ── Loading ──────────────────────────────────────────────────── */
        .cmp-loading { text-align: center; padding: 5rem 1rem; color: var(--text-muted); }
        .cmp-spin { width: 34px; height: 34px; border: 3px solid var(--border); border-top-color: var(--brand); border-radius: 50%; margin: 0 auto 1rem; animation: cmpspin 0.8s linear infinite; }
        @keyframes cmpspin { to { transform: rotate(360deg); } }

        [hidden] { display: none !important; }

        @media (max-width: 560px) {
            .cmp-title { font-size: 1.7rem; }
            .cmp-wrap { padding-left: 1.1rem; padding-right: 1.1rem; }
        }

/* ══════════ cash-offer ══════════ */
/* =========================================================
           AI CASH OFFER HERO (blue accent)
           ========================================================= */
        .co-hero {
            position: relative;
            min-height: 100vh;
            padding: 11rem 2rem 6rem;
            background-image: url('/assets/images/mn-modern-glass-home.jpg');
            background-size: cover;
            background-position: center;
            display: flex;
            align-items: center;
            justify-content: center;
            overflow: hidden;
        }
        .co-hero::before {
            content: '';
            position: absolute;
            inset: 0;
            background: linear-gradient(180deg,
                rgba(0,0,0,0.78) 0%,
                rgba(0,0,0,0.55) 40%,
                rgba(0,0,0,0.82) 100%);
            pointer-events: none;
        }
        .co-hero-inner {
            position: relative;
            z-index: 2;
            /* Hero copy keeps a reading measure; the sections below span the page. */
            max-width: 880px;
            width: 100%;
            text-align: center;
            color: var(--text-on-dark);
        }
        .co-beta-pill {
            display: inline-flex;
            align-items: center;
            gap: 0.45rem;
            background: var(--brand);
            color: var(--text-on-dark);
            font-size: 0.68rem;
            font-weight: 700;
            letter-spacing: 1.5px;
            text-transform: uppercase;
            padding: 0.38rem 0.85rem;
            border-radius: 999px;
            margin-bottom: 1.5rem;
            box-shadow: 0 10px 30px rgba(219,37,43,0.4);
        }
        .co-beta-pill::before {
            content: '';
            width: 6px;
            height: 6px;
            border-radius: 50%;
            background: var(--surface);
            box-shadow: 0 0 8px rgba(255,255,255,0.8);
        }
        .co-hero h1 {
            font-size: 4.5rem;
            font-weight: 700;
            letter-spacing: -2.5px;
            line-height: 1.04;
            margin: 0 0 1.5rem;
            color: var(--text-on-dark);
            text-shadow: 0 2px 18px rgba(0,0,0,0.4);
        }
        .co-hero p.co-sub {
            font-size: 1.2rem;
            color: var(--border);
            line-height: 1.6;
            max-width: 720px;
            margin: 0 auto 2rem;
            text-shadow: 0 1px 8px rgba(0,0,0,0.35);
        }
        .co-trust-row {
            display: flex;
            justify-content: center;
            align-items: center;
            gap: 1rem;
            flex-wrap: wrap;
            margin-bottom: 2.5rem;
            font-size: 0.88rem;
            color: var(--border-strong);
            font-weight: 500;
        }
        .co-trust-row .co-trust-item {
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
        }
        .co-trust-row .co-trust-item::before {
            content: '';
            width: 6px;
            height: 6px;
            border-radius: 50%;
            background: var(--brand);
            box-shadow: 0 0 8px rgba(219,37,43,0.6);
        }
        .co-trust-sep {
            color: rgba(255,255,255,0.25);
            font-weight: 400;
        }
        .co-address-card {
            background: var(--surface);
            border-radius: var(--radius-xl);
            padding: 0.6rem 0.6rem 0.6rem 1.25rem;
            box-shadow: 0 25px 60px rgba(0,0,0,0.35);
            display: flex;
            align-items: center;
            gap: 0.75rem;
            max-width: 640px;
            margin: 0 auto;
            border: 1px solid rgba(255,255,255,0.15);
        }
        .co-address-card svg.co-pin {
            flex-shrink: 0;
            color: #64748b;
        }
        .co-address-card input {
            flex: 1;
            border: none;
            outline: none;
            font-family: inherit;
            font-size: 1.05rem;
            padding: 0.85rem 0;
            background: transparent;
            color: var(--text);
            min-width: 0;
        }
        .co-address-card input::placeholder { color: #94a3b8; }
        .co-start-btn {
            flex-shrink: 0;
            background: var(--brand);
            color: var(--text-on-dark);
            border: none;
            padding: 0.95rem 1.75rem;
            border-radius: var(--radius-md);
            font-weight: 700;
            font-size: 0.95rem;
            font-family: inherit;
            cursor: pointer;
            transition: all 0.2s;
            white-space: nowrap;
        }
        .co-start-btn:hover:not(:disabled) {
            background: var(--brand-hover);
            transform: translateY(-1px);
            box-shadow: 0 10px 25px rgba(219,37,43,0.45);
        }
        .co-start-btn:disabled {
            background: var(--border-strong);
            cursor: not-allowed;
        }
        .co-hint {
            margin-top: 1rem;
            font-size: 0.8rem;
            color: var(--text-faint);
        }
        @media (max-width: 900px) {
            .co-hero { padding: 8rem 1.25rem 4rem; min-height: auto; }
            .co-hero h1 { font-size: 2.5rem; letter-spacing: -1.25px; }
            .co-hero p.co-sub { font-size: 1rem; margin-bottom: 1.5rem; }
            .co-trust-row { font-size: 0.78rem; gap: 0.5rem; margin-bottom: 2rem; }
            .co-address-card {
                flex-direction: column;
                padding: 1rem;
                gap: 0.75rem;
                max-width: 100%;
            }
            .co-address-card svg.co-pin { display: none; }
            .co-address-card input {
                width: 100%;
                padding: 0.9rem 1rem;
                background: var(--bg-subtle);
                border-radius: var(--radius);
                font-size: 1rem;
            }
            .co-start-btn { width: 100%; padding: 1rem; }
        }
        @media (max-width: 480px) {
            .co-hero h1 { font-size: 2rem; letter-spacing: -1px; }
            .co-trust-sep { display: none; }
            .co-trust-row { flex-direction: column; gap: 0.55rem; }
        }

        /* =========================================================
           CASH OFFER OVERLAY (full-screen multi-step, blue-themed)
           ========================================================= */
        #cash-offer-overlay {
            display: none;
            position: fixed;
            inset: 0;
            z-index: 9500;
            background: var(--surface);
            font-family: 'SF Pro Text', sans-serif;
            overflow-y: auto;
        }
        #cash-offer-overlay.open { display: block; }
        /* Google's address-autocomplete dropdown defaults to z-index 1000.
           The cash-offer overlay sits at 9500, so without this override the
           Google suggestions render BEHIND the overlay and the user never
           sees them. Bump above the overlay so the dropdown is visible. */
        .pac-container {
            z-index: 10000 !important;
        }
        .coo-progress { position: sticky; top: 0; left: 0; right: 0; height: 4px; background: #f0f4f8; z-index: 5; }
        .coo-progress-bar { height: 100%; background: var(--brand); width: 0%; transition: width 0.4s ease; border-radius: 0 99px 99px 0; }
        .coo-chrome {
            position: absolute; top: 0; left: 0; right: 0;
            padding: 1.25rem 1.75rem;
            display: flex; justify-content: space-between; align-items: center;
            z-index: 10;
        }
        .coo-back-btn {
            background: none; border: none; cursor: pointer;
            font-size: 0.875rem; font-weight: 600; color: var(--text-faint);
            font-family: inherit; padding: 0.4rem 0;
        }
        .coo-back-btn:hover { color: var(--text); }
        .coo-brand { display: flex; align-items: center; gap: 0.45rem; }
        .coo-brand-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--brand); }
        .coo-brand-name { font-weight: 700; font-size: 0.875rem; color: var(--text); letter-spacing: -0.2px; }
        .coo-close {
            width: 36px; height: 36px; border-radius: 50%;
            border: 1px solid var(--border); background: var(--surface);
            cursor: pointer; color: var(--text-muted);
            display: flex; align-items: center; justify-content: center;
            transition: all 0.15s;
        }
        .coo-close:hover { background: var(--bg-subtle); color: var(--text); }

        .coo-body {
            min-height: 100vh;
            display: flex; align-items: center; justify-content: center;
            padding: 5rem 1.5rem 3rem;
        }
        .coo-step { width: 100%; max-width: 560px; transition: opacity 0.2s ease, transform 0.2s ease; }
        .coo-step h2 {
            font-size: clamp(1.6rem, 4vw, 2.4rem);
            font-weight: 700; color: var(--text);
            letter-spacing: -1px; line-height: 1.2;
            margin: 0 0 0.75rem; text-align: center;
        }
        .coo-step p.coo-hint {
            color: var(--text-muted); font-size: 0.95rem;
            margin: 0 0 2rem; text-align: center; line-height: 1.55;
        }
        .coo-spinner {
            width: 52px; height: 52px; border-radius: 50%;
            border: 4px solid var(--border);
            border-top-color: var(--brand);
            animation: coo-spin 0.9s linear infinite;
            margin: 0 auto 1.5rem;
        }
        @keyframes coo-spin { to { transform: rotate(360deg); } }
        .coo-calc-anim {
            width: 84px; height: 84px;
            border-radius: 18px;
            background: linear-gradient(135deg, var(--brand), var(--brand-hover));
            display: flex; align-items: center; justify-content: center;
            color: var(--text-on-dark); margin: 0 auto 1.75rem;
            box-shadow: 0 20px 40px rgba(219,37,43,0.3);
            animation: coo-pulse 1.6s ease-in-out infinite;
        }
        @keyframes coo-pulse {
            0%,100% { transform: scale(1); box-shadow: 0 20px 40px rgba(219,37,43,0.3); }
            50%     { transform: scale(1.06); box-shadow: 0 25px 55px rgba(219,37,43,0.5); }
        }

        .coo-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
        .coo-grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 1rem; }
        .coo-field { display: flex; flex-direction: column; gap: 0.4rem; }
        .coo-label { font-size: 0.78rem; font-weight: 700; color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.5px; }
        .coo-input {
            width: 100%;
            padding: 0.85rem 1rem;
            border: 2px solid var(--border);
            border-radius: var(--radius);
            font-family: inherit;
            font-size: 1rem;
            background: var(--surface);
            color: var(--text);
            box-sizing: border-box;
            transition: border-color 0.15s, box-shadow 0.15s;
        }
        .coo-input:focus {
            outline: none; border-color: var(--brand);
            box-shadow: 0 0 0 3px rgba(219,37,43,0.12);
        }
        select.coo-input { appearance: none; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23718096' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>"); background-repeat: no-repeat; background-position: right 1rem center; padding-right: 2.5rem; cursor: pointer; }
        .coo-consent {
            display: flex; gap: 0.75rem;
            align-items: flex-start;
            padding: 1rem;
            background: var(--bg-subtle);
            border-radius: var(--radius);
            margin: 1.25rem 0 1.5rem;
            font-size: 0.82rem;
            color: var(--text-secondary);
            line-height: 1.5;
        }
        .coo-consent input { margin-top: 0.2rem; flex-shrink: 0; width: 18px; height: 18px; cursor: pointer; accent-color: var(--brand); }
        .coo-err {
            display: none; color: var(--danger); font-size: 0.85rem;
            margin-bottom: 1rem; padding: 0.75rem 1rem;
            background: var(--danger-tint); border-radius: var(--radius);
            border: 1px solid var(--danger-border); text-align: center;
        }
        .coo-primary-btn {
            width: 100%;
            padding: 1.05rem 1.5rem;
            background: var(--surface-ink);
            color: var(--text-on-dark); border: none;
            border-radius: var(--radius-md);
            font-weight: 700; font-size: 1rem;
            cursor: pointer; font-family: inherit;
            transition: background 0.2s;
            margin-top: 0.5rem;
        }
        .coo-primary-btn:hover:not(:disabled) { background: var(--surface-ink); }
        .coo-primary-btn:disabled { background: var(--text-faint); cursor: not-allowed; }
        .coo-primary-btn.brand { background: var(--brand); }
        .coo-primary-btn.brand:hover:not(:disabled) { background: var(--brand-hover); }
        .coo-outline-btn {
            width: 100%;
            padding: 1.05rem 1.5rem;
            background: var(--surface);
            color: var(--text);
            border: 2px solid var(--border);
            border-radius: var(--radius-md);
            font-weight: 700; font-size: 1rem;
            cursor: pointer; font-family: inherit;
            transition: all 0.2s;
            margin-top: 0.5rem;
        }
        .coo-outline-btn:hover:not(:disabled) { border-color: var(--surface-ink); background: var(--bg-subtle); }

        /* Offer reveal */
        .coo-offer-amount {
            font-size: clamp(3.5rem, 10vw, 6rem);
            font-weight: 700;
            letter-spacing: -3px;
            line-height: 1;
            text-align: center;
            background: linear-gradient(135deg, var(--brand) 0%, var(--brand-hover) 100%);
            -webkit-background-clip: text;
            background-clip: text;
            color: transparent;
            margin: 0.5rem 0 1rem;
        }
        .coo-offer-valid {
            text-align: center;
            color: var(--text-muted);
            font-size: 0.95rem;
            margin-bottom: 2rem;
            line-height: 1.5;
        }
        .coo-summary-card {
            background: var(--bg-subtle);
            border: 1px solid var(--bg-muted);
            border-radius: var(--radius-lg);
            padding: 1.5rem;
            margin-bottom: 1.75rem;
        }
        .coo-summary-addr {
            font-weight: 700; color: var(--text);
            font-size: 1rem; margin-bottom: 0.75rem;
        }
        .coo-summary-facts {
            display: flex; flex-wrap: wrap; gap: 0.75rem 1.25rem;
            color: var(--text-secondary); font-size: 0.88rem;
        }
        .coo-summary-fact strong { color: var(--text); }
        .coo-action-grid {
            display: grid; grid-template-columns: 1fr; gap: 0.7rem;
        }

        @media (max-width: 900px) {
            /* ── Static page sections ───────────────────────────────── */
            /* "How It Works" — collapse 2-col, tighten padding, scale heading */
            section#how-it-works { padding: 4rem 1.25rem !important; }
            section#how-it-works > div {
                grid-template-columns: 1fr !important;
                gap: 2rem !important;
            }
            section#how-it-works .sp-title { font-size: 2rem !important; letter-spacing: -1px !important; }
            section#how-it-works .sp-title br { display: inline; }
            section#how-it-works p { font-size: 1rem !important; }
            section#how-it-works h3 { font-size: 1.1rem !important; }

            /* "Cash vs Listing" dark section — stack + shrink image */
            section.sp-dark-section { padding: 4rem 1.25rem !important; }
            section.sp-dark-section .sp-title { font-size: 2rem !important; }
            section.sp-dark-section .sp-title br { display: inline; }
            section.sp-dark-section .sp-media-wrapper { height: 240px !important; }
            section.sp-dark-section .sp-grid {
                grid-template-columns: 1fr !important;
                gap: 1.5rem !important;
            }

            /* "Who It's For" — 3-col → 1-col.
               This was chained off the section's inline padding
               (section[style*="padding: 8rem 2rem"]). That padding later became
               "8rem 0", so the selector stopped matching and the grid stayed at
               three columns on a phone — 212px off a 390px screen. Matching on
               the grid itself instead: it can't be broken by an unrelated edit
               to an ancestor's inline style. */
            section[style*="padding: 8rem"]:not(.sp-dark-section) { padding-left: 1.25rem !important; padding-right: 1.25rem !important; }
            div[style*="grid-template-columns: repeat(3, 1fr)"],
            div[style*="grid-template-columns: repeat(4, 1fr)"] {
                grid-template-columns: 1fr !important;
                gap: 1rem !important;
            }
            div[style*="grid-template-columns: repeat(3, 1fr)"] > *,
            div[style*="grid-template-columns: repeat(4, 1fr)"] > * { min-width: 0; max-width: 100%; }
            section[style*="padding: 8rem 2rem"] > div > div > div[style*="padding: 2.5rem 2rem"] {
                padding: 1.75rem 1.5rem !important;
            }
            section[style*="padding: 8rem 2rem"] .sp-title { font-size: 2rem !important; }
            section[style*="padding: 8rem 2rem"] .sp-title br { display: inline; }

            /* Final CTA — stack the header-split, shrink image */
            section[style*="padding: 0 2rem 8rem"] { padding: 0 1.25rem 4rem !important; }
            section[style*="padding: 0 2rem 8rem"] .sp-header-split {
                grid-template-columns: 1fr !important;
                gap: 1.5rem !important;
                align-items: start !important;
            }
            section[style*="padding: 0 2rem 8rem"] .sp-header-split > div:last-child { justify-self: start !important; }
            section[style*="padding: 0 2rem 8rem"] .sp-title { font-size: 2rem !important; letter-spacing: -0.75px !important; }
            section[style*="padding: 0 2rem 8rem"] .sp-title br { display: inline; }
            section[style*="padding: 0 2rem 8rem"] > div > img { height: 260px !important; }
        }

        @media (max-width: 600px) {
            /* Overlay — tighten chrome, body padding, grid gaps */
            .coo-chrome { padding: 0.75rem 1rem !important; }
            .coo-brand-name { font-size: 0.8rem !important; }
            .coo-body { padding: 3rem 1rem 2rem !important; min-height: 100vh; min-height: 100dvh; }
            .coo-grid-2, .coo-grid-3 { grid-template-columns: 1fr !important; gap: 0.75rem !important; }
            .coo-offer-amount { font-size: clamp(2.5rem, 14vw, 4rem) !important; letter-spacing: -2px; }
            .coo-summary-card { padding: 1.1rem !important; }
            .coo-summary-facts { gap: 0.4rem 0.9rem !important; font-size: 0.82rem !important; }

            /* Hero tweaks on tight screens */
            .co-hero { padding: 7rem 1rem 3rem !important; }
        }

        @media (max-width: 480px) {
            .coo-chrome { padding: 0.6rem 0.85rem !important; }
            .coo-close { width: 40px !important; height: 40px !important; }
            .coo-back-btn { font-size: 0.8rem !important; }
            .coo-step h2 { font-size: 1.45rem !important; }
            .coo-primary-btn, .coo-outline-btn { padding: 0.95rem 1.25rem !important; font-size: 0.95rem !important; }
        }

        /* ── Cash-offer FAQ ─────────────────────────────────────────────── */
        .co-faq { padding: 0 0 6rem; }
        .co-faq-inner { max-width: var(--page-w); margin: 0 auto; padding-inline: var(--page-gutter); }
        .co-faq h2 { font-size: 2.5rem; font-weight: 700; letter-spacing: -0.03em; color: var(--text); margin: 0 0 0.75rem; }
        .co-faq > .co-faq-inner > p { color: var(--text-muted); margin: 0 0 2.5rem; font-size: 1.05rem; }
        .co-faq-list { display: grid; gap: 0; }
        details.co-faq-item { border-bottom: 1px solid var(--border); padding: 1.4rem 0; }
        details.co-faq-item summary {
            list-style: none; cursor: pointer; display: flex; justify-content: space-between;
            align-items: center; gap: 1.5rem;
            font-size: 1.08rem; font-weight: 700; color: var(--text);
        }
        details.co-faq-item summary::-webkit-details-marker { display: none; }
        details.co-faq-item summary::after {
            content: '+'; flex-shrink: 0; font-size: 1.5rem; font-weight: 400;
            color: var(--brand); line-height: 1; transition: transform var(--t-fast) var(--ease-out);
        }
        details.co-faq-item[open] summary::after { transform: rotate(45deg); }
        details.co-faq-item p {
            margin: 1rem 0 0; max-width: 85ch;
            color: var(--text-secondary); line-height: 1.7;
        }
        details.co-faq-item p + p { margin-top: 0.75rem; }

/* ══════════ match ══════════ */
:root { --wiz-ease: cubic-bezier(0.22, 1, 0.36, 1); }

        .wiz-wrap { width: 100%; max-width: 720px; margin: 0 auto; padding: 7rem var(--page-gutter) 4rem; box-sizing: border-box; min-height: 100vh; display: flex; flex-direction: column; }

        /* Progress header */
        .wiz-top { margin-bottom: 1.75rem; }
        .wiz-eyebrow { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.7rem; }
        .wiz-eyebrow .lbl { color: var(--brand); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
        .wiz-eyebrow .cnt { color: var(--text-faint); font-size: 0.78rem; font-weight: 700; }
        .wiz-bar { height: 6px; border-radius: 99px; background: var(--bg-muted); overflow: hidden; }
        .wiz-bar > i { display: block; height: 100%; width: 0; background: var(--brand); border-radius: 99px; transition: width 0.45s var(--wiz-ease); }

        /* Stage */
        .wiz-stage { flex: 1; }
        .wiz-step { display: none; }
        .wiz-step.active { display: block; animation: wizIn 0.4s var(--wiz-ease); }
        @keyframes wizIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

        .wiz-q { font-family: var(--font-family-display); font-size: clamp(1.7rem, 3.6vw, 2.45rem); font-weight: 700; letter-spacing: -0.03em; line-height: 1.1; color: var(--text); margin: 0 0 0.5rem; }
        .wiz-sub { font-size: 1.02rem; color: var(--text-secondary); line-height: 1.55; margin: 0 0 1.6rem; max-width: 52ch; }

        /* Big option cards (single-select) */
        .opt-grid { display: grid; gap: 0.8rem; }
        .opt-grid.cols-3 { grid-template-columns: repeat(3, 1fr); }
        .opt { display: flex; flex-direction: column; align-items: flex-start; gap: 0.55rem; text-align: left; background: var(--surface); border: 1px solid var(--border); border-radius: 16px; padding: 1.15rem 1.2rem; cursor: pointer; font: inherit; transition: border-color 0.15s, box-shadow 0.15s, transform 0.12s; }
        .opt:hover { border-color: #f0b8ba; transform: translateY(-2px); box-shadow: 0 10px 26px rgba(16,24,40,0.07); }
        .opt.on { border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-ring, rgba(219,37,43,0.14)); }
        .opt .ic { width: 40px; height: 40px; border-radius: 11px; background: var(--brand-tint); color: var(--brand); display: flex; align-items: center; justify-content: center; }
        .opt .ic svg { width: 21px; height: 21px; }
        .opt .t { font-weight: 700; font-size: 1.05rem; color: var(--text); }
        .opt .d { font-size: 0.85rem; color: var(--text-muted); line-height: 1.4; }
        .cols-3 .opt { align-items: center; text-align: center; }

        /* Inputs */
        .wiz-input { width: 100%; box-sizing: border-box; font: inherit; font-size: 1.15rem; padding: 1rem 1.1rem; border: 1px solid var(--border); border-radius: 13px; outline: none; background: var(--surface); transition: border-color 0.15s, box-shadow 0.15s; }
        .wiz-input:focus { border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-ring, rgba(219,37,43,0.12)); }
        .wiz-two { display: grid; grid-template-columns: 1fr 1fr; gap: 0.85rem; }
        .wiz-two .dash { display: none; }

        /* Multi-select chips */
        .wiz-chips { display: flex; flex-wrap: wrap; gap: 0.6rem; }
        .wiz-chip { display: inline-flex; align-items: center; gap: 0.45rem; border: 1px solid var(--border); background: var(--surface); color: var(--text-secondary); font: inherit; font-weight: 700; font-size: 0.95rem; padding: 0.65rem 1.15rem; border-radius: 99px; cursor: pointer; transition: all 0.13s; }
        .wiz-chip:hover { border-color: #f0b8ba; }
        .wiz-chip.on { background: var(--brand); color: var(--text-on-brand); border-color: var(--brand); }
        .wiz-chip .x { display: none; }
        .wiz-chip.on .x { display: inline; }

        /* Reassurance line under a step */
        .wiz-note { display: flex; align-items: flex-start; gap: 0.55rem; margin-top: 1.5rem; font-size: 0.88rem; color: var(--text-muted); line-height: 1.5; }
        .wiz-note svg { flex: 0 0 auto; color: var(--brand); margin-top: 1px; }

        /* Nav footer */
        .wiz-nav { display: flex; align-items: center; gap: 0.75rem; margin-top: 2rem; }
        .wiz-back { background: none; border: 0; color: var(--text-muted); font: inherit; font-weight: 700; font-size: 0.95rem; cursor: pointer; padding: 0.6rem 0.3rem; display: inline-flex; align-items: center; gap: 0.35rem; }
        .wiz-back:hover { color: var(--text); }
        .wiz-back[hidden] { visibility: hidden; }
        .wiz-spacer { flex: 1; }
        .wiz-skip { background: none; border: 0; color: var(--text-muted); font: inherit; font-weight: 700; cursor: pointer; padding: 0.85rem 0.4rem; }
        .wiz-skip:hover { color: var(--text); }
        .wiz-next { background: var(--brand); color: var(--text-on-brand); border: 0; border-radius: 12px; padding: 0.9rem 1.8rem; font: inherit; font-weight: 700; font-size: 1rem; cursor: pointer; display: inline-flex; align-items: center; gap: 0.45rem; transition: background 0.15s; }
        .wiz-next:hover { background: var(--brand-hover); }
        .wiz-next:disabled { opacity: 0.45; cursor: default; }

        /* Trust strip */
        .wiz-trust { display: flex; flex-wrap: wrap; gap: 0.35rem 1.3rem; justify-content: center; margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--bg-muted); }
        .wiz-trust span { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.8rem; font-weight: 700; color: var(--text-muted); }
        .wiz-trust svg { color: var(--brand); }

        /* Loading / matching state */
        .wiz-loading { text-align: center; padding: 3rem 1rem; }
        .wiz-orbit { width: 64px; height: 64px; margin: 0 auto 1.5rem; position: relative; }
        .wiz-orbit i { position: absolute; inset: 0; border: 3px solid var(--bg-muted); border-top-color: var(--brand); border-radius: 50%; animation: wizSpin 0.9s linear infinite; }
        @keyframes wizSpin { to { transform: rotate(360deg); } }
        .wiz-loading h2 { font-size: 1.35rem; font-weight: 700; color: var(--text); margin: 0 0 0.4rem; }
        .wiz-loading p { color: var(--text-secondary); margin: 0; }

        @media (max-width: 560px) {
            .wiz-wrap { padding-top: 5.5rem; }
            .opt-grid.cols-3 { grid-template-columns: 1fr; }
            .cols-3 .opt { flex-direction: row; align-items: center; text-align: left; }
        }

        /* ── Results (kept from prior, lightly polished) ───────────────────── */
        .mx-results-head { margin: 0 0 1.5rem; }
        .mx-results-head h2 { font-size: 1.7rem; font-weight: 700; color: var(--text); margin: 0 0 0.35rem; letter-spacing: -0.4px; }
        .mx-results-head p { color: var(--text-secondary); margin: 0; }
        .mx-match { background: var(--surface); border: 1px solid var(--bg-muted); border-radius: 16px; padding: 1.5rem 1.6rem; margin-bottom: 1.1rem; box-shadow: 0 4px 14px rgba(16,24,40,0.05); }
        .mx-match.top { border-color: #fbd5d0; box-shadow: 0 12px 34px rgba(219,37,43,0.09); }
        .mx-match-head { display: flex; gap: 1rem; align-items: center; }
        .mx-ava { width: 58px; height: 58px; border-radius: 50%; object-fit: cover; flex-shrink: 0; background: var(--brand-tint); color: var(--brand); display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 1.2rem; }
        .mx-match-id { min-width: 0; flex: 1; }
        .mx-rank { display: inline-block; font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; color: var(--brand); background: var(--brand-tint); padding: 0.12rem 0.5rem; border-radius: 6px; margin-bottom: 0.3rem; }
        .mx-name { font-size: 1.25rem; font-weight: 700; color: var(--text); line-height: 1.15; display: flex; align-items: center; gap: 0.4rem; flex-wrap: wrap; }
        .mx-cr { font-size: 0.6rem; font-weight: 700; color: var(--brand); background: var(--brand-tint); padding: 0.1rem 0.4rem; border-radius: 5px; text-transform: uppercase; }
        .mx-broker { color: var(--text-muted); font-size: 0.9rem; margin-top: 0.1rem; }
        .mx-why { margin: 1.1rem 0 0; padding: 1rem 1.1rem; background: var(--bg-subtle); border-radius: 12px; }
        .mx-why-l { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; color: var(--text-faint); margin-bottom: 0.5rem; }
        .mx-why ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.4rem; }
        .mx-why li { display: flex; gap: 0.5rem; align-items: flex-start; color: var(--text-strong); font-size: 0.95rem; }
        .mx-why svg { flex: 0 0 auto; width: 15px; height: 15px; margin-top: 3px; color: var(--brand); }
        .mx-actions { display: flex; gap: 0.6rem; margin-top: 1.1rem; flex-wrap: wrap; }
        .mx-btn { flex: 1; min-width: 130px; text-align: center; border-radius: 10px; padding: 0.75rem 1rem; font-weight: 700; font-size: 0.92rem; text-decoration: none; cursor: pointer; border: 1px solid var(--border); background: var(--surface); color: var(--text); }
        .mx-btn.primary { background: var(--brand); color: var(--text-on-brand); border-color: var(--brand); }
        .mx-again { display: block; margin: 1.5rem auto 0; background: none; border: 0; color: var(--brand); font-weight: 700; cursor: pointer; font: inherit; }
        .mx-empty { text-align: center; padding: 2.5rem 1.5rem; background: var(--surface); border: 1px solid var(--bg-muted); border-radius: 18px; }

/* ══════════ pages/user/user  dashboard ══════════ */



        :root { --header-h: 84px; }
        @media (max-width: 900px) { :root { --header-h: 72px; } }

        /* ── User (consumer) dashboard styles moved out ──────────────────
           Every .ud-* / .uw-* / .msg-* / .res-* rule for pages/user/dashboard.html
           now lives in its own sheet, styles/userbackend.css, linked from that
           page after this one (css: app.css, userbackend.css). Kept here: the
           shared .portal-topbar / .pt-* stripped-portal bar used by other consoles. */
    


        .portal-topbar { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:0.85rem 1.5rem; background:var(--surface); border-bottom:1px solid var(--bg-muted); position:sticky; top:0; z-index:100; }
        .pt-brand { font-size:1.15rem; font-weight: 700; color:var(--text); text-decoration:none; letter-spacing:-0.3px; }
        .pt-brand span { color:var(--brand, var(--brand)); }
        .pt-right { display:flex; align-items:center; gap:0.75rem; }
        .pt-link { font-size:0.85rem; font-weight:600; color:var(--text-muted); text-decoration:none; }
        .pt-link:hover { color:var(--text); }
        .pt-signout { background:var(--surface); border:1px solid var(--border); border-radius:8px; padding:0.45rem 0.9rem; font:inherit; font-weight:700; font-size:0.85rem; color:var(--brand,var(--brand)); cursor:pointer; }
        .pt-signout:hover { background:var(--danger-tint); border-color:#feb2b2; }

/* ══════════ agent-profile hero — class-based (replaces the old inline styles) ══════
   Scoped with #profile-hero so these beat the generic #profile-hero img/h1/p/span
   mobile rules above (kept for the brokerage hero, which still ships inline styles).
   Desktop reproduces the prior look exactly; mobile is a clean centered column. */
#profile-hero .aph-in { max-width: 1200px; margin: 0 auto; padding: 0 2rem; position: relative; text-align: center; }
#profile-hero .aph-share {
  position: absolute; top: 0; right: 2rem; display: inline-flex; align-items: center; gap: 0.4rem;
  background: rgba(255,255,255,0.12); color: var(--text-on-brand);
  border: 1px solid rgba(255,255,255,0.28); border-radius: 99px; padding: 0.45rem 0.9rem;
  font-weight: 700; font-size: 0.82rem; cursor: pointer; backdrop-filter: blur(4px);
  transition: background 0.2s, border-color 0.2s;
}
#profile-hero .aph-share:hover { background: rgba(255,255,255,0.2); border-color: rgba(255,255,255,0.5); }
#profile-hero .aph-ava {
  display: inline-flex; align-items: center; justify-content: center;
  width: 84px; height: 84px; border-radius: 50%; object-fit: cover; margin-bottom: 1.1rem;
  border: 3px solid rgba(255,255,255,0.1); box-shadow: 0 12px 30px rgba(0,0,0,0.3);
}
#profile-hero .aph-ava-init { background: var(--brand); color: var(--text-on-brand); font-size: 2rem; font-weight: 700; border: 0; box-shadow: none; }
/* Brokerage logos are squared rather than round (a team, not a face). */
#profile-hero .aph-ava--sq { border-radius: 16px; }
#profile-hero .aph-name { font-size: clamp(1.8rem, 3.6vw, 2.5rem); font-weight: 700; letter-spacing: -1px; line-height: 1.06; margin: 0 0 0.4rem; max-width: none; }
#profile-hero .aph-sub { font-size: 1.12rem; color: rgba(255,255,255,0.78); margin: 0 0 1.2rem; }
#profile-hero .aph-badges { display: flex; align-items: center; flex-wrap: wrap; justify-content: center; gap: 0.4rem; }

@media (max-width: 600px) {
  #profile-hero { padding: 6rem 0 2.5rem !important; }
  /* flex column + order → clean centered stack; the Share pill drops to the bottom
     even though it's first in the DOM (it's the absolute-positioned desktop control). */
  #profile-hero .aph-in { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 0 1.25rem; }
  #profile-hero .aph-ava { order: 1; width: 96px !important; height: 96px !important; margin: 0 0 1rem !important; }
  #profile-hero .aph-ava-init { font-size: 2.25rem; }
  #profile-hero .aph-name { order: 2; font-size: 1.75rem !important; letter-spacing: -0.5px !important; line-height: 1.15 !important; margin: 0 0 0.45rem !important; }
  #profile-hero .aph-sub { order: 3; font-size: 1rem !important; margin: 0 0 1rem !important; line-height: 1.45; padding: 0; }
  #profile-hero .aph-badges { order: 4; justify-content: center; }
  #profile-hero .aph-share { order: 5; position: static; margin: 1.5rem 0 0; padding: 0.65rem 1.3rem; font-size: 0.9rem; }
}
