/* ═══════════════════════════════════════════════════════════════
   blocks.css — Consolidated styles for all Page Builder blocks.
   Loaded ONCE in _LayoutDynamic.cshtml.
   ═══════════════════════════════════════════════════════════════ */

/* ── Accessibility — Skip Link ── */
.skip-link {
    position: absolute;
    top: -100%;
    left: 16px;
    z-index: 10000;
    padding: 8px 16px;
    background: var(--color-primary, #ff6600);
    color: #fff;
    border-radius: 0 0 4px 4px;
    font-weight: 600;
    text-decoration: none;
    transition: top 0.2s;
}
.skip-link:focus {
    top: 0;
    outline: 3px solid #005fcc;
    outline-offset: 2px;
}

/* ── Focus visible for keyboard nav ── */
*:focus-visible {
    outline: 2px solid var(--color-primary, #ff6600);
    outline-offset: 2px;
}

/* ── Banner ── */
.hero-block { position: relative; }
.hero-content h1 { color: #222; }
.hero-content .lead { color: #555; }

/* Banner with background image — dark overlay + white text */
.hero-block.hero-has-bg::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,.55) 100%);
    z-index: 1;
}
.hero-block.hero-has-bg .hero-content {
    position: relative;
    z-index: 2;
}
.hero-block.hero-has-bg .hero-content h1 { color: #fff; }
.hero-block.hero-has-bg .hero-content .lead { color: rgba(255,255,255,.85); }
.hero-block.hero-has-bg .hero-content .btn-banner-secondary {
    color: #fff;
    border-color: rgba(255,255,255,.6);
}
.hero-block.hero-has-bg .hero-content .btn-banner-secondary:hover {
    border-color: #fff;
}

[data-theme="dark"] .hero-content h1 { color: #fff; }
[data-theme="dark"] .hero-content .lead { color: rgba(255,255,255,.75); }
[data-theme="dark"] .hero-content .form-control {
    background: rgba(255,255,255,.06);
    border-color: rgba(255,255,255,.15);
    color: #fff;
}
[data-theme="dark"] .hero-content .form-control::placeholder { color: rgba(255,255,255,.4); }
[data-theme="dark"] .hero-content .form-control:focus {
    background: rgba(255,255,255,.1);
    border-color: rgba(200,157,74,.6);
    color: #fff;
    box-shadow: 0 0 0 .2rem rgba(200,157,74,.25);
}

/* Banner secondary button — adapts to light/dark */
.btn-banner-secondary {
    color: #555;
    border: 1px solid #aaa;
    background: transparent;
}
.btn-banner-secondary:hover {
    color: #222;
    border-color: #666;
    background: rgba(0,0,0,.05);
}
[data-theme="dark"] .btn-banner-secondary {
    color: rgba(255,255,255,.85);
    border-color: rgba(255,255,255,.4);
}
[data-theme="dark"] .btn-banner-secondary:hover {
    color: #fff;
    border-color: rgba(255,255,255,.7);
    background: rgba(255,255,255,.1);
}


/* ── Text ── */
.text-block { color: #333; }
.text-block h4 { color: #222; }

[data-theme="dark"] .text-block { color: rgba(255,255,255,.8); }
[data-theme="dark"] .text-block h4 { color: #fff; }
[data-theme="dark"] .text-block a { color: var(--primary, #c89d4a); }
[data-theme="dark"] .text-block a:hover { color: var(--primary, #c89d4a); opacity: .85; }


/* ── Heading ── */
.section-heading h1, .section-heading h2, .section-heading h3 { color: #222; }

[data-theme="dark"] .section-heading h1,
[data-theme="dark"] .section-heading h2,
[data-theme="dark"] .section-heading h3 { color: #fff; }
[data-theme="dark"] .section-heading .text-muted { color: rgba(255,255,255,.55) !important; }


/* ── Two Column ── */
.two-column-block h4 { color: #222; }
.two-column-block div { color: #333; }

[data-theme="dark"] .two-column-block h4 { color: #fff; }
[data-theme="dark"] .two-column-block div { color: rgba(255,255,255,.8); }
[data-theme="dark"] .two-column-block a:not(.btn) { color: var(--primary, #c89d4a); }
[data-theme="dark"] .two-column-block a:not(.btn):hover { color: var(--primary, #c89d4a); opacity: .85; }
[data-theme="dark"] .two-column-block img.shadow-sm { box-shadow: 0 2px 8px rgba(0,0,0,.3) !important; }


/* ── FAQ ── */
.faq-block h4 { color: #222; }

[data-theme="dark"] .faq-block h4 { color: #fff; }
[data-theme="dark"] .faq-block .accordion-item {
    background: rgba(255,255,255,.04);
    border-color: rgba(255,255,255,.1);
}
[data-theme="dark"] .faq-block .accordion-button {
    background: rgba(255,255,255,.06);
    color: #fff;
    border-color: rgba(255,255,255,.1);
}
[data-theme="dark"] .faq-block .accordion-button:not(.collapsed) {
    background: rgba(200,157,74,.15);
    color: #fff;
}
[data-theme="dark"] .faq-block .accordion-button::after {
    filter: invert(1) brightness(2);
}
[data-theme="dark"] .faq-block .accordion-body {
    background: rgba(255,255,255,.03);
    color: rgba(255,255,255,.8);
    border-color: rgba(255,255,255,.1);
}


/* ── FAQ Sidebar ── */
.faq-sidebar-pills {
    display: flex;
    gap: .5rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: .25rem;
    scrollbar-width: thin;
}
.faq-sb-pill {
    white-space: nowrap;
    font-size: .85rem;
    font-weight: 500;
    padding: .45rem .9rem;
    background: var(--gray-100, #E2E4E6);
    color: var(--gray-500, #5D6772);
    text-decoration: none;
    border: 1px solid var(--gray-100, #E2E4E6);
    transition: background .2s, color .2s;
}
.faq-sb-pill:hover,
.faq-sb-pill.active {
    background: var(--dark, #0D1520);
    color: var(--white, #fff);
    border-color: var(--dark, #0D1520);
}
@media (min-width: 992px) {
    .faq-sidebar-pills { display: none !important; }
}
@media (max-width: 991.98px) {
    .faq-sidebar { position: static !important; }
}

[data-theme="dark"] .card.faq-sidebar {
    background: rgba(255,255,255,.06);
    border-color: rgba(255,255,255,.1);
}
[data-theme="dark"] .card.faq-sidebar h5 { color: #fff; }
[data-theme="dark"] ul.faq-sidebar .nav-link {
    color: rgba(255,255,255,.7);
    background: transparent;
}
[data-theme="dark"] ul.faq-sidebar .nav-link:hover {
    color: #fff;
    background: rgba(255,255,255,.06);
}
[data-theme="dark"] .card.faq-sidebar ul.faq-sidebar .nav-link.active,
[data-theme="dark"] ul.faq-sidebar .nav-link.active {
    background: rgba(200,157,74,.2) !important;
    color: #fff !important;
    font-weight: 600;
}
[data-theme="dark"] .faq-sb-pill {
    background: rgba(255,255,255,.1);
    color: rgba(255,255,255,.7);
    border-color: rgba(255,255,255,.15);
}
[data-theme="dark"] .faq-sb-pill:hover,
[data-theme="dark"] .faq-sb-pill.active {
    background: rgba(255,255,255,.2);
    color: #fff;
    border-color: rgba(255,255,255,.3);
}
[data-theme="dark"] .faqsb-wrap h4 { color: #fff; }
[data-theme="dark"] .faqsb-wrap hr { border-color: rgba(255,255,255,.15); }
[data-theme="dark"] .faqsb-wrap .accordion-item {
    background: rgba(255,255,255,.04);
    border-color: rgba(255,255,255,.1);
}
[data-theme="dark"] .faqsb-wrap .accordion-button {
    background: rgba(255,255,255,.06);
    color: #fff;
    border-color: rgba(255,255,255,.1);
}
[data-theme="dark"] .faqsb-wrap .accordion-button:not(.collapsed) {
    background: rgba(200,157,74,.15);
    color: #fff;
}
[data-theme="dark"] .faqsb-wrap .accordion-button .accordion-icon {
    color: rgba(255,255,255,.6);
}
[data-theme="dark"] .faqsb-wrap .accordion-body {
    background: rgba(255,255,255,.03);
    color: rgba(255,255,255,.8);
}


/* ── Pricing ── */
.pricing-block h4 { color: #222; }
.pricing-block .card { background: #fff; }
.pricing-block .card-title { color: #222; }
.pricing-block .display-6 { color: #222; }

[data-theme="dark"] .pricing-block h4 { color: #fff; }
[data-theme="dark"] .pricing-block .text-muted { color: rgba(255,255,255,.55) !important; }
[data-theme="dark"] .pricing-block .card {
    background: rgba(255,255,255,.06);
    border-color: rgba(255,255,255,.1);
}
[data-theme="dark"] .pricing-block .card.shadow-sm { box-shadow: 0 2px 8px rgba(0,0,0,.25) !important; }
[data-theme="dark"] .pricing-block .card.shadow { box-shadow: 0 4px 16px rgba(0,0,0,.35) !important; }
[data-theme="dark"] .pricing-block .card-title { color: #fff; }
[data-theme="dark"] .pricing-block .display-6 { color: #fff; }
[data-theme="dark"] .pricing-block .card-body li { color: rgba(255,255,255,.8); }
[data-theme="dark"] .pricing-block .btn-outline-primary { color: var(--primary, #c89d4a); border-color: var(--primary, #c89d4a); }
[data-theme="dark"] .pricing-block .btn-outline-primary:hover { background: var(--primary, #c89d4a); color: #000; }
[data-theme="dark"] .pricing-block .card-header.bg-primary {
    background: rgba(200,157,74,.25) !important;
    color: #fff !important;
}
[data-theme="dark"] .pricing-block code { color: #f8a4ad; }


/* ── Gallery ── */
.gallery-block h4 { color: #222; }

[data-theme="dark"] .gallery-block h4 { color: #fff; }
[data-theme="dark"] .gallery-block .text-muted { color: rgba(255,255,255,.55) !important; }
[data-theme="dark"] .gallery-block img.shadow-sm { box-shadow: 0 2px 8px rgba(0,0,0,.3) !important; }
[data-theme="dark"] .gallery-block code { color: #f8a4ad; }


/* ── Image ── */
[data-theme="dark"] .image-block .text-muted { color: rgba(255,255,255,.55) !important; }


/* ── Button ── */
[data-theme="dark"] .button-block .btn-outline-primary { color: var(--primary, #c89d4a); border-color: var(--primary, #c89d4a); }
[data-theme="dark"] .button-block .btn-outline-primary:hover { background: var(--primary, #c89d4a); color: #000; }
[data-theme="dark"] .button-block .btn-outline-secondary { color: rgba(255,255,255,.7); border-color: rgba(255,255,255,.25); }
[data-theme="dark"] .button-block .btn-outline-secondary:hover { background: rgba(255,255,255,.1); color: #fff; }
[data-theme="dark"] .button-block .btn-outline-dark { color: rgba(255,255,255,.85); border-color: rgba(255,255,255,.3); }
[data-theme="dark"] .button-block .btn-outline-dark:hover { background: rgba(255,255,255,.1); color: #fff; }
[data-theme="dark"] .button-block .btn-outline-light { color: #fff; border-color: rgba(255,255,255,.4); }


/* ── Map ── */
.map-block h4 { color: #222; }

[data-theme="dark"] .map-block h4 { color: #fff; }
[data-theme="dark"] .map-block .text-muted { color: rgba(255,255,255,.55) !important; }
[data-theme="dark"] .map-block .border { border-color: rgba(255,255,255,.15) !important; }
[data-theme="dark"] .map-block code { color: #f8a4ad; }
[data-theme="dark"] .map-block .shadow-sm { box-shadow: 0 2px 8px rgba(0,0,0,.3) !important; }


/* ── Functional Page ── */
.functional-page-block h4 { color: #222; }

[data-theme="dark"] .functional-page-block h4 { color: #fff; }
[data-theme="dark"] .functional-page-block .text-muted { color: rgba(255,255,255,.55) !important; }
[data-theme="dark"] .functional-page-block .border { border-color: rgba(255,255,255,.15) !important; }
[data-theme="dark"] .functional-page-block code { color: #f8a4ad; }


/* ── Testimonials ── */
.testimonials-block .testimonial-card {
    background: #fff;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 12px;
    transition: box-shadow .2s;
    display: flex;
    flex-direction: column;
}
.testimonials-block .testimonial-card:hover { box-shadow: 0 4px 20px rgba(0,0,0,.08); }
.testimonials-block .testimonial-quote { font-size: 1rem; line-height: 1.6; color: #555; }
.testimonials-block .testimonial-name { color: #222; font-size: .95rem; }
.testimonials-block .testimonial-role { color: #888; font-size: .85rem; }
.testimonials-block .testimonial-nav-btn {
    background: transparent;
    border: 1px solid #ccc;
    border-radius: 50%;
    width: 34px; height: 34px;
    padding: 0; line-height: 32px;
    color: #555;
    transition: all .2s;
}
.testimonials-block .testimonial-nav-btn:hover {
    background: #f0f0f0;
    border-color: #999;
    color: #222;
}
.testimonials-block .testimonial-dot {
    display: inline-block;
    width: 10px; height: 10px;
    border-radius: 50%;
    border: none;
    background: #ccc;
    margin: 0 4px;
    padding: 0;
    transition: background .2s;
    vertical-align: middle;
}
.testimonials-block .testimonial-dot.active { background: #555; }
.testimonials-block .carousel-item { transition: transform .5s ease-in-out; }

[data-theme="dark"] .testimonials-block .testimonial-card {
    background: rgba(255,255,255,.06);
    border-color: rgba(255,255,255,.1);
}
[data-theme="dark"] .testimonials-block .testimonial-card:hover { box-shadow: 0 4px 20px rgba(0,0,0,.3); }
[data-theme="dark"] .testimonials-block .testimonial-quote { color: rgba(255,255,255,.8); }
[data-theme="dark"] .testimonials-block .testimonial-name { color: #fff; }
[data-theme="dark"] .testimonials-block .testimonial-role { color: rgba(255,255,255,.55); }
[data-theme="dark"] .testimonials-block .testimonial-nav-btn {
    border-color: rgba(255,255,255,.2);
    color: rgba(255,255,255,.7);
}
[data-theme="dark"] .testimonials-block .testimonial-nav-btn:hover {
    background: rgba(255,255,255,.1);
    border-color: rgba(255,255,255,.4);
    color: #fff;
}
[data-theme="dark"] .testimonials-block .testimonial-dot { background: rgba(255,255,255,.25); }
[data-theme="dark"] .testimonials-block .testimonial-dot.active { background: rgba(255,255,255,.7); }
[data-theme="dark"] .testimonials-block h4 { color: #fff; }
[data-theme="dark"] .testimonials-block .fa-star.text-warning { color: #ffc107 !important; }
[data-theme="dark"] .testimonials-block .fa-star.text-muted { color: rgba(255,255,255,.2) !important; }

@media (max-width: 767.98px) {
    .testimonials-block .carousel-inner .row > [class*="col-md-"] {
        flex: 0 0 100%;
        max-width: 100%;
        margin-bottom: 1rem;
    }
}


/* ── Stats ── */
.stats-block .stat-item h3 { color: #222; }
.stats-block .stat-item .text-muted { color: #777 !important; }

[data-theme="dark"] .stats-block h4 { color: #fff; }
[data-theme="dark"] .stats-block .stat-item h3 { color: #fff; }
[data-theme="dark"] .stats-block .stat-item .text-muted { color: rgba(255,255,255,.55) !important; }
[data-theme="dark"] .stats-block .stat-item .text-primary { color: var(--primary, #c89d4a) !important; }


/* ── How It Works ── */
.how-it-works-block h6 { color: #222; }
.how-it-works-block .text-muted { color: #777 !important; }
.how-it-works-block .hiw-step-badge {
    background: #333;
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    padding: 4px 10px;
}

[data-theme="dark"] .how-it-works-block h4 { color: #fff; }
[data-theme="dark"] .how-it-works-block h6 { color: #fff; }
[data-theme="dark"] .how-it-works-block .text-muted { color: rgba(255,255,255,.55) !important; }
[data-theme="dark"] .how-it-works-block .hiw-step-badge {
    background: rgba(255,255,255,.85);
    color: #111;
}


/* ── Contact Form ── */
.contact-form-block h4 { color: #222; }

[data-theme="dark"] .contact-form-block h4 { color: #fff; }
[data-theme="dark"] .contact-form-block .form-control {
    background: rgba(255,255,255,.06);
    border-color: rgba(255,255,255,.15);
    color: #fff;
}
[data-theme="dark"] .contact-form-block .form-control::placeholder { color: rgba(255,255,255,.4); }
[data-theme="dark"] .contact-form-block .form-control:focus {
    background: rgba(255,255,255,.1);
    border-color: rgba(200,157,74,.6);
    color: #fff;
    box-shadow: 0 0 0 .2rem rgba(200,157,74,.25);
}


/* ── Subscribe Form ── */
.subscribe-block h4 { color: #222; }
.subscribe-block .text-muted { color: #777 !important; }

[data-theme="dark"] .subscribe-block h4 { color: #fff; }
[data-theme="dark"] .subscribe-block .text-muted { color: rgba(255,255,255,.55) !important; }
[data-theme="dark"] .subscribe-block .form-control {
    background: rgba(255,255,255,.06);
    border-color: rgba(255,255,255,.15);
    color: #fff;
}
[data-theme="dark"] .subscribe-block .form-control::placeholder { color: rgba(255,255,255,.4); }
[data-theme="dark"] .subscribe-block .form-control:focus {
    background: rgba(255,255,255,.1);
    border-color: rgba(200,157,74,.6);
    color: #fff;
    box-shadow: 0 0 0 .2rem rgba(200,157,74,.25);
}


/* ── Team ── */
.team-block .team-card {
    background: #fff;
    border-radius: 12px;
    transition: box-shadow .2s;
}
.team-block .team-card:hover { box-shadow: 0 4px 20px rgba(0,0,0,.1); }
.team-block .team-card h6 { color: #222; }
.team-block .team-role { color: #555; }
.team-block .team-desc { color: #777; }
.team-block .text-muted { color: #777 !important; }

[data-theme="dark"] .team-block h4 { color: #fff; }
[data-theme="dark"] .team-block .team-card {
    background: rgba(255,255,255,.06);
    border-color: rgba(255,255,255,.1);
    box-shadow: 0 2px 8px rgba(0,0,0,.2);
}
[data-theme="dark"] .team-block .team-card:hover { box-shadow: 0 4px 20px rgba(0,0,0,.35); }
[data-theme="dark"] .team-block .team-card h6 { color: #fff; }
[data-theme="dark"] .team-block .team-role { color: rgba(255,255,255,.6); }
[data-theme="dark"] .team-block .team-desc { color: rgba(255,255,255,.5); }
[data-theme="dark"] .team-block .team-card .text-muted { color: rgba(255,255,255,.55) !important; }
[data-theme="dark"] .team-block .btn-outline-primary { color: rgba(255,255,255,.8); border-color: rgba(255,255,255,.25); }
[data-theme="dark"] .team-block .btn-outline-primary:hover { background: rgba(255,255,255,.1); color: #fff; border-color: rgba(255,255,255,.4); }
[data-theme="dark"] .team-block .text-muted { color: rgba(255,255,255,.5) !important; }


/* ── Login Form ── */
.login-block { max-width: 440px; margin: 0 auto; }
.login-block h4 { color: #222; }
.login-block .form-label { color: #333; }

[data-theme="dark"] .login-block h4 { color: #fff; }
[data-theme="dark"] .login-block .form-label { color: rgba(255,255,255,.85); }
[data-theme="dark"] .login-block .text-muted { color: rgba(255,255,255,.55) !important; }
[data-theme="dark"] .login-block .form-control {
    background: rgba(255,255,255,.06);
    border-color: rgba(255,255,255,.15);
    color: #fff;
}
[data-theme="dark"] .login-block .form-control::placeholder { color: rgba(255,255,255,.4); }
[data-theme="dark"] .login-block .form-control:focus {
    background: rgba(255,255,255,.1);
    border-color: rgba(200,157,74,.6);
    color: #fff;
    box-shadow: 0 0 0 .2rem rgba(200,157,74,.25);
}
[data-theme="dark"] .login-block .btn-outline-secondary { color: rgba(255,255,255,.7); border-color: rgba(255,255,255,.2); background: rgba(255,255,255,.05); }
[data-theme="dark"] .login-block .btn-outline-secondary:hover { background: rgba(255,255,255,.12); color: #fff; }
[data-theme="dark"] .login-block .btn-outline-dark { color: rgba(255,255,255,.85); border-color: rgba(255,255,255,.2); }
[data-theme="dark"] .login-block .btn-outline-dark:hover { background: rgba(255,255,255,.08); color: #fff; }
[data-theme="dark"] .login-block a.small { color: var(--primary, #c89d4a); }
[data-theme="dark"] .login-block .alert-danger { background: rgba(220,53,69,.15); border-color: rgba(220,53,69,.3); color: #f8a4ad; }
[data-theme="dark"] .login-block .alert-success {
    background-color: rgba(25, 135, 84, 0.2);
    border-color: rgba(25, 135, 84, 0.3);
    color: #75b798;
}
[data-theme="dark"] .login-block .bg-success.bg-opacity-10 {
    background-color: rgba(25, 135, 84, 0.15) !important;
}
[data-theme="dark"] .login-block-loggedin h5 { color: #fff; }
[data-theme="dark"] .login-block-loggedin .text-muted { color: rgba(255,255,255,.55) !important; }
[data-theme="dark"] .login-block .input-group-text { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.15); color: rgba(255,255,255,.6); }


/* ── Register Form ── */
.register-block { max-width: 440px; margin: 0 auto; }
.register-block h4 { color: #222; }
.register-block .form-label { color: #333; }

[data-theme="dark"] .register-block h4 { color: #fff; }
[data-theme="dark"] .register-block .form-label { color: rgba(255,255,255,.85); }
[data-theme="dark"] .register-block .text-muted { color: rgba(255,255,255,.55) !important; }
[data-theme="dark"] .register-block .form-control {
    background: rgba(255,255,255,.06);
    border-color: rgba(255,255,255,.15);
    color: #fff;
}
[data-theme="dark"] .register-block .form-control::placeholder { color: rgba(255,255,255,.4); }
[data-theme="dark"] .register-block .form-control:focus {
    background: rgba(255,255,255,.1);
    border-color: rgba(200,157,74,.6);
    color: #fff;
    box-shadow: 0 0 0 .2rem rgba(200,157,74,.25);
}
[data-theme="dark"] .register-block .btn-outline-secondary { color: rgba(255,255,255,.7); border-color: rgba(255,255,255,.15); }
[data-theme="dark"] .register-block .btn-outline-secondary:hover { background: rgba(255,255,255,.1); color: #fff; }
[data-theme="dark"] .register-block .btn-outline-dark { color: rgba(255,255,255,.85); border-color: rgba(255,255,255,.2); }
[data-theme="dark"] .register-block .btn-outline-dark:hover { background: rgba(255,255,255,.08); color: #fff; }
[data-theme="dark"] .register-block a.small { color: var(--primary, #c89d4a); }
[data-theme="dark"] .register-block .alert-danger { background: rgba(220,53,69,.15); border-color: rgba(220,53,69,.3); color: #f8a4ad; }
[data-theme="dark"] .register-block .alert-success {
    background-color: rgba(25, 135, 84, 0.2);
    border-color: rgba(25, 135, 84, 0.3);
    color: #75b798;
}
[data-theme="dark"] .register-block .bg-success.bg-opacity-10 {
    background-color: rgba(25, 135, 84, 0.15) !important;
}
[data-theme="dark"] .register-block-loggedin h5 { color: #fff; }
[data-theme="dark"] .register-block-loggedin .text-muted { color: rgba(255,255,255,.55) !important; }


/* ── Forgot Password ── */
.forgot-password-block { max-width: 440px; margin: 0 auto; }
.forgot-password-block h4 { color: #222; }
.forgot-password-block .form-label { color: #333; }

[data-theme="dark"] .forgot-password-block h4 { color: #fff; }
[data-theme="dark"] .forgot-password-block .form-label { color: rgba(255,255,255,.85); }
[data-theme="dark"] .forgot-password-block .text-muted { color: rgba(255,255,255,.55) !important; }
[data-theme="dark"] .forgot-password-block .form-control {
    background: rgba(255,255,255,.06);
    border-color: rgba(255,255,255,.15);
    color: #fff;
}
[data-theme="dark"] .forgot-password-block .form-control::placeholder { color: rgba(255,255,255,.4); }
[data-theme="dark"] .forgot-password-block .form-control:focus {
    background: rgba(255,255,255,.1);
    border-color: rgba(200,157,74,.6);
    color: #fff;
    box-shadow: 0 0 0 .2rem rgba(200,157,74,.25);
}
[data-theme="dark"] .forgot-password-block a.small { color: var(--primary, #c89d4a); }
[data-theme="dark"] .forgot-password-block a.small:hover { color: var(--primary, #c89d4a); opacity: .85; }
[data-theme="dark"] .forgot-password-block .alert-danger { background: rgba(220,53,69,.15); border-color: rgba(220,53,69,.3); color: #f8a4ad; }
[data-theme="dark"] .forgot-password-block .alert-success { background: rgba(25,135,84,.15); border-color: rgba(25,135,84,.3); color: #75d6a5; }


/* ── Email Verify ── */
.email-verify-block { max-width: 480px; margin: 0 auto; }

[data-theme="dark"] .email-verify-block h4,
[data-theme="dark"] .email-verify-block h5 { color: #fff; }
[data-theme="dark"] .email-verify-block .text-muted { color: rgba(255,255,255,.55) !important; }
[data-theme="dark"] .email-verify-block .text-muted strong { color: rgba(255,255,255,.8); }
[data-theme="dark"] .email-verify-block .verify-digit {
    background: rgba(255,255,255,.06);
    color: #fff;
    border-color: rgba(255,255,255,.15);
}
[data-theme="dark"] .email-verify-block .verify-digit:focus {
    background: rgba(255,255,255,.1);
    border-color: rgba(200,157,74,.6);
    color: #fff;
    box-shadow: 0 0 0 .2rem rgba(200,157,74,.25);
}
[data-theme="dark"] .email-verify-block .btn-link { color: var(--primary, #c89d4a); }
[data-theme="dark"] .email-verify-block .btn-link:hover { color: var(--primary, #c89d4a); opacity: .85; }
[data-theme="dark"] .email-verify-block .alert-danger { background: rgba(220,53,69,.15); border-color: rgba(220,53,69,.3); color: #f8a4ad; }
[data-theme="dark"] .email-verify-block .alert-success { background: rgba(25,135,84,.15); border-color: rgba(25,135,84,.3); color: #75d6a5; }


/* ── Logout Button ── */
[data-theme="dark"] .logout-block .btn-outline-primary { color: var(--primary, #c89d4a); border-color: var(--primary, #c89d4a); }
[data-theme="dark"] .logout-block .btn-outline-primary:hover { background: var(--primary, #c89d4a); color: #000; }


/* ── Property List ── */
.property-list-block .buy-grid-img img.img-fluid { height: 250px; object-fit: cover; width: 100%; }
.property-list-block .buy-grid-content h6.title a { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block; max-width: 100%; color: inherit; text-decoration: none; }
.property-list-block .buy-grid-content h6.title a:hover { color: var(--primary, #c89d4a); }
.property-list-block .buy-grid-content .address-text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.property-list-block .property-listing-item { border: 1px solid rgba(255,255,255,.1); border-radius: 12px; overflow: hidden; transition: box-shadow 0.3s; background: transparent; }
.property-list-block .property-listing-item:hover { box-shadow: 0 8px 24px rgba(0,0,0,.12); }
html:not([data-theme="dark"]) .property-list-block .property-listing-item { border-color: #dee2e6; background: #fff; }
.property-list-block .buy-grid-img { position: relative; overflow: hidden; }
.property-list-block .buy-grid-content { padding: 16px; }
.property-list-block .buy-grid-details { list-style: none; padding: 0; margin: 0; }
.property-list-block .buy-grid-details li { font-size: 13px; color: inherit; opacity: 0.7; }
.property-list-block .buy-grid-details li i { font-size: 18px; border-radius: 4px; padding: 2px; }

[data-theme="dark"] .property-list-block .property-listing-item { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.1); }
[data-theme="dark"] .property-list-block .property-listing-item:hover { box-shadow: 0 8px 24px rgba(0,0,0,.3); }
[data-theme="dark"] .property-list-block .buy-grid-details li i.bg-light { background: rgba(255,255,255,.1) !important; color: inherit !important; }
[data-theme="dark"] .property-list-block .border-bottom { border-color: rgba(255,255,255,.15) !important; }


/* ── Property Sell Featured ── */
.prop-featured-block .buy-grid-img img.img-fluid { height: 250px; object-fit: cover; width: 100%; }
.prop-featured-block .buy-grid-content h6.title a { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block; max-width: 100%; color: inherit; text-decoration: none; }
.prop-featured-block .buy-grid-content h6.title a:hover { color: var(--primary, #c89d4a); }
.prop-featured-block .address-text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.prop-featured-block .property-listing-item { border: 1px solid rgba(255,255,255,.1); border-radius: 12px; overflow: hidden; transition: box-shadow 0.3s; background: transparent; }
.prop-featured-block .property-listing-item:hover { box-shadow: 0 8px 24px rgba(0,0,0,.12); }
html:not([data-theme="dark"]) .prop-featured-block .property-listing-item { border-color: #dee2e6; background: #fff; }
.prop-featured-block .buy-grid-img { position: relative; overflow: hidden; }
.prop-featured-block .buy-grid-content { padding: 16px; }
.prop-featured-block .buy-grid-details { list-style: none; padding: 0; margin: 0; }
.prop-featured-block .buy-grid-details li { font-size: 13px; color: inherit; opacity: 0.7; }
.prop-featured-block .buy-grid-details li i { font-size: 18px; border-radius: 4px; padding: 2px; }

[data-theme="dark"] .prop-featured-block .property-listing-item { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.1); }
[data-theme="dark"] .prop-featured-block .property-listing-item:hover { box-shadow: 0 8px 24px rgba(0,0,0,.3); }
[data-theme="dark"] .prop-featured-block .buy-grid-details li i.bg-light { background: rgba(255,255,255,.1) !important; color: inherit !important; }
[data-theme="dark"] .prop-featured-block .border-bottom { border-color: rgba(255,255,255,.15) !important; }
[data-theme="dark"] .prop-featured-block .text-muted { color: rgba(255,255,255,.55) !important; }
[data-theme="dark"] .prop-featured-block .address-text { color: rgba(255,255,255,.55); }
[data-theme="dark"] .prop-featured-block .buy-grid-content h6.title a { color: #fff; }
[data-theme="dark"] .prop-featured-block .buy-grid-content h6.title a:hover { color: var(--primary, #c89d4a); }
[data-theme="dark"] .prop-featured-block .buy-grid-details li { color: rgba(255,255,255,.7); }
[data-theme="dark"] .prop-featured-block .badge.bg-light { background: rgba(255,255,255,.12) !important; color: rgba(255,255,255,.85) !important; }


/* ── Property Rent Featured ── */
.prop-rent-feat-block .buy-grid-img img.img-fluid { height: 250px; object-fit: cover; width: 100%; }
.prop-rent-feat-block .buy-grid-content h6.title a { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block; max-width: 100%; color: inherit; text-decoration: none; }
.prop-rent-feat-block .buy-grid-content h6.title a:hover { color: var(--primary, #c89d4a); }
.prop-rent-feat-block .address-text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.prop-rent-feat-block .property-listing-item { border: 1px solid rgba(255,255,255,.1); border-radius: 12px; overflow: hidden; transition: box-shadow 0.3s; background: transparent; }
.prop-rent-feat-block .property-listing-item:hover { box-shadow: 0 8px 24px rgba(0,0,0,.12); }
html:not([data-theme="dark"]) .prop-rent-feat-block .property-listing-item { border-color: #dee2e6; background: #fff; }
.prop-rent-feat-block .buy-grid-img { position: relative; overflow: hidden; }
.prop-rent-feat-block .buy-grid-content { padding: 16px; }
.prop-rent-feat-block .buy-grid-details { list-style: none; padding: 0; margin: 0; }
.prop-rent-feat-block .buy-grid-details li { font-size: 13px; color: inherit; opacity: 0.7; }
.prop-rent-feat-block .buy-grid-details li i { font-size: 18px; border-radius: 4px; padding: 2px; }

[data-theme="dark"] .prop-rent-feat-block .property-listing-item { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.1); }
[data-theme="dark"] .prop-rent-feat-block .property-listing-item:hover { box-shadow: 0 8px 24px rgba(0,0,0,.3); }
[data-theme="dark"] .prop-rent-feat-block .buy-grid-details li i.bg-light { background: rgba(255,255,255,.1) !important; color: inherit !important; }
[data-theme="dark"] .prop-rent-feat-block .border-bottom { border-color: rgba(255,255,255,.15) !important; }
[data-theme="dark"] .prop-rent-feat-block .text-muted { color: rgba(255,255,255,.55) !important; }
[data-theme="dark"] .prop-rent-feat-block .address-text { color: rgba(255,255,255,.55); }
[data-theme="dark"] .prop-rent-feat-block .buy-grid-content h6.title a { color: #fff; }
[data-theme="dark"] .prop-rent-feat-block .buy-grid-content h6.title a:hover { color: var(--primary, #c89d4a); }
[data-theme="dark"] .prop-rent-feat-block .buy-grid-details li { color: rgba(255,255,255,.7); }
[data-theme="dark"] .prop-rent-feat-block .badge.bg-light { background: rgba(255,255,255,.12) !important; color: rgba(255,255,255,.85) !important; }


/* ── Property Sell Search ── */
.prop-sell-search .property-card { height: 100%; display: flex; flex-direction: column; border-radius: 8px; overflow: hidden; transition: transform 0.3s, box-shadow 0.3s; background: transparent; }
.prop-sell-search .property-card:hover { transform: translateY(-5px); }
html:not([data-theme="dark"]) .prop-sell-search .property-card { background: #fff; box-shadow: 0 2px 10px rgba(0,0,0,.1); }
html:not([data-theme="dark"]) .prop-sell-search .property-card:hover { box-shadow: 0 5px 15px rgba(0,0,0,.15); }
.prop-sell-search .pss-img { position: relative; height: 200px; overflow: hidden; }
.prop-sell-search .pss-img img { width: 100%; height: 100%; object-fit: cover; }
.prop-sell-search .pss-price { position: absolute; bottom: 0; left: 0; right: 0; padding: 15px; background: linear-gradient(to top, rgba(0,0,0,.8), rgba(0,0,0,.1), transparent); color: #fff; z-index: 1; }
.prop-sell-search .pss-content { flex-grow: 1; display: flex; flex-direction: column; padding: 15px; }
.prop-sell-search .pss-info { display: flex; flex-direction: column; height: 100%; justify-content: space-between; }
.prop-sell-search .pss-title { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.prop-sell-search .pss-title a { color: inherit; text-decoration: none; }
.prop-sell-search .pss-title a:hover { color: var(--primary, #c89d4a); }
.prop-sell-search .pss-address { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block; font-size: 14px; }
.prop-sell-search .pss-details { display: flex; justify-content: space-around; margin: 10px 0; padding: 8px; border-radius: 6px; list-style: none; }
html:not([data-theme="dark"]) .prop-sell-search .pss-details { background: #f8f9fa; }
.prop-sell-search .pss-details li { display: flex; align-items: center; gap: 5px; flex: 1; justify-content: center; white-space: nowrap; font-size: 13px; }
.prop-sell-search .pss-footer { margin-top: auto; border-top: 1px solid rgba(128,128,128,.15); padding-top: 10px; font-size: 14px; }
.prop-sell-search .pss-grid-item { margin-bottom: 25px; }
.prop-sell-search .restricted .restricted-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,.6); display: flex; justify-content: center; align-items: center; color: #fff; font-size: 1.1rem; font-weight: bold; z-index: 2; pointer-events: none; }
.prop-sell-search .pss-map { height: calc(100vh - 40px); min-height: 400px; width: 100%; border-radius: 10px; overflow: hidden; box-shadow: 0 2px 8px rgba(0,0,0,.1); }
@media (max-width: 1199px) {
    .prop-sell-search .pss-map { height: 400px; margin-top: 20px; }
}

[data-theme="dark"] .prop-sell-search .property-card { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1); }
[data-theme="dark"] .prop-sell-search .property-card:hover { box-shadow: 0 5px 15px rgba(0,0,0,.3); }
[data-theme="dark"] .prop-sell-search .pss-details { background: rgba(255,255,255,.06); }
[data-theme="dark"] .prop-sell-search .text-muted { color: rgba(255,255,255,.55) !important; }
[data-theme="dark"] .prop-sell-search .pss-address { color: rgba(255,255,255,.55); }
[data-theme="dark"] .prop-sell-search .pss-title a { color: #fff; }
[data-theme="dark"] .prop-sell-search .pss-title a:hover { color: var(--primary, #c89d4a); }
[data-theme="dark"] .prop-sell-search .pss-details li { color: rgba(255,255,255,.7); }


/* ── Property Rent Search ── */
.prop-rent-search .property-card { height: 100%; display: flex; flex-direction: column; border-radius: 8px; overflow: hidden; transition: transform 0.3s, box-shadow 0.3s; background: transparent; }
.prop-rent-search .property-card:hover { transform: translateY(-5px); }
html:not([data-theme="dark"]) .prop-rent-search .property-card { background: #fff; box-shadow: 0 2px 10px rgba(0,0,0,.1); }
html:not([data-theme="dark"]) .prop-rent-search .property-card:hover { box-shadow: 0 5px 15px rgba(0,0,0,.15); }
.prop-rent-search .prs-img { position: relative; height: 200px; overflow: hidden; }
.prop-rent-search .prs-img img { width: 100%; height: 100%; object-fit: cover; }
.prop-rent-search .prs-price { position: absolute; bottom: 0; left: 0; right: 0; padding: 15px; background: linear-gradient(to top, rgba(0,0,0,.8), rgba(0,0,0,.1), transparent); color: #fff; z-index: 1; }
.prop-rent-search .prs-content { flex-grow: 1; display: flex; flex-direction: column; padding: 15px; }
.prop-rent-search .prs-info { display: flex; flex-direction: column; height: 100%; justify-content: space-between; }
.prop-rent-search .prs-title { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.prop-rent-search .prs-title a { color: inherit; text-decoration: none; }
.prop-rent-search .prs-title a:hover { color: var(--primary, #c89d4a); }
.prop-rent-search .prs-address { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block; font-size: 14px; }
.prop-rent-search .prs-details { display: flex; justify-content: space-around; margin: 10px 0; padding: 8px; border-radius: 6px; list-style: none; }
html:not([data-theme="dark"]) .prop-rent-search .prs-details { background: #f8f9fa; }
.prop-rent-search .prs-details li { display: flex; align-items: center; gap: 5px; flex: 1; justify-content: center; white-space: nowrap; font-size: 13px; }
.prop-rent-search .prs-footer { margin-top: auto; border-top: 1px solid rgba(128,128,128,.15); padding-top: 10px; font-size: 14px; }
.prop-rent-search .prs-grid-item { margin-bottom: 25px; }
.prop-rent-search .restricted .restricted-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,.6); display: flex; justify-content: center; align-items: center; color: #fff; font-size: 1.1rem; font-weight: bold; z-index: 2; pointer-events: none; }
.prop-rent-search .prs-map { height: calc(100vh - 40px); min-height: 400px; width: 100%; border-radius: 10px; overflow: hidden; box-shadow: 0 2px 8px rgba(0,0,0,.1); }
@media (max-width: 1199px) {
    .prop-rent-search .prs-map { height: 400px; margin-top: 20px; }
}

[data-theme="dark"] .prop-rent-search .property-card { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1); }
[data-theme="dark"] .prop-rent-search .property-card:hover { box-shadow: 0 5px 15px rgba(0,0,0,.3); }
[data-theme="dark"] .prop-rent-search .prs-details { background: rgba(255,255,255,.06); }
[data-theme="dark"] .prop-rent-search .text-muted { color: rgba(255,255,255,.55) !important; }
[data-theme="dark"] .prop-rent-search .prs-address { color: rgba(255,255,255,.55); }
[data-theme="dark"] .prop-rent-search .prs-title a { color: #fff; }
[data-theme="dark"] .prop-rent-search .prs-title a:hover { color: var(--primary, #c89d4a); }
[data-theme="dark"] .prop-rent-search .prs-details li { color: rgba(255,255,255,.7); }

/* ── Reviews Block ── */
.review-card { border: 1px solid rgba(0,0,0,.08); transition: box-shadow .2s; }
.review-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,.1); }
.review-avatar { width: 44px; height: 44px; border-radius: 50%; background: var(--primary, #c89d4a); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: 1.1rem; }
[data-theme="dark"] .review-card { border-color: rgba(255,255,255,.1); background: rgba(255,255,255,.03); }
[data-theme="dark"] .review-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,.3); }
[data-theme="dark"] .review-card .card-text { color: rgba(255,255,255,.8); }
[data-theme="dark"] .review-card .card-title { color: #fff; }
[data-theme="dark"] .review-card h6 { color: #fff; }

/* ── Marketplace Directory Block ────────────────────────────── */
.marketplace-directory-block .marketplace-dir-subtitle { color: #6c757d; font-size: .95rem; }
.mp-provider-card { border: 1px solid rgba(0,0,0,.08); transition: box-shadow .2s, transform .2s; }
.mp-provider-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,.1); transform: translateY(-2px); }
.mp-provider-card .card-footer a { font-size: .8rem; }
[data-theme="dark"] .mp-provider-card { border-color: rgba(255,255,255,.1); background: rgba(255,255,255,.03); }
[data-theme="dark"] .mp-provider-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,.3); }
[data-theme="dark"] .mp-provider-card h6 { color: #fff; }
[data-theme="dark"] .mp-provider-card .card-footer { border-color: rgba(255,255,255,.08); }
[data-theme="dark"] .marketplace-directory-block .marketplace-dir-subtitle { color: rgba(255,255,255,.6); }


/* ── Property Search Widget — Dark Mode ── */
[data-theme="dark"] .property-search-widget .form-control,
[data-theme="dark"] .property-search-widget .form-select {
    background-color: rgba(255,255,255,.08);
    border-color: rgba(255,255,255,.15);
    color: #fff;
}
[data-theme="dark"] .property-search-widget .form-control::placeholder { color: rgba(255,255,255,.4); }
[data-theme="dark"] .property-search-widget .nav-link { color: rgba(255,255,255,.6); }
[data-theme="dark"] .property-search-widget .nav-link.active { color: #fff; }

/* ── Property List badge dark mode (For Sale / To Let) ── */
[data-theme="dark"] .property-list-block .badge.bg-light,
[data-theme="dark"] .prop-rent-search .badge.bg-light,
[data-theme="dark"] .prop-sell-search .badge.bg-light {
    background: rgba(255,255,255,.12) !important;
    color: rgba(255,255,255,.85) !important;
}

/* ── Reviews Block heading dark mode ── */
[data-theme="dark"] .reviews-block h2,
[data-theme="dark"] .reviews-block h3 { color: #fff; }

/* ── Error Page ── */
.error-page-section {
    min-height: 60vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 80px 0;
}
.error-page-code {
    font-size: 7rem;
    font-weight: 800;
    opacity: 0.12;
    margin-bottom: -24px;
    line-height: 1;
}
[data-theme="dark"] .error-page-section h2 { color: #fff; }
[data-theme="dark"] .error-page-section .text-muted { color: rgba(255,255,255,0.6) !important; }
[data-theme="dark"] .error-page-code { color: #fff; }
[data-theme="dark"] .error-page-section .btn-outline-secondary {
    color: #ccc;
    border-color: rgba(255,255,255,0.3);
}
[data-theme="dark"] .error-page-section .btn-outline-secondary:hover {
    color: #fff;
    border-color: rgba(255,255,255,0.6);
}

/* ── Cookie Policy Block ── */
.cookie-policy-block h2 { font-weight: 700; }
.cookie-policy-block h4 { font-weight: 600; margin-bottom: 12px; }
.cp-section p { line-height: 1.7; }
.cp-category { background: var(--bs-tertiary-bg, #f8f9fa); border-radius: 10px; padding: 20px; }
.cp-category-header { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; flex-wrap: wrap; }
.cp-category-header h5 { margin: 0; font-weight: 600; display: flex; align-items: center; gap: 8px; }
.cp-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
.cp-dot-essential { background: #198754; }
.cp-dot-analytics { background: #0dcaf0; }
.cp-dot-marketing { background: #ffc107; }
.cp-table { font-size: 13px; margin-top: 12px; }
.cp-table code { font-size: 12px; background: rgba(0,0,0,0.06); padding: 2px 6px; border-radius: 4px; }
.cp-table th { font-weight: 600; border-bottom-width: 2px; }

/* Cookie Policy — dark mode */
[data-theme="dark"] .cp-category { background: rgba(255,255,255,0.05); }
[data-theme="dark"] .cp-table code { background: rgba(255,255,255,0.1); color: #e0e0e0; }
[data-theme="dark"] .cookie-policy-block h2,
[data-theme="dark"] .cookie-policy-block h4,
[data-theme="dark"] .cookie-policy-block h5 { color: #fff; }
[data-theme="dark"] .cookie-policy-block p,
[data-theme="dark"] .cookie-policy-block li { color: rgba(255,255,255,0.8); }

/* ── Contact Info Block ── */
.ci-block { margin-bottom: 24px; }
.ci-title { font-weight: 700; margin-bottom: 4px; font-size: 1.5rem; }
.ci-subtitle { color: #6c757d; margin-bottom: 24px; font-size: 15px; }
.ci-items { display: flex; flex-direction: column; gap: 20px; }
.ci-item { display: flex; gap: 16px; align-items: flex-start; }
.ci-icon {
    width: 48px; height: 48px; min-width: 48px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 50%;
    background: var(--primary, #c89d4a);
    color: #fff; font-size: 22px;
}
.ci-icon i { font-size: 22px; }
.ci-text h6 { margin: 0 0 2px; font-weight: 600; font-size: 14px; }
.ci-text p { margin: 0; font-size: 14px; color: #6c757d; }
.ci-text a { color: var(--primary, #c89d4a); text-decoration: none; }
.ci-text a:hover { text-decoration: underline; }

/* Opening hours */
.ci-hours-list { list-style: none; padding: 0; margin: 4px 0 0; }
.ci-hours-list li {
    display: flex; justify-content: space-between;
    padding: 6px 0; border-bottom: 1px solid rgba(0,0,0,0.06);
    font-size: 14px; color: #6c757d;
}
.ci-hours-list li:last-child { border-bottom: none; }
.ci-day { font-weight: 500; min-width: 120px; }
.ci-time { text-align: right; }
.ci-today { font-weight: 700; }
.ci-today .ci-day, .ci-today .ci-time { color: var(--primary, #c89d4a); }

/* Dark mode */
[data-theme="dark"] .ci-title { color: #fff; }
[data-theme="dark"] .ci-subtitle { color: rgba(255,255,255,0.6); }
[data-theme="dark"] .ci-text h6 { color: #fff; }
[data-theme="dark"] .ci-text p { color: rgba(255,255,255,0.6); }
[data-theme="dark"] .ci-text a { color: var(--primary, #c89d4a); }
[data-theme="dark"] .ci-hours-list li { color: rgba(255,255,255,0.6); border-bottom-color: rgba(255,255,255,0.08); }
[data-theme="dark"] .ci-today .ci-day,
[data-theme="dark"] .ci-today .ci-time { color: var(--primary, #c89d4a); }

/* Light mode explicit */
[data-theme="light"] .ci-text p,
html:not([data-theme]) .ci-text p { color: #6c757d; }
[data-theme="light"] .ci-text h6,
html:not([data-theme]) .ci-text h6 { color: #333; }
[data-theme="light"] .ci-hours-list li,
html:not([data-theme]) .ci-hours-list li { color: #555; }

/* ===== Login Hub ===== */
.login-hub-section { padding: 80px 0 60px; }
.login-hub-title { font-size: 2rem; font-weight: 700; color: #333; }
.login-hub-subtitle { font-size: 1.1rem; color: #666; margin-top: 8px; }
.login-hub-card {
    display: block; text-align: center; text-decoration: none;
    background: #fff; border: 1px solid #e9ecef; border-radius: 12px;
    padding: 36px 24px; transition: all .25s ease;
    height: 100%;
}
.login-hub-card:hover { border-color: var(--primary, #c89d4a); box-shadow: 0 8px 30px rgba(0,0,0,.1); transform: translateY(-4px); text-decoration: none; }
.login-hub-icon { width: 64px; height: 64px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.login-hub-icon i { font-size: 28px; }
.login-hub-card h3 { font-size: 1.2rem; font-weight: 600; color: #333; margin-bottom: 8px; }
.login-hub-card p { font-size: .9rem; color: #666; margin-bottom: 16px; }
.login-hub-btn { display: inline-block; font-size: .875rem; font-weight: 600; color: var(--primary, #c89d4a); }
.login-hub-card:hover .login-hub-btn { text-decoration: underline; }
.login-hub-help { font-size: .875rem; color: #888; }
.login-hub-help a { color: var(--primary, #c89d4a); text-decoration: underline; }

/* Dark mode */
[data-theme="dark"] .login-hub-title { color: #fff; }
[data-theme="dark"] .login-hub-subtitle { color: rgba(255,255,255,.65); }
[data-theme="dark"] .login-hub-card { background: #1e1e2d; border-color: #2d2d3f; }
[data-theme="dark"] .login-hub-card:hover { border-color: var(--primary, #c89d4a); box-shadow: 0 8px 30px rgba(0,0,0,.3); }
[data-theme="dark"] .login-hub-card h3 { color: #fff; }
[data-theme="dark"] .login-hub-card p { color: rgba(255,255,255,.55); }
[data-theme="dark"] .login-hub-help { color: rgba(255,255,255,.5); }

/* ── Provider Directory Block ── */
.provider-directory-block { padding: 20px 0; }
.provider-card { transition: transform .2s, box-shadow .2s; border: 1px solid var(--bs-border-color, #dee2e6); }
.provider-card:hover { transform: translateY(-4px); box-shadow: 0 8px 24px rgba(0,0,0,.08); }

[data-theme="dark"] .provider-directory-block h3 { color: #fff; }
[data-theme="dark"] .provider-card { background: #1e1e2d; border-color: #2d2d3f; }
[data-theme="dark"] .provider-card:hover { box-shadow: 0 8px 24px rgba(0,0,0,.3); }
[data-theme="dark"] .provider-card h6 { color: #fff; }

/* ── Provider Profile Block ── */
.provider-profile-block { padding: 20px 0; }
.provider-profile-block .nav-tabs .nav-link { color: var(--bs-body-color); }
.provider-profile-block .nav-tabs .nav-link.active { font-weight: 600; }

[data-theme="dark"] .provider-profile-block h3,
[data-theme="dark"] .provider-profile-block h6 { color: #fff; }
[data-theme="dark"] .provider-profile-block .card { background: #1e1e2d; border-color: #2d2d3f; }
[data-theme="dark"] .provider-profile-block .border { border-color: #2d2d3f !important; }
[data-theme="dark"] .provider-profile-block .nav-tabs .nav-link { color: rgba(255,255,255,.7); }
[data-theme="dark"] .provider-profile-block .nav-tabs .nav-link.active { color: #fff; }

/* ── Service Marketplace Block ── */
.svc-marketplace-section .svc-mkt-card { transition: transform 0.2s, box-shadow 0.2s; border: 1px solid rgba(0,0,0,.08); }
.svc-marketplace-section .svc-mkt-card:hover { transform: translateY(-4px); box-shadow: 0 8px 24px rgba(0,0,0,.1); }
.svc-marketplace-section .card-title { font-size: 1.1rem; }
.svc-marketplace-section .card-body { display: flex; flex-direction: column; }
.svc-marketplace-section .card-body .d-flex.mt-auto { margin-top: auto !important; }

[data-theme="dark"] .svc-marketplace-section .svc-mkt-card { background: #1e1e2d; border-color: #2d2d3f; }
[data-theme="dark"] .svc-marketplace-section .svc-mkt-card:hover { box-shadow: 0 8px 24px rgba(0,0,0,.4); }
[data-theme="dark"] .svc-marketplace-section .card-title { color: #fff; }
[data-theme="dark"] .svc-marketplace-section .card-text { color: rgba(255,255,255,.6); }

/* ── Section-level overrides for blocks inside bg-primary / bg-dark sections ── */
/* Text and headings — force white on coloured backgrounds */
.bg-primary .text-muted,
.bg-dark .text-muted { color: rgba(255,255,255,.65) !important; }
.bg-primary h1, .bg-primary h2, .bg-primary h3, .bg-primary h4, .bg-primary h5, .bg-primary h6,
.bg-dark h1, .bg-dark h2, .bg-dark h3, .bg-dark h4, .bg-dark h5, .bg-dark h6 { color: #fff !important; }
.bg-primary p, .bg-primary .lead,
.bg-dark p, .bg-dark .lead { color: rgba(255,255,255,.8); }
.bg-primary a:not(.btn),
.bg-dark a:not(.btn) { color: #fff; text-decoration: underline; }
.bg-primary a:not(.btn):hover,
.bg-dark a:not(.btn):hover { color: rgba(255,255,255,.8); }

/* Buttons on bg-primary — invert for contrast */
.bg-primary .btn-primary {
    background: #fff;
    color: var(--primary, #c89d4a);
    border-color: #fff;
}
.bg-primary .btn-primary:hover {
    background: rgba(255,255,255,.9);
    color: var(--primary, #c89d4a);
}
.bg-primary .btn-outline-primary {
    color: #fff;
    border-color: rgba(255,255,255,.5);
}
.bg-primary .btn-outline-primary:hover {
    color: var(--primary, #c89d4a);
    background: #fff;
    border-color: #fff;
}
.bg-primary .btn-banner-secondary {
    color: #fff;
    border-color: rgba(255,255,255,.5);
    background: transparent;
}
.bg-primary .btn-banner-secondary:hover {
    color: var(--primary, #c89d4a);
    border-color: #fff;
    background: #fff;
}

/* Text blocks inside bg-primary/bg-dark */
.bg-primary .text-block,
.bg-dark .text-block { color: rgba(255,255,255,.8); }
.bg-primary .text-block h4,
.bg-dark .text-block h4 { color: #fff !important; }
.bg-primary .two-column-block div,
.bg-dark .two-column-block div { color: rgba(255,255,255,.8); }
.bg-primary .two-column-block h4,
.bg-dark .two-column-block h4 { color: #fff !important; }

/* How-it-works inside bg-primary/bg-dark */
.bg-primary .how-it-works-block h6,
.bg-dark .how-it-works-block h6 { color: #fff !important; }
.bg-primary .how-it-works-block .text-muted,
.bg-dark .how-it-works-block .text-muted { color: rgba(255,255,255,.55) !important; }
.bg-primary .how-it-works-block .hiw-step-badge,
.bg-dark .how-it-works-block .hiw-step-badge {
    background: rgba(255,255,255,.85);
    color: #111;
}

/* Stats inside bg-primary or bg-dark */
.bg-primary .stats-block .stat-item h3,
.bg-dark .stats-block .stat-item h3 { color: #fff; }
.bg-primary .stats-block .stat-item .text-muted,
.bg-dark .stats-block .stat-item .text-muted { color: rgba(255,255,255,.65) !important; }
.bg-primary .stats-block .stat-item .text-primary,
.bg-dark .stats-block .stat-item .text-primary { color: #fff !important; }

/* Feature Cards inside bg-primary or bg-dark */
.bg-primary .feature-cards-block .feature-card,
.bg-dark .feature-cards-block .feature-card {
    background: rgba(255,255,255,.08);
    border-color: rgba(255,255,255,.15) !important;
}
.bg-primary .feature-cards-block .feature-card:hover,
.bg-dark .feature-cards-block .feature-card:hover {
    background: rgba(255,255,255,.12);
    box-shadow: 0 8px 24px rgba(0,0,0,.2);
}
.bg-primary .feature-cards-block .feature-card-title,
.bg-dark .feature-cards-block .feature-card-title { color: #fff; }
.bg-primary .feature-cards-block .feature-card-desc,
.bg-dark .feature-cards-block .feature-card-desc { color: rgba(255,255,255,.7); }
.bg-primary .feature-cards-block .bg-primary.bg-opacity-10,
.bg-dark .feature-cards-block .bg-primary.bg-opacity-10 {
    background: rgba(255,255,255,.15) !important;
}
.bg-primary .feature-cards-block .bg-primary.bg-opacity-10 .text-primary,
.bg-dark .feature-cards-block .bg-primary.bg-opacity-10 .text-primary {
    color: #fff !important;
}
.bg-primary .feature-cards-block .btn-outline-primary,
.bg-dark .feature-cards-block .btn-outline-primary {
    color: #fff;
    border-color: rgba(255,255,255,.5);
}
.bg-primary .feature-cards-block .btn-outline-primary:hover,
.bg-dark .feature-cards-block .btn-outline-primary:hover {
    color: var(--primary, #c89d4a);
    background: #fff;
    border-color: #fff;
}

/* Blog Preview inside bg-primary or bg-dark */
.bg-primary .blog-preview-block .blog-preview-card,
.bg-dark .blog-preview-block .blog-preview-card {
    background: rgba(255,255,255,.08) !important;
    border-color: rgba(255,255,255,.15) !important;
}
.bg-primary .blog-preview-block .blog-preview-title,
.bg-dark .blog-preview-block .blog-preview-title { color: #fff; }
.bg-primary .blog-preview-block .blog-preview-summary,
.bg-dark .blog-preview-block .blog-preview-summary { color: rgba(255,255,255,.65); }

/* Banner inside bg-primary / bg-dark — override hero text colors */
.bg-primary .hero-content h1,
.bg-dark .hero-content h1 { color: #fff !important; }
.bg-primary .hero-content .lead,
.bg-dark .hero-content .lead { color: rgba(255,255,255,.8) !important; }
.bg-primary .hero-content .btn-primary {
    background: #fff;
    color: var(--primary, #c89d4a);
    border-color: #fff;
}
.bg-primary .hero-content .btn-primary:hover {
    background: rgba(255,255,255,.9);
}

/* ── Feature Cards Block ── */
.feature-cards-block h3 { color: #222; }
.feature-cards-block .feature-card {
    transition: transform .2s, box-shadow .2s;
}
.feature-cards-block .feature-card.border {
    border-color: rgba(0,0,0,.1) !important;
}
.feature-cards-block .feature-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,.08);
}
.feature-cards-block .feature-card-title { color: #222; }
.feature-cards-block .feature-card-desc { color: #666; }
.feature-cards-block .feature-card-icon-circle {
    background: rgba(200,157,74,.1);
    color: var(--primary, #c89d4a);
}

[data-theme="dark"] .feature-cards-block h3 { color: #fff; }
[data-theme="dark"] .feature-cards-block .text-muted { color: rgba(255,255,255,.55) !important; }
[data-theme="dark"] .feature-cards-block .feature-card {
    background: rgba(255,255,255,.04);
}
[data-theme="dark"] .feature-cards-block .feature-card.border {
    border-color: rgba(255,255,255,.1) !important;
}
[data-theme="dark"] .feature-cards-block .feature-card:hover {
    box-shadow: 0 8px 24px rgba(0,0,0,.3);
    background: rgba(255,255,255,.07);
}
[data-theme="dark"] .feature-cards-block .feature-card-title { color: #fff; }
[data-theme="dark"] .feature-cards-block .feature-card-desc { color: rgba(255,255,255,.6); }
[data-theme="dark"] .feature-cards-block .feature-card-icon-circle {
    background: rgba(255,255,255,.1);
    color: var(--primary, #c89d4a);
}
[data-theme="dark"] .feature-cards-block .btn-outline-primary {
    color: var(--primary, #c89d4a);
    border-color: var(--primary, #c89d4a);
}
[data-theme="dark"] .feature-cards-block .btn-outline-primary:hover {
    color: #fff;
    background: var(--primary, #c89d4a);
}

/* Feature cards inside bg-primary/bg-dark sections */
.bg-primary .feature-cards-block .feature-card-icon-circle,
.bg-dark .feature-cards-block .feature-card-icon-circle {
    background: rgba(255,255,255,.15);
    color: #fff;
}

/* ── Blog Preview Block ── */
.blog-preview-block h3 { color: #222; }
.blog-preview-block .blog-preview-card {
    transition: transform .2s, box-shadow .2s;
    border: 1px solid rgba(0,0,0,.08) !important;
}
.blog-preview-block .blog-preview-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,.08);
}
.blog-preview-block .blog-preview-title { color: #222; font-weight: 600; }
.blog-preview-block .blog-preview-summary { color: #666; }

/* Skeleton loading animation */
.blog-preview-block .blog-skeleton-card .bg-light {
    animation: blogSkeleton 1.5s ease-in-out infinite;
}
@keyframes blogSkeleton {
    0%, 100% { opacity: 0.4; }
    50% { opacity: 0.8; }
}

[data-theme="dark"] .blog-preview-block h3 { color: #fff; }
[data-theme="dark"] .blog-preview-block .text-muted { color: rgba(255,255,255,.55) !important; }
[data-theme="dark"] .blog-preview-block .blog-preview-card {
    background: #1e1e2d !important;
    border-color: #2d2d3f !important;
}
[data-theme="dark"] .blog-preview-block .blog-preview-card:hover {
    box-shadow: 0 8px 24px rgba(0,0,0,.3);
}
[data-theme="dark"] .blog-preview-block .blog-preview-title { color: #fff; }
[data-theme="dark"] .blog-preview-block .blog-preview-summary { color: rgba(255,255,255,.6); }
[data-theme="dark"] .blog-preview-block .blog-preview-card .card-img-top {
    background: rgba(200,157,74,.1) !important;
}
[data-theme="dark"] .blog-preview-block .blog-preview-card .text-primary {
    color: var(--primary, #c89d4a) !important;
}
[data-theme="dark"] .blog-preview-block .btn-outline-primary {
    color: var(--primary, #c89d4a);
    border-color: var(--primary, #c89d4a);
}
[data-theme="dark"] .blog-preview-block .btn-outline-primary:hover {
    color: #fff;
    background: var(--primary, #c89d4a);
}
[data-theme="dark"] .blog-preview-block .blog-skeleton-card .bg-light {
    background: rgba(255,255,255,.08) !important;
}
[data-theme="dark"] .blog-preview-block .blog-preview-card .bg-primary.bg-opacity-10 {
    background: rgba(200,157,74,.15) !important;
}

/* ── Section-Level Design Overrides ── */

/*
 * When a section has an explicit text alignment class (text-start / text-center / text-end),
 * override ALL child elements — including block-level .text-center defaults.
 * Uses universal selector (*) so no block can escape the override.
 */

/* Left alignment */
.page-section.text-start,
.page-section.text-start * {
    text-align: left !important;
}
.page-section.text-start .d-flex.justify-content-center {
    justify-content: flex-start !important;
}

/* Right alignment */
.page-section.text-end,
.page-section.text-end * {
    text-align: right !important;
}
.page-section.text-end .d-flex.justify-content-center {
    justify-content: flex-end !important;
}

/* Centre alignment (explicit) */
.page-section.text-center,
.page-section.text-center * {
    text-align: center !important;
}
.page-section.text-center .d-flex.justify-content-start {
    justify-content: center !important;
}

/* Exclude form inputs from alignment override — they should always be left-aligned */
.page-section.text-start input,
.page-section.text-start textarea,
.page-section.text-start select,
.page-section.text-end input,
.page-section.text-end textarea,
.page-section.text-end select,
.page-section.text-center input,
.page-section.text-center textarea,
.page-section.text-center select {
    text-align: left !important;
}

/*
 * Block-level alignment — overrides BOTH section-level and block defaults.
 * Higher specificity via .page-section .block-align-* selector.
 */
.page-section .block-align-left,
.page-section .block-align-left * {
    text-align: left !important;
}
.page-section .block-align-left .d-flex.justify-content-center {
    justify-content: flex-start !important;
}

.page-section .block-align-center,
.page-section .block-align-center * {
    text-align: center !important;
}
.page-section .block-align-center .d-flex.justify-content-start {
    justify-content: center !important;
}

.page-section .block-align-right,
.page-section .block-align-right * {
    text-align: right !important;
}
.page-section .block-align-right .d-flex.justify-content-center {
    justify-content: flex-end !important;
}

/* Exclude form inputs from block alignment override */
.page-section .block-align-left input,
.page-section .block-align-left textarea,
.page-section .block-align-left select,
.page-section .block-align-center input,
.page-section .block-align-center textarea,
.page-section .block-align-center select,
.page-section .block-align-right input,
.page-section .block-align-right textarea,
.page-section .block-align-right select {
    text-align: left !important;
}

/* Background overlay */
.page-section { position: relative; }
.page-section > .container,
.page-section > .container-fluid { position: relative; z-index: 1; }


/* ════════════════════════════════════════════════════════════════════ */
/* ── Postcode Coverage Map block ───────────────────────────────────── */
/* ════════════════════════════════════════════════════════════════════ */
.postcode-map-block h2 { color: #222; }
.postcode-map-block .lead, .postcode-map-block .text-muted { color: #666 !important; }
.postcode-map-block .pcm-search .input-group-text { background: #fff; color: #555; }
.postcode-map-block .pcm-search .form-control { background: #fff; color: #222; }
.postcode-map-block .pcm-legend { background: rgba(255,255,255,.95); color: #333; }
.postcode-map-block .card { background: #fff; }

[data-theme="dark"] .postcode-map-block h2 { color: #fff; }
[data-theme="dark"] .postcode-map-block .lead,
[data-theme="dark"] .postcode-map-block .text-muted { color: rgba(255,255,255,.7) !important; }
[data-theme="dark"] .postcode-map-block .pcm-search .input-group-text {
    background: rgba(40,40,55,.95); color: rgba(255,255,255,.7); border-color: rgba(255,255,255,.15);
}
[data-theme="dark"] .postcode-map-block .pcm-search .form-control {
    background: rgba(40,40,55,.95); color: #fff; border-color: rgba(255,255,255,.15);
}
[data-theme="dark"] .postcode-map-block .pcm-search .form-control::placeholder { color: rgba(255,255,255,.4); }
[data-theme="dark"] .postcode-map-block .pcm-legend {
    background: rgba(28,29,44,.95); color: rgba(255,255,255,.85); border: 1px solid rgba(255,255,255,.1);
}
[data-theme="dark"] .postcode-map-block .card {
    background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08);
}
[data-theme="dark"] .postcode-map-block .card .text-muted { color: rgba(255,255,255,.6) !important; }
[data-theme="dark"] .postcode-map-block h4, [data-theme="dark"] .postcode-map-block h6 { color: #fff; }
/* Bootstrap utility classes that don't auto-adapt — overrides for the JS-injected side-panel HTML */
[data-theme="dark"] .postcode-map-block .bg-light { background-color: rgba(255,255,255,.06) !important; }
[data-theme="dark"] .postcode-map-block .text-dark { color: rgba(255,255,255,.9) !important; }
[data-theme="dark"] .postcode-map-block .badge.bg-light { color: rgba(255,255,255,.9) !important; }
[data-theme="dark"] .postcode-map-block .border { border-color: rgba(255,255,255,.12) !important; }
[data-theme="dark"] .postcode-map-block .alert-info {
    background: rgba(13,202,240,.12); color: #9ee0f0; border-color: rgba(13,202,240,.25);
}
[data-theme="dark"] .postcode-map-block .alert-success {
    background: rgba(34,197,94,.12); color: #86efac; border-color: rgba(34,197,94,.25);
}
[data-theme="dark"] .postcode-map-block .alert-warning {
    background: rgba(234,179,8,.12); color: #fde68a; border-color: rgba(234,179,8,.25);
}
/* Modal already adapts via Bootstrap data-bs-theme, but force in case theme attribute missing */
[data-theme="dark"] .postcode-map-block ~ .modal .modal-content {
    background: #1c1d2c; color: rgba(255,255,255,.9);
}
[data-theme="dark"] .postcode-map-block ~ .modal .form-control,
[data-theme="dark"] .postcode-map-block ~ .modal .form-select {
    background: rgba(255,255,255,.06); color: #fff; border-color: rgba(255,255,255,.15);
}
[data-theme="dark"] .postcode-map-block ~ .modal .form-control::placeholder { color: rgba(255,255,255,.4); }
[data-theme="dark"] .postcode-map-block ~ .modal .form-label { color: rgba(255,255,255,.85); }
[data-theme="dark"] .postcode-map-block ~ .modal .alert-info {
    background: rgba(13,202,240,.12); color: #9ee0f0; border-color: rgba(13,202,240,.25);
}
[data-theme="dark"] .postcode-map-block ~ .modal .btn-close { filter: invert(1) grayscale(100%) brightness(2); }
/* List view — sidebar of all areas */
[data-theme="dark"] .postcode-map-block .list-group-item {
    background: transparent; color: rgba(255,255,255,.85); border-color: rgba(255,255,255,.08);
}
[data-theme="dark"] .postcode-map-block .list-group-item-action:hover {
    background: rgba(255,255,255,.05); color: #fff;
}
[data-theme="dark"] .postcode-map-block .input-group-text {
    background: rgba(255,255,255,.06); color: rgba(255,255,255,.7); border-color: rgba(255,255,255,.15);
}
[data-theme="dark"] .postcode-map-block .form-control {
    background: rgba(255,255,255,.06); color: #fff; border-color: rgba(255,255,255,.15);
}
[data-theme="dark"] .postcode-map-block .form-control::placeholder { color: rgba(255,255,255,.4); }
[data-theme="dark"] .postcode-map-block .bg-body-tertiary {
    background: rgba(255,255,255,.04) !important;
}
[data-theme="dark"] .postcode-map-block .border-bottom { border-color: rgba(255,255,255,.08) !important; }


/* ════════════════════════════════════════════════════════════════════ */
/* ── Postcode Claim Form block ─────────────────────────────────────── */
/* ════════════════════════════════════════════════════════════════════ */
.postcode-claim-form-block h3 { color: #222; }
.postcode-claim-form-block .text-muted { color: #666 !important; }

[data-theme="dark"] .postcode-claim-form-block h3 { color: #fff; }
[data-theme="dark"] .postcode-claim-form-block h4 { color: #fff; }
[data-theme="dark"] .postcode-claim-form-block .text-muted { color: rgba(255,255,255,.6) !important; }
[data-theme="dark"] .postcode-claim-form-block .form-label { color: rgba(255,255,255,.85); }
[data-theme="dark"] .postcode-claim-form-block .form-control,
[data-theme="dark"] .postcode-claim-form-block .form-select {
    background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.15); color: #fff;
}
[data-theme="dark"] .postcode-claim-form-block .form-control::placeholder { color: rgba(255,255,255,.4); }
[data-theme="dark"] .postcode-claim-form-block .form-control:focus,
[data-theme="dark"] .postcode-claim-form-block .form-select:focus {
    background: rgba(255,255,255,.1); color: #fff;
    border-color: rgba(200,157,74,.6);
    box-shadow: 0 0 0 .2rem rgba(200,157,74,.25);
}
[data-theme="dark"] .postcode-claim-form-block .alert-light {
    background: rgba(255,255,255,.06) !important; color: rgba(255,255,255,.85);
    border: 1px solid rgba(255,255,255,.12);
}
[data-theme="dark"] .postcode-claim-form-block .alert-info {
    background: rgba(13,202,240,.12) !important; color: #9ee0f0; border-color: rgba(13,202,240,.25);
}
/* Native <select> options aren't styleable by Bootstrap dark theme — force opaque dark bg */
[data-theme="dark"] .postcode-claim-form-block .form-select option,
[data-theme="dark"] .postcode-claim-form-block select.form-control option {
    background-color: #1c1d2c; color: #fff;
}
/* Autocomplete suggestion dropdown */
[data-theme="dark"] .postcode-claim-form-block .dropdown-menu {
    background-color: #1c1d2c; border-color: rgba(255,255,255,.12);
}
[data-theme="dark"] .postcode-claim-form-block .dropdown-item {
    color: rgba(255,255,255,.9);
}
[data-theme="dark"] .postcode-claim-form-block .dropdown-item:hover,
[data-theme="dark"] .postcode-claim-form-block .dropdown-item:focus {
    background-color: rgba(255,255,255,.06); color: #fff;
}


/* ════════════════════════════════════════════════════════════════════ */
/* ── Operator Showcase block ───────────────────────────────────────── */
/* ════════════════════════════════════════════════════════════════════ */
.operator-showcase-block h2 { color: #222; }
.operator-showcase-block .lead, .operator-showcase-block .text-muted { color: #666 !important; }
.operator-showcase-block .card { background: #fff; }

[data-theme="dark"] .operator-showcase-block h2 { color: #fff; }
[data-theme="dark"] .operator-showcase-block h5 { color: #fff; }
[data-theme="dark"] .operator-showcase-block .lead,
[data-theme="dark"] .operator-showcase-block .text-muted { color: rgba(255,255,255,.7) !important; }
[data-theme="dark"] .operator-showcase-block .card {
    background: rgba(255,255,255,.04) !important; border: 1px solid rgba(255,255,255,.08);
}
[data-theme="dark"] .operator-showcase-block .badge.bg-primary-subtle { background: rgba(13,110,253,.18) !important; }


/* ════════════════════════════════════════════════════════════════════ */
/* ── AppForm block (Page Builder wrapper around /apply/direct/*) ──── */
/* ════════════════════════════════════════════════════════════════════ */
/* Light mode baseline */
.appform-block h2 { color: #222; }
.appform-block .lead, .appform-block .text-muted { color: #666 !important; }

/* Dark mode — section background goes dark on the public site even when
   BackgroundStyle='light' is set; force readable colors for the heading +
   subtitle that sit ABOVE the form. */
[data-theme="dark"] .appform-block h2 { color: #fff; }
[data-theme="dark"] .appform-block .lead,
[data-theme="dark"] .appform-block .text-muted { color: rgba(255,255,255,.75) !important; }
[data-theme="dark"] .appform-block .lead strong,
[data-theme="dark"] .appform-block .text-muted strong { color: #fff; }


/* ════════════════════════════════════════════════════════════════════ */
/* ── Review Picker block (Page Builder wrapper around /review/direct) ─ */
/* ════════════════════════════════════════════════════════════════════ */
.reviewpicker-block h2 { color: #222; }
.reviewpicker-block .lead, .reviewpicker-block .text-muted { color: #666 !important; }

[data-theme="dark"] .reviewpicker-block h2 { color: #fff; }
[data-theme="dark"] .reviewpicker-block .lead,
[data-theme="dark"] .reviewpicker-block .text-muted { color: rgba(255,255,255,.75) !important; }
[data-theme="dark"] .reviewpicker-block .lead strong,
[data-theme="dark"] .reviewpicker-block .text-muted strong { color: #fff; }


/* ════════════════════════════════════════════════════════════════════ */
/* ── Mobile fixes ─────────────────────────────────────────────────── */
/*                                                                      */
/* This file loads AFTER public2/assets/css/style.css, so equal-         */
/* specificity rules here win. Everything below is an override of the    */
/* purchased theme - never edit style.css itself, a theme update would   */
/* silently revert it.                                                   */
/* ════════════════════════════════════════════════════════════════════ */

/* ── Drawer language picker + theme toggle (below 992px) ──────────────
   These live inside .menu-dropdown, which style.css already hides at
   >=992px. They are flat lists, NOT Bootstrap dropdowns: the drawer is a
   260px panel with overflow-x:hidden (style.css:457), so an absolutely
   positioned .dropdown-menu is clipped and reads as a dead control. */
.menu-lang-list,
.menu-theme-list { display: flex; flex-direction: column; gap: 6px; }

.menu-lang-item,
.menu-theme-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;          /* >=40px tall: a real tap target */
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 6px;
    background: #fff;
    color: #333;
    text-decoration: none;
    font-size: .9rem;
    line-height: 1.2;
    transition: background .15s, border-color .15s;
}
.menu-lang-item:hover,
.menu-theme-item:hover { background: #f5f5f5; color: #111; }

.menu-lang-item.active {
    border-color: var(--color-primary, #ff6600);
    color: var(--color-primary, #ff6600);
    font-weight: 600;
}
.menu-lang-badge {
    flex: 0 0 auto;
    min-width: 28px;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .04em;
    opacity: .75;
}
.menu-lang-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.menu-theme-item i { font-size: 18px; opacity: .7; }

[data-theme="dark"] .menu-lang-item,
[data-theme="dark"] .menu-theme-item {
    background: rgba(255,255,255,.06);
    border-color: rgba(255,255,255,.14);
    color: rgba(255,255,255,.85);
}
[data-theme="dark"] .menu-lang-item:hover,
[data-theme="dark"] .menu-theme-item:hover { background: rgba(255,255,255,.12); color: #fff; }
[data-theme="dark"] .menu-lang-item.active {
    border-color: var(--color-primary, #c89d4a);
    color: var(--color-primary, #c89d4a);
}

/* ── Touch submenus at desktop width ──────────────────────────────────
   header-mobile.js toggles .submenu-open on touch devices >=992px, where
   the theme only ever opens submenus on :hover. Mirrors the property set
   at style.css:944-954 - without it the submenu would be display:block
   but still visibility:hidden/opacity:0, i.e. invisible. */
@media (min-width: 992px) {
    header .main-menu-wrapper .main-nav li.has-submenu.submenu-open > .submenu {
        visibility: visible;
        opacity: 1;
        margin-top: 0;
        transform: translateY(0);
        -webkit-transform: translateY(0);
        border-radius: 10px;
        border: 1px solid var(--border-color);
    }
}

/* ── Hero banner padding ──────────────────────────────────────────────
   .hero-block was `position: relative` and nothing else, while
   _Block_Banner.cshtml paints a background-size:cover image straight onto
   it - so the <h1> sat flush against the top edge of the photo and the CTA
   row against the bottom. Neither .hero-block nor .hero-content exists
   anywhere in the theme CSS, so there was no padding from any source. */
.hero-block { padding: 48px 20px; }
@media (min-width: 768px) {
    .hero-block { padding: 80px 24px; }
}

/* ── Property card text on phones ─────────────────────────────────────
   Title and address are nowrap+ellipsis at every width, so on a phone card
   the visitor saw a photo, a price and almost no identifying text. Allow
   two lines below 768px. */
@media (max-width: 767.98px) {
    .property-list-block  .buy-grid-content h6.title a,
    .prop-featured-block  .buy-grid-content h6.title a,
    .prop-rent-feat-block .buy-grid-content h6.title a,
    .property-list-block  .buy-grid-content .address-text,
    .prop-featured-block  .address-text,
    .prop-rent-feat-block .address-text {
        white-space: normal;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
}

/* ── Section min-height ───────────────────────────────────────────────
   DynamicPage.cshtml emits --section-min-h instead of an inline
   min-height, so a media query can cap it without !important. A "large"
   (700px) or "fullscreen" (100vh) section is a desktop-framed choice; on a
   667px phone it turns one heading into a full screen of empty space.
   With the property unset, min() resolves to 0px - i.e. today's behaviour
   for every section that has no min-height set. */
.page-section { min-height: var(--section-min-h, auto); }
@media (max-width: 767.98px) {
    .page-section { min-height: min(var(--section-min-h, 0px), 70vh); }
}

/* ── Carousel dots tap target ─────────────────────────────────────────
   10px dots with 4px margins gave an ~18px target, and they are the only
   way to page the carousel besides the 34px arrows. Keep the 10px visual,
   grow the hit area to ~30px via content-box padding. */
.testimonials-block .testimonial-dot {
    width: 30px;
    height: 30px;
    padding: 0;
    margin: 0;
    border-radius: 0;
    background: transparent !important;
    position: relative;
}
.testimonials-block .testimonial-dot::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #ccc;
    transition: background .2s;
}
.testimonials-block .testimonial-dot.active::before { background: #555; }
[data-theme="dark"] .testimonials-block .testimonial-dot::before { background: rgba(255,255,255,.25); }
[data-theme="dark"] .testimonials-block .testimonial-dot.active::before { background: rgba(255,255,255,.7); }
