/*
 * ZR Reality Sync frontend.
 *
 * Design goals:
 * - scoped selectors, no global resets
 * - inherit typography and most colors from the active theme
 * - responsive without framework dependencies
 * - theme-overridable through CSS custom properties
 */

.zrrs-archive,
.zrrs-property-detail,
.zrrs-broker-directory,
.zrrs-broker-profile,
.zrrs-favorites {
    --zrrs-card-columns: 3;
    --zrrs-space-1: .375rem;
    --zrrs-space-2: .625rem;
    --zrrs-space-3: 1rem;
    --zrrs-space-4: 1.5rem;
    --zrrs-space-5: 2rem;
    --zrrs-radius: .75rem;
    --zrrs-radius-small: .45rem;
    --zrrs-border: rgba(127, 127, 127, .28);
    --zrrs-muted: rgba(127, 127, 127, .95);
    --zrrs-surface: rgba(127, 127, 127, .055);
    --zrrs-surface-strong: rgba(127, 127, 127, .11);
    --zrrs-card-background: transparent;
    --zrrs-control-background: transparent;
    --zrrs-shadow: 0 .35rem 1.35rem rgba(0, 0, 0, .08);
    --zrrs-shadow-hover: 0 .65rem 1.8rem rgba(0, 0, 0, .13);
    --zrrs-focus: currentColor;
    box-sizing: border-box;
    width: min(100% - 2rem, 78rem);
    margin-inline: auto;
    padding-block: var(--zrrs-space-5);
    color: inherit;
    font-family: inherit;
}

.zrrs-archive *,
.zrrs-property-detail *,
.zrrs-broker-directory *,
.zrrs-broker-profile *,
.zrrs-favorites * {
    box-sizing: border-box;
}

.zrrs-archive a,
.zrrs-property-detail a,
.zrrs-broker-directory a,
.zrrs-broker-profile a,
.zrrs-favorites a {
    color: inherit;
}

.zrrs-archive__header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: var(--zrrs-space-3);
    margin: 0 0 var(--zrrs-space-4);
}

.zrrs-archive__title {
    margin: 0;
    font: inherit;
    font-size: clamp(1.85rem, 4vw, 2.65rem);
    font-weight: 700;
    line-height: 1.08;
    letter-spacing: -.025em;
}

.zrrs-archive__count {
    margin: 0;
    color: var(--zrrs-muted);
    white-space: nowrap;
}

/* Search/filter panel */
.zrrs-search-wrap {
    margin: 0 0 var(--zrrs-space-4);
    border: 1px solid var(--zrrs-border);
    border-radius: var(--zrrs-radius);
    background: var(--zrrs-surface);
}

.zrrs-search-toggle {
    display: none;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    gap: var(--zrrs-space-2);
    padding: .9rem 1rem;
    border: 0;
    border-radius: inherit;
    background: transparent;
    color: inherit;
    font: inherit;
    font-weight: 650;
    text-align: left;
    cursor: pointer;
}

.zrrs-search-toggle__count {
    min-width: 1.65rem;
    padding: .14rem .45rem;
    border-radius: 999px;
    border: 1px solid currentColor;
    background: transparent;
    color: inherit;
    font-size: .75em;
    text-align: center;
}

.zrrs-search {
    padding: var(--zrrs-space-3);
}

.zrrs-search__fields {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .85rem 1rem;
}

.zrrs-search__field,
.zrrs-search__field--range {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.zrrs-search__field > span,
.zrrs-search__field--range > legend {
    display: block;
    margin: 0 0 .35rem;
    padding: 0;
    color: var(--zrrs-muted);
    font-size: .82rem;
    font-weight: 650;
    line-height: 1.25;
}

.zrrs-search__field input,
.zrrs-search__field select,
.zrrs-search__field--range input,
.zrrs-archive__sort select {
    width: 100%;
    min-height: 2.75rem;
    margin: 0;
    padding: .55rem .7rem;
    border: 1px solid var(--zrrs-border);
    border-radius: var(--zrrs-radius-small);
    background: var(--zrrs-control-background);
    color: inherit;
    font: inherit;
    font-size: .94rem;
    line-height: 1.25;
}

.zrrs-search__field input:focus,
.zrrs-search__field select:focus,
.zrrs-search__field--range input:focus,
.zrrs-archive__sort select:focus,
.zrrs-search button:focus-visible,
.zrrs-archive__sort button:focus-visible,
.zrrs-search-toggle:focus-visible,
.zrrs-pagination a:focus-visible {
    outline: 2px solid var(--zrrs-focus);
    outline-offset: 2px;
}

.zrrs-search__field--range {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .5rem;
}

.zrrs-search__field--range > legend {
    grid-column: 1 / -1;
}

.zrrs-search__field--range label > span {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    clip-path: inset(50%);
}

.zrrs-search__live {
    display: flex;
    align-items: center;
    min-height: 1.5rem;
    margin: .7rem 0 0;
    color: var(--zrrs-muted);
    font-size: .86rem;
    line-height: 1.4;
}

.zrrs-search.is-live-loading .zrrs-search__live {
    opacity: .78;
}

.zrrs-search__actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--zrrs-space-3);
    margin-top: var(--zrrs-space-3);
}

.zrrs-search__actions button,
.zrrs-archive__sort button {
    min-height: 2.65rem;
    padding: .55rem 1rem;
    border: 1px solid currentColor;
    border-radius: var(--zrrs-radius-small);
    background: transparent;
    color: inherit;
    font: inherit;
    font-weight: 650;
    cursor: pointer;
}

.zrrs-search__submit {
    display: inline-flex;
    align-items: center;
    gap: .65rem;
}

.zrrs-search__submit-count {
    display: inline-flex;
    min-width: 1.65rem;
    min-height: 1.65rem;
    align-items: center;
    justify-content: center;
    padding: .08rem .45rem;
    border-radius: 999px;
    border: 1px solid currentColor;
    background: transparent;
    font-size: .76em;
    line-height: 1;
}

.zrrs-search__actions a {
    color: var(--zrrs-muted);
    font-size: .9rem;
    text-underline-offset: .2em;
}

.zrrs-search__advanced-toggle {
    display: none;
    align-items: center;
    gap: .45rem;
    border-color: var(--zrrs-border) !important;
    color: inherit;
}

.zrrs-js .zrrs-search__advanced-toggle {
    display: inline-flex;
}

.zrrs-js .zrrs-search:not(.is-advanced-open) .zrrs-search__field--advanced {
    display: none;
}

.zrrs-search__advanced-count {
    display: inline-flex;
    min-width: 1.45rem;
    min-height: 1.45rem;
    align-items: center;
    justify-content: center;
    padding: .05rem .35rem;
    border: 1px solid currentColor;
    border-radius: 999px;
    font-size: .72em;
    line-height: 1;
}

.zrrs-search__location-hint {
    margin: .7rem 0 0;
    color: var(--zrrs-muted);
    font-size: .8rem;
    line-height: 1.4;
}

/* Result toolbar */
.zrrs-results-toolbar {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--zrrs-space-3);
    margin: 0 0 var(--zrrs-space-3);
}

.zrrs-archive__sort {
    display: flex;
    align-items: center;
    gap: .6rem;
    margin: 0;
}

.zrrs-archive__sort label {
    color: var(--zrrs-muted);
    font-size: .86rem;
    white-space: nowrap;
}

.zrrs-archive__sort select {
    width: auto;
    max-width: 18rem;
}

.zrrs-js .zrrs-archive__sort button {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
}

/* Property cards */
.zrrs-property-list {
    display: grid;
    grid-template-columns: repeat(var(--zrrs-card-columns), minmax(0, 1fr));
    gap: clamp(1rem, 2.2vw, 1.6rem);
}

.zrrs-property-card {
    position: relative;
    display: flex;
    min-width: 0;
    min-height: 100%;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--zrrs-border);
    border-radius: calc(var(--zrrs-radius) + .2rem);
    background: rgba(127, 127, 127, .025);
    color: inherit;
    box-shadow: 0 .3rem 1.35rem rgba(0, 0, 0, .07);
    isolation: isolate;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.zrrs-property-card:focus-within {
    border-color: currentColor;
    box-shadow: 0 0 0 2px rgba(127, 127, 127, .16), var(--zrrs-shadow-hover);
}

@media (hover: hover) {
    .zrrs-property-card:hover {
        transform: translateY(-3px);
        border-color: rgba(127, 127, 127, .42);
        box-shadow: 0 .8rem 2rem rgba(0, 0, 0, .12);
    }
}

.zrrs-property-card__media {
    position: relative;
    display: block;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--zrrs-surface-strong);
}

.zrrs-property-card__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s ease;
}

@media (hover: hover) {
    .zrrs-property-card:hover .zrrs-property-card__media img {
        transform: scale(1.035);
    }
}

.zrrs-property-card__media-shade {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0, 0, 0, .08) 0%, transparent 35%, transparent 72%, rgba(0, 0, 0, .12) 100%);
    pointer-events: none;
}

.zrrs-property-card__placeholder {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    color: var(--zrrs-muted);
}

.zrrs-property-card__placeholder svg {
    width: 3.4rem;
    height: 3.4rem;
    opacity: .42;
}

.zrrs-property-card__badges {
    position: absolute;
    z-index: 2;
    top: .75rem;
    left: .75rem;
    display: flex;
    max-width: calc(100% - 1.5rem);
    flex-wrap: wrap;
    gap: .42rem;
    pointer-events: none;
}

.zrrs-badge {
    display: inline-flex;
    min-height: 1.7rem;
    align-items: center;
    padding: .24rem .62rem;
    border: 1px solid rgba(255, 255, 255, .56);
    border-radius: 999px;
    background: rgba(255, 255, 255, .94);
    color: #151515;
    font-size: .7rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .035em;
    box-shadow: 0 .15rem .6rem rgba(0, 0, 0, .14);
    backdrop-filter: blur(5px);
}

.zrrs-badge--top {
    border-color: rgba(0, 0, 0, .2);
    background: #151515;
    color: #fff;
}

.zrrs-property-card__body {
    display: flex;
    min-width: 0;
    flex: 1;
    flex-direction: column;
    padding: 1.05rem 1.05rem 1rem;
}

.zrrs-property-card__eyebrow {
    margin: 0 0 .38rem;
    color: var(--zrrs-muted);
    font-size: .72rem;
    font-weight: 750;
    line-height: 1.3;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.zrrs-property-card__title {
    margin: 0;
    font: inherit;
    font-size: clamp(1.04rem, 1.5vw, 1.18rem);
    font-weight: 760;
    line-height: 1.28;
    letter-spacing: -.012em;
}

.zrrs-property-card__title a {
    display: -webkit-box;
    overflow: hidden;
    color: inherit;
    text-decoration: none;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.zrrs-property-card__title a::after {
    position: absolute;
    inset: 0;
    z-index: 3;
    content: "";
}

.zrrs-property-card__title a:focus-visible {
    outline: none;
}

.zrrs-property-card__title a:focus-visible::after {
    outline: 3px solid currentColor;
    outline-offset: -4px;
    border-radius: calc(var(--zrrs-radius) + .15rem);
}

.zrrs-property-card__location {
    display: flex;
    min-width: 0;
    align-items: flex-start;
    gap: .38rem;
    margin: .52rem 0 0;
    color: var(--zrrs-muted);
    font-size: .86rem;
    line-height: 1.4;
}

.zrrs-property-card__location svg {
    width: 1rem;
    height: 1rem;
    flex: 0 0 auto;
    margin-top: .08rem;
}

.zrrs-property-card__location span {
    display: -webkit-box;
    min-width: 0;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.zrrs-property-card__facts {
    display: flex;
    min-height: 2.15rem;
    align-items: center;
    flex-wrap: wrap;
    gap: .45rem;
    margin: .9rem 0 0;
}

.zrrs-property-card__fact {
    display: inline-flex;
    min-width: 0;
    min-height: 1.95rem;
    align-items: center;
    gap: .32rem;
    padding: .3rem .52rem;
    border: 1px solid rgba(127, 127, 127, .18);
    border-radius: 999px;
    background: var(--zrrs-surface);
    color: inherit;
    font-size: .77rem;
    font-weight: 650;
    line-height: 1.15;
    white-space: nowrap;
}

.zrrs-property-card__fact svg {
    width: .95rem;
    height: .95rem;
    flex: 0 0 auto;
    color: var(--zrrs-muted);
}

.zrrs-property-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .7rem;
    margin-top: auto;
    padding-top: 1rem;
}

.zrrs-property-card__price {
    min-width: 0;
    margin: 0;
    font-size: 1.12rem;
    font-weight: 820;
    line-height: 1.15;
    letter-spacing: -.012em;
}

.zrrs-property-card__price.is-on-request {
    color: var(--zrrs-muted);
    font-size: .88rem;
    font-weight: 680;
    letter-spacing: 0;
}

.zrrs-property-card__cta {
    display: inline-flex;
    min-width: 2rem;
    min-height: 2rem;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: .2rem;
    padding: .32rem .4rem .32rem .55rem;
    border: 1px solid var(--zrrs-border);
    border-radius: 999px;
    background: var(--zrrs-surface);
    color: inherit;
    font-size: .76rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
    transition: transform .18s ease, background-color .18s ease;
}

.zrrs-property-card__cta svg {
    width: .9rem;
    height: .9rem;
}

@media (hover: hover) {
    .zrrs-property-card:hover .zrrs-property-card__cta {
        transform: translateX(2px);
        background: var(--zrrs-surface-strong);
    }
}

.zrrs-columns-1 .zrrs-property-card {
    display: grid;
    grid-template-columns: minmax(16rem, 38%) minmax(0, 1fr);
}

.zrrs-columns-1 .zrrs-property-card__media {
    min-height: 100%;
    aspect-ratio: auto;
}

.zrrs-columns-1 .zrrs-property-card__body {
    justify-content: center;
    padding: clamp(1.1rem, 2.5vw, 1.6rem);
}

.zrrs-columns-1 .zrrs-property-card__title {
    font-size: clamp(1.2rem, 2.2vw, 1.6rem);
}

@media (min-width: 70.01rem) {
    .zrrs-columns-4 .zrrs-property-card__cta span {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        clip-path: inset(50%);
    }
}

/* Empty state */
.zrrs-archive__empty {
    padding: clamp(2rem, 8vw, 5rem) 1.25rem;
    border: 1px dashed var(--zrrs-border);
    border-radius: var(--zrrs-radius);
    background: var(--zrrs-surface);
    text-align: center;
}

.zrrs-archive__empty p {
    max-width: 35rem;
    margin: 0 auto;
    color: var(--zrrs-muted);
}

/* Pagination */
.zrrs-pagination {
    margin-top: var(--zrrs-space-5);
}

.zrrs-pagination .page-numbers {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: .4rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.zrrs-pagination .page-numbers li {
    margin: 0;
    padding: 0;
}

.zrrs-pagination a,
.zrrs-pagination span.current,
.zrrs-pagination span.dots {
    display: inline-flex;
    min-width: 2.55rem;
    min-height: 2.55rem;
    align-items: center;
    justify-content: center;
    padding: .45rem .7rem;
    border: 1px solid var(--zrrs-border);
    border-radius: var(--zrrs-radius-small);
    text-decoration: none;
}

.zrrs-pagination span.current {
    border-color: currentColor;
    background: var(--zrrs-surface-strong);
    color: inherit;
    font-weight: 700;
}

.zrrs-pagination span.dots {
    border-color: transparent;
}

@media (max-width: 70rem) {
    .zrrs-columns-4 .zrrs-property-list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .zrrs-search__fields {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 54rem) {
    .zrrs-columns-3 .zrrs-property-list,
    .zrrs-columns-4 .zrrs-property-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .zrrs-search__fields {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 42rem) {
    .zrrs-archive,
    .zrrs-property-detail,
    .zrrs-broker-directory,
    .zrrs-broker-profile {
        width: min(100% - 1.25rem, 78rem);
        padding-block: 1.35rem 2rem;
    }

    .zrrs-archive__header {
        align-items: start;
        flex-direction: column;
        gap: .4rem;
    }

    .zrrs-js .zrrs-search-toggle {
        display: flex;
    }

    .zrrs-js .zrrs-search-wrap:not(.is-open) .zrrs-search {
        display: none;
    }

    .zrrs-search {
        padding-top: .7rem;
    }

    .zrrs-search__fields {
        grid-template-columns: 1fr;
    }

    .zrrs-results-toolbar {
        justify-content: stretch;
    }

    .zrrs-archive__sort {
        width: 100%;
    }

    .zrrs-archive__sort select {
        min-width: 0;
        flex: 1;
        max-width: none;
    }

    .zrrs-property-list {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .zrrs-columns-1 .zrrs-property-card {
        display: flex;
        grid-template-columns: none;
    }

    .zrrs-columns-1 .zrrs-property-card__media {
        min-height: 0;
        aspect-ratio: 16 / 10;
    }

    .zrrs-property-card__body,
    .zrrs-columns-1 .zrrs-property-card__body {
        padding: 1rem;
    }

    .zrrs-property-card__title,
    .zrrs-columns-1 .zrrs-property-card__title {
        font-size: 1.12rem;
    }

    .zrrs-property-card__fact {
        min-height: 2rem;
        padding-inline: .55rem;
    }

    .zrrs-property-card__footer {
        padding-top: .9rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .zrrs-property-card,
    .zrrs-property-card__media img {
        transition: none;
    }
}

/* Property detail -------------------------------------------------------- */
.zrrs-property-detail__article {
    margin: 0;
}

.zrrs-property-detail__hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: var(--zrrs-space-4);
    margin-bottom: var(--zrrs-space-4);
}

.zrrs-property-detail__heading,
.zrrs-property-detail__price-wrap {
    min-width: 0;
}

.zrrs-property-detail__eyebrow {
    margin: 0 0 .45rem;
    color: var(--zrrs-muted);
    font-size: .82rem;
    font-weight: 700;
    line-height: 1.3;
    text-transform: uppercase;
    letter-spacing: .045em;
}

.zrrs-property-detail__title {
    margin: 0;
    font: inherit;
    font-size: clamp(2rem, 5vw, 3.6rem);
    font-weight: 750;
    line-height: 1.02;
    letter-spacing: -.035em;
}

.zrrs-property-detail__location {
    margin: .7rem 0 0;
    color: var(--zrrs-muted);
    font-size: 1rem;
}

.zrrs-property-detail__price-wrap {
    max-width: 24rem;
    text-align: right;
}

.zrrs-property-detail__badges {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: .4rem;
    margin-bottom: .55rem;
}

.zrrs-property-detail__price {
    margin: 0;
    font-size: clamp(1.55rem, 4vw, 2.25rem);
    font-weight: 800;
    line-height: 1.1;
}

.zrrs-property-detail__price-meta {
    margin: .45rem 0 0;
    color: var(--zrrs-muted);
    font-size: .82rem;
}

.zrrs-gallery {
    margin-bottom: var(--zrrs-space-4);
}

.zrrs-gallery__stage {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: calc(var(--zrrs-radius) + .15rem);
    background: var(--zrrs-surface-strong);
    color: inherit;
    cursor: zoom-in;
}

.zrrs-gallery__stage:focus-visible,
.zrrs-gallery__thumb:focus-visible,
.zrrs-lightbox button:focus-visible,
.zrrs-button:focus-visible,
.zrrs-location-card:focus-visible,
.zrrs-media-links a:focus-visible {
    outline: 2px solid var(--zrrs-focus);
    outline-offset: 3px;
}

.zrrs-gallery__stage img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.zrrs-gallery__counter,
.zrrs-gallery__type {
    position: absolute;
    bottom: .9rem;
    padding: .35rem .6rem;
    border-radius: 999px;
    background: rgba(0, 0, 0, .66);
    color: #fff;
    font-size: .76rem;
    font-weight: 700;
    line-height: 1;
    backdrop-filter: blur(5px);
}

.zrrs-gallery__counter {
    right: .9rem;
}

.zrrs-gallery__type {
    left: .9rem;
}

.zrrs-gallery__thumbs {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(6.5rem, 10rem);
    gap: .6rem;
    overflow-x: auto;
    padding: .65rem .05rem .2rem;
    scrollbar-width: thin;
}

.zrrs-gallery__thumb {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    margin: 0;
    padding: 0;
    border: 2px solid transparent;
    border-radius: var(--zrrs-radius-small);
    background: var(--zrrs-surface);
    cursor: pointer;
    opacity: .72;
    transition: opacity .18s ease, border-color .18s ease;
}

.zrrs-gallery__thumb:hover,
.zrrs-gallery__thumb.is-active {
    opacity: 1;
}

.zrrs-gallery__thumb.is-active {
    border-color: currentColor;
}

.zrrs-gallery__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.zrrs-gallery__thumb span {
    position: absolute;
    right: .3rem;
    bottom: .3rem;
    padding: .2rem .35rem;
    border-radius: 999px;
    background: rgba(0, 0, 0, .7);
    color: #fff;
    font-size: .62rem;
    line-height: 1;
}

.zrrs-lightbox[hidden] {
    display: none !important;
}

.zrrs-lightbox {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: grid;
    place-items: center;
    padding: clamp(1rem, 3vw, 2rem);
    background: rgba(0, 0, 0, .92);
    color: #fff;
}

.zrrs-lightbox__figure {
    display: grid;
    max-width: min(92vw, 92rem);
    max-height: 90vh;
    margin: 0;
    place-items: center;
}

.zrrs-lightbox__figure img {
    display: block;
    max-width: 100%;
    max-height: 82vh;
    object-fit: contain;
}

.zrrs-lightbox__figure figcaption {
    max-width: 55rem;
    margin-top: .65rem;
    color: rgba(255, 255, 255, .78);
    font-size: .86rem;
    text-align: center;
}

.zrrs-lightbox__close,
.zrrs-lightbox__nav {
    position: absolute;
    display: grid;
    width: 3rem;
    height: 3rem;
    place-items: center;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .3);
    border-radius: 999px;
    background: rgba(0, 0, 0, .32);
    color: #fff;
    font: inherit;
    font-size: 2rem;
    line-height: 1;
    cursor: pointer;
}

.zrrs-lightbox__close {
    top: 1rem;
    right: 1rem;
}

.zrrs-lightbox__nav {
    top: 50%;
    transform: translateY(-50%);
}

.zrrs-lightbox__nav--prev { left: 1rem; }
.zrrs-lightbox__nav--next { right: 1rem; }

.zrrs-property-detail__facts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
    gap: 1px;
    overflow: hidden;
    margin: 0 0 var(--zrrs-space-5);
    border: 1px solid var(--zrrs-border);
    border-radius: var(--zrrs-radius);
    background: var(--zrrs-border);
}

.zrrs-fact {
    min-width: 0;
    padding: .9rem 1rem;
    background: var(--zrrs-card-background);
}

.zrrs-fact__label,
.zrrs-fact__value {
    display: block;
}

.zrrs-fact__label {
    margin-bottom: .2rem;
    color: var(--zrrs-muted);
    font-size: .76rem;
}

.zrrs-fact__value {
    font-size: .98rem;
    line-height: 1.3;
}

.zrrs-property-detail__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(17rem, 22rem);
    gap: clamp(2rem, 5vw, 4rem);
    align-items: start;
}

.zrrs-property-detail__main,
.zrrs-property-detail__aside {
    min-width: 0;
}

.zrrs-property-detail__aside {
    position: sticky;
    top: 2rem;
}

.zrrs-property-section {
    margin: 0 0 clamp(2.2rem, 6vw, 4rem);
}

.zrrs-property-section > h2,
.zrrs-section-heading h2 {
    margin: 0 0 1.15rem;
    font: inherit;
    font-size: clamp(1.35rem, 3vw, 1.85rem);
    font-weight: 750;
    line-height: 1.15;
    letter-spacing: -.02em;
}

.zrrs-property-section__content {
    line-height: 1.72;
}

.zrrs-property-section__content > :first-child { margin-top: 0; }
.zrrs-property-section__content > :last-child { margin-bottom: 0; }

.zrrs-attribute-groups {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--zrrs-space-4);
}

.zrrs-attribute-group {
    min-width: 0;
}

.zrrs-attribute-group h3 {
    margin: 0 0 .65rem;
    font: inherit;
    font-size: .96rem;
    font-weight: 750;
}

.zrrs-attribute-list {
    margin: 0;
    border-top: 1px solid var(--zrrs-border);
}

.zrrs-attribute-list__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(7rem, auto);
    gap: 1rem;
    padding: .6rem 0;
    border-bottom: 1px solid var(--zrrs-border);
}

.zrrs-attribute-list dt,
.zrrs-attribute-list dd {
    margin: 0;
}

.zrrs-attribute-list dt {
    color: var(--zrrs-muted);
}

.zrrs-attribute-list dd {
    font-weight: 650;
    text-align: right;
}

.zrrs-broker-card {
    padding: 1.15rem;
    border: 1px solid var(--zrrs-border);
    border-radius: var(--zrrs-radius);
    background: var(--zrrs-surface);
}

.zrrs-broker-card__eyebrow {
    margin: 0 0 .85rem;
    color: var(--zrrs-muted);
    font-size: .76rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.zrrs-broker-card__identity {
    display: flex;
    align-items: center;
    gap: .9rem;
}

.zrrs-broker-card__image {
    width: 4.75rem;
    height: 4.75rem;
    flex: 0 0 auto;
    border-radius: 999px;
    object-fit: cover;
}

.zrrs-broker-card h2 {
    margin: 0;
    font: inherit;
    font-size: 1.15rem;
    font-weight: 750;
}

.zrrs-broker-card__identity p {
    margin: .2rem 0 0;
    color: var(--zrrs-muted);
    font-size: .85rem;
}

.zrrs-broker-card__actions {
    display: grid;
    gap: .55rem;
    margin-top: 1rem;
}

.zrrs-button {
    display: inline-flex;
    min-height: 2.7rem;
    align-items: center;
    justify-content: center;
    padding: .55rem .85rem;
    border: 1px solid currentColor;
    border-radius: var(--zrrs-radius-small);
    background: transparent;
    color: inherit;
    font: inherit;
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
    text-decoration: none;
}

.zrrs-button--primary {
    background: var(--zrrs-surface-strong);
}

.zrrs-broker-card__meta,
.zrrs-broker-card__description,
.zrrs-broker-card > p:last-child {
    margin: .9rem 0 0;
    font-size: .86rem;
    line-height: 1.55;
}

.zrrs-broker-card__description {
    color: var(--zrrs-muted);
}

.zrrs-broker-card__description p:last-child { margin-bottom: 0; }

.zrrs-media-grid {
    display: grid;
    gap: var(--zrrs-space-3);
}

.zrrs-media-card {
    overflow: hidden;
    border: 1px solid var(--zrrs-border);
    border-radius: var(--zrrs-radius);
}

.zrrs-media-card > h3 {
    margin: 0;
    padding: .75rem .9rem;
    border-bottom: 1px solid var(--zrrs-border);
    font: inherit;
    font-size: .88rem;
    font-weight: 700;
}

.zrrs-media-embed {
    position: relative;
    aspect-ratio: 16 / 9;
    background: #111;
}

.zrrs-media-embed iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.zrrs-media-links {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    padding: .9rem;
}

.zrrs-media-links a,
.zrrs-location-card,
.zrrs-project-parent {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .55rem .75rem;
    border: 1px solid var(--zrrs-border);
    border-radius: var(--zrrs-radius-small);
    text-decoration: none;
}

.zrrs-section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
}

.zrrs-section-heading p {
    margin: 0 0 1.15rem;
    color: var(--zrrs-muted);
}

.zrrs-location-card {
    width: 100%;
    min-height: 5rem;
    justify-content: center;
    background: var(--zrrs-surface);
    font-weight: 700;
}

.zrrs-project-parent {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 1rem;
    background: var(--zrrs-surface);
}

.zrrs-project-parent span {
    color: var(--zrrs-muted);
    font-size: .76rem;
}

.zrrs-project-section__title {
    margin: 1rem 0 .8rem;
    font: inherit;
    font-size: 1.15rem;
    font-weight: 750;
}

.zrrs-project-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    overflow: hidden;
    margin: 0 0 1rem;
    border: 1px solid var(--zrrs-border);
    border-radius: var(--zrrs-radius-small);
    background: var(--zrrs-border);
}

.zrrs-project-meta > div {
    padding: .75rem;
    background: var(--zrrs-card-background);
}

.zrrs-project-meta dt,
.zrrs-project-meta dd {
    margin: 0;
}

.zrrs-project-meta dt {
    color: var(--zrrs-muted);
    font-size: .76rem;
}

.zrrs-project-meta dd {
    margin-top: .15rem;
    font-weight: 700;
}

.zrrs-project-news,
.zrrs-project-sections {
    line-height: 1.65;
}

.zrrs-project-sections {
    display: grid;
    gap: 1.5rem;
    margin-top: 1.5rem;
}

.zrrs-project-sections h3 {
    margin: 0 0 .55rem;
    font: inherit;
    font-size: 1.05rem;
    font-weight: 750;
}

.zrrs-property-detail__unavailable {
    max-width: 44rem;
    margin: clamp(3rem, 10vw, 8rem) auto;
    padding: clamp(1.5rem, 5vw, 3rem);
    border: 1px solid var(--zrrs-border);
    border-radius: var(--zrrs-radius);
    background: var(--zrrs-surface);
    text-align: center;
}

.zrrs-property-detail__unavailable .zrrs-property-detail__title {
    font-size: clamp(1.7rem, 5vw, 2.8rem);
}

.zrrs-property-detail__unavailable > p:not(.zrrs-property-detail__eyebrow) {
    margin-top: 1rem;
}

body.zrrs-lightbox-open {
    overflow: hidden;
}

/* Detail information architecture (1.5.0) ------------------------------ */
.zrrs-detail-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 0 0 var(--zrrs-space-4);
    padding-bottom: .8rem;
    border-bottom: 1px solid var(--zrrs-border);
    color: var(--zrrs-muted);
    font-size: .82rem;
}

.zrrs-detail-toolbar__back {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    flex: 0 0 auto;
    font-weight: 700;
    text-decoration: none;
}

.zrrs-detail-toolbar__back:hover {
    text-decoration: underline;
    text-underline-offset: .18em;
}

.zrrs-detail-toolbar__meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .35rem 1rem;
    min-width: 0;
}

.zrrs-detail-toolbar__meta-item {
    display: inline-flex;
    gap: .3rem;
    min-width: 0;
}

.zrrs-detail-toolbar__meta-item strong {
    color: inherit;
    font-weight: 700;
}

.zrrs-property-detail__hero {
    align-items: stretch;
}

.zrrs-property-detail__heading {
    align-self: center;
    padding-block: .25rem;
}

.zrrs-property-detail__title {
    max-width: 18ch;
}

.zrrs-property-detail__location {
    display: flex;
    align-items: flex-start;
    gap: .45rem;
    max-width: 58rem;
    line-height: 1.5;
}

.zrrs-property-detail__location-marker {
    flex: 0 0 auto;
    font-size: 1.1em;
    line-height: 1.25;
}

.zrrs-property-detail__price-wrap {
    display: flex;
    min-width: min(100%, 15.5rem);
    flex-direction: column;
    justify-content: center;
    padding: 1rem 1.1rem;
    border: 1px solid var(--zrrs-border);
    border-radius: var(--zrrs-radius);
    background: var(--zrrs-surface);
}

.zrrs-property-detail__price {
    overflow-wrap: anywhere;
}

.zrrs-property-detail__facts {
    box-shadow: 0 .2rem .8rem rgba(0, 0, 0, .035);
}

.zrrs-fact {
    display: flex;
    align-items: center;
    gap: .72rem;
}

.zrrs-fact__marker {
    width: .62rem;
    height: .62rem;
    flex: 0 0 auto;
    border: 2px solid currentColor;
    border-radius: 999px;
    opacity: .42;
}

.zrrs-fact__body {
    display: block;
    min-width: 0;
}

.zrrs-property-section,
.zrrs-section-anchor {
    scroll-margin-top: 2rem;
}

.zrrs-property-section__eyebrow {
    margin: 0 0 .35rem;
    color: var(--zrrs-muted);
    font-size: .74rem;
    font-weight: 750;
    line-height: 1.3;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.zrrs-property-section__eyebrow + h2,
.zrrs-property-section__eyebrow + .zrrs-section-heading {
    margin-top: 0;
}

.zrrs-property-section--description {
    padding-bottom: var(--zrrs-space-4);
    border-bottom: 1px solid var(--zrrs-border);
}

.zrrs-property-section--description .zrrs-property-section__content {
    max-width: 72ch;
    font-size: 1.02rem;
}

.zrrs-attribute-group {
    padding: 1rem;
    border: 1px solid var(--zrrs-border);
    border-radius: var(--zrrs-radius-small);
    background: var(--zrrs-surface);
}

.zrrs-attribute-list {
    border-top-color: var(--zrrs-border);
}

.zrrs-location-card {
    justify-content: flex-start;
    gap: .85rem;
    padding: 1rem;
}

.zrrs-location-card__icon {
    display: grid;
    width: 2.4rem;
    height: 2.4rem;
    flex: 0 0 auto;
    place-items: center;
    border: 1px solid var(--zrrs-border);
    border-radius: 999px;
    background: var(--zrrs-card-background);
}

.zrrs-location-card > span:last-child {
    display: grid;
    gap: .18rem;
}

.zrrs-location-card small {
    color: var(--zrrs-muted);
    font-size: .76rem;
    font-weight: 400;
}

@media (max-width: 58rem) {
    .zrrs-property-detail__layout {
        grid-template-columns: 1fr;
    }

    .zrrs-property-detail__aside {
        position: static;
    }

    .zrrs-broker-card {
        max-width: none;
    }
}

@media (max-width: 42rem) {
    .zrrs-property-detail__hero {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .zrrs-property-detail__price-wrap,
    .zrrs-property-detail__badges {
        max-width: none;
        justify-content: flex-start;
        text-align: left;
    }

    .zrrs-property-detail__price-wrap {
        width: 100%;
    }

    .zrrs-detail-toolbar {
        align-items: flex-start;
        flex-direction: column;
    }

    .zrrs-detail-toolbar__meta {
        justify-content: flex-start;
    }

    

    

    

    .zrrs-gallery__stage {
        aspect-ratio: 4 / 3;
        border-radius: var(--zrrs-radius);
    }

    .zrrs-gallery__thumbs {
        grid-auto-columns: 5.75rem;
    }

    .zrrs-attribute-groups,
    .zrrs-project-meta {
        grid-template-columns: 1fr;
    }

    .zrrs-section-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 0;
    }

    .zrrs-lightbox__nav {
        top: auto;
        bottom: 1rem;
        transform: none;
    }

    .zrrs-lightbox__nav--prev { left: calc(50% - 3.4rem); }
    .zrrs-lightbox__nav--next { right: calc(50% - 3.4rem); }
}

@media (prefers-reduced-motion: reduce) {
    .zrrs-gallery__thumb {
        transition: none;
    }
}

/* Fullscreen gallery + responsive image delivery (1.6.0) --------------- */
.zrrs-gallery__viewport {
    position: relative;
}

.zrrs-gallery__stage img,
.zrrs-gallery__thumb img,
.zrrs-lightbox__figure img {
    -webkit-user-drag: none;
    user-select: none;
}

.zrrs-gallery__zoom-hint {
    position: absolute;
    top: .85rem;
    right: .85rem;
    display: grid;
    width: 2.15rem;
    height: 2.15rem;
    place-items: center;
    border-radius: 999px;
    background: rgba(0, 0, 0, .58);
    color: #fff;
    font-size: 1rem;
    font-weight: 800;
    line-height: 1;
    backdrop-filter: blur(5px);
}

.zrrs-gallery__type {
    top: .9rem;
    bottom: auto;
}

.zrrs-gallery__nav,
.zrrs-gallery__open-all {
    position: absolute;
    z-index: 2;
    border: 1px solid rgba(255, 255, 255, .36);
    background: rgba(0, 0, 0, .58);
    color: #fff;
    box-shadow: 0 .2rem .9rem rgba(0, 0, 0, .18);
    backdrop-filter: blur(5px);
    cursor: pointer;
}

.zrrs-gallery__nav {
    top: 50%;
    display: grid;
    width: 2.85rem;
    height: 2.85rem;
    place-items: center;
    padding: 0;
    border-radius: 999px;
    font: inherit;
    font-size: 1.85rem;
    line-height: 1;
    transform: translateY(-50%);
    transition: background-color .18s ease, transform .18s ease;
}

.zrrs-gallery__nav--prev { left: .8rem; }
.zrrs-gallery__nav--next { right: .8rem; }

.zrrs-gallery__open-all {
    left: .85rem;
    bottom: .8rem;
    min-height: 2.2rem;
    padding: .45rem .7rem;
    border-radius: 999px;
    font: inherit;
    font-size: .74rem;
    font-weight: 750;
    line-height: 1.15;
}

.zrrs-gallery__nav:focus-visible,
.zrrs-gallery__open-all:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 3px;
}

@media (hover: hover) {
    .zrrs-gallery__nav:hover,
    .zrrs-gallery__open-all:hover {
        background: rgba(0, 0, 0, .76);
    }

    .zrrs-gallery__nav:hover {
        transform: translateY(-50%) scale(1.04);
    }
}

.zrrs-lightbox {
    display: flex;
    align-items: stretch;
    justify-content: center;
    padding: clamp(.75rem, 2vw, 1.4rem);
    overscroll-behavior: contain;
}

.zrrs-lightbox__topbar {
    position: absolute;
    top: 1rem;
    left: 50%;
    z-index: 3;
    display: flex;
    align-items: center;
    gap: .5rem;
    max-width: calc(100vw - 10rem);
    transform: translateX(-50%);
}

.zrrs-lightbox__counter,
.zrrs-lightbox__type {
    display: inline-flex;
    min-height: 2rem;
    align-items: center;
    padding: .35rem .62rem;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 999px;
    background: rgba(0, 0, 0, .42);
    color: #fff;
    font-size: .76rem;
    font-weight: 750;
    line-height: 1;
    backdrop-filter: blur(5px);
}

.zrrs-lightbox__figure {
    width: 100%;
    max-width: none;
    max-height: none;
    min-height: 0;
    flex: 1 1 auto;
    grid-template-rows: minmax(0, 1fr) auto;
    padding: 3.25rem clamp(3.4rem, 6vw, 6rem) 2.8rem;
}

.zrrs-lightbox__media {
    position: relative;
    display: grid;
    width: 100%;
    min-width: 0;
    min-height: 0;
    place-items: center;
}

.zrrs-lightbox__media::after {
    content: '';
    position: absolute;
    width: 2.2rem;
    height: 2.2rem;
    border: 3px solid rgba(255, 255, 255, .3);
    border-top-color: #fff;
    border-radius: 999px;
    opacity: 0;
    pointer-events: none;
    animation: zrrs-gallery-spin .8s linear infinite;
    transition: opacity .12s ease;
}

.zrrs-lightbox__media.is-loading::after {
    opacity: 1;
}

.zrrs-lightbox__figure img {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: calc(100vh - 8.4rem);
    object-fit: contain;
    touch-action: pan-y;
}

.zrrs-lightbox__figure figcaption {
    min-height: 1.4rem;
    margin-top: .7rem;
    padding-inline: 1rem;
}

.zrrs-lightbox__swipe-hint {
    position: absolute;
    left: 50%;
    bottom: .6rem;
    margin: 0;
    color: rgba(255, 255, 255, .62);
    font-size: .7rem;
    transform: translateX(-50%);
    white-space: nowrap;
}

.zrrs-lightbox__close,
.zrrs-lightbox__nav {
    z-index: 4;
    background: rgba(0, 0, 0, .46);
}

.zrrs-lightbox__close {
    width: 3.2rem;
    height: 3.2rem;
}

.zrrs-lightbox__nav {
    width: 3.4rem;
    height: 3.4rem;
}

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

@media (max-width: 42rem) {
    .zrrs-gallery__zoom-hint {
        top: .65rem;
        right: .65rem;
        width: 2rem;
        height: 2rem;
    }

    .zrrs-gallery__counter {
        right: .65rem;
        bottom: .65rem;
    }

    .zrrs-gallery__type {
        top: .65rem;
        left: .65rem;
    }

    .zrrs-gallery__nav {
        width: 2.6rem;
        height: 2.6rem;
        font-size: 1.65rem;
    }

    .zrrs-gallery__nav--prev { left: .55rem; }
    .zrrs-gallery__nav--next { right: .55rem; }

    .zrrs-gallery__open-all {
        left: .65rem;
        bottom: .6rem;
        max-width: calc(100% - 6.2rem);
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .zrrs-lightbox {
        padding: .45rem;
    }

    .zrrs-lightbox__topbar {
        top: .7rem;
        max-width: calc(100vw - 8rem);
    }

    .zrrs-lightbox__close {
        top: .55rem;
        right: .55rem;
        width: 2.8rem;
        height: 2.8rem;
    }

    .zrrs-lightbox__figure {
        padding: 3.4rem .35rem 5.1rem;
    }

    .zrrs-lightbox__figure img {
        max-height: calc(100vh - 10rem);
    }

    .zrrs-lightbox__nav {
        bottom: 1rem;
        width: 3.1rem;
        height: 3.1rem;
    }

    .zrrs-lightbox__nav--prev { left: calc(50% - 3.6rem); }
    .zrrs-lightbox__nav--next { right: calc(50% - 3.6rem); }

    .zrrs-lightbox__swipe-hint {
        bottom: 4.45rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .zrrs-gallery__nav,
    .zrrs-lightbox__media::after {
        transition: none;
    }

    .zrrs-lightbox__media::after {
        animation-duration: 1.6s;
    }
}

/* Lead/contact experience (1.7.0) --------------------------------------- */
.zrrs-property-detail__aside {
    display: grid;
    gap: 1rem;
}

.zrrs-broker-card__action {
    min-width: 0;
    flex-direction: column;
    gap: .12rem;
}

.zrrs-broker-card__action small {
    max-width: 100%;
    overflow: hidden;
    color: var(--zrrs-muted);
    font-size: .75rem;
    font-weight: 500;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.zrrs-contact-card {
    scroll-margin-top: 1.5rem;
    padding: 1.15rem;
    border: 1px solid var(--zrrs-border);
    border-radius: var(--zrrs-radius);
    background: var(--zrrs-card-background);
    box-shadow: 0 .25rem 1rem rgba(0, 0, 0, .045);
}

.zrrs-contact-card__eyebrow {
    margin: 0 0 .35rem;
    color: var(--zrrs-muted);
    font-size: .74rem;
    font-weight: 750;
    line-height: 1.3;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.zrrs-contact-card h2 {
    margin: 0;
    font: inherit;
    font-size: 1.15rem;
    font-weight: 750;
    line-height: 1.25;
}

.zrrs-contact-card__intro {
    margin: .55rem 0 1rem;
    color: var(--zrrs-muted);
    font-size: .86rem;
    line-height: 1.55;
}

.zrrs-contact-notice {
    display: grid;
    gap: .2rem;
    margin: 0 0 1rem;
    padding: .75rem .8rem;
    border: 1px solid currentColor;
    border-radius: var(--zrrs-radius-small);
    background: var(--zrrs-surface);
    font-size: .82rem;
    line-height: 1.45;
}

.zrrs-contact-notice--success strong::before {
    content: "✓ ";
}

.zrrs-contact-notice--error strong::before {
    content: "! ";
}

.zrrs-contact-form {
    display: grid;
    gap: .85rem;
}

.zrrs-contact-form__field {
    display: grid;
    gap: .32rem;
    margin: 0;
}

.zrrs-contact-form__field > span {
    color: var(--zrrs-muted);
    font-size: .78rem;
    font-weight: 700;
    line-height: 1.3;
}

.zrrs-contact-form input[type="text"],
.zrrs-contact-form input[type="email"],
.zrrs-contact-form input[type="tel"],
.zrrs-contact-form textarea {
    width: 100%;
    min-height: 2.7rem;
    margin: 0;
    padding: .62rem .7rem;
    border: 1px solid var(--zrrs-border);
    border-radius: var(--zrrs-radius-small);
    background: var(--zrrs-control-background);
    color: inherit;
    font: inherit;
    font-size: .9rem;
    line-height: 1.4;
}

.zrrs-contact-form textarea {
    min-height: 7.5rem;
    resize: vertical;
}

.zrrs-contact-form input:focus,
.zrrs-contact-form textarea:focus,
.zrrs-contact-form__consent input:focus-visible,
.zrrs-contact-notice:focus-visible,
.zrrs-mobile-contact__action:focus-visible {
    outline: 2px solid var(--zrrs-focus);
    outline-offset: 2px;
}

.zrrs-contact-form__consent {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    gap: .55rem;
    margin: 0;
    color: var(--zrrs-muted);
    font-size: .76rem;
    line-height: 1.45;
}

.zrrs-contact-form__consent input {
    width: 1rem;
    height: 1rem;
    margin: .13rem 0 0;
}

.zrrs-contact-form__consent a {
    white-space: nowrap;
    text-underline-offset: .18em;
}

.zrrs-contact-form__submit {
    width: 100%;
    cursor: pointer;
}

.zrrs-contact-form.is-submitting .zrrs-contact-form__submit {
    cursor: wait;
    opacity: .72;
}

.zrrs-contact-form__note {
    margin: -.2rem 0 0;
    color: var(--zrrs-muted);
    font-size: .7rem;
    line-height: 1.45;
}

.zrrs-contact-form__honeypot {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
}

.zrrs-mobile-contact {
    display: none;
}

@media (max-width: 58rem) {
    .zrrs-property-detail {
        padding-bottom: calc(var(--zrrs-space-5) + 5rem + env(safe-area-inset-bottom));
    }

    .zrrs-contact-card {
        padding: clamp(1rem, 4vw, 1.35rem);
    }

    .zrrs-mobile-contact {
        position: fixed;
        z-index: 99990;
        right: 0;
        bottom: 0;
        left: 0;
        display: flex;
        align-items: stretch;
        justify-content: center;
        gap: .35rem;
        padding: .55rem max(.6rem, env(safe-area-inset-right)) calc(.55rem + env(safe-area-inset-bottom)) max(.6rem, env(safe-area-inset-left));
        border-top: 1px solid rgba(127, 127, 127, .32);
        background: #fff;
        color: #151515;
        background: var(--zrrs-mobile-contact-background, Canvas);
        color: var(--zrrs-mobile-contact-color, CanvasText);
        box-shadow: 0 -.35rem 1.25rem rgba(0, 0, 0, .11);
        transition: transform .2s ease, opacity .2s ease;
    }

    .zrrs-mobile-contact.is-contact-visible {
        transform: translateY(110%);
        opacity: 0;
        pointer-events: none;
    }

    .zrrs-mobile-contact__action {
        display: inline-flex;
        min-width: 0;
        min-height: 3rem;
        flex: 1 1 0;
        align-items: center;
        justify-content: center;
        gap: .35rem;
        padding: .48rem .55rem;
        border: 1px solid rgba(127, 127, 127, .36);
        border-radius: var(--zrrs-radius-small);
        background: transparent;
        color: inherit;
        font-size: .82rem;
        font-weight: 750;
        line-height: 1.1;
        text-align: center;
        text-decoration: none;
    }

    .zrrs-mobile-contact__action--primary {
        background: rgba(127, 127, 127, .16);
    }

    .zrrs-mobile-contact__icon {
        flex: 0 0 auto;
        font-size: .95rem;
    }
}

@media (max-width: 24rem) {
    .zrrs-mobile-contact__action {
        gap: .18rem;
        padding-inline: .35rem;
        font-size: .74rem;
    }

    .zrrs-mobile-contact__icon {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .zrrs-mobile-contact {
        transition: none;
    }
}

/* Broker directory and public profiles */
.zrrs-broker-directory__header {
    max-width: 48rem;
    margin: 0 0 var(--zrrs-space-5);
}

.zrrs-broker-directory__eyebrow,
.zrrs-broker-profile__eyebrow {
    margin: 0 0 .45rem;
    color: var(--zrrs-muted);
    font-size: .76rem;
    font-weight: 780;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.zrrs-broker-directory__header h1,
.zrrs-broker-profile__intro h1 {
    margin: 0;
    font: inherit;
    font-size: clamp(2rem, 5vw, 3.25rem);
    font-weight: 780;
    line-height: 1.05;
    letter-spacing: -.035em;
}

.zrrs-broker-directory__header > p:last-child {
    max-width: 42rem;
    margin: .85rem 0 0;
    color: var(--zrrs-muted);
    font-size: clamp(1rem, 1.8vw, 1.13rem);
    line-height: 1.65;
}

.zrrs-broker-directory__count {
    margin: 0 0 var(--zrrs-space-3);
    color: var(--zrrs-muted);
    font-size: .9rem;
}

.zrrs-broker-directory__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(1rem, 2.2vw, 1.6rem);
}

.zrrs-broker-directory-card {
    display: flex;
    min-width: 0;
    min-height: 100%;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--zrrs-border);
    border-radius: calc(var(--zrrs-radius) + .2rem);
    background: rgba(127, 127, 127, .025);
    box-shadow: var(--zrrs-shadow);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

@media (hover: hover) {
    .zrrs-broker-directory-card:hover {
        transform: translateY(-3px);
        border-color: rgba(127, 127, 127, .42);
        box-shadow: var(--zrrs-shadow-hover);
    }
}

.zrrs-broker-directory-card__profile {
    display: flex;
    min-height: 100%;
    flex: 1 1 auto;
    flex-direction: column;
    color: inherit;
    text-decoration: none;
}

.zrrs-broker-directory-card__profile:focus-visible,
.zrrs-broker-directory-card__contact a:focus-visible,
.zrrs-broker-profile a:focus-visible {
    outline: 2px solid var(--zrrs-focus);
    outline-offset: 3px;
}

.zrrs-broker-directory-card__media {
    display: grid;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    place-items: center;
    background: var(--zrrs-surface-strong);
}

.zrrs-broker-directory-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.zrrs-broker-directory-card__placeholder,
.zrrs-broker-profile__placeholder {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    color: var(--zrrs-muted);
}

.zrrs-broker-directory-card__placeholder svg,
.zrrs-broker-profile__placeholder svg {
    width: 4.25rem;
    height: 4.25rem;
    opacity: .45;
}

.zrrs-broker-directory-card__body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: 1.1rem;
}

.zrrs-broker-directory-card__eyebrow {
    margin: 0 0 .35rem;
    color: var(--zrrs-muted);
    font-size: .7rem;
    font-weight: 760;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.zrrs-broker-directory-card h2 {
    margin: 0;
    font: inherit;
    font-size: 1.2rem;
    font-weight: 760;
    line-height: 1.2;
}

.zrrs-broker-directory-card__position {
    margin: .35rem 0 0;
    color: var(--zrrs-muted);
    font-size: .92rem;
}

.zrrs-broker-directory-card__offers {
    margin: .9rem 0 0;
    font-size: .88rem;
    font-weight: 650;
}

.zrrs-broker-directory-card__more {
    display: inline-block;
    margin-top: auto;
    padding-top: 1rem;
    font-size: .9rem;
    font-weight: 760;
}

.zrrs-broker-directory-card__contact {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid var(--zrrs-border);
}

.zrrs-broker-directory-card__contact a {
    min-width: 0;
    padding: .72rem .6rem;
    color: inherit;
    font-size: .84rem;
    font-weight: 700;
    text-align: center;
    text-decoration: none;
}

.zrrs-broker-directory-card__contact a + a {
    border-left: 1px solid var(--zrrs-border);
}

.zrrs-broker-profile__back {
    margin: 0 0 var(--zrrs-space-3);
    font-size: .9rem;
}

.zrrs-broker-profile__back a,
.zrrs-broker-card__profile-link a {
    font-weight: 700;
    text-decoration-thickness: .08em;
    text-underline-offset: .18em;
}

.zrrs-broker-profile__hero {
    display: grid;
    grid-template-columns: minmax(15rem, 22rem) minmax(0, 1fr);
    gap: clamp(1.5rem, 4vw, 3.5rem);
    align-items: center;
    margin-bottom: clamp(2rem, 5vw, 4rem);
}

.zrrs-broker-profile__photo-wrap {
    aspect-ratio: 4 / 5;
    overflow: hidden;
    border: 1px solid var(--zrrs-border);
    border-radius: calc(var(--zrrs-radius) + .35rem);
    background: var(--zrrs-surface-strong);
    box-shadow: var(--zrrs-shadow);
}

.zrrs-broker-profile__photo {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.zrrs-broker-profile__position {
    margin: .65rem 0 0;
    color: var(--zrrs-muted);
    font-size: clamp(1rem, 2vw, 1.2rem);
}

.zrrs-broker-profile__languages {
    margin: 1.2rem 0 0;
    line-height: 1.6;
}

.zrrs-broker-profile__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: 1.4rem;
}

.zrrs-broker-profile__actions .zrrs-button {
    min-width: min(100%, 12rem);
}

.zrrs-broker-profile__actions .zrrs-button small {
    display: block;
    margin-top: .18rem;
    font-size: .72rem;
    font-weight: 500;
    opacity: .78;
}

.zrrs-broker-profile__about {
    max-width: 52rem;
    margin: 0 0 clamp(2.25rem, 5vw, 4rem);
    padding-top: var(--zrrs-space-4);
    border-top: 1px solid var(--zrrs-border);
}

.zrrs-broker-profile__about h2,
.zrrs-broker-profile__offers h2 {
    margin: 0;
    font: inherit;
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 760;
    line-height: 1.15;
}

.zrrs-broker-profile__description {
    margin-top: 1rem;
    line-height: 1.7;
}

.zrrs-broker-profile__description p:last-child {
    margin-bottom: 0;
}

.zrrs-broker-profile__offers {
    padding-top: var(--zrrs-space-4);
    border-top: 1px solid var(--zrrs-border);
}

.zrrs-broker-profile__offers-header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: var(--zrrs-space-4);
}

.zrrs-broker-profile__offers-header > p {
    margin: 0;
    color: var(--zrrs-muted);
    white-space: nowrap;
}

@media (max-width: 64rem) {
    .zrrs-broker-directory__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 48rem) {
    .zrrs-broker-profile__hero {
        grid-template-columns: minmax(0, 1fr);
        gap: 1.4rem;
    }

    .zrrs-broker-profile__photo-wrap {
        width: min(100%, 22rem);
    }

    .zrrs-broker-profile__offers-header {
        align-items: flex-start;
        flex-direction: column;
        gap: .45rem;
    }
}

@media (max-width: 42rem) {
    .zrrs-broker-directory__grid {
        grid-template-columns: 1fr;
    }

    .zrrs-broker-profile__actions {
        align-items: stretch;
        flex-direction: column;
    }

    .zrrs-broker-profile__actions .zrrs-button {
        width: 100%;
    }
}

/* Similar properties (1.9.0) ------------------------------------------ */
.zrrs-property-section--similar {
    margin: clamp(2.75rem, 7vw, 5rem) 0 0;
    padding-top: clamp(1.75rem, 4vw, 2.75rem);
    border-top: 1px solid var(--zrrs-border);
}

.zrrs-similar__header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1.25rem;
    margin-bottom: var(--zrrs-space-4);
}

.zrrs-similar__header h2 {
    margin: 0;
    font: inherit;
    font-size: clamp(1.55rem, 3vw, 2.15rem);
    font-weight: 760;
    line-height: 1.15;
    letter-spacing: -.02em;
}

.zrrs-similar__header > p {
    max-width: 34rem;
    margin: 0;
    color: var(--zrrs-muted);
    font-size: .9rem;
    line-height: 1.55;
    text-align: right;
}

.zrrs-property-list--similar {
    --zrrs-card-columns: 3;
}

@media (max-width: 64rem) {
    .zrrs-property-list--similar {
        --zrrs-card-columns: 2;
    }
}

@media (max-width: 42rem) {
    .zrrs-similar__header {
        align-items: flex-start;
        flex-direction: column;
        gap: .6rem;
    }

    .zrrs-similar__header > p {
        text-align: left;
    }

    .zrrs-property-list--similar {
        --zrrs-card-columns: 1;
    }
}

/* Saved properties and comparison (1.10.0) ---------------------------- */
.zrrs-property-card__save-actions {
    position: absolute;
    z-index: 5;
    top: .7rem;
    right: .7rem;
    display: flex;
    gap: .4rem;
}

.zrrs-save-button {
    position: relative;
    display: inline-grid;
    width: 2.25rem;
    height: 2.25rem;
    margin: 0;
    padding: 0;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 999px;
    background: rgba(255, 255, 255, .94);
    color: #151515;
    box-shadow: 0 .18rem .65rem rgba(0, 0, 0, .16);
    cursor: pointer;
    backdrop-filter: blur(6px);
    transition: transform .16s ease, background-color .16s ease, color .16s ease;
}

.zrrs-save-button svg {
    width: 1.1rem;
    height: 1.1rem;
    pointer-events: none;
}

.zrrs-save-button.is-active {
    background: #151515;
    color: #fff;
}

.zrrs-save-button--favorite.is-active svg {
    fill: currentColor;
}

.zrrs-save-button:focus-visible,
.zrrs-detail-save-button:focus-visible {
    outline: 3px solid currentColor;
    outline-offset: 2px;
}

@media (hover: hover) {
    .zrrs-save-button:hover {
        transform: translateY(-1px) scale(1.03);
    }
}

.zrrs-detail-save-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .55rem;
    margin-top: .85rem;
}

.zrrs-detail-save-button {
    display: inline-flex;
    min-height: 2.5rem;
    align-items: center;
    justify-content: center;
    gap: .48rem;
    padding: .55rem .8rem;
    border: 1px solid var(--zrrs-border);
    border-radius: 999px;
    background: var(--zrrs-surface);
    color: inherit;
    font: inherit;
    font-size: .8rem;
    font-weight: 720;
    line-height: 1.15;
    cursor: pointer;
}

.zrrs-detail-save-button svg {
    width: 1.05rem;
    height: 1.05rem;
    flex: 0 0 auto;
}

.zrrs-detail-save-button.is-active {
    border-color: currentColor;
    background: var(--zrrs-surface-strong);
}

.zrrs-detail-save-button[data-zrrs-favorite].is-active svg {
    fill: currentColor;
}

.zrrs-saved-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: clamp(1.4rem, 4vw, 2.4rem);
    padding-bottom: 1.3rem;
    border-bottom: 1px solid var(--zrrs-border);
}

.zrrs-saved-header > div:first-child {
    max-width: 46rem;
}

.zrrs-saved-header__eyebrow {
    margin: 0 0 .35rem;
    color: var(--zrrs-muted);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.zrrs-saved-header h1 {
    margin: 0;
    font-size: clamp(1.8rem, 4vw, 3rem);
    line-height: 1.06;
    letter-spacing: -.025em;
}

.zrrs-saved-header p:not(.zrrs-saved-header__eyebrow) {
    margin: .65rem 0 0;
    color: var(--zrrs-muted);
    line-height: 1.6;
}

.zrrs-saved-header__actions {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .7rem;
}

.zrrs-saved-header__count {
    color: var(--zrrs-muted);
    font-size: .84rem;
    font-weight: 720;
}

.zrrs-saved-note {
    margin: 0 0 1rem;
    padding: .8rem 1rem;
    border: 1px solid var(--zrrs-border);
    border-radius: var(--zrrs-radius);
    background: var(--zrrs-surface-strong);
    line-height: 1.5;
}

.zrrs-favorites {
    width: min(100% - 2rem, var(--zrrs-content-width, 1180px));
    margin-right: auto;
    margin-left: auto;
    padding-top: clamp(1.5rem, 4vw, 3rem);
    padding-bottom: clamp(4rem, 8vw, 7rem);
}

.zrrs-favorites .zrrs-property-list {
    grid-template-columns: repeat(var(--zrrs-card-columns), minmax(0, 1fr));
}

@media (max-width: 56rem) {
    .zrrs-saved-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .zrrs-saved-header__actions {
        width: 100%;
        justify-content: flex-start;
    }
}

@media (max-width: 42rem) {
    .zrrs-detail-save-actions {
        justify-content: stretch;
    }

    .zrrs-detail-save-button {
        flex: 1 1 100%;
    }

    .zrrs-favorites .zrrs-property-list {
        grid-template-columns: minmax(0, 1fr);
    }

}

/* Commercial status and local price history (1.11.0) ------------------- */
.zrrs-badge--new {
    border-color: rgba(25, 105, 160, .24);
    background: #edf7ff;
    color: #155b89;
}

.zrrs-badge--price-down {
    border-color: rgba(26, 118, 67, .24);
    background: #eaf8ef;
    color: #176b3c;
}

.zrrs-badge--reserved {
    border-color: rgba(145, 106, 0, .25);
    background: #fff6d8;
    color: #755700;
}

.zrrs-badge--sold,
.zrrs-badge--rented,
.zrrs-badge--withdrawn {
    border-color: rgba(40, 40, 40, .18);
    background: #f1f1f1;
    color: #383838;
}

.zrrs-property-card__price-stack {
    min-width: 0;
}

.zrrs-property-card__old-price {
    display: block;
    margin-bottom: .18rem;
    color: var(--zrrs-muted);
    font-size: .76rem;
    font-weight: 650;
    line-height: 1.15;
    text-decoration: line-through;
}

.zrrs-property-detail__old-price {
    margin: 0 0 .2rem;
    color: var(--zrrs-muted);
    font-size: .82rem;
    font-weight: 650;
    text-decoration: line-through;
}

.zrrs-property-detail__price-reduction {
    margin: .38rem 0 0;
    font-size: .82rem;
    font-weight: 760;
    line-height: 1.35;
}

.zrrs-price-history {
    display: grid;
    gap: .65rem;
    margin-top: 1rem;
}

.zrrs-price-history__item {
    display: flex;
    align-items: flex-start;
    gap: .8rem;
    padding: .9rem 1rem;
    border: 1px solid var(--zrrs-border);
    border-radius: var(--zrrs-radius-small);
    background: var(--zrrs-surface);
}

.zrrs-price-history__marker {
    width: .7rem;
    height: .7rem;
    flex: 0 0 auto;
    margin-top: .28rem;
    border: 2px solid currentColor;
    border-radius: 999px;
    opacity: .45;
}

.zrrs-price-history__item.is-down .zrrs-price-history__marker {
    opacity: .85;
}

.zrrs-price-history__body {
    min-width: 0;
    flex: 1 1 auto;
}

.zrrs-price-history__heading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .75rem;
}

.zrrs-price-history__heading strong {
    font-size: .88rem;
}

.zrrs-price-history__heading time {
    flex: 0 0 auto;
    color: var(--zrrs-muted);
    font-size: .74rem;
}

.zrrs-price-history__body p {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: .5rem;
    margin: .35rem 0 0;
    line-height: 1.3;
}

.zrrs-price-history__old {
    color: var(--zrrs-muted);
    text-decoration: line-through;
}

.zrrs-price-history__arrow {
    color: var(--zrrs-muted);
}

.zrrs-price-history__new {
    font-size: 1.02rem;
}

@media (max-width: 42rem) {
    .zrrs-price-history__heading {
        align-items: flex-start;
        flex-direction: column;
        gap: .18rem;
    }
}

/* Batch 12: archive list/map switch and lightweight slippy map */
.zrrs-results-toolbar {
    justify-content: space-between;
}

.zrrs-view-toggle {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    padding: .2rem;
    border: 1px solid var(--zrrs-border);
    border-radius: var(--zrrs-radius-small);
    background: var(--zrrs-surface);
}

.zrrs-view-toggle__button {
    display: inline-flex;
    min-height: 2.35rem;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    padding: .42rem .7rem;
    border: 0;
    border-radius: calc(var(--zrrs-radius-small) - .12rem);
    background: transparent;
    color: var(--zrrs-muted);
    font: inherit;
    font-size: .86rem;
    font-weight: 650;
    line-height: 1;
    cursor: pointer;
}

.zrrs-view-toggle__button svg {
    width: 1.05rem;
    height: 1.05rem;
    flex: 0 0 auto;
}

.zrrs-view-toggle__button.is-active {
    background: var(--zrrs-control-background);
    color: inherit;
    box-shadow: 0 1px .35rem rgba(0, 0, 0, .08);
}

.zrrs-view-toggle__button:focus-visible,
.zrrs-map-controls__button:focus-visible,
.zrrs-map-marker:focus-visible,
.zrrs-map-cluster:focus-visible,
.zrrs-map-popup__close:focus-visible,
.zrrs-map-popup a:focus-visible,
.zrrs-map:focus-visible {
    outline: 2px solid var(--zrrs-focus);
    outline-offset: 2px;
}

.zrrs-map-view[hidden],
.zrrs-list-view[hidden] {
    display: none !important;
}

.zrrs-map-view {
    margin-top: .25rem;
}

.zrrs-map-status {
    min-height: 1.35rem;
    margin: 0 0 .7rem;
    color: var(--zrrs-muted);
    font-size: .86rem;
    line-height: 1.45;
}

.zrrs-map-view.is-loading .zrrs-map-status::before {
    display: inline-block;
    width: .78rem;
    height: .78rem;
    margin-right: .45rem;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 999px;
    content: '';
    vertical-align: -.08rem;
    animation: zrrs-map-spin .75s linear infinite;
}

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

.zrrs-map {
    position: relative;
    width: 100%;
    height: clamp(26rem, 64vh, 43rem);
    overflow: hidden;
    border: 1px solid var(--zrrs-border);
    border-radius: var(--zrrs-radius);
    background:
        linear-gradient(135deg, rgba(127, 127, 127, .065), rgba(127, 127, 127, .025));
    box-shadow: var(--zrrs-shadow);
    cursor: grab;
    isolation: isolate;
    touch-action: none;
    user-select: none;
}

.zrrs-map.is-dragging {
    cursor: grabbing;
}

.zrrs-map__tiles,
.zrrs-map__markers {
    position: absolute;
    inset: 0;
}

.zrrs-map__tiles {
    z-index: 1;
    overflow: hidden;
    background: rgba(127, 127, 127, .04);
}

.zrrs-map__tile {
    position: absolute;
    width: 256px;
    height: 256px;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
    object-fit: cover;
    pointer-events: none;
    user-select: none;
}

.zrrs-map__markers {
    z-index: 3;
    pointer-events: none;
}

.zrrs-map-marker,
.zrrs-map-cluster,
.zrrs-map-popup {
    pointer-events: auto;
}

.zrrs-map-marker {
    position: absolute;
    min-width: 2.15rem;
    max-width: 9.5rem;
    min-height: 2.15rem;
    padding: .42rem .62rem;
    transform: translate(-50%, -100%);
    border: 2px solid currentColor;
    border-radius: 999px 999px 999px .38rem;
    background: Canvas;
    color: CanvasText;
    box-shadow: 0 .3rem .9rem rgba(0, 0, 0, .22);
    font: inherit;
    font-size: .76rem;
    font-weight: 750;
    line-height: 1.05;
    white-space: nowrap;
    cursor: pointer;
}

.zrrs-map-marker::after {
    position: absolute;
    left: 50%;
    bottom: -.42rem;
    width: .56rem;
    height: .56rem;
    transform: translateX(-50%) rotate(45deg);
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    background: Canvas;
    content: '';
}

.zrrs-map-marker.is-approximate {
    border-style: dashed;
}

.zrrs-map-marker__label {
    position: relative;
    z-index: 1;
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
}

.zrrs-map-cluster {
    position: absolute;
    display: inline-flex;
    width: 2.9rem;
    height: 2.9rem;
    align-items: center;
    justify-content: center;
    transform: translate(-50%, -50%);
    border: .32rem solid rgba(255, 255, 255, .72);
    border-radius: 999px;
    background: CanvasText;
    color: Canvas;
    box-shadow: 0 .3rem 1rem rgba(0, 0, 0, .22);
    font: inherit;
    font-size: .82rem;
    font-weight: 800;
    cursor: pointer;
}

.zrrs-map-controls {
    position: absolute;
    top: .85rem;
    left: .85rem;
    z-index: 6;
    display: grid;
    overflow: hidden;
    border: 1px solid rgba(0, 0, 0, .18);
    border-radius: .55rem;
    background: Canvas;
    box-shadow: 0 .25rem .8rem rgba(0, 0, 0, .16);
}

.zrrs-map-controls__button {
    display: inline-flex;
    width: 2.45rem;
    height: 2.45rem;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0;
    border: 0;
    border-bottom: 1px solid rgba(0, 0, 0, .12);
    background: transparent;
    color: CanvasText;
    font: inherit;
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
}

.zrrs-map-controls__button:last-child {
    border-bottom: 0;
}

.zrrs-map-attribution {
    position: absolute;
    right: .35rem;
    bottom: .35rem;
    z-index: 6;
    max-width: calc(100% - .7rem);
    padding: .15rem .35rem;
    border-radius: .25rem;
    background: rgba(255, 255, 255, .9);
    color: #222;
    font-size: .65rem;
    line-height: 1.25;
    pointer-events: auto;
}

.zrrs-map-attribution a {
    color: inherit;
}

.zrrs-map-popup {
    position: absolute;
    z-index: 8;
    width: min(19rem, calc(100% - 1rem));
    max-height: calc(100% - 1rem);
    overflow: auto;
    transform: translate(-50%, -100%);
    border: 1px solid rgba(0, 0, 0, .16);
    border-radius: .8rem;
    background: Canvas;
    color: CanvasText;
    box-shadow: 0 .65rem 2rem rgba(0, 0, 0, .26);
    user-select: text;
}

.zrrs-map-popup.is-below {
    transform: translate(-50%, 0);
}

.zrrs-map-popup__close {
    position: absolute;
    top: .38rem;
    right: .38rem;
    z-index: 2;
    display: inline-flex;
    width: 1.85rem;
    height: 1.85rem;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0;
    border: 1px solid rgba(0, 0, 0, .16);
    border-radius: 999px;
    background: rgba(255, 255, 255, .94);
    color: #111;
    font: inherit;
    font-size: 1.15rem;
    line-height: 1;
    cursor: pointer;
}

.zrrs-map-popup__media {
    display: block;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: rgba(127, 127, 127, .08);
}

.zrrs-map-popup__image {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    object-fit: cover;
}

.zrrs-map-popup__body {
    padding: .9rem 1rem 1rem;
}

.zrrs-map-popup__meta,
.zrrs-map-popup__location,
.zrrs-map-popup__privacy,
.zrrs-map-popup__price {
    margin: 0;
}

.zrrs-map-popup__meta {
    padding-right: 1.7rem;
    color: var(--zrrs-muted);
    font-size: .72rem;
    font-weight: 650;
    text-transform: uppercase;
    letter-spacing: .035em;
}

.zrrs-map-popup__title {
    margin: .28rem 1.5rem .32rem 0;
    font: inherit;
    font-size: 1rem;
    font-weight: 750;
    line-height: 1.25;
}

.zrrs-map-popup__title a {
    text-decoration: none;
}

.zrrs-map-popup__location {
    color: var(--zrrs-muted);
    font-size: .82rem;
    line-height: 1.35;
}

.zrrs-map-popup__privacy {
    margin-top: .18rem;
    color: var(--zrrs-muted);
    font-size: .7rem;
    font-style: italic;
}

.zrrs-map-popup__facts {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-top: .65rem;
}

.zrrs-map-popup__facts span {
    padding: .22rem .42rem;
    border: 1px solid var(--zrrs-border);
    border-radius: 999px;
    font-size: .72rem;
    line-height: 1.2;
}

.zrrs-map-popup__price {
    margin-top: .7rem;
    font-size: 1rem;
    font-weight: 800;
}

.zrrs-map-popup__detail {
    display: inline-flex;
    margin-top: .55rem;
    font-size: .82rem;
    font-weight: 700;
    text-underline-offset: .18em;
}

.zrrs-map-popup--cluster {
    padding: 1rem 1rem .9rem;
}

.zrrs-map-popup__cluster-title {
    display: block;
    padding-right: 2rem;
    font-size: .9rem;
}

.zrrs-map-popup__cluster-list {
    display: grid;
    gap: .35rem;
    margin: .65rem 0 0;
    padding: 0;
    list-style: none;
    font-size: .8rem;
    line-height: 1.3;
}

.zrrs-map-popup__cluster-list a {
    display: block;
    padding: .35rem .45rem;
    border-radius: .35rem;
    background: var(--zrrs-surface);
    text-decoration: none;
}

.zrrs-map-popup__cluster-more {
    margin: .5rem 0 0;
    color: var(--zrrs-muted);
    font-size: .72rem;
}

.zrrs-map-note {
    margin: .65rem 0 0;
    color: var(--zrrs-muted);
    font-size: .72rem;
    line-height: 1.4;
}

@media (hover: hover) {
    .zrrs-view-toggle__button:hover,
    .zrrs-map-controls__button:hover {
        background: var(--zrrs-surface-strong);
    }

    .zrrs-map-marker:hover {
        transform: translate(-50%, -100%) scale(1.04);
    }

    .zrrs-map-cluster:hover {
        transform: translate(-50%, -50%) scale(1.06);
    }
}

@media (max-width: 42rem) {
    .zrrs-results-toolbar {
        align-items: stretch;
        flex-wrap: wrap;
    }

    .zrrs-view-toggle {
        flex: 0 0 auto;
    }

    .zrrs-archive__sort {
        min-width: min(100%, 15rem);
        flex: 1 1 15rem;
    }

    .zrrs-map {
        height: min(70vh, 34rem);
        min-height: 24rem;
        border-radius: .65rem;
    }

    .zrrs-map-popup {
        width: min(18rem, calc(100% - .75rem));
    }

    .zrrs-map-marker {
        max-width: 7.8rem;
        font-size: .7rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .zrrs-map-view.is-loading .zrrs-map-status::before {
        animation-duration: 1.4s;
    }

    .zrrs-map-marker,
    .zrrs-map-cluster {
        transition: none;
    }
}

/* Keep the view switch progressive-enhancement-only. */
.zrrs-view-toggle {
    display: none;
}

.zrrs-results-toolbar {
    justify-content: flex-end;
}

.zrrs-js .zrrs-view-toggle {
    display: inline-flex;
}

.zrrs-js .zrrs-results-toolbar {
    justify-content: space-between;
}

@media (max-width: 42rem) {
    .zrrs-js .zrrs-results-toolbar {
        justify-content: stretch;
    }
}

/* Batch 13: controlled SEO landing pages and archive discovery links. */
.zrrs-breadcrumbs {
    margin: 0 0 var(--zrrs-space-3);
    color: var(--zrrs-muted);
    font-size: .92rem;
}

.zrrs-breadcrumbs ol {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem .55rem;
    align-items: center;
    margin: 0;
    padding: 0;
    list-style: none;
}

.zrrs-breadcrumbs li {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
}

.zrrs-breadcrumbs li:not(:last-child)::after {
    content: "/";
    opacity: .55;
}

.zrrs-breadcrumbs a {
    text-decoration-thickness: .08em;
    text-underline-offset: .16em;
}

.zrrs-seo-landing .zrrs-archive__header {
    flex-wrap: wrap;
}

.zrrs-archive__intro {
    flex: 1 0 100%;
    max-width: 58rem;
    margin: .15rem 0 0;
    color: var(--zrrs-muted);
    line-height: 1.65;
}

.zrrs-seo-navigation {
    margin-top: clamp(2rem, 5vw, 3.5rem);
    padding: clamp(1.1rem, 3vw, 1.6rem);
    border: 1px solid var(--zrrs-border);
    border-radius: var(--zrrs-radius);
    background: var(--zrrs-surface);
}

.zrrs-seo-navigation > h2,
.zrrs-seo-navigation h3 {
    margin-top: 0;
}

.zrrs-seo-navigation > p {
    max-width: 52rem;
    margin: -.2rem 0 var(--zrrs-space-4);
    color: var(--zrrs-muted);
}

.zrrs-seo-navigation__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--zrrs-space-4);
}

.zrrs-seo-navigation__grid ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .6rem .9rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.zrrs-seo-navigation__grid li {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    min-width: 0;
    padding-bottom: .45rem;
    border-bottom: 1px solid var(--zrrs-border);
}

.zrrs-seo-navigation__grid li a {
    min-width: 0;
    font-weight: 600;
    text-decoration-thickness: .08em;
    text-underline-offset: .16em;
}

.zrrs-seo-navigation__grid li span {
    flex: 0 0 auto;
    color: var(--zrrs-muted);
    font-variant-numeric: tabular-nums;
}

@media (max-width: 54rem) {
    .zrrs-seo-navigation__grid,
    .zrrs-seo-navigation__grid ul {
        grid-template-columns: 1fr;
    }
}

/* Favourites heart on the detail photo, same control as on archive cards (1.15.0) */
.zrrs-gallery__save-actions {
    position: absolute;
    z-index: 6;
    top: .85rem;
    right: .85rem;
    display: flex;
    gap: .4rem;
}

.zrrs-gallery__save-actions .zrrs-save-button {
    width: 2.6rem;
    height: 2.6rem;
}

.zrrs-gallery__save-actions .zrrs-save-button svg {
    width: 1.3rem;
    height: 1.3rem;
}

@media (max-width: 42rem) {
    .zrrs-gallery__save-actions {
        top: .65rem;
        right: .65rem;
    }
}

.zrrs-screen-reader-text {
    position: absolute !important;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

/* Key facts box under the gallery (1.15.0) -------------------------------- */
.zrrs-property-detail {
    --zrrs-accent: var(--zrrs-theme-accent, #2f6f4f);
}

.zrrs-property-detail .zrrs-property-detail__facts {
    grid-template-columns: repeat(auto-fit, minmax(10.5rem, 1fr));
    gap: .75rem;
    overflow: visible;
    margin: 0 0 var(--zrrs-space-5);
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.zrrs-property-detail .zrrs-fact {
    display: flex;
    align-items: center;
    gap: .8rem;
    min-width: 0;
    padding: .95rem 1rem;
    border: 1px solid var(--zrrs-border);
    border-radius: var(--zrrs-radius);
    background: #fff;
    box-shadow: 0 .15rem .6rem rgba(0, 0, 0, .04);
}

.zrrs-fact__icon {
    display: grid;
    width: 2.6rem;
    height: 2.6rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 999px;
    background: rgba(127, 127, 127, .1);
    background: color-mix(in srgb, var(--zrrs-accent) 12%, transparent);
    color: var(--zrrs-accent);
}

.zrrs-fact__icon svg {
    width: 1.35rem;
    height: 1.35rem;
}

.zrrs-property-detail .zrrs-fact__body {
    display: flex;
    min-width: 0;
    flex-direction: column-reverse;
}

.zrrs-property-detail .zrrs-fact__value {
    font-size: 1.05rem;
    font-weight: 750;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.zrrs-property-detail .zrrs-fact__label {
    margin: 0 0 .15rem;
    color: var(--zrrs-muted);
    font-size: .72rem;
    font-weight: 650;
    letter-spacing: .04em;
    text-transform: uppercase;
}

@media (max-width: 42rem) {
    .zrrs-property-detail .zrrs-property-detail__facts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .55rem;
    }

    .zrrs-property-detail .zrrs-fact {
        padding: .75rem;
        gap: .6rem;
    }

    .zrrs-fact__icon {
        width: 2.2rem;
        height: 2.2rem;
    }
}

/* Detail header: full-width title, prominent price row (1.15.0) ---------- */
.zrrs-property-detail .zrrs-property-detail__hero {
    display: block;
    margin-bottom: var(--zrrs-space-4);
}

.zrrs-property-detail .zrrs-property-detail__title {
    max-width: none;
    font-size: clamp(1.75rem, 3.4vw, 2.75rem);
    line-height: 1.12;
    letter-spacing: -.02em;
}

.zrrs-property-detail__summary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem 1.5rem;
    margin-top: .9rem;
}

.zrrs-property-detail .zrrs-property-detail__location {
    margin: 0;
    flex: 1 1 18rem;
}

.zrrs-property-detail .zrrs-property-detail__price-wrap {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: .35rem .75rem;
    min-width: 0;
    max-width: none;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    text-align: right;
}

.zrrs-property-detail .zrrs-property-detail__badges {
    margin: 0;
}

.zrrs-property-detail .zrrs-property-detail__price {
    margin: 0;
    padding: .45rem 1rem;
    border-radius: 999px;
    background: var(--zrrs-accent);
    color: #fff;
    font-size: clamp(1.35rem, 2.6vw, 1.75rem);
    font-weight: 800;
    line-height: 1.15;
    white-space: nowrap;
}

.zrrs-property-detail .zrrs-property-detail__old-price {
    margin: 0;
    text-decoration: line-through;
    opacity: .7;
}

.zrrs-property-detail .zrrs-property-detail__price-reduction,
.zrrs-property-detail .zrrs-property-detail__price-meta {
    margin: 0;
    flex-basis: 100%;
    font-size: .85rem;
}

/* Facts strip: one compact row on desktop ------------------------------- */
.zrrs-property-detail .zrrs-property-detail__facts--n4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.zrrs-property-detail .zrrs-property-detail__facts--n5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.zrrs-property-detail .zrrs-property-detail__facts--n6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.zrrs-property-detail .zrrs-property-detail__facts--n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.zrrs-property-detail .zrrs-fact {
    padding: .75rem .85rem;
}

.zrrs-property-detail .zrrs-fact__value {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

@media (max-width: 64rem) {
    .zrrs-property-detail .zrrs-property-detail__facts--n5,
    .zrrs-property-detail .zrrs-property-detail__facts--n6 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 42rem) {
    .zrrs-property-detail__summary {
        align-items: flex-start;
        flex-direction: column;
    }

    /* In a column the 18rem flex-basis became a height: tall empty gap. */
    .zrrs-property-detail .zrrs-property-detail__location {
        flex: 0 0 auto;
    }

    .zrrs-property-detail .zrrs-property-detail__price-wrap {
        align-self: flex-start;
        justify-content: flex-start;
        width: auto;
        text-align: left;
    }

    .zrrs-property-detail .zrrs-fact__value {
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
    }

    .zrrs-property-detail .zrrs-property-detail__facts,
    .zrrs-property-detail .zrrs-property-detail__facts--n3,
    .zrrs-property-detail .zrrs-property-detail__facts--n4,
    .zrrs-property-detail .zrrs-property-detail__facts--n5,
    .zrrs-property-detail .zrrs-property-detail__facts--n6 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .zrrs-property-detail .zrrs-fact {
        padding: .6rem .65rem;
        gap: .55rem;
    }

    .zrrs-property-detail .zrrs-fact__value {
        font-size: .95rem;
    }

    .zrrs-property-detail .zrrs-fact__label {
        font-size: .66rem;
    }
}

/* Compact archive filter (1.16.0) ------------------------------------------ */
.zrrs-archive .zrrs-search-wrap {
    border: 1px solid var(--zrrs-border);
    background: #fff;
    box-shadow: 0 .2rem .9rem rgba(0, 0, 0, .05);
}

.zrrs-archive .zrrs-search {
    padding: .9rem 1rem .75rem;
}

.zrrs-archive .zrrs-search__fields {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: .7rem .75rem;
}

.zrrs-archive .zrrs-search__field {
    flex: 1 1 9.5rem;
}

/* Advanced filters: fixed 5-column rhythm (ranges take two columns), so a
   short last row keeps the same widths instead of stretching. */
.zrrs-archive .zrrs-search__field--advanced {
    flex: 0 0 calc((100% - 3rem) / 5);
    max-width: calc((100% - 3rem) / 5);
}

.zrrs-archive .zrrs-search__field--advanced.zrrs-search__field--range {
    flex: 0 0 calc((100% - 3rem) / 5 * 2 + .75rem);
    max-width: calc((100% - 3rem) / 5 * 2 + .75rem);
}

@media (max-width: 64rem) {
    .zrrs-archive .zrrs-search__field--advanced {
        flex-basis: calc((100% - 1.5rem) / 3);
        max-width: calc((100% - 1.5rem) / 3);
    }

    .zrrs-archive .zrrs-search__field--advanced.zrrs-search__field--range {
        flex-basis: calc((100% - 1.5rem) / 3 * 2 + .75rem);
        max-width: calc((100% - 1.5rem) / 3 * 2 + .75rem);
    }
}

.zrrs-archive .zrrs-search__field--range {
    display: block;
    flex: 1.5 1 13rem;
}

.zrrs-archive .zrrs-search__field--submit {
    flex: 0 0 auto;
}

.zrrs-search__break {
    display: none;
    flex-basis: 100%;
    height: 0;
}

.zrrs-search.is-advanced-open .zrrs-search__break {
    display: block;
}

.zrrs-archive .zrrs-search__field > span,
.zrrs-archive .zrrs-search__field--range > legend {
    margin: 0 0 .3rem;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.zrrs-archive .zrrs-search__field input,
.zrrs-archive .zrrs-search__field select,
.zrrs-archive .zrrs-search__field--range input {
    min-height: 2.6rem;
    padding: .45rem .65rem;
    background-color: #fff;
    font-size: .92rem;
}

.zrrs-search__range,
.zrrs-archive .zrrs-search__field--range > .zrrs-search__range {
    /* Must beat ".zrrs-search__field > span" (label styling, display:block). */
    display: flex;
    align-items: center;
    gap: .35rem;
    margin: 0;
    color: inherit;
    font-size: inherit;
    font-weight: inherit;
    letter-spacing: normal;
    text-transform: none;
}

.zrrs-search__range label {
    flex: 1 1 0;
    min-width: 0;
}

.zrrs-search__range-sep {
    color: var(--zrrs-muted);
}

.zrrs-archive .zrrs-search__submit {
    min-height: 2.6rem;
    padding: .45rem 1.1rem;
    border: 0;
    border-radius: var(--zrrs-radius-small);
    background: var(--zrrs-accent, #2f6f4f);
    color: #fff;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
}

.zrrs-archive .zrrs-search__submit:hover {
    filter: brightness(.94);
}

.zrrs-archive .zrrs-search__submit-count {
    border-color: rgba(255, 255, 255, .7);
}

.zrrs-archive .zrrs-search__actions {
    gap: .4rem 1rem;
    margin-top: .55rem;
}

.zrrs-archive .zrrs-search__actions:empty {
    display: none;
}

.zrrs-archive .zrrs-search__actions button.zrrs-search__advanced-toggle {
    min-height: 0;
    padding: .2rem 0;
    border: 0 !important;
    background: transparent;
    font-size: .88rem;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: .2em;
}

.zrrs-archive {
    --zrrs-accent: var(--zrrs-theme-accent, #2f6f4f);
}

@media (max-width: 42rem) {
    .zrrs-archive .zrrs-search__field,
    .zrrs-archive .zrrs-search__field--advanced {
        flex: 1 1 calc(50% - .4rem);
        max-width: none;
    }

    .zrrs-archive .zrrs-search__field--advanced.zrrs-search__field--range {
        flex: 1 1 100%;
        max-width: none;
    }

    .zrrs-archive .zrrs-search__field--range,
    .zrrs-archive .zrrs-search__field--submit,
    .zrrs-archive .zrrs-search__submit {
        flex: 1 1 100%;
        width: 100%;
        justify-content: center;
    }
}
