/* ═══════════════════════════════════════════════════════════════
   MONT HAUS — NEW DEVELOPMENT
   Dark & moody · champagne gold · editorial serif
   (design language shared with 221 Wrights Rd dark)
   ═══════════════════════════════════════════════════════════════ */

:root {
    --ink:        #0d0c0a;
    --ink-soft:   #14120f;
    --ink-line:   #262219;
    --gold:       #c9a96a;
    --gold-soft:  #a8874e;
    --cream:      #ece5d8;
    --cream-dim:  #9c937f;
    --serif: 'Cormorant Garamond', Georgia, serif;
    --sans:  'Jost', 'Helvetica Neue', sans-serif;
    --hero-sans: 'Avenir Next', 'Avenir', 'Mulish', 'Segoe UI', sans-serif;
}

html { scroll-behavior: smooth; }

body {
    background: var(--ink);
    color: var(--cream);
    font-family: var(--sans);
    font-weight: 300;
    letter-spacing: 0.02em;
    -webkit-font-smoothing: antialiased;
}

::selection { background: var(--gold); color: var(--ink); }

/* ── Type ─────────────────────────────────────────────── */

.eyebrow {
    font-size: 0.72rem;
    font-weight: 400;
    letter-spacing: 0.42em;
    text-transform: uppercase;
    color: var(--gold);
}
.lead-serif {
    font-family: var(--serif);
    font-size: 1.45rem;
    font-weight: 300;
    font-style: italic;
    line-height: 1.7;
    color: var(--cream-dim);
}
.body-copy { color: var(--cream-dim); line-height: 2; }
.gold-rule {
    width: 64px;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--gold), transparent);
}
.section { padding: 8rem 0; }
.section-tight { padding: 6rem 0; }
.section-head { margin-bottom: 4.5rem; }
.section-title {
    font-family: var(--serif);
    font-weight: 300;
    font-size: clamp(2.2rem, 4.5vw, 3.4rem);
    color: var(--cream);
}

/* ── Buttons ──────────────────────────────────────────── */

.btn-gold {
    font-family: var(--sans);
    font-size: 0.72rem;
    font-weight: 400;
    letter-spacing: 0.35em;
    text-transform: uppercase;
    color: var(--gold);
    background: transparent;
    border: 1px solid var(--gold);
    border-radius: 0;
    padding: 0.9rem 2.6rem;
    transition: all 0.45s ease;
}
.btn-gold:hover, .btn-gold:focus {
    background: var(--gold);
    color: var(--ink);
    border-color: var(--gold);
    letter-spacing: 0.42em;
}
.btn-gold:disabled { opacity: 0.5; }

/* ── Navigation ───────────────────────────────────────── */

.site-nav {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 1000;
    padding: 1.4rem 0;
    background: transparent;
    transition: background 0.5s ease, padding 0.5s ease;
}
.site-nav.scrolled {
    background: rgba(13,12,10,0.96);
    border-bottom: 1px solid var(--ink-line);
    padding: 0.9rem 0;
    backdrop-filter: blur(12px);
}
.nav-brand {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    opacity: 0;
    transition: opacity 0.5s ease;
}
.site-nav.scrolled .nav-brand { opacity: 1; }
.nav-brand-mark {
    height: 30px;
    width: auto;
    display: block;
    transition: opacity 0.35s ease;
}
.nav-brand:hover .nav-brand-mark { opacity: 0.75; }
.nav-brand-sub {
    font-family: var(--sans);
    font-size: 0.62rem;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: var(--gold);
    margin-left: 0.85rem;
    padding-left: 0.85rem;
    border-left: 1px solid var(--ink-line);
    line-height: 1;
}
.nav-brand:hover .nav-brand-sub { color: var(--cream); }
.site-nav .nav-link {
    font-size: 0.68rem;
    font-weight: 400;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--cream);
    padding: 0.4rem 1.1rem;
    text-shadow: 0 1px 8px rgba(0,0,0,0.4);
    transition: color 0.3s ease;
}
.site-nav.scrolled .nav-link { color: var(--cream-dim); text-shadow: none; }
.site-nav .nav-link:hover { color: var(--gold); }

/* ── Hero — preserved cover layout ────────────────────── */

.hero {
    position: relative;
    height: 100vh;
    min-height: 560px;
    overflow: hidden;
    font-family: var(--hero-sans);
    /* Shared layout variables from the original cover page */
    --baseline: 9%;
    --logo-w: clamp(120px, 9vw, 190px);
    --gap: calc(2.6vw - 5px);
    --rule-x: calc(6% + var(--logo-w) + var(--gap));
}
.hero-cover {
    position: absolute;
    inset: 0;
    background: url('../../big-lake_bg.jpg') center / cover no-repeat;
}
.hero-cover::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(15deg, rgba(10, 20, 24, 0.38) 0%, rgba(10, 20, 24, 0) 45%),
        linear-gradient(180deg, rgba(13,12,10,0) 55%, rgba(13,12,10,0.5) 82%, rgba(13,12,10,0.96) 100%);
}
.hero-rule {
    position: absolute;
    top: 0;
    bottom: var(--baseline);
    left: var(--rule-x);
    width: 1.5px;
    background: #fff;
    z-index: 2;
}
/* Bottom band: logo far left, welcome text right of the rule —
   both bottom-aligned to the shared baseline */
.hero-bottom {
    position: absolute;
    left: 0; right: 0;
    bottom: var(--baseline);
    z-index: 3;
    color: #fff;
}
.hero-logo {
    position: absolute;
    left: 6%;
    bottom: 0;
    display: block;
    width: var(--logo-w);
    transition: opacity 0.35s ease;
}
.hero-logo:hover { opacity: 0.75; }
.hero-logo img { display: block; width: 100%; height: auto; }
.hero-welcome { margin-left: calc(var(--rule-x) + var(--gap)); }
.hero-welcome .line1 {
    font-size: clamp(1rem, 1.9vw, 2rem);
    font-weight: 300;
    letter-spacing: 0.14em;
    opacity: 0.95;
}
.hero-welcome .line2 {
    font-size: clamp(1.5rem, 3.1vw, 3.3rem);
    font-weight: 500;
    letter-spacing: 0.1em;
    line-height: 1;
    margin-top: 0.2em;
    white-space: nowrap;
}
.hero-scroll {
    position: absolute;
    bottom: 2rem;
    right: 6%;
    z-index: 3;
    font-family: var(--sans);
    color: var(--gold);
    font-size: 0.62rem;
    letter-spacing: 0.4em;
    text-transform: uppercase;
    text-decoration: none;
    opacity: 0.9;
    text-align: center;
}
.hero-scroll::after {
    content: '';
    display: block;
    width: 1px; height: 44px;
    margin: 0.8rem auto 0;
    background: linear-gradient(180deg, var(--gold), transparent);
    animation: scrollPulse 2.4s ease-in-out infinite;
}
@keyframes scrollPulse { 50% { opacity: 0.25; } }

@media (max-width: 640px) {
    .hero { --baseline: 12%; }
    .hero-rule { left: 8%; }
    .hero-bottom { left: calc(8% + 1.4rem); right: 1rem; }
    /* Logo drops into the flow, directly above the welcome lines */
    .hero-logo {
        position: static;
        width: 120px;
        margin-bottom: 1.4rem;
    }
    .hero-welcome { margin-left: 0; }
    .hero-welcome .line2 { white-space: normal; }
    .hero-scroll { display: none; }
}

/* ── Project cards ────────────────────────────────────── */

.project-card {
    display: block;
    height: 100%;
    background: var(--ink-soft);
    border: 1px solid var(--ink-line);
    text-decoration: none;
    transition: border-color 0.4s ease, transform 0.4s ease;
}
a.project-card:hover { border-color: var(--gold); transform: translateY(-4px); }
.project-card.is-static { cursor: default; }

.project-media {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
}
.project-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(0.88);
    transition: transform 1.2s cubic-bezier(0.16, 1, 0.3, 1), filter 0.6s ease;
}
a.project-card:hover .project-media img { transform: scale(1.045); filter: brightness(1); }

.project-status {
    position: absolute;
    top: 1rem; left: 1rem;
    z-index: 2;
    font-size: 0.58rem;
    font-weight: 400;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    padding: 0.45rem 0.9rem;
    background: rgba(13,12,10,0.72);
    backdrop-filter: blur(6px);
    border: 1px solid rgba(236,229,216,0.25);
    color: var(--cream);
}
.project-status--current  { color: var(--gold); border-color: rgba(201,169,106,0.5); }
.project-status--upcoming { color: var(--cream); }
.project-status--past     { color: var(--cream-dim); }

.project-body { padding: 1.8rem 1.8rem 2rem; }
.project-loc {
    font-size: 0.62rem;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 0.6rem;
}
.project-name {
    font-family: var(--serif);
    font-size: 1.6rem;
    font-weight: 400;
    color: var(--cream);
    margin-bottom: 0.4rem;
}
.project-tagline {
    font-family: var(--serif);
    font-style: italic;
    color: var(--cream-dim);
    margin-bottom: 0;
}
.project-cta {
    display: inline-block;
    margin-top: 1.2rem;
    font-size: 0.64rem;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--cream-dim);
    transition: color 0.3s ease;
}
a.project-card:hover .project-cta { color: var(--gold); }

/* ── Contact band ─────────────────────────────────────── */

.contact-band {
    background: var(--ink-soft);
    border-top: 1px solid var(--ink-line);
    border-bottom: 1px solid var(--ink-line);
}

.form-input {
    width: 100%;
    background: transparent;
    border: none;
    border-bottom: 1px solid var(--ink-line);
    border-radius: 0;
    color: var(--cream);
    font-family: var(--sans);
    font-size: 0.9rem;
    font-weight: 300;
    letter-spacing: 0.06em;
    padding: 0.9rem 0.2rem;
    transition: border-color 0.4s ease;
}
.form-input:focus { outline: none; border-bottom-color: var(--gold); }
.form-input::placeholder {
    color: var(--cream-dim);
    text-transform: uppercase;
    font-size: 0.68rem;
    letter-spacing: 0.3em;
}
textarea.form-input { resize: vertical; }

/* Same autofill fix for the contact form */
.form-input:-webkit-autofill,
.form-input:-webkit-autofill:hover,
.form-input:-webkit-autofill:focus {
    -webkit-box-shadow: 0 0 0 1000px var(--ink-soft) inset;
    -webkit-text-fill-color: var(--cream);
    caret-color: var(--cream);
    transition: background-color 99999s ease-in-out 0s;
}

.hp-field { position: absolute; left: -9999px; height: 0; opacity: 0; }

.form-status {
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    color: var(--cream-dim);
}
.form-status.is-ok  { color: var(--gold); }
.form-status.is-err { color: #c98a6a; }

.footer-contact a {
    color: var(--cream);
    text-decoration: none;
    border-bottom: 1px solid var(--ink-line);
    transition: all 0.3s ease;
}
.footer-contact a:hover { color: var(--gold); border-color: var(--gold); }

/* ── Footer ───────────────────────────────────────────── */

.site-footer { padding: 3rem 0; }
.footer-legal {
    font-size: 0.62rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--cream-dim);
}
.footer-legal a { color: var(--cream-dim); text-decoration: none; }
.footer-legal a:hover { color: var(--gold); }

/* ═══ Gate page ═══════════════════════════════════════ */

.gate-body {
    background:
        radial-gradient(ellipse 80% 60% at 50% 0%, rgba(201,169,106,0.07), transparent),
        var(--ink);
}
/* Ghosted mountain image behind the gate */
.gate-body::before {
    content: '';
    position: fixed;
    inset: 0;
    background: url('../../big-lake_bg.jpg') center / cover no-repeat;
    opacity: 0.09;
    filter: grayscale(35%);
    pointer-events: none;
}
.gate-wrap { position: relative; z-index: 1; }
.gate-logo {
    width: 128px;
    height: auto;
    margin-bottom: 2.2rem;
}
.gate-card {
    max-width: 660px;
    width: 100%;
    padding: 3rem 2rem;
}
.gate-title {
    font-family: var(--serif);
    font-weight: 300;
    font-size: clamp(2.8rem, 8vw, 4.2rem);
    letter-spacing: 0.06em;
    color: var(--cream);
}
.gate-sub {
    font-family: var(--serif);
    font-style: italic;
    font-size: 1.15rem;
    color: var(--cream-dim);
}
.gate-input {
    width: 100%;
    background: transparent;
    border: none;
    border-bottom: 1px solid var(--ink-line);
    color: var(--cream);
    font-family: var(--sans);
    font-size: 0.85rem;
    letter-spacing: 0.3em;
    padding: 0.9rem 0.5rem;
    transition: border-color 0.4s ease;
}
.gate-input:focus { outline: none; border-bottom-color: var(--gold); }

/* Kill the white browser-autofill box — keep the dark transparent style */
.gate-input:-webkit-autofill,
.gate-input:-webkit-autofill:hover,
.gate-input:-webkit-autofill:focus {
    -webkit-box-shadow: 0 0 0 1000px var(--ink) inset;
    -webkit-text-fill-color: var(--cream);
    caret-color: var(--cream);
    transition: background-color 99999s ease-in-out 0s;
}
.gate-field { position: relative; }
.gate-field .gate-input { padding-right: 2.6rem; padding-left: 2.6rem; }
.gate-eye {
    position: absolute;
    right: 0.4rem;
    top: 50%;
    transform: translateY(-50%);
    background: transparent;
    border: none;
    padding: 0.4rem;
    color: var(--cream-dim);
    cursor: pointer;
    transition: color 0.3s ease;
}
.gate-eye:hover, .gate-eye:focus { color: var(--gold); outline: none; }
.gate-input::placeholder {
    color: var(--cream-dim);
    text-transform: uppercase;
    font-size: 0.68rem;
    letter-spacing: 0.35em;
}
.gate-error {
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    color: #c98a6a;
    border: 1px solid rgba(201,138,106,0.35);
    padding: 0.8rem 1.2rem;
}
.gate-footer {
    font-size: 0.62rem;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--cream-dim);
}

/* ── Scroll reveal ────────────────────────────────────── */

.reveal {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 1s ease, transform 1s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal.in { opacity: 1; transform: translateY(0); }
.reveal-d1 { transition-delay: 0.12s; }
.reveal-d2 { transition-delay: 0.24s; }

@media (prefers-reduced-motion: reduce) {
    .reveal { opacity: 1; transform: none; transition: none; }
    html { scroll-behavior: auto; }
}

/* ═══════════════════════════════════════════════════════════════
   SITE.MONTHAUS.COM ADDITIONS — listings search + detail
   (extends the newdev design system above)
   ═══════════════════════════════════════════════════════════════ */

/* ── Listings header + filter bar ─────────────────────── */
.listings-head { padding: 9rem 0 2rem; }

.filter-bar {
    display: grid;
    grid-template-columns: repeat(6, 1fr) auto;
    gap: 0.75rem;
    align-items: stretch;
}
@media (max-width: 991px) { .filter-bar { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 575px) { .filter-bar { grid-template-columns: repeat(2, 1fr); } }

.filter-input {
    background: var(--ink-soft);
    border: 1px solid var(--ink-line);
    color: var(--cream);
    font-family: var(--sans);
    font-size: 0.72rem;
    font-weight: 300;
    letter-spacing: 0.12em;
    padding: 0.85rem 1rem;
    border-radius: 0;
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%239c937f' stroke-width='1.2'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.9rem center;
    transition: border-color 0.35s ease;
    cursor: pointer;
}
.filter-input:focus { outline: none; border-color: var(--gold); }
.filter-submit { padding: 0.85rem 2rem; white-space: nowrap; }

.result-count {
    font-size: 0.68rem;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--cream-dim);
}

/* ── Listing cards (extends .project-card) ────────────── */
.listing-price { margin-bottom: 0.2rem; }
.listing-specs {
    font-size: 0.66rem;      /* MLS# joined the line 2026-10-05; a touch smaller to keep it on one line */
    letter-spacing: 0.1em;
    color: var(--cream-dim);
    margin: 0.5rem 0 0;
}
.media-empty { aspect-ratio: 4 / 3; }
/* No photo and no Street View: a warm panel with a small, fixed-size M mark (Nikki, 2026-10-18;
   the 2026-10-05 problem was the mark stretched to the card's full height, not the mark itself).
   sv.php's 404 adds .no-photo; .media-empty is the same panel when there is no position to try. */
.project-media.no-photo, .gz-tile.no-photo, .bl-thumb.no-photo, .media-empty { background: #e9e4d8; }
.project-media.no-photo::after, .gz-tile.no-photo::after, .bl-thumb.no-photo::after, .media-empty::after {
    content: ''; position: absolute; inset: 0;
    background: url(../img/M-mark_black.svg) center / 40px auto no-repeat; opacity: 0.22;
}
.bl-thumb.no-photo::after { background-size: 30px auto; }
.gz-tile.no-photo, .media-empty { position: relative; }
.project-media img.sv-img { filter: brightness(0.95); }

/* ── Pagination ───────────────────────────────────────── */
.pager-link {
    font-size: 0.68rem;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--gold);
    text-decoration: none;
    padding: 0.6rem 1.4rem;
    border: 1px solid var(--ink-line);
    transition: border-color 0.35s ease;
}
.pager-link:hover { border-color: var(--gold); color: var(--gold); }
.pager-info {
    font-size: 0.68rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--cream-dim);
    margin: 0 1.6rem;
}

/* ── Detail: gallery ──────────────────────────────────── */
.detail-gallery { padding-top: 76px; background: var(--ink); }
.gallery-main {
    position: relative;
    max-height: 72vh;
    overflow: hidden;
    background: var(--ink-soft);
}
.gallery-main img {
    width: 100%;
    max-height: 72vh;
    object-fit: cover;
    display: block;
}
.gallery-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    background: rgba(13,12,10,0.6);
    backdrop-filter: blur(6px);
    border: 1px solid rgba(236,229,216,0.2);
    color: var(--cream);
    font-size: 1.6rem;
    line-height: 1;
    width: 52px; height: 52px;
    transition: all 0.3s ease;
    cursor: pointer;
}
.gallery-nav:hover { background: var(--gold); color: var(--ink); border-color: var(--gold); }
.gallery-prev { left: 1.2rem; }
.gallery-next { right: 1.2rem; }
.gallery-count {
    position: absolute;
    bottom: 1rem; right: 1.2rem;
    z-index: 2;
    font-size: 0.62rem;
    letter-spacing: 0.25em;
    padding: 0.45rem 0.9rem;
    background: rgba(13,12,10,0.72);
    backdrop-filter: blur(6px);
    border: 1px solid rgba(236,229,216,0.25);
    color: var(--cream);
}
.gallery-thumbs {
    display: flex;
    gap: 0.5rem;
    padding: 0.75rem 1.2rem;
    overflow-x: auto;
    background: var(--ink);
    scrollbar-width: thin;
    scrollbar-color: var(--ink-line) transparent;
}
.gallery-thumbs img {
    height: 64px;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    opacity: 0.45;
    cursor: pointer;
    border: 1px solid transparent;
    transition: opacity 0.3s ease, border-color 0.3s ease;
    flex: 0 0 auto;
}
.gallery-thumbs img:hover { opacity: 0.8; }
.gallery-thumbs img.active { opacity: 1; border-color: var(--gold); }

/* ── Detail: summary + facts ──────────────────────────── */
.detail-head { padding-top: 3.5rem; }
.detail-price {
    font-family: var(--serif);
    font-weight: 300;
    font-size: clamp(1.8rem, 3vw, 2.6rem);
    color: var(--gold);
}
.fact-label {
    font-size: 0.6rem;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--cream-dim);
    margin-bottom: 0.3rem;
}
.fact-value {
    font-family: var(--serif);
    font-size: 1.5rem;
    font-weight: 300;
    color: var(--cream);
    margin-bottom: 0;
}
.fact-value-sm { font-size: 1.05rem; padding-top: 0.35rem; }

/* ── Detail: sidebar ──────────────────────────────────── */
.detail-side {
    background: var(--ink-soft);
    border: 1px solid var(--ink-line);
    padding: 2.2rem;
}
.side-agent {
    font-family: var(--serif);
    font-size: 1.25rem;
    color: var(--cream);
    margin-bottom: 0.15rem;
}
.side-office {
    font-size: 0.68rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--cream-dim);
}
.history-table { width: 100%; font-size: 0.78rem; }
.history-table td { padding: 0.5rem 0; border-bottom: 1px solid var(--ink-line); vertical-align: top; }
.history-table tr:last-child td { border-bottom: none; }
.h-date { white-space: nowrap; color: var(--cream-dim); padding-right: 1.2rem !important; width: 1%; }
.h-event { color: var(--cream); }
.h-new { color: var(--gold); }

/* ── Detail: map ──────────────────────────────────────── */
.listing-map {
    height: 420px;
    border: 1px solid var(--ink-line);
}
/* Invert OSM's light tiles to match the dark design (keyless dev tiles) */
.listing-map .leaflet-tile-pane {
    filter: invert(1) hue-rotate(180deg) saturate(0.4) brightness(0.75) contrast(0.9);
}
.leaflet-container { background: var(--ink-soft); font-family: var(--sans); }

/* ═══════════════════════════════════════════════════════════════
   LIGHT THEME — site.monthaus.com
   Same editorial feeling, flipped to warm paper. Loads last, so it
   overrides the dark palette above. Delete this section (or wrap it
   in a body class) to return to dark.
   ═══════════════════════════════════════════════════════════════ */

:root {
    --ink:        #f6f3ec;   /* page: warm paper */
    --ink-soft:   #fdfcf9;   /* cards / panels: near-white */
    --ink-line:   #e3dccb;   /* hairlines: light taupe */
    --gold:       #a8874e;   /* deepened for contrast on light */
    --gold-soft:  #8a6d3a;
    --cream:      #211d15;   /* primary text: warm near-black */
    --cream-dim:  #756c59;   /* secondary text: warm gray */
}

/* Nav: light glass instead of dark */
.site-nav.scrolled {
    background: rgba(246,243,236,0.94);
    border-bottom: 1px solid var(--ink-line);
    backdrop-filter: blur(12px);
}

/* White SVG logos → ink (keeps single asset set) */
.nav-brand-mark,
.site-footer img,
.gate-logo,
.media-empty img {
    filter: invert(1) brightness(0.35) sepia(0.25);
}

/* Buttons: gold fill on hover reads better with light text */
.btn-gold:hover, .btn-gold:focus { color: #fdfcf9; }

/* Cards: soft paper shadow instead of glow-by-border alone */
.project-card {
    box-shadow: 0 1px 2px rgba(33,29,21,0.05);
}
a.project-card:hover {
    box-shadow: 0 14px 34px rgba(33,29,21,0.10);
}

/* Status chips still sit on photos — keep them dark (unchanged rules apply) */

/* Gate: keep the moody ghosted image but let it read on paper */
.gate-body::before { opacity: 0.12; filter: grayscale(20%) brightness(1.4); }
.gate-error {
    color: #9c5a35;
    border-color: rgba(156,90,53,0.35);
}

/* Detail map: light OSM tiles look right natively — undo the dark invert */
.listing-map .leaflet-tile-pane {
    filter: saturate(0.75) contrast(0.95);
}

/* History: gold "new value" stays; hairlines lighten via vars automatically */

/* ── IDX additions: MH badge + courtesy attribution ───── */
.mh-badge {
    left: auto;
    right: 1rem;
    color: var(--gold);
    border-color: rgba(201,169,106,0.55);
}
.card-courtesy {
    font-size: 0.6rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--cream-dim);
    opacity: 0.8;
    margin: 0.6rem 0 0;
}

/* ── Location typeahead search ────────────────────────── */
.filter-bar { grid-template-columns: 2.4fr repeat(4, 1fr) auto; }
@media (max-width: 991px) {
    .filter-bar { grid-template-columns: repeat(3, 1fr); }
    .search-loc { grid-column: 1 / -1; }
}
@media (max-width: 575px) { .filter-bar { grid-template-columns: repeat(2, 1fr); } }

.search-loc {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    background: var(--ink-soft);
    border: 1px solid var(--ink-line);
    padding: 0.45rem 0.7rem;
    cursor: text;
    min-height: 100%;
}
.search-loc:focus-within { border-color: var(--gold); }

.loc-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.68rem;
    letter-spacing: 0.08em;
    color: var(--cream);
    background: rgba(168,135,78,0.12);
    border: 1px solid rgba(168,135,78,0.45);
    padding: 0.28rem 0.35rem 0.28rem 0.65rem;
    white-space: nowrap;
}
.chip-x {
    background: none;
    border: none;
    color: var(--cream-dim);
    font-size: 0.95rem;
    line-height: 1;
    padding: 0 0.25rem;
    cursor: pointer;
    transition: color 0.25s ease;
}
.chip-x:hover { color: var(--gold); }

.loc-input {
    flex: 1;
    min-width: 140px;
    background: transparent;
    border: none;
    color: var(--cream);
    font-family: var(--sans);
    font-size: 0.74rem;
    letter-spacing: 0.08em;
    padding: 0.3rem 0.2rem;
}
.loc-input:focus { outline: none; }
.loc-input::placeholder { color: var(--cream-dim); opacity: 0.8; }

.suggest-panel {
    position: absolute;
    top: calc(100% + 1px);
    left: -1px;
    right: -1px;
    z-index: 60;
    background: var(--ink-soft);
    border: 1px solid var(--ink-line);
    box-shadow: 0 16px 36px rgba(33,29,21,0.14);
    max-height: 320px;
    overflow-y: auto;
}
.suggest-group {
    font-size: 0.58rem;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--gold);
    padding: 0.8rem 1rem 0.4rem;
}
.suggest-item {
    font-size: 0.78rem;
    letter-spacing: 0.04em;
    color: var(--cream);
    padding: 0.55rem 1rem;
    cursor: pointer;
    transition: background 0.2s ease;
}
.suggest-item:hover { background: rgba(168,135,78,0.10); color: var(--gold-soft); }

/* ── Tighter results spacing (dev request) ────────────── */
.listings-head { padding: 8rem 0 0.5rem; }
.results-section { padding: 1.25rem 0 5rem; }
.result-count { margin-bottom: 0; }

/* ── Card readability pass (darker text) ──────────────── */
.project-tagline { color: #3f3a2e; }
.listing-specs   { color: #4c4636; }
.card-courtesy   { color: #4c4636; opacity: 1; }
.project-loc     { color: var(--gold-soft); }

/* ── Zillow-style detail gallery ──────────────────────── */
.detail-gallery { padding-top: 92px; background: var(--ink); }
.gz-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: 8px;
    height: min(58vh, 560px);
}
.gz-grid.gz-solo { grid-template-columns: 1fr; grid-template-rows: 1fr; height: min(62vh, 600px); }
.gz-tile {
    position: relative;
    border: none;
    padding: 0;
    overflow: hidden;
    background: var(--ink-soft);
    cursor: pointer;
}
.gz-hero { grid-row: 1 / 3; }
.gz-tile img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1), filter 0.4s ease;
}
.gz-tile:hover img { transform: scale(1.03); filter: brightness(1.05); }
.gz-count {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(13,12,10,0.55);
    color: #fff;
    font-size: 0.7rem;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    backdrop-filter: blur(2px);
}
@media (max-width: 767px) {
    .gz-grid { grid-template-columns: 1fr; grid-template-rows: 1fr; height: 44vh; }
    .gz-grid .gz-tile:not(.gz-hero) { display: none; }
}

/* ── Lightbox ─────────────────────────────────────────── */
.lightbox {
    position: fixed;
    inset: 0;
    z-index: 2000;
    background: rgba(13,12,10,0.96);
    display: flex;
    align-items: center;
    justify-content: center;
}
.lightbox[hidden] { display: none; }
.lightbox img#lbImg {
    max-width: 92vw;
    max-height: 88vh;
    object-fit: contain;   /* letterbox low-res rather than stretch */
    box-shadow: 0 24px 80px rgba(0,0,0,0.5);
}
.lightbox .gallery-nav { position: fixed; }
.lightbox .gallery-prev { left: 2vw; }
.lightbox .gallery-next { right: 2vw; }
.lightbox .gallery-count { position: fixed; bottom: 2.5vh; right: 2vw; }
.lb-close {
    position: fixed;
    top: 2.5vh; right: 2vw;
    z-index: 2;
    background: none;
    border: none;
    color: #ece5d8;
    font-size: 2.2rem;
    line-height: 1;
    cursor: pointer;
    transition: color 0.3s ease;
}
.lb-close:hover { color: var(--gold); }

/* ── Property detail tables ───────────────────────────── */
.detail-group {
    background: var(--ink-soft);
    border: 1px solid var(--ink-line);
    padding: 1.6rem 1.8rem;
    height: 100%;
}
.detail-group-title {
    font-family: var(--serif);
    font-size: 1.2rem;
    font-weight: 400;
    color: var(--cream);
    margin-bottom: 1rem;
    padding-bottom: 0.6rem;
    border-bottom: 1px solid var(--ink-line);
}
.detail-table { width: 100%; font-size: 0.78rem; }
.detail-table td { padding: 0.42rem 0; vertical-align: top; border-bottom: 1px solid rgba(227,220,203,0.4); }
.detail-table tr:last-child td { border-bottom: none; }
.dt-label { color: #756c59; padding-right: 1rem !important; white-space: nowrap; width: 42%; }
.dt-value { color: #29241a; }

/* ── Detail page refinement pass ──────────────────────── */
.detail-head { padding: 2.2rem 0 0.75rem; }
.detail-cityline {
    font-family: var(--serif);
    font-style: italic;
    font-size: 1.25rem;
    color: #4c4636;
    margin-bottom: 0.9rem;
}
.detail-price { font-size: clamp(2rem, 3.4vw, 3rem); }
.section-flush { padding: 1.75rem 0 2.5rem; }
.body-copy { color: #3f3a2e; }          /* darker remarks text */
.lead-serif { color: #4c4636; }
.dt-label { color: #6a6250; }
.dt-value { color: #211d15; }
.listing-attribution {
    font-size: 0.72rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #6a6250;
}

/* MH agent card */
.agent-row {
    display: flex;
    gap: 1.1rem;
    align-items: flex-start;
    margin-bottom: 1.4rem;
}
.agent-row:last-child { margin-bottom: 0; }
.agent-avatar {
    flex: 0 0 auto;
    width: 58px; height: 58px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(168,135,78,0.14);
    border: 1px solid rgba(168,135,78,0.5);
    color: var(--gold-soft);
    font-family: var(--serif);
    font-size: 1.3rem;
}
.agent-contact {
    display: block;
    font-size: 0.74rem;
    letter-spacing: 0.06em;
    color: #4c4636;
    text-decoration: none;
    margin-top: 0.35rem;
    transition: color 0.25s ease;
}
.agent-contact:hover { color: var(--gold-soft); }

/* ── Lightbox v2: bright controls + thumbnail strip ───── */
.lightbox { flex-direction: column; gap: 0; }
.lb-stage {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 0;
    width: 100%;
    padding: 3.5vh 6vw 1.5vh;
}
.lightbox img#lbImg { max-width: 100%; max-height: 100%; }
.lb-nav {
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
    z-index: 3;
    width: 54px; height: 54px;
    background: rgba(255,255,255,0.14);
    border: 1px solid rgba(255,255,255,0.45);
    color: #fff;
    font-size: 1.7rem;
    line-height: 1;
    cursor: pointer;
    transition: all 0.3s ease;
    backdrop-filter: blur(4px);
}
.lb-nav:hover { background: var(--gold); border-color: var(--gold); color: #14120f; }
.lb-prev { left: 1.6vw; }
.lb-next { right: 1.6vw; }
.lb-close {
    color: #fff;
    font-size: 2.6rem;
    text-shadow: 0 2px 12px rgba(0,0,0,0.6);
}
.lb-count {
    position: fixed;
    top: 3vh; left: 2vw;
    color: #fff;
    font-size: 0.68rem;
    letter-spacing: 0.3em;
    padding: 0.5rem 1rem;
    background: rgba(255,255,255,0.12);
    border: 1px solid rgba(255,255,255,0.3);
    backdrop-filter: blur(4px);
}
.lb-thumbs {
    flex: 0 0 auto;
    width: 100%;
    display: flex;
    gap: 0.5rem;
    padding: 0.9rem 1.2rem 1.1rem;
    overflow-x: auto;
    justify-content: safe center;
    background: rgba(0,0,0,0.35);
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,0.25) transparent;
}
.lb-thumbs img {
    height: 62px;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    opacity: 0.45;
    cursor: pointer;
    border: 2px solid transparent;
    transition: opacity 0.25s ease, border-color 0.25s ease;
    flex: 0 0 auto;
}
.lb-thumbs img:hover { opacity: 0.85; }
.lb-thumbs img.active { opacity: 1; border-color: var(--gold); }

/* ── Readability: deepen the gold accents on light bg ─── */
.eyebrow            { color: #8a6d3a; }
.nav-brand-sub      { color: #8a6d3a; }
.project-loc        { color: #8a6d3a; }
.suggest-group      { color: #8a6d3a; }
.detail-price       { color: #8a6d3a; }
.h-new              { color: #7a5f30; }
.fact-label         { color: #6a6250; }

/* ── MLS attribution logo ─────────────────────────────── */
.mls-logo { height: 28px; width: auto; opacity: 0.9; }

/* ── Broker roster grid + profile ─────────────────────── */
.broker-card {
    display: block;
    height: 100%;
    background: var(--ink-soft);
    border: 1px solid var(--ink-line);
    text-decoration: none;
    transition: border-color 0.4s ease, transform 0.4s ease, box-shadow 0.4s ease;
    box-shadow: 0 1px 2px rgba(33,29,21,0.05);
}
.broker-card:hover {
    border-color: var(--gold);
    transform: translateY(-4px);
    box-shadow: 0 14px 34px rgba(33,29,21,0.10);
}
.broker-photo {
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background: rgba(168,135,78,0.08);
    display: flex;
    align-items: center;
    justify-content: center;
}
.broker-photo img {
    width: 100%; height: 100%;
    object-fit: cover;
    filter: brightness(0.96);
    transition: transform 1s cubic-bezier(0.16,1,0.3,1), filter 0.5s ease;
}
.broker-card:hover .broker-photo img { transform: scale(1.04); filter: brightness(1.02); }
.broker-initials {
    font-family: var(--serif);
    font-size: 2.6rem;
    color: var(--gold-soft);
}
.broker-body { padding: 1.4rem 1.5rem 1.6rem; }
.broker-name {
    font-family: var(--serif);
    font-size: 1.4rem;
    font-weight: 400;
    color: var(--cream);
    margin-bottom: 0.2rem;
}
.broker-title {
    font-size: 0.64rem;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: #6a6250;
    margin-bottom: 0.6rem;
}

.broker-hero { padding: 8.5rem 0 1.5rem; }
.broker-hero-photo {
    width: 220px; height: 262px;   /* was 168×200 — bumped 2026-09-29 */
    overflow: hidden;
    border: 1px solid var(--ink-line);
    background: rgba(168,135,78,0.08);
    display: flex;
    align-items: center;
    justify-content: center;
}
.broker-hero-photo img { width: 100%; height: 100%; object-fit: cover; }
.broker-contactline { font-size: 0.85rem; letter-spacing: 0.06em; }
.broker-contactline a { color: #4c4636; text-decoration: none; transition: color 0.25s ease; }
.broker-contactline a:hover { color: var(--gold-soft); }

/* Listing sidebar: real headshot + profile link */
.agent-headshot {
    width: 58px; height: 58px;
    border-radius: 50%;
    object-fit: cover;
    border: 1px solid rgba(168,135,78,0.5);
}
.agent-avatar-link { text-decoration: none; flex: 0 0 auto; }
.agent-name-link { color: inherit; text-decoration: none; transition: color 0.25s ease; }
.agent-name-link:hover { color: var(--gold-soft); }

/* ── Admin area ───────────────────────────────────────── */
.admin-main { padding: 8rem 0 5rem; }
.admin-head { margin-bottom: 1.5rem; }
.admin-sub { font-size: 0.78rem; letter-spacing: 0.08em; color: #6a6250; }
.admin-sub a, .admin-back { color: #8a6d3a; text-decoration: none; }
.admin-back { letter-spacing: 0.24em; text-transform: uppercase; font-size: 0.68rem; }
.admin-flash {
    background: rgba(138,109,58,0.1);
    border: 1px solid rgba(138,109,58,0.4);
    color: #5c4a28;
    font-size: 0.8rem;
    letter-spacing: 0.06em;
    padding: 0.8rem 1.2rem;
    margin: 1rem 0;
}
.admin-group-title {
    font-family: var(--serif);
    font-size: 1.3rem;
    font-weight: 400;
    color: var(--cream);
    margin: 2.2rem 0 0.8rem;
    padding-bottom: 0.4rem;
    border-bottom: 1px solid var(--ink-line);
}
.admin-group-pending::before  { content: '●  '; color: #b8860b; }
.admin-group-approved::before { content: '●  '; color: #4a7a4a; }
.admin-group-inactive::before { content: '●  '; color: #a0968a; }

.admin-table-wrap { background: var(--ink-soft); border: 1px solid var(--ink-line); overflow-x: auto; }
.admin-table { width: 100%; font-size: 0.8rem; }
.admin-table th {
    font-size: 0.6rem; letter-spacing: 0.26em; text-transform: uppercase;
    color: #6a6250; font-weight: 400;
    padding: 0.8rem 1rem; border-bottom: 1px solid var(--ink-line);
}
.admin-table td { padding: 0.7rem 1rem; border-bottom: 1px solid rgba(227,220,203,0.5); vertical-align: middle; color: #29241a; }
.admin-table tr:last-child td { border-bottom: none; }
.at-photo img, .at-initials {
    width: 44px; height: 44px; border-radius: 50%;
    object-fit: cover; display: inline-flex;
    align-items: center; justify-content: center;
    border: 1px solid rgba(168,135,78,0.45);
}
.at-initials { background: rgba(168,135,78,0.1); color: #8a6d3a; font-family: var(--serif); font-size: 0.95rem; }
.at-slug { font-size: 0.66rem; color: #8b8271; letter-spacing: 0.06em; }
.at-contact { font-size: 0.72rem; color: #4c4636; }
.at-idents { font-size: 0.68rem; color: #6a6250; letter-spacing: 0.04em; }
.at-actions { text-align: right; }

.btn-sm-gold { font-size: 0.62rem !important; padding: 0.5rem 1.2rem !important; text-decoration: none; display: inline-block; }
.btn-plain {
    font-family: var(--sans); letter-spacing: 0.3em; text-transform: uppercase;
    background: transparent; border: 1px solid var(--ink-line); color: #6a6250;
    transition: all 0.35s ease;
}
.btn-plain:hover { border-color: #a0968a; color: #29241a; }

.admin-panel { background: var(--ink-soft); border: 1px solid var(--ink-line); padding: 1.8rem 2rem; }
.admin-label {
    display: block; font-size: 0.62rem; letter-spacing: 0.26em;
    text-transform: uppercase; color: #6a6250; margin-bottom: 0.35rem;
}
.admin-label span { text-transform: none; letter-spacing: 0.04em; color: #a0968a; }
.admin-input {
    width: 100%; background: #fff; border: 1px solid var(--ink-line);
    color: #211d15; font-family: var(--sans); font-size: 0.85rem;
    padding: 0.55rem 0.8rem; border-radius: 0;
    transition: border-color 0.3s ease;
}
.admin-input:focus { outline: none; border-color: var(--gold); }
.admin-check { font-size: 0.78rem; color: #4c4636; }
.admin-headshot { max-width: 200px; border: 1px solid var(--ink-line); }
.badge-alias, .badge-off {
    font-size: 0.58rem; letter-spacing: 0.14em; text-transform: uppercase;
    padding: 0.15rem 0.5rem; border: 1px solid rgba(138,109,58,0.4); color: #8a6d3a;
}
.badge-off { border-color: rgba(160,150,138,0.6); color: #a0968a; }
.status-pending  { color: #b8860b; }
.status-approved { color: #4a7a4a; }
.status-inactive { color: #a0968a; }

/* ── Contrast pass (Sep 2026): brighter surfaces, darker secondary text ── */
:root {
    --ink:       #fdfbf6;   /* page: barely-there ivory (lightened again 9/19) */
    --ink-soft:  #ffffff;   /* cards/panels: white */
    --cream-dim: #5c5440;   /* secondary text: darker warm gray */
}

/* Label tier: was #6a6250 — same shade, deeper */
.fact-label,
.dt-label,
.admin-label,
.admin-table th,
.admin-sub,
.at-idents,
.broker-title,
.listing-attribution { color: #564e3c; }

.admin-sub a, .admin-back { color: #7d6234; }
.at-contact  { color: #3f3a2e; }
.at-slug     { color: #746b58; }
.card-courtesy, .listing-specs { color: #453f30; }
.detail-cityline { color: #3f3a2e; }

/* ── Broker profile v2: title/office lines, socials, rich bio ── */
.broker-titleline {
    font-size: 0.72rem;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: #564e3c;
    margin-bottom: 0.8rem;
}
.broker-officeline {
    font-size: 0.78rem;
    letter-spacing: 0.06em;
    color: #564e3c;
    margin-bottom: 0.4rem;
}
/* Socials: plain small glyphs sitting right under the address (Instagram
   carries its @handle) — no boxes, so a lone Instagram doesn't look stranded. */
.broker-socials { margin: 0.1rem 0 0; }
.broker-socials a {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-right: 1rem;
    color: #564e3c;
    font-size: 0.78rem;
    letter-spacing: 0.04em;
    text-decoration: none;
    transition: color 0.25s ease;
}
.broker-socials a i { font-size: 0.85rem; }
.broker-socials a:hover { color: #7d6234; }
/* Serving line: under the title, quiet serif italic */
.broker-serving {
    font-family: var(--serif);
    font-style: italic;
    font-size: 1.05rem;
    color: #7a705c;
    margin: -0.45rem 0 0.8rem;
}
/* Bio: 14px, tighter leading, no tracking (was 16px / line-height 2 / 0.02em) */
.broker-bio { font-size: 0.875rem; line-height: 1.75; letter-spacing: 0; }
.broker-bio p { margin-bottom: 1em; }
.broker-bio p:empty { display: none; }
.broker-bio a { color: #7d6234; }
.broker-bio ul, .broker-bio ol { padding-left: 1.4rem; }

/* Trix editor, themed */
.trix-mh {
    background: #fff;
    border: 1px solid var(--ink-line) !important;
    border-radius: 0 !important;
    min-height: 220px;
    font-family: var(--sans);
    font-size: 0.88rem;
    color: #211d15;
    padding: 0.8rem 1rem;
}
.trix-mh:focus { outline: none; border-color: var(--gold) !important; }
trix-toolbar .trix-button-group { border-color: var(--ink-line) !important; border-radius: 0 !important; }
trix-toolbar { margin-bottom: 0.4rem; }

/* Trix: ensure block layout even if its stylesheet loads late */
trix-editor.trix-mh { display: block; }

/* ── Map-split search layout ──────────────────────────── */
.search-page { overflow-x: hidden; }
.search-split {
    display: flex;
    padding-top: 68px;   /* fixed nav */
    min-height: 100vh;
}
.search-results {
    width: 54%;
    padding: 1.5rem 2rem 0;
}
.search-title {
    font-family: var(--serif);
    font-weight: 300;
    font-size: 1.9rem;
    color: var(--cream);
    margin-bottom: 0.9rem;
}
.filter-bar-split { grid-template-columns: 2.4fr 1fr 1fr 1fr 1fr auto; }
@media (max-width: 1400px) { .filter-bar-split { grid-template-columns: repeat(3, 1fr); } .filter-bar-split .search-loc { grid-column: 1 / -1; } }
.search-results-head { position: sticky; top: 68px; z-index: 40; background: var(--ink); padding-bottom: 0.6rem; }
.search-results-grid { padding-bottom: 2rem; }
.map-clear { color: #7d6234; text-decoration: none; }
.map-clear:hover { text-decoration: underline; }

.search-map {
    width: 46%;
    position: sticky;
    top: 68px;
    height: calc(100vh - 68px);
}
#searchMap, .map-missing { width: 100%; height: 100%; background: var(--ink-soft); }
.map-controls {
    position: absolute;
    top: 0.9rem; left: 50%;
    transform: translateX(-50%);
    z-index: 5;
    display: flex;
    gap: 0.5rem;
}
.map-btn {
    font-family: var(--sans);
    font-size: 0.66rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    background: #fff;
    border: 1px solid var(--ink-line);
    color: #211d15;
    padding: 0.55rem 1.1rem;
    box-shadow: 0 4px 14px rgba(33,29,21,0.18);
    cursor: pointer;
    transition: all 0.3s ease;
}
.map-btn:hover { border-color: var(--gold); color: #7d6234; }

.map-pill {
    position: absolute;
    transform: translate(-50%, -100%);
    background: #211d15;
    color: #fff;
    font-family: 'Jost', sans-serif;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.03em;
    padding: 3px 9px 4px;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.35);
    cursor: pointer;
    white-space: nowrap;
    transition: transform 0.15s ease, background 0.15s ease;
}
.map-pill:hover { background: #8a6d3a; transform: translate(-50%, -100%) scale(1.12); z-index: 10; }

@media (max-width: 991px) {
    .search-split { flex-direction: column-reverse; }
    .search-results, .search-map { width: 100%; }
    .search-map { position: relative; top: 0; height: 42vh; }
    .search-results-head { position: static; }
}

/* ── Communities nav dropdown ─────────────────────────── */
.nav-dd { position: relative; }
.nav-dd-btn { background: none; border: none; }
.nav-dd-caret { font-size: 0.55rem; opacity: 0.7; }
.nav-dd-panel {
    position: absolute;
    top: calc(100% + 0.9rem);
    left: 50%;
    transform: translateX(-50%);
    display: none;
    gap: 2.5rem;
    background: #fff;
    border: 1px solid var(--ink-line);
    box-shadow: 0 20px 50px rgba(33,29,21,0.16);
    padding: 1.6rem 2rem;
    white-space: nowrap;
}
.nav-dd:hover .nav-dd-panel, .nav-dd.open .nav-dd-panel { display: flex; }
.nav-dd-head {
    font-size: 0.6rem;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: #8a6d3a;
    margin-bottom: 0.7rem;
}
.nav-dd-col a {
    display: block;
    font-family: var(--serif);
    font-size: 1.05rem;
    color: #211d15;
    text-decoration: none;
    padding: 0.28rem 0;
    transition: color 0.25s ease;
}
.nav-dd-col a:hover { color: #8a6d3a; }

/* ── Map + nav dropdown refinements ───────────────────── */
.map-btn-active { background: #211d15; color: #fff; border-color: #211d15; }
.map-btn-active:hover { color: #c9a96a; }

/* Hover-open dropdown: invisible bridge spans the gap so the panel
   doesn't vanish while the cursor crosses from button to panel */
.nav-dd-panel::before {
    content: '';
    position: absolute;
    top: -1rem; left: -1rem; right: -1rem;
    height: 1.2rem;
}
/* Distinct hover state for community items */
.nav-dd-col a {
    padding: 0.34rem 0.7rem;
    margin: 0 -0.7rem;
    transition: background 0.18s ease, color 0.18s ease;
}
.nav-dd-col a:hover {
    background: rgba(201,169,106,0.18);
    color: #6b5326;
}

/* ── Communities: two-tier cascade ────────────────────── */
.nav-dd-panel.nav-dd-tiered {
    display: none;
    flex-direction: column;
    gap: 0;
    padding: 0.6rem 0;
    min-width: 250px;
    white-space: nowrap;
}
.nav-dd:hover .nav-dd-panel.nav-dd-tiered,
.nav-dd.open .nav-dd-panel.nav-dd-tiered { display: flex; }

.nav-dd-item { position: relative; }
.nav-dd-region {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.7rem;
    font-family: var(--serif);
    font-size: 1.05rem;
    color: #211d15;
    text-decoration: none;
    padding: 0.55rem 1.4rem;
    transition: background 0.18s ease, color 0.18s ease;
}
.nav-dd-arrow { font-size: 0.85rem; color: #a0968a; transition: color 0.18s ease; }
.nav-dd-item:hover > .nav-dd-region {
    background: rgba(201,169,106,0.18);
    color: #6b5326;
}
.nav-dd-item:hover .nav-dd-arrow { color: #6b5326; }

.nav-dd-fly {
    display: none;
    position: absolute;
    top: -0.6rem;
    right: 100%;          /* nav sits at the viewport's right edge — open leftward */
    left: auto;
    min-width: 230px;
    background: #fff;
    border: 1px solid var(--ink-line);
    box-shadow: 0 20px 50px rgba(33,29,21,0.16);
    padding: 0.6rem 0;
}
.nav-dd-item:hover .nav-dd-fly { display: block; }
/* invisible bridge across the seam between region row and flyout */
.nav-dd-fly::before {
    content: '';
    position: absolute;
    top: 0; bottom: 0; right: -14px;
    width: 14px;
}
.nav-dd-fly a {
    display: block;
    font-family: var(--serif);
    font-size: 1rem;
    color: #211d15;
    text-decoration: none;
    padding: 0.45rem 1.4rem;
    transition: background 0.18s ease, color 0.18s ease;
}
.nav-dd-fly a:hover {
    background: rgba(201,169,106,0.18);
    color: #6b5326;
}

/* ── Search bar v2: full-width collapsible location row ── */
.filter-bar-split { grid-template-columns: repeat(4, 1fr) auto; }
.filter-bar-split .search-loc { grid-column: 1 / -1; }
@media (max-width: 1400px) { .filter-bar-split { grid-template-columns: repeat(4, 1fr) auto; } }
@media (max-width: 991px)  { .filter-bar-split { grid-template-columns: repeat(2, 1fr); } .filter-bar-split .filter-submit { grid-column: 1 / -1; } }

/* Collapsed: first chip + "+N more" pill on one tidy line */
.search-loc:not(.expanded) { flex-wrap: nowrap; overflow: hidden; }
.search-loc:not(.expanded) .loc-chip:not(:first-of-type) { display: none; }
.loc-more {
    flex: 0 0 auto;
    font-family: var(--sans);
    font-size: 0.66rem;
    letter-spacing: 0.12em;
    color: #7d6234;
    background: rgba(201,169,106,0.10);
    border: 1px solid rgba(168,135,78,0.35);
    padding: 0.3rem 0.7rem;
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.25s ease;
}
.loc-more:hover { background: rgba(201,169,106,0.22); }

/* ── Map clear buttons + count spacing ────────────────── */
.result-count { margin-top: 0.9rem; margin-bottom: 0.4rem; }
.map-btn-clear {
    background: #211d15;
    color: #fff;
    border-color: #211d15;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
}
.map-btn-clear:hover { background: #8a6d3a; border-color: #8a6d3a; color: #fff; }

/* ── Draw-mode banner + clean drawing ─────────────────── */
.map-draw-banner {
    position: absolute;
    top: 0; left: 0; right: 0;
    z-index: 7;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.1rem;
    padding: 0.6rem 1rem;
    background: rgba(33, 29, 21, 0.85);
    backdrop-filter: blur(4px);
    color: #fff;
    font-size: 0.78rem;
    font-weight: 400;
    letter-spacing: 0.05em;
}
.map-draw-banner .banner-cancel {
    background: transparent;
    color: #fff;
    border: 1px solid rgba(255,255,255,0.55);
    border-radius: 3px;
    font-size: 0.72rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    padding: 0.25rem 0.9rem;
    transition: all 0.25s ease;
}
.map-draw-banner .banner-cancel:hover { background: #fff; color: #211d15; }
/* While drawing: price pills stop eating clicks so every click lands a point */
#searchMap.drawing .map-pill { pointer-events: none; opacity: 0.55; }

/* ── Simple nav dropdown (Exclusives) ─────────────────── */
.nav-dd-panel.nav-dd-simple {
    min-width: 220px;
    padding: 0.5rem 0;
}
.nav-dd-simple a {
    display: block;
    padding: 0.55rem 1.4rem;
    font-size: 0.68rem;
    font-weight: 400;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #564e3c;
    text-decoration: none;
    transition: background 0.2s ease, color 0.2s ease;
}
.nav-dd-simple a:hover { background: rgba(201,169,106,0.14); color: #8a6d3a; }
/* About Us: the agent regions sit under All Agents (2026-10-18) */
.nav-dd-simple a.nav-dd-sub { padding-left: 2.6rem; font-size: 0.62rem; color: #6d6450; }
.nav-dd-simple a.nav-dd-sub::before { content: '·'; margin-right: 0.6rem; color: var(--gold); }

/* ── Filters popout + slim search bar ─────────────────── */
.filter-bar-split { grid-template-columns: minmax(0, 1fr) auto auto; }
.filter-bar-split .search-loc { grid-column: auto; }
@media (max-width: 575px) {
    .filter-bar-split { grid-template-columns: 1fr auto auto; }
    .filter-bar-split .search-loc { grid-column: 1 / -1; }
}
.filter-pop-wrap { position: relative; }
.filter-toggle { white-space: nowrap; cursor: pointer; height: 100%; }
.filter-pop {
    position: absolute;
    top: calc(100% + 0.6rem);
    right: 0;
    z-index: 60;
    width: 340px;
    max-width: 90vw;
    background: #fffefa;
    border: 1px solid var(--ink-line);
    box-shadow: 0 18px 45px rgba(33, 29, 21, 0.16);
    padding: 1.2rem;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.9rem;
}
.filter-pop[hidden] { display: none; }
.filter-pop-field {
    display: block;
    font-size: 0.62rem;
    font-weight: 400;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #564e3c;
}
.filter-pop-field .filter-input { width: 100%; margin-top: 0.4rem; }
.filter-pop-actions {
    grid-column: 1 / -1;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 0.2rem;
}
.filter-pop-actions .btn-gold { padding: 0.6rem 1.8rem; }
.filter-pop-clear {
    background: none;
    border: none;
    color: #7d6234;
    font-size: 0.68rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-decoration: underline;
    cursor: pointer;
}

/* Exclusives dropdown: single column */
.nav-dd-panel.nav-dd-simple { flex-direction: column; gap: 0; }

/* ── Sticky results head: seal the gap under the fixed nav ──
   Pin at viewport top and pad down past the nav so listings can
   never peek between the nav and the header band. The negative
   margin cancels the padding in normal flow (net-zero layout). */
.search-results-head {
    top: 0;
    padding-top: 84px;
    margin-top: -84px;
}

/* ── Visitor accounts: hearts, registration band, auth pages ── */
.fav-btn {
    position: absolute;
    top: 0.7rem; right: 0.7rem;
    z-index: 3;
    width: 34px; height: 34px;
    border-radius: 50%;
    border: none;
    background: rgba(250, 248, 242, 0.92);
    color: #8a6d3a;
    font-size: 1.05rem;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 2px 10px rgba(33, 29, 21, 0.18);
    transition: transform 0.15s ease, color 0.2s ease;
}
.fav-btn:hover { transform: scale(1.12); }
.fav-btn.fav-on { color: #b3222d; }

.reg-band {
    background: #f3efe6;
    border-top: 1px solid var(--ink-line);
    padding: 3.5rem 0;
}
.reg-form {
    display: grid;
    grid-template-columns: 1fr 1.3fr 1fr auto;
    gap: 0.7rem;
}
@media (max-width: 767px) { .reg-form { grid-template-columns: 1fr; } }
.reg-form .btn-gold { white-space: nowrap; padding: 0.85rem 1.8rem; }
.reg-inline-link { color: #8a6d3a; }
.reg-compact { margin-top: 3rem; padding-top: 1.6rem; border-top: 1px solid var(--ink-line); }
.reg-form-compact { grid-template-columns: 1.6fr auto; max-width: 460px; }

.user-page { padding: 9rem 0 5rem; }
.user-form { display: grid; gap: 1rem; margin-top: 1rem; }
.user-form .btn-gold { justify-self: start; }
.user-flash {
    background: rgba(179, 34, 45, 0.08);
    border: 1px solid rgba(179, 34, 45, 0.35);
    color: #8f1d26;
    font-size: 0.8rem;
    padding: 0.7rem 1rem;
}
.user-alt { font-size: 0.8rem; color: #665d49; margin-top: 0.6rem; }
.user-alt a, .user-skip { color: #8a6d3a; }
.user-skip { display: inline-block; font-size: 0.8rem; margin-top: 0.8rem; margin-left: 1.2rem; }

/* ── Auth modal ───────────────────────────────────────────── */
.auth-modal {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    background: rgba(20, 17, 12, 0.55);
    backdrop-filter: blur(3px);
}
.auth-modal[hidden] { display: none; }
.auth-card {
    position: relative;
    width: 420px;
    max-width: 100%;
    max-height: 92vh;
    overflow-y: auto;
    background: #fffefa;
    border: 1px solid var(--ink-line);
    box-shadow: 0 30px 80px rgba(20, 17, 12, 0.35);
    padding: 2.2rem 2.4rem 2.4rem;
}
.am-close {
    position: absolute;
    top: 0.8rem; right: 1rem;
    background: none;
    border: none;
    font-size: 1.5rem;
    line-height: 1;
    color: #665d49;
    cursor: pointer;
}
.am-close:hover { color: #211d15; }
.am-tabs {
    display: flex;
    gap: 1.6rem;
    border-bottom: 1px solid var(--ink-line);
    margin-bottom: 1.4rem;
}
.am-tab {
    background: none;
    border: none;
    padding: 0 0 0.7rem;
    font-size: 0.72rem;
    font-weight: 400;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #665d49;
    cursor: pointer;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
}
.am-tab.active { color: #8a6d3a; border-bottom-color: #c9a96a; }

.am-title {
    font-family: var(--serif);
    font-weight: 300;
    font-size: 1.55rem;
    color: #211d15;
    margin-bottom: 1.2rem;
    line-height: 1.25;
}

/* .filter-input's chevron is for <select>s only — text fields lose it */
input.filter-input, textarea.filter-input {
    background-image: none;
    cursor: text;
}

.reg-form-compact { grid-template-columns: 1fr 1.3fr auto; max-width: 560px; }
@media (max-width: 575px) { .reg-form-compact { grid-template-columns: 1fr; } }

.req { color: #8a6d3a; font-size: 0.75rem; }

/* Password bullets were tiny/faint at the filter-input font size */
input.filter-input[type="password"] {
    font-size: 1.05rem;
    font-weight: 500;
    letter-spacing: 0.22em;
    color: #211d15;
}

/* ── Inquiry modal extras ─────────────────────────────────── */
.inq-prop { font-size: 0.8rem; color: #665d49; letter-spacing: 0.05em; margin-bottom: 1rem; }
.inq-prefs { border: none; padding: 0; margin: 0; }
.inq-prefs legend { margin-bottom: 0.5rem; float: none; width: auto; font-size: 0.62rem; }
.inq-opt { text-transform: none; letter-spacing: 0.04em; color: #8b8172; }
.inq-check {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin-right: 1.4rem;
    font-size: 0.8rem;
    color: #3f3a2e;
    cursor: pointer;
}
.inq-check input { accent-color: #8a6d3a; }
.inq-sms { font-size: 0.65rem; line-height: 1.5; color: #8b8172; margin: 0.6rem 0 0; }
textarea.filter-input { resize: vertical; min-height: 90px; }

/* ── Sticky broker/contact card on listing pages ─────────── */
.detail-side-sticky { position: sticky; top: 84px; }
@media (max-width: 991px) { .detail-side-sticky { position: static; } }

/* ── Admin: FUB participant ──────────────────────────────── */
.admin-fub {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    font-size: 0.95rem;
    font-weight: 500;
    letter-spacing: 0.06em;
    color: #211d15;
    margin: 0.4rem 0 1.1rem;
}
.admin-fub input { width: 18px; height: 18px; accent-color: #8a6d3a; }
.at-fub { text-align: center; }
.fub-yes { color: #2e7d43; font-size: 1.05rem; font-weight: 600; }

/* Facts inside the left column (summary now lives beside the sticky card) */
.detail-head .facts-row .col-md-2 { flex: 0 0 auto; width: 19%; min-width: 105px; }
@media (max-width: 767px) { .detail-head .facts-row .col-md-2 { width: 50%; } }

/* ── Search card refresh ─────────────────────────────────── */
.project-body-flex { display: flex; flex-direction: column; align-items: flex-start; }
.project-cityline {
    font-size: 0.78rem;
    color: #665d49;
    margin: 0.15rem 0 0.6rem;
}
.project-cta-btn {
    display: inline-block;
    margin-top: 0.9rem;
    padding: 0.55rem 1.4rem;
    border: 1px solid #c9a96a;
    color: #8a6d3a;
    font-size: 0.66rem;
    font-weight: 400;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    transition: all 0.35s ease;
}
a.project-card:hover .project-cta-btn { background: #c9a96a; color: #211d15; }
.card-courtesy-bottom {
    margin-top: auto;
    align-self: flex-end;
    padding-top: 0.9rem;
    margin-bottom: 0;
    font-size: 0.62rem;
    letter-spacing: 0.08em;
    color: #8b8172;
    text-align: right;
}

/* Card CTA: pinned lower-right; company sits under the specs line */
.project-body-flex .project-cta-btn { margin-top: auto; align-self: flex-end; }
.project-body-flex .card-courtesy { margin: 0.35rem 0 0.9rem; }

/* Card spacing tune */
.project-body { padding: 1rem; }
.project-body-flex .card-courtesy { margin-bottom: 1.5rem; }

/* Sidebar headshots: rectangular */
.detail-side .agent-headshot,
.detail-side .agent-avatar { border-radius: 3px; }

/* Sidebar agent: square-cornered face crop, name tucked up */
.detail-side .agent-headshot,
.detail-side .agent-avatar { border-radius: 0; }
.detail-side .side-agent { margin-top: -6px; }

/* Admin photo previews + face cropper */
.photo-preview { margin-top: 0.7rem; }
.photo-preview img { max-width: 140px; max-height: 180px; border: 1px solid var(--ink-line); display: block; }
.photo-preview-sq img { width: 140px; height: 140px; object-fit: cover; }
.face-crop-stage { margin-top: 0.7rem; max-width: 100%; }
.face-crop-stage img { display: block; max-width: 100%; max-height: 340px; }

/* Full logo in nav; stacked MLS attribution */
.nav-brand-full { height: 46px; width: auto; display: block; }
.listing-attribution .mls-logo { display: block; margin-bottom: 0.7rem; }
.attribution-line {
    font-size: 0.72rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #665d49;
    margin: 0 0 0.35rem;
}

/* Attribution under the sticky broker box */
.detail-side-sticky .listing-attribution .mls-logo { max-width: 140px; }
.detail-side-sticky .listing-attribution .attribution-line { font-size: 0.62rem; }

/* ── Nav: 75px-tall logo; taller fixed bar → push offsets down ── */
.nav-brand-full { height: 75px; width: auto; }
.site-nav.scrolled { padding: 0.5rem 0; }
.nav-icon { display: inline-flex; align-items: center; font-size: 0.95rem; }
.nav-icon svg { display: block; }

/* Fixed-nav clearance: bar is now ~91px tall */
.search-split { padding-top: 92px; }
.search-results-head { top: 0; padding-top: 108px; margin-top: -108px; }
.search-map { top: 92px; height: calc(100vh - 92px); }
.detail-side-sticky { top: 108px; }
.detail-gallery { padding-top: 100px; }

/* Back link above page titles */
.back-link {
    display: inline-block;
    font-size: 0.66rem;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: #8a6d3a;
    text-decoration: none;
    margin-bottom: 1.1rem;
}
.back-link:hover { color: #211d15; }

/* Attribution: natural logo proportions, darker readable text */
.detail-side-sticky .listing-attribution .mls-logo {
    height: auto;
    width: auto;
    max-width: 170px;
    opacity: 1;
}
.detail-side-sticky .listing-attribution .attribution-line { color: #3f3a2e; }

/* ═══ Home page ═══════════════════════════════════════════ */
.home-hero {
    position: relative;
    min-height: 88vh;
    display: flex;
    align-items: center;
    background: url('../img/home-hero.jpg') center 35% / cover no-repeat;
}
.home-hero::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(20,17,12,0.35) 0%, rgba(20,17,12,0.15) 45%, rgba(20,17,12,0.55) 100%);
}
.home-hero-inner {
    position: relative;
    z-index: 2;
    text-align: center;
    color: #fff;
    padding-top: 91px;   /* fixed nav */
}
.home-hero-inner .eyebrow { color: #e6cfa2; }
.home-hero-title {
    font-family: var(--serif);
    font-weight: 300;
    font-size: clamp(2.4rem, 5.5vw, 4.2rem);
    line-height: 1.15;
    color: #fff;
    text-shadow: 0 2px 24px rgba(20,17,12,0.45);
    margin-bottom: 2.2rem;
}
.home-search { max-width: 640px; margin: 0 auto; position: relative; }
.home-search-bar {
    display: flex;
    background: rgba(255, 254, 250, 0.97);
    border: 1px solid rgba(201,169,106,0.6);
    padding: 0.4rem;
    box-shadow: 0 18px 50px rgba(20,17,12,0.35);
}
.home-search-bar input {
    flex: 1;
    border: none;
    background: none;
    outline: none;
    padding: 0.7rem 1.1rem;
    font-family: var(--sans);
    font-size: 0.9rem;
    color: #211d15;
}
.home-search-bar .btn-gold { padding: 0.7rem 2rem; background: #c9a96a; color: #211d15; border-color: #c9a96a; }
.home-search-bar .btn-gold:hover { background: #b6945a; border-color: #b6945a; }
.suggest-panel.home-suggest {
    position: absolute;
    top: calc(100% + 4px);
    left: 0; right: 0;
    z-index: 30;
    text-align: left;
    max-height: 320px;
    overflow-y: auto;
}
.home-quick-links {
    margin-top: 1.4rem;
    font-size: 0.72rem;
    letter-spacing: 0.34em;
}
.home-quick-links a { color: #fff; text-decoration: none; opacity: 0.9; }
.home-quick-links a:hover { color: #e6cfa2; }
.home-quick-links span { margin: 0 0.9rem; opacity: 0.5; }

/* ═══ Info pages + leadership ═════════════════════════════ */
.info-page { padding: 10rem 0 6rem; }
.info-subtitle {
    font-family: var(--serif);
    font-weight: 300;
    font-size: 1.9rem;
    color: #211d15;
    margin-bottom: 1rem;
}
/* Leadership cards (2026-10-01): same full-portrait card as the Brokers page
   (.broker-card / .broker-photo / .broker-body), plus phone + email. It's a
   <div>, so the photo, name and CTA carry the profile link. */
.leader-card .leader-photo-link { display: block; text-decoration: none; }
.leader-card .broker-name a { color: inherit; text-decoration: none; }
.leader-card .broker-name a:hover { color: #8a6d3a; }
.leader-card .project-cta { text-decoration: none; }
.leader-card:hover .project-cta { color: var(--gold); }
.leader-contact { font-size: 0.8rem; line-height: 1.7; margin-bottom: 0.8rem; }
.leader-contact a { color: #564e3c; text-decoration: none; }
.leader-contact a:hover { color: #8a6d3a; }

/* Footer link row */
.footer-links { border-top: 1px solid var(--ink-line); padding: 1.4rem 0; }
.footer-links a {
    font-size: 0.66rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #665d49;
    text-decoration: none;
    margin-right: 2.2rem;
}
.footer-links a:hover { color: #8a6d3a; }

/* ── Nav breathing room + shrink-on-scroll ─────────────── */
/* CREN: the full logo (with the brokerage name) stays visible at all times,
   so shrinking scales it down instead of swapping to the M mark. 52px keeps
   the name line legible. */
.site-nav.scrolled { padding: 0.9rem 0; }
.nav-brand-full { transition: height 0.35s ease; }
.site-nav.shrunk { padding: 0.35rem 0; }
.site-nav.shrunk .nav-brand-full { height: 52px; }

/* Fixed-nav clearance for the roomier bar (~104px tall at rest).
   --nav-h is the bar's resting height; phones set a smaller one at the
   end of this file (2026-10-15), so every offset below follows it. */
:root { --nav-h: 104px; }
.search-split { padding-top: var(--nav-h); }
.search-results-head { padding-top: calc(var(--nav-h) + 16px); margin-top: calc(-1 * (var(--nav-h) + 16px)); }
.search-map { top: var(--nav-h); height: calc(100vh - var(--nav-h)); }
.detail-side-sticky { top: calc(var(--nav-h) + 16px); }
.detail-gallery { padding-top: calc(var(--nav-h) + 8px); }
.home-hero-inner { padding-top: var(--nav-h); }

/* ── Hero: full height, stronger scrim, tagline ─────────── */
.home-hero { min-height: 100vh; }
.home-hero::after {
    background: linear-gradient(180deg,
        rgba(20, 17, 12, 0.55) 0%,
        rgba(20, 17, 12, 0.35) 45%,
        rgba(20, 17, 12, 0.72) 100%);
}
.home-quick-links {
    color: #fff;
    opacity: 0.92;
    font-size: 0.72rem;
    letter-spacing: 0.34em;
    text-transform: uppercase;
}

/* Featured section: no underline on the View All button, smaller title */
a.project-cta-btn { text-decoration: none; }
.home-page .section-title { font-size: clamp(1.7rem, 3vw, 2.4rem); }

/* ── Per-MLS disclaimer band on listing pages ─────────────── */
.mls-disclaimer {
    border-top: 1px solid var(--ink-line);
    padding: 2rem 0 1.6rem;
    background: #f3efe6;
}
.mls-disclaimer .mls-logo { height: auto; width: auto; max-width: 150px; margin-bottom: 0.8rem; opacity: 1; }
.mls-disclaimer p {
    font-size: 0.68rem;
    line-height: 1.7;
    color: #6a6250;
    max-width: 960px;
    margin: 0 0 0.4rem;
}
.mls-disclaimer-meta { font-style: italic; }

/* Anyprop trial page: favorites are wired to the primary tables — hide hearts */
.ap-page .fav-btn { display: none; }

/* ═══════════════════════════════════════════════════════════════
   POLISH PASS (Sep 19, 2026) — breathing room + listing page v2
   ═══════════════════════════════════════════════════════════════ */

/* More edge padding so content never hugs the viewport when it shrinks */
.container-xl { padding-left: 2.25rem; padding-right: 2.25rem; }
@media (max-width: 575px) { .container-xl { padding-left: 1.4rem; padding-right: 1.4rem; } }

/* Listing page: calmer address headline */
.detail-head .section-title { font-size: clamp(1.55rem, 2.6vw, 2.25rem); }

/* ── Sticky section submenu (below the photo grid) ── */
.listing-subnav {
    position: sticky;
    top: 0;
    z-index: 900;
    background: var(--ink);
    border-top: 1px solid var(--ink-line);
    border-bottom: 1px solid var(--ink-line);
}
.listing-subnav-inner {
    display: flex;
    align-items: center;
    gap: 2.2rem;
    overflow-x: auto;
    scrollbar-width: none;
    padding: 0.95rem 0;
}
.listing-subnav-inner::-webkit-scrollbar { display: none; }
.listing-subnav a {
    font-family: var(--sans);
    font-size: 0.68rem;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: #564e3c;
    text-decoration: none;
    white-space: nowrap;
    transition: color 0.25s ease;
}
.listing-subnav a:hover { color: var(--gold-soft); }
.listing-subnav .subnav-back { margin-left: auto; color: var(--gold-soft); }
.lst-anchor { scroll-margin-top: 130px; }

/* ── Agent box v2: bigger presence, inline inquiry form ── */
.detail-side { padding: 2.5rem 2.3rem; }
.detail-side .agent-row { align-items: center; gap: 1.3rem; margin-bottom: 1.6rem; }
.detail-side .agent-headshot,
.detail-side .agent-avatar { width: 92px; height: 92px; }
.detail-side .agent-avatar { font-size: 1.6rem; }
.detail-side .side-agent { font-size: 1.55rem; margin-top: 0; }
.detail-side .side-office { margin-top: 0.2rem; margin-bottom: 0.45rem; }
.detail-side .agent-contact { display: block; font-size: 0.8rem; }
.side-inq-head {
    font-size: 0.7rem;
    font-weight: 400;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--gold-soft);
    margin: 0 0 1.1rem;
}
.side-form-rule {
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--gold), transparent);
    margin: 0.4rem 0 1.6rem;
}
.detail-side .user-form .filter-pop-field { margin-bottom: 0.85rem; }
.detail-side .user-form .filter-input { padding: 0.55rem 0.75rem; font-size: 0.85rem; }
.detail-side .user-form textarea.filter-input { min-height: 88px; }
.detail-side .user-form .btn-gold { width: 100%; padding: 0.85rem 1rem; }

/* ── Price History: no stray rule, roomier rows, lives in the left column ── */
.price-history { border-top: none; }
.ph-tbl th { padding: 0.75rem 1rem 0.75rem 0; }
.ph-tbl td { padding: 1.15rem 1rem 1.15rem 0; }

/* Sticky sidebar clears the new listing submenu */
.detail-side-sticky { top: 150px; }
@media (max-width: 991px) { .detail-side-sticky { position: static; } }

/* ── Broker sidebar v3: no card — floating agent info + Inquire / Save / Share ── */
.detail-side {
    background: transparent;
    border: none;
    padding: 0.5rem 0 0 0.5rem;
}
.detail-side .agent-contact {
    overflow-wrap: anywhere;
    word-break: break-word;
}
.side-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.6rem;
    margin-top: 1.8rem;
}
.side-actions .side-act {
    width: 100%;
    padding: 0.85rem 0.5rem;
    letter-spacing: 0.22em;
    white-space: nowrap;
}
.side-actions .btn-gold.side-act { grid-column: 1 / -1; }
.btn-ghost {
    font-family: var(--sans);
    font-size: 0.72rem;
    font-weight: 400;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--cream-dim);
    background: transparent;
    border: 1px solid var(--ink-line);
    border-radius: 0;
    transition: all 0.45s ease;
}
.btn-ghost:hover {
    color: var(--gold);
    border-color: var(--gold);
}
.share-wrap { position: relative; }
.share-pop {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    min-width: 180px;
    background: var(--ink-soft);
    border: 1px solid var(--ink-line);
    box-shadow: 0 14px 34px rgba(20, 16, 8, 0.14);
    z-index: 950;
    padding: 0.4rem 0;
}
.share-item {
    display: block;
    width: 100%;
    text-align: left;
    background: none;
    border: none;
    font-family: var(--sans);
    font-size: 0.78rem;
    letter-spacing: 0.06em;
    color: var(--cream);
    text-decoration: none;
    padding: 0.55rem 1.1rem;
    transition: background 0.25s ease, color 0.25s ease;
}
.share-item:hover { background: rgba(168, 135, 78, 0.08); color: var(--gold); }

/* Inquire modal: match auth modal, slightly wider for the message field */
#inqModal .auth-card { width: 460px; }
#inqModal .am-title { font-size: 1.35rem; line-height: 1.3; }
#inqModal .filter-pop-field { margin-bottom: 0.85rem; }
#inqModal .filter-input { padding: 0.55rem 0.75rem; font-size: 0.85rem; }
#inqModal textarea.filter-input { min-height: 88px; }
#inqModal .btn-gold { width: 100%; padding: 0.85rem 1rem; }

/* ── Share popover v2: classic social row (circle icons + labels) ── */
.share-pop {
    min-width: 0;
    width: max-content;
    max-width: min(92vw, 420px);
    padding: 1.1rem 1.3rem 1.15rem;
}
.share-head {
    font-family: var(--sans);
    font-size: 0.62rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--cream-dim);
    margin-bottom: 0.9rem;
}
.share-row {
    display: flex;
    flex-wrap: wrap;
    gap: 1.05rem;
}
.share-circ {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.45rem;
    background: none;
    border: none;
    padding: 0;
    text-decoration: none;
    color: var(--cream);
    cursor: pointer;
}
.share-circ .share-ic {
    width: 46px;
    height: 46px;
    border: 1px solid var(--ink-line);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.35s ease;
}
.share-circ .share-ic svg { width: 18px; height: 18px; display: block; }
.share-circ:hover .share-ic { border-color: var(--gold); color: var(--gold); }
.share-lbl {
    font-family: var(--sans);
    font-size: 0.62rem;
    letter-spacing: 0.06em;
    color: var(--cream-dim);
    white-space: nowrap;
}

/* ── Listing subnav v2: dark gold bar, light text ── */
.listing-subnav {
    background: #7d6234;
    border-top: 1px solid #6a5229;
    border-bottom: 1px solid #6a5229;
}
.listing-subnav a {
    color: #ead9b8;
}
.listing-subnav a:hover { color: #ffffff; }
.listing-subnav .subnav-back { color: #f7efdd; }
.listing-subnav .subnav-back:hover { color: #ffffff; }

/* ── Listing subnav v3: gold bar kept to container width ── */
.listing-subnav {
    background: transparent;
    border-top: none;
    border-bottom: none;
}
.listing-subnav-inner {
    background: #7d6234;
    border: 1px solid #6a5229;
    padding: 0.95rem 1.6rem;
}

/* ── Listing subnav v4: quiet bar, floating hover underline ── */
.listing-subnav {
    background: var(--ink);            /* page ivory — reads as no background, stays legible when stuck */
    border-top: none;
    border-bottom: none;
}
.listing-subnav-inner {
    position: relative;
    background: transparent;
    border: none;
    gap: 2.6rem;
    padding: 1.45rem 0 1.55rem;        /* breathing room */
}
.listing-subnav a { color: #564e3c; }
.listing-subnav a:hover { color: var(--gold); }
.listing-subnav .subnav-back { color: var(--gold-soft); }
.listing-subnav .subnav-back:hover { color: var(--gold); }
.subnav-glide {
    position: absolute;
    bottom: 1rem;
    left: 0;
    width: 0;
    height: 3px;
    background: var(--gold);
    opacity: 0;
    transition: left 0.32s cubic-bezier(0.4, 0, 0.2, 1), width 0.32s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.22s ease;
    pointer-events: none;
}

/* More air between the fixed main nav and the photo grid */
.detail-gallery { padding-top: calc(76px + 2.5rem); }

/* ── Compass-style stat tiles (listing overview) ── */
.stat-tiles {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 0.8rem;
    margin-top: 1.8rem;
}
.stat-tile {
    background: var(--ink-soft);
    border: 1px solid var(--ink-line);
    padding: 1.05rem 1.25rem;
}
.stat-value {
    font-family: var(--serif);
    font-size: 1.3rem;
    color: var(--cream);
    margin: 0 0 0.2rem;
}
.stat-label {
    font-family: var(--sans);
    font-size: 0.62rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--cream-dim);
    margin: 0;
}

/* ── Listing attribution (below Location map, Compass style) ── */
.attrib-dom {
    font-family: var(--sans);
    font-size: 0.95rem;
    color: var(--cream);
    margin-bottom: 1.1rem;
}
.attrib-dom strong { font-weight: 500; }
.attrib-agent {
    display: flex;
    align-items: center;
    gap: 1.1rem;
    margin-bottom: 1.1rem;
}
.attrib-headshot {
    width: 64px;
    height: 64px;
    object-fit: cover;
}
.attrib-name {
    font-family: var(--serif);
    font-size: 1.2rem;
    color: var(--cream);
}
/* MLS attribution: same size/color as the Broker Associate line (.side-office) */
.attrib-line {
    font-family: var(--sans);
    font-size: 0.68rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--cream-dim);
    margin-bottom: 0.35rem;
}
.attrib-contact { color: var(--cream-dim); text-decoration: none; }
.attrib-contact:hover { color: var(--gold); }
.attrib-meta { margin-top: 0.2rem; }

/* ── Compact overview header (Compass-style) ── */
.detail-headline {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.6rem 2.5rem;
}
.detail-head .detail-title { font-size: clamp(1.4rem, 2.1vw, 1.85rem); }
.detail-specline {
    font-family: var(--sans);
    font-size: 0.72rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--cream-dim);
    margin-top: 0.45rem;
}
.detail-price-right { text-align: right; margin-top: 0.2rem; }
@media (max-width: 767px) { .detail-price-right { text-align: left; } }

/* Tighter stat tiles */
.stat-tiles {
    margin-top: 1.5rem;
    gap: 0.6rem;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
}
.stat-tile { padding: 0.7rem 0.95rem; }
.stat-value { font-size: 1.1rem; margin-bottom: 0.1rem; }
.stat-label { font-size: 0.58rem; }

/* Inline MLS disclaimer (below Price History) */
.mls-disclaimer-inline {
    background: transparent;
    border-top: none;
    padding: 0;
}
.mls-disclaimer-inline .mls-logo { max-width: 110px; margin-bottom: 0.6rem; }

/* ── Overview header v2: larger address + spec line, city on its own line ── */
.detail-head .detail-title { font-size: clamp(1.65rem, 2.6vw, 2.25rem); }
.detail-specline {
    font-size: 0.82rem;
    letter-spacing: 0.18em;
    color: #4d4636;
    margin-top: 0.55rem;
}

/* ── Attribution: MH agents get bolder names + readable contact info ── */
.attrib-name { font-size: 1.3rem; }
.attrib-name .agent-name-link { font-weight: 500; color: var(--cream); text-decoration: none; }
.attrib-name .agent-name-link:hover { color: var(--gold); }
.attrib-agent + .attrib-agent { margin-top: 0.4rem; }
.attrib-contact-line {
    text-transform: none;
    letter-spacing: 0.05em;
    font-size: 0.8rem;
    margin-top: 0.15rem;
}
.attrib-avatar { width: 64px; height: 64px; font-size: 1.2rem; }

/* Hide the little gold divider dashes on listing pages (spacing kept) */
.detail-head .gold-rule { background: none; }

/* ── Buttons: never underlined (Virtual Tour is an <a>) ── */
a.btn-gold, a.btn-ghost, .btn-gold, .btn-ghost,
a.btn-gold:hover, a.btn-ghost:hover { text-decoration: none; }

/* (vertical sidebar rule tried Sep 20 — didn't work, removed) */

/* ── Sidebar actions now sit ABOVE the agent ── */
.side-actions { margin-top: 0; margin-bottom: 2rem; }

/* Headline: keep price on the right even with longer addresses */
.detail-headline { flex-wrap: nowrap; }
.detail-headline-main { flex: 1 1 auto; min-width: 0; }
.detail-headline .detail-price-right { flex: 0 0 auto; }
@media (max-width: 767px) { .detail-headline { flex-wrap: wrap; } }

/* ── Sidebar order: Save/Share on top, Inquire below the agent ── */
.side-actions .btn-gold.side-act { grid-column: auto; }   /* (legacy rule neutralized) */
.side-inquire { display: block; width: 100%; margin-top: 2rem; }

/* ── Site footer v2: dark band, stacked logo, links, contact form, legal ── */
.site-footer-v2 {
    background: #211c13;
    padding: 5rem 0 3rem;
    margin-top: 6rem;
}
.site-footer-v2 .footer-logo {
    height: 120px;
    width: auto;
    filter: none;                 /* white logo stays white on the dark band */
    opacity: 1;
    margin-bottom: 1.4rem;
    display: block;
}
.footer-blurb {
    font-size: 0.82rem;
    line-height: 1.8;
    color: #b3aa97;
    max-width: 340px;
}
.footer-head {
    font-family: var(--sans);
    font-size: 0.66rem;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 1.1rem;
}
.footer-link {
    display: block;
    font-family: var(--sans);
    font-size: 0.8rem;
    color: #cfc7b4;
    text-decoration: none;
    padding: 0.28rem 0;
    transition: color 0.3s ease;
}
.footer-link:hover { color: #ffffff; }
.footer-input {
    display: block;
    width: 100%;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid #453b28;
    color: #efe9db;
    font-family: var(--sans);
    font-size: 0.85rem;
    padding: 0.6rem 0.8rem;
    margin-bottom: 0.7rem;
    border-radius: 0;
}
.footer-input::placeholder { color: #8d846f; }
.footer-input:focus { outline: none; border-color: var(--gold); background: rgba(255, 255, 255, 0.08); }
.footer-send { padding: 0.7rem 2.2rem; }
.footer-form-error { color: #d99a8a; font-size: 0.78rem; }
.footer-rule {
    height: 1px;
    background: #3a3220;
    margin: 3.5rem 0 2rem;
}
.site-footer-v2 .footer-legal {
    color: #857c68;
    max-width: 960px;
    margin-bottom: 0.6rem;
    line-height: 1.7;
}
@media (max-width: 767px) { .site-footer-v2 .footer-logo { height: 96px; } }

/* Filters button caret: crisp SVG chevron, vertically centered */
.filter-caret {
    width: 11px;
    height: 8px;
    margin-left: 0.5rem;
    vertical-align: middle;
    position: relative;
    top: -1px;
}

/* Footer brand column: offices + contact under the blurb */
.footer-contact-info { margin-top: 1.6rem; }
.footer-address {
    font-family: var(--sans);
    font-size: 0.78rem;
    line-height: 1.7;
    color: #cfc7b4;
    margin-bottom: 0.9rem;
}
.footer-contact-link { color: #cfc7b4; text-decoration: none; transition: color 0.3s ease; }
.footer-contact-link:hover { color: var(--gold); }

/* ── Sell page components ── */
.sell-leads { margin-top: 1.4rem; }
.sell-lead-item {
    font-family: var(--serif);
    font-size: 1.1rem;
    color: var(--cream);
    padding: 0.85rem 0;
    border-bottom: 1px solid var(--ink-line);
    margin: 0;
}
.sell-lead-item:first-child { border-top: 1px solid var(--ink-line); }
.sell-sales {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 0.6rem;
    margin-top: 1.6rem;
}
.sell-sale {
    background: var(--ink-soft);
    border: 1px solid var(--ink-line);
    padding: 1rem 1.2rem;
}
.sell-sale-price {
    display: block;
    font-family: var(--serif);
    font-size: 1.3rem;
    color: var(--cream);
}
.sell-sale-label {
    font-family: var(--sans);
    font-size: 0.62rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--cream-dim);
}
.sell-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 0.8rem;
    margin-top: 1.8rem;
}
.sell-card {
    background: var(--ink-soft);
    border: 1px solid var(--ink-line);
    border-top: 2px solid var(--gold);
    padding: 1.6rem 1.5rem;
}
.sell-card-title {
    font-family: var(--serif);
    font-size: 1.25rem;
    color: var(--cream);
    margin-bottom: 0.6rem;
}
.sell-card-copy {
    font-family: var(--sans);
    font-size: 0.84rem;
    line-height: 1.75;
    color: var(--cream-dim);
    margin: 0;
}
.sell-services {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 1.6rem 2.2rem;
    margin-top: 1.8rem;
}
.sell-service-title {
    font-family: var(--serif);
    font-size: 1.15rem;
    color: var(--cream);
    margin-bottom: 0.4rem;
}
.sell-phone {
    font-family: var(--sans);
    font-size: 0.8rem;
    letter-spacing: 0.08em;
    color: var(--cream-dim);
    text-decoration: none;
    margin-left: 1.4rem;
}
.sell-phone:hover { color: var(--gold); }

/* ── Sell page photo bands ── */
.sell-photo {
    margin: 3rem 0 0.5rem;
}
.sell-photo img {
    width: 100%;
    height: auto;
    display: block;
}
.sell-photo figcaption {
    font-family: var(--sans);
    font-size: 0.6rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--cream-dim);
    padding-top: 0.55rem;
}

/* ── Headshots sit at the top of their frame (2026-09-27) ─────────────────
   object-fit: cover centres by default, which cuts the head off a standing
   shot. Faces are near the top, so every frame that holds a person aligns
   there. Listing and gallery photos stay centred: a house looks right in the
   middle of its frame. */
.broker-photo img,
.broker-hero-photo img,
.agent-headshot,
.attrib-headshot,
.leader-photo img,
.photo-preview-sq img,
.at-photo img { object-position: 50% 0; }

/* ── Broker page: agents rail + list-style listings ── */
.agents-rail {
    position: sticky;
    top: 130px;
    border-left: 1px solid var(--ink-line);
    padding-left: 1.6rem;
}
.agents-rail-link {
    display: block;
    font-family: var(--sans);
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    color: var(--cream-dim);
    text-decoration: none;
    padding: 0.3rem 0;
    transition: color 0.25s ease;
}
.agents-rail-link:hover { color: var(--gold); }
.agents-rail-link.active { color: var(--cream); font-weight: 500; }

.broker-list { border-top: 1px solid var(--ink-line); }
.bl-row {
    display: flex;
    gap: 1.6rem;
    align-items: center;
    padding: 1.3rem 0;
    border-bottom: 1px solid var(--ink-line);
    text-decoration: none;
    transition: background 0.25s ease;
}
.bl-row:hover { background: rgba(168, 135, 78, 0.05); }
.bl-thumb {
    flex: 0 0 190px;
    height: 128px;
    overflow: hidden;
    background: var(--ink-soft);
}
.bl-thumb > img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* No photo (Anyprop carries none for some closed listings): a quiet tile with a small mark,
   not the mark stretched to fill the thumb (Noah's solds, 2026-10-04) */
.bl-thumb .media-empty { aspect-ratio: auto; height: 100%; background: #ece7db; }
.bl-thumb .media-empty img { width: 30px; height: auto; opacity: 0.6; }
/* Sold rows without a photo (2026-10-18): Street View via sv.php, else the same plain panel as cards. */
.bl-price {
    font-family: var(--serif);
    font-size: 1.35rem;
    color: var(--cream);
}
.bl-was {
    font-family: var(--sans);
    font-size: 0.78rem;
    color: var(--cream-dim);
    text-decoration: line-through;
    margin-left: 0.5rem;
}
.bl-addr { font-family: var(--sans); font-size: 0.9rem; color: #3f3a2e; margin-top: 0.15rem; }
.bl-specs {
    font-family: var(--sans);
    font-size: 0.68rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--cream-dim);
    margin-top: 0.3rem;
}
.bl-status {
    font-family: var(--sans);
    font-size: 0.68rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--gold);
    margin-top: 0.3rem;
}
@media (max-width: 575px) {
    .bl-row { gap: 1rem; }
    .bl-thumb { flex-basis: 116px; height: 84px; }
    .bl-price { font-size: 1.15rem; }
}

/* ── Broker cards: one baseline for "View Profile" (2026-09-28) ──────────
   Titles run to three lines for some brokers and one for others, which left
   the CTA floating at a different height in every card of a row. The card is
   already full-height in its column, so make the body a column and push the
   CTA to the bottom of it. Titles break where the marketing portal says
   (agent_title_html), so they no longer split mid-phrase either. */
.broker-card { display: flex; flex-direction: column; }
.broker-photo { flex: 0 0 auto; }
.broker-body  { display: flex; flex-direction: column; flex: 1 1 auto; }
.broker-body .project-cta { margin-top: auto; padding-top: 0.2rem; }
.broker-title { text-wrap: pretty; }

/* ── MLS compliance blocks on result pages (compact variant) ── */
.mls-disclaimer-compact { margin-top: 3rem; }
.mls-disclaimer-compact + .mls-disclaimer-compact { margin-top: 1.6rem; }
.mls-disclaimer-compact .mls-logo { max-width: 96px; margin-bottom: 0.5rem; }
.mls-disclaimer-compact p { font-size: 0.62rem; line-height: 1.7; }
.mls-updated { margin-top: 0.8rem; font-size: 0.62rem; }

/* ── Sold display: sold-date photo badge (2026-09-29) ──────
   Broker Sold rows and Closed listing headers: sale price with the list
   price struck through (no % chip — reads too negative). */
.bl-thumb { position: relative; }
.bl-sold-badge {
    position: absolute;
    top: 0.5rem;
    left: 0.5rem;
    padding: 0.2rem 0.5rem;
    background: rgba(20, 18, 15, 0.72);
    color: #fff;
    font-family: var(--sans);
    font-size: 0.62rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    line-height: 1.3;
}
.detail-sold-was { margin-top: 0.25rem; }
.detail-sold-was .bl-was { font-size: 0.9rem; }
@media (max-width: 575px) {
    .bl-sold-badge { top: 0.3rem; left: 0.3rem; font-size: 0.55rem; padding: 0.15rem 0.35rem; }
}

/* ── Nav: responsive (2026-09-29) ───────────────────────────
   ≥1200 full spacing · 992–1199 tightened so the links stay on one line ·
   <992 hamburger + accordion panel (items were wrapping by ~1100px). */
.site-nav .nav-link { white-space: nowrap; }
@media (max-width: 1199.98px) {
    .site-nav .nav-link { font-size: 0.64rem; letter-spacing: 0.16em; padding: 0.4rem 0.65rem; }
}
.nav-burger {
    position: relative;
    width: 42px; height: 42px;
    padding: 0;
    background: none;
    border: 0;
    cursor: pointer;
}
.nav-burger span {
    position: absolute;
    left: 10px; right: 10px;
    height: 1.5px;
    background: #211c13;
    transition: transform 0.3s ease, opacity 0.2s ease;
}
.nav-burger span:nth-child(1) { top: 14px; }
.nav-burger span:nth-child(2) { top: 20.5px; }
.nav-burger span:nth-child(3) { top: 27px; }
.nav-open .nav-burger span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.nav-open .nav-burger span:nth-child(2) { opacity: 0; }
.nav-open .nav-burger span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }
.nav-mobile {
    max-height: calc(100vh - 120px);
    max-height: calc(100dvh - 120px);
    overflow-y: auto;
    margin-top: 0.6rem;
    padding: 0 1.5rem 1.5rem;
    border-top: 1px solid var(--ink-line);
}
.nav-m-link {
    display: block;
    padding: 0.95rem 0;
    border-bottom: 1px solid var(--ink-line);
    font-family: var(--sans);
    font-size: 0.72rem;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: #3f3a2e;
    text-decoration: none;
    cursor: pointer;
    list-style: none;
}
.nav-m-link:hover, .nav-m-sub a:hover, .nav-m-sub-links a:hover { color: #8a6d3a; }
.nav-mobile summary { list-style: none; }
.nav-mobile summary::-webkit-details-marker { display: none; }
summary.nav-m-link::after { content: '+'; float: right; font-size: 0.9rem; line-height: 1; }
details[open] > summary.nav-m-link::after { content: '\2212'; }
.nav-m-group[open] { border-bottom: 1px solid var(--ink-line); padding-bottom: 0.5rem; }
.nav-m-group[open] > summary.nav-m-link { border-bottom: 0; }
.nav-m-sub summary {
    padding: 0.55rem 0 0.55rem 0.9rem;
    font-family: var(--sans);
    font-size: 0.85rem;
    color: #3f3a2e;
    cursor: pointer;
}
.nav-m-sub summary::after { content: '\203A'; display: inline-block; margin-left: 0.4rem; color: #a0968a; transition: transform 0.2s ease; }
.nav-m-sub[open] summary::after { transform: rotate(90deg); }
.nav-m-sub a, .nav-m-sub-links a {
    display: block;
    padding: 0.4rem 0 0.4rem 1.9rem;
    font-family: var(--sans);
    font-size: 0.85rem;
    color: #665d49;
    text-decoration: none;
}
.nav-m-sub-links a { padding-left: 0.9rem; }
.nav-m-sub-links a.nav-m-sub2 { padding-left: 2.2rem; font-size: 0.8rem; }

/* Community pages + home intro + breadcrumbs (2026-10-18) */
.crumbs { font-family: var(--sans); font-size: 0.66rem; letter-spacing: 0.16em; text-transform: uppercase; color: #8b8572; margin-bottom: 1.25rem; }
.crumbs a { color: #7d6234; text-decoration: none; }
.crumbs a:hover { color: #8a6d3a; }
.crumb-sep { margin: 0 0.55rem; color: #b9b2a0; }
.community-stats { display: flex; flex-wrap: wrap; gap: 2.5rem; margin: 0 0 1.75rem; }
.community-stats .cs-num { display: block; font-family: var(--serif); font-size: 1.7rem; line-height: 1.1; color: #2b271f; }
.community-stats .cs-label { display: block; font-family: var(--sans); font-size: 0.62rem; letter-spacing: 0.22em; text-transform: uppercase; color: #8b8572; margin-top: 0.3rem; }
.community-intro { max-width: 820px; font-size: 0.95rem; line-height: 1.8; }
.community-intro p { margin-bottom: 1em; }
.community-intro p:last-child { margin-bottom: 0; }
.community-head { padding-bottom: 0; }
.community-head + .section-flush { padding-top: 2.5rem; }
.community-listings { padding-top: 3rem; }
.community-towns { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.community-town-pill { display: inline-block; padding: 0.5rem 1rem; border: 1px solid var(--ink-line); font-family: var(--sans); font-size: 0.68rem; letter-spacing: 0.18em; text-transform: uppercase; color: #564e3c; text-decoration: none; transition: border-color .2s, color .2s; }
.community-town-pill:hover, .community-town-pill--area { border-color: var(--gold); color: #8a6d3a; }
.community-map { width: 100%; height: 440px; background: #ece7db; border: 1px solid var(--ink-line); }
.community-hub-head { font-family: var(--serif); font-weight: 400; font-size: 1.35rem; margin-bottom: 0.6rem; }
.community-hub-head a { color: #2b271f; text-decoration: none; }
.community-hub-head a:hover { color: #8a6d3a; }
.community-hub-towns { list-style: none; padding: 0; margin: 0; }
.community-hub-towns li { padding: 0.22rem 0; }
.community-hub-towns a { font-family: var(--sans); font-size: 0.9rem; color: #564e3c; text-decoration: none; }
.community-hub-towns a:hover { color: #8a6d3a; }
.home-intro-copy { font-size: 0.95rem; line-height: 1.8; }
.home-intro-copy p { margin-bottom: 1em; }
.home-areas { list-style: none; padding: 0; margin: 0; }
.home-areas li { padding: 0.55rem 0; border-bottom: 1px solid var(--ink-line); }
.home-areas li a { display: block; font-family: var(--sans); font-size: 0.72rem; letter-spacing: 0.2em; text-transform: uppercase; color: #564e3c; text-decoration: none; }
.home-areas li a:hover { color: #8a6d3a; }
.home-areas li span { display: block; font-family: var(--sans); font-size: 0.8rem; color: #8b8572; margin-top: 0.15rem; }
.home-offices { margin-top: 1rem; font-size: 0.9rem; color: #564e3c; }
.home-offices a { color: #7d6234; }
@media (max-width: 575.98px) { .community-stats { gap: 1.25rem 2rem; } .community-stats .cs-num { font-size: 1.35rem; } .community-map { height: 300px; } }

/* Offices page (2026-10-18) */
.office-row { padding: 2rem 0; border-bottom: 1px solid var(--ink-line); }
.office-row:last-child { border-bottom: 0; }
.office-name { font-family: var(--serif); font-weight: 400; font-size: 1.6rem; margin-bottom: 0.75rem; }
.office-addr { font-size: 0.95rem; line-height: 1.7; color: #3f3a2e; margin-bottom: 0.5rem; }
.office-phone a { color: #7d6234; text-decoration: none; }
.office-directions, .office-directions:hover { text-decoration: none; color: #7d6234; }
.office-map { width: 100%; height: 280px; background: #ece7db; border: 1px solid var(--ink-line); }
.office-map-static { display: flex; align-items: center; justify-content: center; font-family: var(--sans); font-size: 0.7rem; letter-spacing: 0.18em; text-transform: uppercase; color: #8b8572; text-decoration: none; }
@media (max-width: 767.98px) { .office-map { height: 220px; } }

/* ── Listing attribution under the description (CREN review 2026-10-01) ──
   Listing firm + designated contact. Same size/colour as the description
   (1rem) — above the median listing-data size, as the IDX rules require. */
.listing-courtesy {
    margin: 0 0 0.35rem;
    font-family: var(--sans);
    font-size: 1rem;
    color: #3f3a2e;
}
/* One attribution block under the description (2026-10-01): days on market,
   courtesy line, then last-updated + source + MLS#. Short gold divider above. */
.attrib-divider { width: 56px; height: 1px; background: var(--gold); margin: 1.8rem 0 1.4rem; }
.listing-attrib .attrib-dom { margin-bottom: 0.5rem; }
.listing-attrib-meta {
    margin: 0;
    font-family: var(--sans);
    font-size: 0.85rem;
    color: #6a6250;
}

/* ── Card attribution (2026-10-01): "Listed by {firm}" on every card, MH
   included — CREN/Aspen/Vail require the listing firm wherever a listing shows.
   Small, last line of the card, under the View Property button. */
.card-listedby {
    align-self: stretch;
    margin: 0.85rem 0 0;
    font-family: var(--sans);
    font-size: 0.68rem;
    letter-spacing: 0.02em;
    color: #6a6250;
}

/* ── Communities: towns grouped by area, all areas visible (2026-10-01) ──
   No flyouts. Areas flow into 3 balanced columns; each heading (gold, links to
   a search of the whole area) sits over its towns and never splits a column. */
.nav-dd-panel.nav-dd-towns {
    width: 680px;
    column-count: 3;
    column-gap: 2.4rem;
    padding: 1.5rem 2rem 1.1rem;
    white-space: normal;
}
.nav-dd:hover .nav-dd-panel.nav-dd-towns,
.nav-dd.open .nav-dd-panel.nav-dd-towns { display: block; }
.nav-dd-area { break-inside: avoid; margin-bottom: 1.1rem; }
.nav-dd-towns a {
    display: block;
    padding: 0.3rem 0;
    font-size: 0.68rem;
    font-weight: 400;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #564e3c;
    text-decoration: none;
    transition: color 0.2s ease;
}
.nav-dd-towns a:hover { color: #8a6d3a; }
.nav-dd-towns a.nav-dd-area-head {
    margin-bottom: 0.25rem;
    padding: 0 0 0.4rem;
    border-bottom: 1px solid var(--ink-line);
    font-family: var(--serif);
    font-size: 1.02rem;
    letter-spacing: 0.01em;
    text-transform: none;
    color: #8a6d3a;
}
.nav-dd-towns a.nav-dd-area-head:hover { color: #211d15; }
.nav-m-area {
    display: block;
    margin: 0.8rem 0 0.15rem 0.9rem;
    font-family: var(--serif);
    font-size: 1rem;
    color: #8a6d3a;
    text-decoration: none;
}
.nav-m-towns { display: grid; grid-template-columns: 1fr 1fr; column-gap: 1rem; }

/* ── Agents page search (2026-10-01) ── */
.agent-search { max-width: 420px; margin: 0 0 1.8rem; }
.agent-search input {
    width: 100%;
    padding: 0.75rem 1rem;
    background: #fff;
    border: 1px solid var(--ink-line);
    font-family: var(--sans);
    font-size: 0.9rem;
    color: #3f3a2e;
    outline: none;
    transition: border-color 0.25s ease;
}
.agent-search input:focus { border-color: var(--gold); }
.agent-nomatch { margin: 1rem 0 2rem; }
[data-search][hidden] { display: none !important; }

/* ── Non-MH listings: inline "Inquire about this property" form, Contact Agent reveal (2026-10-02) ── */
.side-inq { margin-top: 0.4rem; }
.side-inq .user-form { margin-top: 0; gap: 0.75rem; }
.side-inq .user-form .filter-pop-field { margin-bottom: 0; }
.side-inq .inq-check { margin-right: 1rem; }
.side-inq #inqThanks .lead-serif { font-size: 1.1rem; }
.side-contact { margin-top: 1.6rem; }
.side-contact-btn { display: block; width: 100%; }
.side-contact-card { margin-top: 1.4rem; padding-top: 1.4rem; border-top: 1px solid var(--ink-line); }
.detail-side-sticky.no-stick { position: static; }

/* ── Listing page polish (Nikki, 2026-10-03) ─────────────────────────────── */
/* Sidebar form heading: centred, roomier, no divider: it belongs to the form */
.side-inq-head {
    text-align: center;
    font-size: 0.8rem;
    line-height: 1.8;
    letter-spacing: 0.22em;
    margin: 0 0 1.2rem;
}
.side-inq .side-form-rule { display: none; }

/* Description: 14px, tighter leading, paragraphs with a gap between them */
.detail-head .body-copy { font-size: 0.875rem; line-height: 1.75; margin-bottom: 1.1rem; }
.detail-head .body-copy:last-of-type { margin-bottom: 0; }

/* Hero photo overlays + "1/N" counter: phones only */
.gz-overlay { display: none; }
@media (max-width: 767px) {
    .gz-overlay { display: block; position: absolute; inset: 0; pointer-events: none; }
    .gz-overlay-btns { position: absolute; top: 0.8rem; right: 0.8rem; display: flex; gap: 0.5rem; pointer-events: auto; }
    .gz-ob {
        width: 42px; height: 42px; border-radius: 50%;
        background: rgba(255,255,255,0.92); border: 1px solid rgba(201,169,106,0.5);
        color: #8a6d3a; font-size: 1.15rem; line-height: 1;
        display: flex; align-items: center; justify-content: center;
        box-shadow: 0 2px 10px rgba(20,16,8,0.18); cursor: pointer;
    }
    .gz-ob svg { width: 18px; height: 18px; }
    .gz-counter {
        position: absolute; right: 0.8rem; bottom: 0.8rem;
        background: rgba(255,255,255,0.92); color: #211d15;
        font-family: var(--sans); font-size: 0.72rem; letter-spacing: 0.08em;
        padding: 0.35rem 0.8rem; border-radius: 999px; pointer-events: none;
    }
    .gz-grid { position: relative; }
    /* Section submenu hidden on phones; headline tucked up under the photo */
    .listing-subnav { display: none; }
    .detail-head { padding-top: 1.4rem; }
    .detail-head .detail-title, .detail-head .detail-cityline { text-decoration: none; border-bottom: none; }
}

/* Fixed "Inquire Now" bar on phones and tablets (Compass pattern) */
.inq-bar { display: none; }
@media (max-width: 991px) {
    .inq-bar {
        display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 900;
        padding: 0.7rem 1.4rem calc(0.7rem + env(safe-area-inset-bottom));
        background: rgba(253,252,249,0.96); border-top: 1px solid var(--ink-line);
        backdrop-filter: blur(6px);
    }
    .inq-bar-btn { display: block; width: 100%; padding: 0.95rem 1rem; }
    body.listing-page { padding-bottom: 76px; }
}

/* ── Search page polish (Nikki, 2026-10-03) ──────────────────────────────── */
/* The Filters button inherits .filter-input's <select> chevron AND carries its own SVG caret: one arrow, please */
.filter-toggle { background-image: none; }

/* Exclusive badge: gold fill so it reads differently from a status */
.project-status--mh { background: #c9a96a; color: #211d15; border-color: #c9a96a; backdrop-filter: none; }

/* Result count + sort control on one line */
.result-count { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
.sort-ctl { display: inline-flex; align-items: center; gap: 0.4rem; cursor: pointer; }
.sort-ctl select {
    appearance: none; -webkit-appearance: none;
    background: transparent; border: none; border-bottom: 1px solid var(--ink-line);
    color: #3f3a2e; font-family: var(--sans); font-size: 0.68rem; letter-spacing: 0.2em; text-transform: uppercase;
    padding: 0.15rem 1.2rem 0.15rem 0; cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%239c937f' stroke-width='1.2'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 0 center;
}
.sort-ctl select:focus { outline: none; border-bottom-color: var(--gold); }

/* Card address on ONE line at every width (Nikki, 2026-10-04: two lines read as crammed),
   and real space between the specs and the button: margin-top:auto alone collapses to 0
   when the card has no spare height. */
.card-addr-sep, .card-addr-city { display: inline; }
.project-body-flex .card-addr { margin-bottom: 0.2rem; }
.project-body-flex .listing-specs { margin-top: 0.3rem; margin-bottom: 1.5rem !important; }
.project-body-flex .card-listedby { margin-top: 1.1rem; }

/* Phones + tablets: map hidden until the toggle asks for it; then full screen under the nav */
.map-toggle { display: none; }
@media (max-width: 991px) {
    .search-split { flex-direction: column; }
    .search-map { display: none; }
    body.map-view .search-map {
        display: block; position: fixed; left: 0; right: 0; bottom: 0; top: 100px;   /* top set to the nav height by JS */
        height: auto; width: 100%; z-index: 800;
    }
    body.map-view .search-results { visibility: hidden; }
    .map-toggle {
        display: inline-flex; align-items: center; gap: 0.4rem;
        position: fixed; left: 50%; bottom: 1.3rem; transform: translateX(-50%); z-index: 950;
        background: #211d15; color: #fff; border: none; border-radius: 999px;
        font-family: var(--sans); font-size: 0.68rem; letter-spacing: 0.22em; text-transform: uppercase;
        padding: 0.8rem 1.5rem; box-shadow: 0 6px 20px rgba(20,16,8,0.3); cursor: pointer;
    }
    .map-toggle .mt-list { display: none; }
    body.map-view .map-toggle .mt-map { display: none; }
    body.map-view .map-toggle .mt-list { display: inline; }
}
.inq-bar-btn { background: #c9a96a; color: #211d15; border-color: #c9a96a; }
.inq-bar-btn:hover { background: #b6945a; border-color: #b6945a; color: #211d15; }
@media (max-width: 991px) { .search-results { padding-bottom: 5.5rem; } }

/* ── Regional agent pages (brokers.php?area=, 2026-10-03) ───────────────── */
.region-intro { max-width: 760px; margin-bottom: 1.6rem; }
.region-blurb { font-size: 1.15rem; line-height: 1.7; }
.region-office { margin-top: 1.4rem; }
.region-office-name { font-family: var(--serif); font-size: 1.2rem; color: #211d15; }
.region-office-addr { font-size: 0.95rem; letter-spacing: 0.06em; color: #4c4636; }
.region-office-addr a { color: inherit; text-decoration: none; border-bottom: 1px solid var(--ink-line); }
.region-office-addr a:hover { color: var(--gold); border-color: var(--gold); }
.region-pills { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0.4rem 0 1.2rem; }
.region-pill {
    font-family: var(--sans); font-size: 0.64rem; letter-spacing: 0.2em; text-transform: uppercase;
    color: #564e3c; text-decoration: none; border: 1px solid var(--ink-line); padding: 0.55rem 1rem;
    transition: all 0.3s ease; white-space: nowrap;
}
.region-pill:hover { color: var(--gold); border-color: var(--gold); }
.region-pill.on { background: #211d15; color: #fff; border-color: #211d15; }

/* ── Phones: shared chrome (2026-10-15) ───────────────────────────
   Bar: a 60px logo at rest on phones (the bar drops from 104px to 89px;
   the shrunk 52px state is unchanged, and the full brokerage name stays
   on screen, as CREN requires). Pages read the bar height from --nav-h.
   Menu: once open the nav fills the viewport with an opaque panel, the
   list scrolls inside it and the page behind is locked (body.nav-lock,
   set by _nav.php). Footer and section rhythm: tighter on phones. */
@media (max-width: 575.98px) {
    :root { --nav-h: 89px; }
    .nav-brand-full { height: 60px; }
    .site-nav.shrunk .nav-brand-full { height: 52px; }
    .site-nav .container-fluid.px-4 { padding-left: 1.25rem !important; padding-right: 1.25rem !important; }
    .nav-mobile { padding-left: 1.25rem; padding-right: 1.25rem; }
}
.site-nav.nav-open {
    bottom: 0;
    display: flex;
    flex-direction: column;
    background: #f6f3ec;
    backdrop-filter: none;
}
.site-nav.nav-open > .container-fluid { flex: 0 0 auto; }
.site-nav.nav-open .nav-mobile {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}
body.nav-lock { overflow: hidden; }
@media (max-width: 767.98px) {
    .site-footer-v2 { margin-top: 2.5rem; padding: 3.5rem 0 2.5rem; }
    .footer-rule { margin: 2.5rem 0 1.6rem; }
}
@media (max-width: 575.98px) {
    .section { padding: 4.5rem 0; }
    .section-tight { padding: 3.5rem 0; }
    .section-head { margin-bottom: 2.5rem; }
}

/* ── Phones: forms and the home page (2026-10-15) ───────────────────
   iOS zooms the whole page when a focused field is set under 16px, so
   every text field is 16px on phones whatever its desktop size.
   Home typeahead: positioned from the form (the bar), not .home-search,
   so it drops straight under the search box instead of under the
   tagline, and it never runs past half the screen. */
@media (max-width: 575.98px) {
    input[type=text], input[type=email], input[type=tel], input[type=password],
    input[type=search], input[type=number], input[type=url], select, textarea { font-size: 16px !important; }
    .home-search form { position: relative; }
    .suggest-panel.home-suggest { max-height: 48vh; }
    /* Flex item min-width:auto kept the input at its intrinsic (size=20)
       width, which pushed the Search button out of the bar on real phones */
    .home-search-bar input { min-width: 0; }
}
/* Search bar: the map constraint shows as a chip in the location row
   ("Drawn area" / "Map area"), its x clears it (2026-10-15, Nikki: on a
   phone the list gave no sign a drawn area was in force). */
.loc-chip-map { background: rgba(33,29,21,0.06); border-color: rgba(33,29,21,0.25); }
.loc-chip-map::before { content: '\2316'; margin-right: 0.35rem; font-size: 0.8rem; opacity: 0.7; }
.map-btn { white-space: nowrap; }   /* "Clear Drawn Area" wrapped to three lines on phones */

/* ── Phones: search pages (2026-10-15; search, rentals, both exclusives) ──
   Bar: location row, then Filters and Search side by side (Filters sat
   alone on a row and Search took a third). The Filters popout spans the
   bar instead of hanging off the left edge (it was 340px anchored to a
   150px button). Gutters match the nav's 1.25rem. */
@media (max-width: 575.98px) {
    .search-results { padding: 1.1rem 1.25rem 0; }
    .search-title { font-size: 1.7rem; margin-bottom: 0.7rem; }
    .filter-bar-split { grid-template-columns: 1fr 1fr; gap: 0.6rem; position: relative; }
    .filter-bar-split .search-loc { grid-column: 1 / -1; }
    .filter-bar-split .filter-submit { grid-column: auto; }
    .filter-pop-wrap { position: static; }
    .filter-toggle { width: 100%; text-align: center; }
    .filter-pop { left: 0; right: 0; width: auto; max-width: none; top: calc(100% + 0.5rem); }
    .result-count { margin-top: 0.8rem; }
}

/* ── Phones + tablets: listing page (2026-10-15) ─────────────────────
   The agent card (.detail-side) is moved under the price by listing.php
   under 992px (.side-moved); compact, no box, duplicate buttons hidden.
   Under 576px the hero photo runs edge to edge. */
@media (max-width: 991.98px) {
    .detail-side.side-moved { padding: 0.2rem 0 0; margin: 1.3rem 0 0.2rem; }
    .detail-side.side-moved .side-actions, .detail-side.side-moved .side-inquire { display: none; }
    .detail-side.side-moved .agent-row { gap: 1rem; margin-bottom: 1rem; }
    .detail-side.side-moved .agent-row:last-child { margin-bottom: 0; }
    .detail-side.side-moved .agent-headshot, .detail-side.side-moved .agent-avatar { width: 68px; height: 68px; }
    .detail-side.side-moved .agent-avatar { font-size: 1.2rem; }
    .detail-side.side-moved .side-agent { font-size: 1.3rem; }
    .detail-side.side-moved .side-office { margin-bottom: 0.25rem; }
}
@media (max-width: 575.98px) {
    .detail-gallery { padding-top: var(--nav-h); }
    .detail-gallery .container-xl { padding-left: 0; padding-right: 0; }
    .gz-grid { height: 70vw; }
}

/* ── Phones: agents pages (2026-10-15) ───────────────────────────────
   All Agents / regions: two cards across (one full-width portrait per
   agent made the 29-agent page 14,000px long). Broker page: phone and
   email on their own lines, listing rows with a fixed small thumb. */
@media (max-width: 575.98px) {
    .broker-body { padding: 0.9rem 0.9rem 1rem; }
    .broker-name { font-size: 1.1rem; }
    .broker-title { font-size: 0.56rem; letter-spacing: 0.16em; }
    .broker-body .project-cta { font-size: 0.6rem; }
    .broker-hero { padding-top: calc(var(--nav-h) + 2rem); }
    .bc-sep { display: none; }
    .broker-contactline a { display: block; }
    .bl-row { gap: 1rem; padding: 1rem 0; align-items: flex-start; }
    .bl-thumb { flex: 0 0 120px; height: 90px; }
    .bl-price { font-size: 1.2rem; }
}
