.rpm-wrap,
.rpm-single {
    --rpm-radius: 22px;
    --rpm-card-radius: var(--rpm-radius);
    --rpm-field-radius: 14px;
    --rpm-button-radius: 999px;
    --rpm-border: #e7e4df;
    --rpm-muted: #6b7280;
    --rpm-bg: #ffffff;
    --rpm-page-bg: #ffffff;
    --rpm-soft: #f8f6f2;
    --rpm-primary: #111827;
    --rpm-accent: #b9975b;
    --rpm-text: #111827;
    --rpm-image-ratio: 4 / 3;
    --rpm-card-shadow: 0 18px 46px rgba(17, 24, 39, 0.07);
    --rpm-search-columns: 4;
    font-family: inherit;
    color: var(--rpm-text);
}

.rpm-wrap *,
.rpm-single * {
    box-sizing: border-box;
}

.rpm-wrap {
    background: var(--rpm-page-bg);
}

.rpm-search {
    display: grid;
    grid-template-columns: repeat(var(--rpm-search-columns, 4), minmax(0, 1fr));
    gap: 14px;
    margin: 0 0 28px;
    padding: 24px;
    border: 1px solid var(--rpm-border);
    border-radius: calc(var(--rpm-card-radius) + 4px);
    background: var(--rpm-bg);
    box-shadow: 0 22px 65px rgba(17, 24, 39, 0.07);
}

.rpm-search-premium .rpm-search {
    padding: 28px;
    gap: 16px;
    box-shadow: 0 28px 80px rgba(17, 24, 39, 0.08);
}

.rpm-search-compact .rpm-search {
    padding: 16px;
    gap: 10px;
    border-radius: var(--rpm-card-radius);
    box-shadow: 0 12px 34px rgba(17, 24, 39, 0.05);
}

.rpm-search-compact .rpm-field label,
.rpm-search-compact .rpm-lead-form label span {
    font-size: 10px;
}

.rpm-field label,
.rpm-lead-form label span {
    display: block;
    margin-bottom: 7px;
    font-size: 12px;
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: .035em;
    text-transform: uppercase;
    color: var(--rpm-muted);
}

.rpm-search input,
.rpm-search select,
.rpm-lead-form input,
.rpm-lead-form textarea {
    width: 100%;
    min-height: 48px;
    border-radius: var(--rpm-field-radius);
    border: 1px solid var(--rpm-border);
    padding: 10px 14px;
    font-size: 14px;
    background: #fff;
    color: var(--rpm-text);
    outline: none;
    box-shadow: none;
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.rpm-search input:focus,
.rpm-search select:focus,
.rpm-lead-form input:focus,
.rpm-lead-form textarea:focus {
    border-color: color-mix(in srgb, var(--rpm-accent) 70%, var(--rpm-border));
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--rpm-accent) 16%, transparent);
}

.rpm-search-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    align-items: end;
}

.rpm-btn,
.rpm-search button,
.rpm-lead-form button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    padding: 12px 18px;
    border-radius: var(--rpm-button-radius);
    border: 1px solid transparent;
    font-size: 14px;
    font-weight: 900;
    line-height: 1;
    text-decoration: none !important;
    cursor: pointer;
    transition: transform .16s ease, box-shadow .16s ease, background .16s ease, color .16s ease, border-color .16s ease;
}

.rpm-btn:hover,
.rpm-search button:hover,
.rpm-lead-form button:hover {
    transform: translateY(-1px);
}

.rpm-btn-primary,
.rpm-search button[type="submit"],
.rpm-lead-form button[type="submit"] {
    background: var(--rpm-primary);
    color: #fff !important;
    box-shadow: 0 12px 28px color-mix(in srgb, var(--rpm-primary) 28%, transparent);
}

.rpm-btn-primary:hover,
.rpm-search button[type="submit"]:hover,
.rpm-lead-form button[type="submit"]:hover {
    background: var(--rpm-accent);
    color: var(--rpm-primary) !important;
}

.rpm-btn-secondary,
.rpm-search button[type="reset"] {
    background: #fff;
    color: var(--rpm-primary) !important;
    border-color: var(--rpm-border);
}

.rpm-btn-secondary:hover,
.rpm-search button[type="reset"]:hover {
    border-color: var(--rpm-accent);
}

.rpm-btn-block {
    width: 100%;
}

.rpm-results-wrap.rpm-has-map {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
    gap: 24px;
}

.rpm-results {
    position: relative;
}

.rpm-results-count {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    margin: 0 0 18px;
    padding: 7px 13px;
    border: 1px solid var(--rpm-border);
    border-radius: 999px;
    background: var(--rpm-soft);
    color: var(--rpm-muted);
    font-size: 13px;
    font-weight: 800;
}

.rpm-grid {
    display: grid;
    grid-template-columns: repeat(var(--rpm-columns, 3), minmax(0, 1fr));
    gap: 24px;
}

.rpm-grid-list {
    grid-template-columns: 1fr;
}

.rpm-card {
    overflow: hidden;
    border: 1px solid var(--rpm-border);
    border-radius: var(--rpm-card-radius);
    background: var(--rpm-bg);
    box-shadow: var(--rpm-card-shadow);
    transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}

.rpm-theme-premium .rpm-card {
    border-color: color-mix(in srgb, var(--rpm-border) 78%, #fff);
}

.rpm-theme-premium .rpm-card:hover {
    transform: translateY(-7px);
    box-shadow: 0 30px 80px rgba(17, 24, 39, 0.14);
    border-color: color-mix(in srgb, var(--rpm-accent) 40%, var(--rpm-border));
}

.rpm-theme-classic .rpm-card:hover {
    transform: translateY(-3px);
}

.rpm-theme-minimal .rpm-card {
    box-shadow: none;
    border-radius: calc(var(--rpm-card-radius) * .75);
}

.rpm-shadow-none .rpm-card,
.rpm-shadow-none .rpm-search,
.rpm-shadow-none .rpm-section,
.rpm-shadow-none .rpm-single-summary,
.rpm-shadow-none .rpm-sticky-card {
    box-shadow: none !important;
}

.rpm-card-list {
    display: grid;
    grid-template-columns: 310px minmax(0, 1fr);
}

.rpm-card-media {
    position: relative;
    background: var(--rpm-soft);
    aspect-ratio: var(--rpm-image-ratio);
    overflow: hidden;
}

.rpm-ratio-16-9 .rpm-card-media { aspect-ratio: 16 / 9; }
.rpm-ratio-1-1 .rpm-card-media { aspect-ratio: 1 / 1; }
.rpm-ratio-4-3 .rpm-card-media { aspect-ratio: 4 / 3; }

.rpm-card-list .rpm-card-media {
    aspect-ratio: auto;
    min-height: 240px;
}

.rpm-card-img,
.rpm-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .28s ease, filter .28s ease;
}

.rpm-card:hover .rpm-card-img,
.rpm-card:hover .rpm-card-media img {
    transform: scale(1.04);
    filter: saturate(1.04) contrast(1.02);
}

.rpm-card-placeholder {
    width: 100%;
    height: 100%;
    min-height: 220px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rpm-muted);
    background: linear-gradient(135deg, var(--rpm-soft), #fff);
}

.rpm-card-badges {
    position: absolute;
    top: 12px;
    left: 12px;
    right: 58px;
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    z-index: 2;
}

.rpm-card-badges span,
.rpm-single-terms span {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 10px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--rpm-primary) 90%, transparent);
    color: #fff;
    font-size: 12px;
    font-weight: 900;
    box-shadow: 0 10px 22px rgba(17,24,39,.13);
}

.rpm-card-badges span:nth-child(2),
.rpm-single-terms span:nth-child(2) {
    background: color-mix(in srgb, var(--rpm-accent) 88%, #111827);
}

.rpm-fav-toggle {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 3;
    width: 42px;
    height: 42px;
    border: 1px solid color-mix(in srgb, var(--rpm-border) 60%, transparent);
    border-radius: 50%;
    background: rgba(255,255,255,.94);
    color: var(--rpm-primary);
    font-size: 22px;
    line-height: 1;
    box-shadow: 0 12px 28px rgba(0,0,0,.16);
    cursor: pointer;
    backdrop-filter: blur(7px);
}

.rpm-fav-toggle.is-saved {
    color: var(--rpm-accent);
}

.rpm-card-body {
    padding: 22px;
}

.rpm-card-meta-top {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
    margin-bottom: 10px;
    color: var(--rpm-muted);
    font-size: 13px;
    font-weight: 800;
}

.rpm-card-title {
    margin: 0 0 10px;
    font-size: clamp(18px, 2vw, 23px);
    line-height: 1.18;
    letter-spacing: -.025em;
}

.rpm-card-title a {
    color: inherit;
    text-decoration: none !important;
}

.rpm-card-price,
.rpm-single-price,
.rpm-sidebar-price {
    margin: 0 0 14px;
    color: var(--rpm-accent);
    font-size: 26px;
    line-height: 1.1;
    font-weight: 950;
}

.rpm-features-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 13px;
    margin: 0 0 18px;
    color: var(--rpm-muted);
    font-size: 14px;
}

.rpm-card-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}

.rpm-empty,
.rpm-loading {
    padding: 30px;
    border: 1px solid var(--rpm-border);
    border-radius: var(--rpm-card-radius);
    background: var(--rpm-soft);
    color: var(--rpm-primary);
    text-align: center;
}

.rpm-loading-spinner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.rpm-spinner {
    width: 22px;
    height: 22px;
    border: 3px solid color-mix(in srgb, var(--rpm-primary) 15%, transparent);
    border-top-color: var(--rpm-accent);
    border-radius: 50%;
    animation: rpmSpin .8s linear infinite;
}

@keyframes rpmSpin {
    to { transform: rotate(360deg); }
}

.rpm-loading-fade {
    animation: rpmFade .35s ease both;
}

@keyframes rpmFade {
    from { opacity: .45; transform: translateY(4px); }
    to { opacity: 1; transform: translateY(0); }
}

.rpm-skeleton-wrap {
    width: 100%;
}

.rpm-skeleton-card {
    overflow: hidden;
    min-height: 320px;
    border: 1px solid var(--rpm-border);
    border-radius: var(--rpm-card-radius);
    background: var(--rpm-bg);
    box-shadow: var(--rpm-card-shadow);
    padding: 18px;
}

.rpm-skeleton-card div,
.rpm-skeleton-card span,
.rpm-skeleton-card strong,
.rpm-skeleton-card em {
    display: block;
    border-radius: 14px;
    background: linear-gradient(90deg, var(--rpm-soft) 25%, #fff 50%, var(--rpm-soft) 75%);
    background-size: 220% 100%;
    animation: rpmSkeleton 1.25s ease-in-out infinite;
}

.rpm-skeleton-card div { height: 180px; margin-bottom: 18px; }
.rpm-skeleton-card span { height: 14px; width: 46%; margin-bottom: 14px; }
.rpm-skeleton-card strong { height: 24px; width: 74%; margin-bottom: 14px; }
.rpm-skeleton-card em { height: 42px; width: 100%; }

@keyframes rpmSkeleton {
    0% { background-position: 180% 0; }
    100% { background-position: -180% 0; }
}

.rpm-pagination {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin: 28px 0 0;
}

.rpm-pagination a,
.rpm-pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    min-height: 42px;
    padding: 0 12px;
    border-radius: 999px;
    border: 1px solid var(--rpm-border);
    text-decoration: none !important;
    color: var(--rpm-primary);
    background: #fff;
}

.rpm-pagination .current {
    background: var(--rpm-primary);
    color: #fff;
    border-color: var(--rpm-primary);
}

.rpm-map-panel {
    position: sticky;
    top: 24px;
    align-self: start;
}

.rpm-map-placeholder {
    min-height: 420px;
    border-radius: var(--rpm-card-radius);
    border: 1px solid var(--rpm-border);
    background: linear-gradient(135deg, var(--rpm-soft), #fff);
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 26px;
    text-align: center;
}

.rpm-single-gallery {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr;
    grid-auto-rows: 230px;
    gap: 12px;
    margin: 0 0 34px;
}

.rpm-single-gallery-item {
    overflow: hidden;
    border-radius: var(--rpm-card-radius);
    background: var(--rpm-soft);
    box-shadow: 0 18px 45px rgba(17,24,39,.08);
}

.rpm-single-gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .32s ease, filter .32s ease;
}

.rpm-single-gallery-item:hover img {
    transform: scale(1.035);
    filter: brightness(.96);
}

.rpm-gallery-item-0 {
    grid-row: span 2;
}

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

.rpm-section,
.rpm-single-summary,
.rpm-sticky-card {
    margin-bottom: 24px;
    padding: 26px;
    border: 1px solid var(--rpm-border);
    border-radius: var(--rpm-card-radius);
    background: var(--rpm-bg);
    box-shadow: 0 18px 46px rgba(17, 24, 39, 0.06);
}

.rpm-section h2,
.rpm-sticky-card h3,
.rpm-lead-form h4 {
    margin-top: 0;
    letter-spacing: -.025em;
}

.rpm-single-terms {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 18px;
}

.rpm-property-features {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.rpm-property-features div {
    padding: 15px;
    border: 1px solid var(--rpm-border);
    border-radius: calc(var(--rpm-card-radius) * .65);
    background: linear-gradient(180deg, var(--rpm-soft), #fff);
}

.rpm-property-features strong,
.rpm-property-features span {
    display: block;
}

.rpm-property-features strong {
    font-size: 20px;
    color: var(--rpm-text);
}

.rpm-property-features span {
    color: var(--rpm-muted);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .03em;
}

.rpm-description {
    color: var(--rpm-muted);
    font-size: 16px;
    line-height: 1.75;
}

.rpm-sticky-card {
    position: sticky;
    top: 24px;
}

.rpm-lead-form {
    margin-top: 18px;
}

.rpm-lead-form label {
    display: block;
    margin: 0 0 12px;
}

.rpm-form-response {
    margin-top: 12px;
    font-size: 14px;
    font-weight: 800;
}

.rpm-form-response.is-success { color: #166534; }
.rpm-form-response.is-error { color: #991b1b; }

.rpm-amenities ul {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.rpm-amenities li {
    padding: 12px 14px;
    border-radius: calc(var(--rpm-card-radius) * .55);
    background: var(--rpm-soft);
}

@media (max-width: 1100px) {
    .rpm-search { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .rpm-results-wrap.rpm-has-map,
    .rpm-single-layout { grid-template-columns: 1fr; }
    .rpm-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
    .rpm-search,
    .rpm-grid,
    .rpm-property-features,
    .rpm-amenities ul { grid-template-columns: 1fr; }
    .rpm-card-list { grid-template-columns: 1fr; }
    .rpm-single-gallery { grid-template-columns: 1fr; grid-auto-rows: 220px; }
    .rpm-gallery-item-0 { grid-row: span 1; }
    .rpm-search-actions { grid-template-columns: 1fr; }
    .rpm-section,
    .rpm-single-summary,
    .rpm-sticky-card,
    .rpm-search { padding: 18px; }
}

/* v2.4 front-end upgrades */
.rpm-wrap,
.rpm-single { max-width: var(--rpm-container-width, 1180px); margin-left:auto; margin-right:auto; }
.rpm-wrap { padding: var(--rpm-section-gap, 28px) 16px; }
.rpm-grid { grid-template-columns: repeat(var(--rpm-columns-desktop, var(--rpm-columns, 3)), minmax(0, 1fr)); }
.rpm-search-floating .rpm-search { margin-top:-34px; position:relative; z-index:5; border:0; box-shadow:0 30px 90px rgba(17,24,39,.12); }
.rpm-theme-luxury .rpm-card { border-color: color-mix(in srgb, var(--rpm-accent) 28%, var(--rpm-border)); }
.rpm-theme-luxury .rpm-card-media:after { content:""; position:absolute; inset:auto 0 0 0; height:44%; background:linear-gradient(to top, rgba(0,0,0,.26), transparent); pointer-events:none; }
.rpm-theme-luxury .rpm-card-title a { letter-spacing:-.03em; }
.rpm-card-actions:empty { display:none; }
.rpm-load-more { display:flex; margin:26px auto 0; min-width:220px; }
.rpm-load-more.is-loading { opacity:.75; pointer-events:none; }
.rpm-mortgage-calculator { display:grid; gap:14px; }
.rpm-mortgage-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.rpm-mortgage-grid label { display:grid; gap:6px; font-size:12px; color:var(--rpm-muted); font-weight:800; text-transform:uppercase; letter-spacing:.03em; }
.rpm-mortgage-grid input { width:100%; min-height:44px; border:1px solid var(--rpm-border); border-radius:var(--rpm-field-radius); padding:8px 12px; }
.rpm-mortgage-result { padding:18px; border-radius:var(--rpm-card-radius); background:var(--rpm-soft); color:var(--rpm-text); font-weight:900; font-size:18px; }
.rpm-mortgage-result strong { color:var(--rpm-accent); font-size:28px; }
.rpm-related-properties { margin-top: var(--rpm-section-gap, 28px); }
.rpm-floating-whatsapp { position:fixed; right:22px; bottom:22px; z-index:999; padding:14px 18px; border-radius:999px; background:#25D366; color:#061c0f!important; font-weight:900; text-decoration:none!important; box-shadow:0 18px 45px rgba(37,211,102,.28); }
.rpm-map-embed { overflow:hidden; border-radius:var(--rpm-card-radius); border:1px solid var(--rpm-border); background:var(--rpm-soft); min-height:280px; }
.rpm-map-embed iframe { width:100%; height:320px; border:0; display:block; }
@media (max-width: 1100px) { .rpm-grid { grid-template-columns: repeat(var(--rpm-columns-tablet, 2), minmax(0, 1fr)); } }
@media (max-width: 720px) { .rpm-grid { grid-template-columns: repeat(var(--rpm-columns-mobile, 1), minmax(0, 1fr)); } .rpm-mortgage-grid { grid-template-columns:1fr; } .rpm-floating-whatsapp { left:16px; right:16px; text-align:center; justify-content:center; } }


/* D-Tech badge system v2.5 */
.rpm-badge,
.rpm-card-badges span,
.rpm-single-terms span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-height: 24px;
    border-radius: 999px;
    padding: 6px 10px;
    font-size: 11px;
    font-weight: 850;
    line-height: 1;
    letter-spacing: .01em;
    text-transform: none;
    border: 1px solid transparent;
    box-shadow: 0 8px 18px rgba(15,23,42,.10);
}
.rpm-badge-tax-rpm_property_operation { background: var(--rpm-primary); color: #fff; }
.rpm-badge-tax-rpm_property_type,
.rpm-badge-tax-rpm_property_location { background: #eef2f7; color: var(--rpm-primary); border-color: rgba(15,23,42,.08); }
.rpm-badge-tax-rpm_property_status { background: #e5e7eb; color: #111827; }
.rpm-badge-tax-rpm_property_label,
.rpm-badge-promo { background: var(--rpm-accent); color: var(--rpm-primary); }

/* Estados comerciales */
.rpm-badge-disponible { background: #dcfce7 !important; color: #166534 !important; border-color: #86efac !important; }
.rpm-badge-alquilada { background: #dbeafe !important; color: #1e3a8a !important; border-color: #93c5fd !important; }
.rpm-badge-vendida { background: #fee2e2 !important; color: #991b1b !important; border-color: #fca5a5 !important; }
.rpm-badge-reservada { background: #ffedd5 !important; color: #9a3412 !important; border-color: #fdba74 !important; }
.rpm-badge-en-negociacion { background: #fef3c7 !important; color: #92400e !important; border-color: #fcd34d !important; }
.rpm-badge-proximamente { background: #e0f2fe !important; color: #075985 !important; border-color: #7dd3fc !important; }
.rpm-badge-no-disponible,
.rpm-badge-retirada { background: #f3f4f6 !important; color: #4b5563 !important; border-color: #d1d5db !important; }

/* Etiquetas promocionales */
.rpm-badge-nuevo { background: #e0f2fe !important; color: #075985 !important; border-color: #7dd3fc !important; }
.rpm-badge-destacada { background: #fef3c7 !important; color: #78350f !important; border-color: #fbbf24 !important; }
.rpm-badge-rebajada { background: #ffe4e6 !important; color: #9f1239 !important; border-color: #fda4af !important; }
.rpm-badge-oportunidad { background: #dcfce7 !important; color: #14532d !important; border-color: #86efac !important; }
.rpm-badge-exclusiva,
.rpm-badge-premium { background: #111827 !important; color: #f9fafb !important; border-color: rgba(255,255,255,.16) !important; }
.rpm-badge-inversion { background: #ecfdf5 !important; color: #065f46 !important; border-color: #6ee7b7 !important; }
.rpm-badge-amueblada { background: #f5f3ff !important; color: #5b21b6 !important; border-color: #c4b5fd !important; }
.rpm-badge-frente-al-mar { background: #cffafe !important; color: #155e75 !important; border-color: #67e8f9 !important; }
.rpm-badge-entrega-inmediata { background: #fffbeb !important; color: #92400e !important; border-color: #fcd34d !important; }

/* v2.7 CRM + Agentes */
.rpm-agent-card{
    border:1px solid var(--rpm-border, #E7DED0);
    border-radius:calc(var(--rpm-card-radius,22px) - 4px);
    background:var(--rpm-surface,#fff);
    padding:18px;
    margin:18px 0;
    box-shadow:0 14px 34px rgba(17,24,39,.06);
}
.rpm-agent-card h4{margin:0 0 14px;font-size:18px;line-height:1.15;color:var(--rpm-text,#101827)}
.rpm-agent-card-inner{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.rpm-agent-avatar{width:64px;height:64px;flex:0 0 64px;border-radius:999px;overflow:hidden;background:var(--rpm-soft,#F4EFE6);display:flex;align-items:center;justify-content:center;color:var(--rpm-primary,#0B1F3A)}
.rpm-agent-avatar img{width:100%;height:100%;object-fit:cover;display:block}.rpm-agent-avatar .dashicons{font-size:32px;width:32px;height:32px}
.rpm-agent-info{display:grid;gap:3px}.rpm-agent-info strong{font-size:17px;color:var(--rpm-text,#101827)}.rpm-agent-info span{font-weight:700;color:var(--rpm-muted,#5F6B7A)}.rpm-agent-info small{color:var(--rpm-muted,#5F6B7A)}
.rpm-agent-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.rpm-agent-actions .rpm-btn{padding:10px 14px;min-height:40px}.rpm-agent-phone{font-weight:800;color:var(--rpm-primary,#0B1F3A);text-decoration:none}
.rpm-agents-grid{display:grid;grid-template-columns:repeat(var(--rpm-agent-columns,3),minmax(0,1fr));gap:20px}.rpm-agents-grid .rpm-agent-card{margin:0;height:100%}
@media(max-width:900px){.rpm-agents-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.rpm-agents-grid{grid-template-columns:1fr}.rpm-agent-actions{flex-direction:column;align-items:stretch}.rpm-agent-actions .rpm-btn{text-align:center;justify-content:center}}

/* v3.0 Portal Premium: compare, map, favorites */
.rpm-compare-toggle{position:absolute;right:14px;bottom:14px;z-index:4;width:38px;height:38px;border-radius:999px;border:1px solid var(--rpm-border);background:var(--rpm-bg);color:var(--rpm-primary);box-shadow:0 12px 28px rgba(17,24,39,.14);font-weight:900;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:.2s ease;}
.rpm-compare-toggle:hover,.rpm-compare-toggle.is-compared{background:var(--rpm-primary);color:#fff;transform:translateY(-2px);}
.rpm-fav-toggle + .rpm-compare-toggle{bottom:58px;}
.rpm-compare-wrap{max-width:var(--rpm-container-width,1180px);margin:0 auto;}
.rpm-compare-table-wrap{overflow:auto;border:1px solid var(--rpm-border);border-radius:var(--rpm-card-radius);background:var(--rpm-bg);box-shadow:var(--rpm-card-shadow);}
.rpm-compare-table{width:100%;border-collapse:separate;border-spacing:0;min-width:760px;}
.rpm-compare-table th,.rpm-compare-table td{padding:16px;border-bottom:1px solid var(--rpm-border);text-align:left;vertical-align:top;}
.rpm-compare-table thead th{background:var(--rpm-soft);color:var(--rpm-primary);font-size:14px;}
.rpm-compare-table tbody th{width:180px;color:var(--rpm-muted);font-size:13px;text-transform:uppercase;letter-spacing:.04em;}
.rpm-compare-table img{width:150px;max-width:100%;border-radius:14px;aspect-ratio:4/3;object-fit:cover;}
.rpm-compare-remove{float:right;width:24px;height:24px;border:0;border-radius:999px;background:#fee2e2;color:#991b1b;cursor:pointer;font-weight:900;}
.rpm-premium-map{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:20px;align-items:stretch;max-width:var(--rpm-container-width,1180px);margin:0 auto;}
.rpm-map-canvas{min-height:var(--rpm-map-height,420px);border-radius:var(--rpm-card-radius);border:1px solid var(--rpm-border);background:linear-gradient(135deg,#e6f5ef,#f8fafc);position:relative;overflow:hidden;box-shadow:var(--rpm-card-shadow);}
.rpm-map-fallback{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;color:var(--rpm-muted);}
.rpm-map-fallback strong{font-size:24px;color:var(--rpm-primary);}
.rpm-map-rendered .rpm-map-fallback{display:none;}
.rpm-map-grid-bg{position:absolute;inset:0;background-image:linear-gradient(rgba(11,31,58,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(11,31,58,.06) 1px,transparent 1px);background-size:44px 44px;}
.rpm-map-pin{position:absolute;transform:translate(-50%,-50%);width:22px;height:22px;border-radius:999px;background:var(--rpm-accent);border:3px solid #fff;box-shadow:0 12px 28px rgba(17,24,39,.25);z-index:3;}
.rpm-map-pin span{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);white-space:nowrap;background:var(--rpm-primary);color:#fff;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800;opacity:0;pointer-events:none;transition:.2s ease;}
.rpm-map-pin:hover span{opacity:1;bottom:30px;}
.rpm-map-list{display:flex;flex-direction:column;gap:12px;max-height:var(--rpm-map-height,420px);overflow:auto;padding-right:4px;}
.rpm-map-list-item{display:grid;grid-template-columns:82px 1fr;gap:12px;background:var(--rpm-bg);border:1px solid var(--rpm-border);border-radius:18px;padding:10px;box-shadow:0 10px 26px rgba(17,24,39,.06);}
.rpm-map-list-item img{width:82px;height:82px;object-fit:cover;border-radius:14px;background:var(--rpm-soft);}
.rpm-map-list-item strong,.rpm-map-list-item b,.rpm-map-list-item span,.rpm-map-list-item a{display:block;}
.rpm-map-list-item span{color:var(--rpm-muted);font-size:12px;margin-top:2px;}.rpm-map-list-item b{color:var(--rpm-accent);margin:4px 0;}.rpm-map-list-item a{font-size:12px;}
@media(max-width:900px){.rpm-premium-map{grid-template-columns:1fr}.rpm-map-list{max-height:none;}}
