/* NoBroker public website redesign — presentation only, no backend behavior. */
:root {
    --nb-ink: #10233f;
    --nb-ink-soft: #52627a;
    --nb-brand: #b59a5b;
    --nb-brand-dark: #92783e;
    --nb-brand-pale: #f7f2e6;
    --nb-navy: #0d203b;
    --nb-surface: #ffffff;
    --nb-canvas: #f5f7fb;
    --nb-line: #e3e9f1;
    --nb-success: #15966a;
    --nb-danger: #dc3545;
    --nb-radius-sm: 14px;
    --nb-radius: 22px;
    --nb-radius-lg: 34px;
    --nb-shadow-sm: 0 10px 30px rgba(16, 35, 63, .07);
    --nb-shadow: 0 22px 55px rgba(16, 35, 63, .10);
    --nb-ease: cubic-bezier(.2, .8, .2, 1);
}

html { scroll-behavior: smooth; }
html[dir="rtl"] body,
html[lang="ar"] body { font-family: "Cairo", sans-serif !important; }
html[dir="ltr"] body { font-family: "Manrope", sans-serif !important; }

body {
    margin: 0;
    color: var(--nb-ink);
    background:
        radial-gradient(circle at 8% 2%, rgba(181,154,91,.12), transparent 24rem),
        linear-gradient(180deg, #fbfcfe 0, var(--nb-canvas) 42rem, #f7f8fb 100%);
    font-size: 15px;
    line-height: 1.75;
    -webkit-font-smoothing: antialiased;
}

body::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    opacity: .28;
    background-image: radial-gradient(rgba(16,35,63,.11) .6px, transparent .6px);
    background-size: 22px 22px;
    mask-image: linear-gradient(to bottom, #000, transparent 38%);
    z-index: -1;
}

::selection { color: #fff; background: var(--nb-brand-dark); }
a { color: var(--nb-ink); text-decoration: none; transition: .22s var(--nb-ease); }
a:hover { color: var(--nb-brand-dark); }
img { max-width: 100%; }
h1,h2,h3,h4,h5,h6 { color: var(--nb-ink); font-weight: 800; letter-spacing: -.025em; }

.page-container { min-height: 100vh; }
.container { width: min(100% - 32px, 1320px); max-width: 1320px; }

/* Navigation */
.site-nav-wrap {
    position: sticky;
    top: 14px;
    z-index: 1050;
    margin-top: 14px;
    padding: 0 !important;
}
.site-navbar {
    min-height: 86px;
    padding: 10px 14px !important;
    border: 1px solid rgba(218,225,235,.88);
    border-radius: 25px;
    background: rgba(255,255,255,.88) !important;
    box-shadow: 0 18px 50px rgba(16,35,63,.11);
    backdrop-filter: blur(18px) saturate(145%);
}
.site-navbar__brand { gap: 12px; margin-inline-end: 22px; }
.site-navbar__logo {
    width: 60px; height: 60px; display: grid; place-items: center;
    overflow: hidden; border: 1px solid var(--nb-line); border-radius: 19px;
    background: #fff; box-shadow: var(--nb-shadow-sm);
}
.site-navbar__logo img { width: 52px !important; height: 52px; object-fit: contain; }
.site-navbar__brand-copy { display: flex; flex-direction: column; line-height: 1.4; }
.site-navbar__brand-copy strong { color: var(--nb-ink); font-size: 14px; font-weight: 900; }
.site-navbar__brand-copy span { color: #7b8799; font-size: 10px; font-weight: 600; }
.site-navbar .navbar-nav { align-items: center; gap: 3px; }
.site-navbar .nav-link {
    min-height: 44px; display: inline-flex; align-items: center; justify-content: center;
    gap: 7px; padding: 9px 13px !important; color: #314158 !important;
    border-radius: 13px; font-size: 13px; font-weight: 750;
}
.site-navbar .nav-link:hover { background: #f3f5f8; color: var(--nb-ink) !important; }
.site-navbar .nav-link.active { color: var(--nb-brand-dark) !important; background: var(--nb-brand-pale); }
.site-navbar__user { border: 1px solid var(--nb-line); background: #fafbfd; }
.site-navbar__lang { border: 1px solid var(--nb-line); margin-inline: 5px; }
.site-navbar__cta,.site-navbar__cta-mobile {
    border: 0 !important; border-radius: 14px !important; background: var(--nb-brand) !important;
    box-shadow: 0 9px 24px rgba(146,120,62,.24); font-weight: 800;
}
.site-navbar__cta { min-height: 46px; align-items: center; white-space: nowrap; }
.site-navbar__menu {
    min-width: 235px; padding: 9px; margin-top: 9px !important;
    border: 1px solid var(--nb-line); border-radius: 18px;
    box-shadow: var(--nb-shadow); background: rgba(255,255,255,.98);
}
.site-navbar__menu .dropdown-item { padding: 10px 13px; border-radius: 11px; color: #33445b; font-size: 13px; font-weight: 650; }
.site-navbar__menu .dropdown-item:hover { color: var(--nb-brand-dark); background: var(--nb-brand-pale); transform: translateX(-2px); }
.navbar-toggler { width: 48px; height: 48px; padding: 9px; border: 1px solid var(--nb-line) !important; border-radius: 14px !important; box-shadow: none !important; }

/* Shared page header */
.faq-header {
    width: min(100% - 32px, 1320px); margin: 34px auto 0 !important; padding: 38px 42px !important;
    position: relative; overflow: hidden; border: 1px solid rgba(255,255,255,.12);
    border-radius: var(--nb-radius-lg); color: #fff;
    background: linear-gradient(125deg, #0d203b 0%, #172f52 68%, #273f60 100%) !important;
    box-shadow: var(--nb-shadow);
}
.faq-header::after { content:""; position:absolute; width:240px; height:240px; inset-inline-end:-60px; top:-100px; border:45px solid rgba(181,154,91,.16); border-radius:50%; }
.faq-header .faq-title,.faq-header h1 { margin: 0 0 8px; color: #fff !important; font-size: clamp(28px,4vw,48px); font-weight: 900; }
.faq-header li,.faq-header a { color: rgba(255,255,255,.72) !important; list-style: none; font-size: 13px; }

/* Hero and home */
.home-hero { border-radius: 40px !important; padding: clamp(32px,5vw,70px) !important; background: linear-gradient(130deg,#0b1e38,#17345c) !important; box-shadow: 0 35px 80px rgba(10,29,54,.22) !important; }
.home-hero::after { content:""; position:absolute; width:440px; height:440px; inset-inline-end:-170px; top:-210px; border:80px solid rgba(181,154,91,.13); border-radius:50%; }
.home-hero__title { max-width: 850px; letter-spacing: -.045em; }
.home-hero__text { font-size: clamp(15px,1.4vw,18px); }
.home-hero__stat { border-radius: 18px !important; backdrop-filter: blur(8px); }
.category_web { padding-block: 24px 48px !important; }
.categories {
    height: 100%; padding: 16px !important; border: 1px solid var(--nb-line) !important;
    border-radius: 28px !important; background: rgba(255,255,255,.91) !important;
    box-shadow: var(--nb-shadow-sm) !important;
}
.cat-head { border: 0 !important; background: var(--nb-brand-pale) !important; box-shadow: none !important; }
.cat-box > a,.sub-cat-box > .sub-cat-text {
    min-height: 64px; border-color: var(--nb-line) !important; border-radius: 16px !important;
    background: #fff !important; color: var(--nb-ink) !important; font-weight: 750;
}
.cat-box > a:hover,.sub-cat-box > .sub-cat-text:hover { border-color: rgba(181,154,91,.55) !important; background: var(--nb-brand-pale) !important; transform: translateY(-2px); box-shadow: var(--nb-shadow-sm); }
.sub-cat-box > .sub-cat-text {
    min-height: auto !important;
    padding: 0 8px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    line-height: 1.5 !important;
}
.sub-cat-box .btn-group { align-items: center; gap: 8px; margin-top: 9px !important; }
.sub-cat-box .btn-group > .btn {
    min-height: 40px !important;
    height: 40px;
    margin: 0 !important;
    padding: 7px 14px !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1.2;
    white-space: nowrap;
    border-radius: 12px !important;
}
.sup_category_page .sub-element .position-relative.overflow-hidden,
.sup_category_page .sub-element .position-relative[class*="col-"],
.sub-element > .row > .position-relative.overflow-hidden {
    height: auto !important;
    min-height: 126px !important;
    overflow: visible !important;
    padding-top: 4px;
    padding-bottom: 10px;
}
.sup_category_page .sub-cat-box,
.sub-element > .row .sub-cat-box {
    width: 100% !important;
    height: auto !important;
    min-height: 112px;
    padding: 16px 12px !important;
    box-sizing: border-box;
    display: grid !important;
    grid-template-rows: auto 40px;
    align-content: center !important;
    align-items: center !important;
    justify-items: center !important;
    gap: 10px !important;
    justify-content: stretch !important;
    overflow: visible !important;
}
.sup_category_page .sub-cat-text,
.sub-element > .row .sub-cat-text {
    position: static !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: auto !important;
    min-height: 26px !important;
    margin: 0 !important;
    padding: 0 8px !important;
    transform: none !important;
    font-size: 17px !important;
    line-height: 1.6 !important;
    text-align: center;
}
.sup_category_page .sub-cat-box .btn-group,
.sub-element > .row .sub-cat-box .btn-group {
    position: static !important;
    align-self: end !important;
    margin: 0 !important;
}
.carousel,.carousel-inner { border-radius: 26px !important; }
.carousel img { object-fit: cover; }

/* Listing cards */
.property-item,.rent-item,.lux-card-wrapper,.home-box {
    overflow: hidden; border: 1px solid var(--nb-line) !important; border-radius: 26px !important;
    background: var(--nb-surface) !important; box-shadow: var(--nb-shadow-sm) !important;
    transition: transform .28s var(--nb-ease), box-shadow .28s var(--nb-ease), border-color .28s;
}
.property-item:hover,.rent-item:hover,.lux-card-wrapper:hover,.home-box:hover { transform: translateY(-6px); border-color: rgba(181,154,91,.48) !important; box-shadow: var(--nb-shadow) !important; }
.engines-list .rent-item:hover .box-icons span,
.engines-list .rent-item.active .box-icons span {
    color: var(--nb-ink) !important;
    text-shadow: none !important;
}
.engines-list .rent-item:hover .box-icons i,
.engines-list .rent-item.active .box-icons i {
    color: #a71f43 !important;
    text-shadow: none !important;
}
.engines-list .rent-item .box-icons > div:hover span { color: #111827 !important; }
.engines-list .rent-item .box-icons > div:hover i { color: #111827 !important; }
.property-item img,.rent-item img,.lux-card-wrapper img { width: 100%; aspect-ratio: 16/10; object-fit: cover; transition: transform .5s var(--nb-ease); }
.property-item:hover img,.rent-item:hover img,.lux-card-wrapper:hover img { transform: scale(1.035); }
.property-item .p-4,.rent-item .p-4 { padding: 20px !important; }
.property-item h5,.rent-item h5 { font-size: 18px; line-height: 1.55; }
.property-item .text-primary,.rent-item .text-primary,.main-color { color: var(--nb-brand-dark) !important; }
.property-item .bg-primary,.main-color-bg { background-color: var(--nb-brand) !important; }

/* Forms and filters — status colors deliberately remain untouched. */
.form-control,.form-select,select.form-control,textarea.form-control,
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
    min-height: 54px; border: 1px solid #dbe3ed; border-radius: 15px !important;
    color: var(--nb-ink); background-color: #fbfcfe; box-shadow: none;
    transition: border-color .2s, box-shadow .2s, background .2s;
}
.form-control { padding: 12px 16px; }
textarea.form-control { min-height: 130px; }
.form-control:focus,.form-select:focus {
    border-color: rgba(181,154,91,.9); background:#fff;
    box-shadow: 0 0 0 4px rgba(181,154,91,.13);
}
label,.form-label { margin-bottom: 7px; color: #243650; font-size: 13px; font-weight: 800; }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 52px; padding-inline: 16px 34px; color: var(--nb-ink); }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 52px; inset-inline-end: 9px; }
.select2-dropdown { overflow:hidden; border:1px solid var(--nb-line); border-radius:15px; box-shadow:var(--nb-shadow); }
.select2-results__option { padding:10px 14px; }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background:var(--nb-brand); }
.filter,.filters,.filter-box,.search-box,.sidebar-filter,[class*="filter-card"] {
    border: 1px solid var(--nb-line) !important; border-radius: 24px !important;
    background: rgba(255,255,255,.94) !important; box-shadow: var(--nb-shadow-sm);
}

/* Buttons */
.btn { min-height: 44px; padding: 10px 18px; border-radius: 13px; font-weight: 800; transition: .22s var(--nb-ease); }
.btn:hover { transform: translateY(-2px); }
.btn-primary,.btn-warning { border-color: var(--nb-brand) !important; background: var(--nb-brand) !important; color:#fff !important; box-shadow:0 9px 22px rgba(146,120,62,.2); }
.btn-primary:hover,.btn-warning:hover { border-color: var(--nb-brand-dark) !important; background: var(--nb-brand-dark) !important; }
.btn-success { background:var(--nb-success); border-color:var(--nb-success); }
.btn-danger { background:#d9464f; border-color:#d9464f; }
.btn-light,.btn-outline-secondary { border-color:var(--nb-line); background:#fff; color:var(--nb-ink); }

/* Account, forms, content pages */
.dashboard-card,.profile-card,.login-card,.register-card,.contact-form,
.about-section,.faq-section,.terms-section,.privacy-section,.payment-card {
    border: 1px solid var(--nb-line) !important; border-radius: 28px !important;
    background: rgba(255,255,255,.94) !important; box-shadow: var(--nb-shadow-sm) !important;
}
.dashboard-card { padding: clamp(20px,3vw,34px); }
.dashboard-card__eyebrow { display:inline-flex; padding:7px 12px; border-radius:999px; color:var(--nb-brand-dark); background:var(--nb-brand-pale); font-size:11px; font-weight:900; }
.dashboard-card__title,.profile-card__title { margin-top:10px; font-weight:900; }
.profile-card__head { padding-bottom:18px; margin-bottom:22px; border-bottom:1px solid var(--nb-line); }
.profile-input { background:#fbfcfe !important; }
.notification-card { min-height:92px; padding:18px 20px !important; border-radius:18px !important; text-align:start; }
.notification-card--unread { border-inline-start:5px solid var(--nb-brand) !important; background:linear-gradient(90deg,var(--nb-brand-pale),#fff 28%) !important; }

/* Details and galleries */
.product-details,.property-details,.engines-detail,.details-box,.single-product {
    border:1px solid var(--nb-line); border-radius:28px; background:#fff; box-shadow:var(--nb-shadow-sm);
}
.modal-content { overflow:hidden; border:0; border-radius:24px; box-shadow:0 30px 80px rgba(7,22,43,.26); }
.modal-header { border-bottom:1px solid var(--nb-line); background:#fbfcfe; }
.modal-footer { border-top:1px solid var(--nb-line); }

/* Tables and pagination */
.table { overflow:hidden; border-color:var(--nb-line); border-radius:18px; background:#fff; }
.table thead th { padding:14px; color:var(--nb-ink); background:#f3f6fa; border-color:var(--nb-line); font-size:12px; font-weight:900; }
.table tbody td { padding:14px; vertical-align:middle; border-color:#edf1f5; }
.pagination { gap:6px; justify-content:center; }
.page-link { min-width:40px; height:40px; display:grid; place-items:center; border:1px solid var(--nb-line); border-radius:11px !important; color:var(--nb-ink); }
.page-item.active .page-link { border-color:var(--nb-brand); background:var(--nb-brand); }

/* Feedback messages */
.alert { border:0; border-radius:16px; box-shadow:var(--nb-shadow-sm); font-weight:700; }
.alert-success { color:#106b4e; background:#eaf8f2; }
.alert-danger { color:#a52d37; background:#fff0f1; }

.site-live-notification {
    position:fixed; inset-inline-end:22px; bottom:24px; z-index:2000;
    width:min(410px,calc(100vw - 28px)); display:grid; grid-template-columns:48px 1fr 30px;
    align-items:center; gap:12px; padding:16px; color:var(--nb-ink) !important;
    border:1px solid var(--nb-line); border-inline-start:5px solid var(--nb-brand);
    border-radius:19px; background:rgba(255,255,255,.96); box-shadow:0 25px 70px rgba(7,25,49,.23);
    backdrop-filter:blur(14px); opacity:0; transform:translateY(24px) scale(.97);
    transition:.35s var(--nb-ease);
}
.site-live-notification.is-visible { opacity:1; transform:none; }
.site-live-notification.is-approved { border-inline-start-color:var(--nb-success); }
.site-live-notification.is-rejected { border-inline-start-color:var(--nb-danger); }
.site-live-notification__icon { width:46px; height:46px; display:grid; place-items:center; border-radius:14px; background:var(--nb-brand-pale); font-size:23px; color:var(--nb-brand-dark); }
.site-live-notification.is-approved .site-live-notification__icon { color:var(--nb-success); background:#eaf8f2; }
.site-live-notification.is-rejected .site-live-notification__icon { color:var(--nb-danger); background:#fff0f1; }
.site-live-notification strong,.site-live-notification small { display:block; }
.site-live-notification strong { margin-bottom:3px; font-size:14px; font-weight:900; }
.site-live-notification small { color:var(--nb-ink-soft); font-size:12px; line-height:1.6; }
.site-live-notification button { align-self:start; border:0; background:transparent; color:#7d8999; font-size:23px; line-height:1; }

/* Footer */
.site-footer {
    margin-top: 70px !important; padding-top: 30px;
    border-radius: 42px 42px 0 0; color:rgba(255,255,255,.72) !important;
    background: linear-gradient(135deg,#0a1b31,#132c4d) !important;
}
.site-footer__card { height:100%; padding:24px; border:1px solid rgba(255,255,255,.09); border-radius:22px; background:rgba(255,255,255,.045); }
.site-footer h5 { color:#fff !important; font-size:18px; }
.site-footer__eyebrow { color:#d9c691; font-size:11px; font-weight:900; letter-spacing:.04em; }
.site-footer .btn-link { color:rgba(255,255,255,.72) !important; }
.site-footer .btn-link:hover { color:#fff !important; transform:translateX(-3px); }
.site-footer .btn-social { width:42px; height:42px; display:grid; place-items:center; padding:0; border-radius:12px; }
.site-footer__copyright { border-top:1px solid rgba(255,255,255,.09); padding-block:22px; }

/* Responsive */
@media (max-width: 991.98px) {
    .site-nav-wrap { top: 8px; margin-top:8px; width:calc(100% - 16px); }
    .site-navbar { min-height:74px; border-radius:21px; }
    .site-navbar__brand-copy { display:none; }
    .site-navbar__logo { width:52px; height:52px; }
    .site-navbar__logo img { width:46px !important; height:46px; }
    .site-navbar .navbar-collapse { max-height:calc(100vh - 105px); overflow-y:auto; margin-top:10px; padding:12px; border-top:1px solid var(--nb-line); }
    .site-navbar .navbar-nav { align-items:stretch; gap:4px; }
    .site-navbar .nav-link { width:100%; justify-content:flex-start; min-height:48px; padding-inline:14px !important; }
    .site-navbar__lang { margin:4px 0 0 !important; }
    .site-navbar__menu { position:static !important; width:100%; margin-top:4px !important; box-shadow:none; background:#f8fafc; }
    .faq-header { margin-top:22px !important; padding:28px 24px !important; border-radius:26px; }
    .home-hero { border-radius:28px !important; }
}

@media (max-width: 575.98px) {
    body { font-size:14px; }
    .container { width:min(100% - 20px,1320px); padding-inline:0; }
    .site-navbar { padding:7px 9px !important; }
    .site-navbar__cta-mobile { min-height:42px; padding:8px 12px !important; font-size:12px; }
    .home-hero { margin-top:12px !important; padding:28px 20px !important; }
    .home-hero__title { font-size:31px !important; line-height:1.25; }
    .home-hero__stats { grid-template-columns:1fr !important; }
    .home-hero__actions .btn { width:100%; }
    .categories { border-radius:22px !important; }
    .property-item,.rent-item,.lux-card-wrapper,.home-box { border-radius:21px !important; }
    .dashboard-card,.profile-card { border-radius:22px !important; padding:18px !important; }
    .faq-header { width:calc(100% - 20px); }
    .site-footer { border-radius:28px 28px 0 0; }
    .site-footer__card { padding:18px; }
}

/* Preserve existing required/optional validation semantics and colors. */
.select-danger .select2-selection__rendered { border-color: red !important; }
.select-success .select2-selection__rendered { border-color: green !important; }
.is-invalid { border-color: var(--nb-danger) !important; }
.is-valid { border-color: var(--nb-success) !important; }
