.re-map-app {
    --re-bg: #eef3ef;
    --re-panel: #ffffff;
    --re-text: #1f2933;
    --re-muted: #64748b;
    --re-border: rgba(15, 23, 42, 0.12);
    --re-brand: var(--estate-primary, #004c73);
    --re-brand-dark: var(--estate-primary-dark, #003955);
    --re-brand-soft: var(--estate-primary-soft, #dcebf2);
    --re-accent: var(--estate-accent, #f59e0b);
    --re-map-water: #dcecf2;
    --re-status-available: var(--estate-success, #067647);
    --re-property-house: var(--estate-property-house, #16a34a);
    --re-property-apartment: var(--estate-property-apartment, #2563eb);
    --re-property-commercial: var(--estate-property-commercial, #ea580c);
    --re-property-land: var(--estate-property-land, #4d7c0f);
    --re-shadow: 0 18px 50px rgba(15, 23, 42, 0.16);
}

.re-map-app,
.re-map-app * {
    box-sizing: border-box;
}

body.bodywebsite {
    width: 100%;
    min-height: 100%;
    margin: 0;
    color: #1f2933;
    background: #eef3ef;
    overflow: auto;
}

.re-map-app {
    font-family: "Segoe UI", "DejaVu Sans", "Liberation Sans", Arial, Helvetica, sans-serif;
}

.re-map-app {
    width: 100%;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.re-map-app .re-map-header {
    min-height: 92px;
    padding: 18px 28px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    position: sticky;
    top: 0;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(239, 246, 241, 0.96));
    border-bottom: 1px solid var(--re-border);
    backdrop-filter: blur(14px);
    z-index: 5;
}

.re-map-app .re-map-eyebrow {
    display: inline-flex;
    margin-bottom: 4px;
    color: var(--re-brand);
    font-size: 12px;
    font-weight: 750;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.re-map-app .re-map-brand h1 {
    margin: 0;
    font-size: clamp(24px, 3vw, 38px);
    line-height: 1.05;
}

.re-map-app .re-map-brand p {
    margin: 6px 0 0;
    color: var(--re-muted);
    font-size: 14px;
}

.re-map-app .re-map-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
}

.re-map-app .re-map-actions a,
.re-map-app .re-filter-buttons button {
    border: 1px solid var(--re-border);
    border-radius: 999px;
    padding: 10px 16px;
    color: var(--re-text);
    background: #fff;
    text-decoration: none;
    font-weight: 700;
    cursor: pointer;
}

.re-map-app .re-map-actions a:hover,
.re-map-app .re-filter-buttons button:hover {
    border-color: color-mix(in srgb, var(--re-brand) 45%, transparent);
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.10);
}

.re-map-app .re-map-actions a.is-active,
.re-map-app .re-filter-buttons button[type="submit"] {
    color: #fff;
    border-color: var(--re-brand);
    background: var(--re-brand);
}

.re-map-app .re-map-actions a.is-active *,
.re-map-app .re-map-actions a.is-active i {
    color: #fff;
}

.re-map-app .re-map-actions a.is-active:hover,
.re-map-app .re-map-actions a.is-active:focus-visible,
.re-map-app .re-filter-buttons button[type="submit"]:hover,
.re-map-app .re-filter-buttons button[type="submit"]:focus-visible {
    color: #fff;
    border-color: var(--re-brand-dark);
    background: var(--re-brand-dark);
}

.re-map-layout {
    flex: 1;
    min-height: calc(100vh - 92px);
    display: grid;
    grid-template-columns: minmax(340px, 31vw) 1fr;
}

.re-map-panel {
    position: sticky;
    top: 92px;
    z-index: 3;
    display: flex;
    flex-direction: column;
    min-width: 0;
    height: calc(100vh - 92px);
    background: rgba(255, 255, 255, 0.97);
    border-right: 1px solid var(--re-border);
    box-shadow: 12px 0 40px rgba(15, 23, 42, 0.10);
}

.re-map-filters {
    padding: 14px;
    border-bottom: 1px solid var(--re-border);
}

.re-map-filters label {
    display: grid;
    gap: 6px;
    color: var(--re-muted);
    font-size: 12px;
    font-weight: 700;
}

.re-map-filters input,
.re-map-filters select {
    width: 100%;
    border: 1px solid var(--re-border);
    border-radius: 14px;
    padding: 11px 12px;
    color: var(--re-text);
    background: #fff;
    font: inherit;
}

.re-filter-search {
    margin-bottom: 12px;
}

.re-filter-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.re-map-app .re-filter-buttons {
    display: flex;
    gap: 10px;
    margin-top: 8px;
}

.re-map-app .re-filter-buttons button {
    flex: 1;
}

.re-results-summary {
    display: flex;
    align-items: baseline;
    gap: 8px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--re-border);
    color: var(--re-muted);
}

.re-results-summary strong {
    color: var(--re-brand-dark);
    font-size: 22px;
}

.re-card-list {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 12px 14px 22px;
    display: grid;
    gap: 11px;
    align-content: start;
}

.re-card,
.re-card-placeholder {
    border: 1px solid var(--re-border);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.08);
    overflow: hidden;
}

.re-card {
    cursor: pointer;
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.re-card:hover,
.re-card.is-active {
    transform: translateY(-2px);
    border-color: color-mix(in srgb, var(--re-brand) 45%, transparent);
    box-shadow: var(--re-shadow);
}

.re-card {
    display: grid;
    grid-template-columns: 84px 1fr;
    align-items: stretch;
    min-height: 108px;
}

.re-card img {
    width: 84px;
    height: 100%;
    min-height: 108px;
    object-fit: cover;
    display: block;
    background: #e5e7eb;
    border-right: 1px solid var(--re-border);
}

.re-card-body {
    min-width: 0;
    padding: 11px 13px 12px;
}

.re-card-title {
    margin: 0 0 6px;
    font-size: 13px;
    line-height: 1.38;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.re-card-meta,
.re-card-location,
.re-card-source {
    margin: 2px 0 0;
    color: var(--re-muted);
    font-size: 12px;
    line-height: 1.35;
}

.re-card-price {
    display: inline-flex;
    margin: 6px 0;
    padding: 5px 8px;
    border-radius: 999px;
    color: var(--re-brand-dark);
    background: rgba(31, 111, 91, 0.10);
    font-weight: 800;
}

.re-card-actions {
    margin-top: 8px;
    display: flex;
    gap: 8px;
}

.re-card-actions a {
    flex: 1;
    border-radius: 12px;
    padding: 7px 9px;
    text-align: center;
    color: #fff;
    background: var(--re-brand);
    text-decoration: none;
    font-weight: 750;
    font-size: 13px;
}

.re-card-placeholder {
    padding: 18px;
    color: var(--re-muted);
}

.re-map-stage {
    position: sticky;
    top: 92px;
    min-width: 0;
    height: calc(100vh - 92px);
    background: var(--re-map-water);
}

#re-map {
    position: absolute;
    inset: 0;
}

.re-map-app .maplibregl-canvas {
    outline: none;
}

.re-map-app .maplibregl-ctrl-group {
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.16);
}

.re-map-app .re-top-region-map-control button,
.re-map-app .re-top-region-map-control-button {
    width: 29px;
    height: 29px;
    padding: 0;
    border: 0;
    background: #fff;
    color: #222;
    cursor: pointer;
}

.re-map-app .re-top-region-map-control button:hover,
.re-map-app .re-top-region-map-control button:focus-visible,
.re-map-app .re-top-region-map-control-button:hover,
.re-map-app .re-top-region-map-control-button:focus-visible {
    background: #f2f2f2;
    outline: none;
}

.re-map-app .re-top-region-map-control .re-top-region-action-svg {
    display: block;
    width: 26px;
    height: 26px;
    margin: auto;
    object-fit: contain;
}

.re-map-app .re-top-region-map-control-button.has-region {
    color: var(--re-brand-dark);
}

.re-map-app .re-top-region-map-control-button.is-open,
.re-map-app .re-top-region-map-control-button.is-drawing {
    background: #ecfdf5;
    color: var(--re-brand-dark);
}

.re-map-app .re-top-region-map-control-button.is-open {
    box-shadow: inset 0 0 0 2px rgba(5, 150, 105, 0.18);
}


.re-map-loading,
.re-map-error {
    position: absolute;
    left: 50%;
    top: 22px;
    transform: translateX(-50%);
    z-index: 4;
    max-width: min(620px, calc(100% - 32px));
    border-radius: 18px;
    padding: 12px 16px;
    background: rgba(255, 255, 255, 0.95);
    box-shadow: var(--re-shadow);
    color: var(--re-text);
    font-weight: 700;
}

.re-map-error {
    color: #7f1d1d;
    background: #fff1f2;
}

.re-price-marker {
    border: 2px solid #fff;
    border-radius: 999px;
    padding: 5px 9px;
    color: #fff;
    background: var(--re-brand);
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.28);
    font-size: 12px;
    font-weight: 850;
    white-space: nowrap;
}

.re-map-app .maplibregl-popup-content {
    border-radius: 18px;
    padding: 0;
    overflow: hidden;
    box-shadow: var(--re-shadow);
}

.re-popup {
    width: 245px;
    background: #fff;
}

.re-popup img {
    width: 100%;
    height: 130px;
    display: block;
    object-fit: cover;
    background: #e5e7eb;
}

.re-popup-body {
    padding: 12px;
}

.re-popup h3 {
    margin: 0 0 8px;
    font-size: 15px;
    line-height: 1.25;
}

.re-popup p {
    margin: 0 0 7px;
    color: var(--re-muted);
    font-size: 13px;
}

.re-popup a {
    display: block;
    margin-top: 10px;
    border-radius: 12px;
    padding: 7px 9px;
    color: #fff;
    background: var(--re-brand);
    text-align: center;
    text-decoration: none;
    font-weight: 750;
}

@media (max-width: 900px) {
    .re-map-app {
        min-height: 100vh;
    }

    .re-map-app .re-map-header {
        align-items: flex-start;
        flex-direction: column;
        padding: 16px;
    }

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

    .re-map-stage {
        position: relative;
        top: auto;
        height: 62vh;
        min-height: 420px;
        order: 1;
    }

    .re-map-panel {
        position: relative;
        top: auto;
        height: auto;
        order: 2;
        border-right: 0;
        border-top: 1px solid var(--re-border);
        box-shadow: none;
    }

    .re-card-list {
        max-height: none;
    }
}

.re-card-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 4px;
    padding: 10px 2px 2px;
    color: var(--re-muted);
    font-size: 13px;
    font-weight: 700;
}

.re-card-pagination button {
    border: 1px solid var(--re-border);
    border-radius: 12px;
    padding: 9px 12px;
    color: #fff;
    background: var(--re-brand);
    cursor: pointer;
    font: inherit;
}

.re-card-pagination button:disabled {
    color: var(--re-muted);
    background: #f1f5f9;
    cursor: not-allowed;
}


/* Hotfix 1.2.1: map sidebar density and safer thumbnail display */
.re-card-source,
.re-card-location,
.re-card-meta {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.re-card-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
}

.re-card img[src=""],
.re-popup img[src=""] {
    background: #edf3f0;
}

@media (max-width: 1180px) {
    .re-map-layout {
        grid-template-columns: minmax(320px, 34vw) 1fr;
    }

    .re-map-app .re-map-actions {
        gap: 8px;
    }

    .re-map-app .re-map-actions a,
    .re-map-app .re-filter-buttons button {
        padding: 8px 13px;
    }
}

@media (max-width: 900px) {
    .re-card {
        grid-template-columns: 64px 1fr;
    }

    .re-card {
        min-height: 86px;
    }

    .re-card img {
        width: 64px;
        min-height: 86px;
    }
}

/* Website shell integration: the map page reuses the Dolibarr Website header/footer. */
.re-map-hero {
    padding: 28px 24px 22px;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(239, 246, 241, 0.96));
    border-bottom: 1px solid var(--re-border);
}

.re-map-hero h1 {
    margin: 0;
    font-size: clamp(24px, 3vw, 38px);
    line-height: 1.05;
}

.re-map-hero p {
    max-width: 820px;
    margin: 8px 0 0;
    color: var(--re-muted);
    font-size: 15px;
}

.re-map-app .estate-header {
    position: sticky;
    top: 0;
    z-index: 20;
}

.re-map-app .estate-footer {
    margin-top: 0;
}


/* Hotfix 1.2.9: smartphone navigation, filter-above-map, results-below-map */
.re-map-app .re-mobile-nav-toggle {
    display: none;
}

@media (max-width: 760px) {
    body.bodywebsite {
        overflow-x: hidden;
    }

    .re-map-app {
        background: var(--re-bg);
    }

    .re-map-app .re-map-header {
        display: grid;
        grid-template-columns: 1fr auto;
        align-items: start;
        gap: 12px;
        min-height: 0;
        padding: 16px;
    }

    .re-map-app .re-mobile-nav-toggle {
        display: inline-flex;
        grid-column: 2;
        grid-row: 1;
        width: 48px;
        height: 48px;
        border: 1px solid var(--re-border);
        border-radius: 16px;
        background: #fff;
        box-shadow: 0 8px 18px rgba(15, 23, 42, 0.10);
        align-items: center;
        justify-content: center;
        flex-direction: column;
        gap: 4px;
        cursor: pointer;
    }

    .re-map-app .re-mobile-nav-toggle span:not(.re-mobile-nav-label) {
        display: block;
        width: 22px;
        height: 2px;
        border-radius: 999px;
        background: var(--re-text);
    }

    .re-mobile-nav-label {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }

    .re-map-brand {
        grid-column: 1;
        grid-row: 1;
        min-width: 0;
        padding-right: 2px;
    }

    .re-map-app .re-map-brand h1 {
        font-size: clamp(24px, 8vw, 32px);
        line-height: 1.08;
    }

    .re-map-app .re-map-brand p {
        font-size: 15px;
        line-height: 1.4;
    }

    .re-map-app .re-map-actions {
        grid-column: 1 / -1;
        grid-row: 2;
        display: none;
        width: 100%;
        padding: 10px;
        margin-top: 4px;
        border: 1px solid var(--re-border);
        border-radius: 22px;
        background: rgba(255, 255, 255, 0.98);
        box-shadow: var(--re-shadow);
    }

    .re-map-app .re-map-actions.is-open {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }

    .re-map-app .re-map-actions a {
        display: flex;
        align-items: center;
        justify-content: center;
        min-height: 46px;
        padding: 10px 12px;
        text-align: center;
        border-radius: 16px;
    }

    .re-map-app .re-map-actions .re-map-portal-link {
        grid-column: 1 / -1;
    }

    /* The Website module header is styled by /estate/styles.css.php.
       Keep map_card.css responsible only for the fallback map header and map layout.
       Do not hide or reshape .estate-header nav here, otherwise the shared Website
       hamburger/navigation breaks on /map. */

/* Hotfix 1.2.45: use local/system fonts only.
   Do not load Google Fonts or third-party font/glyph resources.
   For optional self-hosted webfonts, configure them in the site template or
   provide a same-origin MapLibre glyphs URL via IMMOBILIEN_PUBLIC_MAP_GLYPHS_URL. */

    .re-map-layout {
        display: flex;
        flex-direction: column;
        min-height: 0;
    }

    .re-map-panel {
        display: contents;
    }

    .re-map-filters {
        order: 1;
        position: relative;
        z-index: 4;
        margin: 12px;
        padding: 14px;
        border: 1px solid var(--re-border);
        border-radius: 24px;
        background: rgba(255, 255, 255, 0.98);
        box-shadow: 0 12px 34px rgba(15, 23, 42, 0.12);
    }

    .re-filter-grid {
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }

    .re-map-filters input,
    .re-map-filters select {
        min-height: 46px;
        font-size: 16px;
    }

    .re-map-app .re-filter-buttons {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }

    .re-map-app .re-filter-buttons button {
        min-height: 48px;
        padding: 10px 12px;
    }

    .re-map-stage {
        order: 2;
        position: relative;
        top: auto;
        width: calc(100% - 24px);
        height: 58vh;
        min-height: 390px;
        margin: 0 12px 12px;
        border-radius: 24px;
        overflow: hidden;
        box-shadow: 0 16px 38px rgba(15, 23, 42, 0.12);
    }

    .re-results-summary {
        order: 3;
        margin: 0 12px;
        padding: 14px 16px;
        border: 1px solid var(--re-border);
        border-radius: 22px 22px 0 0;
        background: rgba(255, 255, 255, 0.98);
    }

    .re-card-list {
        order: 4;
        display: grid;
        max-height: none;
        overflow: visible;
        margin: 0 12px 16px;
        padding: 12px;
        border: 1px solid var(--re-border);
        border-top: 0;
        border-radius: 0 0 22px 22px;
        background: rgba(255, 255, 255, 0.98);
    }

    .re-card {
        grid-template-columns: 82px 1fr;
    }

    .re-card {
        min-height: 104px;
    }

    .re-card img {
        width: 82px;
        min-height: 104px;
    }

    .re-map-app .maplibregl-ctrl-top-right {
        top: 10px;
        right: 10px;
    }
}

@media (max-width: 420px) {
    .re-filter-grid,
    .re-map-app .re-filter-buttons,
    .re-map-app .re-map-actions.is-open {
        grid-template-columns: 1fr;
    }

    .re-map-stage {
        height: 54vh;
        min-height: 350px;
    }
}

.re-map-app .re-map-logo {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    text-decoration: none;
}

.re-map-app .re-map-logo img {
    display: block;
    max-width: 190px;
    max-height: 64px;
    object-fit: contain;
}

@media (max-width: 900px) {
    .re-map-app .re-map-logo {
        grid-column: 1;
        grid-row: 1;
        max-width: calc(100% - 60px);
    }

    .re-map-app .re-map-logo img {
        max-width: 170px;
        max-height: 52px;
    }

    .re-map-app .re-map-logo + .re-map-brand {
        grid-column: 1 / -1;
        grid-row: 2;
    }

    .re-map-app .re-map-logo + .re-map-brand + .re-map-actions,
    .re-map-app .re-mobile-nav-toggle + .re-map-logo + .re-map-brand + .re-map-actions {
        grid-row: 3;
    }
}

/* --------------------------------------------------------------------------
   Hotfix 1.2.19: touch-friendly and smartphone-safe map popups
   - Larger close button for touchscreens
   - Responsive popup width
   - More compact popup image and text on small screens
   - Better tap target for the details button
   - Prevents popup content from overflowing narrow screens
   -------------------------------------------------------------------------- */

/* Keep the Website hamburger checkbox invisible if the Website header is embedded
   on the map page. This must be outside media queries so it also applies on desktop. */
.re-map-app input#estate-menu-toggle,
.re-map-app input.estate-menu-toggle-input,
.re-map-app .estate-menu-toggle-input {
    position: absolute !important;
    left: -9999px !important;
    top: auto !important;
    width: 1px !important;
    height: 1px !important;
    opacity: 0 !important;
    pointer-events: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
    appearance: none !important;
    -webkit-appearance: none !important;
}

/* MapLibre popup container */
.re-map-app .maplibregl-popup {
    max-width: min(360px, calc(100vw - 28px)) !important;
    z-index: 40;
}

.re-map-app .maplibregl-popup-content {
    width: min(360px, calc(100vw - 28px));
    max-width: calc(100vw - 28px);
    border-radius: 20px;
    padding: 0;
    overflow: hidden;
    box-shadow: 0 20px 56px rgba(15, 23, 42, 0.22);
}

/* Larger touch target for closing popups */
.re-map-app .maplibregl-popup-close-button {
    width: 40px !important;
    height: 40px !important;
    right: 8px !important;
    top: 8px !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    border-radius: 999px !important;
    color: #111827 !important;
    background: rgba(255, 255, 255, 0.94) !important;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.16);
    font-size: 22px !important;
    line-height: 1 !important;
    text-decoration: none !important;
    z-index: 2;
}

.re-map-app .maplibregl-popup-close-button:hover,
.re-map-app .maplibregl-popup-close-button:focus {
    color: #ffffff !important;
    background: var(--re-brand) !important;
    outline: none;
}

/* Popup card */
.re-popup {
    width: 100%;
    max-width: 360px;
    background: #fff;
}

.re-popup img {
    width: 100%;
    height: 150px;
    display: block;
    object-fit: cover;
    background: #edf3f0;
}

/* If the image is an SVG/logo placeholder, keep it visually balanced. */
.re-popup img[src$=".svg"],
.re-popup img[src^="data:image/svg+xml"] {
    object-fit: contain;
    padding: 18px;
    background: #eef6f1;
}

.re-popup-body {
    padding: 14px 16px 16px;
}

.re-popup h3 {
    margin: 0 0 8px;
    color: var(--re-text);
    font-size: 17px;
    line-height: 1.25;
    font-weight: 850;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.re-popup p {
    margin: 0 0 8px;
    color: var(--re-muted);
    font-size: 14px;
    line-height: 1.35;
}

.re-popup a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    margin-top: 14px;
    border-radius: 14px;
    padding: 10px 14px;
    color: #fff;
    background: var(--re-brand);
    text-align: center;
    text-decoration: none;
    font-weight: 850;
    font-size: 15px;
}

.re-popup a:hover,
.re-popup a:focus {
    background: var(--re-brand-dark);
    outline: none;
}

/* Touch devices: remove hover-only visual jumps inside the popup. */
@media (hover: none) and (pointer: coarse) {
    .re-map-app .maplibregl-popup-close-button {
        width: 44px !important;
        height: 44px !important;
    }

    .re-popup a {
        min-height: 48px;
    }
}

@media (max-width: 760px) {
    .re-map-app .maplibregl-popup {
        max-width: calc(100vw - 24px) !important;
    }

    .re-map-app .maplibregl-popup-content {
        width: calc(100vw - 24px);
        max-width: 360px;
        border-radius: 18px;
    }

    .re-popup {
        max-width: 360px;
    }

    .re-popup img {
        height: 132px;
    }

    .re-popup-body {
        padding: 12px 14px 14px;
    }

    .re-popup h3 {
        font-size: 16px;
    }

    .re-popup p {
        font-size: 13.5px;
    }

    .re-map-app .maplibregl-popup-tip {
        display: none;
    }
}

@media (max-width: 420px) {
    .re-map-app .maplibregl-popup-content {
        width: calc(100vw - 20px);
        max-width: calc(100vw - 20px);
    }

    .re-popup img {
        height: 118px;
    }

    .re-popup-body {
        padding: 11px 12px 12px;
    }

    .re-popup h3 {
        font-size: 15.5px;
        line-height: 1.22;
    }

    .re-popup p {
        margin-bottom: 6px;
        font-size: 13px;
    }

    .re-popup a {
        min-height: 46px;
        margin-top: 12px;
        border-radius: 13px;
    }
}


/* --------------------------------------------------------------------------
   Hotfix 1.2.19: mobile bottom sheet for property previews
   -------------------------------------------------------------------------- */
.re-mobile-property-sheet {
    display: none;
}

.re-mobile-property-sheet[hidden] {
    display: none !important;
}

@media (max-width: 760px), (hover: none) and (pointer: coarse) {
    .re-mobile-property-sheet {
        position: absolute;
        left: 12px;
        right: 12px;
        bottom: 12px;
        z-index: 12;
        display: none;
        max-height: min(78%, 460px);
        overflow: auto;
        border-radius: 24px;
        background: #ffffff;
        box-shadow: 0 22px 62px rgba(15, 23, 42, 0.28);
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
    }

    .re-mobile-property-sheet.is-open {
        display: block;
    }

    .re-mobile-property-sheet-close {
        position: absolute;
        top: 8px;
        right: 8px;
        z-index: 3;
        width: 44px;
        height: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border: 0;
        border-radius: 999px;
        color: #111827;
        background: rgba(255, 255, 255, 0.96);
        box-shadow: 0 8px 18px rgba(15, 23, 42, 0.18);
        font-size: 28px;
        line-height: 1;
        cursor: pointer;
    }

    .re-mobile-property-sheet-close:hover,
    .re-mobile-property-sheet-close:focus {
        color: #ffffff;
        background: var(--re-brand);
        outline: none;
    }

    .re-mobile-property-sheet-content .re-popup {
        width: 100% !important;
        max-width: none !important;
        border-radius: 24px;
        overflow: hidden;
    }

    .re-mobile-property-sheet-content .re-popup img {
        height: 118px;
    }

    .re-mobile-property-sheet-content .re-popup img[src$=".svg"],
    .re-mobile-property-sheet-content .re-popup img[src^="data:image/svg+xml"] {
        padding: 18px 56px 18px 56px;
        object-fit: contain;
        background: #eef6f1;
    }

    .re-mobile-property-sheet-content .re-popup-body {
        padding: 14px 16px 16px;
    }

    .re-mobile-property-sheet-content .re-popup h3 {
        padding-right: 0;
        font-size: 17px;
        line-height: 1.24;
        -webkit-line-clamp: 2;
    }

    .re-mobile-property-sheet-content .re-popup p {
        font-size: 14px;
        line-height: 1.35;
    }

    .re-mobile-property-sheet-content .re-popup a {
        min-height: 48px;
        border-radius: 16px;
        font-size: 15px;
    }
}

@media (max-width: 420px) {
    .re-mobile-property-sheet {
        left: 10px;
        right: 10px;
        bottom: 10px;
        max-height: min(80%, 430px);
        border-radius: 22px;
    }

    .re-mobile-property-sheet-content .re-popup img {
        height: 108px;
    }

    .re-mobile-property-sheet-content .re-popup-body {
        padding: 12px 14px 14px;
    }

    .re-mobile-property-sheet-content .re-popup h3 {
        font-size: 16px;
    }
}

/* Hotfix 1.2.20: compact market metadata in map popups.
   Hotfix 1.2.21: keep Website header CSS separate from map-specific CSS. */
.re-popup-facts {
    font-weight: 600;
}

.re-popup-price-sqm {
    color: var(--re-brand-dark) !important;
    font-weight: 700;
}

.re-popup-dates {
    color: var(--re-muted) !important;
    font-size: 12px !important;
}

@media (max-width: 760px) {
    .re-popup-dates {
        font-size: 13px !important;
    }
}


/* --------------------------------------------------------------------------
   Hotfix 1.2.37: map user UX using existing portal user-space APIs
   -------------------------------------------------------------------------- */
.re-card-actions,
.re-popup-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-top: 10px;
}

.re-card-detail-link,
.re-popup-detail-link {
    grid-column: 1 / -1;
}

.re-interaction-button,
.re-rating-star {
    border: 1px solid var(--re-border);
    border-radius: 12px;
    color: var(--re-text);
    background: #ffffff;
    cursor: pointer;
    font: inherit;
    font-weight: 750;
    transition: border-color .16s ease, background .16s ease, color .16s ease, transform .16s ease;
}

.re-interaction-button {
    min-height: 34px;
    padding: 7px 9px;
    font-size: 12px;
}

.re-interaction-button:hover,
.re-interaction-button:focus,
.re-rating-star:hover,
.re-rating-star:focus {
    border-color: rgba(31, 111, 91, 0.48);
    outline: none;
    transform: translateY(-1px);
}

.re-interaction-button.is-active {
    color: #ffffff;
    border-color: var(--re-brand);
    background: var(--re-brand);
}

.re-rating {
    grid-column: 1 / -1;
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding-top: 2px;
}

.re-rating-star {
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    color: #94a3b8;
    line-height: 1;
}

.re-rating-star.is-active {
    color: #8a5a00;
    border-color: rgba(242, 184, 75, .55);
    background: rgba(242, 184, 75, .18);
}

.re-map-error.is-success {
    color: var(--re-brand-dark);
    background: #ecfdf5;
}

.re-compare-tray {
    position: fixed;
    left: 50%;
    bottom: 18px;
    z-index: 30;
    width: min(760px, calc(100% - 28px));
    transform: translateX(-50%);
    border: 1px solid var(--re-border);
    border-radius: 22px;
    padding: 12px;
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 22px 62px rgba(15, 23, 42, .20);
}

.re-compare-tray[hidden] {
    display: none !important;
}

.re-compare-tray-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    color: var(--re-brand-dark);
    font-weight: 850;
}

.re-compare-tray-header span {
    min-width: 28px;
    border-radius: 999px;
    padding: 3px 8px;
    color: #ffffff;
    background: var(--re-brand);
    text-align: center;
}

.re-compare-tray-items {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 8px;
    margin-top: 10px;
}

.re-compare-tray-item {
    border: 1px solid var(--re-border);
    border-radius: 14px;
    padding: 8px 10px;
    color: var(--re-text);
    background: #ffffff;
    text-align: left;
    cursor: pointer;
    font: inherit;
}

.re-compare-tray-item span,
.re-compare-tray-item small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.re-compare-tray-item span {
    font-weight: 800;
}

.re-compare-tray-item small {
    margin-top: 3px;
    color: var(--re-muted);
}

@media (max-width: 760px) {
    .re-card-actions,
    .re-popup-actions {
        grid-template-columns: 1fr;
    }

    .re-interaction-button {
        min-height: 42px;
        font-size: 13px;
    }

    .re-rating-star {
        width: 34px;
        height: 34px;
    }

    .re-compare-tray {
        left: 10px;
        right: 10px;
        bottom: 10px;
        width: auto;
        transform: none;
    }
}

/* --------------------------------------------------------------------------
   Hotfix 1.2.24: stable fallback account navigation and language selectors
   -------------------------------------------------------------------------- */

.re-map-account-link {
    color: #fff !important;
    border-color: var(--re-brand) !important;
    background: var(--re-brand) !important;
}

.re-map-account-link:hover,
.re-map-account-link:focus {
    color: #fff !important;
    border-color: var(--re-brand-dark) !important;
    background: var(--re-brand-dark) !important;
    outline: none;
}

.re-map-language-group {
    display: inline-flex;
    align-items: center;
}

.re-map-language-label {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.re-map-language-select {
    min-height: 42px;
    max-width: 170px;
    border: 1px solid var(--re-border);
    border-radius: 999px;
    padding: 0 38px 0 14px;
    color: var(--re-text);
    background: #fff;
    font: inherit;
    font-weight: 750;
    cursor: pointer;
}

.re-map-language-select:hover,
.re-map-language-select:focus {
    border-color: color-mix(in srgb, var(--re-brand) 45%, transparent);
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.10);
    outline: none;
}

.re-map-footer-language-card {
    margin-top: 2px;
}

.re-map-footer-language-card .re-map-language-select {
    width: 100%;
    max-width: none;
    min-height: 46px;
    border-color: rgba(255, 255, 255, .34);
    color: #0f172a;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .16);
}

.re-map-footer-language-card .re-map-language-select:hover,
.re-map-footer-language-card .re-map-language-select:focus {
    border-color: #fff;
    box-shadow: 0 14px 30px rgba(15, 23, 42, .24);
}

@media (max-width: 760px) {
    .re-map-language-group {
        grid-column: 1 / -1;
        width: 100%;
        padding-top: 8px;
        border-top: 1px solid var(--re-border);
    }

    .re-map-language-group .re-map-language-select {
        width: 100%;
        max-width: none;
        min-height: 46px;
        border-radius: 16px;
        font-size: 16px;
    }

    .re-map-account-link {
        grid-column: 1 / -1;
    }

    .re-map-footer-language-card .re-map-language-select {
        min-height: 48px;
        border-radius: 16px;
        font-size: 16px;
    }
}

/* Hotfix 1.2.38: private object notes in the map popup/mobile sheet. */
.re-note-toggle-button {
    min-width: 44px;
    padding-left: 12px;
    padding-right: 12px;
    font-size: 18px;
    line-height: 1;
}

.re-private-note {
    grid-column: 1 / -1;
    display: grid;
    gap: 6px;
    margin-top: 4px;
}

.re-private-note[hidden] {
    display: none !important;
}

.re-private-note label {
    color: var(--re-muted);
    font-size: 12px;
    font-weight: 750;
}

.re-private-note textarea {
    width: 100%;
    min-height: 68px;
    resize: vertical;
    border: 1px solid var(--re-border);
    border-radius: 12px;
    padding: 9px 10px;
    color: var(--re-text);
    background: #ffffff;
    font: inherit;
    font-size: 13px;
    line-height: 1.35;
    box-sizing: border-box;
}

.re-private-note textarea:focus {
    border-color: rgba(31, 111, 91, 0.48);
    outline: none;
    box-shadow: 0 0 0 3px rgba(31, 111, 91, .10);
}

.re-note-save-button {
    justify-self: start;
    min-width: 142px;
}


/* Hotfix 1.2.42: logged-in map users need more vertical workspace. */
.re-map-app.is-portal-authenticated {
    --re-auth-extra-space: 150px;
}

.re-map-app.is-portal-authenticated .re-map-layout {
    min-height: calc(100vh - 92px + var(--re-auth-extra-space));
}

.re-map-app.is-portal-authenticated .re-map-panel,
.re-map-app.is-portal-authenticated .re-map-stage {
    height: calc(100vh - 92px + var(--re-auth-extra-space));
}

.re-map-app.is-portal-authenticated .estate-footer,
.re-map-app.is-portal-authenticated .re-map-footer {
    margin-top: 0;
}

@media (max-width: 760px) {
    .re-map-app.is-portal-authenticated {
        --re-auth-extra-space: 0px;
    }

    .re-map-app.is-portal-authenticated .re-map-layout {
        min-height: 0;
    }

    .re-map-app.is-portal-authenticated .re-map-panel {
        height: auto;
    }

    .re-map-app.is-portal-authenticated .re-map-stage {
        height: 68vh;
        min-height: 470px;
    }

    .re-map-app.is-portal-authenticated .re-card-list {
        margin-bottom: 132px;
    }
}

@media (max-width: 420px) {
    .re-map-app.is-portal-authenticated .re-map-stage {
        height: 64vh;
        min-height: 420px;
    }
}

/* Hotfix 1.2.46: DOM marker fallback if MapLibre circle layers are not rendered by the active style. */
.re-map-dom-pin {
    width: 22px;
    height: 22px;
    border: 3px solid #ffffff;
    border-radius: 999px;
    background: var(--re-marker-color, #CCCCCC);
    box-shadow: 0 8px 20px rgba(15, 38, 32, 0.28);
    cursor: pointer;
    padding: 0;
}

.re-map-dom-pin:focus-visible {
    outline: 3px solid rgba(31, 111, 91, 0.35);
    outline-offset: 3px;
}


/* Hotfix 1.2.47: keep property cards readable and hide personal compare tray for guests. */
.re-card img[src=""],
.re-card img:not([src]) {
    background: #eef3f1 url('/map-assets/img/property-placeholder.svg') center/46px 46px no-repeat;
}
.re-map-app:not(.is-portal-authenticated) .re-compare-tray {
    display: none !important;
}


/* Hotfix 1.2.48: selected property workspace without changing Website header/footer. */
.re-map-app.has-selected-property .re-card-list {
    padding: 14px;
}

.re-map-app.is-portal-authenticated.has-selected-property .re-map-layout {
    grid-template-columns: minmax(410px, 37vw) 1fr;
}

.re-selected-property {
    display: grid;
    gap: 12px;
}

.re-selected-back {
    justify-self: start;
    border: 0;
    padding: 4px 0;
    color: var(--re-brand-dark);
    background: transparent;
    cursor: pointer;
    font: inherit;
    font-weight: 850;
}

.re-selected-back:hover,
.re-selected-back:focus {
    color: var(--re-brand);
    outline: none;
    text-decoration: underline;
}

.re-selected-card {
    overflow: hidden;
    border: 1px solid var(--re-border);
    border-radius: 24px;
    background: #ffffff;
    box-shadow: 0 16px 42px rgba(15, 23, 42, 0.12);
}

.re-selected-image {
    position: relative;
    min-height: 190px;
    background: #edf3f0;
}

.re-selected-image img {
    width: 100%;
    height: 210px;
    display: block;
    object-fit: cover;
    background: #edf3f0;
}

.re-selected-image img[src$=".svg"],
.re-selected-image img[src^="data:image/svg+xml"] {
    object-fit: contain;
    padding: 28px;
    background: #eef6f1;
}

.re-selected-heart {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--re-border);
    border-radius: 999px;
    color: var(--re-brand-dark);
    background: rgba(255, 255, 255, .95);
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.16);
    cursor: pointer;
    font-size: 24px;
    line-height: 1;
}

.re-selected-heart.is-active {
    color: #b91c1c;
    border-color: rgba(185, 28, 28, .28);
    background: #fff5f5;
}

.re-selected-body {
    display: grid;
    gap: 9px;
    padding: 16px 18px 18px;
}

.re-selected-body h2 {
    margin: 0;
    color: var(--re-text);
    font-size: 20px;
    line-height: 1.25;
    font-weight: 900;
}

.re-selected-facts {
    margin: 0;
    color: var(--re-brand-dark);
    font-size: 17px;
    line-height: 1.35;
    font-weight: 900;
}

.re-selected-price-sqm,
.re-selected-location,
.re-selected-source {
    margin: 0;
    color: var(--re-muted);
    font-size: 14px;
    line-height: 1.42;
}

.re-selected-price-sqm strong {
    color: var(--re-brand-dark);
}

.re-selected-actions,
.re-popup-actions {
    display: grid;
    grid-template-columns: minmax(42px, auto) minmax(132px, 1fr) minmax(118px, auto);
    align-items: center;
    gap: 8px;
}

.re-popup-actions .re-popup-detail-link,
.re-selected-actions .re-selected-detail-link {
    grid-column: 1 / -1;
}

.re-popup-actions .re-favorite-button,
.re-selected-actions .re-favorite-button {
    grid-column: 1;
    min-width: 44px;
    padding-left: 10px;
    padding-right: 10px;
    white-space: nowrap;
}

.re-popup-actions .re-rating,
.re-selected-actions .re-rating {
    grid-column: 2;
    padding-top: 0;
    justify-content: center;
}

.re-popup-actions .re-compare-button,
.re-selected-actions .re-compare-button {
    grid-column: 3;
    white-space: nowrap;
}

.re-selected-note {
    display: grid;
    gap: 8px;
    margin-top: 6px;
    padding-top: 12px;
    border-top: 1px solid var(--re-border);
}

.re-selected-note label {
    color: var(--re-text);
    font-size: 13px;
    font-weight: 850;
}

.re-selected-note textarea {
    width: 100%;
    min-height: 92px;
    resize: vertical;
    border: 1px solid var(--re-border);
    border-radius: 14px;
    padding: 11px 12px;
    color: var(--re-text);
    background: #ffffff;
    font: inherit;
    font-size: 14px;
    line-height: 1.45;
}

.re-selected-note textarea:focus {
    border-color: rgba(31, 111, 91, .50);
    outline: none;
    box-shadow: 0 0 0 3px rgba(31, 111, 91, .11);
}

.re-selected-note .re-note-save-button {
    justify-self: start;
    min-width: 140px;
    color: #ffffff;
    border-color: var(--re-brand);
    background: var(--re-brand);
}

.re-selected-detail-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 42px;
    margin-top: 6px;
    padding: 10px 16px;

    background: #fff;
    color: var(--re-brand);

    border: 1px solid color-mix(in srgb, var(--estate-primary) 35%, transparent);
    border-radius: 14px;

    font-weight: 700;
    text-decoration: none;

    transition: .2s;
}

.re-selected-detail-link:hover,
.re-selected-detail-link:focus {
    background: color-mix(in srgb, var(--estate-primary) 6%, transparent);
    border-color: var(--re-brand);
}

@media (max-width: 1180px) {
    .re-map-app.is-portal-authenticated.has-selected-property .re-map-layout {
        grid-template-columns: minmax(390px, 40vw) 1fr;
    }
}

@media (max-width: 900px) {
    .re-map-app.is-portal-authenticated.has-selected-property .re-map-layout {
        display: flex;
        grid-template-columns: none;
    }

    .re-map-app.has-selected-property .re-card-list {
        margin-bottom: 132px;
    }

    .re-selected-card {
        border-radius: 22px;
    }

    .re-selected-image img {
        height: 190px;
    }

    .re-selected-actions,
    .re-popup-actions {
        grid-template-columns: 1fr;
    }

    .re-popup-actions .re-favorite-button,
    .re-selected-actions .re-favorite-button,
    .re-popup-actions .re-rating,
    .re-selected-actions .re-rating,
    .re-popup-actions .re-compare-button,
    .re-selected-actions .re-compare-button {
        grid-column: 1;
    }

    .re-popup-actions .re-rating,
    .re-selected-actions .re-rating {
        justify-content: flex-start;
    }
}

@media (max-width: 520px) {
    .re-selected-image img {
        height: 160px;
    }

    .re-selected-body {
        padding: 14px;
    }

    .re-selected-body h2 {
        font-size: 18px;
    }
}

/* --------------------------------------------------------------------------
   Hotfix 1.2.49: authenticated map actions and guest prompt
   -------------------------------------------------------------------------- */
.re-login-prompt {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 34px 1fr;
    align-items: center;
    gap: 10px;
    margin-top: 10px;
    padding: 12px 14px;
    border: 1px solid rgba(31, 111, 91, 0.16);
    border-radius: 14px;
    color: var(--re-muted);
    background: rgba(248, 250, 252, 0.94);
    font-size: 13px;
    line-height: 1.38;
}

.re-login-prompt span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 12px;
    color: var(--re-brand-dark);
    background: rgba(31, 111, 91, 0.10);
}

.re-login-prompt p {
    margin: 0;
}

.re-popup-actions .re-login-prompt {
    margin-top: 2px;
}

.re-popup-actions .re-favorite-button,
.re-selected-actions .re-favorite-button {
    overflow: hidden;
    text-overflow: ellipsis;
}

.re-popup-actions .re-rating-star,
.re-selected-actions .re-rating-star {
    width: 30px;
    height: 30px;
}

@media (max-width: 760px) {
    .re-login-prompt {
        grid-template-columns: 30px 1fr;
        padding: 10px 12px;
        font-size: 12px;
    }
}


/* Hotfix 1.2.54: selected-property focus UX for desktop map. */
.re-map-selected-pin {
    position: relative;
    width: 34px;
    height: 34px;
    border: 2px solid #ffffff;
    border-radius: 50% 50% 50% 0;
    background: var(--re-marker-color, #CCCCCC);
    box-shadow: 0 0 0 8px color-mix(in srgb, var(--re-marker-color, #CCCCCC) 18%, transparent), 0 14px 28px rgba(15, 38, 32, 0.30);
    cursor: pointer;
    padding: 0;
    transform: rotate(-45deg);
}

.re-map-selected-pin::after {
    content: "";
    position: absolute;
    left: 10px;
    top: 10px;
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: #ffffff;
}

.re-map-selected-pin:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--re-marker-color, #CCCCCC) 34%, transparent);
    outline-offset: 6px;
}

.re-map-dom-pin.is-selected {
    opacity: 0;
    pointer-events: none;
}

@media (min-width: 901px) {
    .re-map-app.has-selected-property .maplibregl-popup {
        display: none !important;
    }
}

/* --------------------------------------------------------------------------
   Hotfix 1.2.76: public listing report and guest account prompt
   -------------------------------------------------------------------------- */
.re-login-prompt {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 12px 0;
    border: 1px solid rgba(31, 111, 91, .18);
    border-radius: 16px;
    padding: 12px;
    color: var(--re-text);
    background: linear-gradient(135deg, rgba(236, 253, 245, .96), rgba(248, 250, 252, .96));
}

.re-login-prompt > span {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(31, 111, 91, .12);
}

.re-login-prompt strong {
    display: block;
    margin-bottom: 3px;
    color: var(--re-brand-dark);
    font-size: 13px;
}

.re-login-prompt p {
    margin: 0;
    color: var(--re-muted);
    font-size: 13px;
    line-height: 1.35;
}

.re-login-prompt-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 9px;
}

.re-login-prompt-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    border: 1px solid rgba(31, 111, 91, .28);
    border-radius: 999px;
    padding: 6px 11px;
    color: var(--re-brand-dark);
    background: #fff;
    text-decoration: none;
    font-size: 12px;
    font-weight: 800;
}

.re-login-prompt-actions a:first-child {
    color: #fff;
    border-color: var(--re-brand);
    background: var(--re-brand);
}

.re-report-card {
    margin: 12px 0;
    border: 1px solid rgba(220, 107, 53, .22);
    border-radius: 16px;
    padding: 10px;
    background: #fffaf5;
}

.re-report-toggle {
    width: 100%;
    min-height: 38px;
    border: 1px solid rgba(220, 107, 53, .32);
    border-radius: 12px;
    color: #7c2d12;
    background: #ffffff;
    cursor: pointer;
    font: inherit;
    font-size: 13px;
    font-weight: 850;
    text-align: left;
}

.re-report-toggle:hover,
.re-report-toggle:focus {
    border-color: rgba(220, 107, 53, .55);
    outline: none;
    box-shadow: 0 8px 18px rgba(124, 45, 18, .10);
}

.re-report-form {
    display: grid;
    gap: 9px;
    margin-top: 10px;
}

.re-report-form[hidden] {
    display: none !important;
}

.re-report-form h3 {
    margin: 0;
    color: #7c2d12;
    font-size: 15px;
}

.re-report-process {
    margin: 0;
    color: var(--re-muted);
    font-size: 12px;
    line-height: 1.4;
}

.re-report-form label {
    display: grid;
    gap: 5px;
    color: var(--re-muted);
    font-size: 12px;
    font-weight: 750;
}

.re-report-form select,
.re-report-form textarea,
.re-report-form input {
    width: 100%;
    border: 1px solid var(--re-border);
    border-radius: 12px;
    padding: 9px 10px;
    color: var(--re-text);
    background: #fff;
    font: inherit;
    font-size: 13px;
}

.re-report-actions {
    display: flex;
    gap: 8px;
}

.re-report-submit,
.re-report-cancel {
    flex: 1;
    min-height: 36px;
    border: 1px solid var(--re-border);
    border-radius: 999px;
    cursor: pointer;
    font: inherit;
    font-size: 13px;
    font-weight: 850;
}

.re-report-submit {
    color: #fff;
    border-color: #dc6b35;
    background: #dc6b35;
}

.re-report-cancel {
    color: var(--re-text);
    background: #fff;
}

@media (max-width: 760px) {
    .re-report-actions,
    .re-login-prompt-actions {
        display: grid;
        grid-template-columns: 1fr;
    }
}

/* Hotfix 1.2.90: profile defaults and compact/advanced filter UX. */
.re-selected-detail-slot[hidden],
.re-profile-default-notice[hidden] {
    display: none !important;
}

.re-selected-detail-slot {
    padding: 14px 14px 0;
    border-bottom: 1px solid var(--re-border);
    background: linear-gradient(180deg, rgba(236, 253, 247, 0.82), rgba(255, 255, 255, 0.96));
}

.re-map-app.has-selected-property .re-map-filters {
    display: none !important;
}

.re-profile-default-notice {
    display: grid;
    gap: 6px;
    padding: 11px 12px;
    margin-bottom: 12px;
    border: 1px solid rgba(13, 125, 105, 0.24);
    border-radius: 14px;
    background: rgba(13, 125, 105, 0.08);
    color: var(--re-brand-dark);
    font-size: 13px;
    line-height: 1.35;
}

.re-profile-default-notice a {
    color: var(--re-brand-dark);
    font-weight: 800;
    text-decoration: none;
}

.re-profile-default-notice a:hover {
    text-decoration: underline;
}

.re-filter-grid-primary {
    grid-template-columns: 1fr;
}

.re-advanced-filters {
    margin-top: 12px;
    border: 1px solid var(--re-border);
    border-radius: 16px;
    background: rgba(248, 250, 252, 0.85);
    overflow: hidden;
}

.re-advanced-filters summary {
    cursor: pointer;
    padding: 12px 14px;
    color: var(--re-brand-dark);
    font-weight: 900;
    list-style: none;
    user-select: none;
}

.re-advanced-filters summary::-webkit-details-marker {
    display: none;
}

.re-advanced-filters summary::after {
    content: '+';
    float: right;
    font-weight: 900;
}

.re-advanced-filters[open] summary::after {
    content: '–';
}

.re-advanced-filters .re-filter-grid {
    padding: 0 12px 12px;
}

.re-authenticated-filter-grid {
    padding-top: 0 !important;
}

@media (max-width: 760px) {
    .re-selected-detail-slot {
        padding: 12px 12px 0;
    }

    .re-advanced-filters .re-filter-grid {
        grid-template-columns: 1fr;
    }
}


/* Hotfix 1.2.92: keep map component inside Website shell and focus detail view. */
.re-map-content-embed,
.re-map-content-embed .re-map-layout,
.re-map-content-embed .re-map-panel,
.re-map-content-embed .re-map-stage {
    position: relative;
    z-index: 1;
}

.re-map-content-embed + .estate-footer,
.estate-page .estate-footer {
    position: relative;
    z-index: 2;
    clear: both;
}

.re-map-content-embed.has-selected-property .re-map-filters {
    display: none !important;
}

.re-map-content-embed.has-selected-property .re-results-summary {
    margin-top: 0;
}


/* --------------------------------------------------------------------------
   Hotfix 1.3.1: Website embed and canonical responsive cascade

   This section is intentionally placed at the end of the file. The map CSS has
   grown through several hotfixes, so the final responsive decisions for the
   Website Tool embed live here to make the cascade explicit and easier to
   maintain.

   Layout principle:
   - Standalone map pages may still use the old internal .re-map-header offset.
   - Website Tool pages already have an external header above .re-map-content-embed.
   - Therefore the embedded map must not reserve the old 92px internal header
     offset on desktop.
   -------------------------------------------------------------------------- */

/* Website embed: remove accidental whitespace from the surrounding Website shell. */
.re-map-content-embed,
.estate-page main,
.estate-page .estate-main,
.estate-page .page-content,
.estate-page main .re-map-content-embed,
.estate-map-page .re-map-content-embed {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Keep advanced filters really collapsed when the <details> element is closed. */
.re-map-content-embed .re-advanced-filters:not([open]) .re-filter-grid,
.re-map-content-embed .re-advanced-filters:not([open]) .re-authenticated-filter-grid {
    display: none !important;
}

/* Desktop Website embed: remove the old internal map-header sticky offset. */
@media (min-width: 901px) {
    body.bodywebpage-map .re-map-content-embed .re-map-panel,
    body.bodywebpage-map .re-map-content-embed .re-map-stage {
        position: relative !important;
        top: 0 !important;
    }

    body.bodywebpage-map .re-map-content-embed .re-map-layout {
        min-height: 100vh !important;
    }
}

/* Tablet canonical layout: one column, map first, results below. */
@media (max-width: 900px) {
    body.bodywebpage-map .re-map-content-embed .re-map-layout {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    body.bodywebpage-map .re-map-content-embed .re-map-stage,
    body.bodywebpage-map .re-map-content-embed .re-map-panel {
        position: relative;
        top: auto;
    }
}

/* Mobile canonical layout: filters above the map, cards below the map. */
@media (max-width: 760px) {
    body.bodywebpage-map .re-map-content-embed .re-map-layout {
        display: flex;
        flex-direction: column;
        min-height: 0;
    }

    body.bodywebpage-map .re-map-content-embed .re-map-stage {
        order: 2;
    }

    body.bodywebpage-map .re-map-content-embed .re-results-summary {
        order: 3;
    }

    body.bodywebpage-map .re-map-content-embed .re-card-list {
        order: 4;
    }

    body.bodywebpage-map .re-map-content-embed .re-selected-detail-slot {
        padding: 12px 12px 0;
    }

    body.bodywebpage-map .re-map-content-embed .re-advanced-filters .re-filter-grid {
        grid-template-columns: 1fr;
    }
}

/* Small phones: avoid cramped two-column controls. */
@media (max-width: 420px) {
    body.bodywebpage-map .re-map-content-embed .re-filter-grid,
    body.bodywebpage-map .re-map-content-embed .re-filter-buttons,
    body.bodywebpage-map .re-map-content-embed .re-map-actions.is-open,
    body.bodywebpage-map .re-map-content-embed .re-report-actions,
    body.bodywebpage-map .re-map-content-embed .re-login-prompt-actions {
        grid-template-columns: 1fr;
    }
}


/* --------------------------------------------------------------------------
   Hotfix 1.3.77: Website map detail/report scroll contract

   In the Dolibarr Website shell the desktop map uses a two-column layout.
   The right map column keeps a viewport-sized map, while the left panel may
   become taller when an authenticated user opens the selected object detail
   and the report form. The left detail content must therefore contribute to
   the document height instead of being clipped by the map viewport height.
   -------------------------------------------------------------------------- */
@media (min-width: 901px) {
    body.bodywebpage-map .re-map-content-embed.has-selected-property .re-map-layout {
        align-items: start;
        min-height: 0 !important;
    }

    body.bodywebpage-map .re-map-content-embed.has-selected-property .re-map-panel {
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        align-self: start;
        overflow: visible !important;
    }

    body.bodywebpage-map .re-map-content-embed.has-selected-property .re-selected-detail-slot {
        display: block;
        padding-bottom: 28px;
    }

    body.bodywebpage-map .re-map-content-embed.has-selected-property .re-map-stage {
        position: sticky !important;
        top: 0 !important;
        height: min(820px, 100vh) !important;
        min-height: 640px;
        max-height: 100vh;
        align-self: start;
    }

    body.bodywebpage-map .re-map-content-embed.has-selected-property.has-open-report .re-selected-detail-slot {
        padding-bottom: 56px;
    }
}

/* Hotfix 1.3.90: modern public map list UX */
.re-map-app {
    --re-orange: #ea6b2f;
    --re-chip: #f4faf7;
    --re-soft-shadow: 0 12px 28px rgba(15, 23, 42, 0.10);
}

.re-map-content-embed .re-map-layout {
    grid-template-columns: minmax(390px, 31vw) 1fr;
}

.re-map-content-embed .re-map-panel {
    box-shadow: 8px 0 26px rgba(15, 23, 42, 0.08);
}

.re-filter-search input,
.re-map-filters select,
.re-map-filters input {
    min-height: 46px;
    border-radius: 18px;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.04);
}

.re-advanced-filters {
    margin: 10px 0 0;
    border: 1px solid var(--re-border);
    border-radius: 18px;
    background: #fff;
    overflow: hidden;
}

.re-advanced-filters summary {
    padding: 12px 16px;
    color: var(--re-brand-dark);
    font-weight: 850;
    cursor: pointer;
}

.re-advanced-filters summary::after {
    content: '+';
    float: right;
    font-weight: 900;
}

.re-advanced-filters[open] summary::after {
    content: '–';
}

.re-advanced-filters .re-filter-grid,
.re-advanced-filters .re-authenticated-filter-grid {
    padding: 0 14px 14px;
}

.re-map-app .re-filter-buttons button:first-child {
    border-color: var(--re-brand);
    background: linear-gradient(135deg, var(--estate-primary), var(--estate-primary-dark));
    box-shadow: 0 12px 24px color-mix(in srgb, var(--estate-primary) 22%, transparent);
}

.re-map-app .re-filter-buttons button:last-child {
    color: var(--re-text);
    background: #fff;
}

.re-results-toolbar {
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 16px 16px 12px;
    background: #fff;
}

.re-results-count-block {
    display: inline-flex;
    align-items: baseline;
    gap: 8px;
    min-width: 0;
}

.re-results-tools {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.re-sort-select-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.re-sort-select-label span {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.re-sort-select-label select,
.re-list-view-toggle {
    min-height: 38px;
    border: 1px solid var(--re-border);
    border-radius: 999px;
    color: var(--re-text);
    background: #fff;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.06);
    font: inherit;
    font-size: 13px;
    font-weight: 750;
}

.re-sort-select-label select {
    max-width: 150px;
    padding: 0 28px 0 12px;
}

.re-list-view-toggle {
    width: 38px;
    padding: 0;
    cursor: default;
}

.re-card-list {
    gap: 12px;
    padding: 12px 14px 96px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
}

.re-card {
    position: relative;
    display: grid;
    grid-template-columns: 126px minmax(0, 1fr);
    min-height: 118px;
    border-radius: 20px;
    background: #fff;
    box-shadow: var(--re-soft-shadow);
}

.re-card img {
    width: 100%;
    height: 100%;
    min-height: 118px;
    border-right: 0;
}

.re-card-media {
    position: relative;
    min-width: 0;
    overflow: hidden;
    border-radius: 20px 0 0 20px;
    background: #e5e7eb;
}

.re-card-media img {
    display: block;
    object-fit: cover;
}

.re-card-photo-count {
    position: absolute;
    left: 9px;
    bottom: 8px;
    display: inline-flex;
    align-items: center;
    min-height: 20px;
    padding: 2px 7px;
    border-radius: 999px;
    color: #fff;
    background: rgba(15, 23, 42, 0.78);
    font-size: 11px;
    font-weight: 800;
}

.re-card-photo-count:empty {
    display: none;
}

.re-card-body {
    position: relative;
    padding: 10px 12px 11px;
}

.re-card-topline,
.re-card-bottomline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.re-card-type-badge {
    display: inline-flex;
    align-items: center;
    max-width: 140px;
    min-height: 21px;
    padding: 2px 7px;
    border-radius: 999px;
    color: #1f2933;
    background: #f4d58a;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .03em;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.re-card-type-house { background: #bbf7d0; color: #14532d; }
.re-card-type-apartment { background: #dbeafe; color: #1e3a8a; }
.re-card-type-commercial { background: #fed7aa; color: #7c2d12; }
.re-card-type-land { background: #dcfce7; color: #166534; }

.re-card-heart {
    border: 0;
    background: transparent;
    color: #475569;
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
}

.re-card-title {
    margin: 5px 0 2px;
    font-size: 14px;
    line-height: 1.25;
    font-weight: 850;
    -webkit-line-clamp: 2;
}

.re-card-location {
    margin: 0 0 7px;
    color: #475569;
    font-size: 12px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.re-card-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px 8px;
    margin: 6px 0 8px;
}

.re-card-facts span {
    display: grid;
    grid-template-columns: 1fr;
    min-width: 0;
    color: #334155;
    font-size: 12px;
    line-height: 1.1;
}

.re-card-facts strong {
    font-size: 12px;
    font-weight: 850;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.re-card-facts small {
    margin-top: 2px;
    color: var(--re-muted);
    font-size: 10px;
}

.re-card-price {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 94px;
    margin: 0;
    padding: 7px 10px;
    border-radius: 14px;
    color: #fff;
    background: linear-gradient(135deg, var(--estate-primary), var(--estate-primary-dark));
    box-shadow: 0 10px 20px color-mix(in srgb, var(--estate-primary) 22%, transparent);
    font-size: 13px;
    font-weight: 900;
    white-space: nowrap;
}

.re-card:nth-of-type(4n+2) .re-card-price,
.re-card.is-active .re-card-price {
    background: linear-gradient(135deg, #f97316, #c2410c);
    box-shadow: 0 10px 20px rgba(249, 115, 22, 0.22);
}

.re-card-updated {
    color: var(--re-muted);
    font-size: 11px;
    font-weight: 700;
}

.re-card-actions {
    display: none;
}

.re-card-detail-link {
    display: none;
}

.re-card-pagination {
    position: sticky;
    bottom: 0;
    z-index: 2;
    margin: 4px -14px -96px;
    padding: 10px 16px;
    border-top: 1px solid var(--re-border);
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(12px);
}

.re-card-pagination button {
    width: 36px;
    height: 36px;
    padding: 0;
    border-radius: 999px;
    font-size: 0;
}

.re-card-pagination button:first-child::before { content: '‹'; font-size: 22px; }
.re-card-pagination button:last-child::before { content: '›'; font-size: 22px; }

.re-map-category-chips,
.re-map-legend {
    position: absolute;
    z-index: 4;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    border: 1px solid rgba(15, 23, 42, 0.10);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 16px 36px rgba(15, 23, 42, 0.16);
    backdrop-filter: blur(12px);
}

.re-map-category-chips {
    left: 28px;
    bottom: 26px;
    padding: 11px 18px;
}

.re-map-category-chips > span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: #1f2933;
    font-size: 14px;
    font-weight: 750;
    white-space: nowrap;
}

/* Scope type colors to direct legend items. Using a descendant span selector
 * also matches the nested icon span, where every icon is the first child. */
.re-map-category-chips > span:nth-child(1),
.re-map-category-chips .re-property-type-icon-house {
    color: var(--re-property-house);
}

.re-map-category-chips > span:nth-child(2),
.re-map-category-chips .re-property-type-icon-apartment {
    color: var(--re-property-apartment);
}

.re-map-category-chips > span:nth-child(3),
.re-map-category-chips .re-property-type-icon-commercial {
    color: var(--re-property-commercial);
}

.re-map-category-chips > span:nth-child(4),
.re-map-category-chips .re-property-type-icon-land {
    color: var(--re-property-land);
}

.re-map-legend {
    right: 26px;
    bottom: 26px;
    flex-direction: column;
    align-items: flex-start;
    gap: 7px;
    border-radius: 22px;
    padding: 14px 17px;
    min-width: 172px;
}

.re-map-legend strong {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #111827;
    font-size: 16px;
    font-weight: 900;
}

.re-map-legend span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #334155;
    font-size: 13px;
}

.re-map-legend em {
    color: #0f172a;
    font-style: normal;
    font-weight: 850;
}

.re-legend-dot {
    width: 11px;
    height: 11px;
    border-radius: 999px;
    display: inline-block;
}

.re-legend-dot-available { background: var(--re-status-available); }
.re-legend-dot-new { background: #f97316; }
.re-legend-dot-reduced { background: #2563eb; }

@media (max-width: 1180px) {
    .re-map-content-embed .re-map-layout {
        grid-template-columns: minmax(350px, 35vw) 1fr;
    }
    .re-card {
        grid-template-columns: 104px minmax(0, 1fr);
    }
}

@media (max-width: 900px) {
    .re-map-content-embed .re-map-layout {
        grid-template-columns: 1fr;
    }
    .re-results-toolbar {
        flex-wrap: wrap;
    }
    .re-map-category-chips,
    .re-map-legend {
        display: none;
    }
    .re-card-list {
        padding-bottom: 80px;
    }
}

@media (max-width: 520px) {
    .re-card {
        grid-template-columns: 112px minmax(0, 1fr);
    }
    .re-card-facts {
        grid-template-columns: 1fr 1fr;
    }
    .re-card-price {
        min-width: 82px;
        font-size: 12px;
    }
}

.re-map-list-cta {
    position: sticky;
    bottom: 10px;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    margin: 2px 0 0;
    border: 1px solid color-mix(in srgb, var(--estate-primary) 35%, transparent);
    border-radius: 999px;
    color: #fff !important;
    background: linear-gradient(135deg, var(--estate-primary), var(--estate-primary-dark));
    box-shadow: 0 14px 30px color-mix(in srgb, var(--estate-primary) 24%, transparent);
    font-weight: 900;
    text-decoration: none;
}

.re-map-list-cta::after {
    content: ' →';
    margin-left: 8px;
}

/* Hotfix 1.3.91: premium public map/list UX for desktop while preserving mobile card quality. */
.re-map-content-embed {
    --re-sidebar-desktop: clamp(440px, 32vw, 560px);
    --re-card-image-desktop: clamp(118px, 8vw, 150px);
    --re-soft-shadow: 0 10px 28px rgba(15, 23, 42, 0.10);
}

.re-map-content-embed .re-map-layout {
    grid-template-columns: var(--re-sidebar-desktop) minmax(0, 1fr);
    min-height: calc(100vh - 82px);
}

.re-map-content-embed .re-map-panel {
    height: calc(100vh - 82px);
    top: 82px;
    border-right: 1px solid rgba(15, 23, 42, 0.10);
    box-shadow: 16px 0 44px rgba(15, 23, 42, 0.08);
}

.re-map-content-embed .re-map-stage {
    height: calc(100vh - 82px);
    top: 82px;
}

.re-results-summary-card {
    display: grid;
    gap: 12px;
    padding: 16px 18px 13px;
    background: linear-gradient(180deg, #fff 0%, #fbfdfc 100%);
}

.re-results-headline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.re-results-count-block strong {
    font-size: clamp(24px, 2.1vw, 32px);
    line-height: 1;
    letter-spacing: -0.03em;
}

.re-results-count-block span {
    font-size: 15px;
}

.re-results-type-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    padding: 10px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.05);
}

.re-results-type-chip {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 2px 7px;
    min-width: 0;
    padding: 6px 7px;
    border-right: 1px solid rgba(15, 23, 42, 0.08);
}

.re-results-type-chip:last-child {
    border-right: 0;
}

.re-results-type-chip > .re-property-type-icon {
    grid-row: 1 / span 2;
    width: 22px;
    height: 22px;
}

.re-results-type-chip strong {
    color: #0f172a;
    font-size: 14px;
    font-weight: 900;
    line-height: 1;
}

.re-results-type-chip small {
    color: var(--re-muted);
    font-size: 10px;
    font-weight: 750;
    line-height: 1.05;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.re-property-type-icon {
    display: inline-block;
    flex: 0 0 auto;
    width: 1em;
    height: 1em;
    background-color: currentColor;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
}

.re-property-type-icon-house {
    -webkit-mask-image: url('/map-assets/img/property-types/house.svg?v=1.5.0.93');
    mask-image: url('/map-assets/img/property-types/house.svg?v=1.5.0.93');
}

.re-property-type-icon-apartment {
    -webkit-mask-image: url('/map-assets/img/property-types/building-2.svg?v=1.5.0.93');
    mask-image: url('/map-assets/img/property-types/building-2.svg?v=1.5.0.93');
}

.re-property-type-icon-commercial {
    -webkit-mask-image: url('/map-assets/img/property-types/store.svg?v=1.5.0.93');
    mask-image: url('/map-assets/img/property-types/store.svg?v=1.5.0.93');
}

.re-property-type-icon-land {
    -webkit-mask-image: url('/map-assets/img/property-types/land-plot.svg?v=1.5.0.93');
    mask-image: url('/map-assets/img/property-types/land-plot.svg?v=1.5.0.93');
}

.re-property-type-icon-map {
    -webkit-mask-image: url('/map-assets/img/property-types/map-pinned.svg?v=1.5.0.93');
    mask-image: url('/map-assets/img/property-types/map-pinned.svg?v=1.5.0.93');
}

.re-results-type-house .re-property-type-icon { color: var(--re-property-house); }
.re-results-type-apartment .re-property-type-icon { color: var(--re-property-apartment); }
.re-results-type-commercial .re-property-type-icon { color: var(--re-property-commercial); }
.re-results-type-land .re-property-type-icon { color: var(--re-property-land); }

.re-map-category-chips .re-property-type-icon {
    width: 15px;
    height: 15px;
}

.re-map-legend strong .re-property-type-icon {
    width: 18px;
    height: 18px;
    color: var(--estate-primary);
}

.re-map-content-embed .re-card-list {
    gap: 13px;
    padding: 14px 18px 26px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
}

.re-map-content-embed .re-card {
    grid-template-columns: var(--re-card-image-desktop) minmax(0, 1fr);
    min-height: 132px;
    border-radius: 22px;
    border-color: rgba(15, 23, 42, 0.10);
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
}

.re-map-content-embed .re-card:hover,
.re-map-content-embed .re-card.is-active {
    transform: translateY(-2px) translateX(2px);
    box-shadow: 0 18px 42px rgba(15, 23, 42, 0.14);
}

.re-map-content-embed .re-card img {
    min-height: 132px;
}

.re-map-content-embed .re-card-media {
    border-radius: 22px 0 0 22px;
}

.re-map-content-embed .re-card-body {
    display: grid;
    grid-template-rows: auto auto auto 1fr;
    padding: 12px 14px 12px;
}

.re-map-content-embed .re-card-title {
    margin-top: 5px;
    font-size: 15px;
    line-height: 1.22;
}

.re-map-content-embed .re-card-location {
    margin-bottom: 7px;
    font-size: 12px;
}

.re-map-content-embed .re-card-facts {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 7px 10px;
    margin: 7px 0 10px;
}

.re-map-content-embed .re-card-facts span {
    padding-left: 8px;
    border-left: 2px solid color-mix(in srgb, var(--estate-primary) 16%, transparent);
}

.re-map-content-embed .re-card-facts strong {
    font-size: 13px;
}

.re-map-content-embed .re-card-bottomline {
    align-self: end;
}

.re-map-content-embed .re-card-price {
    min-width: 112px;
    padding: 8px 12px;
    border-radius: 16px;
    font-size: 13px;
}

.re-map-content-embed .re-card-updated {
    font-size: 11px;
}

.re-map-content-embed .re-map-list-cta {
    position: relative;
    bottom: auto;
    width: 100%;
    min-height: 44px;
    margin-top: 4px;
    flex-shrink: 0;
}

.re-map-category-chips {
    left: 26px;
    bottom: 24px;
    gap: 10px;
    padding: 10px 16px;
    max-width: calc(100% - 310px);
}

.re-map-object-counter {
    right: 24px;
    bottom: 24px;
    min-width: 152px;
    min-height: 56px;
    align-items: center;
    justify-content: center;
    border-radius: 20px;
    padding: 12px 16px;
}

.re-map-object-counter strong {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    font-size: 16px;
}

.re-map-object-counter strong i {
    display: inline-flex;
    width: 24px;
    height: 24px;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    color: #fff;
    background: var(--re-brand);
    font-style: normal;
    font-size: 13px;
}

.re-map-object-counter > span {
    display: none;
}

.re-map-app .estate-map-ad-slot {
    z-index: 5;
}

@media (min-width: 1500px) {
    .re-map-content-embed {
        --re-sidebar-desktop: 560px;
        --re-card-image-desktop: 152px;
    }
    .re-map-content-embed .re-card {
        min-height: 146px;
    }
    .re-map-content-embed .re-card img {
        min-height: 146px;
    }
    .re-map-content-embed .re-card-title {
        font-size: 16px;
    }
}

@media (max-width: 1180px) {
    .re-map-content-embed {
        --re-sidebar-desktop: minmax(380px, 38vw);
        --re-card-image-desktop: 118px;
    }
    .re-results-type-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .re-results-type-chip:nth-child(2) {
        border-right: 0;
    }
    .re-map-content-embed .re-card-facts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .re-map-content-embed .re-map-panel,
    .re-map-content-embed .re-map-stage {
        top: auto;
        height: auto;
    }
    .re-map-content-embed .re-card-list {
        padding: 14px 18px 24px;
    }
    .re-results-summary-card {
        margin: 0 12px 8px;
        border: 1px solid var(--re-border);
        border-radius: 24px;
        box-shadow: 0 12px 32px rgba(15, 23, 42, 0.08);
    }
    .re-map-content-embed .re-map-list-cta {
        position: sticky;
        bottom: 10px;
    }
}

@media (max-width: 520px) {
    .re-results-headline {
        align-items: flex-start;
        flex-direction: column;
    }
    .re-results-tools {
        width: 100%;
        justify-content: space-between;
    }
    .re-results-type-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .re-map-content-embed .re-card {
        grid-template-columns: 128px minmax(0, 1fr);
        min-height: 166px;
    }
    .re-map-content-embed .re-card img {
        min-height: 166px;
    }
    .re-map-content-embed .re-card-body {
        padding: 11px 12px;
    }
    .re-map-content-embed .re-card-facts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }
    .re-map-content-embed .re-card-price {
        min-width: 106px;
    }
}
/* --------------------------------------------------------------------------
   Hotfix 1.3.92: MapLibre cluster counts and desktop card refinement
   -------------------------------------------------------------------------- */
.re-map-cluster-count-marker {
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 3px solid #ffffff;
    border-radius: 999px;
    color: #ffffff;
    background: var(--estate-primary);
    box-shadow: 0 14px 30px rgba(15, 38, 32, 0.30);
    cursor: pointer;
    font: inherit;
    font-size: 15px;
    font-weight: 900;
    line-height: 1;
    padding: 0;
}

.re-map-cluster-count-marker[data-cluster-size="medium"] {
    width: 50px;
    height: 50px;
    font-size: 16px;
}

.re-map-cluster-count-marker[data-cluster-size="large"] {
    width: 64px;
    height: 64px;
    background: #ea6b2f;
    box-shadow: 0 16px 34px rgba(234, 107, 47, 0.32);
    font-size: 18px;
}

.re-map-cluster-count-marker:hover,
.re-map-cluster-count-marker:focus-visible {
    transform: scale(1.04);
    outline: 0;
    box-shadow: 0 0 0 7px color-mix(in srgb, var(--estate-primary) 18%, transparent), 0 16px 34px rgba(15, 38, 32, 0.32);
}

.re-map-content-embed .re-card-heart {
    width: auto;
    min-width: 34px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 999px;
    padding: 0 8px;
    color: #334155;
    background: rgba(255, 255, 255, 0.92);
    font-size: 20px;
    font-weight: 800;
    box-shadow: 0 6px 16px rgba(15, 23, 42, 0.06);
}

.re-map-content-embed .re-card-heart.is-active {
    color: #b91c1c;
    border-color: rgba(185, 28, 28, 0.18);
    background: #fff5f5;
}

@media (min-width: 901px) {
    .re-map-content-embed {
        --re-card-image-desktop: clamp(132px, 8.5vw, 158px);
    }

    .re-map-content-embed .re-card {
        min-height: 158px;
        align-items: stretch;
    }

    .re-map-content-embed .re-card img {
        min-height: 158px;
    }

    .re-map-content-embed .re-card-body {
        grid-template-rows: auto auto auto minmax(36px, auto);
        padding: 13px 14px 13px;
    }

    .re-map-content-embed .re-card-title {
        margin-top: 6px;
        font-size: 15px;
        line-height: 1.24;
    }

    .re-map-content-embed .re-card-facts {
        margin: 9px 0 10px;
    }

    .re-map-content-embed .re-card-price {
        min-width: 118px;
        min-height: 36px;
        padding: 8px 13px;
        font-size: 13px;
    }

    .re-map-content-embed .re-card-updated {
        display: inline-flex;
        align-items: center;
        min-height: 24px;
        border-radius: 999px;
        padding: 2px 0;
        color: var(--estate-primary);
        font-size: 11px;
        font-weight: 850;
        white-space: nowrap;
    }
}

@media (min-width: 1181px) and (max-width: 1499px) {
    .re-map-content-embed .re-card-facts {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (min-width: 901px) and (max-width: 1180px) {
    .re-map-content-embed {
        --re-card-image-desktop: 130px;
    }

    .re-map-content-embed .re-card {
        min-height: 168px;
    }

    .re-map-content-embed .re-card img {
        min-height: 168px;
    }

    .re-map-content-embed .re-card-price {
        min-width: 108px;
        font-size: 12px;
    }
}

/* --------------------------------------------------------------------------
   Hotfix 1.3.94: desktop property card clipping fix
   --------------------------------------------------------------------------
   The 1.3.92 desktop card refinement made the sidebar cards visually richer,
   but on medium/large desktop widths some cards could become too low for their
   image/facts/footer content. The price pill and listing age could be clipped
   at the bottom. These overrides keep the mobile card behavior unchanged and
   make desktop cards height-adaptive with a stable bottomline.
*/
@media (min-width: 901px) {
    .re-map-content-embed {
        --re-card-image-desktop: clamp(126px, 7.6vw, 148px);
    }

    .re-map-content-embed .re-card {
        grid-template-columns: var(--re-card-image-desktop) minmax(0, 1fr);
        min-height: 176px;
        height: auto;
        overflow: visible;
        align-items: stretch;
    }

    .re-map-content-embed .re-card-media {
        min-height: 176px;
        overflow: hidden;
    }

    .re-map-content-embed .re-card img {
        width: 100%;
        height: 100%;
        min-height: 176px;
        object-fit: cover;
    }

    .re-map-content-embed .re-card-body {
        min-height: 176px;
        display: flex;
        flex-direction: column;
        overflow: visible;
        padding: 13px 14px 14px;
    }

    .re-map-content-embed .re-card-topline {
        flex: 0 0 auto;
        min-height: 28px;
    }

    .re-map-content-embed .re-card-title {
        flex: 0 0 auto;
        margin: 6px 0 3px;
        line-height: 1.24;
        overflow: hidden;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
    }

    .re-map-content-embed .re-card-location {
        flex: 0 0 auto;
        margin: 0 0 8px;
    }

    .re-map-content-embed .re-card-facts {
        flex: 0 0 auto;
        display: grid;
        grid-template-columns: repeat(4, minmax(58px, 1fr));
        gap: 8px 10px;
        margin: 8px 0 12px;
        overflow: visible;
    }

    .re-map-content-embed .re-card-facts span {
        min-width: 0;
        overflow: visible;
    }

    .re-map-content-embed .re-card-facts strong {
        max-width: 100%;
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
        line-height: 1.12;
    }

    .re-map-content-embed .re-card-facts small {
        line-height: 1.05;
    }

    .re-map-content-embed .re-card-bottomline {
        flex: 0 0 auto;
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 10px;
        min-height: 42px;
        margin-top: auto;
        overflow: visible;
    }

    .re-map-content-embed .re-card-updated {
        flex: 1 1 auto;
        min-width: 0;
        display: inline-flex;
        align-items: center;
        min-height: 30px;
        color: var(--estate-primary);
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .re-map-content-embed .re-card-price {
        position: static;
        flex: 0 0 auto;
        min-width: 116px;
        max-width: 156px;
        min-height: 38px;
        padding: 8px 13px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        line-height: 1.1;
    }
}

@media (min-width: 1500px) {
    .re-map-content-embed {
        --re-card-image-desktop: clamp(136px, 7.2vw, 156px);
    }

    .re-map-content-embed .re-card,
    .re-map-content-embed .re-card-media,
    .re-map-content-embed .re-card img,
    .re-map-content-embed .re-card-body {
        min-height: 172px;
    }
}

@media (min-width: 901px) and (max-width: 1180px) {
    .re-map-content-embed {
        --re-card-image-desktop: 124px;
    }

    .re-map-content-embed .re-card,
    .re-map-content-embed .re-card-media,
    .re-map-content-embed .re-card img,
    .re-map-content-embed .re-card-body {
        min-height: 186px;
    }

    .re-map-content-embed .re-card-facts {
        grid-template-columns: repeat(2, minmax(74px, 1fr));
    }

    .re-map-content-embed .re-card-price {
        min-width: 106px;
        max-width: 136px;
        font-size: 12px;
    }
}


/* --------------------------------------------------------------------------
   Hotfix 1.3.95: desktop map app shell and card flow fix
   --------------------------------------------------------------------------
   Browser measurements showed that desktop .re-card elements had a smaller
   clientHeight than scrollHeight and that the price pill bottom was outside
   the card bounds. This fixes the real layout cause: desktop cards need a
   stable intrinsic height and the price/age row must stay in normal flow.
   Mobile rules remain untouched.
*/
@media (min-width: 901px) {
    body.bodywebpage-map {
        overflow: hidden;
    }

    body.bodywebpage-map main {
        height: calc(100vh - 82px);
        min-height: 640px;
        overflow: hidden;
    }

    body.bodywebpage-map .page,
    body.bodywebpage-map .estate-page,
    body.bodywebpage-map .re-map-content-embed,
    body.bodywebpage-map .re-map-layout {
        min-height: 0;
    }

    body.bodywebpage-map .re-map-content-embed {
        height: 100%;
        overflow: hidden;
        --re-sidebar-desktop: clamp(480px, 32vw, 580px);
        --re-card-image-desktop: clamp(136px, 7.5vw, 156px);
    }

    body.bodywebpage-map .re-map-content-embed .re-map-layout {
        height: 100%;
        min-height: 0;
        overflow: hidden;
        grid-template-columns: var(--re-sidebar-desktop) minmax(0, 1fr);
    }

    body.bodywebpage-map .re-map-content-embed .re-map-panel {
        height: 100%;
        min-height: 0;
        overflow: hidden;
    }

    body.bodywebpage-map .re-map-content-embed .re-card-list {
        min-height: 0;
        overflow-y: auto;
        overflow-x: hidden;
        padding: 16px 18px 30px;
        align-content: start;
    }

    body.bodywebpage-map .re-map-content-embed .re-map-stage,
    body.bodywebpage-map .re-map-content-embed #re-map {
        height: 100%;
        min-height: 0;
    }

    body.bodywebpage-map footer,
    body.bodywebpage-map .estate-footer,
    body.bodywebpage-map .footerwebsite,
    body.bodywebpage-map .re-website-footer {
        display: none !important;
    }

    body.bodywebpage-map .re-map-content-embed .re-card {
        display: grid;
        grid-template-columns: var(--re-card-image-desktop) minmax(0, 1fr);
        min-height: 210px !important;
        height: auto !important;
        max-height: none !important;
        align-items: stretch;
        overflow: visible !important;
        border-radius: 22px;
        contain: none;
    }

    body.bodywebpage-map .re-map-content-embed .re-card-media {
        min-height: 210px !important;
        height: auto !important;
        overflow: hidden;
        border-radius: 22px 0 0 22px;
    }

    body.bodywebpage-map .re-map-content-embed .re-card-media img,
    body.bodywebpage-map .re-map-content-embed .re-card > img {
        width: 100%;
        height: 100% !important;
        min-height: 210px !important;
        max-height: none !important;
        object-fit: cover;
    }

    body.bodywebpage-map .re-map-content-embed .re-card-body {
        min-width: 0;
        min-height: 210px !important;
        height: auto !important;
        max-height: none !important;
        display: flex;
        flex-direction: column;
        overflow: visible !important;
        padding: 14px 16px 15px;
    }

    body.bodywebpage-map .re-map-content-embed .re-card-title {
        flex: 0 0 auto;
        margin: 7px 0 4px;
        line-height: 1.24;
        max-height: none;
        overflow: hidden;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
    }

    body.bodywebpage-map .re-map-content-embed .re-card-location {
        flex: 0 0 auto;
        margin: 0 0 10px;
    }

    body.bodywebpage-map .re-map-content-embed .re-card-facts {
        flex: 0 0 auto;
        display: grid;
        grid-template-columns: repeat(4, minmax(68px, 1fr));
        gap: 9px 10px;
        margin: 10px 0 14px;
        overflow: visible !important;
    }

    body.bodywebpage-map .re-map-content-embed .re-card-facts span,
    body.bodywebpage-map .re-map-content-embed .re-card-facts strong,
    body.bodywebpage-map .re-map-content-embed .re-card-facts small {
        min-width: 0;
        max-height: none;
        overflow: visible;
    }

    body.bodywebpage-map .re-map-content-embed .re-card-facts strong {
        white-space: nowrap;
        text-overflow: ellipsis;
        overflow: hidden;
    }

    body.bodywebpage-map .re-map-content-embed .re-card-bottomline {
        flex: 0 0 auto;
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 12px;
        min-height: 44px;
        margin-top: auto;
        overflow: visible !important;
    }

    body.bodywebpage-map .re-map-content-embed .re-card-updated {
        flex: 1 1 auto;
        min-width: 0;
        display: inline-flex;
        align-items: center;
        min-height: 30px;
        color: var(--estate-primary);
        font-weight: 850;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    body.bodywebpage-map .re-map-content-embed .re-card-price {
        position: static !important;
        inset: auto !important;
        transform: none !important;
        flex: 0 0 auto;
        min-width: 122px;
        max-width: 168px;
        min-height: 40px;
        margin: 0;
        padding: 9px 14px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        align-self: flex-end;
    }

    body.bodywebpage-map .re-map-content-embed .re-map-list-cta {
        position: sticky;
        bottom: 12px;
        z-index: 4;
        min-height: 40px;
        margin: 8px 0 0;
    }
}

@media (min-width: 901px) and (max-width: 1180px) {
    body.bodywebpage-map .re-map-content-embed {
        --re-sidebar-desktop: clamp(430px, 42vw, 500px);
        --re-card-image-desktop: 128px;
    }

    body.bodywebpage-map .re-map-content-embed .re-card,
    body.bodywebpage-map .re-map-content-embed .re-card-media,
    body.bodywebpage-map .re-map-content-embed .re-card-media img,
    body.bodywebpage-map .re-map-content-embed .re-card > img,
    body.bodywebpage-map .re-map-content-embed .re-card-body {
        min-height: 218px !important;
    }

    body.bodywebpage-map .re-map-content-embed .re-card-facts {
        grid-template-columns: repeat(2, minmax(78px, 1fr));
    }
}

@media (min-width: 1500px) {
    body.bodywebpage-map .re-map-content-embed {
        --re-sidebar-desktop: clamp(540px, 31vw, 600px);
        --re-card-image-desktop: 156px;
    }

    body.bodywebpage-map .re-map-content-embed .re-card,
    body.bodywebpage-map .re-map-content-embed .re-card-media,
    body.bodywebpage-map .re-map-content-embed .re-card-media img,
    body.bodywebpage-map .re-map-content-embed .re-card > img,
    body.bodywebpage-map .re-map-content-embed .re-card-body {
        min-height: 210px !important;
    }
}

/* --------------------------------------------------------------------------
   Hotfix 1.3.96.1: compact PLUS-only listing freshness row
   -------------------------------------------------------------------------- */
.re-map-content-embed .re-card-freshness {
    display: none;
}

.re-map-content-embed.can-see-freshness .re-card-freshness {
    display: flex;
    align-items: center;
    gap: 0;
    align-self: flex-start;
    margin: 0 0 8px;
    padding: 4px 8px;
    border: 1px solid color-mix(in srgb, var(--estate-primary) 13%, transparent);
    border-radius: 999px;
    color: var(--estate-primary);
    background: rgba(236, 253, 245, 0.86);
    font-size: 10.5px;
    font-weight: 750;
    line-height: 1.2;
    letter-spacing: -0.01em;
}

.re-map-content-embed.can-see-freshness .re-card-freshness.is-stale {
    color: #92400e;
    border-color: rgba(245, 158, 11, 0.35);
    background: rgba(255, 251, 235, 0.96);
}

.re-map-content-embed .re-card-freshness-icon {
    display: none;
}

@media (min-width: 901px) {
    body.bodywebpage-map .re-map-content-embed.can-see-freshness .re-card,
    body.bodywebpage-map .re-map-content-embed.can-see-freshness .re-card-media,
    body.bodywebpage-map .re-map-content-embed.can-see-freshness .re-card-media img,
    body.bodywebpage-map .re-map-content-embed.can-see-freshness .re-card > img,
    body.bodywebpage-map .re-map-content-embed.can-see-freshness .re-card-body {
        min-height: 232px !important;
    }

    body.bodywebpage-map .re-map-content-embed.can-see-freshness .re-card-facts {
        margin-bottom: 9px;
    }

    body.bodywebpage-map .re-map-content-embed.can-see-freshness .re-card-freshness {
        flex: 0 0 auto;
        margin: 0 0 8px;
    }
}

@media (max-width: 760px) {
    .re-map-content-embed.can-see-freshness .re-card-freshness {
        margin: 0 0 7px;
        padding: 4px 7px;
        font-size: 10px;
    }
}

/* --------------------------------------------------------------------------
   Hotfix 1.3.98.1: real mobile / iOS map card layout fix
   --------------------------------------------------------------------------
   Real iPhone/Safari devices can report a wide layout viewport when the
   surrounding Website page does not provide a reliable viewport meta tag early
   enough. In that case the desktop app-shell rules can be applied to a real
   mobile device and cards collapse into very narrow, over-tall columns.

   This guard forces touch/coarse pointer devices and normal small viewports
   back into the intended mobile document flow. Desktop and wide desktop rules
   from 1.3.95 remain unchanged for non-touch desktop browsers.
*/
@media (max-width: 900px), (hover: none) and (pointer: coarse) {
    html,
    body.bodywebpage-map {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        height: auto !important;
        min-height: 0 !important;
    }

    body.bodywebpage-map main,
    body.bodywebpage-map .page,
    body.bodywebpage-map .estate-page,
    body.bodywebpage-map .re-map-content-embed,
    body.bodywebpage-map .re-map-content-embed .re-map-layout {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        overflow: visible !important;
    }

    body.bodywebpage-map .re-map-content-embed .re-map-layout {
        display: block !important;
        grid-template-columns: none !important;
    }

    body.bodywebpage-map .re-map-content-embed .re-map-panel {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        height: auto !important;
        min-height: 0 !important;
        overflow: visible !important;
        box-sizing: border-box !important;
    }

    body.bodywebpage-map .re-map-content-embed .re-map-stage {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        height: min(62vh, 520px) !important;
        min-height: 300px !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
    }

    body.bodywebpage-map .re-map-content-embed #re-map {
        width: 100% !important;
        height: 100% !important;
        min-height: 300px !important;
    }

    body.bodywebpage-map .re-map-content-embed .re-card-list {
        display: flex !important;
        flex-direction: column !important;
        gap: 12px !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        overflow: visible !important;
        padding: 12px 14px 28px !important;
        box-sizing: border-box !important;
    }

    body.bodywebpage-map .re-map-content-embed .re-card {
        display: grid !important;
        grid-template-columns: clamp(112px, 34vw, 146px) minmax(0, 1fr) !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        min-height: 166px !important;
        height: auto !important;
        max-height: none !important;
        overflow: hidden !important;
        align-items: stretch !important;
        contain: none !important;
        box-sizing: border-box !important;
        border-radius: 20px !important;
    }

    body.bodywebpage-map .re-map-content-embed .re-card-media,
    body.bodywebpage-map .re-map-content-embed .re-card > img {
        width: 100% !important;
        min-width: 0 !important;
        height: 100% !important;
        min-height: 166px !important;
        max-height: none !important;
        overflow: hidden !important;
        border-radius: 20px 0 0 20px !important;
        object-fit: cover !important;
    }

    body.bodywebpage-map .re-map-content-embed .re-card-media img,
    body.bodywebpage-map .re-map-content-embed .re-card > img {
        width: 100% !important;
        height: 100% !important;
        min-height: 166px !important;
        object-fit: cover !important;
    }

    body.bodywebpage-map .re-map-content-embed .re-card-body {
        min-width: 0 !important;
        width: auto !important;
        min-height: 166px !important;
        height: auto !important;
        max-height: none !important;
        display: flex !important;
        flex-direction: column !important;
        overflow: visible !important;
        padding: 13px 13px 12px !important;
        box-sizing: border-box !important;
    }

    body.bodywebpage-map .re-map-content-embed .re-card-topline {
        gap: 8px !important;
        min-width: 0 !important;
    }

    body.bodywebpage-map .re-map-content-embed .re-card-title {
        min-width: 0 !important;
        max-width: 100% !important;
        margin: 5px 0 4px !important;
        font-size: clamp(13px, 3.6vw, 15px) !important;
        line-height: 1.22 !important;
        overflow: hidden !important;
        display: -webkit-box !important;
        -webkit-line-clamp: 2 !important;
        -webkit-box-orient: vertical !important;
    }

    body.bodywebpage-map .re-map-content-embed .re-card-location {
        margin-bottom: 8px !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    body.bodywebpage-map .re-map-content-embed .re-card-facts {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 7px 9px !important;
        margin: 7px 0 9px !important;
        min-width: 0 !important;
        overflow: visible !important;
    }

    body.bodywebpage-map .re-map-content-embed .re-card-facts span {
        min-width: 0 !important;
        overflow: hidden !important;
    }

    body.bodywebpage-map .re-map-content-embed .re-card-facts strong {
        display: block !important;
        min-width: 0 !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        font-size: clamp(11px, 3.3vw, 13px) !important;
    }

    body.bodywebpage-map .re-map-content-embed .re-card-facts small {
        display: block !important;
        min-width: 0 !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    body.bodywebpage-map .re-map-content-embed .re-card-bottomline {
        display: flex !important;
        align-items: flex-end !important;
        justify-content: space-between !important;
        gap: 8px !important;
        min-height: 34px !important;
        margin-top: auto !important;
        overflow: visible !important;
    }

    body.bodywebpage-map .re-map-content-embed .re-card-updated {
        min-width: 0 !important;
        flex: 1 1 auto !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        font-size: 10.5px !important;
    }

    body.bodywebpage-map .re-map-content-embed .re-card-price {
        position: static !important;
        inset: auto !important;
        transform: none !important;
        flex: 0 0 auto !important;
        min-width: 96px !important;
        max-width: 132px !important;
        min-height: 34px !important;
        margin: 0 !important;
        padding: 8px 10px !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        align-self: flex-end !important;
        font-size: clamp(11px, 3.2vw, 13px) !important;
    }

    body.bodywebpage-map .re-map-content-embed .re-map-list-cta {
        position: sticky !important;
        bottom: max(10px, env(safe-area-inset-bottom)) !important;
        width: calc(100% - 28px) !important;
        margin: 10px auto 0 !important;
        z-index: 8 !important;
    }
}

@media (max-width: 380px), (hover: none) and (pointer: coarse) and (max-width: 430px) {
    body.bodywebpage-map .re-map-content-embed .re-card {
        grid-template-columns: 112px minmax(0, 1fr) !important;
        min-height: 176px !important;
    }

    body.bodywebpage-map .re-map-content-embed .re-card-media,
    body.bodywebpage-map .re-map-content-embed .re-card-media img,
    body.bodywebpage-map .re-map-content-embed .re-card > img,
    body.bodywebpage-map .re-map-content-embed .re-card-body {
        min-height: 176px !important;
    }

    body.bodywebpage-map .re-map-content-embed .re-card-facts {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    body.bodywebpage-map .re-map-content-embed .re-card-price {
        max-width: 116px !important;
    }
}

/* --------------------------------------------------------------------------
   Hotfix 1.3.99: mobile map layout parity, variable cards and footer-safe page scroll
   --------------------------------------------------------------------------
   The public /estate/map.php page uses the modern desktop app shell. On real
   iPhone/Safari devices the desktop shell can still leak into the mobile page
   because of dynamic browser chrome and touch viewport quirks. This block is
   intentionally placed at the end of the file and uses the explicit
   .re-map-mobile-flow marker from map_content.php to make mobile behave like a
   normal page again: map first, then filters/results, with stable two-column
   cards. Desktop and wide desktop layouts are not touched.
*/
@media (max-width: 767px), (hover: none) and (pointer: coarse) and (max-width: 820px) {
    html.re-has-mobile-viewport,
    html.re-has-mobile-viewport body.bodywebpage-map,
    body.bodywebpage-map {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        height: auto !important;
        min-height: 0 !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        -webkit-text-size-adjust: 100% !important;
    }

    body.bodywebpage-map main,
    body.bodywebpage-map .page,
    body.bodywebpage-map .websitepage,
    body.bodywebpage-map .estate-page,
    body.bodywebpage-map .re-map-mobile-flow {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow: visible !important;
        box-sizing: border-box !important;
    }

    body.bodywebpage-map .re-map-mobile-flow .re-map-layout {
        display: flex !important;
        flex-direction: column !important;
        grid-template-columns: none !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow: visible !important;
        box-sizing: border-box !important;
    }

    body.bodywebpage-map .re-map-mobile-flow .re-map-stage {
        order: 1 !important;
        position: relative !important;
        top: auto !important;
        left: auto !important;
        right: auto !important;
        bottom: auto !important;
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        height: min(46svh, 420px) !important;
        min-height: 280px !important;
        max-height: 420px !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
    }

    @supports not (height: 46svh) {
        body.bodywebpage-map .re-map-mobile-flow .re-map-stage {
            height: min(46vh, 420px) !important;
        }
    }

    body.bodywebpage-map .re-map-mobile-flow #re-map {
        width: 100% !important;
        height: 100% !important;
        min-height: 280px !important;
    }

    body.bodywebpage-map .re-map-mobile-flow .re-map-panel {
        order: 2 !important;
        position: relative !important;
        top: auto !important;
        left: auto !important;
        right: auto !important;
        bottom: auto !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow: visible !important;
        border-right: 0 !important;
        box-shadow: none !important;
        box-sizing: border-box !important;
    }

    body.bodywebpage-map .re-map-mobile-flow .re-map-filters,
    body.bodywebpage-map .re-map-mobile-flow .re-results-summary-card,
    body.bodywebpage-map .re-map-mobile-flow .re-card-list {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }

    body.bodywebpage-map .re-map-mobile-flow .re-results-toolbar,
    body.bodywebpage-map .re-map-mobile-flow .re-results-headline {
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        gap: 10px !important;
    }

    body.bodywebpage-map .re-map-mobile-flow .re-results-tools {
        margin-left: auto !important;
        flex: 0 0 auto !important;
    }

    body.bodywebpage-map .re-map-mobile-flow .re-results-type-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }

    body.bodywebpage-map .re-map-mobile-flow .re-map-category-chips,
    body.bodywebpage-map .re-map-mobile-flow .re-map-legend {
        display: none !important;
    }

    body.bodywebpage-map .re-map-mobile-flow .re-card-list {
        display: flex !important;
        flex-direction: column !important;
        gap: 12px !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow: visible !important;
        padding: 12px 14px calc(28px + env(safe-area-inset-bottom, 0px)) !important;
        background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%) !important;
    }

    body.bodywebpage-map .re-map-mobile-flow .re-card {
        display: grid !important;
        grid-template-columns: minmax(112px, 34vw) minmax(0, 1fr) !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;

        /* iPhone/Safari: the card must be allowed to grow when a second facts row exists. */
        min-height: 166px !important;
        height: auto !important;
        max-height: none !important;

        overflow: hidden !important;
        align-items: stretch !important;
        contain: none !important;
        box-sizing: border-box !important;
        border-radius: 20px !important;
    }

    body.bodywebpage-map .re-map-mobile-flow .re-card-media {
        grid-column: 1 !important;
        grid-row: 1 !important;
        display: flex !important;
        align-self: stretch !important;
        width: 100% !important;
        min-width: 0 !important;

        /* No fixed/max height here: the image column follows the variable card height. */
        height: auto !important;
        min-height: 166px !important;
        max-height: none !important;

        overflow: hidden !important;
        border-radius: 20px 0 0 20px !important;
        background: #e5e7eb !important;
    }

    body.bodywebpage-map .re-map-mobile-flow .re-card-media img {
        display: block !important;
        flex: 1 1 auto !important;
        width: 100% !important;
        height: 100% !important;
        min-height: 166px !important;
        max-height: none !important;
        object-fit: cover !important;
        object-position: center center !important;
    }

    body.bodywebpage-map .re-map-mobile-flow .re-card-body {
        grid-column: 2 !important;
        grid-row: 1 !important;
        min-width: 0 !important;
        width: auto !important;

        /* Let content decide final height; prevents price clipping on two facts rows. */
        min-height: 166px !important;
        height: auto !important;
        max-height: none !important;

        display: flex !important;
        flex-direction: column !important;
        overflow: visible !important;
        padding: 12px 12px 11px !important;
        box-sizing: border-box !important;
    }

    body.bodywebpage-map .re-map-mobile-flow .re-card-title {
        display: -webkit-box !important;
        -webkit-box-orient: vertical !important;
        -webkit-line-clamp: 2 !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin: 5px 0 4px !important;
        overflow: hidden !important;
        font-size: clamp(13px, 3.5vw, 15px) !important;
        line-height: 1.22 !important;
    }

    body.bodywebpage-map .re-map-mobile-flow .re-card-location {
        margin: 0 0 7px !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    body.bodywebpage-map .re-map-mobile-flow .re-card-facts {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 7px 9px !important;
        margin: 6px 0 8px !important;
        min-width: 0 !important;
        overflow: visible !important;
    }

    body.bodywebpage-map .re-map-mobile-flow .re-card-facts span,
    body.bodywebpage-map .re-map-mobile-flow .re-card-facts strong,
    body.bodywebpage-map .re-map-mobile-flow .re-card-facts small {
        min-width: 0 !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    body.bodywebpage-map .re-map-mobile-flow .re-card-freshness {
        margin: 0 0 7px !important;
        padding: 4px 7px !important;
        max-width: 100% !important;
        overflow: hidden !important;
        white-space: nowrap !important;
        text-overflow: ellipsis !important;
        font-size: 10px !important;
    }

    body.bodywebpage-map .re-map-mobile-flow .re-card-bottomline {
        display: flex !important;
        align-items: flex-end !important;
        justify-content: space-between !important;
        gap: 8px !important;
        min-height: 34px !important;
        margin-top: auto !important;
        overflow: visible !important;
    }

    body.bodywebpage-map .re-map-mobile-flow .re-card-price {
        position: static !important;
        inset: auto !important;
        transform: none !important;
        flex: 0 0 auto !important;
        min-width: 92px !important;
        max-width: min(132px, 40vw) !important;
        min-height: 34px !important;
        margin: 0 !important;
        padding: 8px 10px !important;
        align-self: flex-end !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        font-size: clamp(11px, 3.2vw, 13px) !important;
    }

    body.bodywebpage-map .re-map-mobile-flow .re-card-pagination {
        position: sticky !important;
        bottom: 0 !important;
        margin-left: -14px !important;
        margin-right: -14px !important;
        padding-bottom: max(10px, env(safe-area-inset-bottom, 0px)) !important;
    }

    body.bodywebpage-map .re-map-mobile-flow .re-map-list-cta {
        position: sticky !important;
        bottom: max(10px, env(safe-area-inset-bottom, 0px)) !important;
        width: calc(100% - 28px) !important;
        margin: 10px auto 0 !important;
        z-index: 8 !important;
    }
}

@media (max-width: 380px) {
    body.bodywebpage-map .re-map-mobile-flow .re-card {
        grid-template-columns: 108px minmax(0, 1fr) !important;
        min-height: 166px !important;
        height: auto !important;
        max-height: none !important;
    }

    body.bodywebpage-map .re-map-mobile-flow .re-card-media,
    body.bodywebpage-map .re-map-mobile-flow .re-card-media img,
    body.bodywebpage-map .re-map-mobile-flow .re-card-body {
        min-height: 166px !important;
        max-height: none !important;
    }

    body.bodywebpage-map .re-map-mobile-flow .re-card-price {
        min-width: 86px !important;
        max-width: 118px !important;
        padding-left: 8px !important;
        padding-right: 8px !important;
    }
}

/* --------------------------------------------------------------------------
   Hotfix 1.3.99.1: Website map footer and iPhone scroll contract
   - The public Website page has a real footer below the map component.
   - Avoid trapping the whole page in the map/list viewport.
   - The map remains large, but page scrolling can reach the footer.
   -------------------------------------------------------------------------- */
body.bodywebpage-map .re-map-content-embed {
    min-height: 0 !important;
}

@media (min-width: 901px) {
    body.bodywebpage-map .re-map-content-embed .re-map-layout {
        min-height: 0 !important;
        align-items: stretch !important;
    }

    body.bodywebpage-map .re-map-content-embed .re-map-panel,
    body.bodywebpage-map .re-map-content-embed .re-map-stage {
        height: calc(100vh - 92px) !important;
        min-height: 640px;
        max-height: none;
    }

    body.bodywebpage-map .re-map-content-embed + .estate-footer,
    body.bodywebpage-map .estate-footer {
        position: relative !important;
        z-index: 5 !important;
        clear: both !important;
    }
}

@media (max-width: 760px) {
    body.bodywebpage-map .re-map-mobile-flow .re-card {
        min-height: 166px !important;
        height: auto !important;
        max-height: none !important;
    }

    body.bodywebpage-map .re-map-mobile-flow .re-card-media,
    body.bodywebpage-map .re-map-mobile-flow .re-card-media img,
    body.bodywebpage-map .re-map-mobile-flow .re-card-body {
        min-height: 166px !important;
        height: auto !important;
        max-height: none !important;
    }

    body.bodywebpage-map .re-map-mobile-flow .re-card-price {
        align-self: flex-end !important;
        margin-top: auto !important;
    }
}

/* --------------------------------------------------------------------------
   Hotfix 1.4.0: HTML-valid Website map and footer-reachable scroll contract
   --------------------------------------------------------------------------
   The Website shell owns the header and footer. The map component must therefore
   behave like normal page content: desktop can keep an internal scrollable list
   and a large map, but the document itself must still scroll from header to
   footer in every browser.
   -------------------------------------------------------------------------- */
body.bodywebpage-map {
    overflow-x: hidden !important;
    overflow-y: auto !important;
    height: auto !important;
    min-height: 100% !important;
}

body.bodywebpage-map main {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
}

body.bodywebpage-map .page,
body.bodywebpage-map .estate-page,
body.bodywebpage-map .websitepage,
body.bodywebpage-map .re-map-content-embed {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
}

body.bodywebpage-map footer,
body.bodywebpage-map .estate-footer,
body.bodywebpage-map .footerwebsite,
body.bodywebpage-map .re-website-footer {
    display: block !important;
    position: relative !important;
    z-index: 5 !important;
    clear: both !important;
}

@media (min-width: 901px) {
    body.bodywebpage-map .re-map-content-embed .re-map-layout {
        height: auto !important;
        min-height: calc(100vh - 92px) !important;
        overflow: visible !important;
        align-items: stretch !important;
        grid-template-columns: var(--re-sidebar-desktop, clamp(480px, 32vw, 580px)) minmax(0, 1fr) !important;
    }

    body.bodywebpage-map .re-map-content-embed .re-map-panel,
    body.bodywebpage-map .re-map-content-embed .re-map-stage {
        height: calc(100vh - 92px) !important;
        min-height: 640px !important;
        max-height: none !important;
        align-self: start !important;
    }

    body.bodywebpage-map .re-map-content-embed .re-map-panel {
        overflow: hidden !important;
    }

    body.bodywebpage-map .re-map-content-embed .re-map-stage {
        position: sticky !important;
        top: 0 !important;
        overflow: hidden !important;
    }

    body.bodywebpage-map .re-map-content-embed #re-map {
        height: 100% !important;
        min-height: 0 !important;
    }

    body.bodywebpage-map .re-map-content-embed .re-card-list {
        min-height: 0 !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        -webkit-overflow-scrolling: touch;
    }
}

@media (max-width: 900px) {
    body.bodywebpage-map .re-map-content-embed .re-map-layout,
    body.bodywebpage-map .re-map-content-embed .re-map-panel,
    body.bodywebpage-map .re-map-content-embed .re-map-stage,
    body.bodywebpage-map .re-map-content-embed .re-card-list {
        height: auto !important;
        max-height: none !important;
        overflow: visible !important;
    }
}

/* Hotfix 1.4.8.19 - Top Region panel close action */
.re-top-region-tools {
    position: absolute;
    left: 16px;
    top: 18px;
    z-index: 5;
    width: min(350px, calc(100% - 32px));
    border-radius: 18px;
    padding: 12px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: var(--re-shadow);
    color: var(--re-text);
    backdrop-filter: blur(10px);
}

.re-top-region-tools-header {
    display: flex;
    flex-direction: column;
    gap: 3px;
    margin-bottom: 10px;
}

.re-top-region-title-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.re-top-region-close {
    display: inline-flex;
    width: 28px;
    height: 28px;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 999px;
    background: rgba(226, 232, 240, 0.72);
    color: var(--re-muted);
    font-size: 20px;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
}

.re-top-region-close:hover,
.re-top-region-close:focus-visible {
    background: #e2e8f0;
    color: var(--re-text);
    outline: none;
}

.re-top-region-tools-header strong {
    font-size: 14px;
    font-weight: 850;
}

.re-top-region-tools-header small {
    color: var(--re-muted);
    font-size: 12px;
    line-height: 1.35;
}

.re-top-region-primary-actions,
.re-top-region-actions,
.re-top-region-drawing-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.re-top-region-primary-actions {
    align-items: center;
}

.re-top-region-actions {
    margin-top: 9px;
}

.re-top-region-drawing-actions {
    margin-top: 9px;
}

.re-top-region-primary-actions button,
.re-top-region-actions button,
.re-top-region-drawing-actions button,
.re-top-region-info-toggle {
    border: 0;
    border-radius: 999px;
    padding: 8px 11px;
    background: #f1f5f9;
    color: var(--re-text);
    font-weight: 800;
    font-size: 12px;
    cursor: pointer;
}

.re-top-region-primary-actions button:hover,
.re-top-region-primary-actions button:focus-visible,
.re-top-region-actions button:hover,
.re-top-region-actions button:focus-visible,
.re-top-region-drawing-actions button:hover,
.re-top-region-drawing-actions button:focus-visible,
.re-top-region-info-toggle:hover,
.re-top-region-info-toggle:focus-visible {
    background: #e2e8f0;
    outline: none;
}

.re-top-region-action-primary,
.re-top-region-drawing-actions button[data-top-region-action="save"] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: var(--re-brand) !important;
    color: #fff !important;
}

.re-top-region-action-secondary {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.re-top-region-action-icon {
    display: inline-flex;
    width: 18px;
    height: 18px;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.re-top-region-action-svg {
    display: block;
    width: 18px;
    height: 18px;
}

.re-top-region-actions button[data-top-region-action="draw"] {
    background: #ecfdf5;
    color: var(--re-brand);
}

.re-top-region-actions button[data-top-region-action="delete"] {
    background: #fee2e2;
    color: #991b1b;
}

.re-top-region-actions button[data-top-region-action="save-upgrade"] {
    background: #eef2ff;
    color: #3730a3;
}

.re-top-region-primary-actions button:disabled,
.re-top-region-actions button:disabled,
.re-top-region-drawing-actions button:disabled {
    cursor: not-allowed;
    opacity: 0.55;
}

.re-top-region-advanced-panel {
    margin-top: 10px;
    padding-top: 9px;
    border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.re-top-region-temporary-hint,
.re-top-region-info-panel {
    margin: 8px 0 0;
    color: var(--re-muted);
    font-size: 12px;
    line-height: 1.4;
}

.re-top-region-info-toggle {
    margin-top: 8px;
    padding: 0;
    background: transparent;
    color: var(--re-brand);
}

.re-top-region-info-toggle:hover,
.re-top-region-info-toggle:focus-visible {
    background: transparent;
    text-decoration: underline;
}

.re-top-region-info-panel {
    padding: 9px 10px;
    border-radius: 12px;
    background: rgba(241, 245, 249, 0.9);
}

.re-top-region-info-panel strong {
    display: block;
    margin-bottom: 4px;
    color: var(--re-text);
    font-size: 12px;
}

.re-top-region-info-panel p {
    margin: 0;
}

.re-map-app.is-top-region-drawing #re-map {
    cursor: crosshair;
}

.re-map-app.is-top-region-drawing .maplibregl-canvas {
    cursor: crosshair !important;
}

@media (max-width: 760px) {
    .re-top-region-tools {
        left: 12px;
        top: 12px;
        width: calc(100% - 24px);
        padding: 10px;
    }

    .re-top-region-primary-actions button,
    .re-top-region-actions button,
    .re-top-region-drawing-actions button {
        flex: 1 1 auto;
        justify-content: center;
    }
}

.re-top-region-alert {
    margin-top: 10px;
    padding: 10px;
    border: 1px solid rgba(148, 163, 184, 0.22);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.72);
}

.re-top-region-alert strong {
    display: block;
    margin-bottom: 4px;
    color: var(--re-text);
    font-size: 13px;
}

.re-top-region-alert p {
    margin: 0 0 8px;
    color: var(--re-muted);
    font-size: 12px;
    line-height: 1.4;
}

.re-top-region-alert-frequency {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 9px;
}

.re-top-region-alert-frequency label {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 8px;
    border: 1px solid rgba(148, 163, 184, 0.28);
    border-radius: 999px;
    background: rgba(248, 250, 252, 0.9);
    color: var(--re-text);
    font-size: 12px;
    cursor: pointer;
}

.re-top-region-alert-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.re-top-region-alert-actions button {
    border: 0;
    border-radius: 999px;
    padding: 7px 11px;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}

.re-top-region-alert-actions [data-top-region-alert-action="save"] {
    background: var(--re-brand);
    color: #fff;
}

.re-top-region-alert-actions [data-top-region-alert-action="pause"],
.re-top-region-alert-actions [data-top-region-alert-action="upgrade"] {
    background: rgba(15, 23, 42, 0.07);
    color: var(--re-text);
}

.re-top-region-alert-status {
    margin-top: 8px !important;
    margin-bottom: 0 !important;
    font-size: 12px;
}

.re-map-layer-toggle{background:#fff;padding:7px 9px;display:flex;flex-direction:column;gap:5px;font-size:12px}.re-map-layer-toggle label{white-space:nowrap;cursor:pointer}
.re-project-map-popup{min-width:238px;padding:5px 3px 2px;color:#17352f}.re-project-map-popup-head{display:flex;align-items:flex-start;gap:11px}.re-project-map-popup-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 42px;width:42px;height:42px;border-radius:50%;background:linear-gradient(145deg,#fff 10%,#dff4e8 100%);border:1px solid #b9dec9;color:#14765f}.re-project-map-popup-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.re-project-map-popup strong{display:block;font-size:14px;line-height:1.3;color:#17352f}.re-project-map-popup-company{margin-top:2px;color:#557069;font-size:12px}.re-project-map-popup-facts{display:flex;gap:14px;flex-wrap:wrap;margin:12px 0 8px;padding-top:9px;border-top:1px solid rgba(46,125,96,.16);font-size:12px;color:#46655d}.re-project-map-popup-action{display:flex;align-items:center;justify-content:space-between;margin-top:8px;padding:9px 12px;border-radius:18px;background:linear-gradient(135deg,#f9fffb,#e4f5e9);border:1px solid #c4e3d0;color:#0f6b57;font-weight:700;text-decoration:none}.re-project-map-popup-action:hover{background:#dbf1e3;text-decoration:none}.maplibregl-popup-content:has(.re-project-map-popup){border:1px solid #b8ddc8;border-radius:18px;background:linear-gradient(145deg,#fff 55%,#eaf7ee 100%);box-shadow:0 12px 30px rgba(15,91,71,.18);padding:15px 16px}.maplibregl-popup:has(.re-project-map-popup) .maplibregl-popup-tip{border-top-color:#eaf7ee}

/* Hotfix 1.5.0.15: shared map-area presentation for project/property context. */
.re-map-app .maplibregl-popup.re-area-popup .maplibregl-popup-content{
    border:1px solid color-mix(in srgb, var(--estate-primary) 32%, transparent);
    border-radius:18px;
    background:linear-gradient(145deg,#fff 48%,#eaf7ee 100%);
    box-shadow:0 14px 34px rgba(15,91,71,.18);
    padding:15px 16px;
}
.re-map-app .maplibregl-popup.re-area-popup .maplibregl-popup-tip{border-top-color:#eaf7ee}
.re-map-app .maplibregl-popup.re-area-popup .maplibregl-popup-close-button{
    width:34px!important;height:34px!important;right:8px!important;top:8px!important;
    color:#0f6b57!important;background:rgba(255,255,255,.92)!important;
    border:1px solid color-mix(in srgb, var(--estate-primary) 16%, transparent);box-shadow:0 6px 16px rgba(15,91,71,.12)
}
.re-map-app .re-project-map-popup{min-width:250px}
.re-map-app .re-project-map-popup-icon{
    background:linear-gradient(145deg,#fff 8%,#dff4e8 100%);
    border-color:#9fd0b5;box-shadow:inset 0 0 0 1px rgba(255,255,255,.7)
}


/* Hotfix 1.5.0.18: infrastructure icons and popup aligned with project-map presentation. */
.re-map-app .maplibregl-popup.re-infrastructure-area-popup{
    max-width:min(340px,calc(100vw - 28px))!important;
}
.re-map-app .maplibregl-popup.re-infrastructure-area-popup .maplibregl-popup-content{
    width:min(306px,calc(100vw - 62px));
    box-sizing:border-box;
}
.re-map-app .re-infrastructure-popup{min-width:0;padding:4px 2px 2px;color:#17352f}
.re-map-app .re-infrastructure-popup-head{display:flex;align-items:flex-start;gap:12px;padding-right:28px}
.re-map-app .re-infrastructure-popup-copy{min-width:0;flex:1}
.re-map-app .re-infrastructure-popup strong{display:block;margin-top:1px;font-size:14px;line-height:1.32;color:#17352f;overflow-wrap:anywhere}
.re-map-app .re-infrastructure-popup-category{margin-top:3px;color:#46655d;font-size:12px;font-weight:600}
.re-map-app .re-infrastructure-popup-address{margin-top:4px;color:#5f746e;font-size:12px;line-height:1.4;overflow-wrap:anywhere}
.re-map-app .re-infrastructure-popup-source{margin-top:7px;color:#83918d;font-size:10px;letter-spacing:.02em}
.re-map-app .re-infrastructure-popup-icon{
    display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;
    border-radius:50%;background:linear-gradient(145deg,#fff 8%,#e5f4ef 100%);
    border:1px solid #9fd0b5;color:#14765f;box-shadow:inset 0 0 0 1px rgba(255,255,255,.74)
}
.re-map-app .re-infrastructure-popup-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.re-map-app .re-infrastructure-popup-icon--pharmacy{color:#159447;background:linear-gradient(145deg,#fff 8%,#e7f7ec 100%);border-color:#a7dcb8}
.re-map-app .re-infrastructure-popup-icon--hospital{color:#d92d3a;background:linear-gradient(145deg,#fff 8%,#fdebed 100%);border-color:#efb9bf}
.re-map-app .re-infrastructure-popup-icon--clinic{color:#0f8b83;background:linear-gradient(145deg,#fff 8%,#e4f6f4 100%);border-color:#a8dcd7}
.re-map-app .re-infrastructure-popup-icon--supermarket{color:#2475d9;background:linear-gradient(145deg,#fff 8%,#e7f0fd 100%);border-color:#b3cdf2}
.re-map-app .re-infrastructure-popup-icon--marketplace{color:#c56a16;background:linear-gradient(145deg,#fff 8%,#fff0df 100%);border-color:#edc59c}
.re-map-app .re-infrastructure-popup-icon--school,.re-map-app .re-infrastructure-popup-icon--university{color:#7240b7;background:linear-gradient(145deg,#fff 8%,#f0e9fb 100%);border-color:#ccb9e9}
.re-map-app .re-infrastructure-popup-icon--kindergarten{color:#eb6b19;background:linear-gradient(145deg,#fff 8%,#fff0e5 100%);border-color:#f2c3a4}
@media (max-width:640px){
    .re-map-app .maplibregl-popup.re-infrastructure-area-popup .maplibregl-popup-content{width:min(286px,calc(100vw - 46px));padding:14px}
    .re-map-app .re-infrastructure-popup-head{gap:10px}
    .re-map-app .re-infrastructure-popup-icon{flex-basis:40px;width:40px;height:40px}
}

/* Hotfix 1.5.0.19: opaque desktop list footer overlay and object proposals. */
@media (min-width: 901px) {
    body.bodywebpage-map .re-map-content-embed .re-card-list {
        position: relative;
    }

    body.bodywebpage-map .re-map-content-embed .re-map-list-footer {
        position: sticky;
        bottom: 0;
        z-index: 24;
        display: block;
        box-sizing: border-box;
        width: 100%;
        margin: 0;
        padding: 12px 14px 14px;
        background: #fff;
        border-top: 1px solid color-mix(in srgb, var(--estate-primary) 10%, transparent);
        box-shadow: 0 -12px 24px rgba(15, 23, 42, 0.10);
    }

    body.bodywebpage-map .re-map-content-embed .re-map-list-footer .re-map-list-cta {
        position: static;
        display: flex;
        width: 100%;
        margin: 0;
        box-sizing: border-box;
    }
}

.re-proposal-card {
    margin-top: 14px;
    padding: 10px;
    border: 1px solid color-mix(in srgb, var(--estate-primary) 25%, transparent);
    border-radius: 14px;
    background: #f7fffc;
}

.re-proposal-toggle {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid color-mix(in srgb, var(--estate-primary) 35%, transparent);
    border-radius: 10px;
    color: var(--estate-primary-dark);
    background: #fff;
    font-weight: 800;
    cursor: pointer;
}

.re-proposal-form { margin-top: 12px; }
.re-proposal-form h3 { margin: 0 0 6px; }
.re-proposal-form > p { margin: 0 0 12px; color: #64748b; }
.re-proposal-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.re-proposal-grid label { display: grid; gap: 5px; font-size: 12px; font-weight: 700; }
.re-proposal-grid input,
.re-proposal-grid select { width: 100%; min-width: 0; box-sizing: border-box; padding: 9px 10px; border: 1px solid #d6e1e5; border-radius: 9px; background: #fff; }
.re-proposal-actions { display: flex; gap: 8px; margin-top: 12px; }
.re-proposal-submit,
.re-proposal-cancel { padding: 9px 13px; border-radius: 9px; font-weight: 800; cursor: pointer; }
.re-proposal-submit { border: 1px solid var(--estate-primary); color: #fff; background: var(--estate-primary); }
.re-proposal-cancel { border: 1px solid #d6e1e5; color: #334155; background: #fff; }
@media (max-width: 760px) { .re-proposal-grid { grid-template-columns: 1fr; } }


.re-proposal-status {
    display: grid;
    gap: 3px;
    margin-bottom: 10px;
    padding: 10px 12px;
    border: 1px solid color-mix(in srgb, var(--estate-primary) 30%, transparent);
    border-radius: 10px;
    background: #ecfdf5;
    color: #065f46;
}
.re-proposal-status[hidden] { display: none; }
.re-proposal-status span { font-size: 12px; font-weight: 600; }
.re-proposal-submit:disabled { opacity: 0.65; cursor: wait; }


/* Hotfix 1.5.0.27: optional public transport layer and commerce-value popup. */
.re-map-app .maplibregl-popup.re-public-transport-area-popup{z-index:14}
.re-map-app .maplibregl-popup.re-public-transport-area-popup .maplibregl-popup-content{
    width:min(330px,calc(100vw - 48px));padding:16px;border-radius:18px;
    border:1px solid rgba(37,99,235,.16);box-shadow:0 18px 40px rgba(15,23,42,.18)
}
.re-map-app .re-public-transport-popup{min-width:0;color:#17352f}
.re-map-app .re-public-transport-popup-head{display:flex;align-items:flex-start;gap:12px;padding-right:26px}
.re-map-app .re-public-transport-popup-copy{min-width:0;flex:1}
.re-map-app .re-public-transport-popup strong{display:block;font-size:14px;line-height:1.35;color:#152d29;overflow-wrap:anywhere}
.re-map-app .re-public-transport-popup-category{margin-top:3px;color:#42645e;font-size:12px;font-weight:650}
.re-map-app .re-public-transport-popup-routes{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:8px}
.re-map-app .re-public-transport-popup-routes span{color:#657a75;font-size:11px}
.re-map-app .re-public-transport-popup-routes b{display:inline-flex;padding:3px 8px;border-radius:999px;background:#e8f0ff;color:#1d4ed8;font-size:11px;line-height:1.2}
.re-map-app .re-public-transport-popup-address{margin-top:6px;color:#60736f;font-size:12px;line-height:1.4;overflow-wrap:anywhere}
.re-map-app .re-public-transport-popup-source{margin-top:7px;color:#899792;font-size:10px;letter-spacing:.02em}
.re-map-app .re-public-transport-popup-icon{
    display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;
    border:1px solid #b9cdfa;border-radius:50%;background:linear-gradient(145deg,#fff 8%,#e8f0ff 100%);color:#2563eb
}
.re-map-app .re-public-transport-popup-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.re-map-app .re-public-transport-popup-icon--taxi_rank{color:#d97706;background:linear-gradient(145deg,#fff 8%,#fff4d8 100%);border-color:#f0cf8a}
.re-map-app .re-public-transport-popup-icon--railway_station,.re-map-app .re-public-transport-popup-icon--railway_halt,.re-map-app .re-public-transport-popup-icon--tram_stop{color:#6d3fc0;background:linear-gradient(145deg,#fff 8%,#f0e9fb 100%);border-color:#cdbbea}
.re-map-app .re-public-transport-popup-icon--airport,.re-map-app .re-public-transport-popup-icon--airport_terminal{color:#0277ad;background:linear-gradient(145deg,#fff 8%,#e3f4fb 100%);border-color:#a8d8ea}
.re-map-app .re-public-transport-popup-value{display:flex;align-items:flex-start;gap:9px;margin-top:13px;padding:11px 12px;border-radius:12px;background:#f1f5ff;color:#29425f}
.re-map-app .re-public-transport-popup-value>span{display:inline-flex;align-items:center;justify-content:center;flex:0 0 24px;width:24px;height:24px;border-radius:50%;background:#dbe8ff;color:#2563eb;font-weight:800}
.re-map-app .re-public-transport-popup-value p{margin:0;font-size:11.5px;line-height:1.45}
@media (max-width:640px){
    .re-map-app .maplibregl-popup.re-public-transport-area-popup .maplibregl-popup-content{padding:14px}
    .re-map-app .re-public-transport-popup-head{gap:10px}
    .re-map-app .re-public-transport-popup-icon{flex-basis:40px;width:40px;height:40px}
}


/* Hotfix 1.5.0.28: compact authenticated checkbox fields and default-search row. */
.re-authenticated-filter-grid .re-checkbox-field {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 46px;
    margin: 0;
    padding: 0 14px;
    border: 1px solid var(--re-border);
    border-radius: 16px;
    background: #fff;
    color: var(--re-text);
    cursor: pointer;
    box-sizing: border-box;
}

.re-authenticated-filter-grid .re-checkbox-field input[type="checkbox"],
.re-save-default-search input[type="checkbox"] {
    width: 18px;
    height: 18px;
    min-width: 18px;
    margin: 0;
    padding: 0;
    accent-color: var(--re-brand);
}

.re-authenticated-filter-grid .re-checkbox-field span {
    font-weight: 700;
}

.re-save-default-search {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 12px 0 0;
    padding: 12px 14px;
    border: 1px solid var(--re-border);
    border-radius: 16px;
    background: rgba(248, 250, 252, 0.85);
    cursor: pointer;
}

.re-save-default-search[hidden] {
    display: none !important;
}

.re-save-default-search span {
    display: grid;
    gap: 3px;
}

.re-save-default-search strong {
    color: var(--re-text);
    font-size: 13px;
}

.re-save-default-search small {
    color: var(--re-muted);
    font-size: 12px;
    line-height: 1.35;
}


/* Hotfix 1.6.0.4: OOD mobile map workspace foundation. */
:root {
    --estate-map-touch-target: 44px;
    --estate-z-map-controls: 300;
    --estate-z-map-panel: 500;
    --estate-z-map-fullscreen: 700;
}

.re-map-mobile-toolbar,
.re-map-workspace-close {
    display: none;
}

html.estate-map-workspace-lock,
body.estate-map-workspace-lock {
    overflow: hidden !important;
    overscroll-behavior: none;
}

@media (max-width: 56.25rem), (hover: none) and (pointer: coarse) {
    .re-map-mobile-toolbar {
        position: absolute;
        z-index: var(--estate-z-map-controls);
        left: max(.75rem, env(safe-area-inset-left));
        right: max(.75rem, env(safe-area-inset-right));
        bottom: max(.75rem, env(safe-area-inset-bottom));
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: .4rem;
        padding: .4rem;
        border: 1px solid color-mix(in srgb, var(--re-brand, #004c73) 18%, white);
        border-radius: 1rem;
        background: rgba(255, 255, 255, .96);
        box-shadow: 0 14px 34px rgba(15, 23, 42, .2);
        backdrop-filter: blur(12px);
    }

    .re-map-mobile-toolbar[hidden] { display: none; }

    .re-map-mobile-toolbar button {
        min-width: 0;
        min-height: var(--estate-map-touch-target);
        display: inline-flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: .15rem;
        border: 0;
        border-radius: .75rem;
        background: transparent;
        color: var(--re-brand-dark, #003955);
        font: inherit;
        font-size: .72rem;
        font-weight: 700;
        cursor: pointer;
    }

    .re-map-mobile-toolbar button:hover,
    .re-map-mobile-toolbar button:focus-visible {
        background: var(--re-brand-soft, #dcebf2);
        outline: 2px solid var(--re-brand, #004c73);
        outline-offset: 1px;
    }

    .re-map-mobile-toolbar button > span:first-child {
        font-size: 1.2rem;
        line-height: 1;
    }

    .re-map-stage.is-workspace-fullscreen {
        position: fixed !important;
        inset: 0 !important;
        z-index: var(--estate-z-map-fullscreen) !important;
        width: 100vw !important;
        height: 100vh !important;
        height: 100dvh !important;
        max-width: none !important;
        max-height: none !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: #fff;
    }

    .re-map-stage.is-workspace-fullscreen #re-map {
        width: 100% !important;
        height: 100% !important;
        min-height: 100% !important;
    }

    .re-map-stage.is-workspace-fullscreen .re-map-workspace-close {
        position: absolute;
        z-index: calc(var(--estate-z-map-fullscreen) + 20);
        top: max(.75rem, env(safe-area-inset-top));
        left: max(.75rem, env(safe-area-inset-left));
        display: inline-flex;
        width: var(--estate-map-touch-target);
        height: var(--estate-map-touch-target);
        align-items: center;
        justify-content: center;
        border: 0;
        border-radius: 50%;
        background: rgba(255, 255, 255, .97);
        color: var(--re-brand-dark, #003955);
        box-shadow: 0 8px 24px rgba(15, 23, 42, .24);
        font-size: 1.8rem;
        line-height: 1;
        cursor: pointer;
    }

    .re-map-stage.is-workspace-fullscreen .re-map-mobile-toolbar {
        bottom: max(.75rem, env(safe-area-inset-bottom));
    }

    .re-map-stage.is-workspace-fullscreen .re-mobile-property-sheet,
    .re-map-stage.is-workspace-fullscreen .re-top-region-tools {
        z-index: var(--estate-z-map-panel);
        max-height: min(68dvh, 42rem);
        padding-bottom: max(1rem, env(safe-area-inset-bottom));
    }

    .re-mobile-property-sheet-close,
    .re-top-region-close {
        min-width: var(--estate-map-touch-target) !important;
        min-height: var(--estate-map-touch-target) !important;
    }
}

@media (max-width: 23rem) {
    .re-map-mobile-toolbar button span:last-child {
        font-size: .65rem;
    }
}


/* Hotfix 1.6.0.5: mobile map workspace usability hardening. */
:root {
    --estate-z-map-ad: 400;
}

@media (max-width: 56.25rem), (hover: none) and (pointer: coarse) {
    body.bodywebpage-map .re-map-mobile-flow .re-map-stage:not(.is-workspace-fullscreen) {
        height: clamp(24rem, 58svh, 34rem) !important;
        min-height: 24rem !important;
    }

    @supports not (height: 58svh) {
        body.bodywebpage-map .re-map-mobile-flow .re-map-stage:not(.is-workspace-fullscreen) {
            height: clamp(24rem, 58vh, 34rem) !important;
        }
    }

    .re-map-mobile-toolbar {
        z-index: calc(var(--estate-z-map-ad) + 20);
    }

    .re-map-stage[data-workspace-panel="advertisement"] .re-map-mobile-toolbar,
    .re-map-app[data-map-workspace-panel="advertisement"] .re-map-mobile-toolbar {
        bottom: max(.55rem, env(safe-area-inset-bottom));
    }

    .re-map-stage.is-workspace-fullscreen {
        min-height: 100dvh !important;
        padding-top: env(safe-area-inset-top) !important;
        padding-right: env(safe-area-inset-right) !important;
        padding-bottom: env(safe-area-inset-bottom) !important;
        padding-left: env(safe-area-inset-left) !important;
        box-sizing: border-box;
    }

    .re-map-workspace-close,
    .re-mobile-property-sheet-close,
    .re-top-region-close {
        touch-action: manipulation;
    }
}

@media (max-width: 23rem) {
    body.bodywebpage-map .re-map-mobile-flow .re-map-stage:not(.is-workspace-fullscreen) {
        height: clamp(22rem, 54svh, 30rem) !important;
        min-height: 22rem !important;
    }
}


/* Hotfix 1.6.0.5.2: sponsor-pin reopen and mobile property-panel hardening. */
@media (max-width: 37.5rem) and (pointer: coarse),
       (max-height: 37.5rem) and (pointer: coarse) and (orientation: landscape) {
    .re-mobile-property-sheet {
        z-index: var(--estate-z-map-panel, 500);
        max-height: min(72dvh, 32rem);
        overflow: hidden;
        padding-bottom: env(safe-area-inset-bottom);
    }

    .re-mobile-property-sheet-content {
        min-width: 0;
        max-height: min(72dvh, 32rem);
        overflow: auto;
        overscroll-behavior: contain;
        overflow-wrap: anywhere;
        -webkit-overflow-scrolling: touch;
    }

    .re-mobile-property-sheet-close {
        top: max(.5rem, env(safe-area-inset-top));
        right: .5rem;
        z-index: calc(var(--estate-z-map-panel, 500) + 2);
    }

    .re-map-app[data-map-workspace-panel="property"] .estate-map-ad-slot,
    .re-map-app[data-map-workspace-panel="top-region"] .estate-map-ad-slot,
    .re-map-app[data-map-workspace-panel="filters"] .estate-map-ad-slot {
        display: none !important;
    }
}


/* Hotfix 1.6.0.5.3: fullscreen smartphone property panel. */
@media (max-width: 37.5rem) and (pointer: coarse),
       (max-height: 37.5rem) and (pointer: coarse) and (orientation: landscape) {
    .re-map-stage.is-workspace-fullscreen .re-mobile-property-sheet {
        left: max(.75rem, env(safe-area-inset-left));
        right: max(.75rem, env(safe-area-inset-right));
        bottom: calc(max(.75rem, env(safe-area-inset-bottom)) + 4.6rem);
        max-height: min(58dvh, 31rem);
        border: 1px solid color-mix(in srgb, var(--re-brand, #003899) 14%, white);
        border-radius: 1rem;
        background: rgba(255, 255, 255, .98);
        box-shadow: 0 18px 46px rgba(15, 23, 42, .28);
        backdrop-filter: blur(12px);
    }

    .re-map-stage.is-workspace-fullscreen .re-mobile-property-sheet-content {
        max-height: min(58dvh, 31rem);
    }

    .re-map-stage.is-workspace-fullscreen .re-mobile-property-sheet-content .re-popup {
        display: grid;
        grid-template-columns: minmax(5.5rem, 34%) minmax(0, 1fr);
        align-items: stretch;
        border-radius: 1rem;
        background: transparent;
    }

    .re-map-stage.is-workspace-fullscreen .re-mobile-property-sheet-content .re-popup > img {
        width: 100%;
        height: 100%;
        min-height: 9rem;
        max-height: none;
        object-fit: cover;
    }

    .re-map-stage.is-workspace-fullscreen .re-mobile-property-sheet-content .re-popup-body {
        min-width: 0;
        padding: .85rem 3.25rem .9rem .9rem;
    }

    .re-map-stage.is-workspace-fullscreen .re-mobile-property-sheet-close {
        position: absolute;
        top: .4rem;
        right: .4rem;
        width: 44px;
        height: 44px;
        border: 1px solid rgba(15, 23, 42, .08);
        background: rgba(255, 255, 255, .98);
    }

    .re-map-stage.is-workspace-fullscreen[data-workspace-panel="property"] .re-map-mobile-toolbar,
    .re-map-app[data-map-workspace-panel="property"] .re-map-mobile-toolbar {
        z-index: calc(var(--estate-z-map-panel, 500) + 5);
    }
}

@media (max-width: 26rem) {
    .re-map-stage.is-workspace-fullscreen .re-mobile-property-sheet-content .re-popup {
        grid-template-columns: 6.25rem minmax(0, 1fr);
    }

    .re-map-stage.is-workspace-fullscreen .re-mobile-property-sheet-content .re-popup-body {
        padding-left: .75rem;
    }
}


/* Hotfix 1.6.0.5.4: keep the in-map property card smartphone-only. */
@media (pointer: fine),
       (min-width: 37.501rem) and (min-height: 37.501rem) {
    .re-mobile-property-sheet[data-smartphone-property-panel="1"] {
        display: none !important;
    }
}


/* Hotfix 1.6.0.5.5: complete panels inside smartphone map fullscreen. */
:root {
    --estate-z-map-fullscreen-panel: 560;
}

.re-map-fullscreen-panel {
    display: none;
}

@media (max-width: 37.5rem) and (pointer: coarse),
       (max-height: 37.5rem) and (pointer: coarse) and (orientation: landscape) {
    .re-map-stage.is-workspace-fullscreen .re-map-fullscreen-panel,
    .re-map-stage:fullscreen .re-map-fullscreen-panel,
    .re-map-stage:-webkit-full-screen .re-map-fullscreen-panel {
        position: absolute;
        z-index: var(--estate-z-map-fullscreen-panel);
        left: max(.65rem, env(safe-area-inset-left));
        right: max(.65rem, env(safe-area-inset-right));
        bottom: calc(max(.65rem, env(safe-area-inset-bottom)) + 4.8rem);
        display: flex;
        max-height: min(78dvh, 38rem);
        flex-direction: column;
        overflow: hidden;
        border: 1px solid color-mix(in srgb, var(--re-brand, #003899) 16%, white);
        border-radius: 1rem;
        background: rgba(255, 255, 255, .985);
        box-shadow: 0 18px 48px rgba(15, 23, 42, .3);
        backdrop-filter: blur(12px);
    }

    .re-map-fullscreen-panel[hidden] {
        display: none !important;
    }

    .re-map-fullscreen-panel-header {
        position: sticky;
        top: 0;
        z-index: 2;
        display: flex;
        min-height: 3.25rem;
        align-items: center;
        justify-content: space-between;
        gap: .75rem;
        padding: .45rem .45rem .45rem 1rem;
        border-bottom: 1px solid var(--re-border, #d9e0e5);
        background: rgba(255, 255, 255, .98);
        color: var(--re-brand-dark, #003899);
    }

    .re-map-fullscreen-panel-close {
        width: var(--estate-map-touch-target, 44px);
        height: var(--estate-map-touch-target, 44px);
        flex: 0 0 var(--estate-map-touch-target, 44px);
        border: 1px solid rgba(15, 23, 42, .1);
        border-radius: 50%;
        background: #fff;
        color: var(--re-brand-dark, #003899);
        font: inherit;
        font-size: 1.65rem;
        line-height: 1;
        cursor: pointer;
        touch-action: manipulation;
    }

    .re-map-fullscreen-panel-body {
        min-height: 0;
        overflow: auto;
        overscroll-behavior: contain;
        padding: .8rem;
        -webkit-overflow-scrolling: touch;
    }

    .re-map-fullscreen-filter-panel .re-map-filters {
        margin: 0;
        padding: 0;
        border: 0;
        background: transparent;
        box-shadow: none;
    }

    .re-map-fullscreen-filter-panel .re-filter-grid,
    .re-map-fullscreen-filter-panel .re-filter-grid-extended,
    .re-map-fullscreen-filter-panel .re-authenticated-filter-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .re-map-fullscreen-filter-panel .re-filter-buttons {
        position: sticky;
        bottom: 0;
        z-index: 2;
        margin: .75rem -.8rem -.8rem;
        padding: .7rem .8rem max(.7rem, env(safe-area-inset-bottom));
        border-top: 1px solid var(--re-border, #d9e0e5);
        background: rgba(255, 255, 255, .98);
    }

    .re-map-stage:fullscreen,
    .re-map-stage:-webkit-full-screen {
        width: 100vw !important;
        height: 100dvh !important;
        margin: 0 !important;
        padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left) !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: #fff;
        box-sizing: border-box;
    }

    .re-map-stage:fullscreen #re-map,
    .re-map-stage:-webkit-full-screen #re-map {
        width: 100% !important;
        height: 100% !important;
        min-height: 100% !important;
    }

    .re-map-stage:fullscreen .re-map-mobile-toolbar,
    .re-map-stage:-webkit-full-screen .re-map-mobile-toolbar {
        display: grid;
    }

    .re-map-stage:fullscreen .re-map-workspace-close,
    .re-map-stage:-webkit-full-screen .re-map-workspace-close {
        display: inline-flex;
    }
}

@media (pointer: coarse) and (orientation: landscape) and (max-height: 37.5rem) {
    .re-map-stage.is-workspace-fullscreen .re-map-fullscreen-panel,
    .re-map-stage:fullscreen .re-map-fullscreen-panel,
    .re-map-stage:-webkit-full-screen .re-map-fullscreen-panel {
        top: max(.65rem, env(safe-area-inset-top));
        right: max(.65rem, env(safe-area-inset-right));
        bottom: max(.65rem, env(safe-area-inset-bottom));
        left: auto;
        width: min(27rem, 48vw);
        max-height: none;
    }

    .re-map-stage.is-workspace-fullscreen .re-mobile-property-sheet,
    .re-map-stage:fullscreen .re-mobile-property-sheet,
    .re-map-stage:-webkit-full-screen .re-mobile-property-sheet,
    .re-map-stage.is-workspace-fullscreen .re-top-region-tools,
    .re-map-stage:fullscreen .re-top-region-tools,
    .re-map-stage:-webkit-full-screen .re-top-region-tools {
        top: max(.65rem, env(safe-area-inset-top));
        right: max(.65rem, env(safe-area-inset-right));
        bottom: max(.65rem, env(safe-area-inset-bottom));
        left: auto;
        width: min(27rem, 48vw);
        max-height: none;
    }
}

/* Hotfix 1.6.0.5.6: render smartphone property details inside native MapLibre fullscreen. */
@media (max-width: 37.5rem) and (pointer: coarse),
       (max-height: 37.5rem) and (pointer: coarse) and (orientation: landscape) {
    #re-map > .re-mobile-property-sheet[hidden] {
        display: none !important;
    }

    #re-map > .re-mobile-property-sheet.is-open:not([hidden]) {
        position: absolute;
        z-index: var(--estate-z-map-fullscreen-panel, 560);
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        transform: none !important;
        left: max(.75rem, env(safe-area-inset-left));
        right: max(.75rem, env(safe-area-inset-right));
        bottom: calc(max(.75rem, env(safe-area-inset-bottom)) + 4.6rem);
        width: auto;
        max-height: min(58dvh, 31rem);
        overflow: hidden;
        border: 1px solid color-mix(in srgb, var(--re-brand, #003899) 14%, white);
        border-radius: 1rem;
        background: rgba(255, 255, 255, .98);
        box-shadow: 0 18px 46px rgba(15, 23, 42, .28);
        backdrop-filter: blur(12px);
    }

    #re-map:fullscreen > .re-mobile-property-sheet.is-open:not([hidden]),
    #re-map:-webkit-full-screen > .re-mobile-property-sheet.is-open:not([hidden]) {
        display: block !important;
    }

    #re-map > .re-mobile-property-sheet .re-mobile-property-sheet-content {
        max-height: min(58dvh, 31rem);
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
    }

    #re-map > .re-mobile-property-sheet .re-mobile-property-sheet-close {
        position: absolute;
        top: .4rem;
        right: .4rem;
        z-index: calc(var(--estate-z-map-fullscreen-panel, 560) + 2);
        width: 44px;
        height: 44px;
    }
}

@media (pointer: coarse) and (orientation: landscape) and (max-height: 37.5rem) {
    #re-map > .re-mobile-property-sheet.is-open:not([hidden]),
    #re-map:fullscreen > .re-mobile-property-sheet.is-open:not([hidden]),
    #re-map:-webkit-full-screen > .re-mobile-property-sheet.is-open:not([hidden]) {
        top: max(.65rem, env(safe-area-inset-top));
        right: max(.65rem, env(safe-area-inset-right));
        bottom: max(.65rem, env(safe-area-inset-bottom));
        left: auto;
        width: min(27rem, 48vw);
        max-height: none;
    }

    #re-map > .re-mobile-property-sheet .re-mobile-property-sheet-content {
        max-height: calc(100dvh - 1.3rem);
    }
}

/* Hotfix 1.6.0.5.7: property panel inside native MapLibre fullscreen on desktop. */
@media (pointer: fine) and (min-width: 37.501rem) {
    #re-map:fullscreen > .re-mobile-property-sheet[hidden],
    #re-map:-webkit-full-screen > .re-mobile-property-sheet[hidden] {
        display: none !important;
    }

    #re-map:fullscreen > .re-mobile-property-sheet.is-open:not([hidden]),
    #re-map:-webkit-full-screen > .re-mobile-property-sheet.is-open:not([hidden]) {
        position: absolute;
        top: 5rem;
        right: 1rem;
        bottom: auto;
        left: auto;
        z-index: var(--estate-z-map-fullscreen-panel, 560);
        display: block !important;
        width: min(27rem, 34vw);
        max-height: calc(100dvh - 7rem);
        overflow: hidden;
        visibility: visible !important;
        opacity: 1 !important;
        transform: none !important;
        border: 1px solid color-mix(in srgb, var(--re-brand, #003899) 14%, white);
        border-radius: 1rem;
        background: rgba(255, 255, 255, .98);
        box-shadow: 0 18px 46px rgba(15, 23, 42, .28);
        backdrop-filter: blur(12px);
    }

    #re-map:fullscreen > .re-mobile-property-sheet .re-mobile-property-sheet-content,
    #re-map:-webkit-full-screen > .re-mobile-property-sheet .re-mobile-property-sheet-content {
        max-height: calc(100dvh - 7rem);
        overflow-y: auto;
        overscroll-behavior: contain;
    }

    #re-map:fullscreen > .re-mobile-property-sheet .re-mobile-property-sheet-close,
    #re-map:-webkit-full-screen > .re-mobile-property-sheet .re-mobile-property-sheet-close {
        position: absolute;
        top: .4rem;
        right: .4rem;
        z-index: calc(var(--estate-z-map-fullscreen-panel, 560) + 2);
        width: 44px;
        height: 44px;
    }
}


/* Hotfix 1.6.0.5.8: harmonize the property-panel close control. */
:root {
    --estate-map-panel-close-size: 2.75rem;
    --estate-map-panel-close-icon-size: 1.35rem;
}

#re-map > .re-mobile-property-sheet .re-mobile-property-sheet-close {
    box-sizing: border-box;
    width: var(--estate-map-panel-close-size) !important;
    height: var(--estate-map-panel-close-size) !important;
    min-width: var(--estate-map-panel-close-size) !important;
    min-height: var(--estate-map-panel-close-size) !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--estate-border, rgba(15, 23, 42, .12)) !important;
    border-radius: 50% !important;
    background: rgba(255, 255, 255, .96) !important;
    color: var(--estate-text, #1f2933) !important;
    box-shadow: 0 2px 10px rgba(15, 23, 42, .16) !important;
    font-size: 0 !important;
    line-height: 1 !important;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    touch-action: manipulation;
}

#re-map > .re-mobile-property-sheet .re-mobile-property-sheet-close > span {
    display: block;
    width: 1em;
    height: 1em;
    font-size: var(--estate-map-panel-close-icon-size);
    font-weight: 500;
    line-height: .88;
    text-align: center;
    transform: translateY(-.02em);
    pointer-events: none;
}

#re-map > .re-mobile-property-sheet .re-mobile-property-sheet-close:hover {
    border-color: var(--re-brand, #003899) !important;
    background: #fff !important;
    color: var(--re-brand-dark, #003955) !important;
}

#re-map > .re-mobile-property-sheet .re-mobile-property-sheet-close:focus-visible {
    outline: 3px solid var(--re-brand-soft, #89e8fb) !important;
    outline-offset: 2px;
}

#re-map > .re-mobile-property-sheet .re-mobile-property-sheet-close:active {
    transform: scale(.96);
}

@media (max-width: 37.5rem) and (pointer: coarse),
       (max-height: 37.5rem) and (pointer: coarse) and (orientation: landscape) {
    #re-map > .re-mobile-property-sheet .re-mobile-property-sheet-close {
        top: max(.55rem, env(safe-area-inset-top)) !important;
        right: max(.55rem, env(safe-area-inset-right)) !important;
    }
}

@media (pointer: fine) and (min-width: 37.501rem) {
    #re-map:fullscreen > .re-mobile-property-sheet .re-mobile-property-sheet-close,
    #re-map:-webkit-full-screen > .re-mobile-property-sheet .re-mobile-property-sheet-close {
        top: .55rem !important;
        right: .55rem !important;
    }
}


/* Object notes and moderated comments 1.6.0.6.23 */
.re-selected-note select { width:100%; min-height:42px; border:1px solid var(--re-border); border-radius:12px; padding:8px 10px; background:#fff; }
.re-note-action-row { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.re-comments-toggle { border:0; background:transparent; color:var(--re-brand); font-weight:800; cursor:pointer; padding:8px 0; }
.re-comments-list { display:grid; gap:10px; margin-top:4px; }
.re-comment { border:1px solid var(--re-border); border-radius:12px; padding:10px 12px; background:#fff; overflow-wrap:anywhere; }
.re-comment-meta { display:flex; justify-content:space-between; gap:8px; flex-wrap:wrap; font-size:12px; }
.re-comment-meta span { color:var(--re-muted); }
.re-comment p { margin:8px 0 0; font-size:14px; line-height:1.45; }
@media (max-width: 560px) { .re-note-action-row { align-items:stretch; flex-direction:column; } .re-selected-note .re-note-save-button { width:100%; } .re-comments-toggle { text-align:left; } }
