/* ==========================================================
   THE HOMEBRIDGE — DESIGN SYSTEM v2
   Major visual upgrade — Session 17

   Comprehensive redesign covering: header, footer, all pages,
   property cards, modals, animations, mobile responsive.
   Brand: trusted, student-friendly, premium UK proptech
   ========================================================== */

/* ============================
   DESIGN TOKENS
   ============================ */
:root {
    --thb-navy:     #0B1633;
    --thb-navy-90:  rgba(11,22,51,.9);
    --thb-navy-70:  rgba(11,22,51,.7);
    --thb-purple:   #6C5CE7;
    --thb-purple-d: #5a4bd4;
    --thb-purple-l: #EDEBFF;
    --thb-purple-10:rgba(108,92,231,.1);
    --thb-green:    #2FA66A;
    --thb-green-l:  #E6F9EF;
    --thb-orange:   #F47B20;
    --thb-orange-l: #FFF0E3;
    --thb-cream:    #FDF8F3;
    --thb-warm:     #FAF7F2;
    --thb-white:    #ffffff;
    --thb-ink:      #1a1a2e;
    --thb-muted:    #64748b;
    --thb-line:     rgba(0,0,0,.06);
    --thb-r:        16px;
    --thb-r-lg:     24px;
    --thb-sh:       0 8px 32px rgba(11,22,51,.06);
    --thb-sh-lg:    0 20px 60px rgba(11,22,51,.08);
    --thb-sh-xl:    0 32px 80px rgba(11,22,51,.12);
    --thb-font:     'Inter','Figtree',system-ui,-apple-system,sans-serif;
    --thb-font-h:   'Figtree','Inter',system-ui,-apple-system,sans-serif;
    --thb-ease:     cubic-bezier(.22,1,.36,1);
    --thb-glass:    rgba(255,255,255,.72);
    --thb-glass-b:  blur(20px) saturate(1.4);
}

/* ============================
   1. GLOBAL BASE
   ============================ */
body {
    font-family: var(--thb-font) !important;
    color: var(--thb-ink);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
html { scroll-behavior: smooth; }

/* Remove excessive whitespace from old template */
.gray { background: var(--thb-warm) !important; }
section.space { padding: 40px 0 !important; }
section.space.min { padding: 28px 0 !important; }

/* Universal link transitions */
a { transition: color .2s ease, opacity .2s ease; }

/* Better focus */
:focus-visible {
    outline: 2px solid var(--thb-purple);
    outline-offset: 2px;
    border-radius: 4px;
}

/* Image fallback */
img[src=""], img:not([src]) { visibility: hidden; }

/* Override template theme color everywhere */
.theme-cl { color: var(--thb-purple) !important; }
.theme-bg { background-color: var(--thb-purple) !important; }

/* Gradient text for special headings */
.thb-gradient-text {
    background: linear-gradient(135deg, var(--thb-purple), var(--thb-orange));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Section divider decoration */
.section-title h2::after {
    content: "";
    display: block;
    width: 56px;
    height: 3px;
    background: linear-gradient(90deg, var(--thb-purple), var(--thb-orange));
    margin: 14px auto 0;
    border-radius: 2px;
}

/* ============================
   2. HEADER / NAVIGATION
   ============================ */

/* Shared header base */
.header {
    transition: background .4s ease, box-shadow .4s ease, border-color .3s !important;
}

/* Transparent header (homepage) */
.header.header-transparent {
    position: fixed !important;
    top: 0; left: 0; right: 0; z-index: 1000;
    background: var(--thb-glass) !important;
    border-bottom: 1px solid rgba(108,92,231,.06);
    box-shadow: 0 4px 30px rgba(108,92,231,.06);
    -webkit-backdrop-filter: var(--thb-glass-b);
    backdrop-filter: var(--thb-glass-b);
}

/* Non-index header (inner pages) */
.header.nonIndex {
    position: sticky !important;
    top: 0; z-index: 1000;
    background: var(--thb-white) !important;
    border-bottom: 1px solid rgba(108,92,231,.06);
    box-shadow: 0 4px 30px rgba(11,22,51,.06);
}

/* Force correct logo visibility everywhere */
.header .logo-white { display: none !important; }
.header .logo-dark { display: block !important; }
.header .nav-brand img {
    max-width: 190px !important;
    height: auto;
    filter: drop-shadow(0 1px 6px rgba(11,22,51,.08));
    transition: transform .3s var(--thb-ease), filter .3s;
}
.header .nav-brand:hover img {
    transform: scale(1.03);
    filter: drop-shadow(0 2px 10px rgba(11,22,51,.14));
}

/* Nav links — all pages */
.header .nav-menu > li > a,
.header .custome-nav > li > a {
    font-family: var(--thb-font) !important;
    font-weight: 600 !important;
    font-size: .9rem !important;
    color: var(--thb-navy) !important;
    padding: 12px 16px !important;
    transition: color .25s, background .25s;
    border-radius: 10px;
    position: relative;
}
.header .nav-menu > li > a:hover,
.header .custome-nav > li > a:hover {
    color: var(--thb-purple) !important;
    background: var(--thb-purple-10);
}
/* Active underline indicator */
.header .custome-nav > li > a::after {
    content: "";
    position: absolute;
    bottom: 4px; left: 50%;
    width: 0; height: 2.5px;
    background: var(--thb-purple);
    border-radius: 2px;
    transition: width .3s var(--thb-ease), left .3s var(--thb-ease);
}
.header .custome-nav > li > a:hover::after {
    width: 60%; left: 20%;
}

/* Login button — premium pill */
.header .logIn,
.header .signIn.logIn {
    border-radius: 12px !important;
    background: linear-gradient(135deg, var(--thb-purple), var(--thb-purple-d)) !important;
    color: #fff !important;
    padding: 10px 28px !important;
    font-weight: 700 !important;
    font-size: .88rem !important;
    box-shadow: 0 6px 20px rgba(108,92,231,.28);
    transition: transform .25s var(--thb-ease), box-shadow .25s;
    border: none !important;
}
.header .logIn:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 10px 32px rgba(108,92,231,.4) !important;
}

/* Mobile nav */
@media (max-width: 991px) {
    .nav-menus-wrapper {
        background: var(--thb-white) !important;
        box-shadow: -6px 0 32px rgba(11,22,51,.12) !important;
        border-left: 1px solid var(--thb-line);
    }
    .nav-menus-wrapper .nav-menu > li > a,
    .nav-menus-wrapper .custome-nav > li > a {
        padding: 14px 20px !important;
        font-size: .95rem !important;
        border-bottom: 1px solid var(--thb-line);
        border-radius: 0 !important;
    }
    .mobile_nav .crs_yuo12 {
        border-radius: 10px;
        padding: 8px 16px !important;
    }
    .header .nav-brand img {
        max-width: 150px !important;
    }
    /* Mobile menu logo */
    .mob-logo img {
        max-width: 160px !important;
    }
}

/* User dropdown */
.userLogdrop, .userMobLogdrop {
    border-radius: var(--thb-r) !important;
    box-shadow: var(--thb-sh-lg) !important;
    border: 1px solid var(--thb-line) !important;
    overflow: hidden;
}
.userLogdrop li a,
.userMobLogdrop li a {
    padding: 12px 20px !important;
    font-weight: 600;
    transition: background .2s, color .2s;
}
.userLogdrop li a:hover,
.userMobLogdrop li a:hover {
    background: var(--thb-purple-l) !important;
    color: var(--thb-purple) !important;
}

/* ============================
   3. PAGE HERO BANNERS
   Unified hero treatment for all inner pages
   ============================ */
.about-bg,
.contactUs-section,
.properties-filter,
.works_section {
    position: relative;
    overflow: hidden;
}
/* Warm gradient overlay for text-free banners — richer */
.about-bg.bg-cover,
.contactUs-section {
    min-height: 240px !important;
    background: linear-gradient(135deg, #0B1633 0%, #1a1145 25%, #2d1b69 50%, #1a1145 75%, #0B1633 100%) !important;
    display: flex;
    align-items: center;
    justify-content: center;
}
/* Hero title inside banners */
.about-bg h1,
.contactUs-section h1 {
    font-family: var(--thb-font-h) !important;
    font-weight: 800 !important;
    font-size: clamp(2rem, 5vw, 3.2rem) !important;
    color: #fff !important;
    text-align: center;
    position: relative;
    z-index: 2;
    text-shadow: 0 2px 20px rgba(108,92,231,.3);
    letter-spacing: -.02em;
}
/* Decorative dot pattern behind banners */
.about-bg::before,
.contactUs-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle, rgba(108,92,231,.12) 1px, transparent 1px);
    background-size: 28px 28px;
    pointer-events: none;
    z-index: 1;
}
/* Glow accent behind hero text */
.about-bg::after,
.contactUs-section::after {
    content: "";
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    width: 420px; height: 420px;
    background: radial-gradient(circle, rgba(108,92,231,.18) 0%, transparent 70%);
    pointer-events: none;
    z-index: 1;
}

/* Properties filter banner — override data-overlay black ::before */
.properties-filter {
    min-height: 36vh !important;
    display: flex;
    align-items: center;
}
.properties-filter[data-overlay]::before {
    background: linear-gradient(135deg, rgba(108,92,231,.92) 0%, rgba(45,27,105,.88) 40%, rgba(11,22,51,.90) 100%) !important;
    opacity: 1 !important;
    z-index: 1 !important;
}
/* Dot pattern inside properties banner */
.properties-filter::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle, rgba(255,255,255,.04) 1px, transparent 1px);
    background-size: 24px 24px;
    pointer-events: none;
    z-index: 1;
}
.properties-filter > * { position: relative; z-index: 2 !important; }
.properties-filter .properties-title {
    font-family: var(--thb-font-h) !important;
    font-weight: 800 !important;
    font-size: clamp(2rem, 5vw, 3rem) !important;
    text-shadow: 0 2px 16px rgba(0,0,0,.2);
    color: #fff !important;
}
.properties-filter .fs-md {
    opacity: .9;
    font-size: clamp(.95rem, 1.8vw, 1.15rem);
    color: #fff !important;
}
.properties-filter .banner_caption { position: relative; z-index: 3 !important; }

/* ============================
   4. PROPERTIES SEARCH FORM
   ============================ */
.property-filter {
    background: rgba(255,255,255,.12) !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-radius: 20px !important;
    padding: 16px 14px !important;
    border: 1px solid rgba(255,255,255,.15);
}
.property-filter .form-control {
    border-radius: 12px !important;
    height: 50px;
    font-size: .9rem !important;
    font-weight: 500;
    border: 1.5px solid rgba(255,255,255,.2);
    background: rgba(255,255,255,.92) !important;
    transition: border-color .3s, box-shadow .3s, transform .2s;
}
.property-filter .form-control:focus {
    border-color: var(--thb-purple) !important;
    box-shadow: 0 0 0 4px rgba(108,92,231,.15) !important;
    transform: translateY(-1px);
}
.property-filter .search-tag {
    z-index: 2;
    color: var(--thb-purple);
}
.property-filter .btn.theme-bg {
    height: 50px;
    border-radius: 12px !important;
    font-weight: 700 !important;
    font-size: .92rem;
    letter-spacing: .02em;
    box-shadow: 0 6px 20px rgba(108,92,231,.3);
    transition: transform .25s var(--thb-ease), box-shadow .25s;
}
.property-filter .btn.theme-bg:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 32px rgba(108,92,231,.45);
}

/* ============================
   5. PROPERTY CARDS
   ============================ */

/* Value proposition boxes — premium cards */
.properties-container .wrk-pro-box {
    border-radius: var(--thb-r-lg) !important;
    border: 1.5px solid rgba(108,92,231,.06) !important;
    border-left: 4px solid var(--thb-purple) !important;
    box-shadow: 0 8px 32px rgba(11,22,51,.05) !important;
    padding: 24px 22px !important;
    background: var(--thb-white) !important;
    transition: transform .4s var(--thb-ease), box-shadow .4s var(--thb-ease), border-color .3s;
}
.properties-container .wrk-pro-box.sec {
    border-left-color: var(--thb-green) !important;
}
.properties-container .wrk-pro-box.thrd {
    border-left-color: var(--thb-orange) !important;
}
.properties-container .wrk-pro-box:hover {
    transform: translateY(-10px) !important;
    box-shadow: 0 24px 64px rgba(108,92,231,.12) !important;
}
.properties-container .wrk-pro-box h4 {
    font-family: var(--thb-font-h) !important;
    font-weight: 800 !important;
    font-size: 1.05rem;
    color: var(--thb-navy);
}
.properties-container .wrk-pro-box p {
    color: var(--thb-muted);
    font-size: .88rem;
    line-height: 1.6;
    margin-bottom: 0;
}
.properties-container .wrk-pro-box img {
    filter: drop-shadow(0 2px 8px rgba(108,92,231,.15));
}

/* Property listing cards — premium with top gradient */
.properties-section .Goodup-grid-wrap {
    background: var(--thb-white) !important;
    border-radius: var(--thb-r-lg) !important;
    border: 1.5px solid rgba(108,92,231,.06) !important;
    box-shadow: 0 10px 40px rgba(11,22,51,.06) !important;
    margin-bottom: 24px !important;
    overflow: hidden;
    transition: transform .45s var(--thb-ease), box-shadow .45s var(--thb-ease), border-color .3s;
    position: relative;
}
.properties-section .Goodup-grid-wrap::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--thb-purple), var(--thb-green), var(--thb-orange));
    opacity: 0;
    transition: opacity .35s;
    z-index: 2;
}
.properties-section .Goodup-grid-wrap:hover {
    transform: translateY(-10px) !important;
    box-shadow: 0 28px 72px rgba(108,92,231,.14) !important;
    border-color: rgba(108,92,231,.18) !important;
}
.properties-section .Goodup-grid-wrap:hover::before {
    opacity: 1;
}

/* Image area */
.properties-section .Goodup-grid-thumb {
    border-radius: var(--thb-r) !important;
    overflow: hidden;
    position: relative;
}
.properties-section .Goodup-grid-thumb img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform .6s var(--thb-ease);
}
.properties-section .Goodup-grid-wrap:hover .Goodup-grid-thumb img {
    transform: scale(1.05);
}

/* Badges */
.properties-section .Goodup-featured-tag {
    font-family: var(--thb-font) !important;
    font-weight: 700 !important;
    font-size: .72rem;
    padding: 6px 14px;
    border-radius: 10px;
    letter-spacing: .02em;
}
.properties-section .Goodup-featured-tag.approved {
    background: linear-gradient(135deg, var(--thb-green), #1d9456) !important;
    color: #fff !important;
    box-shadow: 0 4px 12px rgba(47,166,106,.3);
}
.properties-section .Goodup-featured-tag:not(.approved) {
    background: var(--thb-purple) !important;
    color: #fff !important;
}
.Goodup-featured-tag.ag-prop {
    background: var(--thb-orange) !important;
    color: #fff !important;
}

/* Card body content */
.properties-section .Goodup-caption {
    padding: 16px 12px 8px;
}
.properties-section .Goodup-caption h4 a {
    font-family: var(--thb-font-h) !important;
    font-weight: 700 !important;
    font-size: 1.08rem !important;
    color: var(--thb-navy) !important;
    transition: color .2s;
    line-height: 1.35;
}
.properties-section .Goodup-caption h4 a:hover {
    color: var(--thb-purple) !important;
}

/* Price display */
.properties-section .theme-cl,
.properties-section [class*="flaticon"] {
    color: var(--thb-purple) !important;
}

/* Action buttons */
.properties-section .btn-view {
    border-radius: 12px !important;
    font-weight: 600 !important;
    font-size: .85rem;
    padding: 10px 18px;
    transition: transform .25s var(--thb-ease), box-shadow .25s;
}
.properties-section .btn-view:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(0,0,0,.1);
}
.properties-section .btn-edit,
.properties-section .interestedIn {
    border-radius: 12px !important;
    font-weight: 600 !important;
    font-size: .85rem;
    padding: 10px 18px;
    transition: transform .25s var(--thb-ease), box-shadow .25s;
}
.properties-section .interestedIn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(0,0,0,.1);
}

/* Wishlist heart */
.properties-section .hearticon,
.hearticon {
    width: 38px; height: 38px;
    display: grid !important;
    place-items: center;
    background: rgba(255,255,255,.92) !important;
    border-radius: 50% !important;
    box-shadow: 0 3px 12px rgba(0,0,0,.12);
    transition: transform .3s var(--thb-ease), background .2s;
    z-index: 3;
    font-size: .9rem;
}
.hearticon:hover {
    transform: scale(1.2) !important;
    background: #fff !important;
    box-shadow: 0 6px 20px rgba(0,0,0,.15);
}

/* Pagination */
.pagination.propertites_page {
    display: flex;
    justify-content: center;
    gap: 8px;
    padding: 32px 0 12px;
    flex-wrap: wrap;
}
.pagination.propertites_page a,
.pagination.propertites_page span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px; height: 42px;
    padding: 0 14px;
    border-radius: 12px;
    border: 1.5px solid var(--thb-line);
    background: var(--thb-white);
    color: var(--thb-navy);
    font-family: var(--thb-font);
    font-weight: 600;
    font-size: .88rem;
    text-decoration: none;
    transition: all .25s var(--thb-ease);
}
.pagination.propertites_page a:hover {
    background: var(--thb-purple-l);
    border-color: var(--thb-purple);
    color: var(--thb-purple);
    transform: translateY(-2px);
}
.pagination.propertites_page a.active {
    background: var(--thb-purple) !important;
    color: #fff !important;
    border-color: var(--thb-purple) !important;
    box-shadow: 0 4px 14px rgba(108,92,231,.3);
}

/* Properties listing area bg */
.properties-section {
    background: linear-gradient(180deg, #faf8ff 0%, #fff 30%, #faf8ff 100%);
}

/* Empty state */
.not_found_msg {
    padding: 80px 20px 60px;
    text-align: center;
}
.not_found_msg img {
    opacity: .6;
    margin-bottom: 24px;
    max-height: 140px;
}
.not_found_msg h4 {
    font-family: var(--thb-font-h) !important;
    color: var(--thb-navy) !important;
    font-weight: 700 !important;
    font-size: 1.15rem;
    max-width: 480px;
    margin: 0 auto 8px;
    line-height: 1.5;
}

/* ============================
   6. PROPERTY DETAILS PAGE
   ============================ */
.featured-slick { position: relative; }
.Goodup-ops-bhri {
    background: linear-gradient(0deg, rgba(11,22,51,.88) 0%, rgba(11,22,51,.5) 50%, transparent 100%) !important;
}
.Goodup-ops-bhri h1 {
    font-family: var(--thb-font-h) !important;
    font-weight: 800 !important;
}
/* Sidebar enquiry card */
.jb-apply-form {
    border-radius: var(--thb-r-lg) !important;
    border: 1px solid var(--thb-line) !important;
    box-shadow: var(--thb-sh) !important;
    background: var(--thb-white) !important;
    transition: box-shadow .35s var(--thb-ease);
}
.jb-apply-form:hover {
    box-shadow: 0 12px 40px rgba(108,92,231,.1) !important;
}
/* Property detail section cards */
.jbd-01 {
    transition: transform .3s var(--thb-ease), box-shadow .3s;
}
.bg-white.rounded.mb-4:hover .jbd-01 {
    box-shadow: 0 4px 20px rgba(11,22,51,.04);
}
.jbd-details h5.ft-bold {
    font-family: var(--thb-font-h) !important;
    font-weight: 800 !important;
    color: var(--thb-navy) !important;
    font-size: 1.1rem !important;
}
/* Property detail key facts icons */
.jbd-details .flaticon-rent-1,
.jbd-details .flaticon-money,
.jbd-details .flaticon-bed-1,
.jbd-details .flaticon-bath,
.jbd-details .flaticon-calendar-1,
.jbd-details .flaticon-user,
.jbd-details .flaticon-house,
.jbd-details .flaticon-home-1,
.jbd-details .flaticon-apartment,
.jbd-details .flaticon-bed,
.jbd-details .flaticon-balcony {
    transition: transform .3s var(--thb-ease);
}
.jbd-details .col-lg-4:hover i[class*="flaticon"] {
    transform: scale(1.08);
}
/* Amenities icons */
.jbd-details i[class*="flaticon"].theme-am {
    transition: transform .3s var(--thb-ease);
}
.jbd-details .col-lg-4:hover i.theme-am {
    transform: scale(1.08);
}
/* Verified badge on details */
.Goodup-featured-tag.approved {
    background: var(--thb-green) !important;
    color: #fff !important;
    font-weight: 700 !important;
    border-radius: 6px !important;
    font-size: .78rem !important;
}
/* Property detail sections */
.Goodup-about-caption h4,
.detail-title {
    font-family: var(--thb-font-h) !important;
    font-weight: 800 !important;
    color: var(--thb-navy) !important;
}

/* ============================
   7. ABOUT PAGE
   ============================ */
.about-section {
    padding-top: 36px !important;
    padding-bottom: 36px !important;
    background: linear-gradient(180deg, #faf8ff 0%, #fff 40%, #faf8ff 100%);
}
.about-section .section-title h2 {
    font-family: var(--thb-font-h) !important;
    font-weight: 800 !important;
    font-size: clamp(1.8rem, 4vw, 2.4rem);
    color: var(--thb-navy) !important;
}
.about-section .about-text {
    padding: 22px 28px;
    margin-bottom: 18px !important;
    border-left: 4px solid var(--thb-purple);
    border-radius: 0 var(--thb-r-lg) var(--thb-r-lg) 0;
    background: linear-gradient(100deg, rgba(108,92,231,.06), rgba(108,92,231,.01) 50%, transparent) !important;
    transition: transform .35s var(--thb-ease), box-shadow .35s, border-color .3s;
    box-shadow: 0 4px 20px rgba(11,22,51,.04);
}
.about-section .about-text:hover {
    transform: translateX(10px);
    box-shadow: var(--thb-sh-lg);
    border-left-color: var(--thb-orange);
}
.about-section .about-text i.fa-star {
    color: var(--thb-purple) !important;
}
.about-section .about-text h4 {
    font-family: var(--thb-font-h) !important;
    font-weight: 700 !important;
    color: var(--thb-navy) !important;
    font-size: 1.05rem;
}
.about-section .about-text p {
    color: var(--thb-muted);
    font-size: .92rem;
    line-height: 1.65;
}
/* Vision/Mission */
.thb-about-content .vision,
.thb-about-content .mission {
    padding: 28px;
    border-radius: var(--thb-r-lg);
    background: linear-gradient(135deg, rgba(108,92,231,.06), rgba(47,166,106,.04));
    border: 1px solid rgba(108,92,231,.1);
    margin-bottom: 20px;
    transition: transform .35s var(--thb-ease), box-shadow .35s;
    box-shadow: 0 4px 20px rgba(108,92,231,.06);
}
.thb-about-content .vision:hover,
.thb-about-content .mission:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 48px rgba(108,92,231,.12);
}
.thb-about-content .vision h3::before {
    content: "👁️ ";
}
.thb-about-content .mission h3::before {
    content: "🎯 ";
}
.thb-about-content h3 {
    font-family: var(--thb-font-h) !important;
    font-weight: 800 !important;
    color: var(--thb-navy) !important;
    font-size: 1.15rem;
}
/* About slider images */
.property-slider .item {
    border-radius: var(--thb-r-lg);
    overflow: hidden;
    min-height: 320px;
}
/* About review cards */
.about_us_slider .stories-st {
    font-family: var(--thb-font-h) !important;
    font-weight: 800 !important;
    color: var(--thb-navy) !important;
}
.about_us_slider .customer-review {
    border-radius: var(--thb-r-lg) !important;
    border: 1px solid rgba(108,92,231,.06) !important;
    background: var(--thb-white) !important;
    box-shadow: 0 8px 32px rgba(11,22,51,.06) !important;
    transition: transform .4s var(--thb-ease), box-shadow .4s, border-color .3s;
    padding: 24px !important;
}
.about_us_slider .customer-review:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 56px rgba(108,92,231,.12) !important;
    border-color: rgba(108,92,231,.15) !important;
}
.about_us_slider .customer-pic img {
    width: 60px; height: 60px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    border: 2px solid var(--thb-purple-l);
}
.about_us_slider .review-client i.fa-star {
    color: #f59e0b !important;
}

/* ============================
   8. CONTACT PAGE
   ============================ */
.details_contact h2 {
    font-family: var(--thb-font-h) !important;
    font-weight: 800 !important;
    color: var(--thb-navy) !important;
    font-size: 1.5rem;
}
.details_contact h3 {
    font-family: var(--thb-font-h) !important;
    font-weight: 700 !important;
    color: var(--thb-navy) !important;
}
.details_contact p {
    color: var(--thb-muted);
    line-height: 1.65;
}
.contact_us_sec h4 {
    font-size: 1rem !important;
    color: var(--thb-purple) !important;
}
/* Contact form card */
section > .container > .row.shadow {
    border-radius: var(--thb-r-lg) !important;
    overflow: hidden;
    border: 1.5px solid rgba(108,92,231,.08) !important;
    box-shadow: 0 24px 72px rgba(11,22,51,.08) !important;
}
/* Contact page body bg */
.contactUs-section ~ section {
    background: linear-gradient(180deg, #faf8ff 0%, #fff 100%);
    padding-top: 48px !important;
    padding-bottom: 48px !important;
}
/* Contact right panel — make it more vibrant */
section > .container > .row.shadow > .col-lg-6:last-child > .gray {
    background: linear-gradient(145deg, var(--thb-navy) 0%, #1a1145 60%, #2d1b69 100%) !important;
    min-height: 100%;
}
section > .container > .row.shadow .details_contact h2 {
    color: #fff !important;
}
section > .container > .row.shadow .details_contact h3 {
    color: rgba(255,255,255,.9) !important;
}
section > .container > .row.shadow .details_contact p {
    color: rgba(255,255,255,.65) !important;
}
section > .container > .row.shadow .contact_us_sec h4 {
    color: var(--thb-purple-l) !important;
}
section > .container > .row.shadow .contact_us_sec p {
    color: rgba(255,255,255,.7) !important;
}
section > .container > .row.shadow .contact_us_sec i {
    color: var(--thb-purple-l) !important;
}

/* ============================
   9. FAQ PAGE
   ============================ */
.faq-container .wrk-pro-box {
    border-radius: var(--thb-r-lg) !important;
    border: 1.5px solid rgba(108,92,231,.06) !important;
    box-shadow: 0 8px 32px rgba(11,22,51,.05) !important;
    padding: 24px !important;
    transition: transform .4s var(--thb-ease), box-shadow .4s, border-color .3s;
    position: relative;
    overflow: hidden;
}
.faq-container .wrk-pro-box::before {
    content: "";
    position: absolute;
    top: 0; left: 0; width: 100%; height: 3px;
    background: linear-gradient(90deg, var(--thb-purple), var(--thb-orange));
    opacity: 0;
    transition: opacity .3s;
}
.faq-container .wrk-pro-box:hover {
    transform: translateY(-10px);
    box-shadow: 0 24px 64px rgba(108,92,231,.14) !important;
    border-color: rgba(108,92,231,.15) !important;
}
.faq-container .wrk-pro-box:hover::before {
    opacity: 1;
}
.faq-container .wrk-pro-box h4 {
    font-family: var(--thb-font-h) !important;
    font-weight: 700 !important;
    color: var(--thb-navy) !important;
}
.faq-container .wrk-pro-box img {
    filter: drop-shadow(0 2px 6px rgba(108,92,231,.15));
}

/* ============================
   10. HOW IT WORKS
   ============================ */
.how-work {
    background: linear-gradient(180deg, #faf8ff 0%, #fff 30%, #faf8ff 100%);
}
.how-work .section-title h2 {
    font-family: var(--thb-font-h) !important;
    font-weight: 800 !important;
    color: var(--thb-navy) !important;
}
.how-work .section {
    background: var(--thb-white);
    border-radius: var(--thb-r-lg);
    padding: 32px 36px;
    margin-bottom: 28px;
    border: 1.5px solid rgba(108,92,231,.06);
    box-shadow: 0 10px 36px rgba(11,22,51,.05);
    transition: transform .35s var(--thb-ease), box-shadow .35s, border-color .3s;
    position: relative;
    overflow: hidden;
}
.how-work .section::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--thb-purple), var(--thb-green));
    opacity: 0;
    transition: opacity .35s;
}
.how-work .section:hover {
    transform: translateY(-6px);
    box-shadow: 0 24px 64px rgba(108,92,231,.12);
    border-color: rgba(108,92,231,.12);
}
.how-work .section:hover::before {
    opacity: 1;
}
.how-work .section h3 {
    font-family: var(--thb-font-h) !important;
    font-weight: 800 !important;
    color: var(--thb-navy) !important;
    font-size: 1.4rem;
    margin-bottom: 20px;
    padding-bottom: 14px;
    border-bottom: 3px solid var(--thb-purple);
    display: inline-block;
}
.how-work .section .sub_heading_line {
    font-family: var(--thb-font-h) !important;
    font-weight: 700 !important;
    color: var(--thb-purple) !important;
    font-size: 1rem;
    margin-bottom: 8px;
}
.how-work .section ul {
    padding-left: 20px;
    margin-bottom: 20px;
}
.how-work .section ul li {
    color: var(--thb-muted);
    font-size: .92rem;
    line-height: 1.7;
    margin-bottom: 6px;
}
/* Works banner overlay — override data-overlay */
.works_section[data-overlay]::before {
    background: linear-gradient(135deg, rgba(108,92,231,.92), rgba(11,22,51,.85)) !important;
    opacity: 1 !important;
    z-index: 1 !important;
}
.works_section > * { position: relative; z-index: 2 !important; }

/* ============================
   11. SECTION TITLES — GLOBAL
   ============================ */
.section-title h2 {
    font-family: var(--thb-font-h) !important;
    font-weight: 800 !important;
    color: var(--thb-navy) !important;
    font-size: clamp(1.6rem, 3.5vw, 2.2rem);
}

/* ============================
   12. FOOTER
   ============================ */

/* Newsletter CTA */
.subscribe_section {
    background: linear-gradient(135deg, var(--thb-purple) 0%, #4834d4 30%, var(--thb-navy) 70%, #070e22 100%) !important;
    position: relative;
    overflow: hidden;
    padding: 60px 0 !important;
}
.subscribe_section::before {
    content: "";
    position: absolute; inset: 0;
    background: radial-gradient(ellipse 60% 80% at 20% 20%, rgba(255,255,255,.08), transparent),
                radial-gradient(ellipse 50% 70% at 80% 80%, rgba(244,123,32,.08), transparent);
    pointer-events: none;
}
.subscribe_section::after {
    content: "";
    position: absolute;
    top: -50%; right: -10%;
    width: 500px; height: 500px;
    background: radial-gradient(circle, rgba(108,92,231,.12) 0%, transparent 60%);
    pointer-events: none;
}
.subscribe_section h6,
.subscribe_section h2 {
    position: relative; z-index: 1;
    font-family: var(--thb-font-h) !important;
}
.subscribe_section h2 {
    font-weight: 800 !important;
    font-size: clamp(1.4rem, 3vw, 2rem) !important;
}
.subscribe_section .form-control {
    height: 54px;
    border-radius: var(--thb-r) !important;
    border: none;
    font-size: .92rem;
    font-weight: 500;
}
.subscribe_section .btn.theme-bg {
    height: 54px !important;
    border-radius: var(--thb-r) !important;
    font-weight: 700 !important;
    font-size: .9rem;
    letter-spacing: .02em;
}

/* Footer body — dark premium */
.light-footer.skin-light-footer {
    background: var(--thb-navy) !important;
    border-top: none !important;
}
.footer-middle {
    padding: 56px 0 !important;
}
.footer_widget h6 {
    font-family: var(--thb-font-h) !important;
    font-weight: 800 !important;
    color: #fff !important;
}
.footer_widget h4.widget_title {
    font-family: var(--thb-font-h) !important;
    font-weight: 800 !important;
    font-size: .82rem !important;
    color: rgba(255,255,255,.95) !important;
    text-transform: uppercase;
    letter-spacing: .12em;
    margin-bottom: 18px !important;
    padding-bottom: 10px;
    border-bottom: 2px solid rgba(108,92,231,.3);
}
.footer_widget .address {
    color: rgba(255,255,255,.6) !important;
    font-size: .88rem;
    line-height: 1.7;
}
.footer_widget p {
    color: rgba(255,255,255,.6) !important;
}
.footer-menu li {
    margin-bottom: 10px !important;
}
.footer-menu li a {
    color: rgba(255,255,255,.6) !important;
    font-size: .88rem !important;
    font-weight: 500;
    transition: color .25s, padding-left .3s, opacity .25s !important;
}
.footer-menu li a:hover {
    color: var(--thb-purple-l) !important;
    padding-left: 8px !important;
    opacity: 1;
}
.footer_widget .read-more {
    font-weight: 600;
    font-size: .88rem;
}

/* Payment cards */
.payments {
    padding: 22px 0;
    border-top: 1px solid rgba(108,92,231,.1);
    border-bottom: 1px solid rgba(108,92,231,.1);
    background: rgba(11,22,51,.5) !important;
}
.payments p {
    font-size: .78rem;
    color: rgba(255,255,255,.5) !important;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    margin-bottom: 8px !important;
}
.payments img {
    height: 30px !important;
    opacity: .5;
    transition: opacity .3s, transform .3s;
    filter: grayscale(.5) brightness(1.5);
}
.payments img:hover {
    opacity: .9;
    transform: scale(1.1);
    filter: grayscale(0) brightness(1);
}

/* Footer bottom */
.footer-bottom {
    background: #070e22 !important;
    padding: 18px 0;
    border-top: 1px solid rgba(108,92,231,.12);
}
.footer-bottom p {
    font-size: .8rem;
    color: rgba(255,255,255,.45) !important;
    margin: 0 !important;
}
.footer-bottom a {
    color: rgba(255,255,255,.6) !important;
}
.footer-bottom a.footer-title {
    font-weight: 600;
    color: var(--thb-purple-l) !important;
}
.footer-bottom a:hover {
    color: #fff !important;
}

/* Social media icons */
.footer_widget .list-inline-item img {
    transition: transform .3s var(--thb-ease), opacity .3s, filter .3s;
    opacity: .6;
    filter: brightness(2) grayscale(.5);
}
.footer_widget .list-inline-item img:hover {
    transform: scale(1.2) translateY(-3px);
    opacity: 1;
    filter: brightness(1) grayscale(0);
}

/* ============================
   13. FORMS & MODALS
   ============================ */

/* All form controls */
.form-control {
    font-family: var(--thb-font) !important;
    border-radius: 10px !important;
    border: 1.5px solid #e2e8f0;
    font-size: .9rem;
    transition: border-color .3s, box-shadow .3s !important;
}
.form-control:focus {
    border-color: var(--thb-purple) !important;
    box-shadow: 0 0 0 4px rgba(108,92,231,.1) !important;
}

/* Modal dialogs — premium glass effect */
.login-pop-form .modal-content {
    border-radius: var(--thb-r-lg) !important;
    border: 1.5px solid rgba(108,92,231,.1) !important;
    box-shadow: 0 40px 100px rgba(11,22,51,.2) !important;
    overflow: hidden;
    background: var(--thb-white) !important;
}
.login-pop-form .modal-headers {
    padding: 16px 20px 0;
    background: linear-gradient(180deg, rgba(108,92,231,.04), transparent);
}
.login-pop-form .modal-body h4 {
    font-family: var(--thb-font-h) !important;
    font-weight: 800 !important;
    color: var(--thb-navy);
}
/* Modal backdrop */
.login-pop-form.modal {
    backdrop-filter: blur(4px);
}
.login-pop-form .form-control {
    height: 48px;
}
.login-pop-form textarea.form-control {
    height: auto;
}
.login-pop-form .btn.theme-bg {
    height: 50px;
    border-radius: var(--thb-r) !important;
    font-weight: 700 !important;
    font-size: .95rem;
}

/* Role selection tabs */
.role-selection .label-check {
    border-radius: 12px !important;
    padding: 10px 22px !important;
    font-weight: 600 !important;
    font-size: .88rem;
    transition: all .3s var(--thb-ease) !important;
    border: 2px solid var(--thb-line);
}
.role-selection .custom-check:checked + .label-check {
    border-color: var(--thb-purple);
    background: var(--thb-purple-l);
    color: var(--thb-purple) !important;
    box-shadow: 0 4px 14px rgba(108,92,231,.15);
}

/* Status modal */
#statusModal .modal-content {
    border-radius: var(--thb-r-lg) !important;
}

/* Required asterisk */
.required-asterisk {
    color: #e74c3c;
    font-weight: 700;
}

/* Buttons global */
.btn.theme-bg {
    background: linear-gradient(135deg, var(--thb-purple), var(--thb-purple-d)) !important;
    border-color: var(--thb-purple) !important;
    border-radius: var(--thb-r) !important;
    font-family: var(--thb-font) !important;
    font-weight: 700 !important;
    box-shadow: 0 6px 20px rgba(108,92,231,.25);
    transition: transform .3s var(--thb-ease), box-shadow .3s, background .3s !important;
    letter-spacing: .02em;
    position: relative;
    overflow: hidden;
}
.btn.theme-bg::before {
    content: "";
    position: absolute; inset: 0;
    background: linear-gradient(135deg, rgba(255,255,255,.15), transparent 50%);
    pointer-events: none;
}
.btn.theme-bg:hover {
    background: linear-gradient(135deg, var(--thb-purple-d), #4e3ec4) !important;
    transform: translateY(-3px) !important;
    box-shadow: 0 12px 36px rgba(108,92,231,.4) !important;
}

/* ============================
   14. SCROLL REVEAL ANIMATION
   ============================ */
/* These animate on intersection via vanilla JS */
.thb-reveal {
    opacity: 0;
    transform: translateY(36px);
    transition: opacity .8s var(--thb-ease), transform .8s var(--thb-ease);
}
.thb-reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}
/* Stagger children */
.thb-stagger > * {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity .6s var(--thb-ease), transform .6s var(--thb-ease);
}
.thb-stagger.is-visible > *:nth-child(1) { transition-delay: 0s; }
.thb-stagger.is-visible > *:nth-child(2) { transition-delay: .1s; }
.thb-stagger.is-visible > *:nth-child(3) { transition-delay: .2s; }
.thb-stagger.is-visible > *:nth-child(4) { transition-delay: .3s; }
.thb-stagger.is-visible > *:nth-child(5) { transition-delay: .4s; }
.thb-stagger.is-visible > *:nth-child(6) { transition-delay: .5s; }
.thb-stagger.is-visible > * {
    opacity: 1;
    transform: translateY(0);
}

/* Fade-in-up for individual elements */
.thb-fade-up {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity .7s var(--thb-ease), transform .7s var(--thb-ease);
}
.thb-fade-up.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* ============================
   15. CARD HOVER MICRO-INTERACTIONS
   ============================ */
/* Generic lift card */
.thb-lift {
    transition: transform .4s var(--thb-ease), box-shadow .4s var(--thb-ease);
}
.thb-lift:hover {
    transform: translateY(-6px);
    box-shadow: var(--thb-sh-lg);
}

/* Animated arrow for CTAs */
.thb-arrow-anim {
    display: inline-block;
    transition: transform .3s var(--thb-ease);
}
a:hover .thb-arrow-anim,
button:hover .thb-arrow-anim {
    animation: thbArrowPulse .6s var(--thb-ease) infinite;
}
@keyframes thbArrowPulse {
    0%, 100% { transform: translateX(0); }
    50% { transform: translateX(6px); }
}

/* ============================
   16. LOADER
   ============================ */
.thbloader {
    background: rgba(255,255,255,.8) !important;
    backdrop-filter: blur(12px);
}
.thbloader .thbloader-container {
    border-color: var(--thb-purple) !important;
}

/* ============================
   17. TERMS / LEGAL PAGES
   ============================ */
.terms-content h4,
.modal-body h4.fw-medium {
    font-family: var(--thb-font-h) !important;
    font-weight: 700 !important;
    color: var(--thb-navy) !important;
    margin-top: 16px;
}

/* ============================
   18. MOBILE RESPONSIVE
   ============================ */
@media (max-width: 991px) {
    section.space { padding: 36px 0 !important; }

    .properties-filter { min-height: 32vh !important; }
    .property-filter .col-lg-3,
    .property-filter .col-lg-2 {
        margin-bottom: 8px;
    }
    .properties-section .Goodup-grid-wrap {
        border-radius: var(--thb-r) !important;
    }
    .properties-section .Goodup-grid-upper {
        max-height: 300px;
        overflow: hidden;
    }

    .footer-middle .footer_widget {
        margin-bottom: 28px;
    }

    .about-section .col-xl-6:first-child {
        margin-bottom: 24px;
    }
}

@media (max-width: 767px) {
    .properties-section .dsd-single-lst-footer > div {
        margin-bottom: 8px;
    }
    .about-section {
        padding-top: 24px !important;
    }
    .details_contact h2 {
        font-size: 1.3rem;
    }
    .subscribe_section { padding: 40px 0 !important; }
}

@media (max-width: 575px) {
    section.space { padding: 28px 0 !important; }

    .properties-filter {
        min-height: 26vh !important;
        padding: 16px 0;
    }
    .properties-filter .properties-title {
        font-size: 1.5rem !important;
    }
    .property-filter {
        border-radius: var(--thb-r) !important;
        padding: 12px !important;
    }

    .properties-section .Goodup-grid-wrap {
        margin-bottom: 16px !important;
    }
    .properties-section .Goodup-caption {
        padding: 12px 8px 4px;
    }
    .properties-container .wrk-pro-box {
        margin-bottom: 12px !important;
    }

    .login-pop-form .modal-content {
        border-radius: var(--thb-r) !important;
        margin: 8px;
    }
    .login-pop-form .modal-body {
        padding: 20px 16px !important;
    }

    .about-bg.bg-cover,
    .contactUs-section {
        min-height: 140px !important;
    }

    .footer-middle { padding: 32px 0 !important; }
    .subscribe_section h2 { font-size: 1.2rem !important; }

    /* Prevent horizontal scroll */
    body, html { overflow-x: hidden; }
}

/* ============================
   19. BACK-TO-TOP BUTTON
   ============================ */
.thb-back-to-top {
    position: fixed;
    bottom: 32px; right: 32px;
    width: 48px; height: 48px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--thb-purple), var(--thb-purple-d));
    color: #fff;
    border: none;
    font-size: 1rem;
    cursor: pointer;
    z-index: 999;
    opacity: 0;
    transform: translateY(20px) scale(.8);
    transition: opacity .4s var(--thb-ease), transform .4s var(--thb-ease), box-shadow .3s;
    box-shadow: 0 6px 24px rgba(108,92,231,.3);
    pointer-events: none;
}
.thb-back-to-top.is-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: auto;
}
.thb-back-to-top:hover {
    box-shadow: 0 10px 36px rgba(108,92,231,.5);
    transform: translateY(-3px) scale(1.05);
}

/* ============================
   20. STATIC PAGES (For Students, Safety, Legal, etc.)
   ============================ */

/* Static page container */
.thb-static-page {
    padding: 48px 0 60px;
    background: linear-gradient(180deg, #faf8ff 0%, #fff 30%, #faf8ff 100%);
}

/* Intro block */
.thb-static-intro {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 48px;
}
.thb-static-intro h2 {
    font-family: var(--thb-font-h) !important;
    font-weight: 800;
    font-size: clamp(1.8rem, 4vw, 2.4rem);
    color: var(--thb-navy);
    margin-bottom: 16px;
}
.thb-static-intro h2::after {
    content: "";
    display: block;
    width: 56px;
    height: 3px;
    background: linear-gradient(90deg, var(--thb-purple), var(--thb-orange));
    margin: 14px auto 0;
    border-radius: 2px;
}
.thb-static-intro p {
    color: var(--thb-muted);
    font-size: 1rem;
    line-height: 1.7;
}

/* Info card grid */
.thb-card-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-bottom: 48px;
}
.thb-card-grid--2col {
    grid-template-columns: repeat(2, 1fr);
}
.thb-info-card {
    padding: 28px 24px;
    border-radius: var(--thb-r-lg);
    background: var(--thb-white);
    border: 1.5px solid rgba(108,92,231,.06);
    box-shadow: 0 8px 32px rgba(11,22,51,.05);
    transition: transform .4s var(--thb-ease), box-shadow .4s, border-color .3s;
    position: relative;
    overflow: hidden;
}
.thb-info-card::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    border-radius: 3px 3px 0 0;
    opacity: 0;
    transition: opacity .35s;
}
.thb-info-card--purple::before { background: linear-gradient(90deg, var(--thb-purple), #a78bfa); }
.thb-info-card--green::before { background: linear-gradient(90deg, var(--thb-green), #34d399); }
.thb-info-card--orange::before { background: linear-gradient(90deg, var(--thb-orange), #fbbf24); }
.thb-info-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 52px rgba(108,92,231,.12);
    border-color: rgba(108,92,231,.15);
}
.thb-info-card:hover::before { opacity: 1; }
.thb-info-card__icon {
    width: 48px; height: 48px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    font-size: 1.1rem;
    margin-bottom: 16px;
    transition: transform .3s var(--thb-ease);
}
.thb-info-card:hover .thb-info-card__icon { transform: scale(1.1) rotate(-4deg); }
.thb-info-card--purple .thb-info-card__icon { background: var(--thb-purple-l); color: var(--thb-purple); }
.thb-info-card--green .thb-info-card__icon { background: var(--thb-green-l); color: var(--thb-green); }
.thb-info-card--orange .thb-info-card__icon { background: var(--thb-orange-l); color: var(--thb-orange); }
.thb-info-card h3 {
    font-family: var(--thb-font-h) !important;
    font-weight: 700;
    font-size: 1.05rem;
    color: var(--thb-navy);
    margin-bottom: 8px;
}
.thb-info-card p {
    color: var(--thb-muted);
    font-size: .88rem;
    line-height: 1.65;
    margin-bottom: 0;
}

/* Journey steps */
.thb-journey-section {
    margin-bottom: 48px;
}
.thb-journey-section h2 {
    font-family: var(--thb-font-h) !important;
    font-weight: 800;
    font-size: clamp(1.5rem, 3.5vw, 2rem);
    color: var(--thb-navy);
    margin-bottom: 28px;
    text-align: center;
}
.thb-journey-section h2::after {
    content: "";
    display: block;
    width: 48px;
    height: 3px;
    background: linear-gradient(90deg, var(--thb-purple), var(--thb-orange));
    margin: 12px auto 0;
    border-radius: 2px;
}
.thb-journey-steps {
    max-width: 640px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 0;
    position: relative;
}
.thb-journey-steps::before {
    content: "";
    position: absolute;
    left: 23px; top: 48px; bottom: 48px;
    width: 2px;
    background: linear-gradient(180deg, var(--thb-purple), var(--thb-green), var(--thb-orange));
    border-radius: 2px;
}
.thb-journey-step {
    display: flex;
    gap: 20px;
    padding: 20px 0;
    position: relative;
}
.thb-journey-step__num {
    width: 48px; height: 48px; min-width: 48px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--thb-purple), var(--thb-purple-d));
    color: #fff;
    font-family: var(--thb-font-h);
    font-weight: 800;
    font-size: 1.1rem;
    display: grid;
    place-items: center;
    box-shadow: 0 6px 20px rgba(108,92,231,.3);
    position: relative;
    z-index: 1;
}
.thb-journey-step h4 {
    font-family: var(--thb-font-h) !important;
    font-weight: 700;
    font-size: 1rem;
    color: var(--thb-navy);
    margin-bottom: 4px;
}
.thb-journey-step p {
    color: var(--thb-muted);
    font-size: .88rem;
    line-height: 1.6;
    margin-bottom: 0;
}

/* CTA block */
.thb-static-cta {
    text-align: center;
    padding: 40px;
    border-radius: var(--thb-r-lg);
    background: linear-gradient(135deg, var(--thb-navy) 0%, #1a1145 50%, #2d1b69 100%);
    color: #fff;
    position: relative;
    overflow: hidden;
}
.thb-static-cta::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle, rgba(108,92,231,.08) 1px, transparent 1px);
    background-size: 24px 24px;
    pointer-events: none;
}
.thb-static-cta h3 {
    font-family: var(--thb-font-h) !important;
    font-weight: 800;
    font-size: clamp(1.4rem, 3vw, 1.8rem);
    margin-bottom: 8px;
    position: relative;
}
.thb-static-cta p {
    color: rgba(255,255,255,.7);
    font-size: .95rem;
    margin-bottom: 20px;
    position: relative;
}
.thb-static-cta__btns {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: wrap;
    position: relative;
}
.thb-btn-outline {
    border: 2px solid rgba(255,255,255,.3) !important;
    color: #fff !important;
    border-radius: var(--thb-r) !important;
    font-weight: 700 !important;
    padding: 10px 28px !important;
    transition: background .3s, border-color .3s, transform .25s var(--thb-ease) !important;
    background: transparent !important;
}
.thb-btn-outline:hover {
    background: rgba(255,255,255,.1) !important;
    border-color: rgba(255,255,255,.5) !important;
    transform: translateY(-2px) !important;
    color: #fff !important;
}

/* Legal / policy pages */
.thb-legal-page .thb-legal-content {
    max-width: 760px;
    margin: 0 auto;
}
.thb-legal-updated {
    color: var(--thb-muted);
    font-size: .82rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    margin-bottom: 28px;
    padding-bottom: 16px;
    border-bottom: 2px solid var(--thb-line);
}
.thb-legal-content h3 {
    font-family: var(--thb-font-h) !important;
    font-weight: 700;
    font-size: 1.15rem;
    color: var(--thb-navy);
    margin-top: 32px;
    margin-bottom: 12px;
}
.thb-legal-content h3:first-of-type {
    margin-top: 0;
}
.thb-legal-content p {
    color: var(--thb-muted);
    font-size: .92rem;
    line-height: 1.7;
    margin-bottom: 12px;
}
.thb-legal-content ul {
    color: var(--thb-muted);
    font-size: .92rem;
    line-height: 1.7;
    padding-left: 20px;
    margin-bottom: 16px;
}
.thb-legal-content ul li {
    margin-bottom: 6px;
}
.thb-legal-content a {
    color: var(--thb-purple);
    font-weight: 600;
}
.thb-legal-content a:hover {
    color: var(--thb-purple-d);
    text-decoration: underline;
}
.thb-legal-content code {
    background: var(--thb-purple-l);
    padding: 2px 8px;
    border-radius: 6px;
    font-size: .85rem;
    color: var(--thb-purple);
}

/* ============================
   21. MOVING TO UK CHECKLIST (smart feature)
   ============================ */
.thb-checklist-widget {
    background: var(--thb-white);
    border: 1.5px solid rgba(108,92,231,.08);
    border-radius: var(--thb-r-lg);
    padding: 28px;
    box-shadow: var(--thb-sh);
    max-width: 480px;
    margin: 0 auto;
}
.thb-checklist-widget h3 {
    font-family: var(--thb-font-h) !important;
    font-weight: 800;
    font-size: 1.15rem;
    color: var(--thb-navy);
    margin-bottom: 4px;
}
.thb-checklist-widget .thb-cl-sub {
    color: var(--thb-muted);
    font-size: .82rem;
    margin-bottom: 16px;
}
.thb-cl-progress {
    height: 6px;
    border-radius: 3px;
    background: #e2e8f0;
    margin-bottom: 20px;
    overflow: hidden;
}
.thb-cl-progress__bar {
    height: 100%;
    border-radius: 3px;
    background: linear-gradient(90deg, var(--thb-purple), var(--thb-green));
    transition: width .5s var(--thb-ease);
}
.thb-cl-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid var(--thb-line);
    cursor: pointer;
    transition: background .2s;
    border-radius: 8px;
    padding-left: 8px;
    padding-right: 8px;
}
.thb-cl-item:last-child { border-bottom: none; }
.thb-cl-item:hover { background: rgba(108,92,231,.03); }
.thb-cl-item__check {
    width: 22px; height: 22px; min-width: 22px;
    border-radius: 6px;
    border: 2px solid #cbd5e1;
    display: grid;
    place-items: center;
    transition: background .3s, border-color .3s, transform .2s;
    margin-top: 1px;
}
.thb-cl-item__check i {
    font-size: .6rem;
    color: transparent;
    transition: color .3s;
}
.thb-cl-item.is-done .thb-cl-item__check {
    background: var(--thb-green);
    border-color: var(--thb-green);
    transform: scale(1.05);
}
.thb-cl-item.is-done .thb-cl-item__check i { color: #fff; }
.thb-cl-item.is-done .thb-cl-item__label { text-decoration: line-through; color: var(--thb-muted); }
.thb-cl-item__label {
    font-size: .88rem;
    font-weight: 600;
    color: var(--thb-navy);
    line-height: 1.4;
}
.thb-cl-item__desc {
    font-size: .78rem;
    color: var(--thb-muted);
    line-height: 1.4;
    margin-top: 2px;
}

/* Static page responsive */
@media (max-width: 991px) {
    .thb-card-grid { grid-template-columns: repeat(2, 1fr); }
    .thb-card-grid--2col { grid-template-columns: 1fr; }
}
@media (max-width: 575px) {
    .thb-card-grid { grid-template-columns: 1fr; }
    .thb-static-page { padding: 32px 0 40px; }
    .thb-static-cta { padding: 28px 20px; }
    .thb-static-cta__btns { flex-direction: column; }
    .thb-static-cta__btns .btn { width: 100%; }
    .thb-journey-steps::before { left: 23px; }
}

/* ============================
   22. IMPROVED LOGIN/SIGNUP MODALS
   ============================ */

/* Modal trust copy */
.thb-modal-trust {
    display: flex;
    justify-content: center;
    gap: 16px;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--thb-line);
}
.thb-modal-trust span {
    font-size: .72rem;
    color: var(--thb-muted);
    display: flex;
    align-items: center;
    gap: 4px;
}
.thb-modal-trust i {
    color: var(--thb-green);
    font-size: .65rem;
}

/* Role selection improvements */
.role-selection {
    gap: 8px !important;
}
.role-selection .label-check {
    flex: 1;
    text-align: center;
    min-width: 100px;
}

/* ============================
   24. CONTACT PAGE IMPROVEMENTS
   ============================ */

/* Info panel (right column) */
.thb-contact-info-panel {
    background: linear-gradient(135deg, var(--thb-navy) 0%, #1a1145 50%, #2d1b69 100%);
    color: #fff;
    padding: 36px 32px;
    height: 100%;
    min-height: 440px;
    position: relative;
    overflow: hidden;
}
.thb-contact-info-panel::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle, rgba(108,92,231,.08) 1px, transparent 1px);
    background-size: 20px 20px;
    pointer-events: none;
}
.thb-contact-info-panel h3 {
    font-family: var(--thb-font-h) !important;
    font-weight: 800;
    font-size: 1.3rem;
    margin-bottom: 8px;
    position: relative;
}
.thb-contact-info-panel > p {
    color: rgba(255,255,255,.65);
    font-size: .88rem;
    line-height: 1.6;
    margin-bottom: 28px;
    position: relative;
}

/* Contact method items */
.thb-contact-method {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 20px;
    position: relative;
}
.thb-contact-method__icon {
    width: 40px; height: 40px; min-width: 40px;
    border-radius: 10px;
    background: rgba(255,255,255,.1);
    display: grid;
    place-items: center;
    font-size: .85rem;
    color: rgba(255,255,255,.85);
}
.thb-contact-method__label {
    display: block;
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: rgba(255,255,255,.5);
    font-weight: 600;
    margin-bottom: 1px;
}
.thb-contact-method__value {
    display: block;
    font-weight: 700;
    font-size: .92rem;
}

/* Social links in contact panel */
.thb-contact-social {
    margin-top: 28px;
    padding-top: 20px;
    border-top: 1px solid rgba(255,255,255,.12);
    position: relative;
}
.thb-contact-social h4 {
    font-family: var(--thb-font-h) !important;
    font-weight: 700;
    font-size: .9rem;
    margin-bottom: 12px;
}
.thb-contact-social__links {
    display: flex;
    gap: 12px;
}
.thb-contact-social__links a {
    width: 38px; height: 38px;
    border-radius: 10px;
    background: rgba(255,255,255,.08);
    display: grid;
    place-items: center;
    transition: background .3s, transform .25s var(--thb-ease);
}
.thb-contact-social__links a:hover {
    background: rgba(255,255,255,.18);
    transform: translateY(-2px);
}
.thb-contact-social__links img {
    filter: brightness(0) invert(1);
    opacity: .85;
}

/* Trust strip below form */
.thb-contact-trust {
    display: flex;
    justify-content: center;
    gap: 28px;
    margin-top: 28px;
    flex-wrap: wrap;
}
.thb-contact-trust__item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: .8rem;
    font-weight: 600;
    color: var(--thb-muted);
}
.thb-contact-trust__item i {
    color: var(--thb-green);
    font-size: .75rem;
}

/* Contact page responsive */
@media (max-width: 767px) {
    .thb-contact-info-panel {
        min-height: auto;
        padding: 28px 20px;
        border-radius: 0 0 var(--thb-r-lg) var(--thb-r-lg);
    }
    .thb-contact-trust { gap: 16px; }
}

/* ============================
   25. FAQ CATEGORY CARDS
   ============================ */

.thb-card-grid--4col {
    grid-template-columns: repeat(4, 1fr);
}
.thb-faq-cat-card {
    display: block;
    text-align: center;
    padding: 24px 16px;
    border-radius: var(--thb-r-lg);
    background: var(--thb-white);
    border: 1.5px solid rgba(11,22,51,.06);
    box-shadow: 0 6px 24px rgba(11,22,51,.05);
    transition: transform .4s var(--thb-ease), box-shadow .4s, border-color .3s;
    text-decoration: none !important;
    position: relative;
    overflow: hidden;
}
.thb-faq-cat-card::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    border-radius: 3px 3px 0 0;
    opacity: 0;
    transition: opacity .35s;
}
.thb-faq-cat-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 40px rgba(108,92,231,.12);
    border-color: rgba(108,92,231,.12);
    text-decoration: none !important;
}
.thb-faq-cat-card:hover::before { opacity: 1; }
.thb-faq-cat-card__icon {
    width: 52px; height: 52px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    font-size: 1.15rem;
    margin: 0 auto 14px;
    transition: transform .3s var(--thb-ease);
}
.thb-faq-cat-card:hover .thb-faq-cat-card__icon { transform: scale(1.1) rotate(-4deg); }
.thb-faq-cat-card__icon--purple { background: var(--thb-purple-l); color: var(--thb-purple); }
.thb-faq-cat-card__icon--green { background: var(--thb-green-l); color: var(--thb-green); }
.thb-faq-cat-card__icon--orange { background: var(--thb-orange-l); color: var(--thb-orange); }
.thb-faq-cat-card__icon--navy { background: rgba(11,22,51,.06); color: var(--thb-navy); }
.thb-faq-cat-card::before { background: linear-gradient(90deg, var(--thb-purple), var(--thb-orange)); }

.thb-faq-cat-card h4 {
    font-family: var(--thb-font-h) !important;
    font-weight: 700;
    font-size: .95rem;
    color: var(--thb-navy);
    margin-bottom: 6px;
}
.thb-faq-cat-card p {
    color: var(--thb-muted);
    font-size: .78rem;
    line-height: 1.5;
    margin-bottom: 0;
}

@media (max-width: 991px) {
    .thb-card-grid--4col { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 575px) {
    .thb-card-grid--4col { grid-template-columns: 1fr; }
}

/* ============================
   26. HOW IT WORKS TABS & TIMELINE
   ============================ */

/* Tab navigation */
.thb-works-tabs {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-bottom: 40px;
    flex-wrap: wrap;
}
.thb-works-tab {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 28px;
    border-radius: 60px;
    border: 2px solid var(--thb-line);
    background: var(--thb-white);
    color: var(--thb-muted);
    font-family: var(--thb-font-h);
    font-weight: 700;
    font-size: .9rem;
    cursor: pointer;
    transition: all .3s var(--thb-ease);
}
.thb-works-tab i { font-size: .85rem; }
.thb-works-tab:hover {
    border-color: var(--thb-purple);
    color: var(--thb-purple);
    background: var(--thb-purple-l);
}
.thb-works-tab.active {
    background: linear-gradient(135deg, var(--thb-purple), var(--thb-purple-d));
    color: #fff;
    border-color: var(--thb-purple);
    box-shadow: 0 6px 20px rgba(108,92,231,.3);
}

/* Tab panels */
.thb-works-panel {
    display: none;
}
.thb-works-panel.active {
    display: block;
}

/* Timeline */
.thb-works-timeline {
    max-width: 680px;
    margin: 0 auto;
    position: relative;
    padding-left: 36px;
}
.thb-works-timeline::before {
    content: "";
    position: absolute;
    left: 23px; top: 40px; bottom: 40px;
    width: 2px;
    background: linear-gradient(180deg, var(--thb-purple), var(--thb-green), var(--thb-orange));
    border-radius: 2px;
}

/* Step card */
.thb-works-step {
    display: flex;
    gap: 20px;
    padding: 18px 0;
    position: relative;
}
.thb-works-step__num {
    width: 48px; height: 48px; min-width: 48px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--thb-purple), var(--thb-purple-d));
    color: #fff;
    font-family: var(--thb-font-h);
    font-weight: 800;
    font-size: 1.1rem;
    display: grid;
    place-items: center;
    box-shadow: 0 6px 20px rgba(108,92,231,.25);
    position: relative;
    z-index: 1;
    transition: transform .3s var(--thb-ease);
}
.thb-works-step:hover .thb-works-step__num {
    transform: scale(1.08);
}
.thb-works-step__content {
    background: var(--thb-white);
    border: 1.5px solid rgba(11,22,51,.05);
    border-radius: var(--thb-r-lg);
    padding: 20px 24px;
    box-shadow: 0 4px 16px rgba(11,22,51,.04);
    flex: 1;
    transition: transform .3s var(--thb-ease), box-shadow .3s;
}
.thb-works-step:hover .thb-works-step__content {
    transform: translateX(4px);
    box-shadow: 0 8px 28px rgba(108,92,231,.08);
}
.thb-works-step__content h4 {
    font-family: var(--thb-font-h) !important;
    font-weight: 700;
    font-size: 1rem;
    color: var(--thb-navy);
    margin-bottom: 6px;
}
.thb-works-step__content p {
    color: var(--thb-muted);
    font-size: .86rem;
    line-height: 1.65;
    margin-bottom: 0;
}

@media (max-width: 575px) {
    .thb-works-tabs { gap: 6px; }
    .thb-works-tab { padding: 10px 18px; font-size: .82rem; }
    .thb-works-tab span { display: none; }
    .thb-works-tab i { font-size: 1rem; }
    .thb-works-timeline { padding-left: 24px; }
    .thb-works-timeline::before { left: 16px; }
    .thb-works-step__num { width: 36px; height: 36px; min-width: 36px; font-size: .9rem; }
    .thb-works-step__content { padding: 14px 16px; }
    .thb-works-step { gap: 14px; }
}

/* ============================
   28. PAGE LOAD ANIMATION
   ============================ */
@keyframes thbPageFadeIn {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}
body:not([data-thb-home]) main,
body:not([data-thb-home]) .thb-static-page,
body:not([data-thb-home]) .about-section,
body:not([data-thb-home]) .properties-section {
    animation: thbPageFadeIn .6s var(--thb-ease) both;
}

/* ============================
   29. SMOOTH SCROLLBAR (webkit)
   ============================ */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #f0f0f5; }
::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, var(--thb-purple), var(--thb-purple-d));
    border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover { background: var(--thb-purple-d); }

/* ============================
   30. SELECTION HIGHLIGHT
   ============================ */
::selection {
    background: rgba(108, 92, 231, .15);
    color: var(--thb-navy);
}

/* ============================
   31. GRADIENT BORDER ACCENT — reusable
   ============================ */
.thb-gradient-border {
    position: relative;
}
.thb-gradient-border::after {
    content: "";
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--thb-purple), var(--thb-green), var(--thb-orange));
    border-radius: 0 0 3px 3px;
}

/* ============================
   32. BREADCRUMB STYLING
   ============================ */
.breadcrumb {
    background: transparent !important;
    padding: 12px 0 !important;
    margin: 0 !important;
}
.breadcrumb a {
    color: var(--thb-purple) !important;
    font-weight: 600;
    font-size: .85rem;
}
.breadcrumb .active {
    color: var(--thb-muted) !important;
    font-size: .85rem;
}

/* ============================
   33. ENHANCED FORM LABELS
   ============================ */
label, .form-label {
    font-family: var(--thb-font) !important;
    font-weight: 600;
    font-size: .85rem;
    color: var(--thb-navy);
    margin-bottom: 6px;
}

/* ============================
   34. TOAST / NOTIFICATION STYLING
   ============================ */
.toast-success { background: var(--thb-green) !important; }
.toast-error { background: #e74c3c !important; }
.toast-info { background: var(--thb-purple) !important; }

/* ============================
   35. LINK UNDERLINE ANIMATION
   ============================ */
.thb-link-anim {
    position: relative;
    text-decoration: none !important;
}
.thb-link-anim::after {
    content: "";
    position: absolute;
    bottom: -2px; left: 0;
    width: 0; height: 2px;
    background: var(--thb-purple);
    border-radius: 1px;
    transition: width .3s var(--thb-ease);
}
.thb-link-anim:hover::after { width: 100%; }

/* ============================
   36. SKELETON LOADING PULSE
   ============================ */
@keyframes thbSkeleton {
    0% { background-position: -200% center; }
    100% { background-position: 200% center; }
}
.thb-skeleton {
    background: linear-gradient(90deg, #eee 25%, #f5f5f5 50%, #eee 75%);
    background-size: 200% 100%;
    animation: thbSkeleton 1.5s linear infinite;
    border-radius: 8px;
}

/* ============================
   37. IMAGE HOVER ZOOM — reusable
   ============================ */
.thb-img-zoom {
    overflow: hidden;
    border-radius: var(--thb-r);
}
.thb-img-zoom img {
    transition: transform .6s var(--thb-ease);
}
.thb-img-zoom:hover img {
    transform: scale(1.06);
}

/* ============================
   38. FLOATING LABEL INPUT
   ============================ */
.thb-float-label {
    position: relative;
}
.thb-float-label input:focus + label,
.thb-float-label input:not(:placeholder-shown) + label {
    transform: translateY(-24px) scale(.82);
    color: var(--thb-purple);
}

/* ============================
   39. PREMIUM BADGE STYLES
   ============================ */
.thb-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 14px;
    border-radius: 50px;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.thb-badge--purple { background: var(--thb-purple-l); color: var(--thb-purple); }
.thb-badge--green { background: var(--thb-green-l); color: var(--thb-green); }
.thb-badge--orange { background: var(--thb-orange-l); color: var(--thb-orange); }

/* ============================
   40. FOOTER ENHANCEMENTS — hover glow
   ============================ */
.light-footer .footer_widget h4.widget_title::after {
    content: "";
    display: block;
    width: 32px;
    height: 2px;
    background: linear-gradient(90deg, var(--thb-purple), var(--thb-orange));
    margin-top: 8px;
    border-radius: 1px;
    transition: width .3s var(--thb-ease);
}
.light-footer .footer_widget:hover h4.widget_title::after {
    width: 56px;
}

/* ============================
   41. PROPERTIES EMPTY STATE — premium card
   ============================ */
.thb-empty-state {
    padding: 32px 0 48px;
}
.thb-empty-card {
    max-width: 620px;
    margin: 0 auto;
    padding: clamp(32px, 5vw, 48px);
    border-radius: 24px;
    background: #fff;
    border: 1.5px solid rgba(108, 92, 231, .08);
    box-shadow: 0 12px 48px rgba(11, 22, 51, .06);
    text-align: center;
}
.thb-empty-icon {
    display: grid;
    place-items: center;
    width: 72px;
    height: 72px;
    margin: 0 auto 20px;
    border-radius: 20px;
    background: linear-gradient(135deg, var(--thb-purple-l), rgba(108, 92, 231, .15));
    color: var(--thb-purple);
    font-size: 1.6rem;
}
.thb-empty-card h3 {
    margin: 0 0 10px;
    font-family: var(--thb-font-h);
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--thb-navy);
}
.thb-empty-card > p {
    margin: 0 0 24px;
    color: var(--thb-muted);
    font-size: .92rem;
    line-height: 1.6;
    max-width: 440px;
    margin-left: auto;
    margin-right: auto;
}
.thb-empty-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    margin-bottom: 24px;
}
.thb-empty-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 11px 22px;
    border-radius: 12px;
    font-family: var(--thb-font);
    font-size: .85rem;
    font-weight: 700;
    text-decoration: none !important;
    transition: transform .25s var(--thb-ease), box-shadow .25s, background .25s, color .25s;
    cursor: pointer;
}
.thb-empty-btn--primary {
    background: linear-gradient(135deg, var(--thb-purple), var(--thb-orange));
    color: #fff !important;
    box-shadow: 0 4px 16px rgba(108, 92, 231, .3);
}
.thb-empty-btn--primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 28px rgba(108, 92, 231, .4);
}
.thb-empty-btn--outline {
    background: transparent;
    color: var(--thb-purple) !important;
    border: 1.5px solid rgba(108, 92, 231, .2);
}
.thb-empty-btn--outline:hover {
    background: var(--thb-purple);
    color: #fff !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(108, 92, 231, .3);
}
.thb-empty-cities {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    align-items: center;
    padding-top: 16px;
    border-top: 1px solid rgba(108, 92, 231, .06);
}
.thb-empty-cities-label {
    font-size: .72rem;
    font-weight: 700;
    color: var(--thb-muted);
    text-transform: uppercase;
    letter-spacing: .06em;
}
.thb-city-chip {
    display: inline-block;
    padding: 5px 14px;
    border-radius: 50px;
    background: var(--thb-purple-l);
    color: var(--thb-purple) !important;
    font-size: .76rem;
    font-weight: 700;
    text-decoration: none !important;
    transition: background .25s, color .25s, transform .25s;
}
.thb-city-chip:hover {
    background: var(--thb-purple);
    color: #fff !important;
    transform: translateY(-2px);
}
@media (max-width: 575px) {
    .thb-empty-card { padding: 24px 18px; border-radius: 20px; }
    .thb-empty-card h3 { font-size: 1.15rem; }
    .thb-empty-actions { flex-direction: column; }
    .thb-empty-btn { width: 100%; justify-content: center; }
}

/* ============================
   42. PROPERTIES SEARCH FILTER — polish
   ============================ */
.properties-filter .property-filter {
    background: rgba(255, 255, 255, .12) !important;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1.5px solid rgba(255, 255, 255, .15);
    border-radius: 20px !important;
    padding: 16px !important;
    box-shadow: 0 12px 48px rgba(0, 0, 0, .2);
}
.properties-filter .property-filter .form-control {
    border-radius: 12px !important;
    border: 1.5px solid rgba(108, 92, 231, .08);
    font-weight: 600;
    transition: border-color .3s, box-shadow .3s;
}
.properties-filter .property-filter .form-control:focus {
    border-color: var(--thb-purple);
    box-shadow: 0 0 0 3px rgba(108, 92, 231, .12);
}
.properties-filter .btn.theme-bg {
    border-radius: 12px !important;
    font-weight: 700;
    box-shadow: 0 4px 16px rgba(108, 92, 231, .3);
    transition: transform .25s, box-shadow .25s;
}
.properties-filter .btn.theme-bg:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 28px rgba(108, 92, 231, .4);
}
.properties-title {
    font-family: var(--thb-font-h) !important;
    font-size: clamp(2rem, 5vw, 3.2rem) !important;
    font-weight: 800 !important;
    color: #fff !important;
    text-shadow: 0 2px 24px rgba(0, 0, 0, .3);
}
.properties-filter .fs-md {
    color: rgba(255, 255, 255, .8) !important;
    font-size: 1rem !important;
    font-weight: 500;
}

/* ============================
   43. COOKIE BANNER — brand styled
   ============================ */
.cc-window {
    background: var(--thb-navy, #0B1633) !important;
    color: var(--thb-cream, #FFF8EF) !important;
    border-radius: 20px !important;
    border: 1.5px solid rgba(108, 92, 231, .2) !important;
    box-shadow: 0 20px 60px rgba(0, 0, 0, .3) !important;
    padding: 20px 28px !important;
    font-family: var(--thb-font, 'Inter', system-ui, sans-serif) !important;
    max-width: 460px !important;
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
}
.cc-window .cc-message {
    color: rgba(255, 248, 239, .85) !important;
    font-size: .88rem !important;
    line-height: 1.55 !important;
    font-weight: 500 !important;
}
.cc-window .cc-link {
    color: var(--thb-orange, #F47B20) !important;
    font-weight: 700 !important;
    text-decoration: underline !important;
    opacity: .9;
}
.cc-window .cc-link:hover {
    opacity: 1;
    color: #ffa347 !important;
}
.cc-window .cc-btn {
    border-radius: 12px !important;
    font-family: var(--thb-font, 'Inter', system-ui, sans-serif) !important;
    font-weight: 700 !important;
    font-size: .85rem !important;
    padding: 10px 24px !important;
    min-height: 42px !important;
    transition: transform .25s, box-shadow .25s !important;
    border: none !important;
}
.cc-window .cc-btn.cc-allow,
.cc-window .cc-btn.cc-dismiss {
    background: linear-gradient(135deg, var(--thb-purple, #6C5CE7), var(--thb-orange, #F47B20)) !important;
    color: #fff !important;
    box-shadow: 0 4px 16px rgba(108, 92, 231, .4) !important;
}
.cc-window .cc-btn.cc-allow:hover,
.cc-window .cc-btn.cc-dismiss:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 28px rgba(108, 92, 231, .5) !important;
}
.cc-window .cc-btn.cc-deny {
    background: rgba(255, 255, 255, .08) !important;
    color: rgba(255, 248, 239, .7) !important;
    border: 1.5px solid rgba(255, 255, 255, .12) !important;
}
.cc-window .cc-btn.cc-deny:hover {
    background: rgba(255, 255, 255, .15) !important;
    color: #fff !important;
}
@media (max-width: 575px) {
    .cc-window {
        max-width: calc(100vw - 32px) !important;
        padding: 16px 20px !important;
        border-radius: 16px !important;
        margin: 8px !important;
    }
    .cc-window .cc-message { font-size: .82rem !important; }
    .cc-window .cc-btn { width: 100% !important; text-align: center !important; }
}

/* ============================
   27. REDUCED MOTION (always keep last)
   ============================ */
/* ============================
   45. SHOWCASE PROPERTY BADGE
   ============================ */
.thb-showcase-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 5;
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 5px 12px;
    border-radius: 8px;
    background: linear-gradient(135deg, #F47B20, #e8a435);
    color: #fff;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    box-shadow: 0 3px 12px rgba(244, 123, 32, .35);
}

/* ============================
   46. PROPERTY NO-IMAGE PLACEHOLDER
   ============================ */
.thb-no-image-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 220px;
    background: linear-gradient(135deg, #f3eeff 0%, #e8e4ff 40%, #f8f6ff 100%);
    border-radius: 14px;
    color: var(--thb-purple);
}
.thb-no-image-placeholder i {
    font-size: 2.4rem;
    opacity: .4;
}
.thb-no-image-placeholder span {
    font-size: .82rem;
    font-weight: 700;
    opacity: .5;
    letter-spacing: .03em;
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
    .thb-reveal, .thb-fade-up, .thb-stagger > * {
        opacity: 1 !important;
        transform: none !important;
    }
    .properties-section .Goodup-grid-thumb img {
        transition: none !important;
    }
}
