/* =========================================================================
   NestAbode — Canonical Brand Palette (v3.4.1)
   Inter / Inter Tight · Abode Cyan #0096DA · Keystone Gold #E3B224
   Warm paper canvas (#F7F5F0) · Ink #0E1114
   Palette pixel-sampled from source logo · cyan-forward 2026 distribution
   ========================================================================= */

/* --- Tokens --- */
:root {
    /* Cyans — brand primary */
    --blue:          #0096DA;
    --blue-hover:    #0084C2;
    --blue-light:    #2AAAE1;
    --cyan-horizon:  #00BCF0;
    /* Ink / neutrals — warm paper system */
    --dark:          #0E1114;
    --body:          #5A6066;
    --muted:         #8A9097;
    --soft:          #FAFAFA;  /* Compass-clean near-white — cool, no warm cast */
    --border:        #EFEFEF;  /* Neutral cool rule */
    --white:         #FFFFFF;
    /* Golds — accent only per WCAG (never small text on white) */
    --gold:          #E3B224;
    --gold-bright:   #FDCB0D;
    --gold-soft:     #FEF5D0;
    /* Gradients — surgical: wordmark + atmospheric hero wash only */
    --grad-wordmark: linear-gradient(90deg, #00BCF0 0%, #00ACEC 50%, #0096DA 100%);
    --grad-cyan:     linear-gradient(135deg, #2AAAE1 0%, #009ADD 100%);
    --grad-gold:     linear-gradient(135deg, #FDCB0D 0%, #E3B224 100%);
    --grad-cyan-wash: radial-gradient(1200px 600px at 20% 30%, rgba(0,150,218,0.10), transparent 60%);
    --radius-pill: 100px;
    --radius-card: 12px;
    --radius-feature: 24px;
    --shadow-1: 0 1px 2px rgba(10,13,20,.04), 0 1px 1px rgba(10,13,20,.04);
    --shadow-2: 0 4px 12px rgba(10,13,20,.06);
    --shadow-4: 0 10px 30px rgba(10,13,20,.08);
    --shadow-8: 0 24px 60px rgba(10,13,20,.12);
    --ease: cubic-bezier(.2,.7,.2,1);
}

/* --- Reset --- */
*, *::before, *::after { box-sizing: border-box; }
html { font-size: 16px; }
body {
    margin: 0;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color: var(--body);
    background: #fff;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
img, video, svg { max-width: 100%; display: block; }
a { color: var(--blue); text-decoration: none; transition: color .18s var(--ease); }
a:hover { color: var(--blue-hover); }
h1, h2, h3, h4, h5, h6 {
    font-family: 'Inter Tight', 'Inter', sans-serif;
    color: var(--dark);
    letter-spacing: -0.02em;
    line-height: 1.15;
    margin: 0 0 16px;
    font-weight: 500;
}
h1 { font-size: clamp(36px, 5vw, 56px); font-weight: 500; }
h2 { font-size: clamp(28px, 3.4vw, 42px); }
h3 { font-size: clamp(22px, 2.2vw, 28px); }
h4 { font-size: 20px; }
h5 { font-size: 17px; }
p  { margin: 0 0 16px; }
.lede { font-size: 17px; line-height: 1.65; color: var(--body); }
.eyebrow, .section-eyebrow {
    display: inline-block;
    position: relative;
    color: var(--blue);
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin: 0 0 20px;
    padding-bottom: 10px;
}
.eyebrow::after, .section-eyebrow::after {
    content: '';
    position: absolute;
    left: 0; bottom: 0;
    width: 28px; height: 2px;
    background: var(--gold);
    border-radius: 2px;
}
.price-serif, .listing-price-serif {
    font-family: 'Cormorant Garamond', Georgia, serif;
    color: var(--gold);
    font-weight: 500;
    letter-spacing: -0.01em;
}

/* --- Accessibility --- */
.skip-link {
    position: absolute; top: -40px; left: 8px;
    background: var(--blue); color: #fff;
    padding: 10px 16px; border-radius: var(--radius-pill);
    font-size: 14px; font-weight: 600;
    z-index: 10000;
    transition: top .2s var(--ease);
}
.skip-link:focus { top: 8px; color: #fff; }
*:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; border-radius: 3px; }
.sr-only {
    position: absolute; width: 1px; height: 1px; padding: 0;
    overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* --- Layout --- */
.wrap, .container { max-width: 1280px; margin: 0 auto; padding: 0 32px; }
.wrap-narrow { max-width: 960px; margin: 0 auto; padding: 0 32px; }
.section { padding: 100px 0; }
.section-soft { background: var(--soft); }
.section-dark { background: var(--dark); color: rgba(255,255,255,.85); }
.section-dark h1, .section-dark h2, .section-dark h3, .section-dark h4 { color: #fff; }
@media (max-width: 767px) {
    .wrap, .container, .wrap-narrow { padding: 0 20px; }
    .section { padding: 60px 0; }
}

/* --- Buttons --- */
.btn, .btn-primary, .btn-outline, .btn-dark, .btn-gold {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    padding: 12px 24px;
    border-radius: var(--radius-pill);
    font-family: 'Inter', sans-serif;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
    border: 1px solid transparent;
    text-transform: none;
    letter-spacing: 0;
    transition: background .18s var(--ease), color .18s var(--ease), border-color .18s var(--ease), transform .18s var(--ease), box-shadow .18s var(--ease);
    white-space: nowrap;
}
.btn-primary { background: var(--blue); color: #fff; border-color: var(--blue); }
.btn-primary:hover { background: var(--blue-hover); border-color: var(--blue-hover); color: #fff; transform: translateY(-1px); box-shadow: var(--shadow-4); }
.btn-outline { background: transparent; color: var(--blue); border-color: var(--blue); }
.btn-outline:hover { background: var(--blue); color: #fff; }
.btn-dark { background: var(--dark); color: #fff; border-color: var(--dark); }
.btn-dark:hover { background: #000; color: #fff; }
.btn-gold { background: var(--gold); color: var(--dark); border-color: var(--gold); }
.btn-gold:hover { background: var(--gold-bright); border-color: var(--gold-bright); color: var(--dark); }
.btn-lg { padding: 16px 32px; font-size: 16px; }
.btn-sm { padding: 8px 16px; font-size: 13px; }
.btn:disabled, .btn[aria-disabled="true"] { opacity: .55; cursor: not-allowed; transform: none; box-shadow: none; }

/* --- Site Header (solid white, sticky) --- */
#masthead, .site-header {
    position: fixed; top: 0; left: 0; right: 0;
    background: #fff;
    border-bottom: 1px solid var(--border);
    z-index: 100;
    transition: box-shadow .2s var(--ease);
}
body.scrolled #masthead, .site-header.scrolled { box-shadow: var(--shadow-2); }
.site-header .container,
.site-header-top .container,
.site-header-bottom .container {
    height: 72px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}
.site-header-top { border-bottom: none; }
.site-header-bottom { display: none !important; }
.header-social, .header-contact, .header-badge { display: none !important; }
.header-logo { display: inline-flex; align-items: center; text-decoration: none; color: var(--dark); }
.header-logo img.custom-logo { max-height: 28px; width: auto; filter: none !important; }
.header-logo .logo-name {
    font-family: 'Inter Tight', sans-serif;
    font-size: 20px;
    font-weight: 600;
    letter-spacing: -0.02em;
    color: var(--dark);
}

.main-menu, nav .main-menu, nav ul.main-menu {
    display: flex; gap: 4px;
    list-style: none; margin: 0; padding: 0;
    align-items: center;
}
.main-menu li { position: relative; }
.main-menu a, .main-menu .nav-link {
    display: inline-flex; align-items: center;
    padding: 10px 16px;
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 500;
    color: var(--dark);
    text-decoration: none;
    border-radius: var(--radius-pill);
    transition: background .18s var(--ease), color .18s var(--ease);
    text-transform: none;
    letter-spacing: 0;
}
.main-menu a:hover, .main-menu .nav-link:hover, .main-menu .current-menu-item > a {
    color: var(--blue);
    background: var(--soft);
}
.main-menu .dropdown-menu {
    position: absolute; top: 100%; left: 0;
    min-width: 220px;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 12px;
    box-shadow: var(--shadow-4);
    padding: 8px;
    margin: 8px 0 0;
    list-style: none;
    opacity: 0; visibility: hidden; transform: translateY(-4px);
    transition: opacity .18s var(--ease), transform .18s var(--ease), visibility .18s var(--ease);
    z-index: 101;
}
.main-menu li:hover > .dropdown-menu,
.main-menu li:focus-within > .dropdown-menu {
    opacity: 1; visibility: visible; transform: translateY(0);
}
.main-menu .dropdown-menu a { display: block; padding: 10px 14px; border-radius: 8px; }

.navbar-toggler {
    display: none;
    background: none; border: 1px solid var(--border);
    border-radius: 12px;
    width: 44px; height: 44px;
    align-items: center; justify-content: center;
    cursor: pointer;
}
.navbar-toggler .menu-bar {
    display: block; width: 18px; height: 2px;
    background: var(--dark); margin: 2px 0; border-radius: 2px;
}
@media (max-width: 1199px) {
    .site-header .container { height: 64px; }
    nav:not(.shb-mobile-nav), .main-menu { display: none !important; }
    .navbar-toggler { display: inline-flex; }
}

body { padding-top: 72px; }
@media (max-width: 1199px) { body { padding-top: 64px; } }

/* --- Mobile Menu Modal --- */
.mobile-menu .modal-dialog { max-width: 100%; margin: 0; height: 100vh; }
.mobile-menu .modal-content {
    background: #fff; border: 0; border-radius: 0;
    height: 100vh; padding: 72px 24px 24px;
}
.mobile-menu .list-unstyled { list-style: none; padding: 0; margin: 0; }
.mobile-menu .list-unstyled a {
    display: block;
    padding: 16px 0;
    font-family: 'Inter Tight', sans-serif;
    font-size: 22px;
    font-weight: 500;
    color: var(--dark);
    border-bottom: 1px solid var(--border);
    text-align: left;
}
.mobile-menu .list-unstyled a:hover { color: var(--blue); }
.mobile-menu .btn-close {
    position: absolute; top: 20px; right: 20px;
    background: none; border: none;
    width: 40px; height: 40px; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
}
.mobile-menu .close-bar { position: absolute; width: 22px; height: 2px; background: var(--dark); border-radius: 2px; }
.mobile-menu .bar-1 { transform: rotate(45deg); }
.mobile-menu .bar-2 { transform: rotate(-45deg); }

/* --- Breadcrumbs --- */
.breadcrumb-bar { background: #fff; border-bottom: 1px solid var(--border); padding: 14px 0; }
.breadcrumbs, .breadcrumb-bar .container {
    font-family: 'Inter', sans-serif;
    font-size: 12px; color: var(--muted); letter-spacing: 0.04em;
}
.breadcrumbs a { color: var(--muted); }
.breadcrumbs a:hover { color: var(--blue); }
.breadcrumbs .sep { margin: 0 8px; color: var(--border); }

/* --- Section headers --- */
.section-header { text-align: center; max-width: 720px; margin: 0 auto 60px; }
.section-header h2 { font-size: clamp(32px, 4vw, 48px); }
.section-header p { font-size: 16px; color: var(--body); max-width: 540px; margin: 12px auto 0; }
@media (max-width: 767px) { .section-header { margin-bottom: 40px; } }

/* --- Advantage band --- */
.advantage-band, .v3-advantage { background: var(--blue); color: #fff; padding: 80px 0; }
.advantage-band h2, .v3-advantage h2 { color: #fff; }
.advantage-band p, .v3-advantage p { color: rgba(255,255,255,.88); }

/* --- Listing Card --- */
.listing-card {
    position: relative;
    background: #fff;
    border-radius: var(--radius-card);
    overflow: hidden;
    transition: transform .25s var(--ease), box-shadow .25s var(--ease);
    text-decoration: none; color: inherit;
    display: block;
}
.listing-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-4); color: inherit; }
.listing-card .card-image {
    position: relative;
    aspect-ratio: 5/4;
    overflow: hidden;
    background: var(--soft);
    border-radius: var(--radius-card);
}
.listing-card .card-image img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform .6s var(--ease);
}
.listing-card:hover .card-image img { transform: scale(1.04); }

.status-pill {
    position: absolute;
    top: 14px; left: 14px;
    background: #fff; color: var(--dark);
    padding: 6px 12px 6px 24px;
    border-radius: var(--radius-pill);
    font-size: 11px; font-weight: 600; letter-spacing: 0.08em;
    text-transform: uppercase;
    box-shadow: var(--shadow-2);
    display: inline-flex; align-items: center;
}
.status-pill::before {
    content: '';
    position: absolute; left: 12px; top: 50%;
    width: 7px; height: 7px; border-radius: 50%;
    background: var(--blue); transform: translateY(-50%);
}
.status-pill.status-sale::before { background: #16A34A; }
.status-pill.status-lease::before { background: var(--blue); }
.status-pill.status-sold::before { background: #DC2626; }
.status-pill.status-pending::before { background: #F59E0B; }
.status-pill.status-coming::before { background: #8B5CF6; }

.featured-pill {
    position: absolute;
    top: 14px; right: 14px;
    background: #fff; color: var(--dark);
    padding: 6px 12px 6px 30px;
    border-radius: var(--radius-pill);
    font-size: 11px; font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    box-shadow: var(--shadow-2);
}
.featured-pill::before {
    content: '';
    position: absolute;
    left: 10px; top: 50%; transform: translateY(-50%);
    width: 14px; height: 14px;
    background: var(--gold-bright);
    clip-path: polygon(50% 0, 61% 38%, 100% 38%, 68% 59%, 79% 100%, 50% 76%, 21% 100%, 32% 59%, 0 38%, 39% 38%);
}

.listing-card .card-arrow {
    position: absolute;
    top: 14px; right: 14px;
    width: 36px; height: 36px;
    border-radius: 50%;
    background: #fff; color: var(--dark);
    display: none;
    align-items: center; justify-content: center;
    box-shadow: var(--shadow-2);
    transition: transform .3s var(--ease), background .3s var(--ease), color .3s var(--ease);
}
.listing-card:hover .card-arrow {
    display: inline-flex;
    transform: rotate(-45deg);
    background: var(--blue); color: #fff;
}
.listing-card .featured-pill + .card-arrow { top: 52px; }

.listing-card .card-body { padding: 18px 4px 4px; }
.listing-card .card-price {
    font-family: 'Cormorant Garamond', serif;
    font-size: 26px; font-weight: 500;
    color: var(--gold);
    line-height: 1.1;
    margin: 0 0 4px;
}
.listing-card .card-lease-suffix {
    font-family: 'Inter', sans-serif; font-size: 13px;
    color: var(--muted); font-weight: 500;
    margin-left: 4px;
}
.listing-card .card-address {
    font-family: 'Inter Tight', sans-serif;
    font-size: 16px; font-weight: 500;
    color: var(--dark); margin: 0 0 4px;
    letter-spacing: -0.01em;
}
.listing-card .card-location { font-size: 13px; color: var(--muted); margin: 0 0 12px; }
.listing-card .card-specs {
    display: flex; gap: 16px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
}
.listing-card .card-spec {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 13px; color: var(--body); font-weight: 500;
}
.listing-card .card-spec svg { width: 14px; height: 14px; color: var(--blue); }

.listing-card.view-list {
    display: flex; flex-direction: row; align-items: stretch;
    gap: 20px;
    border: 1px solid var(--border);
    padding: 16px;
}
.listing-card.view-list .card-image { flex: 0 0 280px; aspect-ratio: 4/3; }
.listing-card.view-list .card-body { padding: 4px 0; display: flex; flex-direction: column; justify-content: center; flex: 1; }
@media (max-width: 767px) {
    .listing-card.view-list { flex-direction: column; }
    .listing-card.view-list .card-image { flex: 1; aspect-ratio: 5/4; }
}

/* --- Grid Layouts --- */
.grid { display: grid; gap: 24px; }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 991px) { .grid-3, .grid-4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 576px) { .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; } }

/* --- Amenities Grid --- */
.amenities-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.amenity-tile { text-align: left; padding: 12px 0; }
.amenity-tile .icon-box {
    width: 52px; height: 52px;
    background: #fff; border-radius: 14px;
    display: inline-flex; align-items: center; justify-content: center;
    box-shadow: var(--shadow-2);
    margin-bottom: 16px;
    color: var(--blue);
}
.amenity-tile .icon-box svg { width: 24px; height: 24px; stroke: var(--blue); }
.amenity-tile h3 {
    font-family: 'Inter Tight', sans-serif;
    font-size: 18px; font-weight: 600;
    color: var(--dark);
    margin: 0 0 8px;
    letter-spacing: -0.01em;
}
.amenity-tile p { font-size: 14px; color: var(--body); line-height: 1.55; margin: 0; }
@media (max-width: 991px) { .amenities-grid { grid-template-columns: repeat(2, 1fr); gap: 24px; } }
@media (max-width: 576px) { .amenities-grid { grid-template-columns: 1fr; gap: 20px; } }

/* --- Stats row --- */
.stats-row { display: flex; flex-wrap: wrap; gap: 40px; align-items: baseline; }
.stat-num {
    font-family: 'Inter Tight', sans-serif;
    font-size: clamp(36px, 4.2vw, 52px);
    font-weight: 500; color: var(--dark);
    letter-spacing: -0.02em; line-height: 1; display: block;
}
.stat-label { display: block; font-size: 13px; color: var(--muted); margin-top: 8px; letter-spacing: 0.04em; }

/* --- Testimonials --- */
.testimonial-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 28px;
    transition: box-shadow .2s var(--ease);
}
.testimonial-card:hover { box-shadow: var(--shadow-4); }
.testimonial-stars { color: var(--gold-bright); font-size: 16px; margin-bottom: 12px; letter-spacing: 2px; }
.testimonial-quote {
    font-family: 'Inter', sans-serif;
    font-size: 15px; line-height: 1.6; color: var(--body);
    margin: 0 0 20px; font-style: normal;
}
.testimonial-attr { display: flex; align-items: center; gap: 12px; }
.testimonial-avatar {
    width: 44px; height: 44px; border-radius: 50%;
    background: var(--soft);
    display: inline-flex; align-items: center; justify-content: center;
    font-family: 'Inter Tight', sans-serif;
    font-weight: 600; color: var(--blue); font-size: 14px;
    overflow: hidden;
}
.testimonial-avatar img { width: 100%; height: 100%; object-fit: cover; }
.testimonial-name { font-size: 14px; font-weight: 600; color: var(--dark); margin: 0; }
.testimonial-role { font-size: 12px; color: var(--muted); margin: 0; }

/* --- Blog Cards --- */
.blog-card {
    background: #fff;
    border-radius: var(--radius-card);
    overflow: hidden;
    transition: transform .25s var(--ease), box-shadow .25s var(--ease);
    text-decoration: none; color: inherit;
    display: block;
}
.blog-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-4); color: inherit; }
.blog-card .card-image { aspect-ratio: 5/4; overflow: hidden; background: var(--soft); position: relative; border-radius: var(--radius-card); }
.blog-card .card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.blog-card:hover .card-image img { transform: scale(1.04); }
.blog-card .card-body { padding: 18px 4px 4px; }
.blog-card .card-category { font-size: 11px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--blue); margin: 0 0 8px; }
.blog-card .card-title {
    font-family: 'Inter Tight', sans-serif;
    font-size: 20px; font-weight: 500;
    color: var(--dark); line-height: 1.25;
    letter-spacing: -0.01em;
    margin: 0 0 10px;
}
.blog-card:hover .card-title { color: var(--blue); }
.blog-card .card-meta { font-size: 12px; color: var(--muted); }

/* --- Forms --- */
input, select, textarea { font-family: 'Inter', sans-serif; font-size: 15px; color: var(--dark); }
.form-control, input[type="text"].form-control, input[type="email"].form-control,
input[type="tel"].form-control, input[type="number"].form-control,
select.form-control, textarea.form-control {
    width: 100%;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 12px 16px;
    color: var(--dark);
    transition: border-color .18s var(--ease), box-shadow .18s var(--ease);
    height: auto;
}
.form-control:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 3px rgba(0,150,218,.15); }
textarea.form-control { min-height: 120px; resize: vertical; }
label { font-size: 13px; font-weight: 500; color: var(--dark); margin-bottom: 6px; display: block; }
.mb-3 label, .form-group label, .consent-field label {
    position: static !important;
    transform: none !important;
    font-size: 13px;
    color: var(--dark);
    letter-spacing: 0;
}

/* --- CTA Modal --- */
.cta-modal .modal-dialog { max-width: 920px; margin: 24px auto; }
.cta-modal .modal-content {
    background: #fff;
    border: 0;
    border-radius: 20px;
    overflow: hidden;
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 560px;
}
.cta-modal .popup-image { background: var(--soft); overflow: hidden; }
.cta-modal .popup-image img { width: 100%; height: 100%; object-fit: cover; }
.cta-modal .modal-content-wrap { padding: 40px; display: flex; flex-direction: column; justify-content: center; }
.cta-modal .btn-close {
    position: absolute; top: 14px; right: 14px;
    background: var(--dark); color: #fff;
    border: none; border-radius: 50%;
    width: 36px; height: 36px;
    display: inline-flex; align-items: center; justify-content: center;
    cursor: pointer;
    z-index: 2;
}
@media (max-width: 767px) {
    .cta-modal .modal-content { grid-template-columns: 1fr; }
    .cta-modal .popup-image { display: none; }
}

/* --- Legacy classes neutralized --- */
.fadeup, .fadedown, .fadeleft, .faderight, .rolldown,
.d1, .d2, .d3, .d4 { opacity: 1 !important; transform: none !important; visibility: visible !important; }
.scroll-progress, .scroll-progress-bar,
.floating-cta,
.cookie-consent, .cookie-consent-banner,
.brandmark-watermark,
#masthead .site-header-top { display: none !important; }

/* --- Utilities --- */
.text-center { text-align: center; }
.text-dark { color: var(--dark); }
.text-muted { color: var(--muted); }
.text-blue { color: var(--blue); }
.text-gold { color: var(--gold); }
.bg-soft { background: var(--soft); }
.bg-dark { background: var(--dark); color: #fff; }
.bg-blue { background: var(--blue); color: #fff; }

/* =========================================================================
   Search Page Styles (folded from dolce-search-dynamic.css)
   ========================================================================= */

.dolce-search-page .filter-sidebar,
.dolce-search-page .sv2-sticky-bar,
.dolce-search-page .sv2-cards-header {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 12px;
}
.skeleton-card {
    background: linear-gradient(90deg, var(--soft) 25%, #EFECE4 50%, var(--soft) 75%);
    background-size: 200% 100%;
    animation: skeleton-shimmer 1.4s infinite;
    border-radius: var(--radius-card);
    aspect-ratio: 5/4;
    margin-bottom: 12px;
}
@keyframes skeleton-shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

.leaflet-container { font-family: 'Inter', sans-serif; border-radius: var(--radius-card); }
.marker-cluster, .marker-cluster-small, .marker-cluster-medium, .marker-cluster-large {
    background: rgba(0,150,218,.2) !important;
}
.marker-cluster div, .marker-cluster-small div, .marker-cluster-medium div, .marker-cluster-large div {
    background: var(--blue) !important; color: #fff !important;
    font-family: 'Inter Tight', sans-serif !important; font-weight: 600 !important;
}
.leaflet-popup-content-wrapper { border-radius: 12px; box-shadow: var(--shadow-4); padding: 0; }
.leaflet-popup-content { margin: 0; padding: 12px; font-size: 13px; }
.leaflet-popup-content h4 { font-size: 14px; margin: 0 0 4px; }
.leaflet-popup-tip { box-shadow: var(--shadow-2); }

.price-marker {
    background: var(--dark); color: #fff;
    padding: 4px 10px; border-radius: var(--radius-pill);
    font-family: 'Inter Tight', sans-serif; font-weight: 600; font-size: 12px;
    box-shadow: var(--shadow-4); white-space: nowrap;
}
.price-marker.active { background: var(--blue); }

/* Property single-page map (single-listing.php) — Mapbox wordmark overlay */
#listing-map { position: relative; }
#listing-map::after {
    content: '';
    position: absolute;
    bottom: 10px;
    left: 10px;
    width: 76px;
    height: 19px;
    background: url('/wp-content/themes/dolce-theme/assets/img/mapbox-logo.svg') no-repeat center / contain;
    pointer-events: none;
    z-index: 401;
    filter: drop-shadow(0 1px 1px rgba(255,255,255,.9));
    opacity: .9;
}

.filter-drawer, .sv2-drawer {
    position: fixed; inset: 0 0 0 auto;
    width: 92%; max-width: 420px;
    background: #fff;
    transform: translateX(100%);
    transition: transform .3s var(--ease);
    z-index: 10001;
    overflow-y: auto;
    padding: 72px 24px 40px;
}
.filter-drawer.open, .sv2-drawer.open { transform: translateX(0); }
.filter-drawer-overlay {
    position: fixed; inset: 0;
    background: rgba(10,13,20,.5);
    z-index: 10000;
    opacity: 0; visibility: hidden;
    transition: opacity .3s var(--ease), visibility .3s var(--ease);
}
.filter-drawer-overlay.open { opacity: 1; visibility: visible; }
body.drawer-open { overflow: hidden; }
body.drawer-open #masthead { visibility: hidden; pointer-events: none; }

/* --- Single Listing --- */
.listing-hero-gallery { aspect-ratio: 16/9; overflow: hidden; border-radius: var(--radius-feature); background: var(--soft); }
.listing-hero-gallery img { width: 100%; height: 100%; object-fit: cover; }
.listing-header { padding: 60px 0 20px; }
.listing-header .listing-price {
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(40px, 5vw, 56px);
    color: var(--gold); font-weight: 500;
    letter-spacing: -0.01em; line-height: 1;
}
.listing-header h1 { font-size: clamp(26px, 3vw, 36px); margin-top: 12px; }
.listing-body { display: grid; grid-template-columns: 1fr 360px; gap: 48px; padding: 40px 0 100px; }
@media (max-width: 991px) { .listing-body { grid-template-columns: 1fr; gap: 32px; } }
.listing-specs { border-top: 1px solid var(--border); }
.listing-specs .spec-row {
    display: flex; justify-content: space-between;
    padding: 14px 0; border-bottom: 1px solid var(--border);
    font-size: 14px;
}
.listing-specs .spec-row .label { color: var(--muted); }
.listing-specs .spec-row .value { color: var(--dark); font-weight: 500; }

.listing-sidebar { position: sticky; top: 96px; align-self: start; }
.listing-sidebar .card {
    background: #fff; border: 1px solid var(--border); border-radius: 16px;
    padding: 24px;
}

.mortgage-calc { margin-top: 24px; border: 1px solid var(--border); border-radius: 16px; padding: 20px; }
.mortgage-calc summary {
    font-family: 'Inter Tight', sans-serif;
    font-size: 16px; font-weight: 500; color: var(--dark);
    cursor: pointer; list-style: none;
    display: flex; justify-content: space-between; align-items: center;
}
.mortgage-calc summary::-webkit-details-marker { display: none; }
.mortgage-calc summary::after { content: '+'; font-size: 20px; color: var(--muted); }
.mortgage-calc[open] summary::after { content: '–'; }
.mortgage-calc .mc-row { display: grid; grid-template-columns: 1fr 120px; gap: 8px; margin-top: 12px; align-items: center; }
.mortgage-calc .mc-row label { margin: 0; font-size: 13px; color: var(--body); }
.mortgage-calc .mc-row input { width: 100%; padding: 8px 12px; font-size: 14px; }
.mortgage-calc .mc-output {
    margin-top: 20px; padding: 16px;
    background: var(--soft); border-radius: 12px;
    font-family: 'Inter Tight', sans-serif;
}
.mortgage-calc .mc-output .mc-line { display: flex; justify-content: space-between; padding: 4px 0; font-size: 14px; }
.mortgage-calc .mc-output .mc-monthly { font-size: 22px; color: var(--dark); font-weight: 600; }
.mortgage-calc .mc-output .mc-warn { color: #DC2626; font-size: 12px; margin-top: 6px; }

.virtual-tour-embed { aspect-ratio: 16/9; border-radius: var(--radius-card); overflow: hidden; margin: 24px 0; background: #000; }
.virtual-tour-embed iframe { width: 100%; height: 100%; border: 0; }

.floor-plan-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin: 24px 0; }
.floor-plan-grid a { display: block; border-radius: var(--radius-card); overflow: hidden; background: var(--soft); }
.floor-plan-grid img { width: 100%; height: auto; display: block; }
@media (max-width: 576px) { .floor-plan-grid { grid-template-columns: 1fr; } }

.neighbourhood-widget {
    background: var(--dark);
    color: #fff;
    border-radius: 16px;
    padding: 24px;
    margin-top: 24px;
}
.neighbourhood-widget h4 { color: #fff; font-size: 18px; margin-bottom: 8px; }
.neighbourhood-widget .district { display: inline-block; color: var(--gold); font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 12px; }
.neighbourhood-widget .nw-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 16px 0; }
.neighbourhood-widget .nw-stat .n { font-family: 'Inter Tight', sans-serif; font-size: 20px; font-weight: 600; color: #fff; display: block; }
.neighbourhood-widget .nw-stat .l { font-size: 11px; color: rgba(255,255,255,.65); letter-spacing: 0.04em; }
.neighbourhood-widget a { color: var(--gold); font-size: 14px; font-weight: 500; }

/* --- 404 --- */
.page-404 { padding: 140px 0 100px; text-align: center; }
.page-404 .big-num {
    font-family: 'Inter Tight', sans-serif;
    font-size: clamp(120px, 18vw, 220px);
    font-weight: 500; color: var(--dark);
    line-height: 1; letter-spacing: -0.04em;
    margin: 0 0 16px;
}
.page-404 h1 { font-size: clamp(28px, 3vw, 40px); margin-bottom: 16px; }
.page-404 p { font-size: 16px; color: var(--body); margin-bottom: 28px; }

@media print {
    #masthead, .site-footer-v2, .floating-cta, .scroll-progress { display: none !important; }
    body { padding-top: 0; }
}

/* ═══════════════════════════════════════════════════════════ */
/*  Bibby Framework (v3.2.0) — Header, Modal, Pages            */
/* ═══════════════════════════════════════════════════════════ */

:root {
    --bibby-ink: #0E1114;
    --bibby-body: #5A6066;
    --bibby-muted: #8A9097;
    --bibby-border: #EFEFEF;
    --bibby-soft: #FAFAFA;
    --bibby-blue: #0096DA;
    --bibby-blue-hover: #0084C2;
    --bibby-gold: #E3B224;
}

/* Hide legacy header v3.1 when Bibby header is present on home */
body.home .site-header { display: none !important; }

/* ─── HEADER (Bibby) ─── */
.site-header-bibby {
    position: sticky; top: 0; z-index: 100;
    background: #fff;
    border-bottom: 1px solid var(--bibby-border);
    font-family: 'Inter', sans-serif;
}
.shb-inner {
    max-width: 1440px; margin: 0 auto;
    padding: 14px 32px;
    display: flex; align-items: center; gap: 32px;
}
.shb-logo { display: inline-flex; align-items: center; text-decoration: none; }
.shb-logo img { max-height: 72px; width: auto; display: block; transition: filter .2s var(--ease); }
.shb-wordmark {
    font-family: 'Inter Tight', sans-serif;
    font-size: 20px; font-weight: 600;
    color: var(--bibby-ink); letter-spacing: -0.02em;
}
.shb-nav { flex: 1; display: flex; justify-content: flex-end; }
.shb-nav ul {
    list-style: none; padding: 0; margin: 0;
    display: flex; gap: 28px;
}
.shb-nav a {
    color: var(--bibby-ink);
    font-size: 14px; font-weight: 500;
    text-decoration: none; letter-spacing: 0;
    padding: 8px 0; position: relative;
    transition: color .15s ease;
}
.shb-nav a:hover { color: var(--bibby-blue); }
.shb-nav a::after {
    content: ''; position: absolute;
    left: 0; bottom: 0; right: 0;
    height: 1px; background: var(--bibby-blue);
    transform: scaleX(0); transform-origin: center;
    transition: transform .2s ease;
}
.shb-nav a:hover::after { transform: scaleX(1); }
.shb-right { display: flex; align-items: center; gap: 18px; }
.shb-social { display: flex; gap: 10px; }
.shb-social a {
    width: 30px; height: 30px;
    display: inline-flex; align-items: center; justify-content: center;
    color: var(--bibby-ink); opacity: .65;
    transition: opacity .15s, color .15s;
}
.shb-social a:hover { opacity: 1; color: var(--bibby-blue); }
.shb-cta {
    background: var(--bibby-ink); color: #fff;
    border: none; border-radius: 100px;
    padding: 11px 22px;
    font-family: 'Inter', sans-serif;
    font-size: 13px; font-weight: 600;
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: background .2s ease, transform .15s ease;
}
.shb-cta:hover { background: var(--bibby-blue); transform: translateY(-1px); }
.shb-burger {
    display: none;
    background: none; border: none;
    width: 36px; height: 36px;
    flex-direction: column; justify-content: center; align-items: center; gap: 5px;
    cursor: pointer;
}
.shb-burger span {
    display: block; width: 22px; height: 2px;
    background: var(--bibby-ink); border-radius: 1px;
}
@media (max-width: 991px) {
    .shb-nav { display: none; }
    .shb-social { display: none; }
    .shb-burger { display: flex; }
    .shb-inner { padding: 12px 20px; gap: 12px; }
    .shb-logo img { max-height: 52px; }
}

/* Mobile menu */
.shb-mobile .modal-content {
    background: #fff; padding: 80px 32px 40px;
    border: none; border-radius: 0;
}
.shb-mobile-close {
    position: absolute; top: 24px; right: 24px;
    background: none; border: none; font-size: 32px;
    color: var(--bibby-ink); cursor: pointer; line-height: 1;
}
.shb-mobile-nav ul { list-style: none; padding: 0; margin: 0 0 32px; }
.shb-mobile-nav li { border-bottom: 1px solid var(--bibby-border); }
.shb-mobile-nav a {
    display: block; padding: 20px 0;
    color: var(--bibby-ink); text-decoration: none;
    font-family: 'Inter Tight', sans-serif;
    font-size: 22px; font-weight: 500; letter-spacing: -0.01em;
}
.shb-mobile-nav .shb-cta { width: 100%; margin-bottom: 24px; padding: 16px; }
.shb-mobile-nav .shb-social { display: flex; gap: 16px; }
.shb-mobile-nav .shb-social a { width: auto; padding: 8px 0; font-size: 14px; color: var(--bibby-body); }

/* ─── CONSULTATION MODAL ─── */
.consult-modal .modal-content {
    border: none; border-radius: 20px;
    padding: 40px; max-width: 560px; margin: 0 auto;
    font-family: 'Inter', sans-serif;
}
.consult-close {
    position: absolute; top: 16px; right: 16px;
    background: none; border: none; font-size: 28px;
    color: var(--bibby-muted); cursor: pointer; line-height: 1;
    width: 32px; height: 32px;
}
.consult-close:hover { color: var(--bibby-ink); }
.consult-eyebrow {
    font-size: 12px; font-weight: 600;
    letter-spacing: 0.12em; text-transform: uppercase;
    color: var(--bibby-blue); margin: 0 0 10px;
}
.consult-title {
    font-family: 'Inter Tight', sans-serif;
    font-size: 28px; font-weight: 500;
    color: var(--bibby-ink); letter-spacing: -0.02em;
    line-height: 1.15; margin: 0 0 12px;
}
.consult-intro {
    font-size: 14px; color: var(--bibby-body);
    line-height: 1.55; margin: 0 0 24px;
}
.consult-form { display: flex; flex-direction: column; gap: 14px; }
.consult-row {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 14px;
}
@media (max-width: 576px) { .consult-row { grid-template-columns: 1fr; } }
.consult-form label {
    display: flex; flex-direction: column; gap: 6px;
    font-size: 12px; font-weight: 600;
    color: var(--bibby-ink);
    letter-spacing: 0.02em;
}
.consult-form input,
.consult-form select,
.consult-form textarea {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--bibby-border);
    border-radius: 10px;
    font-family: 'Inter', sans-serif;
    font-size: 14px; font-weight: 400;
    color: var(--bibby-ink);
    background: #fff;
    transition: border-color .15s ease;
}
.consult-form input:focus,
.consult-form select:focus,
.consult-form textarea:focus {
    outline: none; border-color: var(--bibby-blue);
    box-shadow: 0 0 0 3px rgba(0,150,218,.12);
}
.consult-form textarea { resize: vertical; min-height: 80px; font-family: inherit; }
.consult-submit {
    background: var(--bibby-ink); color: #fff;
    border: none; border-radius: 100px;
    padding: 14px 32px; margin-top: 8px;
    font-family: 'Inter', sans-serif;
    font-size: 14px; font-weight: 600;
    letter-spacing: 0.04em; text-transform: uppercase;
    cursor: pointer;
    transition: background .2s ease;
}
.consult-submit:hover { background: var(--bibby-blue); }
.consult-feedback { font-size: 13px; color: var(--bibby-body); min-height: 20px; }
.consult-feedback.is-success { color: #0a7f3e; }
.consult-feedback.is-error { color: #c0392b; }

/* ─── Shared pill buttons ─── */
.btn-pill {
    display: inline-flex; align-items: center; justify-content: center;
    gap: 8px;
    padding: 13px 26px;
    border-radius: 100px;
    font-family: 'Inter', sans-serif;
    font-size: 14px; font-weight: 600;
    text-decoration: none; cursor: pointer;
    border: 1px solid transparent;
    transition: all .2s ease;
}
.btn-pill-primary { background: var(--bibby-ink); color: #fff; }
.btn-pill-primary:hover { background: var(--bibby-blue); color: #fff; transform: translateY(-1px); }
.btn-pill-ghost { background: transparent; color: var(--dark); border-color: var(--dark); border-width: 1.5px; font-weight: 600; }
.btn-pill-ghost:hover { background: var(--dark); color: #fff; border-color: var(--dark); }

/* ═══ ABOUT PAGE ═══ */
.about-hero {
    padding: 120px 0 80px;
    background: linear-gradient(180deg, #fff 0%, var(--bibby-soft) 100%);
    font-family: 'Inter', sans-serif;
}
.about-hero .container, .about-values .container, .about-lead .container,
.about-track-record .container, .about-cta-final .container,
.approach-hero .container, .approach-pillars .container,
.approach-partnership .container, .approach-proven .container,
.contact-hero .container, .contact-main .container,
.testimonials-hero .container, .testimonials-stack .container, .testimonials-cta .container,
.news-hero .container, .news-main .container {
    max-width: 1280px; margin: 0 auto; padding: 0 32px;
}
.about-eyebrow,
.values-eyebrow, .tr-eyebrow, .lead-eyebrow,
.approach-eyebrow, .pillars-eyebrow, .partnership-eyebrow, .proven-eyebrow,
.contact-eyebrow, .contact-form-eyebrow, .contact-info-eyebrow,
.tst-eyebrow, .news-hero-eyebrow, .news-filters-eyebrow {
    font-size: 12px; font-weight: 700;
    letter-spacing: 0.14em; text-transform: uppercase;
    color: var(--bibby-blue); margin: 0 0 18px;
}
.about-h1 {
    font-family: 'Inter Tight', sans-serif;
    font-size: clamp(44px, 6vw, 72px);
    font-weight: 500; line-height: 1.05;
    letter-spacing: -0.03em;
    color: var(--bibby-ink); margin: 0 0 28px;
}
.about-h1-strong { color: var(--bibby-blue); }
.about-lede {
    font-size: 18px; color: var(--bibby-body);
    line-height: 1.6; max-width: 640px; margin: 0 0 32px;
}
.about-hero-cta { display: flex; gap: 12px; flex-wrap: wrap; }

.about-values { padding: 100px 0; }
.values-head { max-width: 720px; margin: 0 0 64px; }
.values-h2, .tr-h2, .lead-h2,
.pillars-h2, .partnership-h2, .proven-h2,
.contact-form-h2 {
    font-family: 'Inter Tight', sans-serif;
    font-size: clamp(34px, 4vw, 52px);
    font-weight: 500; line-height: 1.1;
    letter-spacing: -0.025em; color: var(--bibby-ink); margin: 0 0 18px;
}
.values-sub, .tr-sub, .proven-sub, .contact-form-sub {
    font-size: 17px; color: var(--bibby-body); line-height: 1.55; max-width: 560px; margin: 0;
}
.values-grid {
    display: grid; grid-template-columns: repeat(2, 1fr);
    gap: 32px;
}
@media (max-width: 767px) { .values-grid { grid-template-columns: 1fr; gap: 24px; } }
.value-card {
    padding: 36px 32px;
    background: #fff;
    border: 1px solid var(--bibby-border);
    border-radius: 20px;
    transition: transform .25s ease, box-shadow .25s ease;
}
.value-card:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(10,13,20,.08); }
.value-num {
    display: inline-block;
    font-family: 'Inter Tight', sans-serif;
    font-size: 14px; font-weight: 600;
    color: var(--bibby-blue); letter-spacing: 0.08em;
    margin-bottom: 16px;
}
.value-card h3 {
    font-family: 'Inter Tight', sans-serif;
    font-size: 26px; font-weight: 500;
    letter-spacing: -0.02em; color: var(--bibby-ink);
    margin: 0 0 14px;
}
.value-card p {
    font-size: 15.5px; color: var(--dark);
    line-height: 1.65; margin: 0; opacity: 0.85;
}

.about-lead { padding: 100px 0; background: var(--bibby-soft); }
.lead-grid {
    display: grid; grid-template-columns: 1fr 1.2fr;
    gap: 72px; align-items: center;
}
@media (max-width: 991px) { .lead-grid { grid-template-columns: 1fr; gap: 40px; } }
.lead-portrait { position: relative; }
.lead-portrait img {
    width: 100%; aspect-ratio: 4/5;
    object-fit: cover; border-radius: 24px; display: block;
}
.lead-badge {
    position: absolute; bottom: 24px; left: 24px; right: 24px;
    background: rgba(255,255,255,0.96);
    backdrop-filter: blur(8px);
    padding: 18px 22px;
    border-radius: 14px;
    display: flex; flex-direction: column; gap: 2px;
}
.lead-badge-label {
    font-family: 'Inter Tight', sans-serif;
    font-size: 15px; font-weight: 600; color: var(--bibby-ink);
    letter-spacing: -0.01em;
}
.lead-badge-sub { font-size: 13px; color: var(--bibby-body); }
.lead-copy p {
    font-size: 16px; color: var(--bibby-body);
    line-height: 1.65; margin: 0 0 18px;
}
.lead-contact {
    margin-top: 28px;
    display: flex; flex-direction: column; gap: 12px;
    align-items: flex-start;
}
.lead-contact-line {
    display: inline-flex; gap: 10px;
    font-size: 15px; color: var(--bibby-ink);
    text-decoration: none;
}
.lead-contact-line strong {
    color: var(--bibby-muted); font-weight: 600;
    font-size: 12px; letter-spacing: 0.08em;
    text-transform: uppercase; align-self: center;
}

.about-track-record { padding: 100px 0; }
.tr-head { text-align: center; max-width: 720px; margin: 0 auto 56px; }
.tr-head .tr-sub { margin-left: auto; margin-right: auto; }
.tr-stats {
    display: grid; grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    padding: 48px 0;
    border-top: 1px solid var(--bibby-border);
    border-bottom: 1px solid var(--bibby-border);
}
@media (max-width: 767px) { .tr-stats { grid-template-columns: repeat(2, 1fr); gap: 32px 16px; } }
.tr-stat {
    display: flex; flex-direction: column; gap: 10px;
    text-align: center;
}
.tr-num {
    font-family: 'Inter Tight', sans-serif;
    font-size: clamp(40px, 5vw, 60px);
    font-weight: 600; color: var(--bibby-ink);
    letter-spacing: -0.03em; line-height: 1;
}
.tr-label {
    font-size: 13px; color: var(--bibby-body);
    letter-spacing: 0.02em;
}

.about-cta-final { padding: 100px 0; background: var(--bibby-ink); color: #fff; }
.cta-final-inner { max-width: 720px; margin: 0 auto; text-align: center; }
.cta-final-inner h2 {
    font-family: 'Inter Tight', sans-serif;
    font-size: clamp(32px, 4vw, 48px);
    font-weight: 500; letter-spacing: -0.025em;
    line-height: 1.1; color: #fff; margin: 0 0 18px;
}
.cta-final-inner p {
    font-size: 17px; color: rgba(255,255,255,0.75);
    line-height: 1.6; margin: 0 0 32px;
}
.cta-final-inner .btn-pill-primary { background: #fff; color: var(--bibby-ink); }
.cta-final-inner .btn-pill-primary:hover { background: var(--bibby-blue); color: #fff; }

/* ═══ APPROACH PAGE ═══ */
.approach-hero { padding: 140px 0 100px; font-family: 'Inter', sans-serif; }
.approach-h1 {
    font-family: 'Inter Tight', sans-serif;
    font-size: clamp(48px, 7vw, 96px);
    font-weight: 500; line-height: 1;
    letter-spacing: -0.035em; color: var(--bibby-ink); margin: 0 0 32px;
}
.approach-h1-ital {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic; font-weight: 400;
    color: var(--bibby-blue);
}
.approach-lede {
    font-size: 18px; color: var(--bibby-body);
    line-height: 1.6; max-width: 640px; margin: 0 0 36px;
}
.approach-pillars { padding: 100px 0; background: var(--bibby-soft); }
.pillars-head { text-align: center; max-width: 720px; margin: 0 auto 64px; }
.pillar-card {
    display: grid; grid-template-columns: 240px 1fr;
    gap: 48px; align-items: start;
    padding: 48px 0;
    border-top: 1px solid var(--bibby-border);
}
.pillar-card:last-child { border-bottom: 1px solid var(--bibby-border); }
@media (max-width: 767px) { .pillar-card { grid-template-columns: 1fr; gap: 16px; padding: 36px 0; } }
.pillar-num {
    display: inline-block;
    font-family: 'Inter Tight', sans-serif;
    font-size: 14px; font-weight: 600;
    color: var(--bibby-blue); letter-spacing: 0.12em;
}
.pillar-left h3 {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic; font-weight: 400;
    font-size: clamp(32px, 3.4vw, 44px);
    color: var(--bibby-ink); margin: 12px 0 0;
    line-height: 1; letter-spacing: -0.01em;
}
.pillar-right p {
    font-size: 17px; color: var(--bibby-body);
    line-height: 1.65; margin: 0; max-width: 680px;
}

.approach-partnership { padding: 100px 0; }
.partnership-grid {
    display: grid; grid-template-columns: 1.2fr 1fr;
    gap: 72px; align-items: center;
}
@media (max-width: 991px) { .partnership-grid { grid-template-columns: 1fr; gap: 40px; } }
.partnership-copy p {
    font-size: 16px; color: var(--bibby-body);
    line-height: 1.65; margin: 0 0 18px;
}
.partnership-image img {
    width: 100%; aspect-ratio: 4/5;
    object-fit: cover; border-radius: 24px; display: block;
}

.approach-proven { padding: 100px 0; background: var(--bibby-soft); }
.proven-inner { text-align: center; max-width: 720px; margin: 0 auto; }
.proven-sub { margin: 0 auto 32px; }
.proven-cta { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

/* ═══ CONTACT PAGE ═══ */
.contact-hero { padding: 120px 0 72px; font-family: 'Inter', sans-serif; }
.contact-h1 {
    font-family: 'Inter Tight', sans-serif;
    font-size: clamp(44px, 6vw, 72px);
    font-weight: 500; line-height: 1.05;
    letter-spacing: -0.03em; color: var(--bibby-ink); margin: 0 0 28px;
}
.contact-lede {
    font-size: 18px; color: var(--bibby-body);
    line-height: 1.6; max-width: 640px; margin: 0;
}
.contact-main { padding: 40px 0 120px; }
.contact-grid {
    display: grid; grid-template-columns: 1.3fr 1fr;
    gap: 72px;
}
@media (max-width: 991px) { .contact-grid { grid-template-columns: 1fr; gap: 48px; } }
.contact-form-col { font-family: 'Inter', sans-serif; }
.contact-form-col .contact-form-h2 { font-size: clamp(28px, 3vw, 40px); }
.contact-info-card {
    background: var(--bibby-soft);
    border-radius: 20px;
    padding: 40px 36px;
    display: flex; flex-direction: column; gap: 24px;
}
.contact-info-block h4 {
    font-family: 'Inter Tight', sans-serif;
    font-size: 12px; font-weight: 700;
    letter-spacing: 0.14em; text-transform: uppercase;
    color: var(--bibby-muted); margin: 0 0 6px;
}
.contact-info-block p {
    font-size: 15px; color: var(--bibby-ink);
    line-height: 1.55; margin: 0;
}
.contact-info-block a { color: var(--bibby-ink); text-decoration: none; border-bottom: 1px solid transparent; }
.contact-info-block a:hover { border-bottom-color: var(--bibby-blue); color: var(--bibby-blue); }
.contact-social { display: flex; gap: 16px; }
.contact-social a { font-size: 14px; font-weight: 500; }

/* ═══ TESTIMONIALS PAGE ═══ */
.testimonials-hero { padding: 120px 0 60px; font-family: 'Inter', sans-serif; text-align: center; }
.tst-h1 {
    font-family: 'Inter Tight', sans-serif;
    font-size: clamp(52px, 7vw, 88px);
    font-weight: 500; line-height: 1;
    letter-spacing: -0.035em; color: var(--bibby-ink); margin: 0 0 24px;
}
.tst-lede {
    font-size: 17px; color: var(--bibby-body);
    line-height: 1.6; max-width: 640px; margin: 0 auto;
}
.tst-lede a { color: var(--bibby-blue); text-decoration: underline; text-underline-offset: 3px; }
.testimonials-stack { padding: 40px 0 100px; font-family: 'Inter', sans-serif; }
.tst-card {
    display: grid; grid-template-columns: 1fr 1.2fr;
    gap: 56px; align-items: center;
    padding: 64px 0;
    border-top: 1px solid var(--bibby-border);
}
.tst-card:last-child { border-bottom: 1px solid var(--bibby-border); }
.tst-card.tst-flip { grid-template-columns: 1.2fr 1fr; }
.tst-card.tst-flip .tst-image { order: 2; }
.tst-card.tst-flip .tst-copy { order: 1; }
@media (max-width: 991px) {
    .tst-card, .tst-card.tst-flip { grid-template-columns: 1fr; gap: 28px; padding: 40px 0; }
    .tst-card.tst-flip .tst-image, .tst-card.tst-flip .tst-copy { order: initial; }
}
.tst-image { position: relative; }
.tst-image img, .tst-image-placeholder {
    width: 100%; aspect-ratio: 5/4;
    object-fit: cover; border-radius: 20px; display: block;
}
.tst-image-placeholder {
    background: linear-gradient(135deg, var(--border) 0%, var(--soft) 100%);
}
.tst-quote-mark {
    font-family: 'Cormorant Garamond', serif;
    font-size: 120px; line-height: .4;
    color: var(--bibby-blue);
    display: block; margin-bottom: 12px;
}
.tst-quote {
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(22px, 2.6vw, 32px);
    font-weight: 300; font-style: italic;
    line-height: 1.35; color: var(--bibby-ink);
    margin: 0 0 24px; border: none; padding: 0;
}
.tst-attrib {
    display: flex; flex-wrap: wrap; gap: 8px 16px;
    font-size: 14px; color: var(--bibby-body);
    margin: 0;
}
.tst-attrib strong {
    font-family: 'Inter Tight', sans-serif;
    font-weight: 600; color: var(--bibby-ink);
    font-size: 15px;
}
.tst-loc {
    display: inline-flex; align-items: center;
    color: var(--bibby-muted);
    font-size: 13px; letter-spacing: 0.04em;
}
.tst-loc::before { content: '·'; margin-right: 8px; color: var(--bibby-muted); }
.tst-placeholder-note {
    text-align: center; font-size: 13px;
    color: var(--bibby-muted); margin: 40px 0 0; font-style: italic;
}
.testimonials-cta { padding: 100px 0; background: var(--bibby-soft); }
.tst-cta-inner { text-align: center; max-width: 640px; margin: 0 auto; }
.tst-cta-inner h2 {
    font-family: 'Inter Tight', sans-serif;
    font-size: clamp(30px, 3.4vw, 44px);
    font-weight: 500; letter-spacing: -0.025em;
    color: var(--bibby-ink); margin: 0 0 16px;
}
.tst-cta-inner p {
    font-size: 16px; color: var(--bibby-body);
    line-height: 1.6; margin: 0 0 28px;
}
.tst-cta-buttons { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

/* ═══ NEWS PAGE ═══ */
.news-hero { padding: 40px 0; font-family: 'Inter', sans-serif; }
.news-hero-card {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 48px;
    padding: 40px;
    background: var(--bibby-soft);
    border-radius: 24px;
    text-decoration: none; color: inherit;
    transition: transform .3s ease;
    align-items: center;
}
.news-hero-card:hover { transform: translateY(-2px); }
@media (max-width: 767px) { .news-hero-card { grid-template-columns: 1fr; gap: 24px; padding: 28px; } }
.news-hero-image { border-radius: 16px; overflow: hidden; aspect-ratio: 4/3; background: var(--border); }
.news-hero-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.news-hero-h1 {
    font-family: 'Inter Tight', sans-serif;
    font-size: clamp(28px, 3vw, 40px);
    font-weight: 500; letter-spacing: -0.025em;
    line-height: 1.15; color: var(--bibby-ink);
    margin: 0 0 16px;
}
.news-hero-excerpt { font-size: 15px; color: var(--bibby-body); line-height: 1.6; margin: 0 0 18px; }
.news-hero-more { color: var(--bibby-blue); font-weight: 600; font-size: 14px; }

.news-main { padding: 40px 0 100px; font-family: 'Inter', sans-serif; }
.news-layout {
    display: grid; grid-template-columns: 240px 1fr;
    gap: 64px;
}
@media (max-width: 991px) { .news-layout { grid-template-columns: 1fr; gap: 40px; } }
.news-filter-list { list-style: none; padding: 0; margin: 0 0 24px; display: flex; flex-direction: column; gap: 4px; }
.news-filter-link {
    display: block; padding: 10px 0;
    font-size: 15px; font-weight: 500;
    color: var(--bibby-body); text-decoration: none;
    border-bottom: 1px solid var(--bibby-border);
    transition: color .15s;
}
.news-filter-link:hover { color: var(--bibby-blue); }
.news-filter-link.is-active { color: var(--bibby-ink); font-weight: 600; }
.news-top-list { list-style: none; padding: 0; margin: 0; counter-reset: n; }
.news-top-list li {
    display: flex; gap: 14px;
    padding: 14px 0;
    border-bottom: 1px solid var(--bibby-border);
    align-items: flex-start;
}
.news-top-num {
    font-family: 'Inter Tight', sans-serif;
    font-size: 14px; font-weight: 700;
    color: var(--bibby-blue); letter-spacing: 0.08em;
    flex-shrink: 0;
}
.news-top-list a {
    font-size: 14px; color: var(--bibby-ink);
    text-decoration: none; line-height: 1.4; font-weight: 500;
}
.news-top-list a:hover { color: var(--bibby-blue); }
.news-grid {
    display: grid; grid-template-columns: repeat(2, 1fr);
    gap: 32px;
}
@media (max-width: 767px) { .news-grid { grid-template-columns: 1fr; } }
.news-card { background: #fff; border-radius: 16px; overflow: hidden; border: 1px solid var(--bibby-border); transition: transform .25s ease, box-shadow .25s ease; }
.news-card:hover { transform: translateY(-3px); box-shadow: 0 16px 40px rgba(10,13,20,.06); }
.news-card-link { text-decoration: none; color: inherit; display: block; }
.news-card-image { aspect-ratio: 16/10; background: var(--border); overflow: hidden; }
.news-card-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.news-card-body { padding: 24px 24px 28px; }
.news-card-cat {
    display: inline-block;
    font-size: 11px; font-weight: 700;
    letter-spacing: 0.12em; color: var(--bibby-blue);
    margin-right: 10px;
}
.news-card-date { font-size: 12px; color: var(--bibby-muted); letter-spacing: 0.04em; }
.news-card-title {
    font-family: 'Inter Tight', sans-serif;
    font-size: 20px; font-weight: 500;
    letter-spacing: -0.01em; line-height: 1.25;
    color: var(--bibby-ink); margin: 12px 0 10px;
}
.news-card-excerpt { font-size: 14px; color: var(--bibby-body); line-height: 1.55; margin: 0 0 14px; }
.news-card-more { color: var(--bibby-blue); font-weight: 600; font-size: 13px; }
.news-pagination { margin-top: 48px; text-align: center; }
.news-pagination .page-numbers {
    display: inline-block; padding: 8px 14px; margin: 0 4px;
    border: 1px solid var(--bibby-border); border-radius: 8px;
    color: var(--bibby-ink); text-decoration: none;
    font-size: 14px; font-weight: 500;
}
.news-pagination .page-numbers.current,
.news-pagination .page-numbers:hover { background: var(--bibby-ink); color: #fff; border-color: var(--bibby-ink); }
.news-empty { text-align: center; color: var(--bibby-muted); padding: 80px 0; font-size: 15px; }

/* --- v3.4.1 Palette amplification: hero cyan wash + homepage gold stat accent --- */
.v33-hero::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    background: radial-gradient(900px 500px at 12% 20%, rgba(42,170,225,0.28), transparent 62%),
                radial-gradient(700px 400px at 90% 85%, rgba(253,203,13,0.10), transparent 60%);
    pointer-events: none;
}
.v3-stats .v3-stat-num .blue { color: var(--gold) !important; }

/* Eyebrow: plain uppercase cyan (Compass pattern — no underline) */
[class*="eyebrow"] { margin-bottom: 16px; }
.section-rule-gold {
    height: 1px;
    background: linear-gradient(90deg, transparent 0%, var(--gold) 20%, var(--gold) 80%, transparent 100%);
    opacity: 0.45;
    margin: 0 auto;
    max-width: 1200px;
}
.price-serif, .listing-price-serif, .card-price {
    background: var(--grad-gold);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* =====================================================================
   v3.5.1 Compass-literal hero IDX — rectangular tabs + boxy search card
   ===================================================================== */

.cmp-hero-form {
    max-width: 780px;
    margin: 0;
}

/* Flat rectangular tab row — tabs flagged on top of search card */
.cmp-hero-tabs {
    display: inline-flex;
    gap: 0;
    margin: 0;
    padding: 0;
    background: transparent;
    backdrop-filter: none;
    border: 0;
    border-radius: 0;
}
.cmp-hero-tabs button {
    background: rgba(255,255,255,0.92);
    border: 0;
    color: var(--dark);
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.01em;
    padding: 12px 28px;
    border-radius: 0;
    cursor: pointer;
    transition: background .15s var(--ease), color .15s var(--ease);
    min-width: 96px;
}
/* v4.1.0 — inverted tab logic: default = white/clear (passive), selected = cyan (action) */
.cmp-hero-tabs button:nth-child(2),
.cmp-hero-tabs button:nth-child(3) { background: rgba(255,255,255,0.92); }
.cmp-hero-tabs button:hover { background: #fff; }
.cmp-hero-tabs button[aria-selected="true"] {
    background: var(--blue);
    color: #fff;
    font-weight: 600;
}

/* Rectangular white search card below tabs */
.cmp-hero-search {
    display: flex;
    align-items: stretch;
    background: #fff;
    border-radius: 0;
    padding: 0;
    box-shadow: 0 14px 36px rgba(0,0,0,0.24);
    max-width: 780px;
    gap: 0;
}
.cmp-hero-search input {
    flex: 1;
    border: 0;
    outline: 0;
    background: transparent;
    font-family: 'Inter', sans-serif;
    font-size: 15px;
    color: var(--dark);
    padding: 18px 22px;
    min-width: 0;
}
.cmp-hero-search input::placeholder { color: var(--muted); }
.cmp-hero-search button[type="submit"] {
    flex: 0 0 60px;
    width: 60px;
    border: 0;
    background: var(--blue);
    color: #fff;
    border-radius: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background .15s var(--ease);
}
.cmp-hero-search button[type="submit"]:hover { background: var(--blue-hover); }
.cmp-hero-search button[type="submit"] svg { width: 20px; height: 20px; }

/* Serif display headline for Compass feel */
.v33-hero h1 {
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    font-weight: 500 !important;
    letter-spacing: -0.01em !important;
    font-size: clamp(38px, 3.8vw, 56px) !important;
    line-height: 1.08 !important;
    margin-bottom: 28px !important;
}

@media (max-width: 767px) {
    .cmp-hero-tabs button { padding: 10px 18px; font-size: 13px; min-width: 0; flex: 1; }
    .cmp-hero-tabs { display: flex; width: 100%; }
    .cmp-hero-search input { font-size: 14px; padding: 14px 16px; }
    .cmp-hero-search button[type="submit"] { flex: 0 0 52px; width: 52px; }
    .v33-hero h1 { font-size: clamp(32px, 8vw, 42px) !important; }
}

/* Preapproval band — subtle inline below hero */
.cmp-preapproval {
    background: #fff;
    border-bottom: 1px solid var(--border);
    padding: 20px 0;
}
.cmp-preapproval .wrap {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 32px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
}
.cmp-preapproval-copy {
    display: flex;
    align-items: center;
    gap: 14px;
    flex: 1;
    min-width: 260px;
}
.cmp-preapproval-copy .icon {
    flex: 0 0 36px;
    width: 36px; height: 36px;
    border-radius: 50%;
    background: var(--soft);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--blue);
}
.cmp-preapproval-copy .icon svg { width: 18px; height: 18px; }
.cmp-preapproval-copy p {
    margin: 0;
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    color: var(--dark);
    line-height: 1.4;
}
.cmp-preapproval-copy p strong { font-weight: 600; }
.cmp-preapproval-copy p span { color: var(--body); }
.cmp-preapproval a.cmp-preapproval-cta {
    color: var(--blue);
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: color .15s var(--ease);
}
.cmp-preapproval a.cmp-preapproval-cta:hover { color: var(--blue-hover); }
.cmp-preapproval a.cmp-preapproval-cta svg { width: 14px; height: 14px; transition: transform .15s var(--ease); }
.cmp-preapproval a.cmp-preapproval-cta:hover svg { transform: translateX(2px); }

@media (max-width: 767px) {
    .cmp-preapproval .wrap { flex-direction: column; align-items: flex-start; gap: 12px; padding: 0 20px; }
}

/* =====================================================================
   v3.5.2 Transparent homepage header — Compass pattern
   Header floats over hero image at top; goes solid white on scroll.
   ===================================================================== */
body.home #masthead {
    background: transparent !important;
    border-bottom: 0 !important;
    box-shadow: none !important;
    transition: background .2s var(--ease), border-color .2s var(--ease);
}
body.home #masthead .shb-nav a,
body.home #masthead .shb-wordmark { color: #fff !important; }
body.home #masthead .shb-nav a::after { background: #fff !important; }
body.home #masthead .shb-logo img { filter: brightness(0) invert(1); }
body.home #masthead .shb-burger span { background: #fff !important; }

/* All scrolled-state rules on body.home removed. Header stays transparent with white nav,
   scrolls away with hero naturally (position: absolute). User confirmed OK with losing menu visibility. */

/* Pull hero up so image extends all the way to the top (under the transparent header) */
body.home main#content { margin-top: 0 !important; padding-top: 0 !important; }
body.home .v33-hero { margin-top: 0; }

/* Hero video — fills container like the prior img */
.v33-hero-img video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* v3.5.4 — Homepage: header floats absolutely over hero video (full-bleed top)
   On scroll (body.scrolled.home OR .home.scrolled) → back to fixed solid white.
   Also remove the pseudo-space left by sticky positioning. */
body.home .site-header-bibby,
body.home #masthead {
    position: absolute !important;
    top: 0; left: 0; right: 0;
    z-index: 100;
}
/* Compass pattern: header stays absolute on body.home and scrolls away with the hero.
   Do NOT re-fix on scroll — user confirmed OK with losing menu visibility after hero. */
body.home main#content,
body.home .site-main { padding-top: 0 !important; margin-top: 0 !important; }
/* Let the hero image/video cover the header area since header is transparent */
body.home .v33-hero { padding-top: 0 !important; padding-bottom: 0 !important; }

/* v3.5.7 — Compass-literal hero stack, left-biased (grounded to leading edge) */
body.home { padding-top: 0 !important; }

body.home .v33-hero-inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;    /* stack everything left-grounded */
    justify-content: flex-start;/* near top vertically */
    min-height: 62vh;           /* Compass-height, not full viewport */
    padding: 15vh 8% 8vh;       /* tighter vertical rhythm */
    text-align: left;
}
body.home .v33-hero h1 {
    text-align: left !important;
    margin: 0 0 32px !important;
    max-width: none;
}
body.home .cmp-hero-form {
    margin: 0 !important;
    width: 100%;
    max-width: 780px;
}
body.home .cmp-hero-tabs { align-self: flex-start; }

@media (max-width: 767px) {
    body.home .v33-hero-inner { padding: 12vh 20px 5vh; min-height: 58vh; }
    body.home .cmp-hero-form { max-width: 100%; }
}

/* =====================================================================
   v3.6.0 — TRB-inspired homepage flow
   Meet Stevie · Featured Listings · Testimonial · Valuation · Market Notes
   Signature pattern: alternating half-split editorial panels
   ===================================================================== */

.nb-wrap { max-width: 1280px; margin: 0 auto; padding: 0 32px; }
.nb-section { padding: 96px 0; }
.nb-section-head { margin-bottom: 48px; max-width: 640px; }
.nb-section-head h2 { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500; font-size: clamp(32px, 3.2vw, 48px); line-height: 1.1; letter-spacing: -0.01em; margin: 0; color: var(--dark); }
.nb-section-head h2 em { font-style: italic; color: var(--blue); }
.nb-section-foot { margin-top: 56px; text-align: center; }

.nb-eyebrow { font-family: 'Inter', sans-serif; font-size: 12px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--blue); margin: 0 0 18px; display: inline-block; }
.nb-lede { font-family: 'Inter', sans-serif; font-size: 16px; line-height: 1.6; color: var(--body); max-width: 520px; margin: 0 0 32px; }

.nb-btn { display: inline-flex; align-items: center; justify-content: center; padding: 14px 28px; border-radius: 100px; font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.02em; text-decoration: none; border: 1px solid transparent; transition: background .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease); cursor: pointer; }
.nb-btn-dark { background: var(--dark); color: #fff; border-color: var(--dark); }
.nb-btn-dark:hover { background: var(--blue); border-color: var(--blue); color: #fff; }
.nb-btn-outline { background: transparent; color: var(--dark); border-color: var(--dark); }
.nb-btn-outline:hover { background: var(--dark); color: #fff; }

.nb-link-arrow { color: var(--blue); font-size: 14px; font-weight: 600; text-decoration: none; transition: color .15s var(--ease); }
.nb-link-arrow:hover { color: var(--blue-hover); }

/* Split panels — image + copy halves (alternating) */
.nb-split { padding: 0; }
.nb-split-inner { display: grid; grid-template-columns: 1fr 1fr; min-height: 560px; }
.nb-split-flip .nb-split-image { order: 2; }
.nb-split-flip .nb-split-copy { order: 1; }
.nb-split-image { position: relative; overflow: hidden; }
.nb-split-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nb-split-copy { padding: 96px 8%; display: flex; flex-direction: column; justify-content: center; }
.nb-split-copy h2 { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500; font-size: clamp(32px, 3.4vw, 52px); line-height: 1.1; letter-spacing: -0.01em; margin: 0 0 24px; color: var(--dark); }
.nb-split-copy h2 em { font-style: italic; color: var(--blue); }

@media (max-width: 991px) {
    .nb-split-inner { grid-template-columns: 1fr; min-height: 0; }
    .nb-split-flip .nb-split-image { order: 1; }
    .nb-split-flip .nb-split-copy { order: 2; }
    .nb-split-image { aspect-ratio: 4/3; }
    .nb-split-copy { padding: 64px 24px; }
}

/* Featured listings 3×2 grid */
.nb-listings-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
@media (max-width: 991px) { .nb-listings-grid { grid-template-columns: repeat(2, 1fr); gap: 24px; } }
@media (max-width: 576px) { .nb-listings-grid { grid-template-columns: 1fr; } }

.nb-listing-card { position: relative; display: block; text-decoration: none; color: inherit; border-radius: 4px; overflow: hidden; background: #fff; transition: transform .22s var(--ease), box-shadow .22s var(--ease); }
.nb-listing-card:hover { transform: translateY(-3px); box-shadow: 0 16px 36px rgba(0,0,0,0.08); color: inherit; }
.nb-listing-img { aspect-ratio: 5/4; overflow: hidden; background: var(--soft); }
.nb-listing-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s var(--ease); }
.nb-listing-card:hover .nb-listing-img img { transform: scale(1.03); }
.nb-listing-status { position: absolute; top: 14px; left: 14px; background: var(--gold-bright); color: #0E1114; padding: 6px 12px; border-radius: 4px; font-family: 'Inter', sans-serif; font-size: 10px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.nb-listing-body { padding: 20px 4px 0; }
.nb-listing-price { font-family: 'Cormorant Garamond', serif; font-size: 26px; font-weight: 500; color: var(--dark); margin: 0 0 6px; letter-spacing: -0.01em; }
.nb-listing-address { font-family: 'Inter', sans-serif; font-size: 15px; color: var(--body); margin: 0 0 10px; line-height: 1.4; }
.nb-listing-specs { list-style: none; padding: 0; margin: 0; display: flex; gap: 14px; font-family: 'Inter', sans-serif; font-size: 13px; color: var(--muted); }
.nb-listing-specs li + li { padding-left: 14px; border-left: 1px solid var(--border); }

/* Featured testimonial */
.nb-testimonial { background: var(--soft); }
.nb-quote { font-family: 'Cormorant Garamond', Georgia, serif; font-size: clamp(22px, 2vw, 30px); font-style: italic; font-weight: 400; line-height: 1.4; color: var(--dark); margin: 0 0 24px; padding: 0; border: 0; }
.nb-quote p { margin: 0 0 12px; }
.nb-quote p:last-child { margin-bottom: 0; }
.nb-quote-attrib { font-family: 'Inter', sans-serif; font-size: 13px; color: var(--body); letter-spacing: 0.04em; text-transform: uppercase; margin: 0 0 24px; }
.nb-quote-attrib strong { color: var(--blue); font-weight: 600; }

/* Home valuation CTA band */
.nb-valuation { background: var(--dark); color: #fff; padding: 120px 0; text-align: center; }
.nb-valuation-inner { max-width: 720px; margin: 0 auto; }
.nb-valuation .nb-eyebrow { color: rgba(255,255,255,0.6); }
.nb-valuation h2 { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500; font-size: clamp(36px, 4vw, 64px); line-height: 1.1; letter-spacing: -0.01em; margin: 0 0 20px; color: #fff; }
.nb-valuation .nb-lede { color: rgba(255,255,255,0.72); margin: 0 auto 40px; }
.nb-valuation-form { display: flex; max-width: 560px; margin: 0 auto; background: #fff; border-radius: 100px; padding: 6px 6px 6px 24px; gap: 10px; box-shadow: 0 20px 50px rgba(0,0,0,0.28); }
.nb-valuation-form input { flex: 1; border: 0; outline: 0; background: transparent; font-family: 'Inter', sans-serif; font-size: 15px; color: var(--dark); padding: 14px 0; min-width: 0; }
.nb-valuation-form input::placeholder { color: var(--muted); }
.nb-valuation-form button { background: var(--blue); color: #fff; border: 0; border-radius: 100px; padding: 14px 28px; font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; cursor: pointer; white-space: nowrap; transition: background .15s var(--ease); }
.nb-valuation-form button:hover { background: var(--blue-hover); }
@media (max-width: 576px) { .nb-valuation { padding: 80px 0; } .nb-valuation-form { flex-direction: column; padding: 12px; border-radius: 18px; } .nb-valuation-form button { padding: 14px 0; } }

/* Market notes 3-card grid */
.nb-news-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
@media (max-width: 991px) { .nb-news-grid { grid-template-columns: 1fr; gap: 28px; } }
.nb-news-card { display: block; text-decoration: none; color: inherit; transition: color .15s; }
.nb-news-card:hover { color: var(--blue); }
.nb-news-img { aspect-ratio: 5/4; overflow: hidden; border-radius: 4px; margin-bottom: 18px; background: var(--soft); }
.nb-news-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s var(--ease); }
.nb-news-card:hover .nb-news-img img { transform: scale(1.03); }
.nb-news-date { font-family: 'Inter', sans-serif; font-size: 12px; color: var(--muted); letter-spacing: 0.08em; text-transform: uppercase; margin: 0 0 8px; }
.nb-news-title { font-family: 'Inter Tight', sans-serif; font-size: 20px; font-weight: 500; line-height: 1.25; margin: 0; letter-spacing: -0.01em; color: var(--dark); transition: color .15s; }
.nb-news-card:hover .nb-news-title { color: var(--blue); }

/* =====================================================================
   v3.6.1 — TRB visual rework. Editorial craft, not structural skeleton.
   Cream/white alternation, shadow depth, cyan brand CTAs, italic flourish.
   ===================================================================== */

/* Section rhythm — alternating warm-canvas / white / warm-canvas */
.nb-section, .nb-split { padding: 128px 0 !important; }
.nb-section--cream, .nb-split--cream { background: var(--soft) !important; }
.nb-split--cream .nb-split-inner { background: var(--soft); }
.nb-meet { background: #fff !important; }
.nb-listings { background: var(--soft) !important; }
.nb-testimonial { background: #fff !important; }
.nb-news { background: var(--soft) !important; }

/* Generous editorial padding inside split panels */
.nb-split-copy { padding: 0 10% !important; }
@media (max-width: 991px) { .nb-split-copy { padding: 64px 24px !important; } }

/* Typography: tighter leading, larger display sizes, italic cyan flourish */
.nb-split-copy h2, .nb-section-head h2 {
    font-size: clamp(36px, 3.6vw, 56px) !important;
    line-height: 1.05 !important;
    letter-spacing: -0.015em !important;
    margin-bottom: 28px !important;
}
.nb-split-copy h2 em, .nb-section-head h2 em, .nb-valuation h2 em {
    font-style: italic !important;
    color: var(--blue) !important;
    font-weight: 400;
}
.nb-lede { font-size: 17px !important; line-height: 1.65 !important; margin-bottom: 36px !important; }

/* CTAs: solid cyan pill primary, cyan-ghost secondary */
.nb-btn { padding: 16px 32px !important; font-size: 14px; letter-spacing: 0.04em; }
.nb-btn-dark {
    background: var(--blue) !important;
    border-color: var(--blue) !important;
    color: #fff !important;
    box-shadow: 0 6px 20px rgba(0,150,218,0.25);
}
.nb-btn-dark:hover {
    background: var(--blue-hover) !important;
    border-color: var(--blue-hover) !important;
    transform: translateY(-1px);
    box-shadow: 0 10px 28px rgba(0,150,218,0.32);
}
.nb-btn-outline {
    border-color: var(--dark) !important;
    color: var(--dark) !important;
}
.nb-btn-outline:hover {
    background: var(--blue) !important;
    border-color: var(--blue) !important;
    color: #fff !important;
}

/* Listing cards: real shadow depth + warm card body */
.nb-listings-grid { gap: 36px; }
.nb-listing-card {
    background: #fff;
    border-radius: 6px;
    box-shadow: 0 2px 8px rgba(14,17,20,0.05), 0 10px 30px rgba(14,17,20,0.06);
    overflow: hidden;
    padding-bottom: 22px;
}
.nb-listing-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 6px 16px rgba(14,17,20,0.08), 0 22px 48px rgba(14,17,20,0.12);
}
.nb-listing-img { border-radius: 0 !important; margin-bottom: 0 !important; }
.nb-listing-body { padding: 22px 24px 0 !important; }
.nb-listing-price {
    font-size: 30px !important;
    color: var(--blue) !important;
    margin-bottom: 10px !important;
}
.nb-listing-address { font-size: 16px !important; color: var(--dark) !important; font-weight: 500; }
.nb-listing-status { background: var(--dark) !important; font-size: 10px !important; padding: 5px 10px !important; }

/* Split panel image — fill the image side, no rounded corner */
.nb-split-image { min-height: 620px; }
.nb-split-image img { min-height: 620px; }
@media (max-width: 991px) { .nb-split-image, .nb-split-image img { min-height: 420px; } }

/* Meet Stevie — lede gets a thin cyan rule above name hint */
.nb-meet .nb-split-copy::before {
    content: '';
    display: block;
    width: 40px; height: 2px;
    background: var(--gold);
    margin-bottom: 28px;
}

/* Featured testimonial — big serif italic, cream bg already, cyan attrib */
.nb-testimonial { background: var(--soft) !important; }
.nb-quote { font-size: clamp(24px, 2.2vw, 34px) !important; color: var(--dark); line-height: 1.38 !important; }
.nb-quote::before {
    content: '\201C';
    display: block;
    font-family: 'Cormorant Garamond', serif;
    font-size: 90px;
    line-height: 0.4;
    color: var(--blue);
    margin-bottom: 24px;
}
.nb-quote-attrib { font-size: 13px !important; margin-top: 32px !important; }
.nb-quote-attrib strong { color: var(--dark) !important; letter-spacing: 0.08em; }

/* Valuation band — warmer dark with subtle cyan wash */
.nb-valuation {
    position: relative;
    background: var(--dark) !important;
    overflow: hidden;
}
.nb-valuation::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(900px 500px at 20% 30%, rgba(0,150,218,0.18), transparent 60%),
                radial-gradient(700px 400px at 85% 80%, rgba(227,178,36,0.08), transparent 60%);
    pointer-events: none;
}
.nb-valuation-inner { position: relative; z-index: 1; }
.nb-valuation h2 { font-size: clamp(40px, 4.6vw, 68px) !important; }

/* Market notes — subtle shadow, lifted on hover */
.nb-news-card { background: #fff; border-radius: 6px; overflow: hidden; padding-bottom: 22px; box-shadow: 0 2px 8px rgba(14,17,20,0.04), 0 8px 24px rgba(14,17,20,0.05); transition: transform .22s var(--ease), box-shadow .22s var(--ease); }
.nb-news-card:hover { transform: translateY(-4px); box-shadow: 0 14px 36px rgba(14,17,20,0.10); }
.nb-news-img { border-radius: 0 !important; margin-bottom: 0 !important; }
.nb-news-card .nb-news-date, .nb-news-card .nb-news-title { padding: 0 22px; }
.nb-news-date { margin: 18px 22px 8px !important; padding: 0 !important; }
.nb-news-title { margin: 0 22px !important; padding: 0 !important; font-size: 22px !important; }

/* Section head centered for news + listings */
.nb-listings .nb-section-head, .nb-news .nb-section-head { text-align: center; max-width: 720px; margin: 0 auto 64px; }
.nb-section-foot { margin-top: 72px !important; }

/* v3.6.2 — Post-audit fixes from Playwright/browse capture */
/* Meet Stevie + split panels: natural aspect ratio, no forced min-height crop */
.nb-split-image, .nb-split-image img { min-height: 0 !important; }
.nb-split-image { aspect-ratio: 4/5; }
@media (max-width: 991px) { .nb-split-image { aspect-ratio: 4/3; } }

/* Valuation: widen container so 64px serif fits on one line */
.nb-valuation-inner { max-width: 960px !important; }
.nb-valuation h2 { font-size: clamp(36px, 3.6vw, 54px) !important; white-space: nowrap; }
@media (max-width: 767px) { .nb-valuation h2 { white-space: normal; font-size: clamp(30px, 7vw, 40px) !important; } }

/* =====================================================================
   v3.6.4 — Meet Stevie: single portrait + text card, equal-height panels.
   No composite/cutout. Stevie's full headshot fills the left panel, matched
   to the text card's height via grid stretch. Warm cream canvas retained
   for hero→section transition cohesion.
   ===================================================================== */

/* Warm canvas breaks the sharp hero→section line */
.nb-meet {
    background: #F4EFE8 !important;
    position: relative;
    padding: 140px 0 128px !important;
    overflow: visible !important;
}

/* Hard cut — no gradient bridge (compass.com-style clean edge) */
.nb-meet::before { content: none !important; }

/* Equal-column grid, stretch so both panels share the same height */
.nb-meet .nb-split-inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 4%;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: stretch;
    min-height: 0;
}

/* Stevie's portrait frame — Toronto condo backdrop + cutout portrait composite */
.nb-meet .nb-meet-portrait-frame {
    position: relative;
    overflow: hidden;
    border-radius: 2px;
    box-shadow: 0 24px 60px -24px rgba(14, 17, 20, 0.22), 0 6px 16px -8px rgba(14, 17, 20, 0.12);
    min-height: 0 !important;
    aspect-ratio: auto !important;
    background: #1a1a1a url('https://nestabode.com/wp-content/uploads/2026/04/toronto-condo-cntower-sunset.jpg') center/cover no-repeat;
}

/* Stevie cutout — bottom-anchored full-height, natural width (sides crop to frame) */
.nb-meet .nb-meet-portrait-frame img {
    position: absolute !important;
    left: 50% !important;
    bottom: 0 !important;
    transform: translateX(-50%) !important;
    height: 100% !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    object-fit: contain !important;
    display: block;
}

/* Floating white text card — matched height, content vertically centered */
.nb-meet .nb-split-copy {
    background: #ffffff;
    padding: 72px 56px !important;
    box-shadow: 0 24px 60px -24px rgba(14, 17, 20, 0.14), 0 6px 16px -8px rgba(14, 17, 20, 0.08);
    border-radius: 2px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 0;
}

.nb-meet .nb-split-copy .nb-eyebrow { margin-bottom: 20px; }
.nb-meet .nb-split-copy h2 { margin-bottom: 24px !important; }
.nb-meet .nb-split-copy .nb-lede { max-width: none; }

@media (max-width: 991px) {
    .nb-meet { padding: 64px 0 80px !important; }
    .nb-meet .nb-split-inner {
        grid-template-columns: 1fr;
        gap: 24px;
        padding: 0 16px;
    }
    .nb-meet .nb-meet-portrait-frame { aspect-ratio: 4 / 5 !important; }
    .nb-meet .nb-split-copy { padding: 48px 28px !important; }
}




/* ═══════════════════════════════════════════════════════════════════
   v3.7 — TRB-pattern Featured Listings (For Sale + Sold mix)
   Benchmark: torontorealtyboutique.com/#homepage-listings
   ═══════════════════════════════════════════════════════════════════ */

.nb-trb-listings {
    padding: 120px 0;
    background: #fff;
}

.nb-trb-listings .nb-wrap {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 40px;
}

.nb-trb-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 40px;
    margin-bottom: 56px;
}

.nb-trb-head-copy { max-width: 680px; }

.nb-trb-eyebrow {
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--muted);
    margin: 0 0 14px;
}

.nb-trb-listings .nb-trb-headline {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(36px, 4.6vw, 64px);
    line-height: 1.02;
    letter-spacing: -0.01em;
    color: var(--dark);
    font-weight: 400;
    margin: 0 0 22px;
}

.nb-trb-listings .nb-trb-headline em {
    font-style: italic;
    font-weight: 400;
}

.nb-trb-intro {
    font-family: 'Inter', sans-serif;
    font-size: 16px;
    line-height: 1.55;
    color: var(--body);
    margin: 0;
    max-width: 540px;
}

.nb-trb-head-cta { flex-shrink: 0; }

.nb-trb-cta-pill {
    display: inline-flex;
    align-items: center;
    padding: 16px 34px;
    background: var(--blue);
    color: #fff !important;
    border-radius: 2px;
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.2s var(--ease);
}

.nb-trb-cta-pill:hover {
    background: var(--blue-hover);
    color: #fff !important;
}

.nb-trb-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px 28px;
}

.nb-trb-card {
    display: block;
    text-decoration: none;
    color: inherit !important;
    transition: transform 0.3s var(--ease);
}

.nb-trb-card:hover { transform: translateY(-4px); }

.nb-trb-img {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #f3f3f3;
}

.nb-trb-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s var(--ease);
}

.nb-trb-card:hover .nb-trb-img img { transform: scale(1.04); }

.nb-trb-status {
    position: absolute;
    top: 0;
    right: 0;
    padding: 8px 22px 7px;
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #fff;
    z-index: 2;
    line-height: 1.1;
}

/* v4.1.0 — status badges follow palette discipline: gold = high-value accent (status), cyan reserved for CTAs */
.nb-trb-status-sale { background: var(--gold-bright); color: #0E1114; }   /* Hearth Gold + ink */
.nb-trb-status-sold { background: var(--dark); color: #fff; }              /* Ink slab — distinguishes sold from active */

/* v4.1.0 — Schedule Viewing sidebar (HouseSigma-pattern lead driver) */
.nb-schedule-card {
    background: var(--soft);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 28px 24px;
    position: sticky;
    top: 96px;
}
.nb-schedule-title {
    font-family: 'Inter Tight', 'Inter', sans-serif;
    font-size: 22px;
    font-weight: 700;
    color: var(--dark);
    margin: 0 0 4px;
    letter-spacing: -0.01em;
}
.nb-schedule-sub {
    font-size: 14px;
    color: var(--body);
    margin: 0 0 20px;
}
.nb-schedule-form { display: block; }
.nb-schedule-field { margin-bottom: 10px; }
.nb-schedule-row { display: flex; gap: 10px; }
.nb-schedule-row .nb-schedule-field { flex: 1 1 0; margin-bottom: 10px; }
.nb-schedule-input {
    width: 100%;
    box-sizing: border-box;
    padding: 13px 15px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--white);
    color: var(--dark);
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    line-height: 1.4;
    transition: border-color 0.15s var(--ease), box-shadow 0.15s var(--ease);
}
.nb-schedule-input::placeholder { color: var(--muted); }
.nb-schedule-input:focus {
    outline: none;
    border-color: var(--blue);
    box-shadow: 0 0 0 3px rgba(0,150,218,0.14);
}
.nb-schedule-msg {
    resize: vertical;
    min-height: 96px;
    font-family: 'Inter', sans-serif;
    line-height: 1.5;
}
.nb-schedule-required {
    font-size: 12px;
    color: var(--muted);
    margin: 4px 0 12px;
}
.nb-schedule-disclaimer {
    font-size: 12.5px;
    color: var(--body);
    line-height: 1.5;
    margin: 0 0 16px;
}
.nb-schedule-cta {
    display: block;
    width: 100%;
    padding: 16px;
    background: var(--blue);
    color: #fff;
    font-family: 'Inter', sans-serif;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.02em;
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    transition: background 0.15s var(--ease), transform 0.15s var(--ease);
}
.nb-schedule-cta:hover { background: var(--blue-hover); transform: translateY(-1px); }
.nb-schedule-cta:active { transform: translateY(0); }
@media (max-width: 768px) {
    .nb-schedule-row { flex-direction: column; gap: 0; }
    .nb-schedule-card { position: relative; top: 0; }
}

.nb-trb-info { padding: 20px 0 0; }

.nb-trb-listings .nb-trb-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 22px;
    line-height: 1.25;
    margin: 0 0 12px;
    color: var(--dark);
    font-weight: 500;
    letter-spacing: -0.005em;
}

.nb-trb-details {
    display: grid;
    grid-template-columns: 7fr 5fr;
    gap: 8px;
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    color: var(--dark);
    letter-spacing: 0.02em;
}

.nb-trb-details-left { min-width: 0; }

.nb-trb-price { font-weight: 500; }

.nb-trb-sep {
    color: var(--muted);
    margin: 0 2px;
}

.nb-trb-hood { font-style: italic; }

.nb-trb-details-right {
    text-align: right;
    opacity: 0.7;
    white-space: nowrap;
}

.nb-trb-plus {
    color: var(--muted);
    margin: 0 2px;
}

@media (max-width: 991px) {
    .nb-trb-listings { padding: 80px 0; }
    .nb-trb-listings .nb-wrap { padding: 0 24px; }
    .nb-trb-head {
        flex-direction: column;
        align-items: flex-start;
        gap: 24px;
        margin-bottom: 40px;
    }
    .nb-trb-grid { grid-template-columns: repeat(2, 1fr); gap: 36px 24px; }
}

@media (max-width: 600px) {
    .nb-trb-listings { padding: 64px 0; }
    .nb-trb-grid { grid-template-columns: 1fr; gap: 32px; }
    .nb-trb-listings .nb-trb-headline { font-size: clamp(30px, 9vw, 42px); }
}


/* ═══════════════════════════════════════════════════════════════════
   v3.8 — Pre-Construction + Assignments section (TRB-pattern split)
   Benchmark: torontorealtyboutique.com/#homepage-hover-links
   Full-bleed 2-col: Abode Cyan copy panel + large image panel
   ═══════════════════════════════════════════════════════════════════ */

.nb-preco {
    width: 100%;
    background: var(--dark);
}

.nb-preco-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
    min-height: 620px;
}

.nb-preco-copy {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 80px clamp(48px, 6vw, 100px);
    background: var(--dark);
}

.nb-preco-copy-wrap {
    max-width: 520px;
    width: 100%;
}

.nb-preco-eyebrow {
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #fff;
    margin: 0 0 16px;
    opacity: 0.92;
}

.nb-preco .nb-preco-headline {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(38px, 4.2vw, 58px);
    line-height: 1.05;
    letter-spacing: -0.005em;
    color: #fff;
    font-weight: 400;
    margin: 0 0 20px;
}

.nb-preco-intro {
    font-family: 'Inter', sans-serif;
    font-size: 19px;
    line-height: 1.45;
    color: #fff;
    margin: 0 0 36px;
    max-width: 460px;
}

.nb-preco-ctas {
    display: flex;
    flex-direction: column;
    gap: 14px;
    max-width: 480px;
}

.nb-preco-btn {
    display: block;
    width: 100%;
    padding: 22px 26px 18px;
    background: rgba(255, 255, 255, 0.78);
    color: var(--dark) !important;
    border-radius: 8px;
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-align: center;
    text-decoration: none;
    transition: background 0.2s var(--ease), transform 0.2s var(--ease);
}

.nb-preco-btn:hover {
    background: #fff;
    color: var(--dark) !important;
    transform: translateY(-1px);
}

.nb-preco-media {
    position: relative;
    overflow: hidden;
    background: #0a2a3d;
}

.nb-preco-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

@media (max-width: 991px) {
    .nb-preco-inner {
        grid-template-columns: 1fr;
        min-height: 0;
    }
    .nb-preco-copy {
        padding: 64px 28px 56px;
        order: 2;
    }
    .nb-preco-media {
        order: 1;
        aspect-ratio: 16 / 9;
    }
    .nb-preco-copy-wrap { max-width: none; }
    .nb-preco-ctas { max-width: none; }
}

@media (max-width: 600px) {
    .nb-preco .nb-preco-headline { font-size: clamp(32px, 8vw, 42px); }
    .nb-preco-intro { font-size: 17px; }
    .nb-preco-copy { padding: 56px 22px 48px; }
    .nb-preco-btn { padding: 20px 22px 16px; font-size: 13px; }
}


/* ═══════════════════════════════════════════════════════════════════
   v3.8.2 — .nb-valuation h2 cascade fix
   Root cause: `.v3 h2` (0,0,1,1) was beating `.nb-valuation h2` (0,0,1,1)
   on source order — forcing color to var(--dark) on dark section.
   Also removed legacy `white-space: nowrap` that clipped "today?" off-screen.
   ═══════════════════════════════════════════════════════════════════ */

.nb-valuation .nb-valuation-inner h2,
section.nb-valuation h2 {
    color: #fff !important;
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    font-weight: 400 !important;
    font-size: clamp(34px, 4vw, 56px) !important;
    line-height: 1.15 !important;
    letter-spacing: -0.01em !important;
    white-space: normal !important;
    margin: 0 0 18px !important;
}

.nb-valuation .nb-valuation-inner h2 em,
section.nb-valuation h2 em {
    color: var(--blue) !important;
    font-style: italic !important;
    font-family: inherit !important;
    font-weight: 400 !important;
    font-size: inherit !important;
}


/* ═══════════════════════════════════════════════════════════════════
   v3.9.0 — VIDEO-FORWARD HOMEPAGE
   Hero video (existing .v33-hero-img video rule at ~L1628 covers it).
   Meet Stevie backdrop video, Property Tour section, Valuation stat band,
   Testimonials v2 grid. Respects .v3 wrapper specificity.
   ═══════════════════════════════════════════════════════════════════ */

/* --- Meet Stevie: video backdrop layers ABOVE CSS bg, BELOW portrait --- */
.nb-meet .nb-meet-portrait-frame .nb-meet-backdrop-video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
    pointer-events: none;
}
.nb-meet .nb-meet-portrait-frame img.nb-meet-portrait {
    z-index: 2;
}

/* --- Property Tour section --- */
.nb-property-tour {
    background: var(--soft);
    padding: 100px 0;
}
.v3 .nb-property-tour .nb-wrap h2.nb-tour-headline {
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    font-size: clamp(36px, 4vw, 56px) !important;
    line-height: 1.1 !important;
    color: var(--dark) !important;
    font-weight: 400 !important;
    text-align: center;
    margin: 12px auto 40px !important;
    max-width: 800px;
    letter-spacing: -0.01em;
}
.v3 .nb-property-tour .nb-wrap h2.nb-tour-headline em {
    font-style: italic !important;
    color: var(--blue) !important;
    font-family: inherit !important;
}
.nb-property-tour .nb-eyebrow {
    text-align: center;
    margin: 0 0 0;
}
.nb-tour-video {
    max-width: 1100px;
    margin: 0 auto;
    aspect-ratio: 16 / 9;
    border-radius: 4px;
    overflow: hidden;
    box-shadow: 0 24px 60px -24px rgba(14, 17, 20, 0.28), 0 6px 16px -8px rgba(14, 17, 20, 0.14);
    background: #000;
}
.nb-tour-video video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
@media (max-width: 767px) {
    .nb-property-tour { padding: 72px 0; }
    .nb-tour-video { margin: 0 16px; }
}

/* --- Valuation CTA: inline Track Record stat band --- */
.nb-valuation-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px 24px;
    max-width: 720px;
    margin: 8px auto 48px;
    padding: 32px 0 0;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.nb-stat-tile {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}
.nb-stat-num {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(36px, 3.4vw, 48px);
    line-height: 1;
    color: var(--gold);
    font-weight: 500;
    letter-spacing: -0.01em;
    margin: 0 0 10px;
}
.nb-stat-lbl {
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.7);
    line-height: 1.3;
}
@media (max-width: 767px) {
    .nb-valuation-stats {
        grid-template-columns: repeat(3, 1fr);
        gap: 20px 12px;
        padding: 24px 0 0;
    }
}

/* --- Testimonials v2 grid --- */
.nb-testimonials-v2 {
    background: var(--soft);
    padding: 100px 0;
}
.nb-testimonials-v2 .nb-section-head {
    text-align: center;
    margin: 0 0 48px;
}
.nb-testimonials-v2 .nb-eyebrow { justify-content: center; display: inline-flex; margin-bottom: 12px; }
.v3 .nb-testimonials-v2 .nb-wrap h2.nb-tst-headline {
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    font-size: clamp(34px, 3.6vw, 48px) !important;
    line-height: 1.1 !important;
    color: var(--dark) !important;
    font-weight: 400 !important;
    max-width: 680px;
    margin: 0 auto !important;
    text-align: center;
    letter-spacing: -0.01em;
}
.v3 .nb-testimonials-v2 .nb-wrap h2.nb-tst-headline em {
    font-style: italic !important;
    color: var(--blue) !important;
    font-family: inherit !important;
}
.nb-tst-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.nb-tst-card {
    background: #fff;
    padding: 36px 30px;
    border-radius: 6px;
    box-shadow: 0 6px 18px -8px rgba(14, 17, 20, 0.10), 0 2px 6px -2px rgba(14, 17, 20, 0.06);
    display: flex;
    flex-direction: column;
    border: 1px solid var(--border);
}
.nb-tst-quote {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-style: italic;
    font-size: 20px;
    line-height: 1.45;
    color: var(--dark);
    margin: 0 0 24px;
    flex: 1;
    letter-spacing: -0.005em;
}
.nb-tst-quote::before {
    content: '"';
    display: inline-block;
    color: var(--blue);
    font-size: 32px;
    line-height: 0;
    position: relative;
    top: 8px;
    margin-right: 4px;
}
.nb-tst-attrib { display: flex; flex-direction: column; gap: 2px; border-top: 1px solid var(--border); padding-top: 18px; }
.nb-tst-name {
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: var(--dark);
    letter-spacing: 0.01em;
}
.nb-tst-loc {
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    color: var(--body);
    letter-spacing: 0.02em;
}
@media (max-width: 991px) {
    .nb-tst-grid { grid-template-columns: 1fr; gap: 16px; }
    .nb-testimonials-v2 { padding: 72px 0; }
}

/* --- v3.9.0 Pexels attribution credit line --- */
.sfv2-credit {
    text-align: center;
    padding: 12px 0 0;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    margin-top: 16px;
}
.sfv2-credit small {
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    color: rgba(255, 255, 255, 0.45);
    letter-spacing: 0.04em;
}
.sfv2-credit a {
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}
.sfv2-credit a:hover {
    color: var(--blue-light);
    border-bottom-color: var(--blue-light);
}




/* ═══════════════════════════════════════════════════════════════════
   v3.10.0 — REAL EXPOSURE / Marketing Machine
   Split layout: copy LEFT, video RIGHT (uses .nb-split-flip).
   Section sits on cotton canvas between Featured Listings and Property Tour.
   ═══════════════════════════════════════════════════════════════════ */

.nb-marketing {
    background: #F4EFE8 !important;
    padding: 140px 0 128px !important;
    overflow: visible !important;
}

.nb-marketing .nb-split-inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 4%;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: stretch;
    min-height: 0;
}

.nb-marketing .nb-marketing-frame {
    position: relative;
    overflow: hidden;
    border-radius: 2px;
    box-shadow: 0 24px 60px -24px rgba(14, 17, 20, 0.22), 0 6px 16px -8px rgba(14, 17, 20, 0.12);
    aspect-ratio: 16 / 9;
    background: #0E1114;
    width: 100%;
    max-width: 100%;
    min-width: 0;
}
.nb-marketing .nb-marketing-frame .nb-marketing-video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.nb-marketing .nb-split-copy {
    background: #ffffff;
    padding: 72px 56px !important;
    box-shadow: 0 24px 60px -24px rgba(14, 17, 20, 0.14), 0 6px 16px -8px rgba(14, 17, 20, 0.08);
    border-radius: 2px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 0;
}

.nb-marketing .nb-split-copy .nb-eyebrow { margin-bottom: 20px; }
.nb-marketing .nb-split-copy h2 {
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    font-weight: 500;
    font-size: clamp(32px, 3.4vw, 52px);
    line-height: 1.1;
    letter-spacing: -0.01em;
    color: var(--dark) !important;
    margin: 0 0 24px !important;
}
.nb-marketing .nb-split-copy h2 em {
    font-style: italic;
    color: var(--blue);
}
.nb-marketing .nb-split-copy .nb-lede {
    font-family: 'Inter', sans-serif;
    font-size: 16px;
    line-height: 1.6;
    color: var(--body);
    margin: 0 0 28px;
    max-width: 52ch;
}

.nb-marketing-features {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.nb-marketing-features li {
    position: relative;
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.45;
    color: var(--dark);
    padding-left: 20px;
}
.nb-marketing-features li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 8px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--blue);
}

@media (max-width: 991px) {
    .nb-marketing { padding: 64px 0 80px !important; }
    .nb-marketing .nb-split-inner {
        grid-template-columns: 1fr;
        gap: 24px;
        padding: 0 16px;
    }
    /* Flip order on mobile: video first, copy second (so eyebrow isn't buried above video) */
    .nb-marketing.nb-split-flip .nb-split-image { order: 1; }
    .nb-marketing.nb-split-flip .nb-split-copy { order: 2; }
    .nb-marketing .nb-marketing-frame { aspect-ratio: 16 / 9 !important; }
    .nb-marketing .nb-split-copy { padding: 48px 28px !important; }
    .nb-marketing .nb-split-copy .nb-lede { font-size: 15px; }
}




/* ============================================================
   v4.0.0 — Jacki Lam structural integration (2026-05-11)
   Inner-page hero + Resources hub + Neighbourhood landing pages
   ============================================================ */

/* INNER HERO — Jacki-style 280px compact band */
.nb-inner-hero {
    position: relative;
    height: 520px;
    background: var(--dark) var(--nb-hero-bg) center/cover no-repeat;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
    overflow: hidden;
}
.nb-inner-hero-scrim {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(14,17,20,0.25) 0%, rgba(14,17,20,0.55) 100%);
}
.nb-inner-hero-inner {
    position: relative;
    z-index: 1;
    text-align: center;
    padding: 0 24px;
    max-width: 880px;
}
.nb-inner-hero-eyebrow {
    font-family: 'Inter', sans-serif;
    font-size: 11.5px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--gold);
    margin: 0 0 14px;
    display: inline-block;
    position: relative;
    padding-bottom: 8px;
}
.nb-inner-hero-eyebrow::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: 0;
    width: 28px;
    height: 2px;
    background: var(--gold);
    transform: translateX(-50%);
}
.nb-inner-hero-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(34px, 4.2vw, 56px);
    font-weight: 400;
    line-height: 1.1;
    color: var(--white);
    margin: 0;
    letter-spacing: -0.01em;
}
.nb-inner-hero-title em {
    font-style: italic;
    color: var(--gold);
}
@media (max-width: 767px) {
    .nb-inner-hero { height: 380px; }
}

/* INNER FORM — unified Name/Email/Phone/Message */
.nb-inner-form {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 26px 26px 22px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    box-shadow: 0 12px 30px -22px rgba(14,17,20,0.18);
}
.nb-inner-form-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 26px;
    font-weight: 500;
    line-height: 1.15;
    color: var(--dark);
    margin: 0;
}
.nb-inner-form-note {
    font-size: 13.5px;
    color: var(--body);
    margin: -6px 0 4px;
    line-height: 1.5;
}
.nb-inner-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 14px;
    min-width: 0;
}
.nb-inner-form label {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}
.nb-inner-form label > span {
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--muted);
}
.nb-inner-form label em {
    color: var(--blue);
    font-style: normal;
    margin-left: 2px;
}
.nb-inner-form input,
.nb-inner-form textarea {
    width: 100%;
    box-sizing: border-box;
    min-width: 0;
    background: #FAFAFA;
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 11px 13px;
    font-family: 'Inter', sans-serif;
    font-size: 14.5px;
    color: var(--dark);
    transition: border-color 0.12s, background 0.12s;
}
.nb-inner-form input:focus,
.nb-inner-form textarea:focus {
    outline: none;
    border-color: var(--blue);
    background: var(--white);
}
.nb-inner-form-msg {
    position: relative;
}
.nb-inner-form-msg textarea {
    width: 100%;
    resize: vertical;
    min-height: 96px;
}
.nb-inner-form-count {
    position: absolute;
    right: 12px;
    bottom: 6px;
    font-size: 11px;
    color: var(--muted);
    background: rgba(255,255,255,0.85);
    padding: 1px 6px;
    border-radius: 4px;
}
.nb-inner-form-submit {
    align-self: flex-start;
    background: var(--dark);
    color: var(--white);
    font-family: 'Inter', sans-serif;
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: 0.14em;
    padding: 12px 30px;
    border: none;
    border-radius: 999px;
    cursor: pointer;
    transition: background 0.12s, transform 0.12s;
    margin-top: 4px;
}
.nb-inner-form-submit:hover { background: var(--blue-hover); transform: translateY(-1px); }
.nb-inner-form-status {
    font-size: 13px;
    color: var(--blue);
    margin: -4px 0 0;
}

/* RESOURCES HUB */
.nb-resources-hub { background: var(--white); padding: 72px 0 96px; }
.nb-resources-hub-inner { max-width: 1200px; margin: 0 auto; padding: 0 32px; }
.nb-resources-intro { max-width: 720px; margin: 0 auto 56px; text-align: center; font-size: 17px; line-height: 1.55; color: var(--body); }
.nb-resources-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 991px) { .nb-resources-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .nb-resources-grid { grid-template-columns: 1fr; } }
.nb-resource-card {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 26px 26px 22px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    transition: transform 0.12s, box-shadow 0.12s;
}
.nb-resource-card:hover { transform: translateY(-2px); box-shadow: 0 18px 38px -22px rgba(14,17,20,0.22); }
.nb-resource-card-eyebrow { font-family: 'Inter', sans-serif; font-size: 10.5px; letter-spacing: 0.20em; text-transform: uppercase; font-weight: 700; color: var(--blue); margin: 0; padding-bottom: 8px; position: relative; }
.nb-resource-card-eyebrow::after { content: ''; position: absolute; left: 0; bottom: 0; width: 24px; height: 2px; background: var(--gold); }
.nb-resource-card-title { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 26px; font-weight: 400; line-height: 1.18; margin: 4px 0 0; color: var(--dark); }
.nb-resource-card-title a { color: inherit; text-decoration: none; }
.nb-resource-card-title a:hover { color: var(--blue); }
.nb-resource-card-blurb { font-size: 14.5px; line-height: 1.5; color: var(--body); margin: 0; flex: 1; }
.nb-resource-card-cta { margin-top: 8px; font-family: 'Inter', sans-serif; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: var(--blue); text-decoration: none; }

/* RESOURCE single-page */
.nb-resource { background: var(--white); padding: 64px 0 88px; }
.nb-resource-inner { max-width: 1200px; margin: 0 auto; padding: 0 32px; display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 56px; }
@media (max-width: 991px) { .nb-resource-inner { grid-template-columns: 1fr; gap: 36px; } }
.nb-resource-body { font-family: 'Inter', sans-serif; font-size: 16px; line-height: 1.7; color: var(--body); }
.nb-resource-body h2 { font-family: 'Cormorant Garamond', Georgia, serif; font-size: clamp(26px, 2.4vw, 34px); font-weight: 400; color: var(--dark); margin: 38px 0 14px; padding-bottom: 10px; position: relative; }
.nb-resource-body h2::after { content: ''; position: absolute; left: 0; bottom: 0; width: 36px; height: 2px; background: var(--gold); }
.nb-resource-body h2 em { font-style: italic; color: var(--blue); }
.nb-resource-body h3 { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 22px; font-weight: 500; color: var(--dark); margin: 24px 0 8px; }
.nb-resource-body p { margin: 0 0 14px; }
.nb-resource-body ul, .nb-resource-body ol { margin: 0 0 18px; padding-left: 24px; }
.nb-resource-body ul li, .nb-resource-body ol li { margin-bottom: 8px; line-height: 1.6; }
.nb-resource-body strong { color: var(--dark); }
.nb-resource-body a { color: var(--blue); border-bottom: 1px solid rgba(0,150,218,0.3); text-decoration: none; }
.nb-resource-body a:hover { color: var(--blue-hover); border-bottom-color: var(--blue-hover); }
.nb-resource-side { display: flex; flex-direction: column; gap: 20px; position: sticky; top: 96px; align-self: start; }
.nb-resource-back { font-size: 13px; }
.nb-resource-back a { color: var(--muted); text-decoration: none; letter-spacing: 0.06em; }
.nb-resource-back a:hover { color: var(--blue); }

/* NEIGHBOURHOOD pages */
.nb-hood { background: var(--white); padding: 64px 0 88px; }
.nb-hood-inner { max-width: 1200px; margin: 0 auto; padding: 0 32px; }
.nb-hood-intro { font-family: 'Inter', sans-serif; font-size: 17px; line-height: 1.65; color: var(--body); max-width: 760px; margin: 0 auto 44px; text-align: center; }
.nb-hood-intro p { margin: 0 0 14px; }
.nb-hood-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; background: var(--soft); border: 1px solid var(--border); border-radius: 14px; padding: 28px 24px; margin-bottom: 56px; }
@media (max-width: 600px) { .nb-hood-stats { grid-template-columns: 1fr; } }
.nb-hood-stat { display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; }
.nb-hood-stat .num { font-family: 'Cormorant Garamond', Georgia, serif; font-size: clamp(28px, 3.4vw, 40px); color: var(--gold); font-weight: 500; line-height: 1; }
.nb-hood-stat .lbl { font-family: 'Inter', sans-serif; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.nb-hood-listings { margin-bottom: 56px; }
.nb-hood-listings-title { font-family: 'Cormorant Garamond', Georgia, serif; font-size: clamp(26px, 2.6vw, 36px); font-weight: 400; color: var(--dark); margin: 0 0 26px; text-align: center; }
.nb-hood-listings-title em { font-style: italic; color: var(--blue); }
.nb-hood-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
@media (max-width: 991px) { .nb-hood-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .nb-hood-grid { grid-template-columns: 1fr; } }
.nb-hood-card { display: block; text-decoration: none; color: inherit; border-radius: 12px; overflow: hidden; background: var(--white); border: 1px solid var(--border); transition: transform 0.14s, box-shadow 0.14s; }
.nb-hood-card:hover { transform: translateY(-3px); box-shadow: 0 18px 38px -22px rgba(14,17,20,0.25); }
.nb-hood-card-img { aspect-ratio: 5/4; background: var(--soft) center/cover no-repeat; position: relative; }
.nb-hood-card-pill { position: absolute; top: 12px; left: 12px; background: var(--white); color: var(--green); font-family: 'Inter', sans-serif; font-size: 10.5px; font-weight: 800; letter-spacing: 0.14em; padding: 4px 10px; border-radius: 999px; box-shadow: 0 2px 6px rgba(0,0,0,0.12); }
.nb-hood-card-body { padding: 16px 18px 18px; }
.nb-hood-card-price { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 24px; font-weight: 500; color: var(--gold); margin: 0; line-height: 1.1; }
.nb-hood-card-addr { font-family: 'Inter', sans-serif; font-size: 13.5px; font-weight: 600; color: var(--dark); margin: 4px 0 0; line-height: 1.35; }
.nb-hood-card-specs { font-family: 'Inter', sans-serif; font-size: 12px; color: var(--muted); margin: 6px 0 0; letter-spacing: 0.04em; }
.nb-hood-cta-row { text-align: center; margin-top: 36px; }
.nb-hood-cta { display: inline-block; background: var(--blue); color: var(--white); font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 700; letter-spacing: 0.10em; text-decoration: none; padding: 13px 28px; border-radius: 999px; transition: background 0.12s, transform 0.12s; }
.nb-hood-cta:hover { background: var(--blue-hover); transform: translateY(-1px); }
.nb-hood-empty { text-align: center; color: var(--body); padding: 36px 0; font-style: italic; }
.nb-hood-empty a { color: var(--blue); text-decoration: underline; }
.nb-hood-form-wrap { max-width: 720px; margin: 0 auto; }

/* NEIGHBOURHOODS HUB */
.nb-hoods-hub { background: var(--white); padding: 64px 0 96px; }
.nb-hoods-hub-inner { max-width: 1200px; margin: 0 auto; padding: 0 32px; }
.nb-hoods-intro { max-width: 720px; margin: 0 auto 56px; text-align: center; font-size: 17px; line-height: 1.55; color: var(--body); }
.nb-hoods-group { margin-bottom: 56px; }
.nb-hoods-group-title { font-family: 'Cormorant Garamond', Georgia, serif; font-size: clamp(28px, 2.8vw, 38px); font-weight: 400; color: var(--dark); margin: 0 0 22px; text-align: center; }
.nb-hoods-group-title em { font-style: italic; color: var(--blue); }
.nb-hoods-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
@media (max-width: 991px) { .nb-hoods-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 600px) { .nb-hoods-grid { grid-template-columns: repeat(2, 1fr); } }
.nb-hood-tile { position: relative; display: flex; align-items: flex-end; aspect-ratio: 4/3; padding: 18px 16px; border-radius: 12px; overflow: hidden; text-decoration: none; color: var(--white); background: var(--dark) center/cover no-repeat; transition: transform 0.14s; }
.nb-hood-tile:hover { transform: scale(1.02); }
.nb-hood-tile-scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(14,17,20,0.10) 0%, rgba(14,17,20,0.78) 100%); }
.nb-hood-tile-name { position: relative; z-index: 1; font-family: 'Cormorant Garamond', Georgia, serif; font-size: 18px; font-weight: 500; line-height: 1.15; color: var(--white); }

/* v4.0.0 NAV — dropdown sub-menus */
.shb-nav-has-children { position: relative; }
.shb-nav-caret { font-size: 10px; vertical-align: middle; opacity: 0.5; margin-left: 2px; }
.shb-nav-sub {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 220px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 10px 0;
    box-shadow: 0 18px 36px -18px rgba(14,17,20,0.22);
    z-index: 1000;
    list-style: none;
    margin: 6px 0 0;
}
.shb-nav-has-children:hover .shb-nav-sub,
.shb-nav-has-children:focus-within .shb-nav-sub { display: block; }
.shb-nav-sub li { display: block; }
.shb-nav-sub li a {
    display: block;
    padding: 8px 18px;
    font-size: 14px;
    color: var(--dark);
    text-decoration: none;
    transition: background 0.08s, color 0.08s;
    white-space: nowrap;
}
.shb-nav-sub li a:hover { background: var(--soft); color: var(--blue); }

/* Mobile sub-menu indent */
.shb-mobile-sub a { padding-left: 28px !important; color: var(--body) !important; font-size: 14px !important; }

@media (max-width: 991px) {
    .shb-nav-sub { display: none !important; }
}

/* v4.0.0 NAV — specificity bump to defeat ".shb-nav ul {display:flex}" */
.shb-nav .shb-nav-sub {
    display: none;
    flex-direction: column;
    gap: 0 !important;
}
.shb-nav-has-children:hover > .shb-nav-sub,
.shb-nav-has-children:focus-within > .shb-nav-sub { display: block; }
.shb-nav .shb-nav-sub li a {
    text-align: left;
    color: var(--dark) !important;
    font-weight: 500;
}
.shb-nav .shb-nav-sub a::after { display: none !important; }
body.home #masthead .shb-nav-sub a,
body.home #masthead .shb-nav-sub a:hover { color: var(--dark) !important; }
@media (max-width: 991px) {
    .shb-nav .shb-nav-sub { display: none !important; }
}

/* v4.0.2 — inner-hero no-bg state (gold + cyan radial accents on ink) */
.nb-inner-hero-nobg {
    background:
        radial-gradient(800px 300px at 80% 50%, rgba(0,150,218,0.18), transparent 60%),
        radial-gradient(600px 300px at 20% 50%, rgba(227,178,36,0.10), transparent 60%),
        var(--dark);
}
.nb-inner-hero-nobg .nb-inner-hero-scrim { background: transparent; }

/* v4.0.3 — About H1 italic accent */
.about-h1 .about-h1-accent { font-style: italic; color: var(--blue); font-weight: inherit; }

/* v4.0.4 — Kimi second-pass fixes */
.about-cta-final .cta-accent { font-style: italic; color: var(--gold); font-weight: inherit; }
/* Listing badge harmonization — make .status-pill on /listings/ match homepage solid-pill pattern */
.dolce-search-page .status-pill, .listings-grid .status-pill { background: var(--gold-bright) !important; color: #0E1114 !important; font-weight: 700; letter-spacing: 0.06em; padding: 5px 12px; border-radius: 999px; }
.dolce-search-page .status-pill::before, .listings-grid .status-pill::before { display: none !important; }
.dolce-search-page .status-pill.status-sold, .listings-grid .status-pill.status-sold { background: var(--gold) !important; color: var(--dark) !important; }
.dolce-search-page .status-pill.status-pending, .listings-grid .status-pill.status-pending { background: var(--gold-bright) !important; color: var(--dark) !important; }
/* Listing card aspect-ratio lock */
.listing-card .card-image, .dsv-listing-card .card-image, .property-card .card-image { aspect-ratio: 4 / 3 !important; object-fit: cover !important; }
.listing-card img, .property-card img { width: 100%; height: 100%; object-fit: cover; }
