/* ============================================================
   DMHouse — HEADER STYLES  v3
   ============================================================ */

/* ─── Reset ایزوله ─── */
.dm-main-header *,
.dm-main-header *::before,
.dm-main-header *::after {
    box-sizing: border-box !important;
}

.dm-main-header ul,
.dm-main-header li {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.dm-main-header a {
    text-decoration: none !important;
    box-shadow: none !important;
    color: inherit;
}

.dm-main-header img {
    max-width: 100%;
    display: block;
    box-shadow: none !important;
    border: none !important;
}

.dm-main-header button {
    font-family: inherit;
}


/* ════════════════════════════════════════════
   CSS Variables — رنگ‌بندی داینامیک
   (مقادیر از PHP در wp_head override می‌شوند)
   ════════════════════════════════════════════ */
:root {
    --dm-primary:var(--dm-primary);
    --dm-primary-10: rgba(180, 63, 63, 0.08);
    --dm-primary-20: rgba(180, 63, 63, 0.18);
    --dm-primary-tint: #fdf2f2;
    --dm-text: #1a1a1a;
    --dm-text-light: #888;
    --dm-border: #e8e8e8;
    --dm-bg-soft: #f8f9fb;
    --dm-white: #fff;
    --dm-radius: 10px;
    --dm-action-text: #444;
}


/* ════════════════════════════════════════════
   نوار تبلیغاتی بالای صفحه
   ════════════════════════════════════════════ */
.site-top-banner {
    width: 100%;
    display: block;
    line-height: 0;
}

.site-top-banner a {
    display: block;
    width: 100%;
}

.site-top-banner img {
    width: 100%;
    height: auto;
    display: block;
}


/* ════════════════════════════════════════════
   Wrapper اصلی هدر
   ════════════════════════════════════════════ */

/*
 * ⚠ هدر عمداً دیگر از --dm-bg-soft (پس‌زمینهٔ صفحه) تغذیه نمی‌شود.
 * تا پیش از این، هدر و بدنهٔ صفحه دقیقاً یک رنگِ خاکستریِ آبی‌فام داشتند و هدر
 * از صفحه جدا دیده نمی‌شد. حالا هدر توکنِ مستقلِ خودش را دارد (پیش‌فرض سفید،
 * قابل‌تغییر از تنظیمات) و در حالتِ شب همان بلوکِ توکنِ تیره آن را عوض می‌کند.
 */
.header-desktop {
    background-color: var(--dm-header-bg, #ffffff) !important;
}

.dm-main-header {
    width: 100% !important;
    max-width: 100% !important;
    direction: rtl !important;
    background-color: var(--dm-header-bg, #ffffff) !important;
    box-shadow: 0 2px 16px rgba(0, 0, 0, 0.07) !important;
    position: relative !important;
    z-index: var(--dm-z-header, 1200) !important;
}

/*
 * ⚠ این المان فقط عرض را محدود می‌کند و هرگز نباید رنگ بزند.
 * پیش‌تر پس‌زمینهٔ soft داشت در حالی که .header-mobile سفید بود و ۱۶/۱۰ پیکسل
 * پدینگ دورش می‌گذاشت ⇒ روی موبایل یک قابِ سفید دورِ یک بلوکِ خاکستری دیده
 * می‌شد؛ همان «هدر دو رنگ». روی دسکتاپ پنهان مانده بود چون آن‌جا هر دو لایه
 * تصادفاً یک رنگ بودند.
 */
.dm-header-container {
    width: 100% !important;
    max-width: var(--dm-container) !important;
    margin: 0 auto !important;
    position: static !important;
    background: transparent !important;
}


/* ════════════════════════════════════════════
   ردیف ۱: لوگو + جستجو + اکشن‌ها
   ════════════════════════════════════════════ */
.header-main-row {
    display: flex !important;
    align-items: center !important;
    gap: 24px !important;
    padding: 14px 0 !important;
    border-bottom: 1px solid var(--dm-border) !important;
}

/* لوگو */
.header-logo {
    flex: 0 0 auto !important;
}

.header-logo a {
    display: block !important;
}

.header-logo img {
    max-height: 48px !important;
    width: auto !important;
}

.header-logo .logo-text {
    font-size: 22px;
    font-weight: 900;
    color: var(--dm-text);
}

/* جستجو */
.header-search {
    flex: 1 !important;
    max-width: 600px !important;
}

/*
 * ⚠ باکس جستجو پیش‌تر پس‌زمینهٔ --dm-bg-soft و بوردرِ شفاف داشت، دقیقاً همان رنگِ
 * خودِ هدر ⇒ عملاً نامرئی بود و فقط یک متنِ راهنما وسطِ هدر شناور به‌نظر می‌رسید.
 * حالا کارتِ سفید با بوردرِ دیده‌شدنی است، مثل بقیهٔ کنترل‌های هدر.
 */
.header-search form,
.header-search .dms-inline-search__box {
    display: flex !important;
    align-items: center !important;
    background: var(--dm-header-search-bg, #f8f9fb) !important;
    border-radius: 12px !important;
    padding: 0 14px !important;
    height: 48px !important;
    border: 1.5px solid var(--dm-border) !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .04) !important;
    transition: border-color 0.2s, box-shadow 0.2s !important;
    gap: 8px !important;
}

.header-search form:hover,
.header-search .dms-inline-search__box:hover {
    border-color: #cfd3dd !important;
}

.header-search form:focus-within,
.header-search .dms-inline-search__box:focus-within {
    border-color: var(--dm-primary) !important;
    background: var(--dm-header-search-bg, #f8f9fb) !important;
    box-shadow: 0 4px 14px var(--dm-primary-10) !important;
}

.header-search input[type="search"],
.header-search input[type="text"] {
    flex: 1 !important;
    border: none !important;
    background: transparent !important;
    outline: none !important;
    font-size: 13px !important;
    color: var(--dm-text) !important;
    direction: rtl !important;
    padding: 0 !important;
    height: 100% !important;
    box-shadow: none !important;
    font-family: inherit;
}

/*
 * ⚠ فقط روی ورودیِ خودِ افزونه (کلاسِ dms-inline-search__input) — نه ورودیِ
 * فرمِ fallbackِ قالب که آیکونش داخلِ گپِ فلکس است، نه ابسلوت. آیکون سمتِ راستِ
 * باکس می‌نشیند (سمتِ start در RTL)، پس padding-inline-start همان سمتی‌ست که
 * باید فاصله بگیرد — این پدینگ placeholder را از زیرِ آیکونِ ابسلوت دور نگه
 * می‌دارد و متن دیگر رویِ آیکون نمی‌افتد.
 *
 * ⚠ سلکتور عمداً سه‌سطحی (نه دو کلاس تنها): قانونِ بالاتر در همین فایل
 * (`.header-search input[type="text"]`) وزنِ ۰-۲-۱ دارد (اتریبیوتِ نوع هم یک
 * واحد حساب می‌شود) و `padding: 0 !important` می‌زند — همان مقدارِ فیزیکی‌ای
 * که padding-inline-start در RTL به آن ترجمه می‌شود. دو کلاسِ ساده (۰-۲-۰) این
 * جنگ را می‌بازد؛ با افزودنِ ظرفِ باکس، وزن به ۰-۳-۰ می‌رسد و برنده می‌شود.
 */
.header-search .dms-inline-search__box .dms-inline-search__input,
.mobile-search-wrapper .dms-inline-search__box .dms-inline-search__input {
    padding-inline-start: 18px !important;
}

.header-search button[type="submit"] {
    background: transparent !important;
    border: none !important;
    cursor: pointer !important;
    color: var(--dm-ink-3, #999) !important;
    display: flex !important;
    align-items: center !important;
    padding: 0 !important;
    flex-shrink: 0 !important;
    transition: color 0.2s !important;
}

.header-search button[type="submit"]:hover {
    color: var(--dm-primary) !important;
}

/*
 * ⚠ این قانون قبلاً leading-icon را مخفی می‌کرد، با این فرض که دکمهٔ submit خودش
 * یک svg دارد و دو آیکون کنارِ هم می‌افتد. آن فرض برای مارک‌آپِ فعلیِ شورت‌کد درست
 * نیست: دکمهٔ submit فقط یک <span class="dms-search-trigger__icon"></span> خالی
 * دارد (بدونِ svg)، پس با مخفی‌کردنِ leading-icon، باکس اصلاً هیچ آیکونی نشان
 * نمی‌داد — دقیقاً همان چیزی که «شبیهِ باکسِ جستجو نیست» را گزارش دادید.
 * leading-icon تنها آیکونِ واقعی‌ست که در این مارک‌آپ svg دارد؛ برگردانده شد.
 */
/*
 * ⚠ اصلاحِ کلیک‌ناپذیریِ باکس: CSSِ خودِ افزونه این آیکون را با right:-10px
 * می‌گذارد — یعنی نیمی از آیکون بیرونِ کادرِ ورودی، در گپِ padding خودِ فرم.
 * آیکون pointer-events:none دارد (تا کلیک از زیرش رد شود)، ولی چون نیمه‌اش
 * بیرونِ کادرِ input بود، همان نیمه به‌جای input روی خودِ <form> (بدونِ عملکرد)
 * می‌افتاد — همان «کلیک روی آیکون کار نمی‌کند». right مثبت آیکون را کاملاً
 * داخلِ کادرِ input می‌آورد؛ الان هر پیکسلِ آیکون هم input زیرش دارد.
 */
.header-search .dms-inline-search__leading-icon,
.mobile-search-wrapper .dms-inline-search__leading-icon {
    display: flex !important;
    align-items: center !important;
    color: var(--dm-ink-3, #999) !important;
    flex-shrink: 0 !important;
    right: -7px !important;
    left: auto !important;
    pointer-events: none !important;
}
.header-search .dms-inline-search__leading-icon svg,
.mobile-search-wrapper .dms-inline-search__leading-icon svg {
    width: 16px !important;
    height: 16px !important;
}
.header-search form:focus-within .dms-inline-search__leading-icon,
.mobile-search-wrapper form:focus-within .dms-inline-search__leading-icon {
    color: var(--dm-primary) !important;
}

/* اکشن‌ها */
.header-actions {
    flex: 0 0 auto !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    margin-right: auto !important;
}

.action-btn {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    color: var(--dm-action-text) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    padding: 9px 15px !important;
    border: 1.5px solid var(--dm-border) !important;
    border-radius: var(--dm-radius) !important;
    transition: all 0.2s !important;
    white-space: nowrap !important;
    background: var(--dm-border) !important;
    cursor: pointer !important;
    text-decoration: none !important;
    position: relative !important;
}

.action-btn:hover {
    border-color: var(--dm-primary) !important;
    color: var(--dm-primary) !important;
    background: var(--dm-primary-tint, #fdf2f2) !important;
}

/*
 * ⚠ دکمهٔ سبد خرید، خروجیِ افزونهٔ مینی‌کارت را داخل خودش دارد و آن خروجی خودش
 * یک <a> است. تا وقتی پدینگ روی خودِ دکمه بود، آن نوارِ ۹×۱۲ پیکسلیِ دورِ لینک
 * به هیچ‌کدام از دو کنترل تعلق نداشت: کلیک روی لبه‌ها نه لینک را باز می‌کرد نه
 * کشوی سبد را — دکمه‌ای که بخشی از خودش کلیک‌ناپذیر است.
 *
 * حالا پدینگ به عناصرِ درونی منتقل شده و آن‌ها کلِ سطحِ دکمه را پر می‌کنند، پس
 * هر پیکسل از این دکمه واقعاً کلیک‌پذیر است.
 */
/*
 * ⚠ ارتفاعِ ثابت و هم‌اندازه با دو دکمهٔ کنارش (تمِ روشن/تاریک و حساب کاربری).
 * بدونِ این، ارتفاعِ دکمهٔ سبد را محتوایش تعیین می‌کرد: آیکونِ آپلودیِ افزونه
 * ۲۷ پیکسل است و با پدینگِ داخلی مجموعاً ۴۷ پیکسل می‌شد، یعنی ۷ پیکسل بلندتر
 * از همسایه‌های ۴۰ پیکسلی‌اش — سه دکمهٔ کنارِ هم با سه ارتفاعِ متفاوت.
 * مقدارها از خودِ .action-btn می‌آیند (۹px پدینگِ عمودی + ۲۰px محتوا + ۱.۵px
 * بوردر ×۲ ≈ ۴۱)، پس این‌جا فقط همان را تثبیت می‌کنیم.
 */
.header-actions .action-btn {
    height: 41px !important;
    box-sizing: border-box !important;
}

.btn-cart {
    padding: 0 !important;
    overflow: visible !important;
    width: 52px !important;
}

/* آیکونِ آپلودیِ افزونه هر اندازه‌ای باشد، داخلِ همین کادر مهار می‌شود */
.btn-cart .dm-scm-icon-img,
.btn-cart .dm-scm-icon-svg svg {
    width: 20px !important;
    height: 20px !important;
    object-fit: contain !important;
}

.btn-cart > *,
.btn-cart .dm-scm-trigger-wrapper {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
}

.btn-cart .dm-scm-trigger-btn,
.btn-cart > a,
.btn-cart .dm-header-cart-fallback {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
    padding: 9px 12px !important;
    box-sizing: border-box !important;
    color: inherit !important;
}

/* نشانِ تعداد نباید سطحِ کلیک را بگیرد یا با پدینگِ جدید جابه‌جا شود */
.btn-cart .dm-scm-count-badge,
.btn-cart .cart-count {
    pointer-events: none !important;
}

.cart-count {
    position: absolute !important;
    top: -5px !important;
    left: -5px !important;
    min-width: 20px !important;
    height: 20px !important;
    background: var(--dm-primary) !important;
    color: var(--dm-white) !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    border-radius: 10px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 4px !important;
    border: 2px solid var(--dm-white) !important;
    line-height: 1 !important;
}


/* ════════════════════════════════════════════
   ردیف ۲: مگامنو + منوی اصلی + پشتیبانی
   ════════════════════════════════════════════ */
/*
 * ⚠ قبلاً `align-items:stretch` بود: نوارِ مگامنو و منوی اصلی به قدِ کلِ
 * ردیف کش می‌آمدند و امیدِ چیدمانِ داخلی‌شان (align-items:center تودرتو) بود
 * که خودشان را وسط کنند — رویِ سایتِ لایو (که ارتفاعِ نوارِ مگامنو با نسخهٔ
 * افزونه فرق می‌کند) این زنجیره جواب نمی‌داد و منو به بالای ردیف می‌چسبید.
 * الان مستقیماً `center` است: هر آیتم با ارتفاعِ طبیعیِ خودش در وسطِ ردیف
 * می‌نشیند، مستقل از قدِ همسایه‌اش.
 */
.header-nav-row {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 16px !important;
    min-height: 40px !important;
}

.nav-right {
    display: flex !important;
    align-items: stretch !important;
    gap: 4px !important;
}

.nav-left {
    display: flex !important;
    align-items: center !important;
}

/*
 * منوی اصلی
 * ⚠ `align-self:center` عمداً صریح است، نه صرفاً تکیه‌کردن به
 * `align-items:stretch` روی `.nav-right`: اگر نوارِ مگامنوی افزونه بلندتر از
 * ۵۲px شود (پدینگِ داخلیِ آیتم‌ها بستگی به نسخهٔ افزونه دارد)، این ناو باید
 * مستقیماً در وسطِ ارتفاعِ ردیف بنشیند، نه کشیده‌شود و بعد امیدوار باشیم
 * چیدمانِ داخلی‌اش هم خودش را وسط کند.
 */
.header-primary-nav {
    display: flex !important;
    align-items: center !important;
    align-self: center !important;
}

.primary-menu-list {
    display: flex !important;
    align-items: center !important;
    gap: 2px !important;
}

.primary-menu-list > li {
    position: static !important;
}

.primary-menu-list > li > a {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    color: var(--dm-ink-2, #555) !important;
    padding: 0 12px !important;
    height: 52px !important;
    border-bottom: 3px solid transparent !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
    transition: all 0.2s !important;
    white-space: nowrap !important;
}

.primary-menu-list > li > a:hover {
    color: var(--dm-primary) !important;
    border-bottom-color: var(--dm-primary) !important;
}

.support-link {
    display: flex !important;
    align-items: center !important;
    align-self: center !important;
    gap: 6px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    color: var(--dm-action-text) !important;
    white-space: nowrap !important;
    text-decoration: none !important;
}

.support-link svg {
    color: var(--dm-primary);
    flex-shrink: 0;
}

.support-link:hover {
    color: var(--dm-primary) !important;
}


/* ════════════════════════════════════════════
   دسکتاپ / موبایل visibility
   ════════════════════════════════════════════ */
.header-desktop {
    display: none !important;
}

.header-mobile {
    display: block !important;
}

@media (min-width: 992px) {
    .header-desktop {
        display: block !important;
    }

    .header-mobile {
        display: none !important;
    }

    /* ★ استیکی ناو موبایل روی دسکتاپ مخفی */
    .mobile-sticky-nav,
    .dm-main-header ~ .mobile-sticky-nav {
        display: none !important;
    }

}


/* ════════════════════════════════════════════
   هدر موبایل
   ════════════════════════════════════════════ */
/* هم‌رنگ با هدرِ دسکتاپ تا تجربهٔ بصری در دو بریک‌پوینت یکی بماند */
.header-mobile {
    padding: 8px 10px !important;
    border-bottom: 1px solid var(--dm-border) !important;
    background: var(--dm-header-bg, #ffffff) !important;
}

.mobile-top-row {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
}

.mobile-logo img {
    max-height: 30px !important;
    width: auto !important;
}

.mobile-actions {
    margin-right: auto !important;
    display: flex !important;
    gap: 8px !important;
    align-items: center !important;
}

.mobile-icon-btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 38px !important;
    height: 38px !important;
    background: transparent !important;
    border: 1.5px solid var(--dm-border) !important;
    border-radius: var(--dm-radius) !important;
    color: var(--dm-ink-2, #555) !important;
    cursor: pointer !important;
    position: relative !important;
    transition: all 0.2s !important;
    text-decoration: none !important;
    padding: 0px;
}

.mobile-icon-btn:hover {
    border-color: var(--dm-primary) !important;
    color: var(--dm-primary) !important;
}

/* ── پنلِ کشوییِ جستجوی موبایل ──
   با دکمهٔ «جستجو»ی نوارِ پایین باز می‌شود. خودِ باکس همان خروجیِ افزونهٔ جستجو و
   فیلتر است؛ این‌جا فقط ظرفش ساخته می‌شود. */
/* ⚠ پس‌زمینه عمداً شفاف است. اگر این پنل سفید می‌شد، باکسِ جستجوی درونش — که
   خودش سفید است — دوباره نامرئی می‌شد؛ همان اشتباهی که در هدرِ دسکتاپ افتاده بود. */
.mobile-search-panel {
    border-top: 1px solid var(--dm-border) !important;
    padding: 10px 0 !important;
    background: transparent !important;
}

.mobile-search-panel__inner {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    max-width: var(--dm-container) !important;
    margin: 0 auto !important;
}

.mobile-search-panel .mobile-search-wrapper {
    flex: 1 !important;
    min-width: 0 !important;
}

.mobile-search-panel__close {
    flex-shrink: 0 !important;
    width: 38px !important;
    height: 38px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: transparent !important;
    border: 1.5px solid var(--dm-border) !important;
    border-radius: var(--dm-radius) !important;
    color: var(--dm-ink-2, #666) !important;
    cursor: pointer !important;
    padding: 0 !important;
}

.mobile-search-wrapper form,
.mobile-search-wrapper .dms-inline-search__box {
    display: flex !important;
    align-items: center !important;
    background: var(--dm-header-search-bg, #f8f9fb) !important;
    border-radius: var(--dm-radius) !important;
    padding: 0 12px !important;
    height: 44px !important;
    gap: 8px !important;
    border: 1.5px solid var(--dm-border) !important;
}

.mobile-search-wrapper form:focus-within,
.mobile-search-wrapper .dms-inline-search__box:focus-within {
    border-color: var(--dm-primary) !important;
    background: var(--dm-header-search-bg, #f8f9fb) !important;
}

.mobile-search-wrapper input {
    flex: 1 !important;
    border: none !important;
    background: transparent !important;
    outline: none !important;
    font-size: 13px !important;
    direction: rtl !important;
    color: var(--dm-ink-1, #333) !important;
    padding: 0 !important;
}

.mobile-search-wrapper button {
    background: transparent !important;
    border: none !important;
    color: var(--dm-ink-3, #888) !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    flex-shrink: 0 !important;
    padding: 0 !important;
}


/* ─── نوار استیکی پایین موبایل ─── */
.mobile-sticky-nav {
    position: fixed !important;
    bottom: 0 !important;
    right: 0 !important; /* ★ RTL: از راست */
    left: 0 !important;
    background: var(--dm-surface, #fff) !important;
    box-shadow: 0 -3px 20px rgba(0, 0, 0, 0.07) !important;
    display: flex;
    justify-content: space-around !important;
    align-items: center !important;
    direction: rtl !important; /* ★ RTL صریح */
    padding: 8px 0 !important;
    padding-bottom: max(8px, env(safe-area-inset-bottom)) !important;
    z-index: var(--dm-z-mobile-nav, 1100) !important;
    border-top: 1px solid var(--dm-border) !important;
    border-radius: 16px 16px 0 0 !important;
}

.sticky-nav-item {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 4px !important;
    color: var(--dm-ink-3, #888) !important;
    font-size: 10.5px !important;
    font-weight: 700 !important;
    background: transparent !important;
    border: none !important;
    cursor: pointer !important;
    padding: 4px 10px !important;
    position: relative !important;
    text-decoration: none !important;
    transition: color 0.2s !important;
}

.sticky-nav-item.active,
.sticky-nav-item:hover {
    color: var(--dm-primary) !important;
}

.sticky-cart-badge {
    position: absolute !important;
    top: 0 !important;
    left: 8px !important; /* ★ RTL: badge سمت چپ آیکون */
    min-width: 18px !important;
    height: 18px !important;
    background: var(--dm-primary) !important;
    color: var(--dm-white) !important;
    font-size: 9px !important;
    font-weight: 800 !important;
    border-radius: 9px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 3px !important;
    border: 2px solid var(--dm-white) !important;
}


/* ─── آفکنواس موبایل ─── */
/*
 * ⚠ پیش از این با «right: -100%» بیرونِ صفحه پارک می‌شد، در حالی که عرضش ۱۰۰٪ بود.
 * یعنی یک جعبهٔ تمام‌عرض دائماً یک صفحهٔ کامل بیرونِ لبه ایستاده بود — و چون این قاعده
 * داخلِ هیچ مدیا کوئری‌ای نیست و display هم همیشه flex است، در همهٔ اندازه‌ها رندر
 * می‌شد. محافظِ سرریزِ بدنه هم اینجا کاری نمی‌کند: عنصرِ fixed با سرریزِ والدش بریده
 * نمی‌شود.
 *
 * الان ظرف دقیقاً به اندازهٔ دید است و هیچ‌جا بیرون نمی‌زند؛ خودِ پنل داخلش با
 * جابه‌جایی می‌آید و ظرف آن جابه‌جایی را می‌بُرد. انیمیشن دست‌نخورده می‌ماند و
 * قرارداد جاوااسکریپت (فقط کلاسِ is-open) هم عوض نمی‌شود.
 */
.mobile-offcanvas {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    left: auto !important;
    width: 100% !important;
    height: 100dvh !important;
    z-index: var(--dm-z-panel-top, 99999) !important;
    display: flex !important;
    flex-direction: row-reverse !important; /* ★ RTL: پنل از راست بیاد */
    direction: rtl !important;
    overflow: hidden !important;   /* جابه‌جاییِ پنلِ داخلی را می‌بُرد */
    visibility: hidden !important; /* بسته که هست، هیچ چیزی کلیک‌پذیر یا قابلِ‌دید نیست */
    pointer-events: none !important;
    transition: visibility 0s 0.35s !important;
}

.mobile-offcanvas.is-open {
    visibility: visible !important;
    pointer-events: auto !important;
    transition: visibility 0s 0s !important;
}

.offcanvas-inner {
    transform: translateX(100%);
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.mobile-offcanvas.is-open .offcanvas-inner {
    transform: translateX(0);
}

.offcanvas-bg {
    flex: 1 !important;
    background: rgba(0, 0, 0, 0.55) !important;
    opacity: 0 !important;
    transition: opacity 0.3s !important;
}

.mobile-offcanvas.is-open .offcanvas-bg {
    opacity: 1 !important;
}

.offcanvas-inner {
    width: 320px !important;
    max-width: 88vw !important;
    background: var(--dm-surface, #fff) !important;
    height: 100% !important;
    overflow-y: auto !important;
    box-shadow: -4px 0 24px rgba(0, 0, 0, 0.12) !important;
    display: flex !important;
    flex-direction: column !important;
}

.offcanvas-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 16px 20px !important;
    border-bottom: 1px solid var(--dm-border) !important;
    flex-shrink: 0 !important;
}

.offcanvas-logo img {
    max-height: 32px !important;
}

.offcanvas-close {
    background: transparent !important;
    border: none !important;
    cursor: pointer !important;
    color: var(--dm-ink-3, #888) !important;
    display: flex !important;
    padding: 4px !important;
    border-radius: 6px !important;
    transition: all 0.2s !important;
}

.offcanvas-close:hover {
    background: var(--dm-paper-2, #f5f5f5) !important;
    color: var(--dm-ink-1, #333) !important;
}

/* آفکنواس: سطح ۰ */
.mobile-menu-level-0 {
    flex: 1 !important;
}

.mobile-menu-level-0 > li {
    border-bottom: 1px solid var(--dm-line, #f5f5f5) !important;
    position: static !important;
}

.mobile-menu-level-0 > li > a {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 14px 20px !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    color: var(--dm-ink-1, #333) !important;
    gap: 10px !important;
    text-decoration: none !important;
}

.mobile-menu-level-0 > li.is-open > a {
    color: var(--dm-primary) !important;
    background: var(--dm-primary-tint, #fdf2f2) !important;
}

.mobile-menu-level-0 .mm-chevron {
    color: var(--dm-ink-3, #bbb) !important;
    transition: transform 0.3s !important;
}

.mobile-menu-level-0 > li.is-open > a .mm-chevron {
    transform: rotate(-90deg) !important;
    color: var(--dm-primary) !important;
}

.mobile-menu-level-0 .mega-content-pane {
    position: static !important;
    display: none !important;
    flex-direction: column !important;
    padding: 12px 20px !important;
    background: var(--dm-paper-2, #fafafa) !important;
    border-top: 1px solid var(--dm-border) !important;
}

.mobile-menu-level-0 > li.is-open > .mega-content-pane {
    display: flex !important;
}

.mobile-menu-level-0 .mega-nav-level-1 {
    width: 100% !important;
    height: auto !important;
    border: none !important;
    padding: 0 !important;
    overflow: visible !important;
    flex: none !important;
    position: static !important;
    columns: 2 !important;
    column-gap: 10px !important;
}

.mobile-menu-level-0 .mega-nav-level-1 > li {
    margin-bottom: 0 !important;
    position: static !important;
    break-inside: avoid !important;
}

.mobile-menu-level-0 .mega-nav-level-1 > li > a {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    font-size: 12.5px !important;
    font-weight: 600 !important;
    color: var(--dm-ink-2, #444) !important;
    border: none !important;
    padding: 8px 4px !important;
    margin: 0 !important;
    min-height: auto !important;
    background: transparent !important;
    text-decoration: none !important;
}

.mobile-menu-level-0 .mega-nav-level-1 .mm-dot {
    width: 5px !important;
    height: 5px !important;
    border-radius: 50% !important;
    background: var(--dm-primary) !important;
    flex-shrink: 0 !important;
    opacity: .55 !important;
}

.mobile-menu-level-0 .mega-nav-level-1 .mm-chevron {
    display: none !important;
}

/* دکمه مشاهده همه در موبایل */
.mobile-menu-level-0 .mega-view-all {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    margin-top: 12px !important;
    padding: 8px 20px !important;
    border: 1.5px solid var(--dm-primary) !important;
    border-radius: 20px !important;
    color: var(--dm-primary) !important;
    font-size: 12.5px !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    align-self: flex-start !important;
}


/* ════════════════════════════════════════════
   ★ MINI CART
   ════════════════════════════════════════════ */
.dm-mini-cart-overlay {
    position: fixed !important;
    inset: 0 !important;
    background: rgba(0, 0, 0, 0.45) !important;
    z-index: var(--dm-z-overlay-top, 99990) !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transition: opacity 0.3s !important;
}

.dm-mini-cart-overlay.is-open {
    opacity: 1 !important;
    pointer-events: auto !important;
}

/*
 * ⚠ همان اشکالِ آفکنواس: پیش‌تر با «left: -420px» بیرونِ لبه پارک می‌شد و چون این قاعده
 * هم در هیچ مدیا کوئری‌ای نیست، در همهٔ اندازه‌ها یک جعبهٔ ۳۸۰ پیکسلی بیرونِ صفحه
 * می‌ایستاد. حالا سرِ جای نهایی‌اش می‌ماند و با جابه‌جایی بیرون می‌رود؛ جابه‌جایی
 * چیدمان را جابه‌جا نمی‌کند و در حالتِ بسته کاملاً نامرئی و غیرقابلِ‌کلیک است.
 */
.dm-mini-cart-panel {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 380px !important;
    max-width: 95vw !important;
    height: 100dvh !important;
    background: var(--dm-surface, #fff) !important;
    z-index: calc(var(--dm-z-overlay-top, 99990) + 1) !important;
    display: flex !important;
    flex-direction: column !important;
    box-shadow: 4px 0 32px rgba(0, 0, 0, 0.12) !important;
    direction: rtl !important;
    transform: translateX(-100%) !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), visibility 0s 0.35s !important;
}

.dm-mini-cart-panel.is-open {
    transform: translateX(0) !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), visibility 0s 0s !important;
}

.mini-cart-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 20px !important;
    border-bottom: 1px solid var(--dm-border) !important;
    flex-shrink: 0 !important;
}

.mini-cart-header h3 {
    font-size: 16px !important;
    font-weight: 800 !important;
    color: var(--dm-text) !important;
    margin: 0 !important;
}

.mini-cart-header-count {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: var(--dm-primary) !important;
    color: var(--dm-white) !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    border-radius: 20px !important;
    padding: 2px 8px !important;
    margin-right: 8px !important;
}

.mini-cart-close-btn {
    width: 36px !important;
    height: 36px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: var(--dm-bg-soft) !important;
    border: none !important;
    border-radius: 8px !important;
    cursor: pointer !important;
    color: var(--dm-ink-2, #555) !important;
    transition: all 0.2s !important;
    padding: 0px;
}

.mini-cart-close-btn:hover {
    background: var(--dm-border) !important;
    color: var(--dm-text) !important;
}

.mini-cart-body {
    flex: 1 !important;
    overflow-y: auto !important;
    padding: 16px !important;
}

/* آیتم‌های WooCommerce cart */
.mini-cart-body .woocommerce-mini-cart {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.mini-cart-body .woocommerce-mini-cart__empty-message {
    text-align: center !important;
    color: var(--dm-text-light) !important;
    padding: 40px 20px !important;
    font-size: 14px !important;
}

.mini-cart-body .woocommerce-mini-cart-item {
    display: flex !important;
    align-items: flex-start !important;
    gap: 12px !important;
    padding: 16px 0 !important;
    border-bottom: 1px solid var(--dm-border) !important;
}

.mini-cart-body .woocommerce-mini-cart-item img {
    width: 70px !important;
    height: 70px !important;
    object-fit: contain !important;
    border-radius: 10px !important;
    border: 1px solid var(--dm-border) !important;
    flex-shrink: 0 !important;
}

.mini-cart-item-details {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 3px 10px;
}

.mini-cart-item-details a {
    font-size: 13px !important;
    font-weight: 700 !important;
    color: var(--dm-text) !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    line-height: 1.4 !important;
    margin-bottom: 8px !important;
    text-decoration: none !important;
    width: 100%;
}

.mini-cart-item-details a:hover {
    color: var(--dm-primary) !important;
}

.mini-cart-body .woocommerce-Price-amount {
    font-size: 13px !important;
    font-weight: 800 !important;
    color: #11111190 !important;
    direction: rtl !important;
}

.mini-cart-body .woocommerce-Price-amount .woocommerce-Price-currencySymbol {
    opacity: 0.5;
}

.mini-cart-body .quantity {
    font-size: 12px !important;
    color: var(--dm-text-light) !important;
}

.mini-cart-remove-btn {
    background: transparent !important;
    border: none !important;
    cursor: pointer !important;
    color: #ccc !important;
    padding: 4px !important;
    display: flex !important;
    align-items: flex-start !important;
    flex-shrink: 0 !important;
    transition: color 0.2s !important;
    margin-top: 2px !important;
}

.mini-cart-remove-btn:hover {
    color: #e53e3e !important;
}

/* hide default WC remove link (ما custom button داریم) */
.mini-cart-body .woocommerce-mini-cart-item > a.remove_from_cart_button {
    display: none !important;
}

.mini-cart-footer {
    padding: 16px 20px !important;
    border-top: 1px solid var(--dm-border) !important;
    flex-shrink: 0 !important;
    background: var(--dm-bg-soft) !important;
}

.mini-cart-total-row {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin-bottom: 14px !important;
}

.mini-cart-total-row .label {
    font-size: 13px !important;
    font-weight: 700 !important;
    color: var(--dm-text-light) !important;
}

.mini-cart-total-row .amount {
    font-size: 16px !important;
    font-weight: 900 !important;
    color: var(--dm-primary) !important;
    direction: rtl !important;
}

.mini-cart-actions {
    display: flex !important;
    gap: 10px !important;
}

.mini-cart-btn {
    flex: 1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 12px 16px !important;
    border-radius: var(--dm-radius) !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    cursor: pointer !important;
    border: none !important;
    transition: all 0.2s !important;
    text-decoration: none !important;
}

.mini-cart-btn-cart {
    background: var(--dm-bg-soft) !important;
    color: var(--dm-text) !important;
    border: 1.5px solid var(--dm-border) !important;
}

.mini-cart-btn-cart:hover {
    border-color: var(--dm-primary) !important;
    color: var(--dm-primary) !important;
}

.mini-cart-btn-checkout {
    background: var(--dm-primary) !important;
    color: var(--dm-white) !important;
}

.mini-cart-btn-checkout:hover {
    opacity: 0.9 !important;
}

/* Loading spinner */
.mini-cart-loading {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 40px !important;
}

.mini-cart-spinner {
    width: 32px !important;
    height: 32px !important;
    border: 3px solid var(--dm-border) !important;
    border-top-color: var(--dm-primary) !important;
    border-radius: 50% !important;
    animation: dm-spin 0.7s linear infinite !important;
}

@keyframes dm-spin {
    to {
        transform: rotate(360deg);
    }
}

/*استایل مینی کارت*/
.mini-cart-body .dm-mini-cart-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.dm-mini-cart-panel.is-open .dm-mini-cart-item {
    padding-bottom: 15px;
    margin-bottom: 15px;
    border-bottom: 1px solid var(--dm-line, #e5e7eb);
}

.dm-mini-cart-panel.is-open .dm-mini-cart-item:last-child {
    padding-bottom: 0;
    margin-bottom: 0;
    border-bottom: none;
}


/* ============================================================
   MINI CART (OFF-CANVAS) & DARK MODE
   ============================================================ */
body.theme-dark .dm-mini-cart-panel {
    background: var(--dm-card-bg) !important;
    border-left: 1px solid var(--dm-border) !important;
}

body.theme-dark .mini-cart-header,
body.theme-dark .mini-cart-footer {
    background: var(--dm-card-bg) !important;
    border-color: var(--dm-border) !important;
}

body.theme-dark .mini-cart-header h3,
body.theme-dark .mini-cart-item-details a {
    color: var(--dm-text) !important;
}

body.theme-dark .mini-cart-close-btn {
    background: var(--dm-border) !important;
    color: var(--dm-text-muted) !important;
}

body.theme-dark .mini-cart-close-btn:hover {
    background: var(--dm-hover-bg) !important;
    color: var(--dm-action-text) !important;
}

body.theme-dark .mini-cart-body .woocommerce-mini-cart-item {
    border-color: var(--dm-border) !important;
}

body.theme-dark .mini-cart-body .woocommerce-Price-amount {
    color: var(--dm-text) !important;
}

body.theme-dark .mini-cart-total-row .label {
    color: var(--dm-text-muted) !important;
}

body.theme-dark .mini-cart-btn-cart {
    background: var(--dm-card-bg) !important;
    border-color: var(--dm-border) !important;
    color: var(--dm-text) !important;
}

body.theme-dark .mini-cart-btn-cart:hover {
    border-color: var(--dm-primary) !important;
    color: var(--dm-primary) !important;
}


/* ============================================================
   SUCCESS MODAL (POPUP) & LIGHT MODE
   ============================================================ */
.dm-success-overlay {
    position: fixed !important;
    inset: 0 !important;
    background: rgba(0, 0, 0, 0.65) !important;
    z-index: var(--dm-z-overlay-top, 99990) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transition: all 0.3s ease !important;
    backdrop-filter: blur(4px) !important;
}

.dm-success-overlay.is-open {
    opacity: 1 !important;
    visibility: visible !important;
}

.dm-success-modal {
    position: fixed !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -45%) scale(0.95) !important;
    width: 440px !important;
    max-width: 92vw !important;
    background: var(--dm-surface, #fff) !important;
    z-index: calc(var(--dm-z-overlay-top, 99990) + 1) !important;
    display: flex !important;
    flex-direction: column !important;
    border-radius: 20px !important;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2) !important;
    direction: rtl !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transition: all 0.35s cubic-bezier(0.2, 0, 0, 1) !important;
    padding: 35px 28px 28px !important;
    text-align: center !important;
}

.dm-success-modal.is-open {
    transform: translate(-50%, -50%) scale(1) !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.dm-success-close {
    position: absolute !important;
    top: 16px !important;
    right: 16px !important;
    background: transparent !important;
    border: none !important;
    color: var(--dm-ink-3, #999) !important;
    cursor: pointer !important;
    padding: 6px !important;
    border-radius: 50% !important;
    transition: background 0.2s, color 0.2s !important;
}

.dm-success-close:hover {
    background: var(--dm-paper-2, #f5f5f5) !important;
    color: var(--dm-ink-1, #333) !important;
}

.dm-success-icon {
    display: flex !important;
    justify-content: center !important;
    margin-bottom: 20px !important;
}

.dm-success-title {
    font-size: 20px !important;
    font-weight: 900 !important;
    color: #111 !important;
    margin: 0 0 10px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
}

.dm-success-title svg {
    color: var(--dm-primary,var(--dm-primary)) !important;
}

.dm-success-desc {
    font-size: 13px !important;
    color: var(--dm-ink-2, #666) !important;
    margin: 0 0 24px !important;
    line-height: 1.6 !important;
}

/* باکس ارسال رایگان (لایت) */
.dm-success-shipping-box {
    background: #f0fdf4 !important;
    border: 1px solid #dcfce7 !important;
    border-radius: 16px !important;
    padding: 16px 20px !important;
    margin-bottom: 24px !important;
    position: relative !important;
}

.dm-success-shipping-icon {
    position: absolute !important;
    top: -16px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    background: #f0fdf4 !important;
    border: 1px solid #dcfce7 !important;
    border-radius: 50% !important;
    width: 32px !important;
    height: 32px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #10b981 !important;
}

.dm-success-shipping-text {
    font-size: 13px !important;
    font-weight: 600 !important;
    color: var(--dm-ink-1, #333) !important;
    margin-bottom: 16px !important;
    margin-top: 8px !important;
    line-height: 1.7 !important;
}

.dm-success-shipping-text strong {
    font-weight: 900 !important;
    color: #10b981 !important;
    font-size: 14px !important;
}

.dm-success-progress-wrap {
    width: 100% !important;
}

.dm-success-progress-bar {
    background: #e2e8f0 !important;
    border-radius: 6px !important;
    height: 8px !important;
    overflow: hidden !important;
    margin-bottom: 8px !important;
}

.dm-success-progress-fill {
    background: #10b981 !important;
    height: 100% !important;
    border-radius: 6px !important;
    transition: width 0.4s ease !important;
}

.dm-success-progress-labels {
    display: flex !important;
    justify-content: space-between !important;
    font-size: 11px !important;
    color: var(--dm-ink-3, #888) !important;
    font-weight: 700 !important;
}

.dm-success-actions {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
}

.dm-success-btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    padding: 14px !important;
    border-radius: 12px !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    cursor: pointer !important;
    text-decoration: none !important;
    transition: all 0.2s !important;
    gap: 8px !important;
    border: none !important;
}

.dm-success-btn-primary {
    background: var(--dm-primary) !important;
    color: #fff !important;
}

.dm-success-btn-primary:hover {
    opacity: 0.9 !important;
}

.dm-success-btn-outline {
    background: var(--dm-paper, #fff) !important;
    color: var(--dm-ink-2, #555) !important;
    border: 1.5px solid var(--dm-line, #e0e0e0) !important;
}

.dm-success-btn-outline:hover {
    background: #f9f9f9 !important;
    border-color: #ccc !important;
}


/* ============================================================
   SUCCESS MODAL (POPUP) & DARK MODE
   (تماما بر اساس متغیرهای گلوبال)
   ============================================================ */
body.theme-dark .dm-success-modal {
    background: var(--dm-card-bg) !important;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.4) !important;
}

body.theme-dark .dm-success-title {
    color: var(--dm-text) !important;
}

body.theme-dark .dm-success-desc {
    color: var(--dm-text-muted) !important;
}

body.theme-dark .dm-success-close {
    color: var(--dm-text-muted) !important;
}

body.theme-dark .dm-success-close:hover {
    background: var(--dm-hover-bg) !important;
    color: var(--dm-text) !important;
}

/* باکس ارسال رایگان */
body.theme-dark .dm-success-shipping-box {
    background: var(--dm-success-bg) !important;
    border-color: var(--dm-success-border) !important;
}

body.theme-dark .dm-success-shipping-icon {
    background: var(--dm-card-bg) !important;
    border-color: var(--dm-success-border) !important;
    color: var(--dm-success-color) !important;
}

body.theme-dark .dm-success-shipping-text {
    color: var(--dm-text) !important;
}

body.theme-dark .dm-success-shipping-text strong {
    color: var(--dm-success-color) !important;
}

body.theme-dark .dm-success-progress-bar {
    background: var(--dm-progress-bg) !important;
}

body.theme-dark .dm-success-progress-fill {
    background: var(--dm-success-color) !important;
}

/* دکمه‌ها */
body.theme-dark .dm-success-btn-outline {
    background: transparent !important;
    color: var(--dm-text-muted) !important;
    border-color: var(--dm-border) !important;
}

body.theme-dark .dm-success-btn-outline:hover {
    background: var(--dm-hover-bg) !important;
    border-color: var(--dm-text-muted) !important;
    color: var(--dm-text) !important;
}

/* ══════════════════════════════════════════════════════
   HEADER ADDITIONS — این فایل را به انتهای header.css اضافه کنید
   ══════════════════════════════════════════════════════ */

/* ── دکمه برگشت موبایل (صفحه محصول) ── */
.mobile-back-btn {
    background: transparent !important;
    border: none !important;
    cursor: pointer !important;
    padding: 4px 6px !important;
    color: var(--dm-ink-2, #555) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 8px !important;
    transition: background 0.2s !important;
    flex-shrink: 0 !important;
}

.mobile-back-btn:hover {
    background: var(--dm-paper-2, #f5f5f5) !important;
}

/*
 * ⚠ قانونِ قبلی این‌جا svg را با scaleX(-1) آینه می‌کرد، اما مسیرِ خودِ آیکون از
 * پیش رو به راست است؛ آینه‌کردن آن را به چپ می‌چرخاند که در صفحهٔ راست‌به‌چپ
 * یعنی «جلو»، نه «بازگشت». حذف شد و آیکون در جهتِ درستِ خودش می‌ماند.
 */

/* هدرِ دسکتاپ دکمهٔ بازگشت ندارد — مسیرِ راهنما و منو همان نقش را دارند. */

/* ── تب‌بار آفکنواس ── */
.offcanvas-tab-bar {
    display: flex !important;
    border-bottom: 2px solid var(--dm-border) !important;
    flex-shrink: 0 !important;
    background: var(--dm-paper, #fff) !important;
}

.oc-tab-btn {
    flex: 1 !important;
    border: none !important;
    background: transparent !important;
    padding: 13px 10px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    color: var(--dm-ink-3, #888) !important;
    cursor: pointer !important;
    font-family: inherit !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    border-bottom: 2px solid transparent !important;
    margin-bottom: -2px !important;
    transition: color 0.2s, border-color 0.2s !important;
}

.oc-tab-btn.is-active {
    color: var(--dm-primary) !important;
    border-bottom-color: var(--dm-primary) !important;
}

.oc-tab-btn svg {
    color: inherit !important;
}

/* ── پانل‌های آفکنواس ── */
.oc-panel {
    display: none !important;
    flex-direction: column !important;
    flex: 1 !important;
    overflow-y: auto !important;
}

.oc-panel.is-active {
    display: flex !important;
}

/* ── منوی دسترسی سریع (تب ۲) ── */
.oc-quick-menu {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    flex: 1 !important;
}

.oc-quick-menu > li {
    border-bottom: 1px solid var(--dm-line, #f5f5f5) !important;
}

.oc-quick-menu > li > a {
    display: flex !important;
    align-items: center !important;
    padding: 14px 20px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--dm-ink-1, #333) !important;
    text-decoration: none !important;
    gap: 10px !important;
    transition: color 0.2s, background 0.2s !important;
}

.oc-quick-menu > li > a:hover {
    color: var(--dm-primary) !important;
    background: var(--dm-primary-10) !important;
}

.oc-quick-menu > li > a::before {
    content: '' !important;
    width: 6px !important;
    height: 6px !important;
    border-radius: 50% !important;
    background: var(--dm-primary) !important;
    flex-shrink: 0 !important;
    opacity: 0.5 !important;
}

.oc-quick-menu > li > a:hover::before {
    opacity: 1 !important;
}

/* sub-menu */
.oc-quick-menu .sub-menu {
    list-style: none !important;
    padding: 0 0 8px 0 !important;
    margin: 0 !important;
    background: var(--dm-paper-2, #fafafa) !important;
}

.oc-quick-menu .sub-menu a {
    padding: 10px 34px !important;
    font-size: 13px !important;
    color: var(--dm-ink-2, #666) !important;
    display: block !important;
    text-decoration: none !important;
    transition: color 0.2s !important;
}

.oc-quick-menu .sub-menu a:hover {
    color: var(--dm-primary) !important;
}

/* ── بخش تماس تب ۲ ── */
/*
 * ⚠ حالا فرزندِ مستقیمِ .offcanvas-inner است نه داخلِ پنلِ «دسترسی سریع». آن ظرف
 * فلکسِ ستونی است، پس margin-top:auto همچنان کار می‌کند و شماره به کفِ کشو
 * می‌چسبد؛ flex-shrink لازم شد تا وقتی فهرست بلند است له نشود.
 */
.oc-quick-contact {
    border-top: 1px solid var(--dm-border) !important;
    padding: 16px 20px !important;
    margin-top: auto !important;
    flex-shrink: 0 !important;
}

/* پیامِ «هیچ فهرستی بسته نشده» — فقط برای مدیر رندر می‌شود. */
.oc-panel--empty {
    padding: 20px !important;
    gap: 10px !important;
    color: var(--dm-ink-2, #555) !important;
    font-size: 13.5px !important;
    line-height: 1.9 !important;
}

.oc-panel--empty a {
    color: var(--dm-primary) !important;
    font-weight: 700 !important;
}

.oc-quick-contact-link {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    color: var(--dm-ink-2, #555) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    direction: ltr !important;
    justify-content: flex-end !important;
}

.oc-quick-contact-link svg {
    color: var(--dm-primary) !important;
    flex-shrink: 0 !important;
}

.oc-quick-contact-link:hover {
    color: var(--dm-primary) !important;
}

/* ── اطمینان از overflow آفکنواس ── */
.offcanvas-inner {
    overflow-y: hidden !important; /* مدیریت overflow توسط پانل‌ها */
}

/* ⚠ دیگر لازم نیست: هدرِ موبایل هم از --dm-header-bg تغذیه می‌شود و همان توکن در
   بلوکِ تیره عوض می‌شود. این قانون فقط برای هم‌ترازیِ !important نگه داشته شد. */
body.theme-dark .header-mobile {
    background-color: var(--dm-header-bg) !important;
}

body.theme-dark .mobile-logo {
    color: var(--dm-text);
}