/* DM Gold — پل: قلاب‌های جدید قالب نو که در CSS منتقل‌شدهٔ طراحان وجود ندارند.
   (custom propertyها، کلاس‌های جایگزینِ استایل‌های این‌لاینِ حذف‌شده، و پنل مستقل مینی‌کارت) */

/* ════════════════════════════════════════════════════════════════════
   خنثی‌سازیِ الگویِ «مخفی‌سازی با left: -9999px»
   ════════════════════════════════════════════════════════════════════
   ⚠ این تک‌قانون، تنها علتِ اسکرولِ افقی و صفحهٔ سفیدِ موبایلِ سایت بود.

   فیلدِ هانی‌پاتِ فرمِ تماسِ فوتر با `position:absolute; left:-9999px` مخفی
   می‌شود. این ترفند در چیدمانِ چپ‌به‌راست بی‌ضرر است، ولی در سندِ راست‌به‌چپ
   سرریز به سمتِ چپ **عرضِ اسکرولِ سند را واقعاً بزرگ می‌کند**.

   زنجیرهٔ خرابی، اندازه‌گیری‌شده روی سایتِ زنده در عرضِ ۳۷۵ پیکسل:
     ۱) عرضِ سند از ۳۷۵ به ۱۰۳۷۴ پیکسل می‌رسد (۹۹۹۹ + ۳۷۵، دقیقاً)
     ۲) هر پوششِ position:fixed به‌جای ویوپورت نسبت به همان جعبهٔ پهن حل
        می‌شود ⇒ نوارِ ناوبریِ موبایل، آفکنواس، مودالِ جستجو و کشویِ سبد
        همگی ۱۵۰۰ پیکسل عرض می‌گیرند و روی x = -۱۱۲۵ می‌نشینند
     ۳) هدر و main و فوتر به x = +۱۱۲۵ رانده می‌شوند ⇒ کاربرِ موبایل فقط
        فضای سفید می‌بیند

   با خنثی‌کردنِ همین یک عنصر، عرضِ سند به ۳۷۵ برمی‌گردد و همهٔ آن‌ها سرِ
   جای خودشان می‌نشینند — بدونِ هیچ تغییرِ دیگری.

   ⚠ این یک وصلهٔ دفاعی روی مارکاپِ افزونهٔ فرم است. راه‌حلِ اصلی، اصلاحِ خودِ
   آن افزونه است؛ آن افزونه در این مخزن نیست، پس این‌جا خنثی می‌شود.
   ⚠ هانی‌پات باید در DOM و قابلِ ارسال بماند وگرنه ضدِاسپم می‌میرد؛ به همین
   دلیل display:none نیست. تکنیکِ زیر استانداردِ «مخفیِ دسترس‌پذیر» است:
   فضای چیدمانی نمی‌گیرد ولی عنصر همچنان وجود دارد و ارسال می‌شود.
   ════════════════════════════════════════════════════════════════════ */
/* ⚠ وزنِ سلکتور عمدی و لازم است — نسخهٔ اول همین وصله شکست خورد.
   خودِ افزونهٔ فرم در dmf-form.css می‌نویسد:  .dmf-hp { left: -9999px !important }
   نوشتنِ `.dmf-hp { left: auto !important }` این را نمی‌بَرد: هر دو important و هر
   دو با وزنِ ۰-۱-۰ برابرند، و در تساوی، فایلی که دیرتر لود شود برنده است —
   dmf-form.css بعد از dm-bridge.css لود می‌شود. نتیجه: width و clip-path اعمال
   شدند ولی left سرِ جای خودش ماند و سرریزِ ۹۹۹۹ پیکسلی زنده بود (سایتِ زنده:
   x = -8875، عرضِ سند ۱۰۳۷۵).
   پس وزن بالا برده شد تا مستقل از ترتیبِ لود برنده باشد. هر دو شکلِ ممکنِ
   سلکتورِ افزونه پوشش داده شده تا آپدیتِ بعدیِ آن هم این را نشکند. */
html body .dmf-hp,
html body .dm-form-hp,
html body .dmf-form .dmf-hp,
html body .dmf-form .dm-form-hp {
    position: absolute !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
}

/* وضعیت مخفی عمومی (جایگزین display:none این‌لاین) */
.dm-hidden { display: none !important; }

/*
 * ⚠ عمداً display:none نیست. برای رندرِ عناصرِ واقعیِ یک افزونهٔ ثالث (دکمهٔ محرک،
 * مودال) در صفحه بدونِ گرفتنِ جا — وقتی خودِ افزونه‌ای که این عنصر را می‌سازد قرار
 * است بعداً با کلیکِ برنامه‌ای (.click()) باز شود. با display:none جاوااسکریپتِ
 * افزونه که در بارگذاریِ صفحه دنبالِ این عنصر می‌گردد باز هم پیدایش می‌کند (کوئری‌
 * سلکتور روی نوعِ نمایش حساس نیست)، ولی برای اطمینانِ کامل (برخی کتابخانه‌ها با
 * offsetParent/getBoundingClientRect وضعیتِ باز/بسته را می‌سنجند) از تکنیکِ استانداردِ
 * «مخفیِ دسترس‌پذیر» استفاده شده: ۱ پیکسل + clip-path، نه حذف از چیدمان.
 */
/*
 * پروکسیِ دکمهٔ منوی مگامنو در فوتر: خودِ ظرف نباید هیچ برشی داشته باشد، چون
 * مودالِ تمام‌صفحهٔ افزونه فرزندِ همان است و با برشِ ظرف نامرئی می‌شود (باگِ
 * «کلیک روی منو ⇒ صفحه قفل و خالی»). فقط دکمهٔ محرک پنهان می‌شود.
 */
#dm-mnav-dmmega-proxy > .dmmega-bar-wrapper > .dmmega-standalone-trigger,
#dm-mnav-dmmega-proxy > .dmmega-standalone-trigger {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
}

.dm-visually-hidden {
    position: absolute !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
}

/*
 * ⚠ اتریبیوتِ hidden امتیازِ ۰-۱-۰ دارد و هر کلاسی که display بدهد شکستش می‌دهد؛
 * یعنی المانی که جاوااسکریپت با hidden پنهانش کرده کاملاً دیده می‌ماند و هیچ خطایی
 * هم جایی ثبت نمی‌شود. این قانونِ سراسری آن حفره را می‌بندد.
 * ⚠ در نتیجه یک المان یا با hidden کنترل می‌شود یا با jQuery .show()/.hide() — نه هر دو.
 */
[hidden] { display: none !important; }

/* ── دکمهٔ بازگشت (مشترکِ هدرِ محصول و سربرگِ آرشیو) ──
   کلاسِ پایه فقط رفتار و اندازهٔ لمسی را می‌دهد؛ ظاهرِ هر جایگاه با کلاسِ
   دومِ همان‌جا (mobile-back-btn / header-back-btn / dm-back-btn--title) می‌آید.
   حداقل ۲۴×۲۴ لمسی رعایت شده. */
.dm-back-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    cursor: pointer;
    color: inherit;
    background: transparent;
    border: none;
    padding: 4px 6px;
    border-radius: 8px;
    transition: background .2s, color .2s, border-color .2s;
}

/* نسخهٔ کنارِ تیتر آرشیو — مینیمال، فقط یک فلشِ کوچک پیش از h1 */
.dm-archive-title-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.dm-archive-title-row h1 {
    margin: 0;
}

.dm-back-btn--title {
    width: 32px;
    height: 32px;
    padding: 0;
    color: var(--dm-text-light, #888);
}

.dm-back-btn--title:hover {
    color: var(--dm-primary, #B43F3F);
    background: var(--dm-primary-10, rgba(180, 63, 63, .08));
}

/* فاصلهٔ پویای سکشن‌های صفحهٔ اصلی (جایگزین margin-bottom این‌لاین) */
.dm-hp-section,
.dm-hp-hero-full { margin-bottom: var(--dm-section-mb, 48px); }

/* نوار پیشرفت ارسال رایگان (جایگزین width این‌لاین) */
.dm-freeship-bar span { width: var(--dm-progress, 0%); }

/* ستاره‌های امتیاز صفحهٔ محصول (جایگزین fill این‌لاین) */
.dm-star { vertical-align: middle; }
.dm-star.is-filled { color: #2f8f8a; }
.dm-star.is-empty  { color: #E5E7EB; }

/* رنگ آیکن‌های نوار خدمات صفحهٔ محصول (جایگزین پالت این‌لاین) */
.dm-sp-svc-c0 .dm-sp-svc-icon { color: #6c63ff; }
.dm-sp-svc-c1 .dm-sp-svc-icon { color: #f59e0b; }
.dm-sp-svc-c2 .dm-sp-svc-icon { color: #10b981; }
.dm-sp-svc-c3 .dm-sp-svc-icon { color: #3b82f6; }
.dm-sp-svc-c4 .dm-sp-svc-icon { color: #ef4444; }
.dm-sp-svc-c5 .dm-sp-svc-icon { color: #8b5cf6; }

/* بنر دوتایی تک‌خانه‌ای (جایگزین grid-template-columns این‌لاین) */
.dm-promo-boxes--single { grid-template-columns: 1fr !important; }

/* ── صفحهٔ ۴۰۴ ──
   دیگر فقط یک عدد و یک دکمه نیست: جستجو، دسته‌های پرمخاطب و چند محصولِ تازه هم
   دارد، چون صفحهٔ خطا آخرین جایی‌ست که کاربر پیش از بستنِ تب می‌بیند. */
.dm-404-inner { padding: 72px 15px 90px; }

.dm-404-hero { text-align: center; max-width: 620px; margin: 0 auto; }
.dm-404-code {
    font-size: 104px; line-height: 1; font-weight: 900; margin: 0 0 8px;
    color: var(--dm-primary, #B43F3F); letter-spacing: 2px;
}
.dm-404-title { font-size: 23px; color: var(--dm-text, #1a1a1a); margin: 0 0 10px; font-weight: 800; }
.dm-404-text { color: var(--dm-text-light, #777); margin: 0 0 26px; font-size: 14px; line-height: 2; }

.dm-404-search { display: flex; gap: 8px; margin: 0 auto 20px; max-width: 460px; }
.dm-404-search input[type="search"] {
    flex: 1; min-width: 0; border: 1.5px solid var(--dm-border, #e5e7eb);
    border-radius: var(--dm-radius, 10px); padding: 12px 14px;
    font-family: inherit; font-size: 14px; background: var(--dm-paper, #fff); color: var(--dm-text, #222);
}
.dm-404-search input[type="search"]:focus {
    outline: none; border-color: var(--dm-primary, #B43F3F);
    box-shadow: 0 0 0 3px var(--dm-primary-10, rgba(180,63,63,.08));
}
.dm-404-search button {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 12px 20px; border: 0; cursor: pointer; font-family: inherit;
    font-size: 14px; font-weight: 700; color: #fff;
    background: var(--dm-primary, #B43F3F); border-radius: var(--dm-radius, 10px);
}

.dm-404-actions { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.dm-404-btn {
    display: inline-block; padding: 11px 26px; font-size: 14px; font-weight: 700;
    border-radius: var(--dm-radius, 10px); border: 1.5px solid var(--dm-border, #e5e7eb);
    background: var(--dm-paper, #fff); color: var(--dm-text, #222);
}
.dm-404-btn--primary { background: var(--dm-primary, #B43F3F); border-color: var(--dm-primary, #B43F3F); color: #fff; }

.dm-404-sec-title { font-size: 16px; font-weight: 800; margin: 0 0 14px; color: var(--dm-text, #1a1a1a); }
.dm-404-cats { margin-top: 52px; }
.dm-404-cats-list { display: flex; flex-wrap: wrap; gap: 8px; }
.dm-404-cats-list a {
    display: inline-block; padding: 8px 16px; font-size: 13px; font-weight: 600;
    background: var(--dm-paper, #fff); border: 1px solid var(--dm-border, #e8e8e8); border-radius: 999px;
}
.dm-404-cats-list a:hover { border-color: var(--dm-primary, #B43F3F); color: var(--dm-primary, #B43F3F); }

.dm-404-products { margin-top: 44px; }
.dm-404-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }

@media (max-width: 900px) { .dm-404-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) {
    .dm-404-code { font-size: 74px; }
    .dm-404-search { flex-direction: column; }
    .dm-404-search button { justify-content: center; }
}

.dm-no-content { padding: 60px 0; text-align: center; color: var(--dm-ink-2, #666); }
.dm-page-links { margin-top: 16px; display: flex; gap: 6px; }

/* آیکن سبد فالبک هدر (وقتی افزونهٔ مینی‌کارت نیست) */
.dm-header-cart-fallback { position: relative; display: inline-flex; }
.dm-header-cart-fallback .cart-count {
    position: absolute; top: -8px; left: -8px; min-width: 18px; height: 18px;
    line-height: 18px; text-align: center; font-size: 11px; border-radius: 9px;
    background: var(--dm-primary, #B43F3F); color: #fff; padding: 0 4px;
}

/* ── پنل مستقل مینی‌کارت قالب (off-canvas) ── */
.dm-mini-cart-overlay {
    position: fixed; inset: 0; background: rgba(0,0,0,.45);
    opacity: 0; visibility: hidden; transition: opacity .25s, visibility .25s; z-index: var(--dm-z-overlay-top, 99990);
}
.dm-mini-cart-overlay.is-open { opacity: 1; visibility: visible; }
.dm-mini-cart-panel {
    position: fixed; top: 0; bottom: 0; left: 0; width: 360px; max-width: 90vw;
    background: var(--dm-paper, #fff); z-index: var(--dm-z-panel-top, 99999); display: flex; flex-direction: column;
    transform: translateX(-100%); transition: transform .28s ease; box-shadow: 0 0 30px rgba(0,0,0,.18);
}
.dm-mini-cart-panel.is-open { transform: translateX(0); }
.dm-mini-cart-header {
    display: flex; align-items: center; justify-content: space-between;
    padding: 16px 18px; border-bottom: 1px solid var(--dm-border, #eee);
}
.dm-mini-cart-header h3 { margin: 0; font-size: 16px; }
.dm-mini-cart-close { background: none; border: 0; cursor: pointer; color: var(--dm-ink-2, #666); padding: 4px; }
.dm-mini-cart-body { flex: 1; overflow-y: auto; padding: 14px 18px; }
.dm-mini-cart-footer { border-top: 1px solid var(--dm-border, #eee); padding: 14px 18px; }
.mini-cart-loading { display: flex; justify-content: center; padding: 40px 0; }
.mini-cart-spinner {
    width: 28px; height: 28px; border: 3px solid var(--dm-border, #eee);
    border-top-color: var(--dm-primary, #B43F3F); border-radius: 50%; animation: dm-spin .8s linear infinite;
}
@keyframes dm-spin { to { transform: rotate(360deg); } }
.dm-mini-cart-item { display: flex; gap: 10px; align-items: flex-start; padding: 10px 0; border-bottom: 1px solid var(--dm-border, #f0f0f0); }
.dm-mini-cart-item img { border-radius: 8px; }
.mini-cart-item-details { flex: 1; font-size: 13px; }
.mini-cart-item-details a { font-weight: 600; display: block; margin-bottom: 4px; }
.mini-cart-remove-btn { background: none; border: 0; cursor: pointer; color: #c00; }
.mini-cart-total-row { display: flex; justify-content: space-between; font-weight: 700; margin-bottom: 12px; }
.mini-cart-actions { display: flex; gap: 8px; }
.mini-cart-btn { flex: 1; text-align: center; padding: 10px; border-radius: var(--dm-radius, 10px); }
.mini-cart-btn-cart { background: var(--dm-bg-soft, #f5f5f5); }
.mini-cart-btn-checkout { background: var(--dm-primary, #B43F3F); color: #fff; }

/* آیکن واحد پول (تومان) — جایگزین fill:currentColor این‌لاینِ حذف‌شده */
.dm-currency-icon { width: 1em; height: 1em; fill: currentColor; vertical-align: -.12em; }
.dm-price-suffix-img { height: 1em; width: auto; vertical-align: -.12em; }

/* نوار ارسال رایگان — متن */
.dm-cart-totals__freeship { margin: 12px 0; }
.dm-freeship-text { font-size: 13px; margin: 0 0 6px; }
.dm-freeship-text span { font-weight: 700; color: var(--dm-primary, #B43F3F); }
.dm-freeship-done { color: #10b981; }
.dm-freeship-bar { height: 6px; background: var(--dm-bg-soft, #eee); border-radius: 6px; overflow: hidden; }
.dm-freeship-bar span { display: block; height: 100%; background: var(--dm-primary, #B43F3F); transition: width .4s; }

/* نظرات (قالب جدید comments.php دارد؛ در قالب قدیم نبود) */
.dm-comments { margin-top: 28px; }
.dm-comments-title { font-size: 17px; margin: 0 0 16px; }
.dm-comment-list { list-style: none; margin: 0 0 20px; padding: 0; }
.dm-comment-list .comment { padding: 14px 0; border-bottom: 1px solid var(--dm-border, #eee); }
.dm-comment-list .comment-author .fn { font-weight: 700; }
.dm-comment-list .comment-meta { font-size: 12px; color: var(--dm-ink-3, #888); }
.dm-comments-closed { color: var(--dm-ink-3, #888); font-size: 13px; }
.dm-comment-form input[type="text"],
.dm-comment-form input[type="email"],
.dm-comment-form input[type="url"],
.dm-comment-form textarea { width: 100%; max-width: 100%; border: 1px solid var(--dm-border, #ddd); border-radius: var(--dm-radius, 8px); padding: 10px; margin-bottom: 12px; }

/* ════════════════════════════════════════════
   تداخلِ دکمهٔ شناورِ سبد با نوارِ ناوبریِ موبایل
   ════════════════════════════════════════════
 *
 * ⚠ اندازه‌گیری‌شده روی عرضِ ۳۷۵: دکمهٔ شناورِ افزونهٔ سبدِ هوشمند (۵۵×۵۵ در
 * x=۲۰,y=۷۳۷، با z-index ۹۹۹۹۰) دقیقاً روی آیتمِ «سبد خرید» نوارِ پایین
 * (۷۳×۵۶ در x=۶,y=۷۴۸) می‌نشیند. آزمونِ نقطه‌ای: عنصرِ زیرِ نشانگر در مرکزِ آن
 * آیتم، فرزندِ دکمهٔ شناور بود ⇒ آیتمِ سبدِ نوار عملاً کلیک‌ناپذیر بود.
 *
 * ⚠ این را با z-index حل نمی‌کنیم: عددِ افزونه در بندِ پوششِ تمام‌صفحه است و
 * پایین‌آوردنش از بیرون یعنی جنگِ !important با کدی که مالِ ما نیست. مسئله
 * اصلاً لایه نیست، تکرار است — وقتی نوارِ پایین هست، آیتمِ سبدش از قبل همان
 * کشوی افزونه را باز می‌کند (integration-mnav-plugins)، پس دکمهٔ شناور یک
 * کنترلِ دوم و اضافه در همان گوشه است.
 *
 * شرط دو لایه دارد و هر دو لازم است: کلاسِ بدنه یعنی نوار واقعاً رندر شده
 * (اگر مدیر خاموشش کند دکمهٔ شناور برمی‌گردد)، و پرسشِ رسانه‌ای همان نقطه‌ای‌ست
 * که نوار در آن ظاهر می‌شود.
 */
@media (max-width: 991.98px) {
    body.dm-has-mobile-nav .dm-scm-float-btn {
        display: none !important;
    }
}
