/* =========================================================
   شرفات (Sharafat) Compound — Luxury Visual System
   Palette drawn directly from the official brand mark
   (deep mocha / taupe ground, champagne-gold calligraphy)
   and the brochure elevations (warm stucco, white cornice
   trim, garden greens for the landscaped courtyards).
   ========================================================= */

:root {
    /* Neutral / background family */
    --sand: #F8F4EC;
    --sand-deep: #EEE4D2;
    --surface: #FFFFFF;
    --ink: #2B2321;
    --ink-soft: #5B4D46;
    --taupe: #8C7A6E;
    /* Primary — Deep Taupe / Dark Mocha (from the logo ground) */
    --mocha: #4A3A3C;
    --mocha-2: #3A2C2E;
    --mocha-deep: #241A1B;
    --heading: var(--mocha);
    /* Secondary — Champagne Beige / Warm Sand / Soft Gold (from the logo type) */
    --champagne: #CBAE82;
    --champagne-soft: #E6D6B8;
    --gold: #B08A54;
    --gold-dark: #8F6E3E;
    /* Functional status colours, tuned into the family */
    --available: #5E7A5E;
    --reserved: #B08A54;
    --sold: #8B4B42;
    --radius: 16px;
    --radius-sm: 10px;
    --radius-pill: 999px;
    --shadow-sm: 0 2px 10px rgba(36, 26, 27, 0.07);
    --shadow-md: 0 14px 34px rgba(36, 26, 27, 0.14);
    --shadow-lg: 0 24px 60px rgba(36, 26, 27, 0.20);
    --ease: cubic-bezier(.25,.8,.35,1);
    --ease-out-back: cubic-bezier(.34, 1.56, .64, 1);
    --font-display: 'Alexandria', 'Segoe UI', Tahoma, sans-serif;
    /* لون نص ثابت فاتح — مخصوص للنص فوق خلفيات غامقة ثابتة (مش متغيّرة مع الوضع الليلي/النهاري)
       زي هيرو الصفحات الداخلية، أوفرليه كروت البورتفوليو، وتسميات صور الخدمات */
    --text-on-dark: #F8F4EC;
}

/* =========================================================
   الوضع الليلي (Dark Mode) — بيتفعّل بإضافة data-theme="dark"
   على وسم <html> من زرار التبديل في الناف بار
   ========================================================= */
[data-theme="dark"] {
    --sand: #17110F;
    --sand-deep: #2E2420;
    --surface: #221A17;
    --ink: #F3ECDF;
    --ink-soft: #C9BBAE;
    --taupe: #A08F82;
    --heading: #EAD9BC;
    --champagne: #D8BE93;
    --champagne-soft: #4A3C30;
    --gold: #C9A467;
    --gold-dark: #E0BC82;
    --available: #7FA07F;
    --reserved: #C9A467;
    --sold: #B06B5E;
    --shadow-sm: 0 2px 10px rgba(0, 0, 0, 0.35);
    --shadow-md: 0 14px 34px rgba(0, 0, 0, 0.45);
    --shadow-lg: 0 24px 60px rgba(0, 0, 0, 0.55);
}

    /* الكروت والحدود في الوضع الليلي محتاجة حدود أوضح شوية بدل الاعتماد على الظل بس */
    [data-theme="dark"] .card,
    [data-theme="dark"] .feature-card,
    [data-theme="dark"] .portfolio-card,
    [data-theme="dark"] .unit-card {
        border: 1px solid var(--sand-deep);
    }

    /* الشعار وأيقونات bootstrap اللي بتفترض خلفية فاتحة */
    [data-theme="dark"] .status-pill.available {
        color: #BFE3BF;
    }

    [data-theme="dark"] .status-pill.reserved {
        color: #F0DDB0;
    }

    [data-theme="dark"] .status-pill.sold {
        color: #F0C4BA;
    }

    /* خلفية الهيدر مكتوبة بلون ثابت (مش متغيّر)، فلازم نظبطها يدويًا في الوضع الليلي */
    [data-theme="dark"] .site-header {
        background: rgba(23, 17, 15, 0.88);
        border-bottom-color: rgba(201, 164, 103, 0.28);
    }

        [data-theme="dark"] .site-header.is-scrolled {
            background: rgba(23, 17, 15, 0.97);
        }

/* ---------- Base ---------- */
html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

html, body {
    height: 100%;
}

/* =========================================================
   الجولة التانية: تأثيرات "بهرة" — Preloader / جسيمات /
   توهج بيتبع الماوس / ميلان ثلاثي الأبعاد / أزرار مغناطيسية
   ========================================================= */

/* ---------- Preloader ---------- */
#sitePreloader {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(160deg, var(--mocha) 0%, var(--mocha-deep) 100%);
    transition: opacity 0.6s var(--ease), visibility 0.6s var(--ease);
    /* ضمان مستقل عن الجافاسكريبت: الشاشة تختفي أوتوماتيك بعد ثانية ونص
       حتى لو الجافاسكريبت اتأخر أو فشل يحمّل، عشان محدث يحجب الموقع تاني */
    animation: preloaderAutoHide 0.01s linear 1.5s forwards;
}

@keyframes preloaderAutoHide {
    to {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
    }
}

#sitePreloader.is-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

#sitePreloader .preloader-mark {
    height: 64px;
    width: auto;
    max-width: 220px;
    object-fit: contain;
    opacity: 0;
    animation: preloaderIn 0.9s var(--ease) forwards, preloaderPulse 1.6s var(--ease) 0.9s infinite;
}

@keyframes preloaderIn {
    from {
        opacity: 0;
        transform: scale(0.7);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes preloaderPulse {
    0%, 100% {
        transform: scale(1);
        opacity: 1;
    }

    50% {
        transform: scale(1.08);
        opacity: 0.75;
    }
}

@media (prefers-reduced-motion: reduce) {
    #sitePreloader {
        display: none;
    }
}

/* ---------- جسيمات ذهبية عائمة في الهيرو ---------- */
.hero-particles {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    pointer-events: none;
}

    .hero-particles span {
        position: absolute;
        bottom: -12px;
        width: 4px;
        height: 4px;
        border-radius: 50%;
        background: var(--champagne);
        opacity: 0;
        box-shadow: 0 0 6px 1px rgba(203,174,130,0.6);
        animation: particleFloat linear infinite;
    }

@keyframes particleFloat {
    0% {
        transform: translateY(0) translateX(0);
        opacity: 0;
    }

    10% {
        opacity: 0.85;
    }

    90% {
        opacity: 0.5;
    }

    100% {
        transform: translateY(-620px) translateX(var(--drift, 30px));
        opacity: 0;
    }
}

/* ---------- سلايدر صور الهيرو (بيتحكم فيه الأدمن) ---------- */
.hero-slides {
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
}

.hero-slide {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    opacity: 0;
    transition: opacity 1.2s var(--ease);
    will-change: opacity;
}

    .hero-slide.is-active {
        opacity: 1;
    }

.hero-dots {
    position: absolute;
    z-index: 2;
    bottom: 16px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 8px;
}

.hero-dot {
    width: 9px;
    height: 9px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(251,248,241,0.45);
    cursor: pointer;
    transition: all 0.3s var(--ease);
}

    .hero-dot.is-active {
        width: 24px;
        border-radius: 6px;
        background: var(--champagne);
    }

/* ---------- Parallax للهيرو ---------- */
.brochure-hero {
    will-change: background-position;
}

/* ---------- خط ذهبي "بيترسم" لما يظهر في الشاشة ---------- */
.cornice-rule.draw-in::before,
.cornice-rule.draw-in::after {
    transform: scaleX(0);
    transition: transform 0.9s var(--ease) 0.15s;
}

.cornice-rule.draw-in.align-start::before {
    transform-origin: right;
}

html[dir="rtl"] .cornice-rule.draw-in.align-start::before {
    transform-origin: right;
}

.cornice-rule.draw-in.is-visible::before,
.cornice-rule.draw-in.is-visible::after {
    transform: scaleX(1);
}

/* ---------- كروت بميلان ثلاثي الأبعاد (3D Tilt) ---------- */
.tilt-card {
    transform-style: preserve-3d;
    perspective: 900px;
    transition: transform 0.25s var(--ease-out-back), box-shadow 0.3s var(--ease);
}

/* ---------- أزرار مغناطيسية ---------- */
.magnetic-btn {
    display: inline-block;
    transition: transform 0.25s var(--ease-out-back);
}

@media (prefers-reduced-motion: reduce) {
    .hero-particles {
        display: none;
    }

    .hero-slide {
        transition: none;
    }

    .tilt-card, .magnetic-btn {
        transform: none !important;
    }
}

body {
    font-family: 'Alexandria', 'Segoe UI', Tahoma, sans-serif;
    background-color: var(--sand);
    color: var(--ink);
    font-size: 15.5px;
    line-height: 1.75;
    -webkit-font-smoothing: antialiased;
    transition: background-color 0.35s var(--ease), color 0.35s var(--ease);
    padding-top: var(--header-h, 88px);
}

/* ---------- زرار تبديل الوضع الليلي/النهاري ---------- */
.theme-toggle-btn {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 1px solid var(--sand-deep);
    background: var(--surface);
    color: var(--gold-dark);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.05rem;
    cursor: pointer;
    transition: background 0.3s var(--ease), color 0.3s var(--ease), transform 0.3s var(--ease), border-color 0.3s var(--ease);
    margin-inline-end: 6px;
}

    .theme-toggle-btn:hover {
        transform: rotate(-12deg) scale(1.05);
        border-color: var(--gold);
    }

/* ---------- زرار الوضع الليلي/النهاري بشكل مفتاح (Switch) ---------- */
.theme-switch {
    width: 52px;
    height: 28px;
    border-radius: var(--radius-pill);
    border: 1px solid var(--sand-deep);
    background: var(--sand-deep);
    display: inline-flex;
    align-items: center;
    padding: 3px;
    cursor: pointer;
    margin-inline-end: 6px;
    flex-shrink: 0;
    transition: background 0.3s var(--ease), border-color 0.3s var(--ease);
}

.theme-switch-thumb {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--surface);
    color: var(--gold-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    box-shadow: var(--shadow-sm);
    transform: translateX(0);
    transition: transform 0.35s var(--ease-out-back), background 0.3s var(--ease), color 0.3s var(--ease);
}

[data-theme="dark"] .theme-switch {
    background: var(--mocha);
    border-color: var(--mocha-2);
}

[data-theme="dark"] .theme-switch-thumb {
    transform: translateX(24px);
    background: var(--mocha-deep);
    color: var(--champagne);
}

h1, h2, h3, h4, h5, h6,
.font-display {
    font-family: var(--font-display);
    color: var(--heading);
    font-weight: 700;
    letter-spacing: 0.2px;
    line-height: 1.5;
}

    h1.font-display, .brochure-hero h1, .page-hero h1 {
        font-weight: 600;
        letter-spacing: 0.5px;
    }

a {
    color: var(--gold-dark);
    text-decoration: none;
}

    a:hover {
        color: var(--gold);
    }

::selection {
    background: var(--champagne-soft);
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.001ms !important;
        transition-duration: 0.001ms !important;
        scroll-behavior: auto !important;
    }
}

/* ---------- Signature: gold cornice rule ---------- */
.cornice-rule {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 12px 0 26px;
}

    .cornice-rule::before,
    .cornice-rule::after {
        content: "";
        height: 1px;
        flex: 1 1 auto;
        background: linear-gradient(90deg, transparent, var(--gold) 20%, var(--gold) 80%, transparent);
        opacity: 0.6;
    }

    .cornice-rule .dot {
        width: 5px;
        height: 5px;
        border-radius: 50%;
        background: var(--gold);
        flex: 0 0 auto;
    }

    .cornice-rule.align-start {
        justify-content: flex-start;
    }

        .cornice-rule.align-start::after {
            display: none;
        }

        .cornice-rule.align-start::before {
            flex: 0 0 46px;
        }

.section-eyebrow {
    display: inline-block;
    font-family: 'Alexandria', sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 3px;
    line-height: 1.6;
    overflow: visible;
    text-transform: uppercase;
    color: var(--gold-dark);
}

/* ---------- Top site header (luxury nav bar, replaces sidebar) ---------- */
.site-header {
    position: fixed;
    top: 0;
    inset-inline: 0;
    z-index: 1030;
    background: rgba(248, 244, 236, 0.86);
    backdrop-filter: blur(14px) saturate(140%);
    -webkit-backdrop-filter: blur(14px) saturate(140%);
    border-bottom: 1px solid rgba(176, 138, 84, 0.28);
    box-shadow: 0 1px 0 rgba(176,138,84,0.15);
    transition: box-shadow 0.35s var(--ease), background 0.35s var(--ease), padding 0.35s var(--ease);
}

    .site-header.is-scrolled {
        background: rgba(248, 244, 236, 0.97);
        box-shadow: var(--shadow-sm);
    }

/* ---------- شريط بحث عريض وثابت في الهيدر (موبايل ولاب توب) ---------- */
.header-search-bar-wrap {
    padding: 0 20px 14px;
    max-width: 1320px;
    margin: 0 auto;
}

.header-search-bar {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 12px 18px;
    background: var(--surface);
    border: 1.5px solid var(--sand-deep);
    border-radius: var(--radius-pill);
    color: var(--ink-soft);
    font-size: 14px;
    font-weight: 500;
    transition: border-color 0.25s var(--ease), box-shadow 0.25s var(--ease);
}

    .header-search-bar i {
        color: var(--gold-dark);
        font-size: 16px;
        flex-shrink: 0;
    }

    .header-search-bar:hover {
        border-color: var(--gold);
        box-shadow: 0 0 0 0.15rem rgba(176,138,84,0.12);
        color: var(--ink-soft);
    }

@media (max-width: 560px) {
    .header-search-bar-wrap {
        padding: 0 14px 12px;
    }

    .header-search-bar span {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-size: 13px;
    }
}

.site-header-inner {
    max-width: 1320px;
    margin: 0 auto;
    padding: 16px 36px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
}

/* Brand */
.brand-link {
    display: flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    flex: 0 0 auto;
}

    .brand-link:hover .brand-name {
        color: var(--gold-dark);
    }

/* اللوجو بقى عنصر واحد بس، وشكله (الحروف) مأخوذ كـ "قناع" (Mask) من ملف
   الـ SVG، فبقدر أغيّر لونه بالكامل بمتغيّر CSS واحد بدل ما أستخدم صورتين
   منفصلتين. في الوضع النهاري بياخد اللون الأصلي، وفي الوضع الليلي بياخد
   اللون الجديد اللي طلبه العميل تحديدًا. */
.brand-logo {
    display: inline-block;
    height: 40px;
    width: 150px;
    flex: 0 0 auto;
    background-color: #60371F;
    -webkit-mask-image: url('/images/brand/logo.svg');
    mask-image: url('/images/brand/logo.svg');
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    transition: background-color 0.3s var(--ease);
}

[data-theme="dark"] .brand-logo {
    background-color: var(--champagne);
}

.brand-text {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.brand-name {
    font-family: 'Alexandria', sans-serif;
    font-size: 19px;
    font-weight: 700;
    color: var(--heading);
    transition: color 0.25s var(--ease);
}

.brand-sub {
    font-size: 9.5px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--gold-dark);
}

/* Center nav */
.site-nav {
    align-items: center;
    gap: 6px;
    flex: 1 1 auto;
    justify-content: center;
}

.site-nav-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 18px;
    font-size: 14px;
    font-weight: 600;
    color: var(--ink-soft);
    background: transparent;
    border: none;
    position: relative;
    letter-spacing: 0.2px;
    transition: color 0.25s var(--ease);
}

    .site-nav-link::after {
        content: "";
        position: absolute;
        bottom: 3px;
        inset-inline: 18px;
        height: 2px;
        background: var(--gold);
        transform: scaleX(0);
        transform-origin: center;
        transition: transform 0.28s var(--ease);
    }

    .site-nav-link:hover,
    .site-nav-link.active {
        color: var(--heading);
    }

        .site-nav-link:hover::after,
        .site-nav-link.active::after {
            transform: scaleX(1);
        }

/* Dropdown (floors) — CSS-driven, luxury fade-down */
.site-nav-dropdown {
    position: relative;
}

.site-nav-dropdown-menu {
    position: absolute;
    top: calc(100% + 6px);
    inset-inline-start: auto;
    inset-inline-end: 0;
    transform: translateY(-6px);
    min-width: 220px;
    background: var(--surface);
    border: 1px solid var(--sand-deep);
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-md);
    padding: 8px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.22s var(--ease), transform 0.22s var(--ease);
    z-index: 10;
}

.site-nav-dropdown:hover .site-nav-dropdown-menu,
.site-nav-dropdown:focus-within .site-nav-dropdown-menu,
.site-nav-dropdown.is-open .site-nav-dropdown-menu {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

/* قايمة "حسابي" لازقة في طرف الهيدر، فمينفعش تتمركز زي دروب داون
   المخططات (اللي في نص الناف بار) — لازم تفتح ناحية النص عشان
   متطلعش برة حدود الشاشة خالص. استخدمنا #userMenuDropdown هنا
   عشان نضمن إنها تكسب أي تعارض مع قواعد تانية أقدم. */
#userMenuDropdown .site-nav-dropdown-menu {
    inset-inline-start: auto !important;
    inset-inline-end: 0 !important;
    transform: translateY(-6px) !important;
}

#userMenuDropdown:hover .site-nav-dropdown-menu,
#userMenuDropdown:focus-within .site-nav-dropdown-menu,
#userMenuDropdown.is-open .site-nav-dropdown-menu {
    transform: translateY(0) !important;
}

.site-nav-dropdown-menu a.floor-dropdown-all {
    font-weight: 700;
    color: var(--gold-dark);
    border-bottom: 1px solid var(--sand-deep);
    margin-bottom: 6px;
    padding-bottom: 12px;
}

.site-nav-dropdown-menu a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 12px;
    border-radius: var(--radius-sm);
    font-size: 13.5px;
    font-weight: 600;
    color: var(--ink-soft);
}

    .site-nav-dropdown-menu a:hover,
    .site-nav-dropdown-menu a.active {
        background: rgba(176, 138, 84, 0.10);
        color: var(--heading);
    }

        .site-nav-dropdown-menu a.active .floor-chip {
            background: var(--gold);
            border-color: var(--gold);
            color: #fff;
        }

/* Header end (location badge + mobile toggle) */
.site-header-end {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 0 0 auto;
}

.header-menu-btn {
    background: transparent;
    border: 1px solid var(--sand-deep);
    color: var(--heading);
    border-radius: var(--radius-sm);
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 19px;
}

    .header-menu-btn:hover {
        background: var(--sand-deep);
    }

.location-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: 'Alexandria', sans-serif;
    font-size: 12px;
    letter-spacing: 0.6px;
    color: var(--heading);
    background: transparent;
    border: 1px solid var(--gold);
    padding: 8px 16px;
    border-radius: var(--radius-pill);
    white-space: nowrap;
}

/* Mobile nav panel */
.site-nav-mobile {
    max-height: 0;
    overflow: hidden;
    background: var(--surface);
    border-top: 1px solid transparent;
    transition: max-height 0.35s var(--ease), border-color 0.35s var(--ease);
}

    .site-nav-mobile.is-open {
        max-height: 520px;
        border-top-color: var(--sand-deep);
    }

    .site-nav-mobile .mobile-nav-inner {
        padding: 14px 20px 20px;
        display: flex;
        flex-direction: column;
        gap: 2px;
    }

    .site-nav-mobile a {
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 11px 10px;
        font-size: 14.5px;
        font-weight: 600;
        color: var(--ink-soft);
        border-radius: var(--radius-sm);
    }

        .site-nav-mobile a:hover,
        .site-nav-mobile a.active {
            background: rgba(176, 138, 84, 0.10);
            color: var(--heading);
        }

    .site-nav-mobile .nav-section-label {
        display: block;
        padding: 14px 10px 4px;
        font-size: 10.5px;
        letter-spacing: 2px;
        text-transform: uppercase;
        color: var(--taupe);
    }

.floor-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    flex: 0 0 auto;
    font-size: 11px;
    font-weight: 700;
    border-radius: 6px;
    background: rgba(176, 138, 84, 0.12);
    color: var(--gold-dark);
    border: 1px solid rgba(176, 138, 84, 0.28);
}

@media (min-width: 992px) {
    .site-nav-mobile {
        display: none;
    }
}

main.page-body {
    padding: 36px;
    max-width: 1320px;
    margin: 0 auto;
}

    /* صفحة المخططات محتاجة مساحة أعرض عشان المخطط يبان بالتفاصيل */
    main.page-body.page-body--wide {
        max-width: 1680px;
    }

footer.app-footer {
    text-align: center;
    color: var(--champagne-soft);
    padding: 30px 22px;
    margin-top: 20px;
    background: linear-gradient(190deg, var(--mocha) 0%, var(--mocha-deep) 100%);
    font-size: 13px;
    letter-spacing: 0.5px;
}


/* ---------- Generic scroll-reveal ---------- */
.reveal {
    opacity: 0;
    transform: translateY(28px) scale(0.98);
    filter: blur(4px);
    transition: opacity 0.8s var(--ease), transform 0.8s var(--ease), filter 0.8s var(--ease);
}

    .reveal.is-visible {
        opacity: 1;
        transform: translateY(0) scale(1);
        filter: blur(0);
    }

/* ---------- Hero ---------- */
.hero-section {
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, var(--mocha) 0%, var(--mocha-2) 100%);
    color: #F3ECDF;
    padding: 64px 32px;
    border-radius: var(--radius);
    text-align: center;
}

    .hero-section::before {
        content: "";
        position: absolute;
        inset: 0;
        opacity: 0.12;
        background-image: radial-gradient(circle at 15% 30%, rgba(243,236,223,0.5) 0, transparent 2px), radial-gradient(circle at 85% 70%, rgba(243,236,223,0.5) 0, transparent 2px);
        background-size: 46px 46px;
        pointer-events: none;
    }

    .hero-section .section-eyebrow {
        color: var(--champagne);
    }

    .hero-section h1 {
        color: #FBF8F1;
        font-size: clamp(2rem, 4vw, 3rem);
        margin-bottom: 6px;
    }

    .hero-section p {
        color: rgba(251, 248, 241, 0.86);
        position: relative;
    }

    .hero-section .cornice-rule {
        max-width: 260px;
        margin: 18px auto;
    }

        .hero-section .cornice-rule::before,
        .hero-section .cornice-rule::after {
            background: linear-gradient(90deg, transparent, var(--champagne) 20%, var(--champagne) 80%, transparent);
        }

        .hero-section .cornice-rule .dot {
            background: var(--champagne);
        }

/* ---------- Fact strip / luxury stat counters ---------- */
.fact-strip {
    display: flex;
    background: var(--surface);
    border: 1px solid var(--sand-deep);
    border-radius: var(--radius);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
}

    .fact-strip .fact {
        flex: 1 1 0;
        text-align: center;
        padding: 30px 14px;
        position: relative;
    }

        .fact-strip .fact + .fact::before {
            content: "";
            position: absolute;
            inset-inline-start: 0;
            top: 20%;
            bottom: 20%;
            width: 1px;
            background: linear-gradient(180deg, transparent, var(--gold) 30%, var(--gold) 70%, transparent);
            opacity: 0.5;
        }

        .fact-strip .fact .num {
            font-family: 'Alexandria', sans-serif;
            font-size: 2.3rem;
            font-weight: 700;
            color: var(--heading);
            display: block;
            line-height: 1.1;
        }

        .fact-strip .fact .label {
            font-size: 12px;
            letter-spacing: 1.5px;
            color: var(--taupe);
            text-transform: uppercase;
            margin-top: 6px;
            display: block;
        }

        .fact-strip .fact.available .num {
            color: var(--available);
        }

        .fact-strip .fact.reserved .num {
            color: var(--reserved);
        }

        .fact-strip .fact.sold .num {
            color: var(--sold);
        }

/* ---------- Cards / Panels ---------- */
.card {
    border-radius: var(--radius);
    border: 1px solid var(--sand-deep);
    box-shadow: var(--shadow-sm);
    background: var(--surface);
    transition: box-shadow 0.35s var(--ease), transform 0.35s var(--ease);
}

    .card.panel-accent {
        border-top: 3px solid var(--gold);
    }

    .card .card-title {
        font-family: 'Alexandria', sans-serif;
        color: var(--heading);
    }

.card-header {
    background: var(--sand) !important;
    border-bottom: 1px solid var(--sand-deep);
    font-weight: 600;
    color: var(--heading);
    border-radius: var(--radius) var(--radius) 0 0 !important;
}

.unit-card {
    transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease), border-color 0.35s var(--ease);
    border-top: 3px solid transparent;
    overflow: hidden;
}

    .unit-card img {
        transition: transform 0.5s var(--ease);
    }

    .unit-card:hover {
        transform: translateY(-5px);
        box-shadow: var(--shadow-md);
        border-top-color: var(--gold);
    }

        .unit-card:hover img {
            transform: scale(1.06);
        }

/* ---------- Status pills ---------- */
.status-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    font-weight: 600;
    padding: 6px 14px;
    border-radius: var(--radius-pill);
    background: var(--surface);
    border: 1px solid var(--sand-deep);
    color: var(--ink);
}

    .status-pill .dot {
        width: 7px;
        height: 7px;
        border-radius: 50%;
        flex: 0 0 auto;
    }

    .status-pill.available .dot {
        background: var(--available);
    }

    .status-pill.available {
        color: var(--available);
        border-color: rgba(94,122,94,0.35);
        background: rgba(94,122,94,0.08);
    }

    .status-pill.reserved .dot {
        background: var(--reserved);
    }

    .status-pill.reserved {
        color: var(--reserved);
        border-color: rgba(176,138,84,0.35);
        background: rgba(176,138,84,0.08);
    }

    .status-pill.sold .dot {
        background: var(--sold);
    }

    .status-pill.sold {
        color: var(--sold);
        border-color: rgba(139,75,66,0.35);
        background: rgba(139,75,66,0.08);
    }

    .status-pill.unavailable .dot {
        background: var(--taupe);
    }

    .status-pill.unavailable {
        color: var(--taupe);
        border-color: rgba(140,122,110,0.35);
        background: rgba(140,122,110,0.10);
    }

/* keep old badge call sites usable but re-skin them to match */
.badge.bg-success {
    background-color: var(--available) !important;
}

.badge.bg-warning {
    background-color: var(--reserved) !important;
    color: #fff !important;
}

.badge.bg-danger {
    background-color: var(--sold) !important;
}

.badge.bg-primary {
    background-color: var(--mocha) !important;
}

.badge.bg-secondary {
    background-color: var(--taupe) !important;
}

/* ---------- إعادة تلوين صناديق التنبيه (Alerts) بنفس هوية الموقع
   بدل ألوان Bootstrap الافتراضية الصارخة (أخضر/أحمر/أصفر فاقع) ---------- */
.alert {
    border-radius: var(--radius-sm);
    border-width: 1px;
    font-size: 14px;
}

.alert-success {
    background: rgba(94, 122, 94, 0.08);
    border-color: rgba(94, 122, 94, 0.3);
    color: var(--available);
}

.alert-danger {
    background: rgba(139, 75, 66, 0.08);
    border-color: rgba(139, 75, 66, 0.3);
    color: var(--sold);
}

.alert-warning {
    background: rgba(176, 138, 84, 0.08);
    border-color: rgba(176, 138, 84, 0.3);
    color: var(--reserved);
}

.alert-info {
    background: rgba(139, 122, 110, 0.08);
    border-color: rgba(139, 122, 110, 0.3);
    color: var(--taupe);
}

/* ---------- زرار رمادي موحّد (بدل الرمادي الفاتح الافتراضي بتاع Bootstrap) ---------- */
.btn-secondary {
    background: var(--taupe);
    border-color: var(--taupe);
    color: #fff;
}

    .btn-secondary:hover,
    .btn-secondary:focus {
        background: var(--ink-soft);
        border-color: var(--ink-soft);
        color: #fff;
    }

/* ---------- المودالات (Modals) بنفس لغة الظلال والانحناءات بتاعت الموقع ---------- */
.modal-content {
    border: none;
    border-radius: var(--radius);
    box-shadow: var(--shadow-lg);
}

.modal-header {
    border-bottom-color: var(--sand-deep);
}

.modal-footer {
    border-top-color: var(--sand-deep);
}

border-radius: var(--radius-sm);
font-weight: 600;
letter-spacing: 0.3px;
transition: all 0.35s var(--ease);
}

.btn-success,
.btn-success.btn-lg {
    position: relative;
    background: linear-gradient(135deg, var(--gold) 0%, var(--gold-dark) 100%) !important;
    border-color: var(--gold-dark) !important;
    color: #FBF8F1 !important;
    box-shadow: var(--shadow-sm);
}

    .btn-success:hover,
    .btn-success:focus {
        background: linear-gradient(135deg, var(--gold-dark) 0%, var(--gold-dark) 100%) !important;
        border-color: var(--gold-dark) !important;
        color: #FBF8F1 !important;
        transform: translateY(-2px) scale(1.02);
        box-shadow: var(--shadow-md);
    }

.btn-outline-success {
    color: var(--gold-dark);
    border-color: var(--gold);
    border-radius: var(--radius-sm);
}

    .btn-outline-success:hover {
        background: var(--gold);
        border-color: var(--gold);
        color: #fff;
        transform: translateY(-2px);
    }

.btn-lg {
    padding: 13px 36px;
    border-radius: 18px;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1.5px;
}

/* ---------- زرار "ارجع لفوق" العائم ---------- */
.back-to-top {
    position: fixed;
    inset-inline-end: 22px;
    bottom: 22px;
    z-index: 1020;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    border: 1px solid rgba(176, 138, 84, 0.35);
    background: var(--surface);
    color: var(--gold-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    box-shadow: var(--shadow-md);
    cursor: pointer;
    opacity: 0;
    pointer-events: none;
    transform: translateY(14px) scale(0.9);
    transition: opacity 0.35s var(--ease), transform 0.35s var(--ease), background 0.3s var(--ease);
}

    .back-to-top.is-visible {
        opacity: 1;
        pointer-events: auto;
        transform: translateY(0) scale(1);
    }

    .back-to-top:hover {
        background: var(--gold);
        color: #fff;
        transform: translateY(-3px) scale(1.05);
    }

/* ---------- Forms ---------- */
.form-control, .form-select {
    border-radius: var(--radius-sm);
    border-color: var(--sand-deep);
}

    .form-control:focus, .form-select:focus {
        border-color: var(--gold);
        box-shadow: 0 0 0 0.2rem rgba(176,138,84,0.15);
    }

    /* نص الأمثلة (Placeholder) لازم يبقى خفيف وواضح إنه مش بيانات حقيقية،
   عشان محدش يتلخبط ويفتكره محتوى محفوظ فعلاً */
    .form-control::placeholder {
        color: var(--taupe);
        opacity: 0.45;
    }

    .form-control::-webkit-input-placeholder {
        color: var(--taupe);
        opacity: 0.45;
    }

    .form-control::-moz-placeholder {
        color: var(--taupe);
        opacity: 0.45;
    }

.form-label {
    font-size: 13px;
    color: var(--taupe);
    font-weight: 600;
}

/* ---------- Breadcrumb ---------- */
.breadcrumb {
    font-size: 13.5px;
}

.breadcrumb-item.active {
    color: var(--gold-dark);
}

/* ---------- Floor plan wrapper ---------- */
#floor-plan-wrapper {
    border: 1px solid var(--sand-deep);
    border-radius: var(--radius);
    padding: 12px;
    background: var(--surface);
}

.apt-hotspot {
    fill-opacity: 0;
    stroke-opacity: 0;
    stroke-width: 2.5px;
    transition: fill-opacity 0.28s var(--ease), stroke-opacity 0.28s var(--ease), filter 0.3s var(--ease);
}

/* ملحوظة: تأثير التلوين عند الـ hover اتشال بناءً على الطلب —
   الجزء بيفضل شفاف تمامًا في كل الحالات (حتى مع مرور الماوس)، بس لسه قابل للضغط. */

/* ---------- Brochure hero (image-backed) ---------- */
.brochure-hero {
    position: relative;
    overflow: hidden;
    border-radius: var(--radius);
    min-height: 480px;
    display: flex;
    align-items: flex-end;
    color: #FBF8F1;
    background-size: cover;
    background-position: center;
    isolation: isolate;
}

    .brochure-hero::before {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(0deg, rgba(36,26,27,0.94) 0%, rgba(36,26,27,0.58) 46%, rgba(36,26,27,0.22) 100%);
        z-index: 0;
    }

    .brochure-hero .hero-inner {
        position: relative;
        z-index: 1;
        padding: 48px 48px 42px;
        max-width: 720px;
    }

    .brochure-hero .section-eyebrow {
        color: var(--champagne);
    }

    .brochure-hero h1 {
        color: #FBF8F1;
        font-size: clamp(2.1rem, 4.2vw, 3.3rem);
        margin: 8px 0 4px;
    }

    .brochure-hero p.lead {
        color: rgba(251, 248, 241, 0.88);
        font-size: 1.08rem;
        max-width: 560px;
    }

    .brochure-hero .cornice-rule {
        max-width: 220px;
        margin: 16px 0 18px;
    }

        .brochure-hero .cornice-rule.align-start::before {
            flex: 0 0 40px;
        }

        .brochure-hero .cornice-rule::before,
        .brochure-hero .cornice-rule::after {
            background: linear-gradient(90deg, transparent, var(--champagne) 20%, var(--champagne) 80%, transparent);
        }

        .brochure-hero .cornice-rule .dot {
            background: var(--champagne);
        }

    .brochure-hero .scroll-indicator {
        position: absolute;
        inset-inline-end: 34px;
        bottom: 26px;
        z-index: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 8px;
        color: rgba(251, 248, 241, 0.75);
        font-size: 11px;
        letter-spacing: 2px;
        text-transform: uppercase;
    }

        .brochure-hero .scroll-indicator .line {
            width: 1px;
            height: 34px;
            background: linear-gradient(180deg, var(--champagne), transparent);
            animation: scrollLine 2.2s var(--ease) infinite;
        }

@keyframes scrollLine {
    0% {
        transform: scaleY(0);
        transform-origin: top;
        opacity: 0.4;
    }

    50% {
        transform: scaleY(1);
        transform-origin: top;
        opacity: 1;
    }

    100% {
        transform: scaleY(0);
        transform-origin: bottom;
        opacity: 0.4;
    }
}

/* ---------- Section wrapper / titles ---------- */
.section-block {
    margin: 40px 0;
}

    .section-block .section-heading {
        max-width: 620px;
        margin-bottom: 32px;
    }

.section-heading h2 {
    font-size: 1.95rem;
    margin: 4px 0 0;
}

.section-heading .cornice-rule {
    max-width: 220px;
}

/* ---------- Split section (image + text, alternating) ---------- */
.split-section {
    display: flex;
    align-items: center;
    gap: 48px;
}

    .split-section.reverse {
        flex-direction: row-reverse;
    }

    .split-section .split-media {
        flex: 1 1 46%;
        border-radius: var(--radius);
        overflow: hidden;
        border: 1px solid var(--sand-deep);
        box-shadow: var(--shadow-md);
    }

        .split-section .split-media img {
            display: block;
            width: 100%;
            height: 100%;
            object-fit: cover;
            transition: transform 0.6s var(--ease);
        }

        .split-section .split-media:hover img {
            transform: scale(1.04);
        }

    .split-section .split-text {
        flex: 1 1 54%;
    }

        .split-section .split-text li {
            padding: 4px 0;
        }

@media (max-width: 900px) {
    .split-section, .split-section.reverse {
        flex-direction: column;
    }

        .split-section .split-media {
            width: 100%;
        }
}

/* ---------- Architecture gallery ---------- */
.gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

    .gallery-grid figure {
        margin: 0;
        border-radius: var(--radius);
        overflow: hidden;
        border: 1px solid var(--sand-deep);
        background: var(--surface);
        box-shadow: var(--shadow-sm);
        position: relative;
        transition: box-shadow 0.35s var(--ease), transform 0.35s var(--ease);
    }

        .gallery-grid figure:hover {
            box-shadow: var(--shadow-md);
            transform: translateY(-4px);
        }

    .gallery-grid img {
        display: block;
        width: 100%;
        height: 240px;
        object-fit: cover;
        transition: transform 0.5s var(--ease);
    }

    .gallery-grid figure:hover img {
        transform: scale(1.06);
    }

    .gallery-grid figcaption {
        position: absolute;
        inset-inline: 0;
        bottom: 0;
        padding: 12px 16px;
        font-size: 12.5px;
        letter-spacing: 0.5px;
        color: #FBF8F1;
        background: linear-gradient(0deg, rgba(36,26,27,0.88), transparent);
    }

@media (max-width: 900px) {
    .gallery-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 600px) {
    .gallery-grid {
        grid-template-columns: 1fr;
    }
}

/* ---------- Master plan framed image ---------- */
.framed-plate {
    border: 1px solid var(--sand-deep);
    background: var(--surface);
    border-radius: var(--radius);
    padding: 16px;
    box-shadow: var(--shadow-sm);
}

    .framed-plate img {
        display: block;
        width: 100%;
        border-radius: var(--radius-sm);
    }

    .framed-plate .plate-caption {
        text-align: center;
        padding-top: 12px;
        font-size: 12.5px;
        letter-spacing: 1px;
        text-transform: uppercase;
        color: var(--taupe);
    }

/* ---------- Unit type editorial cards ---------- */
.unit-type-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
}

.unit-type-card {
    background: var(--surface);
    border: 1px solid var(--sand-deep);
    border-radius: var(--radius);
    padding: 26px 18px;
    text-align: center;
    position: relative;
    transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease), border-color 0.35s var(--ease);
}

    .unit-type-card:hover {
        transform: translateY(-5px);
        box-shadow: var(--shadow-md);
        border-color: var(--gold);
    }

    .unit-type-card .type-letter {
        font-family: 'Alexandria', sans-serif;
        font-size: 2.5rem;
        color: var(--gold);
        line-height: 1;
        margin-bottom: 8px;
    }

    .unit-type-card .type-area {
        font-size: 1.15rem;
        font-weight: 700;
        color: var(--heading);
    }

    .unit-type-card .type-count {
        font-size: 12.5px;
        color: var(--taupe);
        letter-spacing: 0.5px;
        margin-top: 3px;
    }

@media (max-width: 900px) {
    .unit-type-row {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 560px) {
    .unit-type-row {
        grid-template-columns: 1fr;
    }
}

/* ---------- Final CTA band ---------- */
.cta-band {
    background: linear-gradient(135deg, var(--mocha) 0%, var(--mocha-2) 100%);
    color: #FBF8F1;
    border-radius: var(--radius);
    padding: 54px 32px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

    .cta-band::before {
        content: "";
        position: absolute;
        inset: 0;
        opacity: 0.10;
        background-image: radial-gradient(circle at 20% 30%, rgba(203,174,130,0.6) 0, transparent 2px), radial-gradient(circle at 80% 75%, rgba(203,174,130,0.6) 0, transparent 2px);
        background-size: 42px 42px;
        pointer-events: none;
    }

    .cta-band h3 {
        color: #FBF8F1;
        margin-bottom: 8px;
        position: relative;
    }

    .cta-band p {
        color: rgba(251,248,241,0.85);
        margin-bottom: 24px;
        position: relative;
    }

    .cta-band .btn {
        position: relative;
    }

    .cta-band .cta-outline-btn {
        border-color: #FBF8F1;
        color: #FBF8F1;
        background: transparent;
    }

        .cta-band .cta-outline-btn:hover,
        .cta-band .cta-outline-btn:focus {
            background: #FBF8F1;
            border-color: #FBF8F1;
            color: var(--mocha);
        }

/* ---------- Responsive ---------- */
@media (max-width: 768px) {
    .fact-strip {
        flex-wrap: wrap;
    }

        .fact-strip .fact {
            flex: 1 1 50%;
        }

            .fact-strip .fact:nth-child(2)::before {
                display: none;
            }

    main.page-body {
        padding: 20px;
    }

    .site-header-inner {
        padding: 12px 18px;
    }

    .brand-sub {
        display: none;
    }

    .section-block {
        margin: 30px 0;
    }
}

/* =========================================================
   Admin area — same brand system, applied over stock
   Bootstrap utility classes used by the CMS screens.
   ========================================================= */
.admin-navbar {
    background: linear-gradient(120deg, var(--mocha) 0%, var(--mocha-deep) 100%) !important;
    border-bottom: 1px solid rgba(203, 174, 130, 0.3);
    padding: 14px 0;
}

    .admin-navbar .navbar-brand {
        font-family: 'Alexandria', sans-serif;
        display: flex;
        align-items: center;
        gap: 10px;
        color: #F3ECDF !important;
    }

        .admin-navbar .navbar-brand img {
            height: 32px;
            width: auto;
            border-radius: 6px;
        }

body.admin-body {
    background: var(--sand);
    padding-top: 0;
}

.admin-sidebar .list-group-item {
    border: none;
    border-inline-start: 2px solid transparent;
    color: var(--ink-soft);
    font-weight: 600;
    border-radius: var(--radius-sm) !important;
    margin-bottom: 3px;
    transition: all 0.3s var(--ease);
}

    .admin-sidebar .list-group-item:hover {
        background: rgba(176, 138, 84, 0.10);
        border-inline-start-color: var(--gold);
        color: var(--heading);
    }

    .admin-sidebar .list-group-item.active {
        background: var(--mocha);
        border-color: var(--heading);
        color: #F3ECDF;
    }

/* Stat cards on the dashboard: re-tint the stock bg-* utilities */
.card.bg-primary {
    background: linear-gradient(135deg, var(--mocha) 0%, var(--mocha-2) 100%) !important;
}

.card.bg-success {
    background: linear-gradient(135deg, var(--available) 0%, #486048 100%) !important;
}

.card.bg-warning {
    background: linear-gradient(135deg, var(--reserved) 0%, var(--gold-dark) 100%) !important;
    color: #fff !important;
}

.card.bg-danger {
    background: linear-gradient(135deg, var(--sold) 0%, #6d3a33 100%) !important;
}

.card.bg-primary, .card.bg-success, .card.bg-warning, .card.bg-danger {
    border: none;
    border-radius: var(--radius);
}

    .card.bg-primary h3, .card.bg-success h3, .card.bg-warning h3, .card.bg-danger h3 {
        font-family: 'Alexandria', sans-serif;
        color: #fff !important;
    }

/* Buttons used across admin screens */
.btn-dark {
    background: var(--mocha) !important;
    border-color: var(--mocha) !important;
    color: #F3ECDF !important;
}

    .btn-dark:hover {
        background: var(--mocha-deep) !important;
        border-color: var(--mocha-deep) !important;
    }

.btn-outline-dark {
    color: var(--mocha) !important;
    border-color: var(--mocha) !important;
}

    .btn-outline-dark:hover {
        background: var(--mocha) !important;
        color: #F3ECDF !important;
    }

.btn-primary {
    background: var(--gold) !important;
    border-color: var(--gold-dark) !important;
    color: #fff !important;
}

    .btn-primary:hover {
        background: var(--gold-dark) !important;
        border-color: var(--gold-dark) !important;
    }

.btn-outline-primary {
    color: var(--gold-dark) !important;
    border-color: var(--gold) !important;
}

    .btn-outline-primary:hover {
        background: var(--gold) !important;
        color: #fff !important;
    }

.btn-outline-danger {
    color: var(--sold) !important;
    border-color: var(--sold) !important;
}

    .btn-outline-danger:hover {
        background: var(--sold) !important;
        color: #fff !important;
    }

.btn-outline-secondary {
    color: var(--taupe) !important;
    border-color: var(--taupe) !important;
}

/* Tables */
.table-dark {
    --bs-table-bg: var(--mocha);
    --bs-table-color: #F3ECDF;
}

.table-hover > tbody > tr:hover > * {
    --bs-table-accent-bg: rgba(176, 138, 84, 0.08);
}

/* Login screen */
.login-shell {
    min-height: 100vh;
    display: flex;
    align-items: center;
    background: radial-gradient(circle at 20% 20%, var(--mocha-2), var(--mocha-deep));
}

    .login-shell .login-card {
        border: none;
        border-radius: var(--radius);
        box-shadow: var(--shadow-lg);
        overflow: hidden;
    }

    .login-shell .login-brand {
        text-align: center;
        margin-bottom: 6px;
    }

        .login-shell .login-brand img {
            width: 64px;
            height: auto;
            margin-bottom: 10px;
            border-radius: 8px;
        }

        .login-shell .login-brand h4 {
            font-family: 'Alexandria', sans-serif;
            color: var(--heading);
        }

.hotspot-canvas-card #canvas-wrapper {
    border: 1px solid var(--sand-deep);
    border-radius: var(--radius-sm);
}

/* =========================================================
   Home hero — full-bleed, taller, first-impression entrance
   ========================================================= */
.hero-bleed {
    margin: -36px -36px 0;
}

/* قسم "المخطط العام" ياخد عرض الصفحة بالكامل (زي الهيرو تمامًا) بدل ما
   يتقيّد بعرض المحتوى العادي، عشان يبقى أكبر وأوضح */
.section-bleed {
    margin-inline: -36px;
}

.home-slider--full .home-slider-slide {
    flex: 0 0 100% !important;
    margin-inline-end: 0 !important;
    aspect-ratio: 16 / 9;
    scroll-snap-align: start !important;
}

.home-slider--full .home-slider-track {
    scroll-snap-type: x mandatory;
}

.framed-plate--full {
    border-radius: 0;
    border-inline: none;
    padding: 0;
    background: transparent;
    box-shadow: none;
}

    .framed-plate--full img {
        border-radius: 0;
    }

    .framed-plate--full .plate-caption {
        padding: 12px 36px 0;
    }

@media (max-width: 768px) {
    .section-bleed {
        margin-inline: -20px;
    }
}

.brochure-hero--tall {
    min-height: 100vh;
    border-radius: 0;
}

    .brochure-hero--tall .hero-inner {
        padding: 64px 56px 90px;
        max-width: 820px;
    }

    .brochure-hero--tall h1 {
        font-size: clamp(2.8rem, 7vw, 5.6rem);
        line-height: 1.05;
    }

/* ---------- علامة رأسية جانبية (توقيع تحريري فخم) ---------- */
.hero-vertical-tag {
    position: absolute;
    inset-inline-end: 28px;
    top: 50%;
    transform: translateY(-50%) rotate(180deg);
    -webkit-writing-mode: vertical-rl;
    writing-mode: vertical-rl;
    -webkit-text-orientation: mixed;
    text-orientation: mixed;
    overflow: visible;
    font-family: 'Alexandria', sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 4px;
    color: rgba(248,244,236,0.55);
    z-index: 1;
    display: none;
}

    .hero-vertical-tag::before {
        content: "";
        display: block;
        width: 1px;
        height: 60px;
        margin-inline: auto;
        margin-bottom: 14px;
        background: linear-gradient(180deg, transparent, rgba(203,174,130,0.6));
    }

@media (min-width: 1200px) {
    .hero-vertical-tag {
        display: block;
    }
}

/* ---------- خط قطري ذهبي "بيترسم" — عنصر بصري مميز ---------- */
.hero-signature-line {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    overflow: hidden;
}

    .hero-signature-line svg {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
    }

    .hero-signature-line path {
        fill: none;
        stroke: var(--champagne);
        stroke-width: 1;
        opacity: 0.55;
        stroke-dasharray: 1400;
        stroke-dashoffset: 1400;
        animation: signatureDraw 2.6s var(--ease) 0.5s forwards;
    }

@keyframes signatureDraw {
    to {
        stroke-dashoffset: 0;
    }
}

/* ---------- تحريك العنوان كلمة كلمة ---------- */
.word-reveal {
    display: inline-block;
    overflow: hidden;
    vertical-align: top;
}

    .word-reveal span {
        display: inline-block;
        transform: translateY(110%);
        animation: wordUp 0.9s var(--ease) forwards;
    }

@keyframes wordUp {
    to {
        transform: translateY(0);
    }
}

/* الشعار الشفاف في الهيرو اتشال بناءً على الطلب —
   شكله كان طالع كمربع فاتح لأن ملف اللوجو مالوش خلفية شفافة (RGB مش RGBA). */
.hero-watermark {
    display: none !important;
}

.hero-kicker {
    display: inline-block;
    font-family: 'Alexandria', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 3px;
    color: #3A2C2E;
    background: #E6D6B8;
    padding: 6px 16px;
    border-radius: var(--radius-pill);
    margin-bottom: 16px;
    position: relative;
    z-index: 1;
}

/* Staggered entrance animation — plays once on load, not on scroll */
.hero-anim {
    opacity: 0;
    transform: translateY(14px);
    animation: heroRise 0.8s var(--ease) forwards;
    position: relative;
    z-index: 1;
}

    .hero-anim.d1 {
        animation-delay: 0.15s;
    }

    .hero-anim.d2 {
        animation-delay: 0.30s;
    }

    .hero-anim.d3 {
        animation-delay: 0.9s;
    }

    .hero-anim.d4 {
        animation-delay: 1.05s;
    }

    .hero-anim.d5 {
        animation-delay: 1.2s;
    }

.hero-anim-title {
    position: relative;
    z-index: 1;
    margin: 8px 0 4px;
}

@keyframes heroRise {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .hero-anim {
        animation: none;
        opacity: 1;
        transform: none;
    }

    .word-reveal span {
        transform: none;
        animation: none;
    }
}

/* ---------- مؤشر السكرول الجديد ---------- */
.brochure-hero .scroll-indicator {
    align-items: center;
    gap: 10px;
}

    .brochure-hero .scroll-indicator .chevron {
        width: 22px;
        height: 22px;
        border-inline-end: 1.5px solid rgba(248,244,236,0.7);
        border-bottom: 1.5px solid rgba(248,244,236,0.7);
        transform: rotate(45deg);
        animation: chevronBounce 1.8s var(--ease) infinite;
    }

@keyframes chevronBounce {
    0%, 100% {
        transform: rotate(45deg) translate(0, 0);
        opacity: 0.5;
    }

    50% {
        transform: rotate(45deg) translate(4px, 4px);
        opacity: 1;
    }
}

/* Floating stat card that anchors onto a hero's lower edge (used on /Pages/Project) */
.fact-strip--floating {
    position: relative;
    z-index: 2;
    margin: -46px 24px 0;
    box-shadow: var(--shadow-lg);
}

@media (max-width: 768px) {
    .hero-bleed {
        margin: -20px -20px 0;
    }

    .brochure-hero--tall {
        min-height: 92vh;
    }

        .brochure-hero--tall .hero-inner {
            padding: 40px 26px 60px;
        }

    .fact-strip--floating {
        margin: -34px 8px 0;
    }
}

/* =========================================================
   صفحات المحتوى الداخلية (من نحن / سابقة الأعمال / نبذة عن
   المشروع / الخدمات) — نفس اللغة البصرية للبروشور
   ========================================================= */

/* ---------- Inner page hero (شريط علوي مختصر) ---------- */
.page-hero {
    position: relative;
    min-height: 320px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    background: linear-gradient(160deg, var(--mocha) 0%, var(--mocha-2) 55%, var(--mocha-deep) 100%);
    color: var(--text-on-dark);
    overflow: hidden;
    margin: -24px -24px 0;
}

    .page-hero::before {
        content: "";
        position: absolute;
        inset: 0;
        background-image: radial-gradient(circle at 20% 20%, rgba(203,174,130,0.18), transparent 55%), radial-gradient(circle at 85% 80%, rgba(176,138,84,0.16), transparent 50%);
    }

    .page-hero.has-image {
        background-size: cover;
        background-position: center;
    }

        .page-hero.has-image::after {
            content: "";
            position: absolute;
            inset: 0;
            background: linear-gradient(180deg, rgba(36,26,27,0.72) 0%, rgba(36,26,27,0.55) 60%, rgba(36,26,27,0.85) 100%);
        }

    .page-hero .page-hero-inner {
        position: relative;
        z-index: 2;
        max-width: 760px;
        padding: 60px 24px 54px;
    }

    .page-hero .section-eyebrow {
        color: var(--champagne);
    }

    .page-hero h1 {
        font-size: clamp(2rem, 4vw, 2.9rem);
        color: var(--text-on-dark);
        margin: 10px 0 6px;
    }

    .page-hero p.lead {
        color: rgba(248,244,236,0.85);
        margin-bottom: 0;
    }

@media (max-width: 768px) {
    .page-hero {
        min-height: 240px;
        margin: -20px -20px 0;
    }

        .page-hero .page-hero-inner {
            padding: 44px 20px 38px;
        }
}

/* ---------- Value / Service cards ---------- */
.feature-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

.feature-card {
    background: var(--surface);
    border: 1px solid var(--sand-deep);
    border-radius: var(--radius);
    padding: 30px 22px;
    text-align: center;
    transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease), border-color 0.35s var(--ease);
}

    .feature-card:hover {
        transform: translateY(-5px);
        box-shadow: var(--shadow-md);
        border-color: var(--gold);
    }

    .feature-card .feature-icon {
        width: 62px;
        height: 62px;
        margin: 0 auto 16px;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        background: linear-gradient(135deg, var(--champagne-soft) 0%, var(--sand-deep) 100%);
        color: var(--gold-dark);
        font-size: 1.6rem;
    }

    .feature-card h3 {
        font-size: 1.05rem;
        margin-bottom: 8px;
        color: var(--heading);
    }

    .feature-card p {
        font-size: 13.5px;
        color: var(--ink-soft);
        margin-bottom: 0;
        line-height: 1.7;
    }

@media (max-width: 900px) {
    .feature-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 560px) {
    .feature-grid {
        grid-template-columns: 1fr;
    }
}

/* ---------- Portfolio grid ---------- */
.portfolio-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}

.portfolio-card {
    position: relative;
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    aspect-ratio: 4 / 3;
    background: var(--sand-deep);
}

    .portfolio-card.featured {
        grid-column: span 2;
        grid-row: span 2;
    }

    .portfolio-card img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform 0.5s var(--ease);
    }

    .portfolio-card:hover img {
        transform: scale(1.06);
    }

    .portfolio-card .portfolio-overlay {
        position: absolute;
        inset: 0;
        display: flex;
        flex-direction: column;
        justify-content: flex-end;
        padding: 20px;
        background: linear-gradient(180deg, transparent 40%, rgba(36,26,27,0.85) 100%);
        color: var(--text-on-dark);
        pointer-events: none;
    }

    .portfolio-card .portfolio-cat {
        font-size: 11px;
        letter-spacing: 1.5px;
        text-transform: uppercase;
        color: var(--champagne);
        margin-bottom: 4px;
    }

    .portfolio-card h3 {
        color: var(--text-on-dark);
        font-size: 1.05rem;
        margin-bottom: 2px;
    }

    .portfolio-card .portfolio-loc {
        font-size: 12.5px;
        color: rgba(248,244,236,0.8);
    }

        .portfolio-card .portfolio-loc i {
            color: var(--champagne);
        }

@media (max-width: 900px) {
    .portfolio-grid {
        grid-template-columns: 1fr 1fr;
    }

    .portfolio-card.featured {
        grid-column: span 2;
        grid-row: span 1;
        aspect-ratio: 16 / 9;
    }
}

@media (max-width: 560px) {
    .portfolio-grid {
        grid-template-columns: 1fr;
    }

    .portfolio-card.featured {
        grid-column: span 1;
    }
}

.empty-state {
    text-align: center;
    padding: 60px 20px;
    color: var(--taupe);
}

    .empty-state i {
        font-size: 2.4rem;
        color: var(--gold);
        margin-bottom: 10px;
        display: block;
    }

/* =========================================================
   سلايدرات الصفحة الرئيسية (الموقع / المخطط العام)
   ========================================================= */
.home-slider {
    position: relative;
    border-radius: var(--radius);
    overflow: hidden;
}

.home-slider-track {
    display: flex;
    overflow-x: auto;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    cursor: grab;
    gap: 0;
}

    .home-slider-track::-webkit-scrollbar {
        display: none;
    }

    .home-slider-track.dragging {
        cursor: grabbing;
    }

/* الـ snap يتفعّل بس في سلايدر الصورة الواحدة */
.home-slider:not(.home-slider--multi) .home-slider-track {
    scroll-snap-type: x mandatory;
}

/* سلايدر الصورة الواحدة (الموقع) لازم يملى صندوق split-media بالكامل
   من غير ما يسيب فراغ تحته، فبنشيل الـ aspect-ratio ونخليه height:100% */
.home-slider:not(.home-slider--multi) {
    height: 100%;
}

    .home-slider:not(.home-slider--multi) .home-slider-track {
        height: 100%;
    }

    .home-slider:not(.home-slider--multi) .home-slider-slide {
        height: 100%;
    }

.home-slider-slide {
    flex: 0 0 100%;
    aspect-ratio: 16 / 10;
}

.home-slider:not(.home-slider--multi) .home-slider-slide {
    scroll-snap-align: start;
}

.home-slider-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
    user-select: none;
}

/* multi: يعرض حوالي صورتين على الديسكتوب، وممنوع منعًا باتًا أي snap هنا */
.home-slider--multi .home-slider-slide {
    flex: 0 0 44%;
    margin-inline-end: 2%;
    aspect-ratio: 4 / 3;
    border-radius: var(--radius-sm);
    overflow: hidden;
    scroll-snap-align: none !important;
}

/* نقط سلايدر المخطط العام (multi): صف عادي تحت الصور، مفيهوش صندوق حواليها */
.home-slider--multi .home-slider-dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 14px;
}

/* نقط سلايدر الموقع (single): بتترسم فوق الصورة نفسها (زي الاستوري) بدل
   ما تاخد صف مستقل يسيب فراغ أبيض تحت الخريطة جوه الصندوق */
.home-slider:not(.home-slider--multi) .home-slider-dots {
    position: absolute;
    bottom: 14px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 0;
    z-index: 2;
    padding: 5px 10px;
    background: rgba(20, 16, 12, 0.35);
    border-radius: 999px;
    backdrop-filter: blur(2px);
}

.home-slider-dots button {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    border: none;
    background: var(--sand-deep);
    padding: 0;
    cursor: pointer;
    transition: background 0.3s var(--ease), transform 0.3s var(--ease);
}

.home-slider:not(.home-slider--multi) .home-slider-dots button {
    background: rgba(255, 255, 255, 0.55);
}

.home-slider-dots button.active {
    background: var(--gold);
    transform: scale(1.3);
}

.home-slider:not(.home-slider--multi) .home-slider-dots button.active {
    background: #fff;
}

@media (max-width: 768px) {
    .home-slider--multi .home-slider-slide {
        flex: 0 0 78%;
        margin-inline-end: 3%;
    }
}

/* =========================================================
   خدماتنا — شبكة صور بنفس شكل البروشور، مع مسافات وتنظيم واضح
   ========================================================= */
.service-section {
    max-width: 1180px;
    margin: 0 auto;
    padding: 56px 24px;
}

    .service-section + .service-section {
        border-top: 1px solid var(--sand-deep);
    }

.service-section-header {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    margin-bottom: 30px;
}

.service-section-num {
    font-family: var(--font-display, serif);
    font-size: 2.4rem;
    color: var(--sand-deep);
    line-height: 1;
    flex-shrink: 0;
}

.service-section-icon {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--champagne-soft) 0%, var(--sand-deep) 100%);
    color: var(--gold-dark);
    font-size: 1.5rem;
    flex-shrink: 0;
}

.service-section-thumb {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    border: 3px solid var(--surface);
    outline: 2px solid var(--gold);
    box-shadow: var(--shadow-sm);
}

    .service-section-thumb img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

.service-section-titles h2 {
    margin-bottom: 6px;
    font-size: 1.6rem;
}

.service-section-titles p {
    color: var(--ink-soft);
    font-size: 14.5px;
    max-width: 640px;
}

.service-photo-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 22px;
}

.service-photo-card {
    position: relative;
    border: 3px solid var(--surface, #fff);
    outline: 1px solid var(--sand-deep);
    border-radius: 6px;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    box-shadow: var(--shadow-sm);
    transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease);
}

    .service-photo-card:hover {
        transform: translateY(-4px);
        box-shadow: var(--shadow-md);
    }

    .service-photo-card img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

.service-photo-caption {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(36, 26, 27, 0.85);
    color: var(--text-on-dark);
    font-size: 12.5px;
    line-height: 1.5;
    text-align: center;
    padding: 10px 12px;
}

@media (max-width: 992px) {
    .service-photo-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
    }

    .service-section {
        padding: 44px 20px;
    }
}

@media (max-width: 560px) {
    .service-section-header {
        gap: 14px;
        margin-bottom: 22px;
    }

    .service-section-num {
        font-size: 1.8rem;
    }

    .service-section-icon {
        width: 46px;
        height: 46px;
        font-size: 1.2rem;
    }

    .service-section-thumb {
        width: 50px;
        height: 50px;
    }

    .service-section-titles h2 {
        font-size: 1.25rem;
    }

    .service-photo-grid {
        grid-template-columns: 1fr 1fr;
        gap: 12px;
    }

    .service-photo-caption {
        font-size: 11.5px;
        padding: 7px 8px;
    }
}

/* =========================================================
   شريط التنقل الأفقي بين المخططات (Floor Navigator)
   ========================================================= */
.floor-nav-strip {
    display: flex;
    gap: 14px;
    overflow-x: auto;
    padding-bottom: 10px;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
}

    .floor-nav-strip::-webkit-scrollbar {
        height: 6px;
    }

    .floor-nav-strip::-webkit-scrollbar-thumb {
        background: var(--sand-deep);
        border-radius: 999px;
    }

.floor-nav-item {
    flex: 0 0 auto;
    scroll-snap-align: start;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    text-decoration: none;
    width: 120px;
}

.floor-nav-thumb {
    width: 120px;
    height: 84px;
    border-radius: 8px;
    overflow: hidden;
    border: 2px solid var(--sand-deep);
    background: var(--surface);
    transition: border-color 0.25s var(--ease), transform 0.25s var(--ease);
}

    .floor-nav-thumb img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

.floor-nav-item:hover .floor-nav-thumb {
    transform: translateY(-2px);
    border-color: var(--gold);
}

.floor-nav-item.active .floor-nav-thumb {
    border-color: var(--gold-dark);
    box-shadow: 0 0 0 2px rgba(176,138,84,0.25);
}

.floor-nav-label {
    font-size: 12.5px;
    color: var(--ink-soft);
    text-align: center;
}

.floor-nav-item.active .floor-nav-label {
    color: var(--gold-dark);
    font-weight: 600;
}

/* =========================================================
   مربع بحث الشقق داخل الدور الواحد
   ========================================================= */
.floor-search-box {
    position: relative;
    max-width: 320px;
    width: 100%;
}

    .floor-search-box i {
        position: absolute;
        top: 50%;
        right: 12px;
        transform: translateY(-50%);
        color: var(--taupe);
        pointer-events: none;
    }

    .floor-search-box input {
        padding-right: 36px;
    }

@media (max-width: 768px) {
    .floor-search-box {
        max-width: 100%;
    }
}

/* ---------- تنبيه واضح قبل المخطط: اضغط على الشقة ---------- */
.plan-instruction-banner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 14px 22px;
    background: var(--surface);
    border: 1.5px solid var(--gold);
    border-radius: var(--radius);
    color: var(--heading);
    font-weight: 700;
    font-size: 14.5px;
    text-align: center;
    animation: instructionPulse 2.4s var(--ease) infinite;
}

    .plan-instruction-banner i {
        font-size: 1.3rem;
        color: var(--gold-dark);
        flex-shrink: 0;
    }

@keyframes instructionPulse {
    0%, 100% {
        box-shadow: 0 0 0 0 rgba(176, 138, 84, 0.25);
    }

    50% {
        box-shadow: 0 0 0 8px rgba(176, 138, 84, 0);
    }
}

@media (max-width: 560px) {
    .plan-instruction-banner {
        font-size: 13px;
        padding: 12px 16px;
        gap: 8px;
    }
}

/* =========================================================
   صفحة "اختيار المخطط" (Floor Overview) — محطة أولى واضحة
   ========================================================= */
.floor-overview-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 26px;
}

.floor-overview-card {
    display: block;
    background: var(--surface);
    border: 1px solid var(--sand-deep);
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease), border-color 0.35s var(--ease);
    color: inherit;
}

    .floor-overview-card:hover {
        transform: translateY(-6px);
        box-shadow: var(--shadow-lg);
        border-color: var(--gold);
        color: inherit;
    }

.floor-overview-img {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
}

    .floor-overview-img img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform 0.6s var(--ease);
    }

.floor-overview-card:hover .floor-overview-img img {
    transform: scale(1.07);
}

.floor-overview-badge {
    position: absolute;
    top: 14px;
    inset-inline-start: 14px;
    font-size: 12px;
    font-weight: 700;
    padding: 6px 14px;
    border-radius: var(--radius-pill);
    backdrop-filter: blur(6px);
}

    .floor-overview-badge.available {
        background: rgba(94,122,94,0.85);
        color: #fff;
    }

    .floor-overview-badge.sold {
        background: rgba(139,75,66,0.85);
        color: #fff;
    }

.floor-overview-body {
    padding: 22px;
}

    .floor-overview-body h3 {
        font-size: 1.3rem;
        margin-bottom: 4px;
    }

    .floor-overview-body p {
        color: var(--ink-soft);
        font-size: 13.5px;
        margin-bottom: 14px;
    }

.floor-overview-cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13.5px;
    font-weight: 700;
    color: var(--gold-dark);
    transition: gap 0.3s var(--ease);
}

.floor-overview-card:hover .floor-overview-cta {
    gap: 10px;
}

.floor-overview-card.is-soldout {
    opacity: 0.75;
}

@media (max-width: 992px) {
    .floor-overview-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 560px) {
    .floor-overview-grid {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   لوحة فلاتر البحث عن شقة (اختيار فقط، من غير كتابة حرة)
   ========================================================= */
.filters-panel {
    width: 380px;
    background: var(--surface);
}

@media (max-width: 480px) {
    .filters-panel {
        width: 100%;
    }
}

.filters-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 20px;
    border-bottom: 1px solid var(--sand-deep);
}

.filters-panel-body {
    padding: 20px;
    overflow-y: auto;
    flex: 1 1 auto;
}

.filter-group {
    margin-bottom: 28px;
}

.filter-label {
    display: block;
    font-weight: 700;
    font-size: 13.5px;
    color: var(--heading);
    margin-bottom: 10px;
}

.filters-panel-footer {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 20px;
    border-top: 1px solid var(--sand-deep);
}

/* ---------- Dual range slider (المساحة) ---------- */
.dual-range {
    position: relative;
    height: 22px;
    margin-bottom: 14px;
}

.dual-range-track {
    position: absolute;
    top: 50%;
    inset-inline: 0;
    height: 4px;
    background: var(--sand-deep);
    border-radius: 999px;
    transform: translateY(-50%);
}

.dual-range-fill {
    position: absolute;
    top: 0;
    bottom: 0;
    background: var(--gold);
    border-radius: 999px;
}

.dual-range input[type="range"] {
    position: absolute;
    inset-inline: 0;
    top: 0;
    width: 100%;
    height: 22px;
    margin: 0;
    background: transparent;
    pointer-events: none;
    -webkit-appearance: none;
    appearance: none;
}

    .dual-range input[type="range"]::-webkit-slider-thumb {
        pointer-events: all;
        -webkit-appearance: none;
        appearance: none;
        width: 20px;
        height: 20px;
        border-radius: 50%;
        background: var(--surface);
        border: 3px solid var(--gold-dark);
        box-shadow: var(--shadow-sm);
        cursor: pointer;
        position: relative;
        z-index: 2;
    }

    .dual-range input[type="range"]::-moz-range-thumb {
        pointer-events: all;
        width: 20px;
        height: 20px;
        border-radius: 50%;
        background: var(--surface);
        border: 3px solid var(--gold-dark);
        box-shadow: var(--shadow-sm);
        cursor: pointer;
    }

    .dual-range input[type="range"]::-webkit-slider-runnable-track,
    .dual-range input[type="range"]::-moz-range-track {
        background: transparent;
    }

.dual-range-inputs {
    display: flex;
    gap: 12px;
}

    .dual-range-inputs > div {
        flex: 1 1 0;
    }

.dual-range-input-label {
    display: block;
    font-size: 11px;
    color: var(--taupe);
    margin-bottom: 4px;
}

/* ---------- أزرار حالة الشقة (اختيار واحد بس، شكل Pill) ---------- */
.status-pill-group {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.status-pill-radio {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.status-pill-btn {
    display: inline-flex;
    align-items: center;
    padding: 8px 18px;
    border-radius: var(--radius-pill);
    border: 1.5px solid var(--sand-deep);
    font-size: 13px;
    font-weight: 600;
    color: var(--ink-soft);
    cursor: pointer;
    transition: all 0.25s var(--ease);
}

.status-pill-radio:checked + .status-pill-btn {
    background: var(--mocha);
    border-color: var(--mocha);
    color: #F3ECDF;
}

    .status-pill-radio:checked + .status-pill-btn.available {
        background: var(--available);
        border-color: var(--available);
        color: #fff;
    }

    .status-pill-radio:checked + .status-pill-btn.reserved {
        background: var(--reserved);
        border-color: var(--reserved);
        color: #fff;
    }

    .status-pill-radio:checked + .status-pill-btn.sold {
        background: var(--sold);
        border-color: var(--sold);
        color: #fff;
    }

.status-pill-radio:focus-visible + .status-pill-btn {
    outline: 2px solid var(--gold);
    outline-offset: 2px;
}

/* الفلاتر والنتائج كل واحد فيهم بياخد ارتفاع الشاشة المتاحة، وكل واحد بيعمل
   Scroll لوحده تمامًا من غير ما يأثر على التاني — على كل أحجام الشاشات */
.filters-card {
    position: static;
}

/* =========================================================
   لوحة تكبير الصور (Zoom/Pan Lightbox) — لصورة الشقة ومخطط الشقة
   ========================================================= */
.zoom-hint {
    position: absolute;
    bottom: 12px;
    inset-inline-end: 12px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: rgba(36, 26, 27, 0.65);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    pointer-events: none;
    backdrop-filter: blur(2px);
}

.image-zoom-modal {
    position: fixed;
    inset: 0;
    z-index: 2000;
    background: rgba(20, 16, 12, 0.94);
    display: flex;
    flex-direction: column;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.25s var(--ease), visibility 0.25s var(--ease);
}

    .image-zoom-modal.is-open {
        opacity: 1;
        visibility: visible;
    }

.image-zoom-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    flex-shrink: 0;
}

.image-zoom-caption {
    color: var(--text-on-dark);
    font-weight: 600;
    font-size: 14px;
}

.image-zoom-actions {
    display: flex;
    gap: 8px;
}

.zoom-btn {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 1px solid rgba(248,244,236,0.3);
    background: rgba(248,244,236,0.08);
    color: var(--text-on-dark);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    cursor: pointer;
    transition: background 0.2s var(--ease);
}

    .zoom-btn:hover {
        background: rgba(248,244,236,0.2);
    }

.zoom-btn-close {
    border-color: rgba(176,138,84,0.5);
}

.image-zoom-viewport {
    flex: 1 1 auto;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    touch-action: none;
    cursor: zoom-in;
}

    .image-zoom-viewport img {
        max-width: 92%;
        max-height: 85vh;
        transform-origin: center center;
        transition: transform 0.05s linear;
        user-select: none;
        -webkit-user-drag: none;
    }

.image-zoom-help {
    text-align: center;
    color: rgba(248,244,236,0.6);
    font-size: 12px;
    padding: 10px 16px 16px;
    flex-shrink: 0;
}

@media (max-width: 560px) {
    .image-zoom-caption {
        font-size: 12.5px;
    }

    .zoom-btn {
        width: 34px;
        height: 34px;
    }
}

/* =========================================================
   الفوتر — تصميم فاخر متعدد الأعمدة بنفس هوية الموقع
   ========================================================= */
.site-footer {
    background: linear-gradient(190deg, var(--mocha) 0%, var(--mocha-deep) 100%);
    color: rgba(248, 244, 236, 0.82);
    margin-top: 40px;
}

.site-footer-top {
    max-width: 1320px;
    margin: 0 auto;
    padding: 56px 36px 40px;
    display: grid;
    grid-template-columns: 1.6fr 1fr 1fr 1.2fr;
    gap: 36px;
}

.site-footer-brand .site-footer-logo {
    height: 46px;
    width: auto;
    filter: brightness(0) invert(1);
    opacity: 0.92;
    margin-bottom: 14px;
}

.site-footer-tagline {
    font-family: var(--font-display);
    font-size: 15px;
    color: var(--champagne);
    margin-bottom: 0;
    line-height: 1.7;
}

.site-footer-heading {
    font-family: var(--font-display);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--champagne);
    margin-bottom: 18px;
    position: relative;
    padding-bottom: 10px;
}

    .site-footer-heading::after {
        content: "";
        position: absolute;
        bottom: 0;
        inset-inline-start: 0;
        width: 32px;
        height: 2px;
        background: var(--gold);
    }

.site-footer-links,
.site-footer-contact {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 11px;
}

    .site-footer-links a,
    .site-footer-contact a {
        color: rgba(248, 244, 236, 0.82);
        font-size: 14px;
        transition: color 0.25s var(--ease), padding-inline-start 0.25s var(--ease);
    }

        .site-footer-links a:hover {
            color: var(--champagne);
            padding-inline-start: 4px;
        }

    .site-footer-contact li {
        font-size: 14px;
        display: flex;
        align-items: center;
        gap: 8px;
    }

    .site-footer-contact i {
        color: var(--gold);
        font-size: 15px;
    }

    .site-footer-contact a {
        color: rgba(248, 244, 236, 0.82);
    }

        .site-footer-contact a:hover {
            color: var(--champagne);
        }

.site-footer-bottom {
    border-top: 1px solid rgba(248, 244, 236, 0.12);
    padding: 18px 36px;
    text-align: center;
    font-size: 12.5px;
    letter-spacing: 0.4px;
    color: rgba(248, 244, 236, 0.55);
}

.site-footer-dot {
    margin: 0 6px;
    color: var(--gold);
}

@media (max-width: 900px) {
    .site-footer-top {
        grid-template-columns: 1fr 1fr;
        gap: 32px 20px;
        padding: 44px 24px 30px;
    }
}

@media (max-width: 560px) {
    .site-footer-top {
        grid-template-columns: 1fr;
        padding: 36px 20px 24px;
    }
}

/* ---------- لوجو "عمر نجم جروب" واضح فوق عنوان صفحة "من نحن" (بطلب العميل) ---------- */
.negm-group-logo {
    display: block;
    height: 120px;
    width: auto;
    margin: 12px auto 20px;
}

@media (max-width: 560px) {
    .negm-group-logo {
        height: 88px;
        margin: 10px auto 14px;
    }
}

/* ---------- أيقونات السوشيال ميديا في الفوتر ---------- */
.site-footer-social {
    display: flex;
    gap: 10px;
    margin-top: 18px;
}

.site-footer-social-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 1px solid rgba(248, 244, 236, 0.25);
    color: rgba(248, 244, 236, 0.85);
    font-size: 16px;
    transition: background 0.25s var(--ease), border-color 0.25s var(--ease), transform 0.25s var(--ease), color 0.25s var(--ease);
}

    .site-footer-social-icon:hover {
        background: var(--gold);
        border-color: var(--gold);
        color: #fff;
        transform: translateY(-2px);
    }

/* ---------- زرار واتساب عائم ---------- */
.floating-whatsapp {
    position: fixed;
    inset-inline-start: 22px;
    bottom: 22px;
    z-index: 1020;
    width: 54px;
    height: 54px;
    border-radius: 50%;
    background: #25D366;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.7rem;
    box-shadow: var(--shadow-md);
    transition: transform 0.25s var(--ease), box-shadow 0.25s var(--ease);
}

    .floating-whatsapp:hover {
        transform: translateY(-3px) scale(1.05);
        box-shadow: var(--shadow-lg);
        color: #fff;
    }

@media (max-width: 560px) {
    .floating-whatsapp {
        width: 48px;
        height: 48px;
        font-size: 1.4rem;
        inset-inline-start: 16px;
        bottom: 16px;
    }
}

/* كارت شقة غير متاحة في قائمة "وحدات هذا الدور" — لسه قابل للضغط ويوري
   التفاصيل، بس بمظهر باهت شوية يوضح إنها مش متاحة من أول نظرة */
.unit-card--unavailable {
    opacity: 0.72;
}
