/* Global spacing utility override */

/* Reset and Base Styles */
* {
    margin: 0;
    
    padding: 0;
    box-sizing: border-box;gallery-main
}

body {
    font-family: 'Roboto', sans-serif;
    line-height: 1.6;
    color: var(--primary-gray-dark); /* Changed from #333 */
    background: white;
}

html, body {
    overflow-x: hidden;
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

/* Import Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700;800;900&family=Roboto:wght@300;400;500;700;900&display=swap');

/* Main Brand Colors */
:root {
    --primary-red: #DE1620;
    --primary-orange: #FA783A;
    --primary-gradient: linear-gradient(180deg, #DE1620 0%, #FA783A 100%);
    --primary-gradient-hover: linear-gradient(180deg, #C0141A 0%, #E66A2A 100%);
    --primary-gray-light: #d9d9d9; /* New primary color */
    --primary-gray-dark: #252525; /* New primary color */
    --primary-light-gray: #f5f5f5; /* Re-added primary color */
}

/* Header Styles */
.header {
    background: transparent;
    box-shadow: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1001;
    padding: 15px 50px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: all 0.3s ease;
}

.header-left {
    display: flex;
    align-items: center;
    gap: 20px;
    flex: 1;
}

.hamburger-menu {
    background: rgba(0,0,0,0.3);
    color: white;
    padding: 8px 12px;
    border-radius: 5px;
    text-shadow: none;
    border: none;
    font-size: 18px;
    cursor: pointer;
    transition: background 0.3s;
}

.hamburger-menu:hover {
    background: rgba(0,0,0,0.5);
}

.language-btn {
    background: rgba(0,0,0,0.3);
    color: white;
    padding: 8px 12px;
    border-radius: 20px;
    text-shadow: none;
    border: none;
    cursor: pointer;
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: background 0.3s;
    font-family: 'Roboto', sans-serif;
}

.language-btn:hover {
    background: rgba(0,0,0,0.5);
    color: white;
}



.language-menu {
    list-style: none; /* disc 제거 */
    margin: 0;
    padding: 0;
}
.language-menu li {
    margin: 0;
    padding: 0;
}
.language-menu li a {
    display: block;
    padding: 5px 10px;
    text-decoration: none;
    color: inherit;
    font-family: inherit;
}
.language-menu li a.active {
    font-weight: bold;
    background-color: #eee;
}





.logo {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1;
}

.logo-image {
    height: 50px;
    width: auto;
    max-width: 200px;
    object-fit: contain;
}

.header.scrolled .logo-image {
    filter: drop-shadow(0 2px 10px rgba(0,0,0,0.5));
}

.header-nav {
    display: flex;
    gap: 30px;
    align-items: center;
    flex: 1;
    justify-content: flex-end;
}

.nav-link {
    text-decoration: none;
    color: #252525;
    font-weight: 500;
    transition: color 0.3s;
    
}

.home-page .nav-link {
    color: white;
}

.nav-link:hover {
    color: var(--primary-red);
}

.home-page .nav-link:hover {
    color: #f0f0f0;
}


/* .nav-link:hover intentionally inherits to avoid color shift */

.signup-btn {
    background: var(--primary-red);
    color: white !important;
    padding: 10px 20px;
    border-radius: 25px;
    transition: background 0.3s;
    text-shadow: none;
}

.signup-btn:hover {
    background: #C0141A;
}

/* Hero Section */
.hero {
    margin-top: 0;
    color: white;
    min-height: 60vh !important;
    max-height: 60vh !important;
    height: 60vh !important;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    position: relative;
    padding-top: 80px;
    overflow: hidden;
}

.banner-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -1;
}
/* Ensure <picture> wrapper does not introduce overflow */
.banner-picture { display: block; }

/* Mobile middle banner */
.mobile-middle-banner { display: none; width: 100%; height: auto; border-radius: 12px; margin: 16px 0; }
@media (max-width: 576px) {
    /* Properties filter bar: search, filters, save in one line */
    .properties-page .filter-bar .container .d-flex { gap: 8px; }
    .properties-page .filter-bar .input-group { flex: 1 1 auto; min-width: 0; }
    .properties-page .filter-bar .input-group .input-group-text { border-radius: 999px 0 0 999px; }
    .properties-page .filter-bar .input-group .form-control { border-radius: 0 999px 999px 0; }
    .properties-page .filters-btn { border-radius: 999px; }
    .properties-page .btn-primary { border-radius: 999px; white-space: nowrap; }
    /* Show only search, Filters, and Save search */
    .properties-page .filter-bar .dropdown { display: none !important; }
    .properties-page .filter-bar .btn-light.border:not(.filters-btn) { display: none !important; }
    .mobile-middle-banner { display: block; }
}

/* Mobile-only top features section placement */
@media (max-width: 576px) {
    .detail-page .mobile-top-features { display:block; padding: 10px 0; }
}
@media (min-width: 577px) {
    .detail-page .mobile-top-features { display:none; }
}

.hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(rgba(0,0,0,0.3), rgba(0,0,0,0.3));
    z-index: 0;
}

.hero-content {
    max-width: 800px;
    padding: 0 20px;
    position: relative;
    z-index: 2;
}

.hero-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 40px;
    font-weight: 400;
    line-height: 65px;
    letter-spacing: 1.2px;
    color: #FFF;
    text-align: center;
    
    width: 100%;
    max-width: 1724px;
    height: auto;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.hero-title .first-part {
    font-family: 'Montserrat', sans-serif;
    font-size: 40px;
    font-weight: 400;
    line-height: 65px;
    letter-spacing: 1.2px;
    color: #FFF;
    text-align: center;
    margin-bottom: 0;
}

.hero-title .second-part {
    font-family: 'Montserrat', sans-serif;
    font-size: 52px;
    font-weight: 700;
    line-height: 65px;
    letter-spacing: 1.56px;
    color: #FFF;
    text-align: center;
    margin-top: 0;
}

.search-container {
    display: flex;
    max-width: 800px; /* Further increased max-width */
    margin: 20px auto 100px auto;
    background: white;
    border-radius: 50px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0,0,0,0.3);
    border: 2px solid #ddd;
    padding: 2px; /* Further decreased vertical padding */
}

.search-input {
    flex: 1;
    padding: 15px 15px;
    border: none;
    outline: none;
    font-size: 16px;
    color: var(--primary-gray-dark); /* Changed from #333 */
    background: white;
    font-family: 'Roboto', sans-serif;
    font-weight: 400;
}

.search-input::placeholder {
    color: #999;
}

.search-btn {
    background: var(--primary-gradient);
    border: none;
    padding: 15px 15px;
    color: white;
    cursor: pointer;
    font-size: 18px;
    transition: all 0.3s;
    font-family: 'Roboto', sans-serif;
    font-weight: 500;
    position: relative;
    overflow: hidden;
}

.search-btn:hover {
    background: var(--primary-gradient-hover);
}

.search-btn:active {
    transform: translateY(0);
}

/* Featured Properties Section */
.featured-properties {
    padding: 80px 0;
    background: white;
}

.section-title {
    font-family: 'Roboto', sans-serif;
    font-weight: 700;
    font-size: 36px;
    margin-bottom: 40px;
    color: var(--primary-gray-dark); /* Changed from #333 */
    position: relative;
    line-height: 1.2;
}


.properties-carousel {
    position: relative;
    display: flex;
    gap: 20px;
}

.carousel-btn {
    display: none;
}

/* .carousel-btn:hover removed since carousel buttons are hidden */

.properties-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 20px;
    flex: 1;
}

.property-card {
    background: white;
    border: 1px solid #d9d9d9;
    border-radius: 15px;
    overflow: hidden;
    box-shadow: none;
    transition: none;
    border-top: 4px solid transparent;
}

.property-card:hover {
    transform: none;
    box-shadow: none;
    border-top-color: var(--primary-gray-dark);
}

.property-image {
    position: relative;
    height: 250px;
    overflow: hidden;
}

.property-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.property-actions {
    position: absolute;
    top: 15px;
    right: 15px;
    display: flex;
    gap: 5px;
}

.action-btn {
    background: rgba(255,255,255,0.8);
    border: none;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s;
    font-family: 'Roboto', sans-serif;
    font-weight: 500;
}

/* Override action button hover color globally */
.action-btn:hover { background: #fa783a !important; color: #fff !important; }

.property-info {
    padding: 15px;
    display: flex;
    flex-direction: column; /* Stack items vertically */
    align-items: flex-start; /* Align items to the start (left) */
}

.property-name {
    font-family: 'Roboto', sans-serif;
    font-weight: 500;
    font-size: 1.2rem;
    margin-bottom: 0; /* No bottom margin, gap handles spacing */
    color: var(--primary-gray-dark); /* Changed from #333 */
}

.property-name a{
    color: var(--primary-gray-dark);
    text-decoration:none;
}

.property-name a:hover{
    color:#000;
}

/* Stack property details below the price */
.property-pricing-details { display:flex; flex-direction: column; align-items:flex-start; gap:4px; }

.property-price {
    font-family: 'Roboto', sans-serif;
    font-weight: 600;
    font-size: 1.2rem;
    color: var(--primary-gray-dark); /* Changed price color to var(--primary-gray-dark) */
    margin-bottom: 0; /* Removed margin-bottom */
}

.property-details {
    font-family: 'Roboto', sans-serif;
    font-weight: 400;
    font-size: 14px;
    color: #666;
    margin-bottom: 0; /* Removed margin-bottom */
}

/* Advertising Section */
.advertising {
    background: white;
}

.advertising .container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
    margin-top: 3rem !important; /* Equivalent to my-5 */
    margin-bottom: 3rem !important; /* Equivalent to my-5 */
}
/* Center the advertising section title (moved from inline style) */
.advertising .section-title { text-align: center; }

.ad-row {
    display: flex;
    flex-wrap: wrap;
    margin-right: 0;
    margin-left: 0;
}

.advertising .col-md-6 {
    flex: 0 0 auto;
    width: 50%; /* Equivalent to col-md-6 */
}

.advertising .d-flex {
    display: flex;
}

.advertising .flex-column {
    flex-direction: column;
}

.advertising .justify-content-center {
    justify-content: center;
}

.advertising .align-items-start {
    align-items: flex-start;
}

.advertising .p-4 {
    padding: 1.5rem !important; /* Equivalent to p-4 */
}

.advertising .text-block {
    background: var(--primary-light-gray); /* Inline style */
}

.advertising .lead {
    font-size: 1.25rem;
    font-weight: 300;
}

.advertising .responsive-desc {
    line-height: 1.6;
    color: #666;
}

.advertising .mb-0 {
    margin-bottom: 0 !important; /* Equivalent to mb-0 */
}

.ad-image-col {
    flex: 0 0 auto;
    width: 50%; /* Equivalent to col-md-6 */
    overflow: hidden; 
}


.ad-image-col img {
    width: 100%;
    height: 100%;
    object-fit: cover;            /* 비율 유지하면서 잘라냄 */
    display: block;
  }

/* Advertising: force image height in ad-image-col */
.advertising .ad-image-col img { height: 260px !important; width: 100% !important; object-fit: cover !important; display: block; }

.ad-heading {
    font-weight: 600;
    margin-bottom: 10px;
    font-size: 30px;
}

.advertising .img-fluid {
    max-width: 100%;
    height: auto;
}

.advertising .w-100 {
    width: 100% !important;
}

.advertising .h-100 {
    height: 100% !important;
}

.advertising .object-fit-cover img {
    object-fit: cover;
}

.ad-text-panel {
    flex: 0 0 auto;
    width: 50%; /* Equivalent to col-md-6 */
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    padding-right: 50px;
    padding-left: 50px;
    background: var(--primary-light-gray);
}

/* Partners Section */
.partners {
    padding: 60px 0;
    background: white;
}

.partners-logos { display: flex; align-items: center; gap: 40px; margin-bottom: 30px; overflow: hidden; position: relative; }
.partners-logos .track { display: flex; align-items: center; gap: 40px; will-change: transform; animation: none; transition: transform 400ms ease; }
@keyframes partners-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .partners-logos .track { animation: none; } }

.partner-logo {
    font-family: 'Roboto', sans-serif;
    font-weight: 700;
    font-size: 1.5rem;
    color: var(--primary-gray-dark);
    letter-spacing: 2px;
}

.partners-dots {
    display: flex;
    justify-content: center;
    gap: 10px;
}

.dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #ddd;
    cursor: pointer;
    transition: background 0.3s;
}

.dot.active {
    background: var(--primary-red);
}

/* Footer */
.footer {
    background: #f8f9fa;
    padding: 60px 0 30px;
    position: relative;
    border-top: 4px solid var(--primary-gradient);
}

.footer-content {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 40px;
    margin-bottom: 40px;
}

.footer-logo {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 20px;
}

.footer-logo .logo-image {
    height: 40px;
    max-width: 150px;
}

.footer-mission {
    font-family: 'Roboto', sans-serif;
    font-weight: 400;
    color: #666;
    line-height: 1.6;
    margin-bottom: 30px;
}

.social-icons {
    display: flex;
    gap: 15px;
}

.social-icon {
    width: 40px;
    height: 40px;
    background: #ddd;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #666;
    text-decoration: none;
    transition: all 0.3s;
}

.social-icon:hover {
    background: var(--primary-red);
    color: white;
}

.footer-title {
    font-family: 'Roboto', sans-serif;
    font-weight: 700;
    font-size: 1.2rem;
    margin-bottom: 20px;
    color: var(--primary-gray-dark); /* Changed from #333 */
}

.footer-links {
    list-style: none;
}

.footer-links li {
    margin-bottom: 10px;
}

.footer-links a {
    font-family: 'Roboto', sans-serif;
    font-weight: 400;
    color: #666;
    text-decoration: none;
    transition: color 0.3s;
}

.footer-links a:hover {
    color: var(--primary-red);
}

.contact-info {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.contact-item {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: 'Roboto', sans-serif;
    font-weight: 400;
    color: #666;
}

.contact-item i {
    color: var(--primary-red);
}

.footer-bottom {
    text-align: center;
    padding-top: 30px;
    border-top: 1px solid #ddd;
}

.copyright {
    font-family: 'Roboto', sans-serif;
    font-weight: 400;
    font-size: 14px;
    color: #666;
}

.scroll-to-top {
    position: fixed;
    bottom: 30px;
    left: 30px;
    width: 50px;
    height: 50px;
    background: #ddd;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    color: #666;
    font-size: 18px;
    transition: all 0.3s;
    z-index: 1000;
    font-family: 'Roboto', sans-serif;
    font-weight: 500;
}

.scroll-to-top:hover {
    background: var(--primary-red);
    color: white;
}

/* Utility: horizontal padding 0 (Bootstrap-like) */
.px-0 {
    padding-left: 0 !important;
}

/* Responsive Design */
@media (max-width: 1920px) {
    .hero-title {
        width: 100%;
        max-width: 1724px;
    }
}

@media (max-width: 768px) {
    /* Keep header items in one row on tablet */
    .header { flex-direction: row; align-items: center; gap: 10px; padding: 10px 16px; }
    .header-left { order: 1; flex: 0 0 auto; display:flex; align-items:center; gap:10px; }
    .logo { order: 2; flex: 1; display:flex; justify-content:center; }
    .header-nav { order: 3; flex: 0 0 auto; display:flex; gap: 16px; }
    .nav-link { font-size: 14px; }
    .logo-image { height: 40px; max-width: 150px; }
    
    .hero {
        min-height: 60vh !important;
        max-height: 60vh !important;
        height: 60vh !important;
        padding-top: 60px;
    }
    
    .hero-title {
        font-size: 32px;
        line-height: 50px;
        height: auto;
        padding: 20px;
    }
    
    .hero-title .first-part {
        font-size: 32px;
        line-height: 50px;
    }
    
    .hero-title .second-part {
        font-size: 42px;
        line-height: 50px;
    }
    
    .search-container {
        flex-direction: column;
        border-radius: 15px;
    }
    
    .search-input {
        padding: 15px 50px;
    }
    
    .search-btn {
        padding: 15px 50px;
        border-radius: 0 0 15px 15px;
    }
    
    .partners-logos {
        flex-direction: column;
        gap: 20px;
    }
    
    .properties-grid {
        grid-template-columns: 1fr;
    }
    
    .carousel-btn {
        display: none;
    }
    
    .section-title {
        font-size: 36px;
    }
    
    .advertising-title {
        font-size: 2rem;
    }
}

@media (max-width: 480px) {
    .logo-image {
        height: 35px;
        max-width: 120px;
    }
    
    .hero {
        min-height: 60vh !important;
        max-height: 60vh !important;
        height: 60vh !important;
        padding-top: 50px;
    }
    
    .hero-title {
        font-size: 28px;
        line-height: 45px;
        height: auto;
        padding: 15px;
    }
    
    .hero-title .first-part {
        font-size: 28px;
        line-height: 45px;
    }
    
    .hero-title .second-part {
        font-size: 36px;
        line-height: 45px;
    }
    
    .section-title {
        font-size: 24px;
        margin-bottom: 10px;
    }
    
    .advertising-title {
        font-size: 2rem;
    }
}

/* Tablet refinements */
@media (max-width: 992px) {
    /* Header (tablet) */
    .header { padding: 10px 20px; }
    .header-nav { gap: 16px; }
    .nav-link { font-size: 14px; }
    .logo-image { height: 40px; }
    .language-btn { padding: 6px 10px; font-size: 12px; }
    /* Properties: stack map and list, remove fixed list width */
    .properties-page .map-list-wrap { }
    .properties-page .map-col, .properties-page .list-col { flex: 1 1 auto !important; max-width: 100% !important; width: auto !important; }
    .properties-page .list-col { min-width: 0 !important; }
    /* Properties: reduce container side padding */
    .properties-page .filter-bar .container { padding-left: 20px; padding-right: 20px; }
}

/* Mobile refinements */
@media (max-width: 576px) {
    /* Header (mobile) - same row and aligned */
    .header { padding: 10px 16px; grid-template-columns: auto 1fr auto; align-items:center; position: relative; margin-bottom: -60px; }
    .header-nav { display: none; position: absolute; top: calc(100% + 6px); left: 16px; right: auto; width: auto; min-width: 92px; max-width: 118px; border-radius: 10px; padding: 10px 14px; flex-direction: column; align-items: flex-start; gap: 12px; z-index: 3000; }
    .header-nav.open { display: flex; }
    .header-nav .nav-link { width: auto; justify-content: flex-start; padding: 0; border-radius: 0; font-size: 12px; font-weight: 700; line-height: 1.3; white-space: nowrap; }
    
    /* home - 어두운 배경 흰 글씨 */
    .home-page .header-nav { background: rgba(23,23,23,0.96); }
    .home-page .header-nav a { color: #fff; }
    .home-page .header-nav .nav-link:hover,
    .home-page .header-nav .nav-link:focus { color: #fff; }
    .header-nav.is-authenticated { left: 8px; right: 8px; max-width: none; width: auto; border-radius: 18px; padding: 18px 14px 14px; gap: 14px; }
    .header-nav.is-authenticated > .nav-link { margin: 0 10px 2px; }
    .header-nav.is-authenticated .account-menu { width: 100%; }
    .header-nav.is-authenticated .account-menu-panel { min-height: 220px; }
    
    /* 나머지 페이지 - 흰 배경 어두운 글씨 */
    body:not(.home-page) .header-nav { background: #fff; border: 1px solid #eee; box-shadow: 0 4px 12px rgba(0,0,0,0.1); }
    body:not(.home-page) .header-nav a { color: #252525; }
    body:not(.home-page) .header-nav .nav-link { background: transparent; }

    .header-left { grid-column: 1; display:flex; align-items:center; gap:10px; }
    .logo { grid-column: 2; display:flex; justify-content: center; align-items: center; justify-self: center; position: absolute; left: 50%; transform: translateX(-50%); z-index: 1500; }
    .language-selector { grid-column: 3; justify-self: end; position: absolute; right: 16px; top: 50%; transform: translateY(-50%); }
    .hamburger-menu, .language-btn { display:flex; align-items:center; height: 32px; }
    .logo-image { display: block; margin: 0 auto; }
    .logo-image { height: 35px; max-width: 120px; }
    .language-btn { padding: 6px 10px; font-size: 12px; }
    .language-btn .language-text { display: none; }
    /* Hero full-bleed look */
    .hero { min-height: 100vh !important; height: 100vh !important; max-height: none !important; padding-top: 60px; }
    .hero-content { padding: 0 24px; }
    .hero-title { padding: 10px 0; }
    .hero-title .first-part { font-weight: 400; }
    .hero-title .second-part { font-weight: 700; }
    .search-container { width: 280px; max-width: none; border-radius: 30px; margin: 20px auto 100px auto; box-shadow: 0 10px 30px rgba(0,0,0,0.25); flex-direction: row; align-items: center; }
    .search-input { padding: 12px 16px; font-size: 14px; }
    .search-btn { width: 44px; height: 44px; margin: 3px; border-radius: 50%; padding: 0; }
    
    
    /* Card image height on mobile */
    .property-image { height: 200px; }
    /* Featured properties spacing on mobile */
    .featured-properties { padding: 30px 0; }
    /* Advertising: mobile card layout (image then text for each pair) */
    .advertising .ad-row { display: flex; flex-direction: column; gap: 12px; }
    .advertising .ad-row > div:nth-child(1) { order: 2; } /* first text below first image */
    .advertising .ad-row > div:nth-child(2) { order: 1; } /* first image on top */
    .advertising .ad-row > div:nth-child(3) { order: 3; } /* second image */
    .advertising .ad-row > div:nth-child(4) { order: 4; } /* second text */
    .advertising .ad-image-col, .advertising .ad-text-panel { width: 100%; padding-left: 0; padding-right: 0; }
    .advertising .ad-image-col img { height: 200px !important; width: 100% !important; display: block; border-radius: 8px 8px 0 0; }
    .advertising .ad-text-panel { background: #f5f5f5; padding: 16px; border-radius: 0 0 8px 8px; margin-top: -20px; }
    .advertising .ad-heading { font-size: 20px; margin-bottom: 6px; }
    .advertising .responsive-desc { font-size: 14px; color: #6c757d; }
    /* Detail features: 1 column */
    .detail-page .feature-tiles .feature-tile { flex: 0 0 100%; max-width: 100%; }

    /* Footer: mobile layout */
    .footer { padding: 40px 0 20px; }
    .footer-content { grid-template-columns: 1fr; gap: 20px; text-align: center; }
    .footer-logo { justify-content: center; }
    .footer-mission { margin-bottom: 16px; }
    .social-icons { justify-content: center; gap: 12px; }
    .social-icon { width: 36px; height: 36px; }
    .footer-title { margin-bottom: 12px; }
    .footer-links { padding: 0; margin: 0 auto; display: inline-block; text-align: left; }
    .footer-bottom { padding-top: 20px; }
    /* Properties page: mobile header padding + sticky */
    .properties-page .header { padding: 10px 16px !important; position: sticky !important; top: 0; z-index: 3200; }
    /* Properties page: 16px horizontal padding on mobile */
    .properties-page .filter-bar { padding: 10px 16px !important; position: sticky; margin-top: 0 !important; z-index: 3190; background: #fff; }
    .properties-page .filter-bar .container { padding-left: 0px !important; padding-right: 0px !important; }
    /* Rounded search pill and bigger text */
    .properties-page .filter-bar .input-group .input-group-text,
    .properties-page .filter-bar .input-group .form-control { height: 36px; }
    .properties-page .filter-bar .input-group .form-control { font-size: 16px; }
    .properties-page .filter-bar .input-group .input-group-text,
    .properties-page .filter-bar .input-group .form-control { border:1px solid #ddd; }
    .properties-page .filter-bar .input-group .input-group-text { border-radius: 999px 0 0 999px; }
    .properties-page .filter-bar .input-group .form-control { border-radius: 0 999px 999px 0; }
    /* Ensure buttons match input height */
    .properties-page .filters-btn,
    .properties-page .btn-primary { height: 36px; display: inline-flex; align-items: center; justify-content: center; padding: 0 12px; }
    /* Properties: hide map on mobile, show only listings */
    .properties-page .map-col { display: none !important; }
    .properties-page .list-col { flex: 1 1 auto !important; max-width: 100% !important; border-right: none !important; min-width: 0 !important; margin-left: 0 !important; margin-right: 0 !important; }
    .properties-page .map-list-wrap { height: auto !important; }
    /* Floating Map button */
    .properties-page .floating-map-btn { position: fixed; left: 50%; bottom: 18px; transform: translateX(-50%); background: var(--primary-gradient); color: #fff; border: none; border-radius: 999px; padding: 10px 18px; display: inline-flex; align-items: center; gap: 8px; box-shadow: 0 8px 20px rgba(0,0,0,0.2); z-index: 3300; font-weight: 600; }
    .properties-page .floating-map-btn i { font-size: 14px; }
    /* Toggle show-map state */
    .properties-page.show-map .map-col { display: block !important; }
    .properties-page.show-map .list-col { display: none !important; }
    /* Fullscreen map mode but keep header and filter bar visible */
    .properties-page.show-map { overflow: hidden; }
    .properties-page.show-map .map-list-wrap { position: fixed; top: var(--map-top-offset, 108px); left: 0; right: 0; bottom: 0; height: auto !important; width: 100vw !important; display: block !important; z-index: 3100; }
    .properties-page.show-map .map-col { display: block !important; height: 100%; width: 100vw !important; }
    .properties-page.show-map #map { position: absolute; inset: 0; height: 100% !important; width: 100% !important; }
}

/* Detail mobile refinements to match screenshot */
@media (max-width: 576px) {
    .detail-page .detail-topbar { padding: 12px 16px; }
    .detail-page .detail-topbar .h5 { font-size: 18px; font-weight: 700; }
    .detail-page .detail-topbar .text-muted.small { font-size: 12px; opacity: .9; }
    .detail-page .detail-topbar .h4 { font-size: 22px; font-weight: 800; }

    .detail-page .detail-unique {margin-top: -50px; padding: 10px 16px; }
    .detail-page .unique-features-mobile .unique-list { font-size: 14px; }
    .detail-page .unique-features-mobile .unique-show-more { font-size: 14px; }
    .detail-page .unique-features-mobile .mobile-special-offer { margin: 10px 0 0; }

    .detail-page .detail-floorplans-ui .plan-filters { gap: 8px; }
    .detail-page .detail-floorplans-ui .pill { font-size: 12px; padding: 6px 10px; }
    .detail-page .detail-floorplans-ui .plan-card { border-radius: 10px; }
    /* Floor plan rows: single-line alignment on mobile with flexible columns */
    .detail-page .detail-floorplans-ui .plan-row { display: grid !important; grid-template-columns: minmax(0,1fr) auto auto auto !important; grid-template-areas: none !important; column-gap: 8px; align-items: center; }
    .detail-page .detail-floorplans-ui .plan-row .col { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
    .detail-page .detail-floorplans-ui .plan-row .col.unit { padding-left: 0 !important; }
    .detail-page .detail-floorplans-ui .plan-row .col.price { justify-self: end; text-align: right; white-space: nowrap; }
    .detail-page .detail-floorplans-ui .plan-row .col.sqft { justify-self: end; text-align: right; font-size: 12px; color:#6c757d; white-space: nowrap; }
    .detail-page .detail-floorplans-ui .plan-row .col.available { justify-self: end; text-align: right; white-space: nowrap; }
}

/* Detail features: 2 columns on tablet */
@media (max-width: 992px) {
    .detail-page .feature-tiles .feature-tile { flex: 0 0 calc(50% - 8px); max-width: calc(50% - 8px); }
}
@media (max-width: 576px) {
    /* Two rows of tiles on mobile: 2 per row using CSS Grid */
    .detail-page .feature-tiles { display: grid !important; grid-template-columns: repeat(2, 1fr); gap: 12px; }
    .detail-page .feature-tiles .feature-tile { box-sizing: border-box; width: 100% !important; max-width: 100% !important; }
    /* Limit to two rows (first 4 features) */
    .detail-page .feature-tiles .feature-tile:nth-child(n+5) { display: none !important; }
    /* Card look per mock */
    .detail-page .feature-tiles .feature-tile { background:#fff; border:1px solid #e5e5e5; border-radius:12px; box-shadow: 0 2px 6px rgba(0,0,0,0.08); padding:12px; }
    .detail-page .feature-tiles .feature-tile i { font-size: 18px; margin-bottom: 6px; color:#252525; }
    .detail-page .feature-tiles .feature-tile > div { font-weight: 600; color:#252525; }
}

/* More visible scroll effect for testing */

/* Test: Make header always visible for debugging */
.header {
    transition: all 0.3s ease;
}

/* Header Scroll Effect - index.html (dark transparent) */
.home-page .header.scrolled {
    background: rgba(0, 0, 0, 0.3) !important;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1) !important;
    backdrop-filter: blur(10px) !important;
}

.home-page .header.scrolled .hamburger-menu,
.home-page .header.scrolled .nav-link {
    color: white !important;
}

.home-page .header.scrolled .language-btn {
    background: white !important;
    color: #252525 !important;
}

.home-page .header.scrolled .hamburger-menu:hover {
    background: rgba(0,0,0,0.5) !important;
}

.home-page .header.scrolled .language-btn:hover {
    background: #f0f0f0 !important;
}

.home-page .header.scrolled .nav-link:hover {
    color: var(--primary-red) !important;
}

.home-page .header.scrolled .signup-btn {
    background: var(--primary-red) !important;
    color: white !important;
    text-shadow: none !important;
}

.home-page .header.scrolled .signup-btn:hover {
    background: #C0141A !important;
}

.home-page .header.scrolled .logo-image {
    filter: drop-shadow(0 2px 10px rgba(0,0,0,0.5)) !important;
}

/* Header Scroll Effect - detail.html (white solid) */
.detail-page .header.scrolled {
    background: #fff !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    border-bottom: 1px solid #e5e5e5 !important;
}

.detail-page .header.scrolled .hamburger-menu,
.detail-page .header.scrolled .language-btn,
.detail-page .header.scrolled .nav-link {
    color: #252525 !important;
}

.detail-page .header.scrolled .hamburger-menu:hover,
.detail-page .header.scrolled .language-btn:hover {
    background: rgba(0,0,0,0.06) !important;
}

.detail-page .header.scrolled .nav-link:hover {
    color: var(--primary-red) !important;
}

.detail-page .header.scrolled .signup-btn {
    background: var(--primary-red) !important;
    color: white !important;
    text-shadow: none !important;
}

.detail-page .header.scrolled .signup-btn:hover {
    background: #C0141A !important;
}

.detail-page .header.scrolled .logo-image {
    filter: none !important;
}

/* Search button base */
.search-btn {
    background: linear-gradient(180deg, #DE1620 0%, #FA783A 100%);
    border: none;
    color: white;
    cursor: pointer;
    font-size: 18px;
    transition: all 0.3s;
    font-family: 'Roboto', sans-serif;
    font-weight: 500;
    position: relative;
    overflow: hidden;
    border-radius: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 5px;
    padding: 15px 15px;
}

.search-btn:hover {
    background: linear-gradient(180deg, #C0141A 0%, #E66A2A 100%);
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(222, 22, 32, 0.4);
}

.search-btn:active {
    transform: translateY(0);
    box-shadow: 0 2px 8px rgba(222, 22, 32, 0.3);
}

/* Remove hamburger menu background */

.home-page .hamburger-menu {
    background: transparent;
    color: white;
    padding: 8px 12px;
    border-radius: 5px;
    text-shadow: none;
    border: none;
    font-size: 18px;
    cursor: pointer;
    transition: background 0.3s;
}

.hamburger-menu {
    background: transparent;
    color: #252525;
    padding: 8px 12px;
    border-radius: 5px;
    text-shadow: none;
    border: none;
    font-size: 18px;
    cursor: pointer;
    transition: background 0.3s;
}

.hamburger-menu:hover {
    background: rgba(0,0,0,0.2);
}

/* Hide hamburger menu on desktop */
@media (min-width: 577px) {
    .hamburger-menu {
        display: none !important;
    }
}

/* Remove signup button styles */
.signup-btn {
    display: none;
}

/* Updated Search Container with -30px margin-top */
/* search-container (base) duplicated blocks consolidated above */

/* Updated Language Button with white background and black text */
.language-btn {
    background: white;
    color: var(--primary-gray-dark); /* Changed to var(--primary-gray-dark) */
    padding: 8px 12px;
    border-radius: 20px;
    text-shadow: none;
    border: none;
    cursor: pointer;
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: all 0.3s;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.language-btn:hover {
    background: #f0f0f0;
    color: var(--primary-gray-dark); /* Changed to var(--primary-gray-dark) */
    box-shadow: 0 3px 8px rgba(0,0,0,0.15);
}

/* Language Button - Black text when scrolled */
.header.scrolled .language-btn {
    background: white !important;
    color: var(--primary-gray-dark) !important; /* Changed to var(--primary-gray-dark) */
    text-shadow: none !important;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1) !important;
}

.header.scrolled .language-btn:hover {
    background: #f0f0f0 !important;
    color: var(--primary-gray-dark) !important; /* Changed to var(--primary-gray-dark) */
    box-shadow: 0 3px 8px rgba(0,0,0,0.15) !important;
}

/* Properties page scoped styles */
.properties-page .filter-bar { position: sticky; margin-top: 0; z-index: 3000; background:#fff; overflow: visible; }
.properties-page .filter-bar .container .d-flex { flex-wrap: wrap; overflow: visible; }
.properties-page .filter-bar .input-group, 
.properties-page .filter-bar .dropdown, 
.properties-page .filter-bar .btn { flex: 0 0 auto; }
.properties-page .filter-bar .input-group { max-width: 35%; flex: 0 0 35%; }
.properties-page .filter-bar .dropdown-menu { z-index: 4000 !important; position: absolute; }
.properties-page .map-list-wrap { height: calc(100vh - 140px); }
.properties-page .map-col { flex:0 0 65%; max-width:65%; border-right:1px solid #eee; }
.properties-page .list-col { flex:0 0 35%; max-width:35%; }
.properties-page #map { width:100%; height:100%; }
.properties-page .badge-pill { border-radius:999px; }
/* removed header-spacer; using sticky header instead */
@media (max-width: 992px) {
	.properties-page .map-col, .properties-page .list-col { flex:0 0 100%; max-width:100%; }
	.properties-page .map-list-wrap { height:auto; }
	.properties-page .list-col { border-top:1px solid #eee; }
}
/* Header overrides (properties only) */
.properties-page .header { background:#fff !important; box-shadow:none !important; border-bottom:1px solid #e5e5e5; }
.properties-page .header { padding:15px 50px;top: 0; z-index: 3200; }
.properties-page .logo-image { height:32px !important; }
.properties-page .language-btn { border-radius:24px !important; padding:6px 12px !important; }
.properties-page .header.scrolled { background:#fff !important; box-shadow:none !important; backdrop-filter:none !important; border-bottom:1px solid #e5e5e5; }
.properties-page .hamburger-menu { color:#555 !important; background:transparent !important; box-shadow:none !important; }
.properties-page .hamburger-menu:hover { background:transparent !important; color:#333 !important; }
.properties-page .language-btn { border:1px solid #ddd !important; box-shadow:none !important; background:#fff !important; color: #252525 !important; }
.properties-page .language-btn:hover { background:#f8f9fa !important; border-color:#d0d0d0 !important; box-shadow:none !important; }
/* Ensure dark nav links on white header for properties-style pages */

/* properties-page .nav-link { color: #252525 !important; }*/
/* properties-page .nav-link:hover { color: var(--primary-red) !important; }*/

/* Brand overrides */
.properties-page .btn-primary { background: var(--primary-gradient) !important; border: none !important; }
.properties-page .btn-primary:hover, .properties-page .btn-primary:focus { background: var(--primary-gradient-hover) !important; box-shadow: none !important; }
.properties-page .text-primary { color: var(--primary-red) !important; }
/* Product card */
.properties-page .product-card { background: #fff; border: 1px solid #d9d9d9; border-radius: 15px; overflow: hidden; box-shadow: none; transition: none; border-top: 4px solid transparent; }
.properties-page .product-card .property-image { position: relative; height: 250px; overflow: hidden; }
.properties-page .product-card .property-image img { width: 100%; height: 100%; object-fit: cover; }
.properties-page .product-card .property-info { padding: 15px; display: flex; flex-direction: column; align-items: flex-start; }
.properties-page .product-card .property-name { font-family: 'Roboto', sans-serif; font-weight: 500; font-size: 1.2rem; margin-bottom: 0; color: var(--primary-gray-dark); }
/* price style unified above via .properties-page .property-price */
.properties-page .product-card .property-details { font-family: 'Roboto', sans-serif; font-weight: 400; font-size: 14px; color: #666; margin-bottom: 0; }

/* Align Properties filter bar to header padding */
.properties-page .filter-bar .container { max-width: 100%; }

/* Properties filter bar button hover color */
.properties-page .filter-bar .btn-light:hover,
.properties-page .filter-bar .btn-light:focus,
.properties-page .filter-bar .btn-light:active,
.properties-page .filter-bar .btn-light.show,
.properties-page .filter-bar .dropdown.show > .btn-light {
	background: #fff5f0 !important;
	border-color: #ffd6c7 !important;
}

/* Properties filter bar visual tweaks */
.properties-page .filter-bar { border-top: 0; border-bottom: 1px solid #e5e5e5; box-shadow: 0 2px 8px rgba(0,0,0,0.04); padding:10px 50px; }

/* Ensure solid bottom border on Properties header */
.properties-page header.header { border-bottom: 1px solid #e5e5e5 !important; }

/* Enforce layout for map/list columns (desktop) */
.properties-page .map-col { flex: 1 1 auto !important; max-width: none !important; }
.properties-page .list-col { }

/* Lock Properties list column width */
.properties-page .list-col { max-width: 400px !important;  flex-shrink: 0 !important; }

/* Use flex for Properties map/list layout; lock list width via flex-basis */
.properties-page .map-list-wrap { display: flex !important; align-items: stretch; height: calc(100vh - 140px); }
.properties-page .map-col { flex: 1 1 auto !important; min-width: 0; }
.properties-page .list-col {  }

/* Properties: add top spacing to list title */
.properties-page .list-col h6.mb-3 { margin-top: 20px; }

/* Mobile override: list column should not have a max-width */
@media (max-width: 576px) {
    .properties-page .list-col.overflow-auto.p-3 { max-width: none !important; width: auto !important; flex: 1 1 auto !important; }
}

/* Properties: remove blue focus glow on inputs */
.properties-page .form-control:focus,
.properties-page .form-select:focus,
.properties-page .input-group .form-control:focus {
	box-shadow: none !important;
	border-color: #ddd !important;
	outline: 0 !important;
}

/* Properties page default font */
.properties-page { font-family: 'Roboto', sans-serif !important; }

/* Detail page styles */
.detail-page { font-family: 'Roboto', sans-serif; color: #252525; --detail-header-offset: 60px; --detail-topbar-offset: 48px; }
.detail-page .header {
    background:#fff;
    border-bottom:1px solid #e5e5e5;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 3200;
    padding: 15px 50px;
}
/* Add top spacing to blocks using mb-3 in detail page */

/* Offset main content for fixed header */
.detail-page main { padding-top: var(--detail-header-offset, 80px); }


/* Gallery */
.detail-page .detail-gallery img { width:100%; height:100%; object-fit: cover;}

.detail-page .detail-topbar {
    position: sticky;
    top: var(--detail-header-offset, 60px);
    z-index: 3100;
    background:#fff;
    color:#252525;
    border-top: 1px solid #eceff3;
    border-bottom: 1px solid #eceff3;
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.06);
}

.detail-page .detail-topbar,
.detail-page .detail-topbar * {
    -webkit-tap-highlight-color: transparent;
}

.detail-page .detail-topbar:focus,
.detail-page .detail-topbar:focus-visible,
.detail-page .detail-topbar *:focus,
.detail-page .detail-topbar *:focus-visible {
    outline: none !important;
    box-shadow: none !important;
}
.detail-page .detail-topbar .container.d-flex.align-items-center.justify-content-between.gap-3.flex-wrap { margin-top: 20px; margin-bottom: 20px; }
.detail-page .detail-topbar .h5, 
.detail-page .detail-topbar .text-muted { color:#252525 !important; opacity:1; }
.detail-page .detail-topbar .text-muted.small { color:#6b7280 !important; }
.detail-page .detail-topbar .h4 { color:#111827; font-weight: 700; }

/* Section spacing */
.detail-page main > section { scroll-margin-top: 100px; }

/* Section headers */
.detail-page h2.h6 { font-size: 24px;font-weight: 700; color:#252525; margin-top: 50px; margin-bottom: 12px; }
/* Ensure any heading using Bootstrap-like h6 mb-2 shows larger size */
.detail-page .h6.mb-2 { font-size: 20px; font-weight:700; color:#252525; }
/* Increase top spacing for section subtitles under Location */
.detail-page .h6.mt-3.mb-2 { margin-top: 30px !important; font-size:20px; font-weight:700; color:#252525; }

/* Tables */
.detail-page table { border:1px solid #eee; }
.detail-page thead.table-light { background:#f6f6f6; }
.detail-page table td, 
.detail-page table th { padding: .75rem .75rem; }

/* Cards */
.detail-page .card { border:1px solid #eaeaea; border-radius: 8px; }

/* Policy sections styled like example */
.detail-page .policy-section { border:1px solid #e5e5e5; border-radius:8px; overflow:hidden; background:#fff; margin: 30px 0; }

.detail-page .policy-section .policy-header { background:#e6e6e6; color:#252525; font-weight:700; padding:10px 12px; border-bottom:1px solid #dcdcdc; border-top-left-radius:8px; border-top-right-radius:8px; }
.detail-page .policy-section .policy-body { padding:14px; }
.detail-page .policy-list { padding-left: 18px; }
.detail-page .policy-list li { margin-bottom:6px; }

/* Unique Features */
.detail-page .feature-list { padding-left: 18px; }
.detail-page .detail-description { margin-bottom: 18px !important; }
.detail-page .detail-description h3.h6 {
    font-size: 17px;
    line-height: 1.3;
    font-weight: 800;
    margin-top: 0 !important;
    margin-bottom: 10px !important;
    color: #111827;
}
.detail-page .detail-description-copy {
    color: #111827;
    font-size: 15px;
    line-height: 1.55;
}
.detail-page .detail-description-copy p:last-child {
    margin-bottom: 0;
}
.detail-page .detail-feature-columns {
    margin-top: 2px;
    margin-bottom: 16px !important;
}
.detail-page .detail-feature-columns .col-md-6 {
    padding-right: 26px;
}
.detail-page .feature-list {
    margin: 0;
    padding-left: 18px;
}
.detail-page .feature-list li {
    color: #111827;
    margin-bottom: 6px;
    line-height: 1.45;
}
.detail-page .feature-tiles { width: 100%; gap: 16px; }
.detail-page .feature-tiles .feature-tile {
	background:#f4f4f4;
	border:1px solid #e5e5e5;
	border-radius:8px;
	padding:16px 18px;
	min-width:0;
	text-align:center;
	flex: 0 0 calc((100% - 48px) / 4);
	max-width: calc((100% - 48px) / 4);
    min-height: 74px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.detail-page .feature-tiles .feature-tile i { display:block; font-size:20px; margin-bottom:8px; color:#252525; }
.detail-page .feature-tiles .feature-tile > div {
    color: #111827;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.35;
}

.detail-page .detail-video-embed {
    position: relative;
    width: 100%;
    padding-top: 56.25%;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    overflow: hidden;
    background: #0f172a;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
}

.detail-page .detail-video-embed iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.detail-page .detail-video-card {
    position: relative;
    display: block;
    border-radius: 14px;
    overflow: hidden;
    border: 1px solid #e5e7eb;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
}

.detail-page .detail-video-card img {
    width: 100%;
    height: auto;
    display: block;
}

.detail-page .detail-video-card.is-static {
    pointer-events: none;
}

.detail-page .detail-video-play {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 72px;
    height: 72px;
    margin-left: -36px;
    margin-top: -36px;
    border-radius: 999px;
    background: rgba(17, 24, 39, 0.72);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.25);
}

.detail-page .detail-video-link {
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    background: #fff;
    padding: 16px 18px;
}

.detail-page .detail-video-link a {
    color: #155eef;
    word-break: break-all;
    text-decoration: none;
    font-weight: 600;
}

.detail-page a,
.detail-page button,
.detail-page .property-card,
.detail-page .gallery-main,
.detail-page .gallery-sub-item,
.detail-page .detail-video-card {
    -webkit-tap-highlight-color: transparent;
}

.detail-page .property-card:focus,
.detail-page .property-card:focus-visible,
.detail-page .detail-video-card:focus,
.detail-page .detail-video-card:focus-visible,
.detail-page .gallery-main:focus,
.detail-page .gallery-main:focus-visible,
.detail-page .gallery-sub-item:focus,
.detail-page .gallery-sub-item:focus-visible {
    outline: none !important;
    box-shadow: none !important;
}

/* Map */
.detail-page #detail-map { border:1px solid #e5e5e5; border-radius: 8px; }

/* Nearby extras under Location */
.detail-page .detail-nearby-extras .nearby-banner img { width:100%; height:auto; display:block; border-radius:6px; }
.detail-page .detail-nearby-extras .edu-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
@media (min-width:992px){ .detail-page .detail-nearby-extras .edu-grid { grid-template-columns:1fr 1fr; } }
@media (max-width: 576px){ .detail-page .detail-nearby-extras .edu-grid { grid-template-columns: 1fr !important; } }
.detail-page .detail-nearby-extras .nearby-card { display:flex; gap:10px; align-items:flex-start; border:1px solid #eee; border-radius:8px; padding:10px 12px; background:#fff; }
.detail-page .detail-nearby-extras .nearby-badge { width:36px; height:36px; border-radius:50%; background:#eef2ff; color:#252525; font-size:12px; display:flex; align-items:center; justify-content:center; font-weight:700; }
.detail-page .detail-nearby-extras .nearby-title { font-weight:700; color:#252525; }
.detail-page .detail-nearby-extras .nearby-sub { color:#6c757d; }
.detail-page .detail-nearby-extras .nearby-meta { color:#6c757d; font-size:12px; }

.detail-page .score-cards { display:flex; gap:10px; flex-wrap:wrap; }
.detail-page .score-card { display:flex; flex-direction:column; align-items:flex-start; gap:2px; flex: 0 0 30%; max-width: 30%; }
.detail-page .score-card .score-icon { width:40px; height:40px; border-radius:50%; background:#eaf7f0; display:flex; align-items:center; justify-content:center; font-size:18px; color:#2f855a; }
.detail-page .score-card .score-label { color:#6c757d; font-size:12px; }
.detail-page .score-card .score-value { color:#1f2937; }
.detail-page .score-card .score-desc { color:#6c757d; font-size:12px; }

.detail-page .poi-grid { display:grid; grid-template-columns:1fr; gap:10px; }
@media (min-width:992px){ .detail-page .poi-grid { grid-template-columns:1fr 1fr; } }
.detail-page .poi-card { display:grid; grid-template-columns:24px 1fr auto; align-items:center; gap:10px; border:1px solid #eee; border-radius:8px; padding:10px 12px; background:#fff; }
.detail-page .poi-dot { width:14px; height:14px; border-radius:50%; background:#14b8a6; }
.detail-page .poi-title { font-weight:700; color:#252525; }
.detail-page .poi-sub { color:#6c757d; font-size:12px; }
.detail-page .poi-dist { color:#6c757d; font-size:12px; }

/* Grid tweaks */
@media (min-width: 992px) {
	.detail-page .detail-gallery .col-lg-8 { padding-right: .5rem; }
	.detail-page .detail-gallery .col-lg-4 { padding-left: .5rem; }
}

/* Detail gallery full width */
.detail-page .detail-gallery { background:#000; }
.detail-page .detail-hero { width:100%; }
.detail-page .detail-hero img { width:100%; height:auto; display:block; }

/* Detail sidebar - basic styling only */
.detail-page .detail-sidebar { height: auto; padding: 15px !important; }

/* Desktop column widths */
@media (min-width: 992px) {
  .detail-page .detail-content .col-lg-8 { flex: 0 0 75%; max-width: 75%; }
  .detail-page .detail-content .col-lg-4 { flex: 0 0 25%; max-width: 25%; }
}

/* Detail stats bar above floor plans */
.detail-page .detail-stats .stats-bar {
	background:#fff;
	border:1px solid #d8e1ea;
	border-radius:12px;
	display:grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap:0;
	padding:18px 16px;
	box-shadow:0 1px 2px rgba(16,24,40,.03);
}

/* Legal pages */
.legal-page {
    background: #fff;
}

.legal-shell {
    padding: 120px 0 72px;
}

.legal-hero {
    padding: 0 0 22px;
}

.legal-hero--warm {
    background: transparent;
}

.legal-hero__inner {
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    padding: 0;
    max-width: 900px;
}

.legal-eyebrow {
    display: inline-block;
    color: #fa783a;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.legal-title {
    margin-top: 12px;
    color: #252525;
    font-family: 'Montserrat', sans-serif;
    font-size: clamp(34px, 4vw, 52px);
    line-height: 1.12;
}

.legal-subtitle {
    margin-top: 14px;
    max-width: 760px;
    color: #5b6470;
    font-size: 17px;
    line-height: 1.8;
}

.legal-meta {
    margin-top: 18px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px 14px;
    color: #6b7280;
    font-size: 14px;
    font-weight: 600;
}

.legal-meta span {
    padding: 0;
    border-radius: 0;
    background: transparent;
}

.legal-layout {
    display: block;
    max-width: 920px;
}

.legal-toc {
    position: static;
    margin-bottom: 28px;
}

.legal-card {
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    padding: 0;
}

.legal-card--accent {
    background: #fff8f4;
    border: 1px solid rgba(250, 120, 58, 0.18);
    border-radius: 18px;
    padding: 26px 26px 26px;
}

.legal-content .legal-card--accent {
    margin-top: 8px;
}

.legal-card--accent h2 {
    margin-bottom: 14px;
}

.legal-card--accent p {
    margin: 0;
}

.legal-toc .legal-card {
    padding: 0;
}

.legal-toc h2 {
    margin-bottom: 12px;
    font-size: 15px;
    font-weight: 800;
    color: #252525;
}

.legal-toc nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.legal-toc a {
    text-decoration: none;
    color: #4b5563;
    font-size: 13px;
    font-weight: 700;
    padding: 8px 11px;
    border-radius: 999px;
    background: #f7f7f8;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.legal-toc a:hover {
    background: #fff1eb;
    color: #de1620;
}

.legal-content {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.legal-content h2 {
    margin-bottom: 12px;
    color: #252525;
    font-family: 'Montserrat', sans-serif;
    font-size: 25px;
    line-height: 1.28;
}

.legal-content h3 {
    margin: 18px 0 8px;
    color: #252525;
    font-size: 17px;
    font-weight: 800;
}

.legal-content p,
.legal-content li {
    color: #475467;
    font-size: 16px;
    line-height: 1.72;
}

.legal-content ul {
    padding-left: 22px;
    margin-top: 6px;
}

.legal-content li + li {
    margin-top: 8px;
}

.legal-content > .legal-card {
    padding: 28px 0;
    border-top: 1px solid rgba(37, 37, 37, 0.08);
}

.legal-content > .legal-card:first-child {
    padding-top: 0;
    border-top: 0;
}

.legal-content > .legal-card.legal-card--accent {
    padding: 26px 26px 26px;
    border-top: 0;
}

.legal-note {
    margin-top: 18px;
    color: #7b5562;
    font-size: 14px;
    line-height: 1.7;
}

.legal-backlink {
    display: inline-flex;
    align-items: center;
    margin-top: 22px;
    text-decoration: none;
    color: #de1620;
    font-weight: 800;
}

.legal-card--accent p + p {
    margin-top: 14px;
}

.legal-card--accent .legal-note + .legal-backlink {
    margin-top: 20px;
}

.legal-card--accent .legal-backlink {
    padding-top: 2px;
}

@media (max-width: 992px) {
    .legal-layout {
        max-width: 100%;
    }

    .legal-toc {
        position: static;
    }
}

@media (max-width: 576px) {
    .legal-shell {
        padding: 98px 0 44px;
    }

    .legal-hero {
        padding: 0 0 18px;
    }

    .legal-hero__inner {
        padding: 0 6px;
    }

    .legal-title {
        margin-top: 10px;
        font-size: clamp(28px, 8vw, 36px);
        line-height: 1.14;
    }

    .legal-subtitle {
        margin-top: 12px;
        line-height: 1.65;
    }

    .legal-card--accent {
        border-radius: 16px;
        padding: 20px 16px;
    }

    .legal-content > .legal-card.legal-card--accent {
        padding: 20px 16px;
    }

    .legal-subtitle,
    .legal-content p,
    .legal-content li {
        font-size: 15px;
    }

    .legal-content h2 {
        font-size: 22px;
    }

    .legal-meta {
        margin-top: 16px;
        gap: 6px 10px;
        font-size: 13px;
    }

    .legal-content > .legal-card {
        padding: 22px 0;
    }

    .legal-toc {
        margin-bottom: 22px;
    }

    .legal-toc h2 {
        margin-bottom: 10px;
        font-size: 14px;
    }

    .legal-toc nav {
        gap: 7px;
    }

    .legal-toc a {
        padding: 7px 10px;
        font-size: 12px;
        line-height: 1.2;
    }

    .legal-content h3 {
        margin: 16px 0 8px;
    }

    .legal-content ul {
        padding-left: 18px;
    }

    .legal-content li + li {
        margin-top: 6px;
    }

    .legal-note {
        margin-top: 16px;
        font-size: 13px;
        line-height: 1.65;
    }

    .legal-backlink {
        margin-top: 16px;
    }

    .legal-card--accent .legal-note + .legal-backlink {
        margin-top: 16px;
    }
}

@media (max-width: 420px) {
    .legal-shell .container,
    .legal-layout.container,
    .legal-hero .container {
        padding-left: 18px;
        padding-right: 18px;
    }

    .legal-title {
        font-size: 30px;
    }

    .legal-subtitle,
    .legal-content p,
    .legal-content li {
        font-size: 14px;
    }

    .legal-content > .legal-card {
        padding: 20px 0;
    }

    .legal-card--accent,
    .legal-content > .legal-card.legal-card--accent {
        padding: 18px 14px;
        border-radius: 14px;
    }

    .legal-toc nav {
        gap: 6px;
    }

    .legal-toc a {
        width: calc(50% - 3px);
        justify-content: center;
        text-align: center;
        padding: 8px 10px;
    }

    .legal-meta {
        flex-direction: column;
        align-items: flex-start;
        gap: 6px;
    }
}
.detail-page .detail-stats .stats-item {
	text-align:center;
	position:relative;
	padding:6px 18px;
}
.detail-page .detail-stats .stats-item:not(:last-child)::after {
	content:"";
	position:absolute;
	top:16%;
	right:0;
	width:1px;
	height:68%;
	background:#e4e9ef;
}
.detail-page .detail-stats .stats-label {
	color:#5f6f82;
	font-size:13px;
	line-height:1.3;
	margin-bottom:6px;
	font-weight:500;
}
.detail-page .detail-stats .stats-value {
	color:#121926;
	font-weight:800;
	font-size:17px;
	letter-spacing:-0.02em;
	line-height:1.2;
}

.detail-page .promo-banner {
	margin-top: 14px;
	border: 2px dashed #f7b79b;
	background: #fff6f2;
	border-radius: 12px;
	padding: 16px 20px 15px;
	text-align: center;
}
.detail-page .promo-banner .promo-title {
	font-weight: 800;
	font-size: 17px;
	line-height: 1.25;
	color: #1f2937;
	margin-bottom: 6px;
}
.detail-page .promo-banner .promo-subtitle {
	color: #5b6573;
	font-size: 14px;
	line-height: 1.4;
	margin: 0;
}

/* Detail: Get in Touch card styling */
.detail-page .contact-card { box-shadow: 0 6px 20px rgba(0,0,0,0.04); border:1px solid #eee; border-radius:12px; padding: 15px!important; width: 100%; margin: 0; }
.detail-page .contact-card h3 { font-weight:500; color:#252525; text-align:center; }
.detail-page .contact-card .lang-select {
    border:1px solid #fa783a;
    background:#fff;
    color:#fa783a;
    border-radius:10px;
    padding:8px 10px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    font-weight:500;
    font-size:14px;
}
.detail-page .contact-card .lang-select:hover { background:#fff5f0; }
.detail-page .contact-card .send-btn {
    background:#fa783a;
    color:#fff;
    border:none;
    border-radius:10px;
    padding:8px 10px;
    font-weight:500;
    font-size:14px;
}
.detail-page .contact-card .send-btn:hover { background:#e66a2a; }
.detail-page .contact-card .phone-note { color:#252525; font-weight:500; opacity:.8; font-size: 14px}

/* Pet Policy mobile pills */
.detail-page #pet-policy .pet-policy-mobile { display: none; }
.detail-page #pet-policy .pet-pills { display:flex; gap:8px; margin-bottom:8px; }
.detail-page #pet-policy .pet-pill { border:none; background:#e9ecef; color:#252525; padding:6px 12px; border-radius:999px; font-weight:700; }
.detail-page #pet-policy .pet-pill.active { background:#252525; color:#fff; }
.detail-page #pet-policy .pet-list { display:none; color:#6c757d; }
.detail-page #pet-policy .pet-list.active { display:block; }
.detail-page #pet-policy .pet-policy-desktop .policy-list li,
.detail-page #pet-policy .pet-policy-mobile .policy-list li {
    color: #111827;
    padding: 4px 0;
}
@media (max-width: 576px) {
    .detail-page #pet-policy .pet-policy-mobile { display:block; }
    .detail-page #pet-policy .pet-policy-desktop { display:none; }
}

/* Unique Features mobile layout */
.detail-page .unique-features-mobile { display: none; }
.detail-page .unique-features-mobile .unique-list { list-style: disc; padding-left: 18px; color:#6c757d; }
.detail-page .unique-features-mobile .unique-list.more { display: none; margin-top: 6px; }
.detail-page .unique-features-mobile .unique-show-more { background: none; border: none; color: #fa783a; font-weight: 700; padding: 0; margin-top: 8px; }
.detail-page .unique-features-mobile .mobile-special-offer { display:flex; align-items:flex-start; gap:10px; background:#fff6f2; border:2px dashed #f7b79b; border-radius:10px; padding:12px; color:#252525; }
.detail-page .unique-features-mobile .mobile-special-offer .offer-icon { width:28px; height:28px; border-radius:50%; background:#fff0e8; display:flex; align-items:center; justify-content:center; color:#fa783a; }
.detail-page .unique-features-mobile .mobile-special-offer .offer-title { font-weight:700; }
.detail-page .unique-features-mobile .mobile-special-offer .offer-text { color:#252525; opacity:.8; }

@media (max-width: 576px) {
    .detail-page .unique-desktop { display: none; }
    .detail-page .unique-features-mobile { display: block; }
    /* Hide sidebar on mobile */
    .detail-page .detail-content aside,
    .detail-page .detail-sidebar { display: none !important; }
    .detail-page .detail-content .col-lg-8 { padding: 0px 10px; width: 100% !important; max-width: 100% !important; flex: 0 0 100% !important; }
    /* Hide stats bar on mobile */
    .detail-page .detail-stats { display: none !important; }
}

/* Desktop: hide Unique Features heading text */
@media (min-width: 577px) {
    .detail-page .detail-unique h2.h6 { display: none; }
}

/* Floor plans UI (cards + pills) */
.detail-page .detail-floorplans-ui .plan-filters { display:flex; gap:10px; padding-top: 30px; }
.detail-page .detail-floorplans-ui .pill {
	background:#f1f3f5;
	border:none;
	color:#252525;
	padding:6px 12px;
	border-radius:999px;
	font-weight:600;
	cursor:pointer;
}
.detail-page .detail-floorplans-ui .pill.active { background:#252525; color:#fff; }

.detail-page .detail-floorplans-ui .group-title { font-weight:700; margin:14px 0 10px; color:#252525; }
.detail-page .detail-floorplans-ui .plan-card {
	border:1px solid #e5e5e5;
	border-radius:10px;
	background:#fff;
	overflow:hidden;
}
.detail-page .detail-floorplans-image .plan-card--image {
    padding: 0;
    border-radius: 14px;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.06);
}
.detail-page .detail-floorplans-image .detail-3dtour img {
    border-radius: 14px !important;
}
.detail-page .detail-floorplans-ui .plan-card { box-shadow: 0 2px 8px rgba(0,0,0,0.06); }
.detail-page .detail-floorplans-ui .plan-summary { display:flex; align-items:center; gap:12px; padding:12px 14px; position: relative; }
.detail-page .detail-floorplans-ui .plan-thumb { width:64px; height:64px; border-radius:12px; background:#eee; }
.detail-page .detail-floorplans-ui .plan-info .name { font-weight:700; color:#252525; }
.detail-page .detail-floorplans-ui .plan-info .range { color:#6c757d; font-size:14px; }
.detail-page .detail-floorplans-ui .plan-info .size { color:#6c757d; font-size:14px; }
.detail-page .detail-floorplans-ui .plan-toggle { margin-left:auto; background:none; border:none; color:#fa783a; font-weight:700; cursor:pointer; padding: 4px 10px; border-radius:6px; transition: background 180ms ease; font-size:14px; line-height:1.1; }
.detail-page .detail-floorplans-ui .plan-toggle:hover, 
.detail-page .detail-floorplans-ui .plan-toggle:focus { background: rgba(250,120,58,0.1); outline: none; }
.detail-page .detail-floorplans-ui .plan-toggle .caret { display:inline-block; transition: transform 200ms ease; font-size:1em; line-height:1; vertical-align:middle; }
.detail-page .detail-floorplans-ui .plan-card.expanded .plan-toggle .caret { transform: rotate(180deg); }
.detail-page .detail-floorplans-ui .plan-card.expanded .plan-toggle { color:#fa783a; }
.detail-page .detail-floorplans-ui .plan-rows { border-top:1px solid #f1f1f1; overflow: hidden; height: 0; transition: height 220ms ease; }
.detail-page .detail-floorplans-ui .plan-card:not(.expanded) .plan-rows { border-top: 0; }
.detail-page .detail-floorplans-ui .plan-table { width:100%; border-collapse: collapse; }
.detail-page .detail-floorplans-ui .plan-table tr { border-top:1px solid #f1f1f1; }
.detail-page .detail-floorplans-ui .plan-table td { padding:12px 14px; }
.detail-page .detail-floorplans-ui .plan-table td.price,
.detail-page .detail-floorplans-ui .plan-table td.sqft,
.detail-page .detail-floorplans-ui .plan-table td.status { text-align:right; }
@media (max-width: 576px){
    .detail-page .detail-floorplans-ui .plan-table td.sqft { font-size:12px; color:#6c757d; }
}
/* Plan summary text sizing */
@media (max-width: 576px){
    .detail-page .detail-floorplans-ui .plan-summary { padding: 12px 14px; }
    .detail-page .detail-floorplans-ui .plan-info .name { font-size: 14px; font-weight: 700; }
    .detail-page .detail-floorplans-ui .plan-info .range,
    .detail-page .detail-floorplans-ui .plan-info .size { font-size: 12px; color:#6c757d; }
    .detail-page .detail-floorplans-ui .plan-toggle { color:#fa783a; font-weight:700; padding: 0 4px; }
}
.detail-page .detail-floorplans-ui .plan-row {
    display:grid;
    grid-template-columns: 1fr 120px 140px 140px;
    align-items:center;
    gap:20px;
    padding:15px;
    border-top:1px solid #f1f1f1;
}
.detail-page .detail-floorplans-ui .plan-row .col.name { color:#252525; }
.detail-page .detail-floorplans-ui .plan-row .col.price { font-weight:700; color:#252525; }
.detail-page .detail-floorplans-ui .plan-row .col.sqft { color:#252525; }
.detail-page .detail-floorplans-ui .plan-row .col.available { color:#252525; font-weight:700; text-align:right; }
.detail-page .detail-floorplans-ui .plan-row .col.unit { padding-left:60px; }
.detail-page .detail-floorplans-ui .plan-row .col.status { color:#6c757d; }

@media (max-width: 768px) {
	.detail-page .detail-floorplans-ui .plan-row {
		grid-template-columns: 1fr 100px;
		grid-template-areas:
			"name price"
			"sqft available";
	}
	.detail-page .detail-floorplans-ui .plan-row .col.thumb { display:none; }
	.detail-page .detail-floorplans-ui .plan-row .col.name { grid-area:name; }
	.detail-page .detail-floorplans-ui .plan-row .col.price { grid-area:price; justify-self:end; }
	.detail-page .detail-floorplans-ui .plan-row .col.sqft { grid-area:sqft; }
	.detail-page .detail-floorplans-ui .plan-row .col.available { grid-area:available; justify-self:end; }
}

@media (min-width: 577px) and (max-width: 991px) {
    .detail-page .detail-floorplans-ui .plan-row {
        display: grid !important;
        grid-template-columns: minmax(72px, 90px) minmax(110px, 140px) minmax(110px, 140px) minmax(110px, 140px) !important;
        grid-template-areas: none !important;
        gap: 10px;
        align-items: center;
        padding: 16px 14px;
    }

    .detail-page .detail-floorplans-ui .plan-row .col.unit,
    .detail-page .detail-floorplans-ui .plan-row .col.price,
    .detail-page .detail-floorplans-ui .plan-row .col.sqft,
    .detail-page .detail-floorplans-ui .plan-row .col.available {
        grid-area: auto !important;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        font-size: 15px;
    }

    .detail-page .detail-floorplans-ui .plan-row .col.unit {
        padding-left: 0 !important;
    }

    .detail-page .detail-floorplans-ui .plan-row .col.price,
    .detail-page .detail-floorplans-ui .plan-row .col.sqft,
    .detail-page .detail-floorplans-ui .plan-row .col.available {
        justify-self: start;
        text-align: left;
    }
}

/* Detail page polish to mirror the reference layout more closely */
.detail-page .detail-topbar {
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.06);
}

.detail-page .detail-topbar .container.d-flex.align-items-center.justify-content-between.gap-3.flex-wrap {
    margin-top: 18px;
    margin-bottom: 18px;
}

.detail-page .detail-topbar .h5 {
    font-size: 22px;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: #111827;
}

.detail-page .detail-topbar .text-muted.small {
    font-size: 13px;
    letter-spacing: 0.01em;
    color: #6b7280 !important;
    opacity: 1;
}

.detail-page .detail-topbar .h4 {
    font-size: 28px;
    font-weight: 800;
    letter-spacing: -0.03em;
    color: #111827;
}

.detail-page h2.h6 {
    margin-top: 40px;
    margin-bottom: 14px;
    font-weight: 800;
    letter-spacing: -0.02em;
}

.detail-page .h6.mb-2,
.detail-page .h6.mt-3.mb-2 {
    font-weight: 800;
    letter-spacing: -0.02em;
}

.detail-page .detail-stats .stats-bar {
    padding: 18px 16px;
}

.detail-page .detail-stats .stats-label {
    margin-bottom: 6px;
}

.detail-page .detail-stats .stats-value {
    font-weight: 800;
    letter-spacing: -0.01em;
}

.detail-page .promo-banner {
    padding: 16px 20px 15px;
}

.detail-page .promo-banner .promo-subtitle {
    margin: 0;
}

@media (max-width: 992px) and (min-width: 577px) {
    .detail-page .detail-stats .stats-item {
        padding: 6px 10px;
    }

    .detail-page .detail-stats .stats-value {
        font-size: 15px;
    }
}

.detail-page .policy-section {
    margin: 24px 0;
    border: 1px solid #dfe5eb;
    border-radius: 12px;
}

.detail-page .policy-section .policy-header {
    font-weight: 800;
    background: #f1f4f7;
    border-bottom: 1px solid #e1e7ed;
    padding: 12px 16px;
}

.detail-page .policy-section .policy-body {
    padding: 16px 18px;
}
.detail-page .policy-section .policy-list li {
    color: #111827;
    margin-bottom: 7px;
}

.detail-page .detail-floorplans-ui .group-title {
    font-weight: 800;
    letter-spacing: -0.01em;
}

.detail-page .detail-floorplans-ui .plan-card {
    border-radius: 12px;
}

.detail-page .detail-floorplans-ui .plan-summary {
    padding: 14px 16px;
}

.detail-page .detail-floorplans-ui .plan-info .name {
    font-weight: 800;
    letter-spacing: -0.01em;
}

.detail-page .unique-features-mobile .mobile-special-offer {
    padding: 12px 14px;
}

.detail-page .unique-features-mobile .mobile-special-offer .offer-icon {
    width: 30px;
    height: 30px;
    flex: 0 0 auto;
}

.detail-page .unique-features-mobile .mobile-special-offer .offer-copy {
    min-width: 0;
}

.detail-page .unique-features-mobile .mobile-special-offer .offer-title {
    font-weight: 800;
    font-size: 14px;
    margin-bottom: 3px;
}

.detail-page .unique-features-mobile .mobile-special-offer .offer-text {
    color: #5c5c5c;
    font-size: 13px;
    line-height: 1.45;
}

@media (max-width: 576px) {
    .detail-page .detail-topbar .container.d-flex.align-items-center.justify-content-between.gap-3.flex-wrap {
        margin-top: 14px;
        margin-bottom: 14px;
        align-items: flex-start !important;
    }

    .detail-page .detail-topbar .h5 {
        font-size: 18px;
    }

    .detail-page .detail-topbar .h4 {
        font-size: 22px;
    }
}

/* Detail page: Similar Listings / Recently Viewed match reference property cards */
.detail-page .detail-related-listings .properties-grid,
.detail-page .detail-recently-viewed .properties-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.detail-page .detail-related-listings .property-card,
.detail-page .detail-recently-viewed .property-card {
    background: white;
    border: 1px solid #d9d9d9;
    border-radius: 15px;
    overflow: hidden;
    box-shadow: none;
    transition: none;
    border-top: 4px solid transparent;
}

/* Reference-style detail page refinements */
.detail-page .detail-topbar .container.d-flex.align-items-center.justify-content-between.gap-3.flex-wrap {
    min-height: 72px;
    margin-top: 14px;
    margin-bottom: 14px;
}

.detail-page .detail-stats .stats-bar {
    background: #fff;
    border: 1px solid #e4e7ec;
    border-radius: 12px;
    padding: 26px 14px;
    box-shadow: 0 6px 20px rgba(15, 23, 42, 0.04);
}

.detail-page .detail-stats .stats-item:not(:last-child)::after {
    top: 16%;
    height: 68%;
    background: #e9edf2;
}

.detail-page .detail-stats .stats-label {
    color: #667085;
    font-size: 13px;
    font-weight: 500;
    margin-bottom: 8px;
}

.detail-page .detail-stats .stats-value {
    color: #101828;
    font-size: 16px;
    font-weight: 800;
}

.detail-page .promo-banner {
    border-radius: 12px;
    padding: 18px 18px 16px;
    border-color: #f7b79b;
}

.detail-page .promo-banner .promo-title {
    font-size: 18px;
    font-weight: 800;
    line-height: 1.2;
}

.detail-page .promo-banner .promo-subtitle {
    margin-top: 5px;
    color: #475467;
    font-size: 14px;
}

.detail-page .detail-floorplans-ui .plan-filters {
    padding-top: 30px;
    flex-wrap: wrap;
}

.detail-page .detail-floorplans-ui .pill {
    background: #f2f4f7;
    border: 1px solid transparent;
    padding: 6px 12px;
    font-size: 14px;
}

.detail-page .detail-floorplans-ui .group-title {
    margin: 14px 0 10px;
    font-size: 15px;
}

.detail-page .detail-floorplans-ui .plan-card {
    border-color: #e5e5e5;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

.detail-page .detail-floorplans-ui .plan-summary {
    padding: 12px 14px;
    gap: 12px;
}

.detail-page .detail-floorplans-ui .plan-thumb {
    flex: 0 0 64px;
    background: #eee;
}

.detail-page .detail-floorplans-ui .plan-info .range {
    color: #475467;
}

.detail-page .detail-floorplans-ui .plan-info .size {
    color: #667085;
}

.detail-page .detail-floorplans-ui .plan-row {
    padding: 15px;
}

.detail-page .detail-floorplans-ui .plan-row .col.unit {
    padding-left: 60px;
    color: #101828;
    font-weight: 500;
}

.detail-page .detail-3dtour img {
    border: 1px solid #e4e7ec;
    border-radius: 12px !important;
    box-shadow: 0 6px 20px rgba(15, 23, 42, 0.05);
}

.detail-page .detail-nearby-extras .nearby-banner img {
    border-radius: 12px;
}

.detail-page .detail-nearby-extras .nearby-card,
.detail-page .detail-nearby-extras .poi-card {
    border-color: #e4e7ec;
    border-radius: 12px;
    box-shadow: 0 2px 10px rgba(15, 23, 42, 0.04);
}

.detail-page .detail-nearby-extras .score-card {
    border: 1px solid #e4e7ec;
    border-radius: 12px;
    padding: 14px 16px;
    background: #fff;
    box-shadow: 0 2px 10px rgba(15, 23, 42, 0.04);
}

.detail-page .detail-nearby-extras .score-card .score-value {
    font-size: 15px;
}

@media (max-width: 576px) {
    .detail-page .detail-floorplans-ui .plan-filters {
        gap: 8px;
        padding-top: 14px;
    }

    .detail-page .detail-floorplans-ui .pill {
        padding: 7px 12px;
        font-size: 13px;
    }

    .detail-page .detail-floorplans-ui .plan-row .col.unit {
        padding-left: 0;
    }

    .detail-page .detail-nearby-extras .score-card {
        flex: 1 1 100%;
        max-width: 100%;
    }
}

.detail-page .detail-related-listings .property-card:hover,
.detail-page .detail-recently-viewed .property-card:hover {
    transform: none;
    box-shadow: none;
    border-top-color: transparent;
}

/* Match reference detail.html floor plan card spacing exactly */
.detail-page .detail-floorplans-ui .plan-filters {
    display: flex;
    gap: 12px;
    padding-top: 16px;
    padding-bottom: 2px;
    flex-wrap: wrap;
}

.detail-page .detail-floorplans-ui .pill {
    background: #f3f4f6;
    border: none;
    color: #111827;
    padding: 8px 14px;
    border-radius: 999px;
    font-weight: 700;
    cursor: pointer;
    font-size: 14px;
    line-height: 1;
    box-shadow: none;
}

.detail-page .detail-floorplans-ui .pill.active {
    background: #252525;
    color: #fff;
}

.detail-page .detail-floorplans-ui .group-title {
    font-weight: 700;
    margin: 18px 0 10px;
    color: #111827;
    font-size: 15px;
    letter-spacing: 0;
}

.detail-page .detail-floorplans-ui .plan-card {
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    background: #fff;
    overflow: hidden;
    box-shadow: none;
}

.detail-page .detail-floorplans-ui .plan-summary {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 13px 14px;
    position: relative;
    min-height: 92px;
}

.detail-page .detail-floorplans-ui .plan-thumb {
    width: 64px;
    height: 64px;
    flex: 0 0 64px;
    border-radius: 14px;
    background: #e5e7eb;
}

.detail-page .detail-floorplans-ui .plan-info .name {
    font-weight: 700;
    color: #111827;
    font-size: 15px;
    letter-spacing: 0;
    line-height: 1.2;
    margin-bottom: 4px;
}

.detail-page .detail-floorplans-ui .plan-info .range,
.detail-page .detail-floorplans-ui .plan-info .size {
    color: #4b5563;
    font-size: 14px;
    line-height: 1.35;
}

.detail-page .detail-floorplans-ui .plan-toggle {
    margin-left: auto;
    background: none;
    border: none;
    color: #fa783a;
    font-weight: 700;
    cursor: pointer;
    padding: 4px 6px;
    border-radius: 6px;
    transition: background 180ms ease;
    font-size: 13px;
    line-height: 1.1;
    white-space: nowrap;
}

.detail-page .detail-floorplans-ui .plan-row {
    display: grid;
    grid-template-columns: 1fr 140px 140px 140px;
    align-items: center;
    gap: 0;
    padding: 18px 16px;
    border-top: 1px solid #eceff3;
}

.detail-page .detail-floorplans-ui .plan-row .col.unit {
    padding-left: 0;
    color: #111827;
    font-weight: 500;
    font-size: 16px;
}

.detail-page .detail-floorplans-ui .plan-row .col.price,
.detail-page .detail-floorplans-ui .plan-row .col.sqft,
.detail-page .detail-floorplans-ui .plan-row .col.available {
    text-align: left;
    justify-self: start;
    color: #111827;
    font-size: 16px;
}

.detail-page .detail-floorplans-ui .plan-row .col.price {
    font-weight: 700;
}

.detail-page .detail-floorplans-ui .plan-row .col.sqft,
.detail-page .detail-floorplans-ui .plan-row .col.available {
    font-weight: 500;
}

@media (max-width: 576px) {
    .detail-page .detail-floorplans-ui .pill {
        font-size: 12px;
        padding: 6px 10px;
    }

    .detail-page .detail-floorplans-ui .plan-card {
        border-radius: 10px;
    }

    .detail-page .detail-floorplans-ui .plan-row {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        grid-template-areas:
            "unit unit unit"
            "price sqft available" !important;
        row-gap: 8px;
        column-gap: 10px;
        align-items: center;
        padding: 14px 12px;
    }

    .detail-page .detail-floorplans-ui .plan-row .col {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .detail-page .detail-floorplans-ui .plan-row .col.unit {
        grid-area: unit;
        padding-left: 0 !important;
        font-size: 15px;
        font-weight: 600;
    }

    .detail-page .detail-floorplans-ui .plan-row .col.price {
        grid-area: price;
        justify-self: start;
        text-align: left;
        font-size: 15px;
        font-weight: 700;
    }

    .detail-page .detail-floorplans-ui .plan-row .col.sqft {
        grid-area: sqft;
        justify-self: center;
        text-align: center;
        font-size: 14px;
        color: #252525;
    }

    .detail-page .detail-floorplans-ui .plan-row .col.available {
        grid-area: available;
        justify-self: end;
        text-align: right;
        font-size: 15px;
        font-weight: 600;
    }
}

.detail-page .detail-related-listings .property-image,
.detail-page .detail-recently-viewed .property-image {
    position: relative;
    height: 250px;
    overflow: hidden;
}

.detail-page .detail-related-listings .property-image img,
.detail-page .detail-recently-viewed .property-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.35s ease !important;
}

.detail-page .detail-related-listings .property-actions,
.detail-page .detail-recently-viewed .property-actions {
    position: absolute;
    top: 15px;
    right: 15px;
    display: flex;
    gap: 5px;
}

.detail-page .detail-related-listings .action-btn,
.detail-page .detail-recently-viewed .action-btn {
    background: rgba(255,255,255,0.8);
    border: none;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    box-shadow: none;
}

.detail-page .detail-related-listings .property-info,
.detail-page .detail-recently-viewed .property-info {
    padding: 15px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.detail-page .detail-related-listings .property-name,
.detail-page .detail-recently-viewed .property-name {
    font-family: 'Roboto', sans-serif;
    font-weight: 500;
    font-size: 1.2rem;
    margin-bottom: 0;
    color: var(--primary-gray-dark);
}

.detail-page .detail-related-listings .property-price,
.detail-page .detail-recently-viewed .property-price {
    font-family: 'Roboto', sans-serif;
    font-weight: 600;
    font-size: 1.2rem;
    color: var(--primary-gray-dark);
    margin-bottom: 0;
}

.detail-page .detail-related-listings .property-details,
.detail-page .detail-recently-viewed .property-details {
    font-family: 'Roboto', sans-serif;
    font-weight: 400;
    font-size: 14px;
    color: #666;
    margin-bottom: 0;
}

.detail-page .detail-related-listings .property-card:hover .property-image img,
.detail-page .detail-recently-viewed .property-card:hover .property-image img {
    transform: scale(1.06) !important;
}

@media (max-width: 576px) {
    .detail-page .detail-related-listings .properties-grid,
    .detail-page .detail-recently-viewed .properties-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }
}

/* =====================
   Login/Auth Modal
   ===================== */
.login-page .header { position: fixed; top:0; left:0; right:0; z-index: 1001; }

.login-hero { position: relative; min-height: 100vh; display:flex; align-items:center; justify-content:center; }
.login-hero .banner-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.login-overlay { position:absolute; inset:0; background: rgba(0,0,0,.35); z-index:-1; }

.auth-modal { position: relative; width: 92%; max-width: 520px; background: #fff; border-radius: 12px; box-shadow: 0 20px 60px rgba(0,0,0,.2); padding: 24px; }
.auth-close { position:absolute; top:10px; right:10px; border:none; background:transparent; color:#888; font-size:18px; cursor:pointer; }
.auth-title { text-align:center; font-family:'Roboto', sans-serif; font-weight:800; color:#252525; margin: 8px 0 16px; }

.auth-social { display:flex; flex-direction:column; gap:10px; }
.auth-social-btn { display:flex; align-items:center; gap:10px; width:100%; border:1px solid #e5e5e5; background:#fff; color:#252525; padding:10px 12px; border-radius:8px; cursor:pointer; font-weight:600; }
.auth-social-btn i { width:20px; text-align:center; }
.auth-social-btn:hover { background:#f8f9fa; }

.auth-divider { display:flex; align-items:center; justify-content:center; color:#6c757d; margin:14px 0; position:relative; }
.auth-divider::before, .auth-divider::after { content:""; flex:1; height:1px; background:#eee; }
.auth-divider span { padding:0 10px; font-size:12px; color:#6c757d; }

.auth-form { display:flex; flex-direction:column; gap:10px; }
.auth-input { width:100%; border:1px solid #ddd; border-radius:8px; padding:12px 12px; font-size:14px; outline:none; }
.auth-input:focus { border-color:#d0d0d0; box-shadow:none; }
.auth-password { position: relative; }
.auth-password .auth-input { padding-right:64px; }
.auth-show { position:absolute; top:50%; right:10px; transform:translateY(-50%); border:none; background:transparent; color:#6c757d; cursor:pointer; font-weight:600; }

.auth-submit { background: #fa783a !important; color:#fff; border:none; border-radius:8px; padding:12px; font-weight:700; cursor:pointer; }
.auth-submit:hover { background: #e66a2a !important; }

.auth-meta { display:flex; justify-content:flex-end; }
.auth-link { color:#fa783a; text-decoration:none; font-weight:700; }
.auth-link.small { font-size:12px; }
.auth-note { text-align:center; color:#6c757d; margin-top:4px; }

/* Accessibility helper for visually hidden labels */
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

@media (max-width: 576px) {
	.auth-modal { padding:16px; border-radius:10px; }
	.auth-title { font-size:18px; }
}

/* =====================
   Signup additions
   ===================== */
.auth-sub { text-align:center; color:#6c757d; margin: -6px 0 12px; font-size: 12px; }
.auth-row { display:flex; gap:10px; }
.auth-row .auth-input { flex:1 1 0; }
.auth-legal { text-align:center; color:#6c757d; font-size:12px; margin-top:8px; }
.auth-legal .auth-link { font-weight:600; }

@media (max-width: 576px) {
	.auth-row { flex-direction:column; }
}


/* =====================
   Language dropdown
   ===================== */
.language-selector { position: relative; }
.language-menu { display:none; position:absolute; top: calc(100% + 6px); right: 0; background:#fff; border:1px solid #e5e5e5; border-radius:8px; min-width: 150px; box-shadow: 0 6px 18px rgba(0,0,0,.12); padding:6px; z-index: 2200; }
.language-menu.open { display:block; }
.language-option { list-style:none; padding:8px 10px; border-radius:6px; cursor:pointer; color:#252525; font-family:'Roboto', sans-serif; }
.language-option:hover { background:#f5f5f5; }

/* Ensure visibility on mobile header popover */
@media (max-width: 576px) {
	.language-selector { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); }
}

/* =====================
   Property card hover: image zoom
   ===================== */
.property-image { overflow: hidden; }
.property-image img { transition: transform 0.35s ease; }
.property-card:hover .property-image img { transform: scale(1.06); }
/* Disable previous border-top highlight on hover */
.property-card:hover { border-top-color: transparent; }


/* =====================
   Properties page: product-card hover zoom
   ===================== */
.properties-page .product-card .property-image { overflow: hidden; }
.properties-page .product-card .property-image img { transition: transform 0.35s ease; display: block; }
.properties-page .product-card:hover .property-image img { transform: scale(1.06); }

/* Property card header with Send Message button */
.property-header { display:flex; align-items:center; justify-content: flex-start; gap:10px; padding-right: 20px; }
.property-header .message-btn { margin-left: auto; }
.message-btn { background:#e9ecef !important; color:#252525 !important; border:none !important; border-radius:10px !important; padding:8px 10px !important; font-weight:500 !important; font-size:14px !important; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; height:auto; width:120px !important; }
.message-btn:hover { background:#f1f3f5 !important; }

/* Message icon button */
.message-btn { display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px; padding:0; border-radius:50%; font-size:16px; line-height:1; }
.message-btn i { font-size: 14px; line-height: 1; }

/* Price row and promo badge */
.price-row { display:flex; align-items:center; gap:8px; }
.promo-badge { background:#f7b79b; color:#252525; border-radius:999px; padding:2px 8px; font-size:12px; font-weight:700; text-transform: lowercase; }

/* Remove pill message-btn now that we use action-btn envelope */
.message-btn { all: unset; }

/* Selected state for thumbs-down icon */
.action-btn .fa-thumbs-down.is-selected { color: #fa783a !important; }

/* =====================
   Contact Modal (index.html)
   ===================== */
.contact-modal { position: fixed; inset: 0; display: none; z-index: 4000; }
.contact-modal.open { display: block; }
.contact-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.45); }
.contact-dialog { position: relative; z-index: 1; max-width: 520px; width: 92%; margin: 8vh auto; background:#fff; border-radius:12px; box-shadow: 0 20px 60px rgba(0,0,0,.25); padding: 20px; }
.contact-close { position:absolute; top:10px; right:10px; background:transparent; border:none; color:#888; font-size:18px; cursor:pointer; }
.contact-title { margin: 4px 0 12px; text-align:center; font-weight:800; color:#252525; }
.contact-form { display:flex; flex-direction:column; gap:10px; }
.contact-form .field { display:flex; flex-direction:column; gap:6px; }
.contact-input { border:1px solid #ddd; border-radius:8px; padding:10px 12px; font-size:14px; outline: none; }
.contact-input:focus { border-color:#d0d0d0; }
.contact-send { background:#fa783a; color:#fff; border:none; border-radius:10px; padding:8px 10px; font-weight:500; font-size:14px; cursor:pointer; }
.contact-send:hover { background:#e66a2a; }
@media (max-width: 576px){ .contact-dialog { margin: 12vh auto; padding:16px; } }

/* Properties page: Save search button color */
.properties-page .btn.btn-primary, .properties-page .btn-primary { background:#fa783a !important; border:none !important; }
.properties-page .btn.btn-primary:hover, .properties-page .btn-primary:hover { background:#e66a2a !important; }

/* Properties page: unify property-price styling with homepage */
.properties-page .property-price { font-family:'Roboto', sans-serif; font-weight:600; font-size:1.2rem; color: var(--primary-gray-dark); margin-bottom:0; }

/* Ensure modal inputs (including passwords) are full width */
.contact-input { width: 100%; box-sizing: border-box; }
.auth-password .contact-input { padding-right: 64px; }





/* ========================
   Detail Gallery
   ======================== */
.gallery-promo-badge {
    position: absolute;
    top: 34px;
    left: 16px;
    z-index: 10;
    background: #22c55e;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    padding: 4px 12px;
    border-radius: 6px;
}
.detail-gallery-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    height: 670px;
    gap: 3px;
    background: #111;
}
.gallery-main {
    overflow: hidden;
    cursor: pointer;
    position: relative;
}
.gallery-main img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: filter 0.22s ease;
    display: block;
}
.gallery-main:hover img { filter: brightness(0.97); }

.gallery-sub {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 3px;
}
.gallery-sub-item {
    overflow: hidden;
    cursor: pointer;
    position: relative;
}
.gallery-sub-item img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: filter 0.22s ease;
    display: block;
}
.gallery-sub-item:hover img { filter: brightness(0.96); }

.gallery-overlay-count {
    position: absolute; inset: 0;
    background: rgba(0,0,0,0.42);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 32px;
    font-weight: 300;
    transition: background 0.2s;
}
.gallery-last:hover .gallery-overlay-count { background: rgba(0,0,0,0.55); }

.gallery-bottom-btns {
    position: absolute;
    bottom: 14px; left: 14px;
    display: flex;
    gap: 8px;
    z-index: 10;
}
.gallery-btn {
    background: rgba(255,255,255,0.95);
    border: none;
    border-radius: 7px;
    padding: 7px 16px;
    font-weight: 600;
    font-size: 13px;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(0,0,0,0.25);
    display: flex;
    align-items: center;
    gap: 6px;
    transition: background 0.2s;
}
.gallery-btn:hover { background: #fff; }

@media (max-width: 576px) {
    .detail-gallery-grid { 
        grid-template-columns: 1fr;
        height: 260px;
    }
    .gallery-sub { display: none; }
    .gallery-bottom-btns { bottom: 10px; left: 10px; }
    .gallery-promo-badge {
        top: 14px;
        left: 14px;
        font-size: 12px;
        padding: 5px 12px;
        max-width: calc(100% - 28px);
    }
}

/* ========================
   Lightbox
   ======================== */
#lightbox {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 9999;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,0.94);
}
#lightbox.open { display: flex; }

.lb-backdrop {
    position: absolute; inset: 0;
    z-index: 0;
} 
.lb-close {
    position: absolute;
    top: 14px; right: 20px;
    background: none; border: none;
    color: #fff; font-size: 36px;
    cursor: pointer; z-index: 10;
    line-height: 1;
    opacity: 0.8;
    transition: opacity 0.2s;
}
.lb-close:hover { opacity: 1; }

.lb-arrow {
    position: absolute;
    top: 50%; transform: translateY(-50%);
    background: rgba(255,255,255,0.12);
    border: 1px solid rgba(255,255,255,0.2);
    color: #fff;
    font-size: 28px;
    width: 52px; height: 52px;
    border-radius: 50%;
    cursor: pointer;
    z-index: 10;
    transition: background 0.2s;
    display: flex; align-items: center; justify-content: center;
}
.lb-arrow:hover { background: rgba(255,255,255,0.25); }
.lb-prev { left: 16px; }
.lb-next { right: 16px; }

.lb-content {
    z-index: 5;
    text-align: center;
    max-width: 90vw;
}
.lb-content img {
    max-width: 88vw;
    max-height: 72vh;
    object-fit: contain;
    border-radius: 6px;
    display: block;
    margin: 0 auto;
}
.lb-counter {
    color: #aaa;
    font-size: 14px;
    margin-top: 10px;
}

/* 썸네일 스트립 */
.lb-thumbs {
    display: flex;
    gap: 6px;
    margin-top: 14px;
    z-index: 5;
    overflow-x: auto;
    max-width: 90vw;
    padding-bottom: 4px;
}
.lb-thumbs::-webkit-scrollbar { height: 4px; }
.lb-thumbs::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.3); border-radius: 2px; }

.lb-thumb {
    width: 64px; height: 48px;
    flex-shrink: 0;
    border-radius: 4px;
    overflow: hidden;
    cursor: pointer;
    border: 2px solid transparent;
    opacity: 0.6;
    transition: opacity 0.2s, border-color 0.2s;
}
.lb-thumb img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
}
.lb-thumb:hover { opacity: 0.85; }
.lb-thumb.active {
    border-color: #fff;
    opacity: 1;
}

.cookie-banner {
    position: fixed;
    left: 20px;
    right: 20px;
    bottom: 20px;
    z-index: 2500;
    display: none;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 18px 20px;
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.96);
    color: #1f1715;
    border: 1px solid rgba(37, 37, 37, 0.08);
    box-shadow: 0 20px 50px rgba(17, 24, 39, 0.12);
    backdrop-filter: blur(16px);
}

.cookie-banner.show {
    display: flex;
}

.cookie-banner__content {
    min-width: 0;
}

.cookie-banner__eyebrow {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #de1620;
    margin-bottom: 6px;
}

.cookie-banner__text {
    font-size: 14px;
    line-height: 1.6;
    color: #5c4d48;
}

.cookie-banner__actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}

.cookie-banner__btn {
    border: 0;
    border-radius: 999px;
    background: #fa783a;
    color: #fff;
    padding: 10px 18px;
    font-weight: 700;
    cursor: pointer;
}

.cookie-banner__btn--secondary {
    background: #fff7f2;
    color: #1f1715;
    border: 1px solid rgba(37, 37, 37, 0.08);
}

.cookie-banner__btn--ghost {
    background: transparent;
    color: #1f1715;
    border: 1px solid rgba(37, 37, 37, 0.12);
}

.cookie-dialog {
    max-width: 640px;
}

.cookie-subcopy {
    margin-bottom: 18px;
}

.cookie-settings-group {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.cookie-settings-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 18px;
    border-radius: 18px;
    background: #fff7f2;
    border: 1px solid rgba(240, 96, 35, 0.12);
}

.cookie-settings-row.is-locked {
    background: #f8fafc;
    border-color: #e4e7ec;
}

.cookie-settings-title {
    font-size: 16px;
    font-weight: 800;
    color: #1f1715;
    margin-bottom: 4px;
}

.cookie-settings-copy {
    font-size: 13px;
    line-height: 1.55;
    color: #6b5b56;
}

.cookie-settings-lock {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 12px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid #d0d5dd;
    color: #344054;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}

.cookie-switch {
    position: relative;
    display: inline-flex;
    width: 54px;
    height: 32px;
    flex-shrink: 0;
}

.cookie-switch input {
    position: absolute;
    inset: 0;
    opacity: 0;
}

.cookie-switch__slider {
    width: 100%;
    height: 100%;
    border-radius: 999px;
    background: #d0d5dd;
    transition: background 0.2s ease;
    position: relative;
}

.cookie-switch__slider::after {
    content: "";
    position: absolute;
    top: 4px;
    left: 4px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18);
    transition: transform 0.2s ease;
}

.cookie-switch input:checked + .cookie-switch__slider {
    background: linear-gradient(135deg, #de1620, #fa783a);
}

.cookie-switch input:checked + .cookie-switch__slider::after {
    transform: translateX(22px);
}

.cookie-settings-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 20px;
}

@media (max-width: 768px) {
    .cookie-banner {
        left: 14px;
        right: 14px;
        bottom: 14px;
        flex-direction: column;
        align-items: stretch;
    }

    .cookie-banner__actions {
        width: 100%;
        flex-direction: column;
    }

    .cookie-banner__btn {
        width: 100%;
    }

    .cookie-settings-row {
        flex-direction: column;
        align-items: flex-start;
    }

    .cookie-settings-actions {
        flex-direction: column;
    }
}

.header-spacer {
    height: 88px;
}

.account-menu {
    position: relative;
}

.account-menu-toggle {
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(37, 37, 37, 0.12);
    display: inline-flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    padding: 10px 14px;
    border-radius: 999px;
    color: #252525 !important;
    box-shadow: 0 10px 24px rgba(17, 24, 39, 0.08);
    font-weight: 600;
}

.home-page .account-menu-toggle {
    background: rgba(255, 255, 255, 0.16);
    border-color: rgba(255, 255, 255, 0.22);
    color: #fff !important;
    backdrop-filter: blur(10px);
}

.account-menu-label {
    font-size: 12px;
    opacity: 0.75;
}

.account-menu-name {
    font-size: 14px;
}

.account-menu-avatar {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--primary-gradient);
    color: #fff;
    font-size: 13px;
    font-weight: 800;
}

.account-menu-panel {
    position: absolute;
    top: 100%;
    right: 0;
    min-width: 360px;
    padding: 22px;
    background: #fff;
    border-radius: 18px;
    border: 1px solid rgba(37, 37, 37, 0.08);
    box-shadow: 0 24px 60px rgba(17, 24, 39, 0.18);
    display: none;
    z-index: 1200;
    margin-top: 8px;
}

.account-menu.open .account-menu-panel {
    display: block;
}

.account-menu-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.account-menu-heading {
    font-size: 13px;
    font-weight: 800;
    margin-bottom: 12px;
    color: #252525;
}

.account-menu-link {
    display: block;
    text-decoration: none;
    color: #252525;
    padding: 6px 0;
}

.account-menu-link:hover {
    color: var(--primary-red);
}

.account-shell {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 28px;
    padding-top: 32px;
    padding-bottom: 48px;
}

.account-sidebar-card,
.account-content,
.project-card,
.project-section,
.project-detail-hero {
    background: #fff;
    border: 1px solid rgba(37, 37, 37, 0.08);
    border-radius: 24px;
    box-shadow: 0 20px 44px rgba(17, 24, 39, 0.08);
}

.account-sidebar-card {
    padding: 24px;
    margin-bottom: 18px;
}

.account-avatar {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--primary-gradient);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    margin-bottom: 12px;
}

.account-sidebar-card h1 {
    font-size: 24px;
    margin-bottom: 4px;
}

.account-sidebar-card p {
    color: #666;
    font-size: 14px;
}

.account-nav {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.account-nav-link {
    text-decoration: none;
    color: #252525;
    padding: 14px 16px;
    border-radius: 16px;
    background: #fff;
    border: 1px solid rgba(37, 37, 37, 0.08);
}

.account-nav-link.active,
.account-nav-link:hover {
    background: rgba(250, 120, 58, 0.08);
    color: var(--primary-red);
}

.account-content {
    padding: 28px;
}

.account-page-header h2 {
    font-size: 28px;
    margin-bottom: 20px;
}

.account-card-grid,
.project-grid,
.project-media-grid,
.project-type-grid,
.project-spec-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.account-item-card,
.account-list-link {
    text-decoration: none;
    color: inherit;
}

.account-item-card {
    border: 1px solid rgba(37, 37, 37, 0.08);
    border-radius: 20px;
    overflow: hidden;
    background: #fff;
}

.account-item-image img,
.project-card-image img,
.project-media-grid img,
.project-detail-image img {
    width: 100%;
    display: block;
    object-fit: cover;
}

.account-item-image img,
.project-card-image img {
    height: 220px;
}

.project-media-grid img {
    height: 240px;
    border-radius: 18px;
}

.account-item-body,
.project-card-body {
    padding: 16px 18px 18px;
}

.account-item-tag,
.project-item-tag {
    display: inline-flex;
    padding: 6px 10px;
    border-radius: 999px;
    background: rgba(222, 22, 32, 0.1);
    color: var(--primary-red);
    font-size: 12px;
    font-weight: 700;
    margin-bottom: 10px;
}

.account-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.account-list-row,
.account-message-card,
.project-type-card,
.project-spec-card {
    border: 1px solid rgba(37, 37, 37, 0.08);
    border-radius: 18px;
    padding: 16px 18px;
    background: #fff;
}

.account-list-row {
    display: flex;
    justify-content: space-between;
    gap: 16px;
}

.account-message-meta {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 8px;
}

.account-reply-box {
    margin-top: 12px;
    padding: 12px;
    border-radius: 14px;
    background: rgba(250, 120, 58, 0.08);
}

.account-settings-form {
    display: grid;
    gap: 10px;
}

.account-settings-form input {
    border: 1px solid rgba(37, 37, 37, 0.14);
    border-radius: 14px;
    padding: 12px 14px;
}

.account-status {
    padding: 12px 14px;
    border-radius: 14px;
    margin-bottom: 8px;
}

.account-status.success {
    background: #ecfdf3;
    color: #067647;
}

.account-status.error {
    background: #fff0ee;
    color: #d14343;
}

.account-empty {
    color: #666;
    padding: 20px 0;
}

.projects-hero {
    padding: 28px 0 18px;
}

.projects-search {
    display: flex;
    gap: 10px;
    margin-top: 16px;
}

.projects-search input,
.projects-search button {
    border-radius: 999px;
    padding: 12px 16px;
    border: 1px solid rgba(37, 37, 37, 0.12);
}

.projects-search input {
    flex: 1;
}

.projects-search button {
    background: var(--primary-gradient);
    color: #fff;
    border: 0;
}

.project-grid {
    padding-bottom: 40px;
}

.project-card {
    overflow: hidden;
    position: relative;
}

.project-card-actions {
    display: flex;
    gap: 10px;
    padding: 14px 18px 0;
}

.project-card-price,
.project-detail-price {
    color: var(--primary-red);
    font-weight: 800;
}

.project-detail-shell {
    padding-top: 32px;
    padding-bottom: 40px;
}

.project-detail-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.9fr);
    gap: 28px;
    padding: 28px;
    margin-bottom: 22px;
}

.project-detail-actions {
    padding: 0 0 14px;
}

.project-detail-address {
    color: #666;
    margin: 10px 0;
}

.project-description {
    color: #444;
}

.project-detail-image img {
    height: 100%;
    min-height: 360px;
    border-radius: 18px;
}

.project-section {
    padding: 24px;
    margin-bottom: 22px;
}

.project-section h2 {
    margin-bottom: 16px;
}

@media (max-width: 900px) {
    .account-shell,
    .project-detail-hero {
        grid-template-columns: 1fr;
    }

    .account-card-grid,
    .project-grid,
    .project-media-grid,
    .project-type-grid,
    .project-spec-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .header-spacer {
        height: 76px;
    }

    .account-menu-panel {
        right: -8px;
        min-width: min(90vw, 360px);
    }

    .account-menu-grid {
        grid-template-columns: 1fr;
    }

    .projects-search,
    .account-list-row,
    .account-message-meta {
        flex-direction: column;
    }
}



/* Accessibility mode */
.skip-link {
    position: fixed;
    top: 14px;
    left: 14px;
    transform: translateY(-150%);
    z-index: 5000;
    background: #111827;
    color: #fff;
    padding: 12px 16px;
    border-radius: 12px;
    text-decoration: none;
    font-weight: 700;
    box-shadow: 0 14px 30px rgba(17,24,39,.24);
    transition: transform .2s ease;
}

.skip-link:focus {
    transform: translateY(0);
}

body.user-is-tabbing *:focus-visible {
    outline: 3px solid #0b57d0;
    outline-offset: 3px;
}

body.accessibility-mode {
    color: #111111;
    background: #ffffff;
    font-size: 18px;
    line-height: 1.78;
    letter-spacing: .01em;
}

body.accessibility-mode a {
    text-decoration: underline;
    text-underline-offset: .16em;
}

body.accessibility-mode .btn-signup,
body.accessibility-mode .signup-btn,
body.accessibility-mode .cookie-banner__btn,
body.accessibility-mode .auth-submit,
body.accessibility-mode .language-btn,
body.accessibility-mode .hamburger-menu {
    text-decoration: none;
}

body.accessibility-mode .property-card,
body.accessibility-mode .detail-card,
body.accessibility-mode .detail-sidebar-card,
body.accessibility-mode .contact-dialog,
body.accessibility-mode .cookie-banner,
body.accessibility-mode .language-menu,
body.accessibility-mode .header .account-menu-panel {
    border: 2px solid rgba(17,17,17,.16);
    box-shadow: none;
}

body.accessibility-mode .nav-link,
body.accessibility-mode .property-name,
body.accessibility-mode .section-title,
body.accessibility-mode .detail-page h1,
body.accessibility-mode .detail-page h2,
body.accessibility-mode .detail-page h3,
body.accessibility-mode .footer-title {
    color: #111111 !important;
}

body.accessibility-mode .home-page .nav-link,
body.accessibility-mode .home-page .header .account-menu-toggle,
body.accessibility-mode .home-page .language-btn {
    color: #ffffff !important;
}

body.accessibility-mode .promo-badge,
body.accessibility-mode .cookie-banner__btn,
body.accessibility-mode .btn-signup,
body.accessibility-mode .signup-btn,
body.accessibility-mode .auth-submit {
    background: #a31b0f !important;
    color: #ffffff !important;
}

body.accessibility-mode .cookie-banner__btn--secondary,
body.accessibility-mode .cookie-banner__btn--ghost {
    background: #ffffff !important;
    color: #111111 !important;
    border: 2px solid #111111;
}

body.accessibility-mode .property-card:hover .property-image img,
body.accessibility-mode .detail-page .detail-related-listings .property-card:hover .property-image img,
body.accessibility-mode .detail-page .detail-recently-viewed .property-card:hover .property-image img {
    transform: none !important;
}

body.accessibility-mode .hero::before {
    background: linear-gradient(rgba(0,0,0,0.42), rgba(0,0,0,0.42));
}

body.accessibility-mode .property-details,
body.accessibility-mode .footer-mission,
body.accessibility-mode .detail-page p,
body.accessibility-mode li,
body.accessibility-mode label,
body.accessibility-mode input,
body.accessibility-mode textarea,
body.accessibility-mode select,
body.accessibility-mode button {
    font-size: 1rem;
}

body.accessibility-mode * {
    scroll-behavior: auto !important;
}

@media (prefers-reduced-motion: reduce) {
    .skip-link,
    .property-card,
    .property-card .property-image img,
    .detail-page .detail-related-listings .property-card .property-image img,
    .detail-page .detail-recently-viewed .property-card .property-image img {
        transition: none !important;
        animation: none !important;
    }
}

.accessibility-fab {
    position: fixed;
    right: 22px;
    bottom: max(28px, calc(env(safe-area-inset-bottom) + 28px));
    width: 64px;
    height: 64px;
    border-radius: 50%;
    border: 0;
    background: #1f6fff;
    color: #1f6fff;
    font-size: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 10px 24px rgba(31, 111, 255, 0.28);
    cursor: pointer;
    z-index: 4000;
    overflow-anchor: none;
}

.accessibility-fab__icon {
    width: 64px;
    height: 64px;
    display: block;
    filter: none !important;
    opacity: 1 !important;
    mix-blend-mode: normal !important;
    object-fit: contain;
}

.accessibility-fab:hover {
    background: #1b5fe0;
}

.accessibility-panel {
    position: fixed;
    right: 18px;
    top: 18px;
    bottom: max(104px, calc(env(safe-area-inset-bottom) + 104px));
    width: min(420px, calc(100vw - 24px));
    max-height: none;
    background: #ffffff;
    border: 1px solid #d8d8df;
    border-radius: 20px;
    box-shadow: 0 28px 60px rgba(15,23,42,.22);
    overflow: hidden;
    z-index: 3999;
    display: none;
    flex-direction: column;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    transform: translateZ(0);
    overflow-anchor: none;
    font-size: 16px !important;
}

.accessibility-panel.is-open {
    display: flex;
}

.accessibility-panel__header {
    background: #ffffff;
    color: #111827;
    padding: 22px 22px 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    border-bottom: 1px solid #e5e7eb;
}

.accessibility-panel__title {
    margin: 0;
    font-size: 16px;
    font-weight: 800;
}

.accessibility-panel__header-actions {
    display: inline-flex;
    align-items: center;
    gap: 14px;
}

.accessibility-panel__lang {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 800;
    color: #111827;
}

.accessibility-panel__close {
    border: 0;
    background: transparent;
    color: #111827;
    font-size: 24px;
    cursor: pointer;
}

.accessibility-panel__body {
    padding: 20px 16px 20px;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    background: #f8f8fb;
    overscroll-behavior: contain;
}

body.acc-has-visual-filter > *:not(.accessibility-fab):not(.accessibility-panel):not(.accessibility-reading-line):not(.accessibility-reading-mask) {
    filter: var(--acc-visual-filter);
}

.accessibility-panel__section {
    margin-bottom: 22px;
}

.accessibility-panel__section-title {
    margin: 0 0 10px;
    font-size: 15px;
    font-weight: 800;
    color: #57545a;
}

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

.accessibility-card {
    min-height: 112px;
    border-radius: 14px;
    border: 1px solid #d1d5db;
    background: #ffffff;
    color: #111827;
    padding: 16px 12px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    text-align: center;
    font-weight: 800;
    font-size: 14px !important;
    cursor: pointer;
}

.accessibility-card i {
    font-size: 26px;
    color: #9ca3af;
}

.accessibility-card--steps {
    justify-content: space-between;
}

.accessibility-card--wide {
    grid-column: span 2;
    align-items: stretch;
    text-align: left;
    min-height: 132px;
}

.accessibility-card__title {
    font-size: 14px;
    font-weight: 800;
    text-align: center;
    color: #57545a;
}

.accessibility-card.is-active {
    border-color: #111827;
    box-shadow: inset 0 0 0 1px #111827;
}

.accessibility-card.is-active i,
.accessibility-card.is-active span {
    color: #111827;
}

.accessibility-steps {
    display: inline-flex;
    gap: 4px;
    margin-top: 2px;
}

.accessibility-steps span {
    width: 22px;
    height: 5px;
    border-radius: 999px;
    background: #e9edf5;
}

.accessibility-steps span.is-on {
    background: #6f6a6d;
}

.accessibility-filter-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 8px;
}

.accessibility-filter-pill {
    border: 1px solid #d8d8df;
    border-radius: 999px;
    background: #fff;
    color: #6f6a6d;
    padding: 9px 10px;
    font-size: 13px !important;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.accessibility-filter-pill.is-active {
    background: #111827;
    color: #fff;
    border-color: #111827;
}

.accessibility-filter-dot {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    display: inline-block;
    flex: 0 0 auto;
    box-shadow: inset 0 0 0 1px rgba(17, 24, 39, 0.08);
}

.accessibility-filter-dot--grayscale {
    background: #b8bec8;
}

.accessibility-filter-dot--red-green {
    background: linear-gradient(90deg, #ff1f1f 0 50%, #21d44b 50% 100%);
}

.accessibility-filter-dot--blue-yellow {
    background: linear-gradient(90deg, #263cff 0 50%, #ffeb00 50% 100%);
}

.accessibility-filter-dot--green-red {
    background: linear-gradient(90deg, #21d44b 0 50%, #ff1f1f 50% 100%);
}

.accessibility-panel__footer {
    flex: 0 0 auto;
    padding: 0 16px 26px;
    background: #ffffff;
}

.accessibility-reset {
    width: 100%;
    border: 0;
    border-radius: 12px;
    background: #111827;
    color: #fff;
    font-weight: 800;
    padding: 14px 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    cursor: pointer;
}

.accessibility-panel__brand {
    margin-top: 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.accessibility-panel__statement {
    color: #64748b;
    font-size: 12px !important;
    font-weight: 700;
}

body.acc-bigger-text-1 .accessibility-panel,
body.acc-bigger-text-2 .accessibility-panel,
body.acc-bigger-text-3 .accessibility-panel {
    font-size: 16px !important;
}

body.acc-bigger-text-1 .accessibility-panel *,
body.acc-bigger-text-2 .accessibility-panel *,
body.acc-bigger-text-3 .accessibility-panel * {
    font-size: inherit;
}

body.acc-bigger-text-1 .accessibility-panel__title,
body.acc-bigger-text-2 .accessibility-panel__title,
body.acc-bigger-text-3 .accessibility-panel__title {
    font-size: 16px !important;
}

body.acc-bigger-text-1 .accessibility-panel__section-title,
body.acc-bigger-text-2 .accessibility-panel__section-title,
body.acc-bigger-text-3 .accessibility-panel__section-title {
    font-size: 15px !important;
}

body.acc-bigger-text-1 .accessibility-card,
body.acc-bigger-text-2 .accessibility-card,
body.acc-bigger-text-3 .accessibility-card {
    font-size: 14px !important;
}

body.acc-bigger-text-1 .accessibility-filter-pill,
body.acc-bigger-text-2 .accessibility-filter-pill,
body.acc-bigger-text-3 .accessibility-filter-pill {
    font-size: 13px !important;
}

.accessibility-panel__logo {
    width: 132px;
    max-width: 42%;
    height: auto;
    display: block;
}

.accessibility-reading-line {
    position: fixed;
    left: 0;
    right: 0;
    top: 50vh;
    height: 4px;
    background: rgba(31, 111, 255, 0.78);
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.9);
    pointer-events: none;
    z-index: 3500;
    overflow-anchor: none;
}

.accessibility-reading-mask {
    --acc-mask-top: 0px;
    --acc-mask-bottom: 0px;
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 3499;
    overflow-anchor: none;
}

.accessibility-reading-mask__top,
.accessibility-reading-mask__bottom {
    position: absolute;
    left: 0;
    right: 0;
    background: rgba(15, 23, 42, 0.22);
}

.accessibility-reading-mask__top {
    top: 0;
    height: var(--acc-mask-top);
}

.accessibility-reading-mask__bottom {
    bottom: 0;
    height: var(--acc-mask-bottom);
}

.accessibility-tooltip {
    position: fixed;
    left: 0;
    top: 0;
    max-width: 420px;
    min-width: 220px;
    padding: 16px 22px;
    border-radius: 10px;
    border: 4px solid #111827;
    background: #ffffff;
    color: #111827;
    text-align: center;
    font-size: 19px !important;
    line-height: 1.35;
    font-weight: 700;
    pointer-events: none;
    z-index: 4100;
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.22);
}

body.acc-highlight-links a,
body.acc-highlight-links [role="link"] {
    color: #0f4cc9 !important;
    background: rgba(255, 235, 59, 0.26) !important;
    box-shadow: 0 0 0 2px rgba(15, 76, 201, 0.32) inset !important;
    border-radius: 6px;
    text-decoration: underline !important;
    text-decoration-thickness: 2px !important;
    text-underline-offset: 3px !important;
}

body.acc-highlight-links .nav-link,
body.acc-highlight-links .footer-links a,
body.acc-highlight-links .property-name a,
body.acc-highlight-links .detail-page a,
body.acc-highlight-links .language-menu a,
body.acc-highlight-links .account-menu-link {
    padding: 2px 6px !important;
}

body.acc-page-structure main,
body.acc-page-structure section,
body.acc-page-structure article,
body.acc-page-structure aside,
body.acc-page-structure nav,
body.acc-page-structure header,
body.acc-page-structure footer {
    outline: 2px dashed rgba(31, 111, 255, 0.28);
    outline-offset: 2px;
}

body.acc-page-structure h1,
body.acc-page-structure h2,
body.acc-page-structure h3,
body.acc-page-structure h4 {
    box-shadow: inset 0 -2px 0 rgba(31, 111, 255, 0.24);
}

body.acc-bigger-text-1 {
    font-size: 18px;
}

body.acc-bigger-text-2 {
    font-size: 19px;
}

body.acc-bigger-text-3 {
    font-size: 20px;
}

body.acc-bigger-cursor-1,
body.acc-bigger-cursor-1 * {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 24 24'%3E%3Cpath fill='%23111827' d='M4 3l12.5 9.5l-5.5.8l2.6 6.1l-2.8 1.2l-2.6-6.1l-3.7 4.2z'/%3E%3C/svg%3E") 4 4, auto !important;
}

body.acc-bigger-cursor-2,
body.acc-bigger-cursor-2 * {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 24 24'%3E%3Cpath fill='%23111827' d='M4 3l12.5 9.5l-5.5.8l2.6 6.1l-2.8 1.2l-2.6-6.1l-3.7 4.2z'/%3E%3C/svg%3E") 5 5, auto !important;
}

body.acc-bigger-cursor-3,
body.acc-bigger-cursor-3 * {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44' viewBox='0 0 24 24'%3E%3Cpath fill='%23111827' d='M4 3l12.5 9.5l-5.5.8l2.6 6.1l-2.8 1.2l-2.6-6.1l-3.7 4.2z'/%3E%3C/svg%3E") 6 6, auto !important;
}

body.acc-line-height-1 {
    line-height: 1.78;
}

body.acc-line-height-2 {
    line-height: 1.92;
}

body.acc-line-height-3 {
    line-height: 2.08;
}

body.acc-line-height-1 main,
body.acc-line-height-1 .hero,
body.acc-line-height-1 .footer,
body.acc-line-height-1 .properties-layout,
body.acc-line-height-1 .detail-layout,
body.acc-line-height-1 .legal-page,
body.acc-line-height-1 .account-shell,
body.acc-line-height-1 p,
body.acc-line-height-1 li,
body.acc-line-height-1 a,
body.acc-line-height-1 span,
body.acc-line-height-1 label,
body.acc-line-height-1 input,
body.acc-line-height-1 textarea,
body.acc-line-height-1 select,
body.acc-line-height-1 h1,
body.acc-line-height-1 h2,
body.acc-line-height-1 h3,
body.acc-line-height-1 h4,
body.acc-line-height-1 h5,
body.acc-line-height-1 h6,
body.acc-line-height-2 main,
body.acc-line-height-2 .hero,
body.acc-line-height-2 .footer,
body.acc-line-height-2 .properties-layout,
body.acc-line-height-2 .detail-layout,
body.acc-line-height-2 .legal-page,
body.acc-line-height-2 .account-shell,
body.acc-line-height-2 p,
body.acc-line-height-2 li,
body.acc-line-height-2 a,
body.acc-line-height-2 span,
body.acc-line-height-2 label,
body.acc-line-height-2 input,
body.acc-line-height-2 textarea,
body.acc-line-height-2 select,
body.acc-line-height-2 h1,
body.acc-line-height-2 h2,
body.acc-line-height-2 h3,
body.acc-line-height-2 h4,
body.acc-line-height-2 h5,
body.acc-line-height-2 h6,
body.acc-line-height-3 main,
body.acc-line-height-3 .hero,
body.acc-line-height-3 .footer,
body.acc-line-height-3 .properties-layout,
body.acc-line-height-3 .detail-layout,
body.acc-line-height-3 .legal-page,
body.acc-line-height-3 .account-shell,
body.acc-line-height-3 p,
body.acc-line-height-3 li,
body.acc-line-height-3 a,
body.acc-line-height-3 span,
body.acc-line-height-3 label,
body.acc-line-height-3 input,
body.acc-line-height-3 textarea,
body.acc-line-height-3 select,
body.acc-line-height-3 h1,
body.acc-line-height-3 h2,
body.acc-line-height-3 h3,
body.acc-line-height-3 h4,
body.acc-line-height-3 h5,
body.acc-line-height-3 h6 {
    line-height: inherit !important;
}

body.acc-hide-images img,
body.acc-hide-images picture,
body.acc-hide-images video {
    visibility: hidden !important;
}

body.acc-hide-images img:not(.accessibility-panel__logo),
body.acc-hide-images picture,
body.acc-hide-images video,
body.acc-hide-images .banner-picture,
body.acc-hide-images .property-image,
body.acc-hide-images .detail-gallery,
body.acc-hide-images .detail-3dtour,
body.acc-hide-images .nearby-banner {
    display: none !important;
}

body.acc-readable-fonts {
    font-family: Arial, Helvetica, sans-serif;
}

body.acc-readable-fonts main *,
body.acc-readable-fonts .hero *,
body.acc-readable-fonts .footer *,
body.acc-readable-fonts .properties-layout *,
body.acc-readable-fonts .detail-layout *,
body.acc-readable-fonts .legal-page *,
body.acc-readable-fonts .account-shell * {
    font-family: Arial, Helvetica, sans-serif !important;
}

body.acc-dyslexic-font {
    font-family: Verdana, Arial, sans-serif;
    letter-spacing: .03em;
    word-spacing: .08em;
}

body.acc-dyslexic-font main *,
body.acc-dyslexic-font .hero *,
body.acc-dyslexic-font .footer *,
body.acc-dyslexic-font .properties-layout *,
body.acc-dyslexic-font .detail-layout *,
body.acc-dyslexic-font .legal-page *,
body.acc-dyslexic-font .account-shell * {
    font-family: Verdana, Arial, sans-serif !important;
    letter-spacing: .03em !important;
    word-spacing: .08em !important;
}

body.acc-bionic-reading .acc-bionic-word strong {
    font-weight: 800;
}

body.acc-stop-animations *,
body.acc-stop-animations *::before,
body.acc-stop-animations *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
}

body.acc-invert-colors,
body.acc-brightness-1,
body.acc-brightness-2,
body.acc-brightness-3,
body.acc-high-contrast-1,
body.acc-high-contrast-2,
body.acc-high-contrast-3,
body.acc-saturation-1,
body.acc-saturation-2,
body.acc-saturation-3,
body.acc-filter-grayscale,
body.acc-filter-red-green,
body.acc-filter-blue-yellow,
body.acc-filter-green-red {
    filter: none !important;
}

body.acc-high-contrast-1,
body.acc-high-contrast-2,
body.acc-high-contrast-3 {
    background: #fff !important;
    color: #000 !important;
}

body.acc-high-contrast-1 a,
body.acc-high-contrast-2 a,
body.acc-high-contrast-3 a,
body.acc-high-contrast-1 button,
body.acc-high-contrast-2 button,
body.acc-high-contrast-3 button,
body.acc-high-contrast-1 input,
body.acc-high-contrast-2 input,
body.acc-high-contrast-3 input,
body.acc-high-contrast-1 textarea,
body.acc-high-contrast-2 textarea,
body.acc-high-contrast-3 textarea,
body.acc-high-contrast-1 select,
body.acc-high-contrast-2 select,
body.acc-high-contrast-3 select {
    border-color: #000 !important;
    color: #000 !important;
}

body.acc-high-contrast-1 .property-card,
body.acc-high-contrast-1 .detail-card,
body.acc-high-contrast-1 .detail-sidebar-card,
body.acc-high-contrast-1 .contact-dialog,
body.acc-high-contrast-1 .cookie-banner,
body.acc-high-contrast-1 .language-menu,
body.acc-high-contrast-1 .header .account-menu-panel,
body.acc-high-contrast-2 .property-card,
body.acc-high-contrast-2 .detail-card,
body.acc-high-contrast-2 .detail-sidebar-card,
body.acc-high-contrast-2 .contact-dialog,
body.acc-high-contrast-2 .cookie-banner,
body.acc-high-contrast-2 .language-menu,
body.acc-high-contrast-2 .header .account-menu-panel,
body.acc-high-contrast-3 .property-card,
body.acc-high-contrast-3 .detail-card,
body.acc-high-contrast-3 .detail-sidebar-card,
body.acc-high-contrast-3 .contact-dialog,
body.acc-high-contrast-3 .cookie-banner,
body.acc-high-contrast-3 .language-menu,
body.acc-high-contrast-3 .header .account-menu-panel {
    border: 2px solid #000 !important;
    box-shadow: none !important;
}

@media (max-width: 576px) {
    .accessibility-panel {
        right: 10px;
        top: calc(10px + env(safe-area-inset-top));
        bottom: max(96px, calc(env(safe-area-inset-bottom) + 96px));
        width: calc(100vw - 20px);
        border-radius: 18px;
        max-height: none;
    }

    .accessibility-panel__header {
        padding: 18px 22px 16px 18px;
    }

    .accessibility-panel__header-actions {
        gap: 10px;
        padding-right: 2px;
    }

    .accessibility-panel__close {
        width: 32px;
        height: 32px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        flex: 0 0 auto;
    }

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

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

    .accessibility-card--wide {
        grid-column: span 2;
    }

    .accessibility-panel__brand {
        flex-direction: column;
        align-items: flex-start;
    }

    .accessibility-panel__logo {
        width: 100%;
        max-width: 160px;
    }

    .accessibility-fab {
        right: 16px;
        bottom: max(18px, calc(env(safe-area-inset-bottom) + 18px));
        width: 52px;
        height: 52px;
    }

    .accessibility-fab__icon {
        width: 52px;
        height: 52px;
    }
}
