/*
 * Smart Estate IDX Plugin — Theme Override Stylesheet
 *
 * Strategy (two layers):
 *   1. CSS Variable Bridge — redirect the plugin's own design tokens to the
 *      theme's values. This is the primary mechanism: plugin components read
 *      their own vars and automatically get the theme's fonts/colours/radius.
 *   2. Specific rule overrides — for anything not covered by variables, scoped
 *      under body .se-idx to beat the plugin's own stylesheet specificity.
 *
 * Theme design tokens (declared on :root in style.css):
 *   --ink: #1A1A1A   --text: #2C2C2C   --muted: #6B6B6B   --body: #3D3D3D
 *   --border: #E8E4DF --cream: #F9F7F4  --cream-warm: #F5F1EC
 *   --gold: #C9A84C  --burgundy: #6B2737
 *   --serif: "Playfair Display"  --sans: "DM Sans"
 */


/* ══════════════════════════════════════════════════════════════════════
   FULL-PAGE IDX WRAPPER
   page.php outputs <div class="se-idx-full-page"> when it detects an IDX
   property or browse shortcode, bypassing .container + .article-body.
   The plugin's own .se-idx-mls-detail__inner handles its own max-width.
   ══════════════════════════════════════════════════════════════════════ */
.se-idx-full-page {
    width: 100%;
    overflow-x: hidden;
}

/* Tell the sticky nav band how tall the theme nav is so it sticks below it */
.se-idx-full-page .se-idx-mls-detail {
    --se-idx-sticky-offset: 72px;
}

@media (max-width: 768px) {
    .se-idx-full-page .se-idx-mls-detail {
        --se-idx-sticky-offset: 60px;
    }
}

/* ══════════════════════════════════════════════════════════════════════
   LAYER 0 — CONTAINMENT
   The plugin's .se-idx-browse--mls uses left:50%+translateX(-50%) with
   width:min(1480px,100dvw-48px) to break out of its parent container and
   span the full viewport. These rules neutralise that breakout.
   NOTE: .se-idx-browse--mls IS the root element — it also carries .se-idx,
   so descendant selectors like ".se-idx .se-idx-browse--mls" never match.
   Target the element directly.
   ══════════════════════════════════════════════════════════════════════ */
body .se-idx-browse--mls {
    left: auto !important;
    transform: none !important;
    width: 100% !important;
    max-width: 100% !important;
    position: relative !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    background: transparent !important;
    border-radius: 14px !important;
    overflow: hidden !important;
}

body .se-idx-browse--mls .se-idx-browse__form {
    max-width: 100% !important;
    width: 100% !important;
    background: transparent !important;
}

body .se-idx-browse--mls .search-header {
    background: #fff !important;
    padding: 1rem 1.25rem 0 !important;
}

/* Escape the theme's .article-body 720px prose max-width when IDX is embedded
 * inside blog posts or other prose content areas. Uses :has() where supported
 * and direct child selectors as a fallback. */
.article-body:has(.se-idx-theme-scope),
.article-body:has(.se-idx) {
    max-width: none;
    width: 100%;
}

.article-body .se-idx-theme-scope,
.article-body .se-idx {
    max-width: 100%;
    width: 100%;
}

/* Prevent shortcode output from compressing or overflowing the content column.
 * Ensures every IDX shortcode fills the page's natural content width and
 * does NOT break out of its parent container or compress below it. */
body .se-idx,
body .se-idx-theme-scope,
body .se-idx-search-widget,
body .se-idx-browse,
body .se-idx-featured-section,
body .se-idx-market-report-block,
body [class^="se-idx-"] {
    max-width: 100%;
    min-width: 0;
    width: 100%;
    overflow-x: hidden;
    box-sizing: border-box;
}

/* ══════════════════════════════════════════════════════════════════════
   LAYER 0B — HOMEPAGE: CARDS-ONLY MODE
   On the homepage template, hide the search topbar and filter sidebar
   so only the property card grid is visible. The shortcode is already
   pre-filtered in Shortcode Studio, so the UI chrome is redundant.
   ══════════════════════════════════════════════════════════════════════ */
body.page-template-template-homepage .se-idx-theme-scope .se-idx-browse__topbar,
body.page-template-template-homepage .se-idx-theme-scope .search-header,
body.page-template-template-homepage .se-idx-theme-scope .se-idx-filters.filter-sidebar,
body.page-template-template-homepage .se-idx-theme-scope .se-idx-browse__backdrop,
body.page-template-template-homepage .se-idx-theme-scope .results-topbar,
body.page-template-template-homepage .se-idx-theme-scope .se-idx-results__toolbar {
    display: none !important;
}

body.page-template-template-homepage .se-idx-theme-scope .se-idx-browse__body {
    display: block !important;
}

body.page-template-template-homepage .se-idx-theme-scope .results-area,
body.page-template-template-homepage .se-idx-theme-scope .se-idx-browse__results {
    width: 100% !important;
    margin-left: 0 !important;
    padding-left: 0 !important;
    background: transparent !important;
}

body.page-template-template-homepage .se-idx-browse--mls {
    background: transparent !important;
    border-radius: 0 !important;
    padding: 0 !important;
}

/* ══════════════════════════════════════════════════════════════════════
   LAYER 1 — CSS VARIABLE BRIDGE
   Maps IDX plugin tokens → theme design system tokens.
   Plugin components consume their own vars; we redirect the source.
   ══════════════════════════════════════════════════════════════════════ */
.se-idx,
.se-idx-theme-scope {
    --se-idx-primary:         var(--ink);
    --se-idx-primary-hover:   #333;
    --se-idx-accent:          var(--gold);
    --se-idx-surface:         #fff;
    --se-idx-surface-soft:    var(--cream-warm);
    --se-idx-surface-hover:   var(--cream);
    --se-idx-border:          var(--border);
    --se-idx-text:            var(--text);
    --se-idx-muted:           var(--muted);
    --se-idx-heading-font:    var(--serif);
    --se-idx-body-font:       var(--sans);
    --se-idx-radius:          14px;
    --se-idx-radius-sm:       8px;
    --se-idx-radius-lg:       20px;
    --se-idx-shadow:          0 4px 24px rgba(0,0,0,0.06);
    --se-idx-shadow-hover:    0 16px 48px rgba(0,0,0,0.10);
    --se-idx-shadow-lg:       0 24px 64px rgba(0,0,0,0.12);

    font-family: var(--sans);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body .se-idx *,
body .se-idx *::before,
body .se-idx *::after {
    box-sizing: border-box;
}


/* ══════════════════════════════════════════════════════════════════════
   LAYER 2 — TYPOGRAPHY OVERRIDE
   ══════════════════════════════════════════════════════════════════════ */
body .se-idx h1,
body .se-idx h2,
body .se-idx h3,
body .se-idx h4 {
    font-family: var(--serif);
    color: var(--ink);
    font-weight: 600;
    letter-spacing: -0.02em;
}

body .se-idx h5,
body .se-idx h6,
body .se-idx p,
body .se-idx span,
body .se-idx label,
body .se-idx li {
    font-family: var(--sans);
}

body .se-idx a {
    color: var(--ink);
    text-decoration: none;
}

body .se-idx a:hover {
    color: var(--muted);
}


/* ══════════════════════════════════════════════════════════════════════
   INPUTS & SELECTS
   ══════════════════════════════════════════════════════════════════════ */
body .se-idx input[type="text"],
body .se-idx input[type="search"],
body .se-idx input[type="email"],
body .se-idx input[type="tel"],
body .se-idx input[type="number"],
body .se-idx input[type="password"],
body .se-idx select,
body .se-idx textarea {
    font-family: var(--sans);
    font-size: 14px;
    color: var(--ink);
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 11px 14px;
    transition: border-color 0.2s, box-shadow 0.2s;
    outline: none;
    width: 100%;
    -webkit-appearance: none;
}

body .se-idx input:focus,
body .se-idx select:focus,
body .se-idx textarea:focus {
    border-color: var(--ink);
    box-shadow: 0 0 0 3px rgba(26,26,26,0.07);
}

body .se-idx input::placeholder {
    color: var(--muted);
}

body .se-idx label {
    font-family: var(--sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--muted);
    display: block;
    margin-bottom: 6px;
}


/* ══════════════════════════════════════════════════════════════════════
   BUTTONS — covers both .se-idx-button* and plugin's own .hb-btn
   ══════════════════════════════════════════════════════════════════════ */
body .se-idx-button,
body .se-idx-button-primary,
body .se-idx button[type="submit"],
body .se-idx .hb-btn,
body .se-idx .btn-primary,
body .se-idx .se-idx-mls-button,
body .se-idx .se-idx-mls-button--primary,
body .se-idx .filter-apply,
body .se-idx .search-submit {
    font-family: var(--sans) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: 0.04em !important;
    background: var(--ink) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 8px !important;
    padding: 12px 22px !important;
    cursor: pointer !important;
    transition: opacity 0.2s !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    box-shadow: none !important;
}

body .se-idx-button:hover,
body .se-idx-button-primary:hover,
body .se-idx button[type="submit"]:hover,
body .se-idx .hb-btn:hover,
body .se-idx .filter-apply:hover,
body .se-idx .search-submit:hover {
    opacity: 0.82 !important;
    background: var(--ink) !important;
}

body .se-idx-button-secondary,
body .se-idx .se-idx-mls-button--secondary,
body .se-idx .btn-outline,
body .se-idx .filter-reset,
body .se-idx .btn-ghost {
    background: transparent !important;
    color: var(--ink) !important;
    border: 1.5px solid var(--ink) !important;
    border-radius: 8px !important;
    font-family: var(--sans) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    padding: 11px 22px !important;
    cursor: pointer !important;
    transition: background 0.2s, color 0.2s !important;
}

body .se-idx-button-secondary:hover,
body .se-idx .se-idx-mls-button--secondary:hover,
body .se-idx .btn-outline:hover {
    background: var(--ink) !important;
    color: #fff !important;
}

body .se-idx-button[disabled],
body .se-idx button[disabled] {
    opacity: 0.4 !important;
    cursor: not-allowed !important;
}


/* ══════════════════════════════════════════════════════════════════════
   BADGES — plugin uses .badge-type, .badge-status as well as .se-idx-badge
   ══════════════════════════════════════════════════════════════════════ */
body .se-idx .badge-type,
body .se-idx .badge-status,
body .se-idx-badge {
    font-family: var(--sans);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 4px 10px;
    border-radius: 4px;
    background: var(--ink);
    color: #fff;
    display: inline-block;
    line-height: 1.4;
}

body .se-idx .badge-type[data-type="rent"],
body .se-idx .badge-status[data-status="rent"],
body .se-idx-badge--featured {
    background: var(--gold);
}

body .se-idx .badge-type[data-type="sold"],
body .se-idx .badge-status[data-status="sold"] {
    background: var(--muted);
}

body .se-idx .badge-type[data-type="shortlet"],
body .se-idx .badge-status[data-status="shortlet"] {
    background: var(--burgundy);
}

body .se-idx-badge--status {
    background: rgba(26,26,26,0.08);
    color: var(--ink);
}

body .se-idx-mini-chip,
body .se-idx-mls-chip {
    display: inline-flex !important;
    width: auto !important;
    flex-shrink: 0 !important;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.04em;
    padding: 3px 8px;
    border-radius: 4px;
    background: var(--cream-warm);
    color: var(--ink);
    border: 1px solid var(--border);
}

body .se-idx-pill,
body .se-idx-mls-option-pill {
    font-size: 12px;
    font-weight: 500;
    padding: 6px 14px;
    border-radius: 20px;
    border: 1.5px solid var(--border);
    background: #fff;
    color: var(--text);
    cursor: pointer;
    transition: border-color 0.2s, background 0.2s;
    font-family: var(--sans);
}

body .se-idx-mls-option-pill.is-enabled,
body .se-idx-filter-tab.is-active,
body .se-idx-filter-tab--active {
    background: var(--ink);
    color: #fff;
    border-color: var(--ink);
}


/* ══════════════════════════════════════════════════════════════════════
   PROPERTY CARDS — covers both .se-idx-prop-card and plugin's .property-card
   ══════════════════════════════════════════════════════════════════════ */
body .se-idx .property-card,
body .se-idx .se-idx-property-card,
body .se-idx-prop-card,
body .se-idx-property-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 14px;
    overflow: hidden;
    transition: transform 0.25s, box-shadow 0.25s;
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
    font-family: var(--sans);
}

body .se-idx .property-card:hover,
body .se-idx .se-idx-property-card:hover,
body .se-idx-prop-card:hover,
body .se-idx-property-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 16px 48px rgba(0,0,0,0.10);
}

/* Card image area */
body .se-idx .card-image,
body .se-idx .card-img,
body .se-idx-prop-card__image {
    position: relative;
    overflow: hidden;
    aspect-ratio: 4/3;
    background: var(--border);
}

body .se-idx .card-image img,
body .se-idx .card-img img,
body .se-idx-prop-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s;
}

body .se-idx .property-card:hover .card-image img,
body .se-idx-prop-card:hover .se-idx-prop-card__image img {
    transform: scale(1.04);
}

/* Card body */
body .se-idx .card-body,
body .se-idx .card-content,
body .se-idx-prop-card__meta {
    padding: 14px 16px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1;
}

/* Price */
body .se-idx .card-price,
body .se-idx-prop-card__price {
    font-family: var(--serif);
    font-size: 17px;
    font-weight: 600;
    color: var(--ink);
    margin: 0 0 4px;
}

/* Title */
body .se-idx .card-title,
body .se-idx-prop-card__title {
    font-family: var(--sans);
    font-size: 14px;
    color: var(--text);
    line-height: 1.4;
    font-weight: 500;
}

/* Address / location */
body .se-idx .card-address,
body .se-idx .card-location,
body .se-idx-prop-card__address,
body .se-idx-prop-card__location {
    font-size: 12px;
    color: var(--muted);
    line-height: 1.4;
}

/* Specs (beds/baths/sqm) */
body .se-idx .card-specs,
body .se-idx-prop-card__specs {
    display: flex;
    gap: 12px;
    font-size: 12px;
    color: var(--muted);
    margin-top: 4px;
    flex-wrap: wrap;
    font-family: var(--sans);
}

/* Card footer */
body .se-idx-prop-card__footer {
    padding: 12px 16px;
    border-top: 1px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

/* Card grid */
body .se-idx .card-grid,
body .se-idx-card-grid,
body .se-idx .prop-grid,
body .prop-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 24px;
}


/* ══════════════════════════════════════════════════════════════════════
   LIST VIEW CARDS
   ══════════════════════════════════════════════════════════════════════ */
body .se-idx-list-row,
body .se-idx-prop-list,
body .se-idx .prop-list-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 12px;
    overflow: hidden;
    display: flex;
    transition: box-shadow 0.25s;
    text-decoration: none;
    color: inherit;
}

body .se-idx-list-row:hover,
body .se-idx-prop-list:hover,
body .se-idx .prop-list-card:hover {
    box-shadow: 0 8px 32px rgba(0,0,0,0.08);
}

body .se-idx-list-row__media,
body .se-idx-prop-list__media,
body .se-idx .prop-list-img {
    width: 220px;
    flex-shrink: 0;
    overflow: hidden;
    background: var(--border);
}

body .se-idx-list-row__media img,
body .se-idx-prop-list__media img,
body .se-idx .prop-list-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

body .se-idx-list-row__body,
body .se-idx-prop-list__body,
body .se-idx .prop-list-body {
    padding: 18px 20px;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 8px;
    font-family: var(--sans);
}

body .se-idx-list-row__price,
body .se-idx-prop-list__price {
    font-family: var(--serif);
    font-size: 18px;
    font-weight: 600;
    color: var(--ink);
}


/* ══════════════════════════════════════════════════════════════════════
   SEARCH WIDGET
   ══════════════════════════════════════════════════════════════════════ */
body .se-idx-search-widget {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 24px;
    box-shadow: 0 4px 24px rgba(0,0,0,0.06);
    font-family: var(--sans);
}

body .se-idx-search-hero {
    font-family: var(--sans);
}

body .se-idx-search-hero__modes {
    display: flex;
    gap: 4px;
    margin-bottom: 16px;
    border-bottom: 1px solid var(--border);
    padding-bottom: 12px;
}

body .se-idx-search-hero__mode {
    font-size: 13px;
    font-weight: 600;
    padding: 6px 16px;
    border-radius: 6px;
    cursor: pointer;
    color: var(--muted);
    transition: background 0.15s, color 0.15s;
    font-family: var(--sans);
    background: none;
    border: none;
}

body .se-idx-search-hero__mode.is-active,
body .se-idx-search-hero__mode[aria-selected="true"] {
    background: var(--ink);
    color: #fff;
}

body .se-idx-search-hero__input,
body .se-idx .search-input {
    border: 1px solid var(--border);
    border-radius: 8px;
    font-family: var(--sans);
    font-size: 14px;
    color: var(--ink);
    padding: 11px 14px;
    width: 100%;
    transition: border-color 0.2s, box-shadow 0.2s;
    -webkit-appearance: none;
}

body .se-idx-search-hero__input:focus,
body .se-idx .search-input:focus {
    border-color: var(--ink);
    box-shadow: 0 0 0 3px rgba(26,26,26,0.07);
    outline: none;
}

/* Browse header / topbar */
body .se-idx-browse__topbar,
body .se-idx .search-header,
body .se-idx-browse__form,
body .se-idx .browse-topbar {
    background: var(--cream-warm);
    border-bottom: 1px solid var(--border);
    font-family: var(--sans);
}


/* ══════════════════════════════════════════════════════════════════════
   FILTER SIDEBAR
   ══════════════════════════════════════════════════════════════════════ */
body .se-idx-filters,
body .se-idx .filter-sidebar {
    background: #fff;
    border-right: 1px solid var(--border);
    font-family: var(--sans);
}

body .se-idx-filter-section {
    border-bottom: 1px solid var(--border);
}

body .se-idx-filter-section__summary {
    font-size: 13px;
    font-weight: 600;
    color: var(--ink);
    padding: 14px 0;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-family: var(--sans);
}

body .se-idx-filter-caption,
body .se-idx .filter-label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 8px;
    display: block;
    font-family: var(--sans);
}


/* ══════════════════════════════════════════════════════════════════════
   RESULTS TOOLBAR
   ══════════════════════════════════════════════════════════════════════ */
body .se-idx-results__toolbar,
body .se-idx .results-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 0;
    border-bottom: 1px solid var(--border);
    font-family: var(--sans);
    font-size: 13px;
    color: var(--muted);
}

body .se-idx-results-summary__count {
    font-weight: 600;
    color: var(--ink);
}

body .se-idx-view-toggle__button,
body .se-idx .view-btn {
    width: 34px;
    height: 34px;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: #fff;
    color: var(--muted);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: border-color 0.2s, color 0.2s;
}

body .se-idx-view-toggle__button.is-active,
body .se-idx .view-btn.is-active {
    border-color: var(--ink);
    color: var(--ink);
    background: var(--cream-warm);
}

body .se-idx-inline-field select,
body .se-idx .sort-wrap select,
body .se-idx .sort-select {
    font-family: var(--sans);
    font-size: 13px;
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 8px 12px;
    background: #fff;
    color: var(--ink);
    -webkit-appearance: none;
}


/* ══════════════════════════════════════════════════════════════════════
   FEATURED LISTINGS — slider + grid layouts
   ══════════════════════════════════════════════════════════════════════ */
body .se-idx-featured-section {
    font-family: var(--sans);
}

body .se-idx-featured-section__head h2 {
    font-family: var(--serif);
    font-size: clamp(22px, 3vw, 32px);
    color: var(--ink);
}

body .se-idx-featured-a__hero,
body .se-idx-featured-slider {
    border-radius: 16px;
    overflow: hidden;
}

body .se-idx-featured-a__hero-badge,
body .se-idx-featured-slider__badge {
    font-family: var(--sans);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    background: var(--gold);
    color: #fff;
    padding: 4px 10px;
    border-radius: 4px;
    display: inline-block;
}

body .se-idx-featured-a__price,
body .se-idx-featured-slider__price {
    font-family: var(--serif);
    font-size: 22px;
    color: #fff;
    font-weight: 600;
}

body .se-idx-featured-b__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 24px;
}

body .se-idx-featured-b__card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 14px;
    overflow: hidden;
    transition: transform 0.25s, box-shadow 0.25s;
    text-decoration: none;
    display: flex;
    flex-direction: column;
    font-family: var(--sans);
}

body .se-idx-featured-b__card:hover {
    transform: translateY(-5px);
    box-shadow: 0 16px 48px rgba(0,0,0,0.10);
}

body .se-idx-featured-b__price {
    font-family: var(--serif);
    font-size: 17px;
    font-weight: 600;
    color: var(--ink);
}

body .se-idx-featured-b__title {
    font-family: var(--sans);
    font-size: 14px;
    color: var(--text);
}

body .se-idx-featured-slider__nav {
    background: rgba(255,255,255,0.15);
    backdrop-filter: blur(4px);
    border: 1px solid rgba(255,255,255,0.2);
    border-radius: 50%;
    width: 40px;
    height: 40px;
    color: #fff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
}

body .se-idx-featured-slider__nav:hover {
    background: rgba(255,255,255,0.30);
}

body .se-idx-featured-slider__dot--active {
    background: var(--ink);
    transform: scale(1.4);
}


/* ══════════════════════════════════════════════════════════════════════
   MARKET REPORT
   ══════════════════════════════════════════════════════════════════════ */
body .se-idx-market-report-block {
    font-family: var(--sans);
}

body .se-idx-market-report__eyebrow {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--muted);
    display: block;
    margin-bottom: 6px;
    font-family: var(--sans);
}

body .se-idx-market-report__header h2,
body .se-idx-market-report__header-center h2 {
    font-family: var(--serif);
    font-size: clamp(20px, 2.5vw, 28px);
    color: var(--ink);
}

body .se-idx-market-report__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 1px;
    background: var(--border);
    border-radius: 12px;
    overflow: hidden;
}

body .se-idx-market-report__card {
    background: #fff;
    padding: 20px 18px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

body .se-idx-market-report__card .label,
body .se-idx-market-report__card .value {
    font-family: var(--sans);
}

body .se-idx-market-report__card .value,
body .se-idx-market-report__card > strong {
    font-family: var(--serif);
    font-size: 22px;
    font-weight: 600;
    color: var(--ink);
}

body .se-idx-market-report__table th {
    background: var(--ink);
    color: #fff;
    font-family: var(--sans);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 12px 16px;
}

body .se-idx-market-report__table td {
    padding: 12px 16px;
    border-bottom: 1px solid var(--border);
    color: var(--text);
    font-family: var(--sans);
    font-size: 13px;
}

body .se-idx-market-report__highlight {
    background: var(--cream-warm);
    border-radius: 10px;
    padding: 16px;
    font-size: 14px;
    color: var(--text);
    border: 1px solid var(--border);
    font-family: var(--sans);
}


/* ══════════════════════════════════════════════════════════════════════
   PROPERTY DETAIL PAGE — v2 RECONSTRUCTION
   ══════════════════════════════════════════════════════════════════════ */

/* ── Page shell ─────────────────────────────────────────────────────── */
body .se-idx-mls-detail {
    font-family: var(--sans) !important;
    background: #F5F4F0 !important;
    color: var(--ink) !important;
}

/* ── Gallery ──────────────────────────────────────────────────────────
   TRIPLE-LOCK height: same absolute clamp() on track, slide, AND img.
   Theme resets img { height: auto } — setting only on img fails.
   Setting only on track + height:100% on slide fails because <figure>
   inherits unreliably. Setting all three guarantees the height. */
body .se-idx-mls-gallery {
    width: 100% !important;
    overflow: hidden !important;
    background: #111 !important;
    position: relative !important;
    display: block !important;
}

body .se-idx-mls-gallery__track {
    display: flex !important;
    height: clamp(400px, 58vh, 680px) !important;
    min-height: 400px !important;
    overflow: hidden !important;
    transition: transform 0.4s cubic-bezier(0.4,0,0.2,1) !important;
}

body .se-idx-mls-gallery__slide {
    flex: 0 0 100% !important;
    min-width: 100% !important;
    height: clamp(400px, 58vh, 680px) !important;
    min-height: 400px !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
}

/* Triple override: height set absolutely, not via inheritance.
   This defeats theme { img height: auto } even without !important
   from the theme side. */
body .se-idx-mls-gallery__slide img {
    display: block !important;
    width: 100% !important;
    height: clamp(400px, 58vh, 680px) !important;
    min-height: 400px !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center !important;
    border-radius: 0 !important;
    margin: 0 !important;
    filter: none !important;
    -webkit-filter: none !important;
    transform: translateZ(0) !important;
    transition: opacity 0.2s ease !important;
    will-change: auto !important;
}

body .se-idx-mls-gallery__slide--empty {
    height: clamp(400px, 58vh, 680px) !important;
    min-height: 400px !important;
    background: #222 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: rgba(255,255,255,0.35) !important;
    font-size: 14px !important;
    font-family: var(--sans) !important;
}

body .se-idx-mls-gallery__badges {
    position: absolute !important;
    top: 16px !important;
    left: 16px !important;
    display: flex !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
    z-index: 10 !important;
}

body .se-idx-mls-gallery__actions {
    position: absolute !important;
    bottom: 16px !important;
    left: 16px !important;
    display: flex !important;
    gap: 8px !important;
    z-index: 10 !important;
}

body .se-idx-mls-gallery__action {
    background: rgba(0,0,0,0.55) !important;
    color: #fff !important;
    border: 1px solid rgba(255,255,255,0.25) !important;
    border-radius: 6px !important;
    padding: 7px 14px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    font-family: var(--sans) !important;
    cursor: pointer !important;
    text-decoration: none !important;
    backdrop-filter: blur(6px) !important;
    -webkit-backdrop-filter: blur(6px) !important;
    transition: background 0.2s !important;
}

body .se-idx-mls-gallery__action:hover {
    background: rgba(0,0,0,0.78) !important;
}

body .se-idx-mls-gallery__counter {
    position: absolute !important;
    bottom: 16px !important;
    right: 16px !important;
    background: rgba(0,0,0,0.55) !important;
    color: #fff !important;
    font-size: 12px !important;
    font-family: var(--sans) !important;
    padding: 5px 12px !important;
    border-radius: 20px !important;
    z-index: 10 !important;
    backdrop-filter: blur(4px) !important;
}

body .se-idx-mls-gallery__nav {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    background: rgba(0,0,0,0.45) !important;
    color: #fff !important;
    border: none !important;
    width: 44px !important;
    height: 44px !important;
    border-radius: 50% !important;
    font-size: 22px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    z-index: 10 !important;
    backdrop-filter: blur(4px) !important;
    transition: background 0.2s !important;
}

body .se-idx-mls-gallery__nav:hover {
    background: rgba(0,0,0,0.72) !important;
}

body .se-idx-mls-gallery__nav--prev { left: 14px !important; }
body .se-idx-mls-gallery__nav--next { right: 14px !important; }

body .se-idx-mls-gallery__thumbs {
    display: flex !important;
    gap: 6px !important;
    padding: 10px 16px !important;
    background: #111 !important;
    overflow-x: auto !important;
    scrollbar-width: none !important;
}

body .se-idx-mls-gallery__thumbs::-webkit-scrollbar { display: none !important; }

body .se-idx-mls-gallery__thumb {
    flex: 0 0 64px !important;
    height: 48px !important;
    border-radius: 5px !important;
    overflow: hidden !important;
    border: 2px solid transparent !important;
    padding: 0 !important;
    cursor: pointer !important;
    transition: border-color 0.2s !important;
}

body .se-idx-mls-gallery__thumb.is-active {
    border-color: #fff !important;
}

body .se-idx-mls-gallery__thumb img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
}

/* ── Owner breadcrumb band ──────────────────────────────────────────── */
body .se-idx-owner-breadcrumb,
body .se-idx-mls-detail__band--breadcrumb {
    background: #fff !important;
    border-bottom: 1px solid var(--border) !important;
    padding: 0 !important;
}

body .se-idx-owner-breadcrumb .se-idx-mls-detail__inner,
body .se-idx-mls-detail__band--breadcrumb .se-idx-mls-detail__inner {
    padding-top: 10px !important;
    padding-bottom: 10px !important;
}

body .se-idx-mls-breadcrumb,
body .se-idx-breadcrumb {
    font-size: 12px !important;
    color: var(--muted) !important;
    font-family: var(--sans) !important;
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 4px !important;
}

/* ── Sticky nav band ────────────────────────────────────────────────── */
body .se-idx-mls-nav-wrap {
    background: #fff !important;
    border-bottom: 1px solid var(--border) !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 40 !important;
}

body .se-idx-mls-nav {
    display: flex !important;
    gap: 0 !important;
}

body .se-idx-mls-nav a {
    font-family: var(--sans) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    color: var(--muted) !important;
    padding: 12px 18px !important;
    border-bottom: 2.5px solid transparent !important;
    text-decoration: none !important;
    transition: color 0.2s, border-color 0.2s !important;
    white-space: nowrap !important;
}

body .se-idx-mls-nav a:hover {
    color: var(--ink) !important;
}

body .se-idx-mls-nav a.is-active {
    color: var(--ink) !important;
    font-weight: 600 !important;
    border-bottom-color: var(--ink) !important;
}

/* ── Header band ────────────────────────────────────────────────────── */
body .se-idx-mls-detail__band--header {
    background: #fff !important;
    border-bottom: 1px solid var(--border) !important;
}

body .se-idx-mls-detail__band--header .se-idx-mls-detail__inner {
    padding-top: 28px !important;
    padding-bottom: 28px !important;
}

body .se-idx-mls-header {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 20px !important;
}

body .se-idx-mls-header__copy {
    flex: 1 !important;
    min-width: 0 !important;
}

body .se-idx-mls-header__copy h1,
body .se-idx-mls-header__copy .se-idx-mls-header__title {
    font-family: var(--serif) !important;
    font-size: clamp(1.45rem, 2.4vw + 0.4rem, 2.1rem) !important;
    font-weight: 700 !important;
    color: var(--ink) !important;
    line-height: 1.2 !important;
    max-width: none !important;
    margin: 0 0 6px !important;
}

body .se-idx-mls-header__location {
    font-size: 13.5px !important;
    color: var(--muted) !important;
    font-family: var(--sans) !important;
    margin-bottom: 12px !important;
}

body .se-idx-mls-header__chips {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    margin-top: 10px !important;
}

body .se-idx-mls-chip {
    display: inline-flex !important;
    width: auto !important;
    flex-shrink: 0 !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    font-family: var(--sans) !important;
    padding: 4px 10px !important;
    border-radius: 4px !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
}

body .se-idx-mls-chip--dark {
    background: var(--ink) !important;
    color: #fff !important;
}

body .se-idx-mls-chip--accent {
    background: var(--cream-warm) !important;
    color: var(--ink) !important;
    border: 1px solid var(--border) !important;
}

body .se-idx-mls-header__price {
    flex-shrink: 0 !important;
    text-align: right !important;
}

body .se-idx-mls-header__amount {
    font-family: var(--serif) !important;
    font-size: clamp(1.5rem, 3vw, 2.2rem) !important;
    font-weight: 700 !important;
    color: var(--ink) !important;
    line-height: 1 !important;
    display: block !important;
}

body .se-idx-mls-header__meta {
    font-size: 12px !important;
    color: var(--muted) !important;
    font-family: var(--sans) !important;
    margin-top: 5px !important;
}

body .se-idx-mls-header__hint {
    font-size: 12px !important;
    color: var(--muted) !important;
    font-family: var(--sans) !important;
    margin-top: 3px !important;
}

/* ── Spec strip band ────────────────────────────────────────────────── */
body .se-idx-mls-detail__band--specs {
    background: #fff !important;
    border-bottom: 3px solid #F5F3EF !important;
}

body .se-idx-mls-detail__band--specs .se-idx-mls-detail__inner {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

body .se-idx-mls-spec-strip {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 0 !important;
    background: transparent !important;
    border-radius: 0 !important;
    overflow: visible !important;
}

body .se-idx-mls-spec-strip__item {
    flex: 1 !important;
    min-width: 110px !important;
    padding: 18px 16px !important;
    background: transparent !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    border-right: 1px solid var(--border) !important;
}

body .se-idx-mls-spec-strip__item:last-child {
    border-right: none !important;
}

body .se-idx-mls-spec-strip__icon {
    flex-shrink: 0 !important;
    width: 36px !important;
    height: 36px !important;
    background: var(--cream-warm) !important;
    border-radius: 8px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: var(--ink) !important;
}

body .se-idx-mls-spec-strip__icon svg {
    width: 18px !important;
    height: 18px !important;
}

body .se-idx-mls-spec-strip__copy {
    display: flex !important;
    flex-direction: column !important;
    gap: 2px !important;
}

body .se-idx-mls-spec-strip__copy label,
body .se-idx-mls-spec-strip__copy span {
    font-size: 11px !important;
    color: var(--muted) !important;
    font-family: var(--sans) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    display: block !important;
}

body .se-idx-mls-spec-strip__copy strong {
    font-size: 15px !important;
    font-weight: 700 !important;
    color: var(--ink) !important;
    font-family: var(--sans) !important;
    display: block !important;
}

/* ── Main content shell ─────────────────────────────────────────────── */
body .se-idx-mls-detail__shell {
    padding: 28px 0 60px !important;
}

body .se-idx-mls-detail__inner {
    max-width: 1160px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 32px !important;
    padding-right: 32px !important;
}

/* Two-column body: main content + sticky sidebar */
body .se-idx-mls-detail__body {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 340px !important;
    gap: 28px !important;
    align-items: start !important;
}

body .se-idx-mls-detail__main {
    min-width: 0 !important;
}

/* Sticky sidebar */
body .se-idx-mls-detail__sidebar {
    position: sticky !important;
    top: 72px !important;
    align-self: start !important;
}

body .se-idx-mls-sidebar-cta {
    display: flex !important;
    flex-direction: column !important;
    gap: 14px !important;
}

/* ── WhatsApp CTA ───────────────────────────────────────────────────── */
body .se-idx-mls-wa-btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    width: 100% !important;
    padding: 15px 20px !important;
    background: #25D366 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 10px !important;
    font-family: var(--sans) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    cursor: pointer !important;
    box-shadow: 0 4px 18px rgba(37,211,102,0.28) !important;
    transition: background 0.2s, transform 0.15s, box-shadow 0.2s !important;
    box-sizing: border-box !important;
}

body .se-idx-mls-wa-btn:hover {
    background: #1CB954 !important;
    color: #fff !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 24px rgba(37,211,102,0.38) !important;
}

body .se-idx-mls-wa-btn svg {
    flex-shrink: 0 !important;
    width: 22px !important;
    height: 22px !important;
}

/* ── Login-to-view-price gate ───────────────────────────────────────── */
body .se-idx-mls-price-gate {
    display: inline-flex !important;
    width: auto !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 10px 16px !important;
    background: var(--cream-warm) !important;
    border: 1.5px dashed rgba(0,0,0,0.25) !important;
    border-radius: 8px !important;
    color: var(--ink) !important;
    font-family: var(--sans) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: background 0.2s, border-color 0.2s !important;
}

body .se-idx-mls-price-gate:hover {
    background: #ECEAE4 !important;
    border-color: var(--ink) !important;
    color: var(--ink) !important;
}

body .se-idx-mls-price-gate svg {
    flex-shrink: 0 !important;
    color: var(--ink) !important;
}

/* ── Collapse to single column on tablet/mobile ─────────────────────── */
@media (max-width: 960px) {
    body .se-idx-mls-detail__body {
        grid-template-columns: 1fr !important;
    }
    body .se-idx-mls-detail__sidebar {
        position: static !important;
        order: -1 !important;
    }
    body .se-idx-mls-wa-btn {
        font-size: 14px !important;
        padding: 13px 18px !important;
    }
}

/* ── Article — transparent flex column, each section = card ─────────── */
body .se-idx-mls-article {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 16px !important;
}

body .se-idx-mls-section {
    background: #fff !important;
    border: 1px solid var(--border) !important;
    border-radius: 14px !important;
    padding: 28px 28px !important;
    box-shadow: 0 1px 8px rgba(0,0,0,0.04) !important;
}

body .se-idx-mls-section + .se-idx-mls-section {
    border-top: none !important;
}

body .se-idx-mls-section__head {
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
    margin-bottom: 20px !important;
    padding-bottom: 16px !important;
    border-bottom: 1px solid var(--border) !important;
}

body .se-idx-mls-section__head h2 {
    font-family: var(--serif) !important;
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    color: var(--ink) !important;
    margin: 0 !important;
    white-space: nowrap !important;
}

body .se-idx-mls-section__head span {
    display: block !important;
    flex: 1 !important;
    height: 1px !important;
    background: linear-gradient(90deg, var(--border) 0%, transparent 100%) !important;
}

/* ── Description copy ───────────────────────────────────────────────── */
body .se-idx-mls-copy {
    font-size: 14.5px !important;
    line-height: 1.75 !important;
    color: var(--text) !important;
    font-family: var(--sans) !important;
}

/* ── Inline data grid ───────────────────────────────────────────────── */
body .se-idx-mls-inline-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)) !important;
    gap: 10px !important;
}

body .se-idx-mls-inline-grid__item {
    background: var(--cream-warm) !important;
    border: 1px solid var(--border) !important;
    border-radius: 10px !important;
    padding: 14px 14px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
}

body .se-idx-mls-inline-grid__item span {
    font-size: 11px !important;
    color: var(--muted) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    font-family: var(--sans) !important;
}

body .se-idx-mls-inline-grid__item strong {
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--ink) !important;
    font-family: var(--sans) !important;
}

/* ── Dark project band ──────────────────────────────────────────────── */
body .se-idx-mls-project-band {
    background: #1E293B !important;
    border-radius: 12px !important;
    padding: 22px 24px !important;
    box-shadow: 0 4px 24px rgba(0,0,0,0.18) !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0 !important;
    margin-bottom: 16px !important;
}

body .se-idx-mls-project-band__item {
    flex: 1 !important;
    min-width: 140px !important;
    padding: 10px 16px !important;
    border-right: 1px solid rgba(255,255,255,0.06) !important;
}

body .se-idx-mls-project-band__item:last-child {
    border-right: none !important;
}

body .se-idx-mls-project-band__item div {
    font-size: 10px !important;
    color: rgba(255,255,255,0.45) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    font-family: var(--sans) !important;
    margin-bottom: 4px !important;
}

body .se-idx-mls-project-band__item strong {
    font-size: 15px !important;
    font-weight: 600 !important;
    color: #fff !important;
    font-family: var(--serif) !important;
}

/* Dark grid (payment plan etc.) */
body .se-idx-mls-dark-grid {
    background: #1E293B !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    display: block !important;
    box-shadow: 0 4px 24px rgba(0,0,0,0.18) !important;
}

body .se-idx-mls-dark-grid__item {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 16px !important;
    padding: 12px 18px !important;
    border-bottom: 1px solid rgba(255,255,255,0.07) !important;
}

body .se-idx-mls-dark-grid__item:last-child {
    border-bottom: none !important;
}

body .se-idx-mls-dark-grid__item span {
    display: block !important;
    flex: 0 1 auto !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.07em !important;
    text-transform: uppercase !important;
    color: rgba(255,255,255,0.45) !important;
    font-family: var(--sans) !important;
    white-space: nowrap !important;
    width: auto !important;
}

body .se-idx-mls-dark-grid__item strong {
    display: block !important;
    flex: 0 0 auto !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #fff !important;
    font-family: var(--sans) !important;
    text-align: right !important;
    max-width: 60% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

/* Stage strip */
body .se-idx-mls-stage-strip {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    margin: 16px 0 !important;
}

body .se-idx-mls-stage-strip__item {
    font-size: 12px !important;
    font-family: var(--sans) !important;
    padding: 5px 14px !important;
    border-radius: 20px !important;
    border: 1.5px solid var(--border) !important;
    background: #fff !important;
    color: var(--muted) !important;
}

body .se-idx-mls-stage-strip__item.is-active {
    background: var(--ink) !important;
    border-color: var(--ink) !important;
    color: #fff !important;
    font-weight: 600 !important;
}

body .se-idx-mls-stage-strip__item.is-done {
    background: var(--cream-warm) !important;
    border-color: rgba(0,0,0,0.15) !important;
    color: var(--ink) !important;
}

/* ── Amenities ──────────────────────────────────────────────────────── */
body .se-idx-mls-amenity-groups {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) !important;
    gap: 20px !important;
}

body .se-idx-mls-amenity-group__title {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.07em !important;
    color: var(--muted) !important;
    font-family: var(--sans) !important;
    margin-bottom: 10px !important;
}

body .se-idx-mls-amenity-group__icon {
    width: 20px !important;
    height: 20px !important;
    color: var(--ink) !important;
    flex-shrink: 0 !important;
}

body .se-idx-mls-amenity-check {
    width: 14px !important;
    height: 14px !important;
    color: var(--ink) !important;
    margin-right: 6px !important;
    flex-shrink: 0 !important;
    vertical-align: middle !important;
}

body .se-idx-mls-amenity-item {
    display: flex !important;
    align-items: center !important;
    font-size: 13.5px !important;
    color: var(--text) !important;
    font-family: var(--sans) !important;
    padding: 4px 0 !important;
}

/* ── Map / POI ──────────────────────────────────────────────────────── */
body .se-idx-mls-tag-row,
body .se-idx-mls-poi-cats {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
}

body .se-idx-mls-tag-row span,
body .se-idx-mls-poi-cats span {
    display: inline-flex !important;
    width: auto !important;
    flex-shrink: 0 !important;
    background: var(--cream-warm) !important;
    color: var(--ink) !important;
    border: 1px solid var(--border) !important;
    border-radius: 4px !important;
    font-size: 12px !important;
    padding: 4px 10px !important;
}

body .se-idx-mls-neighbourhood {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 16px !important;
}

body .se-idx-mls-poi-list {
    display: flex !important;
    flex-direction: column !important;
    gap: 5px !important;
    max-height: 240px !important;
    overflow-y: auto !important;
}

body .se-idx-mls-poi-list__item {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    padding: 7px 10px !important;
    background: #fff !important;
    border-radius: 6px !important;
    border: 1px solid rgba(0,0,0,0.05) !important;
}

body .se-idx-mls-poi-list__item > div {
    flex: 1 !important;
    min-width: 0 !important;
    overflow: hidden !important;
}

body .se-idx-mls-poi-list__item strong {
    display: block !important;
    width: auto !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    color: var(--ink) !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

body .se-idx-mls-poi-list__item span {
    display: block !important;
    width: auto !important;
    font-size: 11px !important;
    color: var(--muted) !important;
}

body .se-idx-mls-poi-list__item em {
    flex-shrink: 0 !important;
    width: auto !important;
    font-style: normal !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    color: var(--ink) !important;
}

@media (max-width: 680px) {
    body .se-idx-mls-neighbourhood {
        grid-template-columns: 1fr !important;
    }
}

/* ── Nearby Places ──────────────────────────────────────────────────── */
body .se-idx-mls-nearby__tabs {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    gap: 0 !important;
    border-bottom: 1px solid var(--border) !important;
    margin-bottom: 16px !important;
    scrollbar-width: none !important;
}

body .se-idx-mls-nearby__tab {
    display: inline-flex !important;
    width: auto !important;
    flex-shrink: 0 !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 10px 14px !important;
    white-space: nowrap !important;
    background: none !important;
    border: none !important;
    border-bottom: 2px solid transparent !important;
    color: var(--muted) !important;
    font-size: 12.5px !important;
    font-weight: 600 !important;
    font-family: var(--sans) !important;
    cursor: pointer !important;
    transition: color 0.15s, border-color 0.15s !important;
}

body .se-idx-mls-nearby__tab.is-active {
    color: var(--ink) !important;
    border-bottom-color: var(--ink) !important;
}

body .se-idx-mls-nearby__tab:hover {
    color: var(--text) !important;
}

body .se-idx-mls-nearby__tab > span {
    display: inline !important;
    width: auto !important;
}

body .se-idx-mls-nearby__tab svg {
    width: 14px !important;
    height: 14px !important;
    flex-shrink: 0 !important;
    display: inline-block !important;
}

body .se-idx-mls-nearby__panel {
    display: none !important;
}

body .se-idx-mls-nearby__panel.is-active {
    display: block !important;
}

body .se-idx-mls-nearby__list {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
}

body .se-idx-mls-nearby__item {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 10px 0 !important;
    border-bottom: 1px solid rgba(0,0,0,0.06) !important;
}

body .se-idx-mls-nearby__item:last-child {
    border-bottom: none !important;
}

body .se-idx-mls-nearby__item-icon {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    flex-shrink: 0 !important;
    border-radius: 50% !important;
    background: var(--cream-warm) !important;
    color: var(--text) !important;
}

body .se-idx-mls-nearby__item-icon svg {
    width: 14px !important;
    height: 14px !important;
    display: block !important;
}

body .se-idx-mls-nearby__item-info {
    flex: 1 !important;
    min-width: 0 !important;
    display: block !important;
}

body .se-idx-mls-nearby__item-name {
    display: block !important;
    width: auto !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: var(--ink) !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    font-family: var(--sans) !important;
}

body .se-idx-mls-nearby__item-type {
    display: block !important;
    width: auto !important;
    font-size: 11px !important;
    color: var(--muted) !important;
    margin-top: 1px !important;
    font-family: var(--sans) !important;
}

body .se-idx-mls-nearby__item-distance {
    flex-shrink: 0 !important;
    width: auto !important;
    margin-left: auto !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    color: var(--text) !important;
    font-family: var(--sans) !important;
    display: inline !important;
}

/* ── Similar listings ───────────────────────────────────────────────── */
body .se-idx-mls-similar-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 16px !important;
    overflow-x: visible !important;
}

body .se-idx-mls-similar-card {
    background: #fff !important;
    border: 1px solid var(--border) !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    transition: transform 0.2s, box-shadow 0.2s !important;
    text-decoration: none !important;
    display: block !important;
    font-family: var(--sans) !important;
    min-width: 0 !important;
    width: 100% !important;
}

body .se-idx-mls-similar-card:hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 10px 32px rgba(0,0,0,0.1) !important;
}

body .se-idx-mls-similar-card__media {
    height: 140px !important;
    overflow: hidden !important;
}

body .se-idx-mls-similar-card__media img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
}

body .se-idx-mls-similar-card__price {
    font-family: var(--serif) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    color: var(--ink) !important;
}

body .se-idx-mls-similar-card__body {
    padding: 14px !important;
}

/* ── Enquiry band ───────────────────────────────────────────────────── */
body .se-idx-mls-detail__enquiry-band {
    margin-top: 16px !important;
    padding-top: 0 !important;
    border-top: none !important;
}

body .se-idx-mls-sidecard,
body .se-idx-sidebar-card {
    background: #fff !important;
    border: 1px solid var(--border) !important;
    border-radius: 16px !important;
    padding: 24px 26px !important;
    font-family: var(--sans) !important;
    box-shadow: 0 2px 16px rgba(0,0,0,0.05) !important;
}

body .se-idx-mls-sidecard__price,
body .se-idx-sidebar-card__price {
    font-family: var(--serif) !important;
    font-size: clamp(1.3rem, 2.5vw, 1.7rem) !important;
    font-weight: 700 !important;
    color: var(--ink) !important;
    margin-bottom: 16px !important;
    display: block !important;
}

/* Enquiry form inputs */
body .se-idx-mls-detail__enquiry-band input,
body .se-idx-mls-detail__enquiry-band textarea,
body .se-idx-mls-detail__enquiry-band select {
    width: 100% !important;
    border: 1.5px solid var(--border) !important;
    border-radius: 8px !important;
    padding: 11px 14px !important;
    font-size: 14px !important;
    font-family: var(--sans) !important;
    color: var(--ink) !important;
    background: #FAFAFA !important;
    transition: border-color 0.2s !important;
    box-sizing: border-box !important;
}

body .se-idx-mls-detail__enquiry-band input:focus,
body .se-idx-mls-detail__enquiry-band textarea:focus {
    border-color: var(--ink) !important;
    outline: none !important;
    background: #fff !important;
}

body .se-idx-mls-detail__enquiry-band button[type="submit"],
body .se-idx-mls-detail__enquiry-band .se-idx-mls-button--primary {
    width: 100% !important;
    background: var(--ink) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 8px !important;
    padding: 13px 20px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    font-family: var(--sans) !important;
    cursor: pointer !important;
    transition: background 0.2s !important;
    margin-top: 12px !important;
}

body .se-idx-mls-detail__enquiry-band button[type="submit"]:hover {
    background: #333 !important;
}

/* ── Floorplan ──────────────────────────────────────────────────────── */
body .se-idx-mls-floorplan-tabs {
    display: flex !important;
    gap: 8px !important;
    margin-bottom: 16px !important;
    flex-wrap: wrap !important;
}

body .se-idx-mls-floorplan-tab {
    font-size: 13px !important;
    font-weight: 500 !important;
    font-family: var(--sans) !important;
    padding: 8px 18px !important;
    border-radius: 6px !important;
    border: 1.5px solid var(--border) !important;
    background: #fff !important;
    color: var(--text) !important;
    cursor: pointer !important;
    text-decoration: none !important;
    transition: background 0.2s, border-color 0.2s !important;
}

body .se-idx-mls-floorplan-tab.is-active {
    background: var(--ink) !important;
    color: #fff !important;
    border-color: var(--ink) !important;
}

body .se-idx-mls-floorplan {
    width: 100% !important;
    border-radius: 10px !important;
    display: block !important;
    height: auto !important;
}

/* ── Mobile ─────────────────────────────────────────────────────────── */
@media (max-width: 840px) {
    body .se-idx-mls-gallery__track {
        height: clamp(300px, 52vw, 480px) !important;
    }

    body .se-idx-mls-detail__inner {
        padding-left: 18px !important;
        padding-right: 18px !important;
    }

    body .se-idx-mls-section {
        padding: 22px 20px !important;
        border-radius: 12px !important;
    }

    body .se-idx-mls-spec-strip {
        flex-wrap: wrap !important;
    }

    body .se-idx-mls-spec-strip__item {
        min-width: 130px !important;
        padding: 14px 12px !important;
    }

    body .se-idx-mls-header {
        flex-direction: column !important;
        gap: 14px !important;
    }

    body .se-idx-mls-header__price {
        text-align: left !important;
    }

    body .se-idx-mls-project-band {
        flex-direction: column !important;
        gap: 0 !important;
    }

    body .se-idx-mls-project-band__item {
        border-right: none !important;
        border-bottom: 1px solid rgba(255,255,255,0.06) !important;
    }

    body .se-idx-mls-project-band__item:last-child {
        border-bottom: none !important;
    }
}

@media (max-width: 600px) {
    body .se-idx-mls-gallery__track {
        height: clamp(220px, 60vw, 360px) !important;
    }

    body .se-idx-mls-gallery__nav {
        width: 36px !important;
        height: 36px !important;
        font-size: 18px !important;
    }

    body .se-idx-mls-detail__inner {
        padding-left: 14px !important;
        padding-right: 14px !important;
    }

    body .se-idx-mls-section {
        padding: 18px 16px !important;
        border-radius: 10px !important;
    }

    body .se-idx-mls-spec-strip__item {
        min-width: calc(50% - 0.5px) !important;
        padding: 12px 12px !important;
        border-right: 1px solid var(--border) !important;
        border-bottom: 1px solid var(--border) !important;
    }

    body .se-idx-mls-inline-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    body .se-idx-mls-amenity-groups {
        grid-template-columns: 1fr !important;
    }

    body .se-idx-mls-sidecard,
    body .se-idx-sidebar-card {
        padding: 18px 16px !important;
        border-radius: 12px !important;
    }
}


/* ══════════════════════════════════════════════════════════════════════
   PAGINATION
   ══════════════════════════════════════════════════════════════════════ */
body .se-idx-pagination {
    display: flex;
    gap: 6px;
    justify-content: center;
    flex-wrap: wrap;
    padding: 32px 0;
}

body .se-idx-pagination__button {
    min-width: 38px;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 500;
    border: 1.5px solid var(--border);
    border-radius: 8px;
    background: #fff;
    color: var(--text);
    cursor: pointer;
    transition: border-color 0.2s, background 0.2s, color 0.2s;
    padding: 0 12px;
    text-decoration: none;
    font-family: var(--sans);
}

body .se-idx-pagination__button:hover {
    border-color: var(--ink);
    color: var(--ink);
}

body .se-idx-pagination__button.is-active,
body .se-idx-pagination__button[aria-current="page"] {
    background: var(--ink);
    color: #fff;
    border-color: var(--ink);
}


/* ══════════════════════════════════════════════════════════════════════
   POPUPS & FORMS
   ══════════════════════════════════════════════════════════════════════ */
body .se-idx-popup__content {
    background: #fff;
    border-radius: 16px;
    padding: 32px;
    max-width: 440px;
    box-shadow: 0 24px 80px rgba(0,0,0,0.18);
    font-family: var(--sans);
}

body .se-idx-popup__heading {
    font-family: var(--serif);
    font-size: 22px;
    font-weight: 600;
    color: var(--ink);
}

body .se-idx-popup__overlay {
    background: rgba(0,0,0,0.55);
    backdrop-filter: blur(4px);
}

body .se-idx-lead-form,
body .se-idx-mls-form {
    font-family: var(--sans);
}


/* ══════════════════════════════════════════════════════════════════════
   ACCOUNT / PROFILE
   ══════════════════════════════════════════════════════════════════════ */
body .se-idx-account {
    font-family: var(--sans);
}

body .se-idx-account__tab,
body .se-idx-profile__tab {
    font-family: var(--sans);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    color: var(--muted);
    border-bottom: 2px solid transparent;
    transition: color 0.2s, border-color 0.2s;
}

body .se-idx-account__tab.is-active,
body .se-idx-profile__tab.is-active {
    color: var(--ink);
    border-bottom-color: var(--ink);
}

body .se-idx-profile__name {
    font-family: var(--serif);
    font-size: 18px;
    font-weight: 600;
    color: var(--ink);
}


/* ══════════════════════════════════════════════════════════════════════
   EMPTY STATE
   ══════════════════════════════════════════════════════════════════════ */
body .se-idx-empty-panel h3,
body .se-idx-mls-empty h3 {
    font-family: var(--serif);
    font-size: 20px;
    color: var(--ink);
}

body .se-idx-empty-panel p,
body .se-idx-mls-empty p {
    font-family: var(--sans);
    font-size: 14px;
    color: var(--muted);
}


/* ══════════════════════════════════════════════════════════════════════
   SHARE BAR
   Theme converts <button> + <a> to display:block width:100% stacked
   accordion items. Force everything back to inline-flex.
   ══════════════════════════════════════════════════════════════════════ */
body .se-idx-mls-detail__band--share {
    background: #fff !important;
    border-bottom: 1px solid var(--border) !important;
}

body .se-idx-mls-detail__band--share .se-idx-mls-detail__inner {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

body .se-idx-share-bar {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 12px 0 !important;
}

body .se-idx-share-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 34px !important;
    padding: 0 14px !important;
    border: 1.5px solid var(--border) !important;
    border-radius: 7px !important;
    background: #fff !important;
    color: var(--text) !important;
    font-family: var(--sans) !important;
    font-size: 12.5px !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
    transition: border-color 0.15s, color 0.15s, background 0.15s !important;
    box-sizing: border-box !important;
}

body .se-idx-share-btn:hover {
    border-color: var(--ink) !important;
    color: var(--ink) !important;
    background: #F5F4F0 !important;
}

body .se-idx-share-btn svg {
    flex-shrink: 0 !important;
    width: 15px !important;
    height: 15px !important;
}

body .se-idx-share-btn__tooltip {
    pointer-events: none !important;
}

body .se-idx-share-btn__label {
    pointer-events: none !important;
}


/* ══════════════════════════════════════════════════════════════════════
   RESPONSIVE
   ══════════════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
    body .se-idx-card-grid,
    body .se-idx .card-grid,
    body .prop-grid {
        grid-template-columns: 1fr 1fr;
    }

    body .se-idx-mls-similar-grid {
        grid-template-columns: 1fr 1fr !important;
    }
    body .se-idx-featured-b__grid {
        grid-template-columns: 1fr 1fr;
    }

    body .se-idx-list-row,
    body .se-idx-prop-list,
    body .se-idx .prop-list-card {
        flex-direction: column;
    }

    body .se-idx-list-row__media,
    body .se-idx-prop-list__media,
    body .se-idx .prop-list-img {
        width: 100%;
        height: 200px;
    }

    body .se-idx-market-report__grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 480px) {
    body .se-idx-card-grid,
    body .se-idx .card-grid,
    body .prop-grid,
    body .se-idx-featured-b__grid {
        grid-template-columns: 1fr;
    }
    body .se-idx-mls-similar-grid {
        grid-template-columns: 1fr !important;
    }

    body .se-idx-market-report__grid {
        grid-template-columns: 1fr;
    }

    body .se-idx-search-hero__bar {
        flex-direction: column;
    }
}


/* ══════════════════════════════════════════════════════════════════════
   AUTH GATE MODAL (price-gate login/register overlay)
   ══════════════════════════════════════════════════════════════════════ */
.se-idx-auth-gate-overlay {
    position: fixed;
    inset: 0;
    z-index: 99999;
    background: rgba(15, 15, 20, 0.65);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    transition: opacity 0.25s ease, visibility 0.25s ease;
}

.se-idx-auth-gate-overlay.is-open {
    opacity: 1;
    pointer-events: all;
    visibility: visible;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.se-idx-auth-gate-modal {
    background: #fff;
    border-radius: 20px;
    width: 100%;
    max-width: 460px;
    max-height: 92vh;
    overflow-y: auto;
    box-shadow: 0 32px 100px rgba(0,0,0,0.22);
    position: relative;
    padding: 36px 36px 32px;
    font-family: var(--sans);
}

.se-idx-auth-gate-modal__close {
    position: absolute !important;
    top: 16px !important;
    right: 16px !important;
    width: 32px !important;
    height: 32px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    background: var(--cream-warm) !important;
    border: none !important;
    cursor: pointer !important;
    color: var(--text) !important;
    font-size: 18px !important;
    line-height: 1 !important;
    transition: background 0.2s !important;
}

.se-idx-auth-gate-modal__close:hover {
    background: var(--border) !important;
}

.se-idx-auth-gate-modal__logo {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 20px;
}

.se-idx-auth-gate-modal__logo img {
    height: 36px;
    width: auto;
}

.se-idx-auth-gate-modal__headline {
    font-family: var(--serif);
    font-size: 22px;
    font-weight: 700;
    color: var(--ink);
    margin: 0 0 4px;
    line-height: 1.3;
}

.se-idx-auth-gate-modal__sub {
    font-size: 13.5px;
    color: var(--muted);
    margin: 0 0 24px;
}

/* Account form inside the modal */
.se-idx-auth-gate-modal .se-idx-account__tabs {
    display: flex !important;
    gap: 4px !important;
    margin-bottom: 20px !important;
    border-bottom: 1px solid var(--border) !important;
}

.se-idx-auth-gate-modal .se-idx-account__tab {
    display: inline-flex !important;
    width: auto !important;
    padding: 8px 16px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: var(--muted) !important;
    border: none !important;
    background: none !important;
    border-bottom: 2px solid transparent !important;
    cursor: pointer !important;
    font-family: var(--sans) !important;
}

.se-idx-auth-gate-modal .se-idx-account__tab.is-active {
    color: var(--ink) !important;
    border-bottom-color: var(--ink) !important;
}

.se-idx-auth-gate-modal .se-idx-account__field {
    margin-bottom: 14px !important;
}

.se-idx-auth-gate-modal .se-idx-account__field label {
    display: block !important;
    font-size: 11.5px !important;
    font-weight: 600 !important;
    color: var(--muted) !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
    margin-bottom: 6px !important;
}

.se-idx-auth-gate-modal .se-idx-account__field input {
    width: 100% !important;
    padding: 11px 14px !important;
    border: 1.5px solid var(--border) !important;
    border-radius: 8px !important;
    font-size: 14px !important;
    font-family: var(--sans) !important;
    color: var(--ink) !important;
    background: #FAFAFA !important;
    box-sizing: border-box !important;
    transition: border-color 0.2s !important;
}

.se-idx-auth-gate-modal .se-idx-account__field input:focus {
    outline: none !important;
    border-color: var(--ink) !important;
    background: #fff !important;
}

.se-idx-auth-gate-modal .se-idx-account__submit {
    width: 100% !important;
    background: var(--ink) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 10px !important;
    padding: 13px 20px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    font-family: var(--sans) !important;
    cursor: pointer !important;
    margin-top: 6px !important;
    transition: background 0.2s !important;
    display: block !important;
}

.se-idx-auth-gate-modal .se-idx-account__submit:hover {
    background: #333 !important;
}

.se-idx-auth-gate-modal .se-idx-account__error {
    background: #fff3f3 !important;
    color: #c0392b !important;
    border: 1px solid #fcd4d4 !important;
    border-radius: 8px !important;
    padding: 10px 14px !important;
    font-size: 13px !important;
    margin-bottom: 12px !important;
}

.se-idx-auth-gate-modal .se-idx-account__panel {
    display: none;
}

.se-idx-auth-gate-modal .se-idx-account__panel.is-active {
    display: block;
}

@media (max-width: 520px) {
    .se-idx-auth-gate-modal {
        padding: 28px 22px 24px;
        border-radius: 16px;
        max-height: 98vh;
    }
}
