/**
 * RealtyPress Modern — single listing design system
 *
 * Scoped to .bootstrap-realtypress.rpsm so it can live alongside the
 * plugin's Bootstrap 3 stylesheets without leaking into the theme.
 *
 * @version 2.0.0
 */

/* ==========================================================================
   Design tokens
   ========================================================================== */

.bootstrap-realtypress.rpsm {
    --rpsm-ink:          #16202e;
    --rpsm-ink-soft:     #51606f;
    --rpsm-ink-faint:    #8694a3;
    --rpsm-line:         #e4e9ee;
    --rpsm-line-strong:  #cfd8e0;
    --rpsm-surface:      #ffffff;
    --rpsm-surface-alt:  #f5f7f9;
    --rpsm-accent:       #0f6e5d;
    --rpsm-accent-ink:   #0b5546;
    --rpsm-accent-soft:  #e3f2ee;
    --rpsm-danger:       #b3261e;
    --rpsm-danger-soft:  #fdecea;
    --rpsm-warn-soft:    #fdf3e0;
    --rpsm-warn-ink:     #8a5a00;
    --rpsm-radius:       14px;
    --rpsm-radius-sm:    9px;
    --rpsm-shadow:       0 1px 2px rgba(22, 32, 46, .05), 0 8px 24px -12px rgba(22, 32, 46, .18);
    --rpsm-shadow-lift:  0 2px 4px rgba(22, 32, 46, .06), 0 18px 44px -16px rgba(22, 32, 46, .28);
    --rpsm-font:         "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

    font-family: var(--rpsm-font);
    color: var(--rpsm-ink);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.bootstrap-realtypress.rpsm .rps-single-listing {
    font-size: 15px;
    line-height: 1.6;
    padding-bottom: 48px;
}

.bootstrap-realtypress.rpsm .rps-single-listing *,
.bootstrap-realtypress.rpsm .rps-single-listing *::before,
.bootstrap-realtypress.rpsm .rps-single-listing *::after {
    box-sizing: border-box;
}

.bootstrap-realtypress.rpsm .rps-single-listing a {
    color: var(--rpsm-accent);
    text-decoration: none;
}

.bootstrap-realtypress.rpsm .rps-single-listing a:hover,
.bootstrap-realtypress.rpsm .rps-single-listing a:focus {
    color: var(--rpsm-accent-ink);
    text-decoration: underline;
}

.bootstrap-realtypress.rpsm .rps-single-listing :focus-visible {
    outline: 2px solid var(--rpsm-accent);
    outline-offset: 2px;
    border-radius: 4px;
}

/* ==========================================================================
   Buttons & chips
   ========================================================================== */

.rpsm .rpsm-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 16px;
    border-radius: 999px;
    border: 1px solid var(--rpsm-line-strong);
    background: var(--rpsm-surface);
    color: var(--rpsm-ink);
    font: 600 14px/1.2 var(--rpsm-font);
    cursor: pointer;
    transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease, transform .05s ease;
    text-decoration: none !important;
    white-space: nowrap;
}

/* Anchor buttons must beat the scoped link-color rule above */
.bootstrap-realtypress.rpsm .rps-single-listing a.rpsm-btn,
.rpsm-stickybar a.rpsm-btn {
    color: var(--rpsm-ink, #16202e);
}

.rpsm .rpsm-btn:hover,
.bootstrap-realtypress.rpsm .rps-single-listing a.rpsm-btn:hover {
    background: var(--rpsm-surface-alt);
    border-color: var(--rpsm-ink-faint);
    color: var(--rpsm-ink);
}

.rpsm .rpsm-btn:active {
    transform: translateY(1px);
}

.rpsm .rpsm-btn svg {
    flex: none;
}

.rpsm .rpsm-btn--primary,
.bootstrap-realtypress.rpsm .rps-single-listing a.rpsm-btn--primary,
.rpsm-stickybar a.rpsm-btn--primary,
.rpsm .rps-single-listing .btn-primary.rpsm-btn--primary {
    background: var(--rpsm-accent);
    border-color: var(--rpsm-accent);
    color: #fff;
    text-shadow: none;
    box-shadow: none;
}

.rpsm .rpsm-btn--primary:hover,
.bootstrap-realtypress.rpsm .rps-single-listing a.rpsm-btn--primary:hover,
.rpsm-stickybar a.rpsm-btn--primary:hover,
.rpsm .rps-single-listing .btn-primary.rpsm-btn--primary:hover,
.rpsm .rps-single-listing .btn-primary.rpsm-btn--primary:focus {
    background: var(--rpsm-accent-ink);
    border-color: var(--rpsm-accent-ink);
    color: #fff;
}

.rpsm .rpsm-btn--block {
    width: 100%;
    justify-content: center;
    border-radius: var(--rpsm-radius-sm);
    padding: 13px 16px;
    font-size: 15px;
}

.rpsm .rpsm-btn--ghost.is-favorited,
.bootstrap-realtypress.rpsm .rps-single-listing a.rpsm-btn--ghost.is-favorited {
    color: var(--rpsm-danger);
    border-color: currentColor;
    background: var(--rpsm-danger-soft);
}

.rpsm .rpsm-chip {
    display: inline-flex;
    align-items: center;
    padding: 7px 13px;
    border-radius: 999px;
    border: 1px solid var(--rpsm-line-strong);
    background: var(--rpsm-surface);
    color: var(--rpsm-ink-soft);
    font: 500 13px/1.2 var(--rpsm-font);
    cursor: pointer;
    transition: all .15s ease;
}

.rpsm .rpsm-chip:hover,
.rpsm .rpsm-chip.is-active {
    border-color: var(--rpsm-accent);
    color: var(--rpsm-accent-ink);
    background: var(--rpsm-accent-soft);
}

/* ==========================================================================
   Header
   ========================================================================== */

.rpsm .rpsm-breadcrumb {
    padding: 18px 0 6px;
    font-size: 13.5px;
}

.rpsm .rpsm-breadcrumb a {
    color: var(--rpsm-ink-soft);
}

.rpsm .rpsm-header__row {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 32px;
    align-items: flex-end;
    justify-content: space-between;
    padding: 6px 0 18px;
}

.rpsm .rpsm-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 10px;
}

.rpsm .rpsm-badge {
    display: inline-block;
    padding: 4px 11px;
    border-radius: 999px;
    background: var(--rpsm-surface-alt);
    border: 1px solid var(--rpsm-line);
    color: var(--rpsm-ink-soft);
    font: 600 12px/1.4 var(--rpsm-font);
    letter-spacing: .02em;
    text-transform: uppercase;
}

.rpsm .rpsm-badge--status {
    background: var(--rpsm-accent-soft);
    border-color: transparent;
    color: var(--rpsm-accent-ink);
}

.rpsm .rpsm-badge--sold {
    background: var(--rpsm-danger);
    border-color: var(--rpsm-danger);
    color: #fff;
}

.rpsm .rpsm-badge--openhouse {
    background: var(--rpsm-warn-soft);
    border-color: transparent;
    color: var(--rpsm-warn-ink);
}

.rpsm .rps-single-listing h1.rpsm-header__title {
    margin: 0;
    font-family: var(--rpsm-font);
    font-size: clamp(26px, 4vw, 38px);
    font-weight: 800;
    letter-spacing: -.02em;
    line-height: 1.12;
    color: var(--rpsm-ink);
}

.rpsm .rpsm-header__city {
    display: block;
    margin-top: 6px;
    font-size: clamp(15px, 2vw, 18px);
    font-weight: 500;
    letter-spacing: 0;
    color: var(--rpsm-ink-soft);
}

.rpsm .rpsm-header__side {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 12px;
}

.rpsm .rpsm-header__price {
    text-align: right;
}

.rpsm .rpsm-price {
    display: block;
    font-size: clamp(26px, 3.4vw, 34px);
    font-weight: 800;
    letter-spacing: -.02em;
    line-height: 1.1;
    color: var(--rpsm-ink);
}

.rpsm .rpsm-price__meta {
    display: block;
    margin-top: 3px;
    font-size: 13px;
    color: var(--rpsm-ink-faint);
}

.rpsm .rpsm-header__actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

.rpsm .rps-single-listing-favorites-wrap {
    display: inline-flex;
}

/* Share menu */
.rpsm .rpsm-share {
    position: relative;
    display: inline-flex;
}

.rpsm .rpsm-share__menu {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 60;
    min-width: 185px;
    padding: 6px;
    background: var(--rpsm-surface);
    border: 1px solid var(--rpsm-line);
    border-radius: var(--rpsm-radius-sm);
    box-shadow: var(--rpsm-shadow-lift);
}

.rpsm .rpsm-share__menu a,
.rpsm .rpsm-share__menu button {
    display: block;
    width: 100%;
    padding: 9px 12px;
    border: 0;
    border-radius: 7px;
    background: none;
    color: var(--rpsm-ink);
    font: 500 14px/1.3 var(--rpsm-font);
    text-align: left;
    cursor: pointer;
    text-decoration: none !important;
}

.rpsm .rpsm-share__menu a:hover,
.rpsm .rpsm-share__menu button:hover {
    background: var(--rpsm-surface-alt);
    color: var(--rpsm-ink);
}

/* ==========================================================================
   Sticky summary bar
   ========================================================================== */

.rpsm-stickybar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1010;
    background: rgba(255, 255, 255, .92);
    -webkit-backdrop-filter: saturate(1.6) blur(10px);
    backdrop-filter: saturate(1.6) blur(10px);
    border-bottom: 1px solid var(--rpsm-line);
    box-shadow: 0 6px 20px -14px rgba(22, 32, 46, .4);
    transform: translateY(-110%);
    transition: transform .28s ease;
}

.rpsm-stickybar.is-visible {
    transform: translateY(0);
}

.rpsm-stickybar__inner {
    max-width: 1170px;
    margin: 0 auto;
    padding: 10px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    font-family: var(--rpsm-font, sans-serif);
}

.rpsm-stickybar__info {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.rpsm-stickybar__info strong {
    font-size: 15px;
    color: #16202e;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rpsm-stickybar__info span {
    font-size: 12.5px;
    color: #8694a3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rpsm-stickybar__cta {
    display: flex;
    align-items: center;
    gap: 14px;
    flex: none;
}

.rpsm-stickybar__price {
    font-size: 18px;
    font-weight: 800;
    letter-spacing: -.01em;
    color: #16202e;
    white-space: nowrap;
}

/* ==========================================================================
   Gallery mosaic
   ========================================================================== */

.rpsm .rpsm-gallery {
    position: relative;
    margin-bottom: 22px;
}

.rpsm .rpsm-gallery__grid {
    position: relative;
    display: grid;
    gap: 8px;
    border-radius: var(--rpsm-radius);
    overflow: hidden;
}

.rpsm .rpsm-gallery__grid--5 {
    grid-template-columns: 2fr 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    aspect-ratio: 21 / 9;
}

.rpsm .rpsm-gallery__grid--5 .rpsm-gallery__tile--main {
    grid-row: span 2;
}

.rpsm .rpsm-gallery__grid--3 {
    grid-template-columns: 2fr 1fr;
    grid-template-rows: 1fr 1fr;
    aspect-ratio: 18 / 9;
}

.rpsm .rpsm-gallery__grid--3 .rpsm-gallery__tile--main {
    grid-row: span 2;
}

.rpsm .rpsm-gallery__grid--1 {
    grid-template-columns: 1fr;
    aspect-ratio: 16 / 8;
}

.rpsm .rpsm-gallery__tile {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    padding: 0;
    margin: 0;
    border: 0;
    background: var(--rpsm-surface-alt);
    cursor: zoom-in;
    overflow: hidden;
}

.rpsm .rpsm-gallery__tile img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .45s ease, filter .3s ease;
}

.rpsm .rpsm-gallery__tile:hover img {
    transform: scale(1.035);
    filter: brightness(.96);
}

.rpsm .rpsm-gallery__ribbon {
    position: absolute;
    top: 18px;
    left: 18px;
    z-index: 3;
    padding: 7px 16px;
    background: var(--rpsm-danger);
    color: #fff;
    border-radius: 999px;
    font: 700 13px/1.2 var(--rpsm-font);
    letter-spacing: .08em;
    text-transform: uppercase;
    box-shadow: var(--rpsm-shadow);
}

.rpsm .rpsm-gallery__all {
    position: absolute;
    right: 14px;
    bottom: 14px;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 15px;
    border: 1px solid rgba(255, 255, 255, .4);
    border-radius: 999px;
    background: rgba(22, 32, 46, .72);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    color: #fff;
    font: 600 13.5px/1.2 var(--rpsm-font);
    cursor: pointer;
    transition: background-color .15s ease;
}

.rpsm .rpsm-gallery__all:hover {
    background: rgba(22, 32, 46, .9);
}

/* ==========================================================================
   Lightbox (markup injected by rps-modern.js)
   ========================================================================== */

.rpsm-lightbox {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: flex;
    flex-direction: column;
    background: #0b0f15;
    font-family: var(--rpsm-font, sans-serif);
    opacity: 0;
    transition: opacity .22s ease;
}

.rpsm-lightbox.is-open {
    opacity: 1;
}

.rpsm-lightbox__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    color: #d6dde4;
    font-size: 14px;
}

.rpsm-lightbox__counter {
    font-weight: 600;
    letter-spacing: .04em;
}

.rpsm-lightbox__close {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .18);
    color: #fff;
    border-radius: 999px;
    padding: 8px 16px;
    font: 600 13.5px/1 inherit;
    cursor: pointer;
}

.rpsm-lightbox__close:hover {
    background: rgba(255, 255, 255, .16);
}

.rpsm-lightbox__stage {
    position: relative;
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 0;
    padding: 0 64px;
}

.rpsm-lightbox__stage img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    border-radius: 6px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, .5);
    user-select: none;
}

.rpsm-lightbox__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    width: 46px;
    height: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 50%;
    background: rgba(255, 255, 255, .08);
    color: #fff;
    cursor: pointer;
    transition: background-color .15s ease;
}

.rpsm-lightbox__nav:hover {
    background: rgba(255, 255, 255, .18);
}

.rpsm-lightbox__nav--prev { left: 14px; }
.rpsm-lightbox__nav--next { right: 14px; }

.rpsm-lightbox__thumbs {
    display: flex;
    gap: 8px;
    padding: 14px 18px 18px;
    overflow-x: auto;
    scrollbar-width: thin;
    justify-content: safe center;
}

.rpsm-lightbox__thumbs button {
    flex: none;
    width: 86px;
    height: 58px;
    padding: 0;
    border: 2px solid transparent;
    border-radius: 7px;
    overflow: hidden;
    cursor: pointer;
    background: none;
    opacity: .55;
    transition: opacity .15s ease, border-color .15s ease;
}

.rpsm-lightbox__thumbs button img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.rpsm-lightbox__thumbs button:hover {
    opacity: .85;
}

.rpsm-lightbox__thumbs button.is-current {
    opacity: 1;
    border-color: #fff;
}

/* ==========================================================================
   Section nav (scroll-spy)
   ========================================================================== */

.rpsm .rpsm-sectionnav {
    position: sticky;
    top: 0;
    z-index: 50;
    display: flex;
    gap: 4px;
    margin: 0 0 26px;
    padding: 8px 4px;
    background: rgba(255, 255, 255, .94);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid var(--rpsm-line);
    overflow-x: auto;
    scrollbar-width: none;
}

.rpsm .rpsm-sectionnav::-webkit-scrollbar {
    display: none;
}

.rpsm .rpsm-sectionnav a {
    flex: none;
    padding: 8px 14px;
    border-radius: 999px;
    color: var(--rpsm-ink-soft);
    font: 600 14px/1.2 var(--rpsm-font);
    text-decoration: none !important;
}

.rpsm .rpsm-sectionnav a:hover {
    color: var(--rpsm-ink);
    background: var(--rpsm-surface-alt);
}

.rpsm .rpsm-sectionnav a.is-active {
    color: var(--rpsm-accent-ink);
    background: var(--rpsm-accent-soft);
}

/* When the sticky summary bar is visible it sits above the section nav */
.rpsm-stickybar.is-visible ~ * .rpsm-sectionnav,
body.rpsm-stickybar-visible .rpsm .rpsm-sectionnav {
    top: 62px;
}

/* ==========================================================================
   Layout
   ========================================================================== */

.rpsm .rpsm-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 40px;
    align-items: start;
}

.rpsm .rpsm-rail__sticky {
    position: sticky;
    top: 88px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rpsm .rpsm-section {
    margin-bottom: 38px;
    scroll-margin-top: 120px;
}

.rpsm .rps-single-listing h2.rpsm-section__title {
    margin: 0 0 16px;
    font-family: var(--rpsm-font);
    font-size: 21px;
    font-weight: 700;
    letter-spacing: -.01em;
    color: var(--rpsm-ink);
}

.rpsm .rpsm-location-address {
    margin: -6px 0 14px;
    color: var(--rpsm-ink-soft);
}

.rpsm .rpsm-moreinfo {
    margin: 8px 0 0;
    font-size: 14px;
}

/* ==========================================================================
   Key facts & pills
   ========================================================================== */

.rpsm .rpsm-facts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 10px;
    margin-bottom: 16px;
}

.rpsm .rpsm-fact {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 13px 14px;
    border: 1px solid var(--rpsm-line);
    border-radius: var(--rpsm-radius-sm);
    background: var(--rpsm-surface);
}

.rpsm .rpsm-fact__icon {
    flex: none;
    width: 38px;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: var(--rpsm-accent-soft);
    color: var(--rpsm-accent-ink);
}

.rpsm .rpsm-fact__icon svg {
    width: 21px;
    height: 21px;
}

.rpsm .rpsm-fact__body {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.rpsm .rpsm-fact__body strong {
    font-size: 15.5px;
    font-weight: 700;
    line-height: 1.25;
    color: var(--rpsm-ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rpsm .rpsm-fact__body small {
    font-size: 12px;
    color: var(--rpsm-ink-faint);
}

.rpsm .rpsm-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 22px;
}

.rpsm .rpsm-pill {
    padding: 6px 13px;
    border-radius: 999px;
    background: var(--rpsm-surface-alt);
    border: 1px solid var(--rpsm-line);
    color: var(--rpsm-ink-soft);
    font: 500 13px/1.4 var(--rpsm-font);
}

/* ==========================================================================
   Description / read more
   ========================================================================== */

.rpsm .rpsm-description {
    margin-bottom: 10px;
}

.rpsm .rpsm-description__body {
    position: relative;
    color: var(--rpsm-ink-soft);
    font-size: 15.5px;
    line-height: 1.75;
}

.rpsm .rpsm-description__body p {
    margin: 0;
}

.rpsm .rpsm-description.is-clamped .rpsm-description__body {
    max-height: 10.5em;
    overflow: hidden;
}

.rpsm .rpsm-description.is-clamped .rpsm-description__body::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 56px;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0), #fff);
}

.rpsm .rpsm-readmore {
    margin-top: 8px;
    padding: 0;
    border: 0;
    background: none;
    color: var(--rpsm-accent);
    font: 700 14.5px/1.4 var(--rpsm-font);
    cursor: pointer;
}

.rpsm .rpsm-readmore:hover {
    color: var(--rpsm-accent-ink);
    text-decoration: underline;
}

.rpsm .rpsm-description__extra {
    color: var(--rpsm-ink-soft);
}

/* ==========================================================================
   Media (virtual tour) & links
   ========================================================================== */

.rpsm .rpsm-media {
    margin: 22px 0 4px;
}

.rpsm .rpsm-media__embed {
    position: relative;
    border-radius: var(--rpsm-radius);
    overflow: hidden;
    background: var(--rpsm-ink);
    aspect-ratio: 16 / 9;
    margin-bottom: 14px;
}

.rpsm .rpsm-media__embed iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.rpsm .rpsm-media__links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.rpsm .rpsm-media__links svg {
    width: 18px;
    height: 18px;
}

/* ==========================================================================
   Events (open house / live stream)
   ========================================================================== */

.rpsm .rpsm-events__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(265px, 1fr));
    gap: 14px;
}

.rpsm .rpsm-event {
    display: flex;
    gap: 15px;
    padding: 16px;
    border: 1px solid var(--rpsm-line);
    border-radius: var(--rpsm-radius);
    background: var(--rpsm-surface);
    box-shadow: var(--rpsm-shadow);
}

.rpsm .rpsm-event__date {
    flex: none;
    width: 58px;
    height: 64px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: var(--rpsm-radius-sm);
    background: var(--rpsm-accent-soft);
    color: var(--rpsm-accent-ink);
}

.rpsm .rpsm-event--stream .rpsm-event__date {
    background: var(--rpsm-warn-soft);
    color: var(--rpsm-warn-ink);
}

.rpsm .rpsm-event__month {
    font: 700 12px/1 var(--rpsm-font);
    letter-spacing: .08em;
    text-transform: uppercase;
}

.rpsm .rpsm-event__day {
    font: 800 24px/1.15 var(--rpsm-font);
}

.rpsm .rpsm-event__body {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    font-size: 14px;
}

.rpsm .rpsm-event__body strong {
    font-size: 15px;
    color: var(--rpsm-ink);
}

.rpsm .rpsm-event__body > span {
    color: var(--rpsm-ink-soft);
}

.rpsm .rpsm-event__comments {
    margin: 4px 0 0;
    font-size: 13px;
    color: var(--rpsm-ink-faint);
}

.rpsm .rpsm-event__calendar {
    margin-top: 6px;
    font-weight: 600;
    font-size: 13.5px;
}

/* ==========================================================================
   Cards & collapsible spec sections
   ========================================================================== */

.rpsm .rpsm-card {
    background: var(--rpsm-surface);
    border: 1px solid var(--rpsm-line);
    border-radius: var(--rpsm-radius);
    box-shadow: var(--rpsm-shadow);
}

.rpsm .rpsm-card + .rpsm-card,
.rpsm details.rpsm-card + details.rpsm-card {
    margin-top: 12px;
}

.rpsm details.rpsm-card {
    overflow: hidden;
}

.rpsm details.rpsm-card > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 20px;
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.rpsm details.rpsm-card > summary::-webkit-details-marker {
    display: none;
}

.rpsm details.rpsm-card > summary:hover {
    background: var(--rpsm-surface-alt);
}

.rpsm .rps-single-listing details.rpsm-card h3 {
    margin: 0;
    font-family: var(--rpsm-font);
    font-size: 16.5px;
    font-weight: 700;
    color: var(--rpsm-ink);
}

.rpsm .rpsm-card__chevron {
    flex: none;
    width: 9px;
    height: 9px;
    border-right: 2px solid var(--rpsm-ink-faint);
    border-bottom: 2px solid var(--rpsm-ink-faint);
    transform: rotate(45deg);
    transition: transform .2s ease;
}

.rpsm details[open] > summary .rpsm-card__chevron {
    transform: rotate(-135deg);
}

.rpsm .rpsm-card__body {
    padding: 4px 20px 20px;
}

.rpsm .rpsm-card:not(details) .rpsm-card__body {
    padding-top: 20px;
}

/* Spec grid */
.rpsm .rpsm-specs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 36px;
    margin: 0;
}

.rpsm .rpsm-specs__row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 18px;
    padding: 9px 0;
    border-bottom: 1px dashed var(--rpsm-line);
    font-size: 14px;
}

.rpsm .rpsm-specs__row dt {
    margin: 0;
    font-weight: 500;
    color: var(--rpsm-ink-faint);
    white-space: nowrap;
}

.rpsm .rpsm-specs__row dd {
    margin: 0;
    font-weight: 600;
    color: var(--rpsm-ink);
    text-align: right;
}

/* ==========================================================================
   Rooms
   ========================================================================== */

.rpsm .rpsm-rooms {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 22px 36px;
}

.rpsm .rps-single-listing h4.rpsm-rooms__heading {
    margin: 0 0 6px;
    font-family: var(--rpsm-font);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--rpsm-ink-faint);
}

.rpsm .rpsm-rooms__list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.rpsm .rpsm-rooms__list li {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    padding: 8px 0;
    border-bottom: 1px dashed var(--rpsm-line);
    font-size: 14px;
}

.rpsm .rpsm-rooms__type {
    font-weight: 600;
    color: var(--rpsm-ink);
}

.rpsm .rpsm-rooms__dims {
    color: var(--rpsm-ink-soft);
    white-space: nowrap;
}

/* ==========================================================================
   Map tabs
   ========================================================================== */

.rpsm .rpsm-maptabs {
    border: 1px solid var(--rpsm-line);
    border-radius: var(--rpsm-radius);
    overflow: hidden;
    background: var(--rpsm-surface);
    box-shadow: var(--rpsm-shadow);
}

.rpsm .rps-single-listing .rpsm-maptabs__nav.nav-tabs {
    display: inline-flex;
    gap: 4px;
    margin: 14px;
    padding: 4px;
    border: 0;
    border-radius: 999px;
    background: var(--rpsm-surface-alt);
}

.rpsm .rps-single-listing .rpsm-maptabs__nav.nav-tabs li {
    float: none;
    margin: 0;
}

.rpsm .rps-single-listing .rpsm-maptabs__nav.nav-tabs li a {
    margin: 0;
    padding: 8px 16px;
    border: 0 !important;
    border-radius: 999px !important;
    background: none;
    color: var(--rpsm-ink-soft);
    font: 600 13.5px/1.2 var(--rpsm-font);
}

.rpsm .rps-single-listing .rpsm-maptabs__nav.nav-tabs li a:hover {
    color: var(--rpsm-ink);
    background: rgba(255, 255, 255, .8);
}

.rpsm .rps-single-listing .rpsm-maptabs__nav.nav-tabs li.active a {
    background: var(--rpsm-surface);
    color: var(--rpsm-accent-ink);
    box-shadow: 0 1px 3px rgba(22, 32, 46, .14);
}

.rpsm .rpsm-maptabs__content .tab-map {
    width: 100%;
    height: 460px;
}

/* ==========================================================================
   Mortgage calculator
   ========================================================================== */

.rpsm .rpsm-calc__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 290px;
    gap: 28px;
    padding: 22px;
}

.rpsm .rpsm-calc__row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 14px;
}

.rpsm .rpsm-form__group {
    margin-bottom: 16px;
}

.rpsm .rpsm-form__label {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 6px;
    font: 600 13px/1.4 var(--rpsm-font);
    color: var(--rpsm-ink-soft);
}

.rpsm .rpsm-form__label output {
    font-weight: 700;
    color: var(--rpsm-accent-ink);
}

.rpsm .rpsm-calc input[type="text"],
.rpsm .rpsm-calc input[type="number"],
.rpsm .rpsm-calc select {
    width: 100%;
    height: 44px;
    padding: 0 13px;
    border: 1px solid var(--rpsm-line-strong);
    border-radius: var(--rpsm-radius-sm);
    background: var(--rpsm-surface);
    color: var(--rpsm-ink);
    font: 500 15px/1.2 var(--rpsm-font);
    box-shadow: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.rpsm .rpsm-calc input:focus,
.rpsm .rpsm-calc select:focus {
    outline: none;
    border-color: var(--rpsm-accent);
    box-shadow: 0 0 0 3px var(--rpsm-accent-soft);
}

.rpsm .rpsm-input-prefix {
    position: relative;
}

.rpsm .rpsm-input-prefix > span {
    position: absolute;
    left: 13px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--rpsm-ink-faint);
    font-weight: 600;
}

.rpsm .rpsm-input-prefix input {
    padding-left: 28px !important;
}

.rpsm .rpsm-calc input[type="range"] {
    width: 100%;
    height: 6px;
    margin: 10px 0 6px;
    appearance: none;
    -webkit-appearance: none;
    border-radius: 999px;
    background: linear-gradient(to right, var(--rpsm-accent) var(--rpsm-range-fill, 20%), var(--rpsm-line) var(--rpsm-range-fill, 20%));
    cursor: pointer;
}

.rpsm .rpsm-calc input[type="range"]::-webkit-slider-thumb {
    appearance: none;
    -webkit-appearance: none;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #fff;
    border: 2px solid var(--rpsm-accent);
    box-shadow: 0 1px 4px rgba(22, 32, 46, .25);
}

.rpsm .rpsm-calc input[type="range"]::-moz-range-thumb {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #fff;
    border: 2px solid var(--rpsm-accent);
    box-shadow: 0 1px 4px rgba(22, 32, 46, .25);
}

.rpsm .rpsm-calc__downvalue {
    font: 600 13.5px/1.4 var(--rpsm-font);
    color: var(--rpsm-ink-soft);
}

.rpsm .rpsm-calc__result {
    display: flex;
    flex-direction: column;
    padding: 20px;
    border-radius: var(--rpsm-radius-sm);
    background: var(--rpsm-surface-alt);
    border: 1px solid var(--rpsm-line);
}

.rpsm .rpsm-calc__resultlabel {
    font: 600 12.5px/1.4 var(--rpsm-font);
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--rpsm-ink-faint);
}

.rpsm .rpsm-calc__payment {
    font-size: 34px;
    font-weight: 800;
    letter-spacing: -.02em;
    line-height: 1.15;
    color: var(--rpsm-accent-ink);
}

.rpsm .rpsm-calc__per {
    font-size: 13.5px;
    color: var(--rpsm-ink-soft);
    margin-bottom: 14px;
}

.rpsm .rpsm-calc__breakdown {
    margin: 0 0 12px;
    padding: 12px 0 0;
    border-top: 1px solid var(--rpsm-line);
}

.rpsm .rpsm-calc__breakdown > div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 4px 0;
    font-size: 13.5px;
}

.rpsm .rpsm-calc__breakdown dt {
    font-weight: 500;
    color: var(--rpsm-ink-faint);
    margin: 0;
}

.rpsm .rpsm-calc__breakdown dd {
    font-weight: 700;
    color: var(--rpsm-ink);
    margin: 0;
}

.rpsm .rpsm-calc__note {
    margin: 0 0 6px;
    font-size: 12px;
    line-height: 1.55;
    color: var(--rpsm-ink-faint);
}

/* ==========================================================================
   Agent card
   ========================================================================== */

.rpsm .rpsm-agents {
    padding: 20px;
}

.rpsm .rps-single-listing h3.rpsm-agents__title {
    margin: 0 0 14px;
    font-family: var(--rpsm-font);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--rpsm-ink-faint);
}

.rpsm .rpsm-agent + .rpsm-agent {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--rpsm-line);
}

.rpsm .rpsm-agent__head {
    display: flex;
    align-items: center;
    gap: 13px;
    margin-bottom: 10px;
}

.rpsm .rpsm-agent__photo,
.rpsm .rpsm-agent__avatar {
    flex: none;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    object-fit: cover;
    object-position: top;
}

.rpsm .rpsm-agent__avatar {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--rpsm-accent-soft);
    color: var(--rpsm-accent-ink);
    font: 700 18px/1 var(--rpsm-font);
}

.rpsm .rpsm-agent__id {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.rpsm .rpsm-agent__id strong {
    font-size: 15.5px;
    color: var(--rpsm-ink);
}

.rpsm .rpsm-agent__id small {
    font-size: 12.5px;
    color: var(--rpsm-ink-faint);
}

.rpsm .rpsm-agent__contacts {
    font-size: 14px;
    color: var(--rpsm-ink-soft);
}

.rpsm .rpsm-agent__contacts p {
    margin: 0 0 4px;
}

.rpsm .rpsm-agent__office {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px dashed var(--rpsm-line);
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: 14px;
}

.rpsm .rpsm-agent__office strong {
    color: var(--rpsm-ink);
}

.rpsm .rpsm-agent__office small {
    color: var(--rpsm-ink-faint);
}

.rpsm .rpsm-agent__logo {
    max-width: 130px;
    max-height: 48px;
    object-fit: contain;
    margin-bottom: 6px;
}

/* ==========================================================================
   Contact form
   ========================================================================== */

.rpsm .rpsm-contact {
    padding: 20px;
}

.rpsm .rps-single-listing .rpsm-contact__head h3 {
    margin: 0 0 4px;
    font-family: var(--rpsm-font);
    font-size: 18px;
    font-weight: 700;
    color: var(--rpsm-ink);
}

.rpsm .rpsm-contact__head p {
    margin: 0 0 14px;
    font-size: 13.5px;
    color: var(--rpsm-ink-soft);
}

.rpsm .rpsm-contact__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
}

.rpsm .rpsm-contact .form-control {
    height: 44px;
    padding: 0 13px;
    border: 1px solid var(--rpsm-line-strong);
    border-radius: var(--rpsm-radius-sm);
    background: var(--rpsm-surface);
    color: var(--rpsm-ink);
    font: 500 14.5px/1.4 var(--rpsm-font);
    box-shadow: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.rpsm .rpsm-contact textarea.form-control {
    height: auto;
    padding: 11px 13px;
    resize: vertical;
}

.rpsm .rpsm-contact .form-control:focus {
    outline: none;
    border-color: var(--rpsm-accent);
    box-shadow: 0 0 0 3px var(--rpsm-accent-soft);
}

.rpsm .rpsm-contact .form-group {
    margin-bottom: 13px;
}

.rpsm .rpsm-form__captcha .rps-contact-captcha-output {
    font-size: 14px;
    color: var(--rpsm-ink-soft);
}

.rpsm .rpsm-form__captcha input {
    margin-top: 6px;
}

.rpsm .rpsm-form__agreement {
    font-size: 12.5px;
    color: var(--rpsm-ink-soft);
}

.rpsm .rpsm-contact .rps-contact-alerts .alert {
    border-radius: var(--rpsm-radius-sm);
    font-size: 14px;
}

.rpsm .rpsm-contact .progress {
    height: 8px;
    margin-bottom: 12px;
    border-radius: 999px;
    background: var(--rpsm-surface-alt);
    box-shadow: none;
}

.rpsm .rpsm-contact .progress-bar {
    background: var(--rpsm-accent);
    border-radius: 999px;
}

.rpsm .rpsm-contact .progress-bar span {
    display: none;
}

.rpsm .rpsm-contact__privacy {
    margin: 10px 0 0;
    font-size: 11.5px;
    line-height: 1.55;
    color: var(--rpsm-ink-faint);
    text-align: center;
}

/* ==========================================================================
   Footer (MLS / copyright)
   ========================================================================== */

.rpsm .rpsm-footer {
    margin-top: 26px;
    padding-top: 18px;
    border-top: 1px solid var(--rpsm-line);
    font-size: 12.5px;
    color: var(--rpsm-ink-faint);
}

/* ==========================================================================
   Results page — toolbar
   ========================================================================== */

.bootstrap-realtypress.rpsm.rpsm-results {
    font-family: var(--rpsm-font);
    color: var(--rpsm-ink);
}

.rpsm-results .rpsm-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px 20px;
    padding: 4px 0 16px;
    margin-bottom: 20px;
    border-bottom: 1px solid var(--rpsm-line);
}

.rpsm-results .rpsm-toolbar__left {
    display: flex;
    align-items: baseline;
    gap: 14px;
    flex-wrap: wrap;
}

.rpsm-results h1.rpsm-toolbar__title {
    margin: 0;
    font-family: var(--rpsm-font);
    font-size: clamp(21px, 3vw, 27px);
    font-weight: 800;
    letter-spacing: -.02em;
    color: var(--rpsm-ink);
}

.rpsm-results .rpsm-toolbar__count {
    font: 500 13.5px/1.4 var(--rpsm-font);
    color: var(--rpsm-ink-faint);
}

.rpsm-results .rpsm-toolbar__right {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.rpsm-results .rpsm-toolbar__sort {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-weight: 400;
}

.rpsm-results .rpsm-toolbar__sortlabel {
    font: 600 13px/1.2 var(--rpsm-font);
    color: var(--rpsm-ink-faint);
}

.rpsm-results select.rpsm-select,
.rpsm-results .rpsm-toolbar select.form-control {
    width: auto;
    height: 38px;
    padding: 0 30px 0 12px;
    border: 1px solid var(--rpsm-line-strong);
    border-radius: 999px;
    background-color: var(--rpsm-surface);
    color: var(--rpsm-ink);
    font: 600 13.5px/1.2 var(--rpsm-font);
    box-shadow: none;
    cursor: pointer;
}

.rpsm-results .rpsm-toolbar__perpage,
.rpsm-results .rpsm-toolbar__views {
    display: inline-flex;
    align-items: center;
    padding: 3px;
    gap: 2px;
    border: 1px solid var(--rpsm-line-strong);
    border-radius: 999px;
    background: var(--rpsm-surface-alt);
}

.rpsm-results .rpsm-toolbar__perpage a,
.rpsm-results .rpsm-toolbar__views a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: 999px;
    color: var(--rpsm-ink-soft);
    font: 600 13px/1.2 var(--rpsm-font);
    text-decoration: none !important;
}

.rpsm-results .rpsm-toolbar__perpage a:hover,
.rpsm-results .rpsm-toolbar__views a:hover {
    color: var(--rpsm-ink);
}

.rpsm-results .rpsm-toolbar__perpage a.active,
.rpsm-results .rpsm-toolbar__views a.active {
    background: var(--rpsm-surface);
    color: var(--rpsm-accent-ink);
    box-shadow: 0 1px 3px rgba(22, 32, 46, .14);
}

.rpsm-results .rpsm-toolbar__notices {
    flex-basis: 100%;
}

.rpsm-results .rps-map-search-notices {
    padding: 10px 14px;
    border-radius: var(--rpsm-radius-sm);
    background: var(--rpsm-warn-soft);
    color: var(--rpsm-warn-ink);
    font-size: 14px;
}

/* ==========================================================================
   Results page — filter panel
   ========================================================================== */

.rpsm-results .rpsm-filter__panel {
    margin-bottom: 22px;
    padding: 22px;
    background: var(--rpsm-surface);
    border: 1px solid var(--rpsm-line);
    border-radius: var(--rpsm-radius);
    box-shadow: var(--rpsm-shadow);
}

.rpsm-results .rpsm-filter__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
    gap: 14px 16px;
    margin-bottom: 6px;
}

.rpsm-results .rpsm-filter__field {
    min-width: 0;
}

.rpsm-results .rpsm-filter .form-control,
.rpsm-results .rpsm-filter select {
    width: 100%;
    height: 42px;
    padding: 0 12px;
    border: 1px solid var(--rpsm-line-strong);
    border-radius: var(--rpsm-radius-sm);
    background-color: var(--rpsm-surface);
    color: var(--rpsm-ink);
    font: 500 14px/1.3 var(--rpsm-font);
    box-shadow: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.rpsm-results .rpsm-filter .form-control:focus,
.rpsm-results .rpsm-filter select:focus {
    outline: none;
    border-color: var(--rpsm-accent);
    box-shadow: 0 0 0 3px var(--rpsm-accent-soft);
}

.rpsm-results .rpsm-filter .rpsm-form__label {
    display: block;
    margin-bottom: 5px;
    font: 600 12.5px/1.4 var(--rpsm-font);
    color: var(--rpsm-ink-soft);
}

.rpsm-results .rpsm-filter__ranges {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 14px 28px;
    padding: 16px 0 6px;
    border-top: 1px dashed var(--rpsm-line);
    margin-top: 12px;
}

.rpsm-results .rpsm-filter__minmaxrow {
    display: flex;
    gap: 10px;
}

.rpsm-results .rpsm-filter__footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding-top: 16px;
    border-top: 1px dashed var(--rpsm-line);
    margin-top: 14px;
}

.rpsm-results .rpsm-filter__toggles {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.rpsm-results .rpsm-toggle {
    margin: 0;
    font-weight: 400;
    cursor: pointer;
}

.rpsm-results .rpsm-toggle input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.rpsm-results .rpsm-toggle span {
    display: inline-flex;
    align-items: center;
    padding: 8px 15px;
    border: 1px solid var(--rpsm-line-strong);
    border-radius: 999px;
    background: var(--rpsm-surface);
    color: var(--rpsm-ink-soft);
    font: 600 13px/1.2 var(--rpsm-font);
    transition: all .15s ease;
}

.rpsm-results .rpsm-toggle span::before {
    content: "+";
    margin-right: 6px;
    font-weight: 700;
    color: var(--rpsm-ink-faint);
}

.rpsm-results .rpsm-toggle input:checked + span {
    background: var(--rpsm-accent-soft);
    border-color: var(--rpsm-accent);
    color: var(--rpsm-accent-ink);
}

.rpsm-results .rpsm-toggle input:checked + span::before {
    content: "✓";
    color: var(--rpsm-accent-ink);
}

.rpsm-results .rpsm-toggle input:focus-visible + span {
    outline: 2px solid var(--rpsm-accent);
    outline-offset: 2px;
}

.rpsm-results .rpsm-filter__submit,
.rpsm-results .rps-single-listing .btn-primary.rpsm-filter__submit {
    border-radius: 999px;
    padding: 11px 34px;
    font-size: 14.5px;
}

/* jRange recolor to match tokens */
.rpsm-results .slider-container .back-bar {
    height: 6px;
    border-radius: 999px;
    background: var(--rpsm-line);
}

.rpsm-results .slider-container .back-bar .selected-bar {
    border-radius: 999px;
    background: var(--rpsm-accent);
    background-image: none;
}

.rpsm-results .slider-container .back-bar .pointer {
    width: 18px;
    height: 18px;
    top: -7px;
    border-radius: 50%;
    background: #fff;
    border: 2px solid var(--rpsm-accent);
    box-shadow: 0 1px 4px rgba(22, 32, 46, .25);
}

.rpsm-results .slider-container .scale {
    display: none;
}

.rpsm-results .slider-container .pointer-label {
    font: 600 11px/1.2 var(--rpsm-font);
    color: var(--rpsm-ink-soft);
}

/* ==========================================================================
   Results page — listing cards
   ========================================================================== */

.rpsm-results .rpsm-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(285px, 1fr));
    gap: 22px;
}

.rpsm-results .rpsm-cards--list {
    grid-template-columns: 1fr;
    gap: 16px;
}

.rpsm-results .rpsm-listing {
    position: relative;
    display: flex;
    flex-direction: column;
    background: var(--rpsm-surface);
    border: 1px solid var(--rpsm-line);
    border-radius: var(--rpsm-radius);
    overflow: hidden;
    box-shadow: var(--rpsm-shadow);
    transition: box-shadow .2s ease, transform .2s ease;
}

.rpsm-results .rpsm-listing:hover {
    box-shadow: var(--rpsm-shadow-lift);
    transform: translateY(-2px);
}

.rpsm-results .rpsm-listing__media {
    position: relative;
    display: block;
    aspect-ratio: 3 / 2;
    overflow: hidden;
    background: var(--rpsm-surface-alt);
}

.rpsm-results .rpsm-listing__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .4s ease;
}

.rpsm-results .rpsm-listing:hover .rpsm-listing__media img {
    transform: scale(1.045);
}

.rpsm-results .rpsm-listing__badges {
    position: absolute;
    top: 12px;
    left: 12px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    z-index: 2;
}

.rpsm-results .rpsm-listing__badges .rpsm-badge {
    box-shadow: 0 1px 4px rgba(22, 32, 46, .25);
}

.rpsm-results .rpsm-listing__badges .rpsm-badge--status {
    background: rgba(255, 255, 255, .94);
    color: var(--rpsm-accent-ink);
}

.rpsm-results .rpsm-listing__fav {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .94);
    color: var(--rpsm-danger);
    box-shadow: 0 1px 4px rgba(22, 32, 46, .25);
}

.rpsm-results .rpsm-listing__body {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 14px 16px 16px;
}

.rpsm-results .rpsm-listing__price {
    font-size: 20px;
    font-weight: 800;
    letter-spacing: -.015em;
    color: var(--rpsm-ink);
}

.rpsm-results .rpsm-listing__price--sold {
    color: var(--rpsm-danger);
    text-transform: uppercase;
    font-size: 17px;
    letter-spacing: .03em;
}

.rpsm-results .rpsm-listing__meta {
    font-size: 13.5px;
    color: var(--rpsm-ink-soft);
}

.rpsm-results .rpsm-listing__meta strong {
    color: var(--rpsm-ink);
    font-weight: 700;
}

.rpsm-results .rpsm-listing__meta i {
    display: inline-block;
    width: 3px;
    height: 3px;
    margin: 0 8px;
    vertical-align: middle;
    border-radius: 50%;
    background: var(--rpsm-ink-faint);
}

.rpsm-results .rpsm-listing__business {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--rpsm-accent-ink);
}

.rpsm-results a.rpsm-listing__address {
    color: var(--rpsm-ink);
    text-decoration: none !important;
}

.rpsm-results .rpsm-listing__street {
    display: block;
    font-size: 14.5px;
    font-weight: 600;
    line-height: 1.35;
}

.rpsm-results a.rpsm-listing__address:hover .rpsm-listing__street {
    color: var(--rpsm-accent-ink);
}

.rpsm-results .rpsm-listing__city {
    display: block;
    font-size: 13px;
    color: var(--rpsm-ink-faint);
}

.rpsm-results .rpsm-listing__office {
    margin-top: 6px;
    font-size: 11.5px;
    color: var(--rpsm-ink-faint);
}

/* List variant */
.rpsm-results .rpsm-listing--list {
    flex-direction: row;
}

.rpsm-results .rpsm-listing--list .rpsm-listing__media {
    flex: 0 0 320px;
    aspect-ratio: auto;
    min-height: 215px;
}

.rpsm-results .rpsm-listing--list .rpsm-listing__body {
    flex: 1;
    justify-content: center;
    padding: 18px 22px;
}

.rpsm-results .rpsm-listing--list .rpsm-listing__price {
    font-size: 23px;
}

/* No results */
.rpsm-results .rpsm-noresults {
    padding: 70px 20px;
    text-align: center;
    color: var(--rpsm-ink-faint);
}

.rpsm-results .rpsm-noresults h2 {
    margin: 14px 0 6px;
    font-family: var(--rpsm-font);
    font-size: 21px;
    font-weight: 700;
    color: var(--rpsm-ink);
}

.rpsm-results .rpsm-noresults p {
    margin: 0;
    font-size: 14.5px;
}

/* Loading overlay (plugin fades this) */
.rpsm-results .rps-result {
    position: relative;
}

.rpsm-results .rps-result-overlay {
    position: absolute;
    inset: 0;
    z-index: 20;
    display: none;
    background: rgba(255, 255, 255, .75);
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
}

.rpsm-results .rps-result-overlay .rps-loader {
    position: sticky;
    top: 40vh;
    display: flex;
    justify-content: center;
    padding: 40px 0;
}

.rpsm-results .rps-loader__spinner {
    width: 38px;
    height: 38px;
    border: 3px solid var(--rpsm-line);
    border-top-color: var(--rpsm-accent);
    border-radius: 50%;
    animation: rpsm-spin .7s linear infinite;
}

@keyframes rpsm-spin {
    to { transform: rotate(360deg); }
}

/* ==========================================================================
   Results page — pagination
   ========================================================================== */

.rpsm-results .pagination.result-pagination {
    display: inline-flex;
    gap: 6px;
    margin: 26px 0 8px;
    border-radius: 0;
}

.rpsm-results .pagination.result-pagination li {
    display: inline-flex;
}

.rpsm-results .pagination.result-pagination li > * {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 13px;
    margin: 0;
    border: 1px solid var(--rpsm-line-strong) !important;
    border-radius: 999px !important;
    background: var(--rpsm-surface);
    color: var(--rpsm-ink-soft) !important;
    font: 600 14px/1 var(--rpsm-font);
    text-decoration: none !important;
}

.rpsm-results .pagination.result-pagination li a:hover {
    background: var(--rpsm-surface-alt);
    color: var(--rpsm-ink) !important;
}

.rpsm-results .pagination.result-pagination li.active > *,
.rpsm-results .pagination.result-pagination .current {
    background: var(--rpsm-accent) !important;
    border-color: var(--rpsm-accent) !important;
    color: #fff !important;
}

/* ==========================================================================
   Results page — map view
   ========================================================================== */

.rpsm-results .rpsm-lookbox {
    margin-bottom: 14px;
}

.rpsm-results .rpsm-lookbox .form-control {
    height: 46px;
    border: 1px solid var(--rpsm-line-strong);
    border-radius: 999px;
    padding: 0 18px;
    font: 500 14.5px/1.3 var(--rpsm-font);
    box-shadow: none;
}

.rpsm-results .rpsm-mapcard {
    border: 1px solid var(--rpsm-line);
    border-radius: var(--rpsm-radius);
    overflow: hidden;
    box-shadow: var(--rpsm-shadow);
}

.rpsm-results .rpsm-mapcanvas {
    height: 640px;
    position: relative;
}

.rpsm-results .rpsm-mapprogress {
    position: absolute;
    top: 45%;
    left: 15%;
    width: 70%;
    z-index: 300;
    height: 8px;
    padding: 0;
    border-radius: 999px;
    background: rgba(22, 32, 46, .15);
    box-shadow: none;
}

.rpsm-results .rpsm-mapprogress .progress-bar {
    border-radius: 999px;
    background: var(--rpsm-accent);
}

.rpsm-results .rps-no-map-results {
    padding: 14px 18px;
    margin-bottom: 14px;
    border-radius: var(--rpsm-radius-sm);
    background: var(--rpsm-warn-soft);
    color: var(--rpsm-warn-ink);
    font-size: 14px;
}

.rpsm-results .rpsm-results__contact {
    margin-top: 34px;
}

/* ==========================================================================
   Results page — responsive
   ========================================================================== */

@media (max-width: 767px) {

    .rpsm-results .rpsm-toolbar__right {
        width: 100%;
        justify-content: flex-start;
    }

    .rpsm-results .rpsm-listing--list {
        flex-direction: column;
    }

    .rpsm-results .rpsm-listing--list .rpsm-listing__media {
        flex: none;
        aspect-ratio: 3 / 2;
        min-height: 0;
    }

    .rpsm-results .rpsm-filter__minmaxrow {
        flex-direction: column;
    }

    .rpsm-results .rpsm-mapcanvas {
        height: 460px;
    }
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 991px) {

    .rpsm .rpsm-layout {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .rpsm .rpsm-rail__sticky {
        position: static;
    }

    .rpsm .rpsm-calc__grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {

    .rpsm .rpsm-header__row {
        align-items: flex-start;
        flex-direction: column;
    }

    .rpsm .rpsm-header__side {
        width: 100%;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        flex-wrap: wrap;
    }

    .rpsm .rpsm-header__price {
        text-align: left;
    }

    .rpsm .rpsm-gallery__grid--5 {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto auto;
        aspect-ratio: auto;
    }

    .rpsm .rpsm-gallery__grid--5 .rpsm-gallery__tile--main {
        grid-column: span 2;
        grid-row: auto;
        aspect-ratio: 16 / 10;
    }

    .rpsm .rpsm-gallery__grid--5 .rpsm-gallery__tile:not(.rpsm-gallery__tile--main) {
        aspect-ratio: 16 / 10;
    }

    .rpsm .rpsm-gallery__grid--5 .rpsm-gallery__tile:nth-child(n+4) {
        display: none;
    }

    .rpsm .rpsm-gallery__grid--3 {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
        aspect-ratio: 16 / 10;
    }

    .rpsm .rpsm-gallery__grid--3 .rpsm-gallery__tile:not(.rpsm-gallery__tile--main) {
        display: none;
    }

    .rpsm .rpsm-specs {
        grid-template-columns: 1fr;
    }

    .rpsm .rpsm-rooms {
        grid-template-columns: 1fr;
    }

    .rpsm .rpsm-maptabs__content .tab-map {
        height: 320px;
    }

    .rpsm-stickybar__info {
        display: none;
    }

    .rpsm-stickybar__inner {
        justify-content: space-between;
    }

    .rpsm-stickybar__cta {
        width: 100%;
        justify-content: space-between;
    }

    .rpsm-lightbox__stage {
        padding: 0 8px;
    }

    .rpsm-lightbox__nav {
        width: 40px;
        height: 40px;
    }

    .rpsm-lightbox__nav--prev { left: 6px; }
    .rpsm-lightbox__nav--next { right: 6px; }
}

/* ==========================================================================
   Print
   ========================================================================== */

@media print {

    .rpsm-stickybar,
    .rpsm .rpsm-sectionnav,
    .rpsm .rpsm-gallery__all,
    .rpsm .rpsm-header__actions,
    .rpsm .rpsm-contact,
    .rpsm .rpsm-calc,
    .rpsm .rpsm-maptabs,
    .rpsm .rpsm-readmore,
    .rpsm .rpsm-contact__chips {
        display: none !important;
    }

    .rpsm .rpsm-layout {
        grid-template-columns: 1fr;
    }

    .rpsm .rpsm-description.is-clamped .rpsm-description__body {
        max-height: none;
        overflow: visible;
    }

    .rpsm .rpsm-description.is-clamped .rpsm-description__body::after {
        display: none;
    }

    .rpsm details.rpsm-card:not([open]) > .rpsm-card__body {
        display: block;
    }

    .rpsm .rpsm-card {
        box-shadow: none;
        break-inside: avoid;
    }
}
