/* shared base */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@100;200;300;400;700&display=swap');

body {
    margin: 0;
    padding: 0;
    font-family: 'Montserrat', sans-serif;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    box-sizing: border-box;
    text-decoration: none;
}

/* Header and general text */
h1, h2, p {
    margin: 10px auto;
    padding: 0;
    overflow: hidden;
    text-align: center;
    overflow-wrap: break-word;
    font-weight: 300;
}

.separator {
    border: 0;
    border-top: 2px solid #ccc;
    margin: 20px 0;
}

.custom-strong {
    font-weight: 500;
    margin: 5px;
}

.disclosure {
    font-size: 11px;
    text-align: center;
    justify-content: center;
    align-items: center;
    padding: 0 20px;
}

.styled-line {
    border: none;
    border-top: 1px solid #c5cace;
    margin-bottom: 10px;
    width: 100%;
}

.info-section p {
    font-size: 11px;
    margin-top: 15px;
}

/* Popup details grid */
.popup-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    width: 100%;
    max-width: 780px;
    margin: 18px auto;
}

.popup-row.popup-row-3 {
    grid-template-columns: repeat(3, 1fr);
    max-width: 560px;
}

.popup-item {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 72px;
    padding: 14px 10px;
    box-sizing: border-box;
    text-align: center;
    background: #f6f8fa;
    border: 1px solid #e3e8ed;
    border-radius: 10px;
}

.popup-title {
    margin-bottom: 6px;
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #6b7a88;
}

.popup-value {
    font-size: 15px;
    font-weight: 500;
    color: #14354d;
    overflow-wrap: break-word;
}

/* Popup */
.popup {
    display: flex;
    justify-content: center;
    align-items: center;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.8);
    z-index: 1000;
}

.popup-content {
    position: relative;
    background: white;
    padding: 20px;
    border-radius: 10px;
    max-width: 80%;
    max-height: 80%;
    overflow-y: auto;
}

.popup-close {
    position: absolute;
    top: 10px;
    right: 10px;
    font-size: 24px;
    cursor: pointer;
}

.popup-text {
    padding: 20px 0;
    font-size: 12px;
    align-items: center;
    justify-content: center;
    align-content: center;
}

.popup-text p {
    width: 60%;
    margin: 5px auto;
    padding: 0;
    align-items: center;
    justify-content: center;
    align-content: center;
    white-space: normal;
    overflow-x: hidden;
}

.listing-office-info p {
    font-size: 11px;
}

.popup-gallery {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin-bottom: 15px;
}

.popup-gallery img {
    width: 150px;
    height: auto;
    margin: 5px;
    cursor: pointer;
    transition: opacity 0.3s;
}

.popup-gallery img:hover {
    opacity: 0.8;
}

.contact-button {
    display: block;
    margin: 20px auto;
    padding: 10px 20px;
    background-color: #007bff;
    color: white;
    border: none;
    border-radius: 5px;
    text-align: center;
    cursor: pointer;
}

.contact-button:hover {
    background-color: #0056b3;
}

/* Listings: filters and grid */
.small-input {
    width: 50px;
}

.search-container {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    padding: 15px;
    background-color: #f9f9f9;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    max-width: 70vw;
    margin: 20px auto;
}

.search-container input {
    padding: 10px;
    border: 2px solid white;
    border-radius: 5px;
    font-size: 12px;
    box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
    transition: border-color 0.3s;
}

.search-container input:focus {
    border-color: white;
    outline: none;
}

.button-grid-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    padding: 20px;
    box-sizing: border-box;
}

.button-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    justify-content: center;
}

.button-item {
    flex: 1 1 calc(25% - 16px);
    box-sizing: border-box;
    max-width: calc(25% - 16px);
    display: flex;
    flex-direction: column;
    align-items: center;
    cursor: pointer;
    padding: 0;
    border: none;
    background: none;
    transition: transform 0.3s, box-shadow 0.3s;
}

.button-item button {
    padding: 0;
    border: none;
    background: none;
    cursor: pointer;
    outline: none;
}

.button-item img {
    width: 100px;
    height: auto;
    border: none;
}

.button-item button:focus,
.button-item button:active {
    outline: none;
    border: none;
    box-shadow: none;
}

.button-item button:focus img,
.button-item button:active img {
    border: none;
}

.warning-message {
    color: red;
    font-weight: bold;
    border: 2px solid red;
    background-color: #f8f8f8;
    padding: 15px;
    border-radius: 5px;
    font-size: 11px;
}

/* Lightbox */
.lb-outerContainer {
    position: relative;
    width: 413px;
    height: 548px;
}

.lb-dataContainer {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 728px;
    padding: 10px;
    z-index: 1000;
}

.lb-data {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.lb-number {
    color: white !important;
    font-size: 14px;
    margin: 5px 0;
    z-index: 1001 !important;
}

.lb-closeContainer {
    position: absolute;
    top: 10px;
    right: 10px;
}

.lb-close {
    display: block;
    width: 30px;
    height: 30px;
    background: #fff;
    cursor: pointer;
    font-size: 24px;
    line-height: 30px;
    text-align: center;
    position: relative;
    top: 5px;
    left: -20px;
}

.lb-close:hover {
    background-color: #eee;
}

.service-container h1 {
    padding: 10px;
    padding-bottom: 20px;
}

.site-header {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.nav-item .nav-item-text,
.contact-title {
    text-decoration: none;
    background: transparent;
    font-size: 12px;
    text-align: left;
    padding: 0;
    font-weight: 500;
}

/* Shared links */
a:hover,
a:active,
.button-link:hover,
.button-link:active,
.button-text:hover,
.button-text:active,
.menu-link:hover,
.menu-link:active,
.menu-item:hover,
.menu-item:active {
    color: inherit;
    background-color: rgba(255, 255, 255, 0.1);
    text-decoration: none;
    overflow: hidden;
}

a,
a:active,
a:hover,
a:focus {
    color: inherit;
    text-decoration: none;
}

/* Headings */
.main-heading,
.sub-heading {
    font-size: 36px;
    margin: 10px 0;
    font-weight: 500;
    background: none;
    padding: 0;
}

.sub-heading {
    font-size: 24px;
    margin-top: 25px;
    margin-bottom: 35px;
}

/* Desktop menu */
.menu-link a {
    display: block;
    text-align: left;
    text-decoration: none;
}

.menu-link {
    margin: 15px;
    color: #ffffff;
    text-decoration: none;
}

.menu-bar {
    margin: 20px;
    display: flex;
    align-items: center;
    gap: 20px;
    flex: 0 0 auto;
    flex-wrap: nowrap;
    white-space: nowrap;
    background: transparent;
    position: fixed;
    top: 0;
    left: 0;
    width: calc(100% - 40px);
    box-sizing: border-box;
    z-index: 1000;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.menu-bar::-webkit-scrollbar {
    display: none;
}

.menu-bar .menu-column {
    display: flex;
    align-items: center;
    flex-wrap: nowrap !important;
    flex: 0 0 auto;
    max-width: none !important;
    white-space: nowrap !important;
}

.menu-bar .menu-link {
    display: inline-block;
    margin: 0 14px;
    padding: 8px 0;
    white-space: nowrap !important;
    line-height: 1.2;
}

.menu-bar .menu-column.left-column .menu-link:first-child {
    margin-left: 0;
}

.menu-bar .language-icon {
    display: flex;
    align-items: center;
}

.menu-item {
    display: block;
    padding: 10px 20px;
    color: #ffffff;
    text-transform: uppercase;
    text-align: left;
    background: transparent;
    transition: background-color 0.3s ease;
}

/* Hamburger menu */
.hamburger-menu {
    display: none;
    cursor: pointer;
    text-align: left;
    padding: 15px;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
}

.hamburger-menu .bar {
    background-color: rgba(255, 255, 255, 0.6);
    height: 3px;
    width: 25px;
    margin: 5px 0;
    border-radius: 2px;
}

.hamburger-menu.active .bar {
    background-color: #ffffff9c;
}

/* Mobile menu */
.mobile-menu {
    padding: 20px;
    display: none;
    position: fixed;
    width: 100%;
    height: 100%;
    z-index: 1000;
    background-color: rgba(0, 0, 0, 0.7);
    transition: transform 0.3s ease;
    transform: translateY(-100%);
}

.mobile-menu.active {
    display: block;
    transform: translateY(0);
}

.close-menu {
    position: absolute;
    top: 25px;
    right: 70px;
    font-size: 25px;
    color: white;
    cursor: pointer;
    z-index: 2100;
}

.menu-item.menu-item-front {
    z-index: 2000;
}

/* Toggled by the shared scroll script */
.menu-hidden {
    visibility: hidden;
    pointer-events: none;
}

.gallery-img {
    border: 3px solid #a8b8c6;
    box-shadow: 0 0 10px rgba(168, 184, 198, 0.7);
}

.construction-text {
    color: red;
}

/* Shared button group */
.button-group {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    margin: 25px 0;
}

.button-link {
    text-decoration: none;
    background: none;
    width: 250px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 1px;
    color: #ffffff;
    border: 2px solid #ffffff;
    font-size: 14px;
    box-sizing: border-box;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.language-icon img {
    width: 24px;
}

/* Video background */
.video-background-wrapper {
    position: absolute;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.video-background-frame {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -1;
}

.overlay-content {
    position: absolute;
    z-index: 1;
    color: #ffffff;
    text-align: center;
    padding: 20px;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}

.image-header-container {
    position: relative;
    width: 100%;
    height: 100vh;
    overflow: hidden;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Hide hero tint until video is ready */
.image-header-container:not(.hero-media-ready) .video-background-wrapper::after {
    opacity: 0;
}

.placeholder {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 50vh;
    width: 100vw;
    text-align: center;
    z-index: 1000;
}

/* Footer */
.footer {
    background-color: #14354d;
    color: #ffffff;
    padding: 20px 0;
}

.footer-content {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    padding: 0 20px;
    gap: 20px;
}

.footer-column {
    flex: 1 1 auto;
    padding: 0;
    box-sizing: border-box;
    text-align: left;
    justify-content: center;
    align-content: center;
}

.footer-heading {
    font-size: 18px;
    margin-bottom: 10px;
    font-weight: bold;
}

.footer-nav ul {
    list-style-type: none;
    padding: 0;
}

.footer-nav li {
    margin-bottom: 5px;
}

.footer-nav a,
.footer-nav a:hover {
    color: #ffffff;
    text-decoration: none;
}

.footer-info {
    font-size: 12px;
    text-align: left !important;
}

.footer-info p {
    margin: 5px 0;
    text-align: left !important;
    line-height: 1.6;
}

.footer-image {
    display: block;
    margin: 0 auto;
}

.footer-column:nth-child(3) .footer-image {
    width: 70px;
    height: auto;
}

.footer-image:nth-child(1) {
    width: 200px;
}

.hidden {
    opacity: 0;
    pointer-events: none;
    display: none;
}

.content-disclosure {
    font-size: 11px;
    padding: 10px;
    color: white;
    text-align: center;
    width: 100%;
    box-sizing: border-box;
}

/* Header information */
#header-info-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    margin: 10px auto 20px;
    padding: 10px 0;
    border-radius: 8px;
    max-width: 1000px;
}

.header-text {
    color: white;
    font-size: 16px;
    max-width: 100%;
    text-align: center;
    margin-left: auto;
    margin-right: auto;
    width: 60vw;
}

.header-logo {
    width: 350px;
    height: auto;
    display: block;
    margin: 10px auto 0;
}

/* Under Construction banner */
:root {
    --uc-banner-height: 0px;
}

.uc-banner {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 10px 44px 12px 14px;
    box-sizing: border-box;
    text-align: center;
    font-size: 13px;
    line-height: 1.4;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
    background: #333333;
    color: #ffffff;
}

.uc-banner::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1px;
    background: #c5cace;
    background-size: 34px 100%;
    animation: none;
}

.uc-icon {
    display: inline-block;
    flex-shrink: 0;
    font-size: 20px;
    animation: uc-spin 6s linear infinite;
}

.uc-title {
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.uc-close {
    position: absolute;
    top: 8px;
    right: 10px;
    width: 26px;
    height: 26px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.15);
    color: #ffffff;
    font-size: 16px;
    line-height: 1;
    cursor: pointer;
}

.uc-close:hover,
.uc-close:focus-visible {
    background: #ffffff;
    color: #14354d;
}

/* Keep the home menu below the banner */
.home-page-menu .menu-bar,
.home-page-menu .hamburger-menu {
    top: var(--uc-banner-height);
}

.home-page-menu .mobile-menu {
    top: var(--uc-banner-height);
    left: 0;
    height: calc(100% - var(--uc-banner-height));
    box-sizing: border-box;
    overflow-y: auto;
}

.home-page-menu .right-column {
    display: flex;
    align-items: center;
}

@keyframes uc-stripes {
    to {
        background-position: 34px 0;
    }
}

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

/* Landscape screens */
@media screen and (max-width: 908px) and (orientation: landscape) {
    .image-header-container {
        height: 100vw;
    }

    .menu-bar {
        display: none;
        overflow: hidden;
    }

    .hamburger-menu {
        display: block;
        overflow: hidden;
    }

    .hamburger-menu.active,
    .hamburger-menu.active .bar {
        background-color: transparent;
    }

    .header-logo {
        width: 200px;
        height: auto;
        display: block;
        margin: 10px auto 0;
    }

    .header-text {
        color: white;
        font-size: 10px;
        margin: 2px;
    }
}

/* Use the hamburger menu below 900px */
@media screen and (max-width: 900px) {
    .menu-bar {
        display: none;
    }

    .hamburger-menu {
        display: block;
    }
}

/* Tablets and mobile */
@media screen and (max-width: 768px) {
    .popup-row {
        grid-template-columns: repeat(3, 1fr);
        gap: 12px;
    }

    .image-header-container {
        height: 100vh;
    }

    .footer-column:nth-child(3) .footer-image {
        width: 70px;
        height: auto;
    }

    .footer-image:nth-child(1) {
        width: 150px;
    }

    .menu-bar {
        display: none;
    }

    .hamburger-menu {
        display: block;
    }

    .main-heading {
        font-size: 30px;
        margin: 10px 0;
        font-weight: 500;
        background: none;
        padding: 0;
    }

    .sub-heading {
        font-size: 20px;
        margin: 25px 0;
    }

    .button-link {
        width: 200px;
        height: 50px;
        font-size: 14px;
        border: 1px solid #ffffff;
    }


    .footer {
        text-align: center !important;
        padding: 50px;
    }

    .footer-content {
        flex-direction: column;
        align-items: center;
        margin: 0 !important;
        height: auto;
        padding: 0 !important;
    }

    .footer-column,
    .footer-text,
    .footer-info,
    .footer-nav .footer-heading {
        width: 100%;
        max-width: 300px;
        text-align: center !important;
    }

    .footer-info p {
        text-align: center !important;
    }

    

    

    

    

    

    .hamburger-menu.active,
    .hamburger-menu.active .bar {
        background-color: transparent;
    }

    .close-menu {
        position: absolute;
        top: 10px;
        right: 55px;
        font-size: 15px;
    }

    .menu-item {
        padding-top: 10px;
        padding-bottom: 10px;
        padding-left: 0;
        margin-left: 0;
    }

    .header-logo {
        width: 150px;
        height: auto;
        display: block;
        margin: 10px auto 0;
    }

    .header-text {
        color: white;
        font-size: 10px;
        margin: 2px;
    }
}

/* Small portrait phones */
@media screen and (max-width: 500px) and (orientation: portrait) {
    .button-item {
        flex: 1 1 100%;
        max-width: 100%;
    }

    .popup-content {
        max-width: 92%;
        padding: 16px 12px;
    }

    .popup-text {
        font-size: 10px;
        white-space: normal;
        overflow-x: hidden;
        font-weight: normal;
    }

    .popup-row {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }

    .popup-row.popup-row-3 {
        grid-template-columns: repeat(3, 1fr);
    }

    .popup-item {
        min-height: 64px;
        padding: 12px 8px;
    }

    .popup-value {
        font-size: 14px;
        white-space: normal;
        overflow-wrap: break-word;
    }

    .popup-text p {
        width: 90%;
        white-space: normal;
        word-wrap: break-word;
    }

    .warning-message {
        font-size: 11px;
    }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .button-link,
    .custom-button-link,

    .uc-banner::after,
    .uc-icon {
        animation: none;
    }
}
/* Shared property listings; page-specific rental content is in residential.css. */
@media screen and (min-width: 769px) and (min-height: 600px) {body.property-page .image-header-container,
body.property-page .image-header-container .video-background-wrapper,
body.property-page .image-header-container .video-background-frame,
body.property-page .image-header-container .overlay-content{
        height: 288px !important;
        min-height: 0 !important;
        max-height: 288px !important;
    }
}

:where(body.property-page) .buy-heading{
    font-size: 36px;
    margin: 10px 0;
    text-align: center;
    font-weight: 500;
    background: none;
}

:where(body.property-page) .button-text{
    margin-top: 0;
    padding: 20px;
    font-size: 12px;
}

:where(body.property-page) label{
    font-size: 12px;
}

:where(body.property-page) .filter-wrap{
    display: flex;
    justify-content: center;
    width: 100%;
    box-sizing: border-box;
    padding: 0 16px;
}

:where(body.property-page) .filter-panel{
    width: 100%;
    max-width: 1000px;
    box-sizing: border-box;
    margin: 28px auto;
    padding: 28px 28px 20px;
    background-color: rgba(255, 255, 255, 0.85);
    border-radius: 14px;
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.12);
    text-align: left;
}

:where(body.property-page) .filter-row{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 18px 16px;
}

:where(body.property-page) .filter-field{
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1 1 120px;
    min-width: 0;
    max-width: 220px;
    text-align: left;
}

:where(body.property-page) .filter-field.wide{
    flex: 1 1 100%;
    max-width: none;
}

:where(body.property-page) .filter-field label{
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #6b7a88;
}

:where(body.property-page) .filter-panel input[type="text"],
:where(body.property-page) .filter-panel input[type="number"],
:where(body.property-page) .filter-panel select{
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    height: 40px;
    margin: 0;
    padding: 0 14px;
    border: 1px solid #d5dde4;
    border-radius: 10px;
    background: #ffffff;
    font-family: inherit;
    font-size: 13px;
    color: #14354d;
    text-align: left;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

:where(body.property-page) .filter-panel input:focus,
:where(body.property-page) .filter-panel select:focus{
    outline: none;
    border-color: #14354d;
    box-shadow: 0 0 0 3px rgba(20, 53, 77, 0.15);
}

:where(body.property-page) .filter-checks{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin-top: 22px;
    padding-top: 20px;
    border-top: 1px solid #e3e8ed;
}

:where(body.property-page) .filter-checks label{
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 14px;
    border: 1px solid #d5dde4;
    border-radius: 999px;
    background: #ffffff;
    font-size: 12px;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

:where(body.property-page) .filter-checks label:has(input:checked){
    background: #14354d;
    border-color: #14354d;
    color: #ffffff;
}

:where(body.property-page) .filter-checks input{
    accent-color: #ffffff;
    margin: 0;
}

:where(body.property-page) .filter-footer{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 10px 24px;
    margin-top: 18px;
    font-size: 12px;
}

:where(body.property-page) #resultCount{
    font-weight: 500;
}

:where(body.property-page) #clearFilters{
    padding: 7px 16px;
    border: 1px solid #b8c4ce;
    border-radius: 999px;
    background: #ffffff;
    font-family: inherit;
    font-size: 12px;
    cursor: pointer;
}

:where(body.property-page) #clearFilters:hover{
    background: #14354d;
    border-color: #14354d;
    color: #ffffff;
}

@media screen and (max-width: 600px) {:where(body.property-page) .filter-panel{
        padding: 20px 16px 16px;
    }

:where(body.property-page) .filter-row{
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px 12px;
    }

:where(body.property-page) .filter-field{
        flex: none;
        max-width: none;
    }

:where(body.property-page) .filter-field.wide,
:where(body.property-page) .filter-sort{
        grid-column: 1 / -1;
    }

:where(body.property-page) .filter-field label{
        font-size: 9px;
    }

:where(body.property-page) .filter-panel input[type="text"],
:where(body.property-page) .filter-panel input[type="number"],
:where(body.property-page) .filter-panel select{
        height: 38px;
        padding: 0 12px;
        font-size: 12px;
    }

:where(body.property-page) .filter-checks{
        gap: 8px;
        margin-top: 18px;
        padding-top: 16px;
    }

:where(body.property-page) .filter-checks label{
        padding: 6px 12px;
        font-size: 11px;
    }

:where(body.property-page) .filter-footer{
        flex-direction: column;
        font-size: 11px;
    }

:where(body.property-page) #clearFilters{
        font-size: 11px;
        padding: 6px 14px;
    }
}

:where(body.property-page) .image-header-container .video-background-wrapper{
    isolation: isolate;
}

:where(body.property-page) .image-header-container .video-background-frame{
    z-index: 0;
}

:where(body.property-page) .image-header-container .overlay-content{
    z-index: 2;
}

:where(body.property-page) .image-header-container .video-background-wrapper::after{
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: rgba(9, 29, 43, .60);
    -webkit-mask-image: none;
    mask-image: none;
}

:where(body.property-page) .loader-overlay{
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 1);
    z-index: 9998; 
}

:where(body.property-page) .loader-overlay.active{
    display: block;
}

:where(body.property-page) .listing-loader{
    display: none;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 9999; 
    flex-direction: column;
    align-items: center;
    text-align: center;
}

:where(body.property-page) .listing-loader.active{
    display: flex;
}

:where(body.property-page) .loader-spinner{
    border: 8px solid #f3f3f3;
    border-top: 8px solid #3498db;
    border-radius: 50%;
    width: 50px;
    height: 50px;
    animation: spin 1s linear infinite;
}

:where(body.property-page) .loader-text{
    margin-top: 15px;
    color: #ffffff;
    font-size: 16px;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

:where(body.property-page){
    --ly-navy: #14354d;
    --ly-navy-soft: #1d4a6b;
    --ly-ink: #24323f;
    --ly-muted: #6b7a88;
    --ly-line: #e3e8ed;
    --ly-soft: #f6f8fa;
    --ly-gold: #a8845a;
    --ly-radius: 14px;
    --ly-shadow: 0 2px 10px rgba(20, 53, 77, 0.07);
    --ly-shadow-lg: 0 16px 36px rgba(20, 53, 77, 0.16);
}

:where(body.property-page) .ly-results{
    width: 100%;
    max-width: 1500px;
    margin: 0 auto;
    padding: 8px 20px 56px;
    box-sizing: border-box;
    scroll-margin-top: 16px;
}

:where(body.property-page) .ly-toolbar{
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    margin: 8px 0 22px;
}

:where(body.property-page) .ly-range{
    font-size: 13px;
    color: var(--ly-muted);
    min-height: 20px;
}

:where(body.property-page) .ly-view{
    display: inline-flex;
    border: 1px solid var(--ly-line);
    border-radius: 999px;
    overflow: hidden;
    background: #fff;
}

:where(body.property-page) .ly-view button{
    border: 0;
    background: transparent;
    padding: 8px 20px;
    font: 500 12px "Montserrat", sans-serif;
    color: var(--ly-muted);
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
}

:where(body.property-page) .ly-view button.is-active{
    background: var(--ly-navy);
    color: #fff;
}

:where(body.property-page) .ly-grid{
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
}

@media screen and (max-width: 900px) {:where(body.property-page) .ly-grid:not(.is-list){ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

:where(body.property-page) .ly-grid.is-list{
    grid-template-columns: 1fr;
    gap: 18px;
}

:where(body.property-page) .ly-card{
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--ly-line);
    border-radius: var(--ly-radius);
    overflow: hidden;
    box-shadow: var(--ly-shadow);
    cursor: pointer;
    text-align: left;
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
    
    content-visibility: auto;
    contain-intrinsic-size: auto 360px;
}

:where(body.property-page) .ly-card:hover{
    transform: translateY(-3px);
    box-shadow: var(--ly-shadow-lg);
    border-color: #cfd8e0;
}

:where(body.property-page) .ly-card:focus-visible{
    outline: 3px solid var(--ly-navy);
    outline-offset: 3px;
}

:where(body.property-page) .ly-media{
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: linear-gradient(110deg, #eef2f5 8%, #f8fafb 18%, #eef2f5 33%);
}

:where(body.property-page) .ly-media img{
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

:where(body.property-page) .ly-card:hover .ly-media img{
    transform: scale(1.04);
}

:where(body.property-page) .ly-badge,
:where(body.property-page) .ly-count{
    position: absolute;
    font-size: 11px;
    font-weight: 500;
    line-height: 1;
    padding: 7px 11px;
    border-radius: 999px;
}

:where(body.property-page) .ly-badge{
    top: 12px;
    left: 12px;
    background: rgba(255, 255, 255, 0.94);
    color: var(--ly-navy);
}

:where(body.property-page) .ly-count{
    bottom: 12px;
    right: 12px;
    background: rgba(20, 53, 77, 0.78);
    color: #fff;
}

:where(body.property-page) .ly-body{
    display: flex;
    flex-direction: column;
    gap: 7px;
    padding: 14px 16px 16px;
}

:where(body.property-page) .ly-price{
    font-size: 19px;
    font-weight: 500;
    color: var(--ly-navy);
    letter-spacing: -0.01em;
}

:where(body.property-page) .ly-per{
    font-size: 13px;
    font-weight: 300;
    color: var(--ly-muted);
}

:where(body.property-page) .ly-specs{
    display: flex;
    flex-wrap: wrap;
    gap: 4px 12px;
    font-size: 12px;
    color: var(--ly-ink);
}

:where(body.property-page) .ly-specs b{
    font-weight: 500;
}

:where(body.property-page) .ly-address{
    font-size: 13px;
    line-height: 1.45;
    color: var(--ly-muted);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

:where(body.property-page) .ly-tags{
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 4px;
}

:where(body.property-page) .ly-tags span{
    font-size: 11px;
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--ly-soft);
    border: 1px solid var(--ly-line);
    color: var(--ly-navy);
}

:where(body.property-page) .ly-grid.is-list .ly-card{
    flex-direction: row;
    contain-intrinsic-size: auto 200px;
}

:where(body.property-page) .ly-grid.is-list .ly-media{
    flex: 0 0 300px;
    aspect-ratio: auto;
    min-height: 200px;
}

:where(body.property-page) .ly-grid.is-list .ly-body{
    flex: 1;
    justify-content: center;
    padding: 20px 28px;
}

:where(body.property-page) .ly-empty{
    max-width: 480px;
    margin: 40px auto;
    padding: 28px 24px;
    text-align: center;
    font-size: 14px;
    line-height: 1.6;
    color: var(--ly-muted);
    background: var(--ly-soft);
    border: 1px solid var(--ly-line);
    border-radius: var(--ly-radius);
}

:where(body.property-page) .ly-empty[hidden]{ display: none; }

:where(body.property-page) .ly-empty-title{
    font-size: 17px;
    font-weight: 500;
    color: var(--ly-navy);
    margin-bottom: 6px;
}

:where(body.property-page) .ly-btn-ghost{
    margin-top: 16px;
    padding: 9px 22px;
    border: 1px solid #b8c4ce;
    border-radius: 999px;
    background: #fff;
    font: 500 12px "Montserrat", sans-serif;
    color: var(--ly-navy);
    cursor: pointer;
}

:where(body.property-page) .ly-btn-ghost:hover{
    background: var(--ly-navy);
    border-color: var(--ly-navy);
    color: #fff;
}

:where(body.property-page) .ly-pager{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 8px;
    margin-top: 40px;
}

:where(body.property-page) .ly-page{
    min-width: 42px;
    height: 42px;
    padding: 0 14px;
    box-sizing: border-box;
    border: 1px solid var(--ly-line);
    border-radius: 999px;
    background: #fff;
    font: 500 13px "Montserrat", sans-serif;
    color: var(--ly-navy);
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

:where(body.property-page) .ly-page:hover:not(:disabled):not(.is-current){
    background: var(--ly-soft);
    border-color: #b8c4ce;
}

:where(body.property-page) .ly-page.is-current{
    background: var(--ly-navy);
    border-color: var(--ly-navy);
    color: #fff;
    cursor: default;
}

:where(body.property-page) .ly-page:disabled{
    opacity: 0.4;
    cursor: not-allowed;
}

:where(body.property-page) .ly-page:focus-visible,
:where(body.property-page) .ly-view button:focus-visible,
:where(body.property-page) .ly-btn-ghost:focus-visible,
:where(body.property-page) .ly-btn-primary:focus-visible{
    outline: 3px solid var(--ly-navy);
    outline-offset: 2px;
}

:where(body.property-page) .ly-gap{
    color: var(--ly-muted);
    padding: 0 2px;
}

body.property-page.ly-lock{ overflow: hidden; }

:where(body.property-page) .ly-modal{
    position: fixed;
    inset: 0;
    z-index: 100000;            
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    box-sizing: border-box;
    background: rgba(9, 29, 43, 0.72);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
}

:where(body.property-page) .ly-modal[hidden]{ display: none; }

:where(body.property-page) .ly-panel{
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 980px;
    max-height: 100%;
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.35);
}

:where(body.property-page) .ly-scroll{
    overflow-y: auto;
    overscroll-behavior: contain;
}

:where(body.property-page) .ly-close{
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 5;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
    font-size: 26px;
    line-height: 1;
    color: var(--ly-navy);
    cursor: pointer;
}

:where(body.property-page) .ly-close:hover{ background: #fff; }

:where(body.property-page) .ly-close:focus-visible{ outline: 3px solid var(--ly-navy); outline-offset: 2px; }

:where(body.property-page) .ly-stage{
    position: relative;
    height: min(56vh, 520px);
    background: #0e2230;
}

:where(body.property-page) .ly-stage-img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

:where(body.property-page) .ly-nav{
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
    font-size: 28px;
    line-height: 1;
    padding: 0 0 4px;
    color: var(--ly-navy);
    cursor: pointer;
}

:where(body.property-page) .ly-nav.prev{ left: 14px; }

:where(body.property-page) .ly-nav.next{ right: 14px; }

:where(body.property-page) .ly-nav:hover{ background: #fff; }

:where(body.property-page) .ly-nav:focus-visible{ outline: 3px solid #fff; outline-offset: 2px; }

:where(body.property-page) .ly-stage-count{
    position: absolute;
    bottom: 14px;
    right: 14px;
    padding: 7px 12px;
    border-radius: 999px;
    background: rgba(20, 53, 77, 0.8);
    color: #fff;
    font-size: 12px;
    font-weight: 500;
}

:where(body.property-page) .ly-thumbs{
    display: flex;
    gap: 8px;
    padding: 12px 16px;
    overflow-x: auto;
    background: var(--ly-soft);
    border-bottom: 1px solid var(--ly-line);
    scrollbar-width: thin;
}

:where(body.property-page) .ly-thumb{
    flex: 0 0 auto;
    width: 88px;
    height: 62px;
    padding: 0;
    border: 2px solid transparent;
    border-radius: 8px;
    overflow: hidden;
    background: #dfe6ec;
    cursor: pointer;
    opacity: 0.65;
    transition: opacity 0.2s ease, border-color 0.2s ease;
}

:where(body.property-page) .ly-thumb img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

:where(body.property-page) .ly-thumb:hover{ opacity: 1; }

:where(body.property-page) .ly-thumb.is-active{ opacity: 1; border-color: var(--ly-navy); }

:where(body.property-page) .ly-thumb:focus-visible{ outline: 3px solid var(--ly-navy); outline-offset: 1px; }

:where(body.property-page) .ly-detail{
    padding: 28px 32px 32px;
    text-align: left;
    color: var(--ly-ink);
}

:where(body.property-page) .ly-detail-head{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 24px;
}

:where(body.property-page) .ly-d-price{
    font-size: 30px;
    font-weight: 500;
    color: var(--ly-navy);
    letter-spacing: -0.01em;
}

:where(body.property-page) .ly-d-address{
    margin-top: 4px;
    font-size: 14px;
    color: var(--ly-muted);
}

:where(body.property-page) .ly-btn-primary{
    padding: 13px 26px;
    border: 0;
    border-radius: 999px;
    background: var(--ly-navy);
    color: #fff;
    font: 500 13px "Montserrat", sans-serif;
    cursor: pointer;
    transition: background-color 0.2s ease, box-shadow 0.2s ease;
}

:where(body.property-page) .ly-btn-primary:hover{
    background: var(--ly-navy-soft);
    box-shadow: 0 8px 20px rgba(20, 53, 77, 0.28);
}

:where(body.property-page) .ly-stats{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
    gap: 12px;
}

:where(body.property-page) .ly-stat{
    padding: 14px 12px;
    text-align: center;
    background: var(--ly-soft);
    border: 1px solid var(--ly-line);
    border-radius: 10px;
}

:where(body.property-page) .ly-stat-k{
    font-size: 11px;
    color: var(--ly-muted);
    margin-bottom: 5px;
}

:where(body.property-page) .ly-stat-v{
    font-size: 15px;
    font-weight: 500;
    color: var(--ly-navy);
    overflow-wrap: anywhere;
}

:where(body.property-page) .ly-section-title{
    margin: 30px 0 10px;
    font-size: 16px;
    font-weight: 500;
    color: var(--ly-navy);
}

:where(body.property-page) .ly-desc{
    max-width: 72ch;
    font-size: 14px;
    font-weight: 300;
    line-height: 1.75;
    white-space: pre-line;
    overflow-wrap: anywhere;
}

:where(body.property-page) .ly-meta{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 6px 20px;
    margin-top: 28px;
    padding-top: 16px;
    border-top: 1px solid var(--ly-line);
    font-size: 12px;
    color: var(--ly-muted);
}

:where(body.property-page) .ly-attrib{
    margin-top: 14px;
    font-size: 11px;
    line-height: 1.6;
    color: var(--ly-muted);
}

:where(body.property-page) .ly-attrib summary{
    margin-top: 8px;
    cursor: pointer;
    color: var(--ly-navy);
    font-weight: 500;
}

:where(body.property-page) .ly-attrib details div{
    margin-top: 8px;
    padding: 12px;
    background: var(--ly-soft);
    border: 1px solid var(--ly-line);
    border-radius: 8px;
}

@media screen and (max-width: 820px) {:where(body.property-page) .ly-grid.is-list .ly-media{ flex-basis: 220px; }
}

@media screen and (max-width: 640px) {:where(body.property-page) .ly-results{ padding: 4px 14px 44px; }

:where(body.property-page) .ly-grid{ grid-template-columns: 1fr; gap: 20px; }

:where(body.property-page) .ly-grid.is-list .ly-card{ flex-direction: column; }

:where(body.property-page) .ly-grid.is-list .ly-media{ flex-basis: auto; aspect-ratio: 4 / 3; min-height: 0; }

:where(body.property-page) .ly-grid.is-list .ly-body{ padding: 18px 20px 20px; }

:where(body.property-page) .ly-modal{ padding: 0; }

:where(body.property-page) .ly-panel{ max-width: none; height: 100%; border-radius: 0; }

:where(body.property-page) .ly-stage{ height: 42vh; }

:where(body.property-page) .ly-detail{ padding: 22px 18px 28px; }

:where(body.property-page) .ly-d-price{ font-size: 26px; }

:where(body.property-page) .ly-btn-primary{ width: 100%; }

:where(body.property-page) .ly-page{ min-width: 38px; height: 38px; padding: 0 10px; }

:where(body.property-page) .ly-page-nav{ padding: 0 14px; }
}

@media (prefers-reduced-motion: reduce) {:where(body.property-page) .ly-card,
:where(body.property-page) .ly-media img,
:where(body.property-page) .ly-page,
:where(body.property-page) .ly-btn-primary{ transition: none; }

:where(body.property-page) .ly-card:hover{ transform: none; }

:where(body.property-page) .ly-card:hover .ly-media img{ transform: none; }
}
:where(body.property-page) .ls-tabs{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin: 28px 16px 0;
}

:where(body.property-page) .ls-tab{
    padding: 12px 30px;
    border: 1px solid #b8c4ce;
    border-radius: 999px;
    background: #ffffff;
    font: 500 13px "Montserrat", sans-serif;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #14354d;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

:where(body.property-page) .ls-tab:hover:not(.is-active){
    background: #f6f8fa;
}

:where(body.property-page) .ls-tab.is-active{
    background: #14354d;
    border-color: #14354d;
    color: #ffffff;
}

:where(body.property-page) .ls-tab:focus-visible{
    outline: 3px solid #14354d;
    outline-offset: 2px;
}

:where(body.property-page) .ls-panel[hidden]{
    display: none;
}

@media screen and (max-width: 600px) {:where(body.property-page) .ls-tab{
        flex: 1 1 40%;
        padding: 11px 14px;
        font-size: 12px;
    }
}

:where(body.property-page) .filter-footer span[id$="resultCount"]{ font-weight: 500; }

:where(body.property-page) .clear-filters {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-height: 40px;
    padding: 8px 6px;
    border: 0;
    border-radius: 3px;
    background: transparent;
    color: #667582;
    font: inherit;
    font-size: 11px;
    font-weight: 400;
    line-height: 1.4;
    white-space: nowrap;
    cursor: pointer;
    box-shadow: none;
}
:where(body.property-page) .clear-filters::before {
    content: "\21BA";
    font-size: 15px;
    line-height: 1;
}
:where(body.property-page) .clear-filters:hover {
    background: transparent;
    color: #405665;
    text-decoration: underline;
    text-underline-offset: 3px;
}
:where(body.property-page) .clear-filters:focus-visible {
    outline: 2px solid #9aaeba;
    outline-offset: 2px;
}
@media screen and (max-width: 600px) {
    :where(body.property-page) .clear-filters { min-height: 44px; }
}

/* Shared help navigation on every page. */
/* Custom section */
.custom-section {
    background-image: url('/static/icons/rental-custom.jpg');
    background-size: cover;
    background-position: center;
    margin: 0;
    color: white;
    padding: 25px;
    background-attachment: fixed;
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    overflow: hidden;
}

.custom-container {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    width: 100%;
    max-width: 1440px;
    background: none;
    overflow: hidden;
    box-sizing: border-box;
}

.custom-row {
    display: flex;
    flex-wrap: nowrap;
    gap: 20px;
    margin: 0;
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.custom-row::-webkit-scrollbar {
    display: none;
}

.custom-column {
    flex: 0 0 375px;
    height: 200px;
    background: rgba(255, 255, 255, 0.02);
    text-align: center;
    margin: 0 auto;
    position: relative;
    border: 2px solid #ffffff;
    border-radius: 18px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 0 20px;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18);
    transition: background-color 0.3s ease, box-shadow 0.3s ease;
}

.custom-column:hover,
.custom-column:active {
    background: rgba(255, 255, 255, 0.06);
    box-shadow: 0 16px 34px rgba(0, 0, 0, 0.3);
}

.custom-icon-widget {
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: calc(100% - 40px);
}

.custom-icon-homepage,
.custom-icon-home,
.custom-icon-rentals,
.custom-icon-head,
.custom-icon-contact {
    background-size: contain;
    background-repeat: no-repeat;
    filter: brightness(0) invert(1);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
}

.custom-icon-homepage {
    background-image: url('/static/icons/home.png');
    width: 60px;
    height: 60px;
}

.custom-icon-home {
    background-image: url('/static/icons/search.png');
    width: 95px;
    height: 95px;
}

.custom-icon-head {
    background-image: url('/static/icons/head.png');
    width: 100px;
    height: 100px;
}

.custom-icon-contact {
    background-image: url('/static/icons/contact.png');
    width: 105px;
    height: 105px;
}

.custom-icon-rentals {
    background-image: url('/static/icons/hand.png');
    width: 85px;
    height: 85px;
}

.custom-button-link {
    font-size: 13px;
    line-height: 40px;
    font-weight: 500;
    letter-spacing: 0.14em;
    width: 200px;
    box-sizing: border-box;
    text-decoration: none;
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.08);
    overflow: hidden;
    border-radius: 999px;
    display: block;
    text-align: center;
    margin: 0 auto 25px;
    transition:
        background-color 0.25s ease,
        color 0.25s ease,
        border-color 0.25s ease,
        box-shadow 0.25s ease;
}

.custom-button-link:hover,
.custom-button-link:focus-visible {
    background-color: #ffffff;
    color: #14354d;
    border-color: #ffffff;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
}

.custom-button-link:focus-visible {
    outline: 2px solid #ffffff;
    outline-offset: 3px;
}

.custom-button-link:active a,
.button-text:active a {
    color: #ffffff;
    text-decoration: none;
    justify-content: center;
}



@media screen and (max-width: 768px) {
    .custom-column {
        flex: 1 1 100%;
        max-width: 100%;
        height: 150px;
    }

    .custom-icon-homepage {
        width: 35px;
        height: 35px;
    }

    .custom-icon-home {
        width: 65px;
        height: 65px;
    }

    .custom-icon-head {
        width: 70px;
        height: 70px;
    }

    .custom-icon-contact {
        width: 75px;
        height: 75px;
    }

    .custom-icon-rentals {
        width: 55px;
        height: 55px;
    }

}

/* Shared search coverage disclosure below each property filter. */
body.property-page .listing-scope-note {
    max-width: 1000px;
    margin: 8px auto 16px;
    padding: 0 16px;
    box-sizing: border-box;
    color: #687582;
    font-size: .75rem;
    font-weight: 400;
    line-height: 1.5;
    overflow-wrap: anywhere;
}
body.property-page .listing-scope-note a {
    color: inherit;
    font-weight: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;
}
body.property-page .listing-scope-note a:hover,
body.property-page .listing-scope-note a:focus-visible {
    color: #364c5e;
}

/* Subtle outline shared by all property search coverage notices. */
body.property-page .listing-scope-note {
    padding: 12px 16px;
    border: 1px solid #dde4ea;
    border-radius: 8px;
}

/* Shared desktop sizing, matching the home page. Mobile rules stay unscaled. */
@media screen and (min-width: 1024px) and (pointer: fine) {
    body {
        zoom: 0.7;
        min-height: calc(100vh / 0.7);
    }

    body .image-header-container {
        height: calc(100vh / 0.7);
    }
}

/* Match the home page foreground and navigation scale on every public page. */
@media screen and (min-width: 901px) {
    .image-header-container .overlay-content {
        zoom: 1 !important;
        transform: scale(0.7) !important;
        transform-origin: center center;
    }

    [class*="-page-menu"] .menu-bar {
        zoom: 1 !important;
        transform: scale(0.7) !important;
        transform-origin: top left;
        width: calc(142.857143% - 40px);
    }
}

/* shared listing_filters_approved */
/* Approved option 1: one disclosure for the complete form; result row always visible. */
body.property-page .filter-wrap { max-width:1240px; margin:20px auto; padding:0 20px; box-sizing:border-box; }
body.property-page .filter-panel { padding:12px 16px 0; background:#fff; border:1px solid #e0e7ec; border-radius:10px; box-shadow:none; }
body.property-page .property-filter-disclosure { margin:0; padding:0; border:0; }
body.property-page .property-filter-disclosure > summary { display:inline-flex; align-items:center; gap:12px; min-height:38px; box-sizing:border-box; padding:7px 14px; border:1px solid #cbd8e1; border-radius:7px; color:#193d50; background:#fff; font-size:13px; line-height:1.4; font-weight:600; cursor:pointer; list-style:none; }
body.property-page .property-filter-disclosure > summary::-webkit-details-marker { display:none; }
body.property-page .property-filter-disclosure > summary::marker { content:''; }
body.property-page .filters-open-label { display:none; }
body.property-page .property-filter-disclosure[open] .filters-closed-label { display:none; }
body.property-page .property-filter-disclosure[open] .filters-open-label { display:inline; }
body.property-page .filter-disclosure-chevron { width:7px; height:7px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg); margin-top:-4px; }
body.property-page .property-filter-disclosure[open] .filter-disclosure-chevron { transform:rotate(225deg); margin-top:4px; }
body.property-page .property-filter-controls { padding:14px 0 2px; }
body.property-page .filter-row { display:grid; grid-template-columns:minmax(170px,1.8fr); grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); gap:10px; }
body.property-page .filter-field { display:flex; flex-direction:column; gap:5px; min-width:0; max-width:none; width:auto; text-align:left; }
body.property-page .filter-field.wide { grid-column:auto; }
body.property-page .filter-field label { margin:0; color:#60717c; font-size:11px; font-weight:500; line-height:1.4; letter-spacing:normal; text-transform:none; }
body.property-page .filter-panel input[type="text"],body.property-page .filter-panel input[type="number"],body.property-page .filter-panel select { width:100%; height:36px; min-width:0; max-width:100%; padding:7px 9px; box-sizing:border-box; border:1px solid #d7e1e8; border-radius:6px; background:#fff; color:#264353; font:400 13px/1.4 Arial,sans-serif; }
body.property-page .filter-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:12px; padding-top:12px; border-top:1px solid #eef2f4; }
body.property-page #panel-rent .filter-options { grid-template-columns:repeat(2,minmax(0,1fr)); }
body.property-page .filter-checks { display:flex; flex-wrap:wrap; gap:8px 20px; margin-top:8px; }
body.property-page .filter-checks label { padding:3px 0; border:0; background:none; color:#60717c; font-size:12px; font-weight:400; }
body.property-page .filter-choice-toggle { display:flex; min-height:36px; border:1px solid #d7e1e8; border-radius:6px; overflow:hidden; background:#fff; }
body.property-page .filter-choice-toggle button { flex:1 1 0; min-width:0; margin:0; padding:7px 8px; border:0; border-radius:0; background:transparent; color:#60717c; font:400 12px/1.4 Arial,sans-serif; cursor:pointer; }
body.property-page .filter-choice-toggle button + button { border-left:1px solid #e6ecef; }
body.property-page .filter-choice-toggle button[aria-pressed="true"] { background:#e4f3ef; color:#183e43; font-weight:600; }
body.property-page .filter-footer { margin-top:10px; padding:10px 0; border-top:1px solid #edf1f4; font-size:12px; }
body.property-page .filter-footer span[id$="resultCount"] { color:#264353; font-weight:500; }
body.property-page .clear-filters { min-height:34px; padding:5px 0; border:0; box-shadow:none; background:none; color:#188a83; font-size:12px; font-weight:400; }
body.property-page .filter-panel :is(input,select,button,summary):focus-visible { outline:2px solid #279bb3; outline-offset:2px; }
@media(max-width:1023px) {
 body.property-page .filter-row { grid-auto-flow:row; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
 body.property-page .filter-field.wide { grid-column:1/-1; }
}
@media(max-width:767px) {
 body.property-page .filter-wrap { margin:14px auto; padding:0 12px; }
 body.property-page .filter-panel { padding:10px 12px 0; }
 body.property-page .property-filter-disclosure > summary { min-height:44px; font-size:14px; }
 body.property-page .filter-row,body.property-page .filter-options,body.property-page #panel-rent .filter-options { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
 body.property-page .filter-options > .filter-field:first-child { grid-column:1/-1; }
 body.property-page .filter-panel input[type="text"],body.property-page .filter-panel input[type="number"],body.property-page .filter-panel select { min-height:44px; height:44px; font-size:16px; }
 body.property-page .filter-choice-toggle,body.property-page .filter-choice-toggle button { min-height:44px; }
 body.property-page .filter-checks label { display:flex; align-items:center; gap:6px; min-height:44px; }
 body.property-page .filter-footer { font-size:11px; }
 body.property-page .clear-filters { min-height:44px; font-size:11px; }
}
@media(prefers-reduced-motion:reduce) { body.property-page .filter-panel * { transition:none; scroll-behavior:auto; } }

body.property-page .result-count-short { display:none; }
@media(max-width:767px) {
 body.property-page .result-count-full { display:none; }
 body.property-page .result-count-short { display:inline; }
}

/* shared dropdown_options_match */
/* Popup options match the existing closed dropdown text. */
body.property-page .filter-panel select option,
body.property-page .filter-panel select optgroup {
    font: inherit;
    color: inherit;
}

/* shared dropdown_popup_match */
/* Popup rendering only: retain the existing filter size, font and values. */
body.property-page .filter-popup-text-fix { position:relative; width:100%; min-width:0; }
body.property-page .filter-popup-text-fix > select[hidden] { display:none !important; }
body.property-page .filter-popup-text-trigger { position:relative; display:block; width:100%; margin:0; text-align:left; cursor:pointer; box-shadow:none; text-transform:none; }
body.property-page .filter-popup-text-trigger > span { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; padding-right:16px; }
body.property-page .filter-popup-text-trigger::after { content:''; position:absolute; right:10px; top:50%; width:5px; height:5px; margin-top:-4px; border-right:1px solid currentColor; border-bottom:1px solid currentColor; transform:rotate(45deg); }
body.property-page .filter-popup-text-options { position:absolute; z-index:10000; top:calc(100% + 3px); left:0; right:0; max-height:280px; overflow-y:auto; border:1px solid #cbd8e1; border-radius:6px; background:#fff; box-shadow:0 4px 12px #0002; text-align:left; }
body.property-page .filter-popup-text-options[hidden] { display:none !important; }
body.property-page .filter-popup-text-option { padding:8px 10px; font:inherit; line-height:1.4; color:inherit; cursor:pointer; overflow-wrap:anywhere; }
body.property-page .filter-popup-text-option.is-active { background:#e4f3ef; }
body.property-page .filter-popup-text-option[aria-selected='true'] { font-weight:600; }
body.property-page .filter-popup-text-option[aria-disabled='true'] { opacity:.5; cursor:default; }

/* shared filters_polished_v1 */
/* Filter presentation only: existing fields, values, events and disclosure behavior stay intact. */
body.property-page .filter-wrap {
  width:100%; max-width:1160px; margin:28px auto; padding:0 24px; box-sizing:border-box;
}
body.property-page .filter-panel {
  width:100%; max-width:none; min-width:0; margin-inline:auto; box-sizing:border-box;
  padding:24px 24px 0; border:1px solid #dce6ec; border-radius:18px;
  background:linear-gradient(180deg,#fbfdfe 0,#fff 130px);
  box-shadow:0 8px 32px rgba(22,52,72,.055),0 1px 3px rgba(22,52,72,.025);
}
body.property-page .property-filter-disclosure { width:100%; min-width:0; margin:0; padding:0; border:0; }
body.property-page .property-filter-disclosure > summary {
  display:flex; align-items:center; justify-content:center; gap:12px;
  width:fit-content; min-width:190px; max-width:100%; min-height:50px;
  margin:0 auto; padding:12px 22px; box-sizing:border-box;
  list-style:none; border:1px solid #183d50; border-radius:999px;
  background:#183d50; color:#fff; box-shadow:0 4px 12px rgba(24,61,80,.12);
  font:600 14px/1.4 Arial,sans-serif; letter-spacing:.015em; cursor:pointer;
  user-select:none; -webkit-tap-highlight-color:transparent;
  transition:background-color .16s ease,box-shadow .16s ease;
}
body.property-page .property-filter-disclosure > summary::before {
  content:""; flex:0 0 18px; width:18px; height:18px;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cg fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M3 5h14M3 10h14M3 15h14'/%3E%3Ccircle cx='7' cy='5' r='2' fill='white'/%3E%3Ccircle cx='13' cy='10' r='2' fill='white'/%3E%3Ccircle cx='8' cy='15' r='2' fill='white'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cg fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M3 5h14M3 10h14M3 15h14'/%3E%3Ccircle cx='7' cy='5' r='2' fill='white'/%3E%3Ccircle cx='13' cy='10' r='2' fill='white'/%3E%3Ccircle cx='8' cy='15' r='2' fill='white'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat;
}
body.property-page .property-filter-disclosure > summary::marker { content:""; }
body.property-page .property-filter-disclosure > summary::-webkit-details-marker { display:none; }
body.property-page .property-filter-disclosure[open] > summary { background:#eaf4f4; color:#183d50; border-color:#c5dedd; box-shadow:none; }
body.property-page .property-filter-disclosure > summary:hover { box-shadow:0 4px 15px rgba(24,61,80,.2); }
body.property-page .filter-disclosure-chevron { flex:0 0 7px; width:7px; height:7px; margin-left:3px; }
body.property-page .property-filter-controls { padding:24px 0 6px; min-width:0; }
body.property-page .filter-row {
  display:grid; grid-auto-flow:row; grid-auto-columns:auto;
  grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; align-items:end;
}
body.property-page .filter-row:has(> .filter-field:nth-child(7):last-child) { grid-template-columns:repeat(6,minmax(0,1fr)); }
body.property-page .filter-row:has(> .filter-field:nth-child(6):last-child) { grid-template-columns:repeat(5,minmax(0,1fr)); }
body.property-page .filter-field { display:flex; flex-direction:column; gap:8px; width:100%; min-width:0; max-width:none; margin:0; text-align:center; box-sizing:border-box; }
body.property-page .filter-field.wide { grid-column:1/-1; }
body.property-page .filter-field label { display:block; margin:0; padding:0; min-height:17px; color:#526b7b; text-align:center; font:600 12px/1.4 Arial,sans-serif; text-transform:none; letter-spacing:.02em; }
body.property-page .filter-panel input[type="text"],
body.property-page .filter-panel input[type="number"],
body.property-page .filter-panel select,
body.property-page .filter-popup-text-trigger {
  width:100%; min-width:0; max-width:100%; height:48px; min-height:48px;
  padding:12px 30px 12px 12px; box-sizing:border-box;
  border:1px solid #d6e2e9; border-radius:10px; background-color:#fff;
  color:#244858; font:400 15px/1.4 Arial,sans-serif; text-align:center;
  transition:border-color .16s ease,box-shadow .16s ease;
}
body.property-page .filter-panel input[type="text"],
body.property-page .filter-panel input[type="number"] { padding-inline:12px; }
body.property-page .filter-panel input::placeholder { color:#889ba8; opacity:1; text-align:center; }
body.property-page .filter-panel select { text-align-last:center; }
body.property-page .filter-panel :is(input,select):hover { border-color:#adc7d3; }
body.property-page .filter-panel :is(input,select):focus { border-color:#458b9d; box-shadow:0 0 0 3px rgba(69,139,157,.12); }
body.property-page .filter-panel :is(input,select,button,summary):focus-visible { outline:3px solid #68aebd; outline-offset:3px; }
body.property-page .filter-options,
body.property-page #panel-rent .filter-options {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px;
  margin:22px 0 0; padding:20px 0 0; border-top:1px solid #e9eff2;
}
body.property-page .filter-checks { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:10px 24px; margin:16px 0 0; padding:0; }
body.property-page .filter-checks label { display:flex; align-items:center; justify-content:center; gap:8px; min-height:44px; margin:0; padding:0 6px; border:0; background:none; color:#526b7b; font:400 13px/1.4 Arial,sans-serif; cursor:pointer; }
body.property-page .filter-checks input { width:17px; height:17px; margin:0; accent-color:#226779; }
body.property-page .filter-choice-toggle {
  display:flex; gap:4px; width:100%; min-width:0; min-height:48px; padding:4px; box-sizing:border-box;
  border:1px solid #dce7eb; border-radius:11px; background:#f3f7f9; overflow:visible;
}
body.property-page .filter-choice-toggle button {
  flex:1 1 0; min-width:0; min-height:38px; margin:0; padding:8px 5px; box-sizing:border-box;
  border:1px solid transparent; border-radius:7px; background:transparent;
  color:#526b7b; font:400 13px/1.4 Arial,sans-serif; text-align:center; cursor:pointer;
}
body.property-page .filter-choice-toggle button + button { border-left:1px solid transparent; }
body.property-page .filter-choice-toggle button:hover { background:#e8eff2; }
body.property-page .filter-choice-toggle button[aria-pressed="true"] { border-color:#1f5668; background:#1f5668; color:#fff; font-weight:600; box-shadow:0 1px 3px rgba(24,61,80,.14); }
body.property-page .filter-panel .filter-footer {
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);
  align-items:center; gap:12px; margin:20px -24px 0; padding:16px 24px;
  border-top:1px solid #e4edf1; border-radius:0 0 18px 18px; background:#f6fafb;
  color:#526b7b; font-size:12px; text-align:center;
}
body.property-page .filter-footer > span[id$="resultCount"] { grid-column:1; justify-self:center; width:100%; min-width:0; color:#365465; text-align:center; line-height:1.5; overflow-wrap:anywhere; }
body.property-page .filter-footer .main-page-update { grid-column:2; justify-self:center; width:100%; max-width:none; min-width:0; margin:0; padding:0; background:none; color:#718590; text-align:center; font:400 11px/1.5 Arial,sans-serif; overflow-wrap:anywhere; }
body.property-page .filter-footer .main-page-update time { color:inherit; font:inherit; }
body.property-page .filter-footer .clear-filters { grid-column:3; justify-self:center; max-width:100%; min-height:44px; margin:0; padding:8px; border:1px solid transparent; border-radius:8px; background:none; color:#226779; font:600 12px/1.4 Arial,sans-serif; text-align:center; white-space:normal; box-shadow:none; }
body.property-page .filter-footer .clear-filters:hover { border-color:#d6e6e9; background:#eaf3f5; }
/* Match the installed accessible dropdown helper without changing its select values. */
body.property-page .filter-popup-text-fix { position:relative; width:100%; min-width:0; }
body.property-page .filter-popup-text-trigger { display:flex; align-items:center; justify-content:center; cursor:pointer; }
body.property-page .filter-popup-text-trigger > span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
body.property-page .filter-popup-text-options { position:absolute; inset:calc(100% + 6px) 0 auto; z-index:90; max-height:280px; overflow:auto; box-sizing:border-box; padding:6px; border:1px solid #d6e2e9; border-radius:10px; background:#fff; box-shadow:0 12px 30px rgba(22,52,72,.14); text-align:center; }
body.property-page .filter-popup-text-option { min-height:44px; display:flex; align-items:center; justify-content:center; padding:8px 10px; box-sizing:border-box; border-radius:6px; color:#244858; cursor:pointer; }
body.property-page .filter-popup-text-option:hover,
body.property-page .filter-popup-text-option.is-active { background:#edf5f7; }
body.property-page .filter-popup-text-option[aria-selected="true"] { background:#e4f0f3; font-weight:600; }
body.property-page .filter-popup-text-options[hidden],body.property-page .filter-panel select[hidden] { display:none !important; }
@media(min-width:768px) and (max-width:1023px) {
  body.property-page .filter-row,
  body.property-page .filter-row:has(> .filter-field:nth-child(7):last-child),
  body.property-page .filter-row:has(> .filter-field:nth-child(6):last-child) { grid-template-columns:repeat(3,minmax(0,1fr)); }
  body.property-page .filter-options,body.property-page #panel-rent .filter-options { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:767px) {
  body.property-page .filter-wrap { margin:20px auto; padding-inline:16px; }
  body.property-page .filter-panel { padding:18px 16px 0; border-radius:15px; }
  body.property-page .property-filter-disclosure > summary { min-width:190px; min-height:50px; font-size:14px; }
  body.property-page .property-filter-controls { padding-top:20px; }
  body.property-page .filter-row,
  body.property-page .filter-row:has(> .filter-field:nth-child(7):last-child),
  body.property-page .filter-row:has(> .filter-field:nth-child(6):last-child) { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 12px; }
  body.property-page .filter-field.wide,body.property-page .filter-sort { grid-column:1/-1; }
  body.property-page .filter-row:has(> .filter-field:nth-child(7):last-child) > .filter-field:nth-child(6) { grid-column:1/-1; }
  body.property-page .filter-field label { font-size:12px; }
  body.property-page .filter-panel input[type="text"],body.property-page .filter-panel input[type="number"],body.property-page .filter-panel select,body.property-page .filter-popup-text-trigger { min-height:48px; height:48px; font-size:16px; }
  body.property-page .filter-options,body.property-page #panel-rent .filter-options { grid-template-columns:minmax(0,1fr); gap:16px; margin-top:18px; padding-top:18px; }
  body.property-page .filter-options > .filter-field:first-child { grid-column:auto; }
  body.property-page .filter-choice-toggle { min-height:50px; }
  body.property-page .filter-choice-toggle button { min-height:40px; font-size:13px; }
  body.property-page .filter-panel .filter-footer { grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; margin:18px -16px 0; padding:12px 10px; border-radius:0 0 15px 15px; }
  body.property-page .filter-footer > span[id$="resultCount"] { font-size:11px; }
  body.property-page .filter-footer .main-page-update { font-size:10px; }
  body.property-page .filter-footer .clear-filters { padding-inline:3px; font-size:11px; }
}
@media(prefers-reduced-motion:reduce) {
  body.property-page .filter-panel * { transition:none !important; scroll-behavior:auto; }
}

/* shared filter_footer_visibility_v1 */
/* The existing Show filters control also controls its own count/date/clear row. */
body.property-page .filter-panel > .property-filter-disclosure:not([open]) ~ .filter-footer {
  display:none !important;
}
body.property-page .filter-panel:has(> .property-filter-disclosure:not([open])) {
  padding-bottom:24px;
}
@media(max-width:767px) {
  body.property-page .filter-panel:has(> .property-filter-disclosure:not([open])) {
    padding-bottom:18px;
  }
}
/* Even controls and centered partial rows at every existing breakpoint. */
body.property-page .filter-row {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:flex-end;
  gap:16px;
}
body.property-page .filter-row > .filter-field {
  flex:1 1 140px;
  min-width:0;
  max-width:none;
  width:auto;
  grid-column:auto;
  text-align:center;
}
body.property-page .filter-row > .filter-field.wide {
  flex:0 0 100%;
  width:100%;
}
body.property-page .filter-panel select {
  padding-inline:30px;
  text-align:center;
  text-align-last:center;
}
body.property-page .filter-panel .filter-footer {
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:center;
  text-align:center;
}
body.property-page .filter-footer > span[id$="resultCount"],
body.property-page .filter-footer .main-page-update,
body.property-page .filter-footer .clear-filters {
  justify-self:center;
  min-width:0;
  max-width:100%;
  text-align:center;
}
@media(min-width:768px) and (max-width:1023px) {
  body.property-page .filter-row > .filter-field {
    flex:0 0 calc((100% - 32px) / 3);
  }
  body.property-page .filter-row:has(> .filter-field:nth-child(5):last-child) > .filter-field {
    flex:0 0 calc((100% - 16px) / 2);
  }
  body.property-page .filter-row > .filter-field.wide,
  body.property-page .filter-row:has(> .filter-field:nth-child(5):last-child) > .filter-field.wide {
    flex:0 0 100%;
  }
}
@media(max-width:767px) {
  body.property-page .filter-row { gap:14px 12px; }
  body.property-page .filter-row > .filter-field { flex:0 0 calc((100% - 12px) / 2); }
  body.property-page .filter-row > .filter-field.wide { flex:0 0 100%; }
}

/* shared listing_counts_quiet_v1 */
/* Quiet count and existing Grid/List controls. No content or behaviour changes. */
body.property-page .ly-toolbar { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:4px 14px; width:100%; min-width:0; box-sizing:border-box; margin:4px 0 12px; padding:0; background:transparent; border:0; box-shadow:none; text-align:center; }
body.property-page .ly-toolbar .ly-range { flex:0 1 auto; min-width:0; min-height:0; margin:0; padding:0; color:#647789; font:400 12px/1.5 Arial,sans-serif; text-align:center; }
body.property-page .ly-toolbar .ly-view { display:inline-flex; flex:0 0 auto; align-items:center; justify-content:center; gap:2px; margin:0; padding:0; overflow:visible; border:0; border-radius:0; background:transparent; box-shadow:none; }
body.property-page .ly-toolbar .ly-view button { display:inline-flex; align-items:center; justify-content:center; min-width:36px; min-height:32px; margin:0; padding:4px 7px; border:0; border-radius:3px; background:transparent; box-shadow:none; color:#647789; font:400 11px/1.4 Arial,sans-serif; text-align:center; cursor:pointer; }
body.property-page .ly-toolbar .ly-view button.is-active { background:transparent; color:#526b7b; text-decoration:underline; text-underline-offset:3px; }
body.property-page .ly-toolbar .ly-view button:hover { background:#f3f6f8; color:#365465; }
body.property-page .ly-toolbar .ly-view button:focus-visible { outline:2px solid #4c91a3; outline-offset:1px; }
@media(max-width:767px) {
 body.property-page .ly-toolbar { gap:2px 10px; margin:2px 0 10px; }
 body.property-page .ly-toolbar .ly-range { font-size:11px; }
 body.property-page .ly-toolbar .ly-view button { min-height:44px; }
}
/* Listing presentation: explicit theme values keep details readable even when a legacy variable is missing. */
body.property-page .ly-modal {
 --ly-navy:#14354d; --ly-navy-soft:#1d4a6b; --ly-ink:#263f4e; --ly-muted:#647789; --ly-soft:#f7fafc; --ly-line:#e0e8ee;
 position:fixed; inset:0; z-index:100000; display:flex; align-items:center; justify-content:center;
 padding:20px; box-sizing:border-box; background:rgba(13,35,49,.68); color:#263f4e;
 font-family:Arial,sans-serif; -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px);
}
body.property-page .ly-modal[hidden] { display:none; }
body.property-page .ly-modal .ly-panel { position:relative; display:flex; flex-direction:column; width:100%; max-width:980px; max-height:calc(100vh - 40px); max-height:calc(100dvh - 40px); margin:auto; border:1px solid #dce5eb; border-radius:12px; overflow:hidden; background:#fff; box-shadow:0 20px 64px rgba(10,30,45,.24); }
body.property-page .ly-modal .ly-scroll { min-height:0; overflow-y:auto; overscroll-behavior:contain; }
body.property-page .ly-modal .ly-close { position:absolute; top:12px; right:12px; z-index:5; display:flex; align-items:center; justify-content:center; width:44px; height:44px; padding:0; border:1px solid #dce5eb; border-radius:8px; background:rgba(255,255,255,.96); color:#14354d; font:400 28px/1 Arial,sans-serif; cursor:pointer; box-shadow:0 2px 8px rgba(10,30,45,.08); }
body.property-page .ly-modal .ly-stage { position:relative; height:clamp(220px,45vh,480px); background:#102b3c; }
body.property-page .ly-modal .ly-stage-img { display:block; width:100%; height:100%; object-fit:contain; object-position:center; }
body.property-page .ly-modal .ly-nav { position:absolute; top:50%; transform:translateY(-50%); display:flex; align-items:center; justify-content:center; width:44px; height:44px; padding:0; border:1px solid rgba(220,229,235,.85); border-radius:8px; background:rgba(255,255,255,.94); color:#14354d; font:400 28px/1 Arial,sans-serif; cursor:pointer; }
body.property-page .ly-modal .ly-nav.prev { left:12px; }
body.property-page .ly-modal .ly-nav.next { right:12px; }
body.property-page .ly-modal .ly-stage-count { position:absolute; bottom:12px; left:50%; right:auto; transform:translateX(-50%); padding:5px 10px; border-radius:5px; background:rgba(16,43,60,.85); color:#fff; font-size:12px; line-height:1.4; }
body.property-page .ly-modal .ly-thumbs { display:flex; justify-content:safe center; gap:8px; padding:10px 12px; overflow-x:auto; border-bottom:1px solid #e0e8ee; background:#f7fafc; scrollbar-width:thin; }
body.property-page .ly-modal .ly-thumb { flex:0 0 76px; width:76px; height:54px; padding:0; overflow:hidden; border:2px solid transparent; border-radius:5px; background:#e7edf2; opacity:.7; cursor:pointer; }
body.property-page .ly-modal .ly-thumb img { display:block; width:100%; height:100%; object-fit:cover; }
body.property-page .ly-modal .ly-thumb.is-active { border-color:#14354d; opacity:1; }
body.property-page .ly-modal .ly-detail { box-sizing:border-box; padding:24px 32px 28px; color:#263f4e; text-align:center; }
body.property-page .ly-modal .ly-detail-head { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:14px; margin:0 auto 22px; max-width:760px; text-align:center; }
body.property-page .ly-modal .ly-d-price { color:#14354d; font-size:32px; font-weight:600; line-height:1.2; letter-spacing:-.02em; text-align:center; }
body.property-page .ly-modal .ly-d-price .ly-per { color:#647789; font-size:15px; font-weight:400; }
body.property-page .ly-modal .ly-d-address { margin:7px 0 0; color:#526b7b; font-size:15px; line-height:1.6; text-align:center; overflow-wrap:anywhere; }
body.property-page .ly-modal .ly-btn-primary { display:inline-flex; align-items:center; justify-content:center; max-width:100%; min-height:44px; margin:0; padding:11px 22px; box-sizing:border-box; border:1px solid #14354d; border-radius:7px; background:#14354d; color:#fff; font:500 14px/1.4 Arial,sans-serif; text-align:center; cursor:pointer; box-shadow:none; }
body.property-page .ly-modal .ly-btn-primary:hover { background:#1d4a6b; border-color:#1d4a6b; }
body.property-page .ly-modal .ly-stats { display:flex; flex-wrap:wrap; justify-content:center; align-items:stretch; gap:10px; width:100%; max-width:760px; margin:0 auto; }
body.property-page .ly-modal .ly-stat { flex:0 0 calc((100% - 20px)/3); min-width:0; min-height:64px; padding:11px 12px; box-sizing:border-box; border:1px solid #e0e8ee; border-radius:7px; background:#f7fafc; text-align:center; }
body.property-page .ly-modal .ly-stats:has(> .ly-stat:nth-child(4):last-child) > .ly-stat { flex-basis:calc((100% - 10px)/2); }
body.property-page .ly-modal .ly-stat-k { margin:0 0 5px; color:#647789; font-size:12px; font-weight:400; line-height:1.4; text-align:center; }
body.property-page .ly-modal .ly-stat-v { color:#263f4e; font-size:15px; font-weight:500; line-height:1.5; text-align:center; overflow-wrap:anywhere; }
body.property-page .ly-modal .ly-section-title { margin:24px auto 12px; padding-top:20px; max-width:760px; border-top:1px solid #e0e8ee; color:#14354d; font-size:17px; font-weight:600; line-height:1.4; text-align:center; }
body.property-page .ly-modal .ly-desc { max-width:70ch; margin:0 auto; color:#354f5f; font-size:15px; font-weight:400; line-height:1.75; white-space:pre-line; overflow-wrap:anywhere; text-align:center; }
body.property-page .ly-modal .ly-meta { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:8px 24px; margin:22px auto 0; padding:14px 0 0; max-width:760px; border-top:1px solid #e0e8ee; color:#647789; font-size:12px; line-height:1.6; text-align:center; }
body.property-page .ly-modal .ly-attrib { margin:12px auto 0; max-width:760px; color:#647789; font-size:12px; line-height:1.65; text-align:center; }
body.property-page .ly-modal .ly-attrib summary { margin:10px 0 0; color:#526b7b; font-size:12px; font-weight:500; text-align:center; cursor:pointer; }
body.property-page .ly-modal .ly-attrib details div { margin:10px auto 0; padding:12px; border:1px solid #e0e8ee; border-radius:7px; background:#f7fafc; }
body.property-page .ly-modal :is(button,summary):focus-visible { outline:2px solid #559aaf; outline-offset:2px; }
@media(max-width:600px) {
 body.property-page .ly-modal { padding:8px; }
 body.property-page .ly-modal .ly-panel { height:auto; max-height:calc(100vh - 16px); max-height:calc(100dvh - 16px); border-radius:10px; }
 body.property-page .ly-modal .ly-stage { height:clamp(200px,34vh,320px); }
 body.property-page .ly-modal .ly-detail { padding:20px 16px 24px; }
 body.property-page .ly-modal .ly-d-price { font-size:28px; }
 body.property-page .ly-modal .ly-d-address { font-size:14px; }
 body.property-page .ly-modal .ly-stat,body.property-page .ly-modal .ly-stats:has(> .ly-stat:nth-child(4):last-child) > .ly-stat { flex-basis:calc((100% - 10px)/2); padding:10px 8px; }
 body.property-page .ly-modal .ly-desc { font-size:16px; line-height:1.7; }
 body.property-page .ly-modal .ly-btn-primary { min-height:46px; }
}

/* shared site-zoom */
/* Match the existing Home desktop sizing on every public website page.
   Keep Home's two existing breakpoints and leave mobile sizing unchanged. */
@media screen and (min-width: 1024px) and (pointer: fine) {
    body.website-page {
        zoom: 0.7;
        min-height: calc(100vh / 0.7);
    }
    body.website-page .image-header-container {
        height: calc(100vh / 0.7);
    }
}

@media screen and (min-width: 901px) {
    body.website-page .image-header-container .overlay-content {
        zoom: 1 !important;
        transform: scale(0.7) !important;
        transform-origin: center center;
    }
    body.website-page [class$="-page-menu"] .menu-bar {
        zoom: 1 !important;
        transform: scale(0.7) !important;
        transform-origin: top left;
        width: calc(142.857143% - 40px);
    }
}

/* shared property_update_quiet */
/* Small update date centered on the count / clear-filters row. */
body.property-page .filter-panel .filter-footer {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 8px 16px;
}
body.property-page .filter-footer > span[id$="resultCount"] {
    grid-column: 1;
    min-width: 0;
    justify-self: start;
    text-align: left;
}
body.property-page .filter-footer .main-page-update {
    display: block;
    grid-column: 2;
    justify-self: center;
    min-width: 0;
    max-width: 230px;
    margin: 0;
    padding: 0;
    background: transparent;
    color: #71808c;
    text-align: center;
    font: 400 11px/1.4 Arial, sans-serif;
}
body.property-page .filter-footer .main-page-update time { font: inherit; color: inherit; }
body.property-page .filter-footer .clear-filters {
    grid-column: 3;
    justify-self: end;
    min-width: 0;
    max-width: 100%;
    text-align: right;
    white-space: normal;
}
@media(max-width:767px) {
    body.property-page .filter-panel .filter-footer {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px;
    }
    body.property-page .filter-footer .main-page-update { max-width: 100%; font-size: 10px; }
}

#property-page-coverage { margin:24px auto; max-width:1100px; padding:0 16px; box-sizing:border-box; }
#property-page-coverage > .listing-scope-note { margin:0; padding:0; border:0; }
#property-page-coverage > .listing-scope-note[hidden] { display:none !important; }
#property-page-coverage > .listing-scope-note + .listing-scope-note { display:none; }
#property-page-coverage > .listing-scope-note[hidden] + .listing-scope-note:not([hidden]) { display:block; }

/* shared footer_gallery_colors_v2 */
/* Darker than the active navigation buttons; includes the Home footer strip. */
body.website-page footer.footer,
body.website-page footer.footer.home-footer-strip { background:#0b1f2b; background-image:none; }
/* Neutral photo surround. Photograph sizing and gallery interactions are unchanged. */
body.property-page .ly-modal .ly-stage { background:#fff; }

/* Coverage belongs to the open filters, after the count/date/Clear filters row. */
body.property-page .property-filter-disclosure .filter-footer { margin:16px 0 0; padding:12px 0; border-radius:0; border-top:1px solid #e6edf1; background:transparent; }
body.property-page .property-filter-disclosure .listing-scope-note { margin:0; padding:10px 4px 14px; border:0; border-top:1px solid #e6edf1; border-radius:0; background:transparent; box-shadow:none; color:#657785; font:400 11px/1.6 Arial,sans-serif; text-align:center; }
body.property-page .property-filter-disclosure .listing-scope-note a { color:inherit; text-underline-offset:2px; }

/* Useful page introductions share the site's existing typography and colors. */
.property-intro {box-sizing:border-box;width:calc(100% - 32px);max-width:1120px;margin:24px auto;padding:0;text-align:center;color:inherit;}
.property-intro h2 {font-size:clamp(1.15rem,2.3vw,1.5rem);line-height:1.35;margin:0 0 10px;}
.property-intro p {max-width:82ch;margin:0 auto;line-height:1.65;font-size:.95rem;}
.property-intro nav {display:flex;justify-content:center;flex-wrap:wrap;gap:8px 20px;margin-top:12px;font-size:.9rem;}
.property-intro nav a {text-decoration:underline;text-underline-offset:3px;}
@media(max-width:600px){.property-intro{width:calc(100% - 24px);margin:18px auto;}.property-intro p{font-size:.9rem;}}

/* VISIBLE_FILTER_CHOICES_20261112 */
body.property-page .filter-panel .visible-filter-field {grid-column:1 / -1;min-width:0;width:100%;justify-self:center;}
body.property-page .filter-panel .visible-filter-field > label {display:block;text-align:center;}
body.property-page .filter-panel .property-type-choices,
body.property-page .filter-panel .waterfront-choices {display:grid;width:100%;max-width:720px;box-sizing:border-box;margin:0 auto;gap:4px;padding:4px;}
body.property-page .filter-panel .property-type-choices {grid-template-columns:repeat(5,minmax(0,1fr));}
body.property-page .filter-panel .waterfront-choices {grid-template-columns:repeat(3,minmax(0,1fr));max-width:520px;}
body.property-page .filter-panel .property-type-choices button,
body.property-page .filter-panel .waterfront-choices button {box-sizing:border-box;min-width:0;min-height:44px;padding:8px 6px;white-space:normal;overflow-wrap:normal;line-height:1.3;font-size:13px;}
@media(max-width:600px){
body.property-page .filter-panel .property-type-choices {grid-template-columns:repeat(6,minmax(0,1fr));}
body.property-page .filter-panel .property-type-choices button {grid-column:span 2;}
body.property-page .filter-panel .property-type-choices button:nth-last-child(-n+2) {grid-column:span 3;}
body.property-page .filter-panel .waterfront-choices button {font-size:12px;padding:8px 4px;}
}

body.property-page .filter-panel .visible-filter-field {flex:0 0 100%;max-width:100%;}
