@charset "UTF-8";
/* =========================================================================
   قالب فروشگاه — طرح جدید «بازار روشن» (Bright Market)
   فقط سایت اصلی مشتری. پنل مدیریت و پنل فروشنده همان style.css قبلی را دارند.

   جهت بصری:
   · کاغذ استخوانی گرم به‌جای سفید یخی؛ هیچ‌جا #fff و #000 نداریم.
   · یک رنگ برند ساختاری: سبز کاج عمیق (نوار ناوبری، فوتر، دکمه خرید).
   · یک رنگ داغ کم‌مصرف: نارنجی سفالی برای قیمت، تخفیف و شمارش معکوس.
   · فرم‌ها و کنترل‌ها قرص‌شکل، سطوح مستطیلِ نرم — یک امضای شکلی روشن.
   · کارت محصول بدون قاب و سایه؛ جداسازی با فاصله و بلوک تصویر فرورفته.
   نام همه توکن‌ها با نسخه قبل یکسان است تا استایل‌های inline نشکند.
   ========================================================================= */

:root {
    color-scheme: light;

    /* سطوح — کاغذ گرم استخوانی */
    --paper:        oklch(97.6% 0.009 92);
    --paper-raised: oklch(99.4% 0.005 92);
    --paper-sunk:   oklch(95.2% 0.012 92);
    --paper-inset:  oklch(92.4% 0.015 90);

    /* متن — مشتق از سبز کاج، نه خاکستری مرده */
    --ink:      oklch(23% 0.020 155);
    --ink-soft: oklch(38% 0.018 155);
    --muted:    oklch(52% 0.015 152);
    --faint:    oklch(67% 0.013 145);

    /* خطوط */
    --line:        oklch(88.5% 0.012 92);
    --line-strong: oklch(76% 0.017 90);

    /* برند — سبز کاج عمیق */
    --accent:        oklch(43% 0.090 158);
    --accent-dark:   oklch(37% 0.082 158);
    --accent-darker: oklch(30% 0.070 158);
    --accent-soft:   oklch(94.6% 0.030 160);
    --accent-line:   oklch(82% 0.048 158);
    --accent-ink:    oklch(98.6% 0.012 150);

    /* رنگ داغ — سفالی/نارنجی سوخته: قیمت، تخفیف، فوریت */
    --brand2:      oklch(57% 0.155 42);
    --brand2-soft: oklch(95.2% 0.034 46);
    --brand2-line: oklch(83% 0.070 44);

    /* سطوح تیره — همان کاج، فقط عمیق‌تر (فوتر، کارت پیشنهاد) */
    --navy:       oklch(27% 0.032 158);
    --navy-deep:  oklch(20.5% 0.026 158);
    --navy-light: oklch(35% 0.036 158);
    --on-navy:    oklch(95.5% 0.014 150);

    /* معنایی */
    --gold:         oklch(75% 0.135 80);
    --success:      oklch(47% 0.105 155);
    --success-soft: oklch(94.8% 0.030 155);
    --danger:       oklch(52% 0.170 27);
    --danger-soft:  oklch(95% 0.030 27);
    --info:         oklch(49% 0.088 235);
    --info-soft:    oklch(95% 0.024 235);
    --warn:         oklch(60% 0.128 72);
    --warn-soft:    oklch(95.5% 0.036 76);

    /* گرادیان — فقط برای سطوح تیره، بدون براقی تزئینی */
    --grad-brand: linear-gradient(180deg, oklch(45% 0.092 158), oklch(40% 0.086 158));
    --grad-dark:  linear-gradient(180deg, oklch(28% 0.033 158), oklch(20% 0.025 158));
    --grad-sheen: linear-gradient(180deg, oklch(99% 0.005 92 / .55), oklch(99% 0.005 92 / 0));

    /* فاصله — پایه ۴ */
    --sp-1: 4px;  --sp-2: 8px;  --sp-3: 12px; --sp-4: 16px;
    --sp-5: 20px; --sp-6: 24px; --sp-8: 32px; --sp-10: 44px;
    --sp-12: 56px; --sp-16: 72px; --sp-20: 96px;

    /* شکل — سطوح مستطیل نرم، کنترل‌ها قرص */
    --radius-xs: 5px;
    --radius-sm: 8px;
    --radius:    11px;
    --radius-lg: 15px;
    --radius-xl: 22px;
    --pill:      999px;
    --max-w:     1320px;

    /* سایه — بسیار کم‌رنگ، سبز-محور */
    --shadow-sm: 0 1px 2px oklch(30% 0.03 158 / .06);
    --shadow:    0 1px 2px oklch(30% 0.03 158 / .05), 0 6px 14px -8px oklch(30% 0.03 158 / .12);
    --shadow-md: 0 2px 5px oklch(30% 0.03 158 / .06), 0 14px 26px -12px oklch(30% 0.03 158 / .16);
    --shadow-lg: 0 4px 10px oklch(30% 0.03 158 / .07), 0 26px 48px -20px oklch(30% 0.03 158 / .20);
    --shadow-accent: 0 6px 16px -8px oklch(43% 0.090 158 / .55);
    --ring: 0 0 0 3px oklch(43% 0.090 158 / .22);

    /* حرکت */
    --t-fast: 120ms;
    --t-base: 240ms;
    --t-slow: 420ms;
    --ease-out: cubic-bezier(.22, 1, .36, 1);
    --ease-io:  cubic-bezier(.65, 0, .35, 1);

    /* لایه‌بندی */
    --z-sticky: 40;
    --z-mega: 60;
    --z-drawer: 80;
    --z-toast: 100;

    /* تایپوگرافی */
    --fs-xs:   .8125rem;
    --fs-sm:   .9375rem;
    --fs-base: 1rem;
    --fs-lg:   1.25rem;
    --fs-xl:   1.625rem;
    --fs-2xl:  clamp(1.875rem, 1.2rem + 2.2vw, 2.625rem);
}

/* حالت شب — همان طرح، فقط سطوح روشن‌تر می‌شوند نه سایه‌دار.
   اگر «حالت شب» را در تنظیمات خاموش کرده‌اید این بلوک هیچ اثری ندارد. */
:root[data-theme="dark"] {
    color-scheme: dark;

    --paper:        oklch(19% 0.018 158);
    --paper-raised: oklch(23% 0.021 158);
    --paper-sunk:   oklch(16% 0.015 158);
    --paper-inset:  oklch(27% 0.024 158);

    --ink:      oklch(95% 0.010 150);
    --ink-soft: oklch(81% 0.014 150);
    --muted:    oklch(66% 0.016 150);
    --faint:    oklch(51% 0.016 150);

    --line:        oklch(30% 0.020 158);
    --line-strong: oklch(40% 0.024 158);

    --accent:        oklch(72% 0.115 158);
    --accent-dark:   oklch(66% 0.110 158);
    --accent-darker: oklch(80% 0.090 158);
    --accent-soft:   oklch(28% 0.045 158);
    --accent-line:   oklch(40% 0.060 158);
    --accent-ink:    oklch(17% 0.020 158);

    --brand2:      oklch(74% 0.135 48);
    --brand2-soft: oklch(29% 0.050 44);
    --brand2-line: oklch(42% 0.075 44);

    --navy:       oklch(23% 0.021 158);
    --navy-deep:  oklch(16% 0.015 158);
    --navy-light: oklch(30% 0.026 158);
    --on-navy:    oklch(93% 0.012 150);

    --gold:         oklch(80% 0.130 82);
    --success:      oklch(72% 0.115 155);
    --success-soft: oklch(27% 0.045 155);
    --danger:       oklch(68% 0.155 27);
    --danger-soft:  oklch(28% 0.050 27);
    --info:         oklch(70% 0.090 235);
    --info-soft:    oklch(27% 0.040 235);
    --warn:         oklch(78% 0.115 76);
    --warn-soft:    oklch(29% 0.048 76);

    --grad-brand: linear-gradient(180deg, oklch(70% 0.112 158), oklch(64% 0.106 158));
    --grad-dark:  linear-gradient(180deg, oklch(23% 0.021 158), oklch(16% 0.015 158));

    --shadow-sm: 0 1px 2px oklch(8% 0.01 158 / .40);
    --shadow:    0 2px 6px oklch(8% 0.01 158 / .45);
    --shadow-md: 0 6px 18px oklch(8% 0.01 158 / .50);
    --shadow-lg: 0 18px 40px oklch(8% 0.01 158 / .55);
    --ring: 0 0 0 3px oklch(72% 0.115 158 / .28);
}

/* ------------------------------------------------------------------ پایه */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
    margin: 0;
    font-family: Vazirmatn, "Segoe UI", system-ui, -apple-system, sans-serif;
    font-size: var(--fs-base);
    font-weight: 400;
    line-height: 1.85;
    font-optical-sizing: auto;
    font-variant-numeric: tabular-nums;
    color: var(--ink);
    background: var(--paper);
    -webkit-font-smoothing: antialiased;
}

body.no-scroll { overflow: hidden; }

h1, h2, h3, h4, h5 {
    margin: 0 0 var(--sp-3);
    font-weight: 800;
    line-height: 1.45;
    letter-spacing: -.01em;
    text-wrap: balance;
    color: var(--ink);
}
h1 { font-size: var(--fs-2xl); }
h2 { font-size: var(--fs-xl); }
h3 { font-size: var(--fs-lg); }
h4 { font-size: var(--fs-base); }

p { margin: 0 0 var(--sp-3); text-wrap: pretty; }
p:last-child { margin-bottom: 0; }

a { color: var(--accent-dark); text-decoration: none; transition: color var(--t-fast) var(--ease-out); }
a:hover { color: var(--accent-darker); }

img, svg, video { max-width: 100%; height: auto; display: block; }
svg { flex: none; }

ul, ol { margin: 0; padding: 0; list-style: none; }

button { font: inherit; color: inherit; cursor: pointer; }

hr { border: 0; border-top: 1px solid var(--line); margin: var(--sp-6) 0; }

b, strong { font-weight: 700; }

::selection { background: var(--accent-soft); color: var(--accent-darker); }

:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: var(--radius-xs); }

/* اسکرول‌بار ریل‌ها */
.rail, .cat-strip-inner, .gallery-thumbs, .brand-rail, .story-strip, .ct-items, .filter-tabs {
    scrollbar-width: thin;
    scrollbar-color: var(--line-strong) transparent;
}
.rail::-webkit-scrollbar, .cat-strip-inner::-webkit-scrollbar, .gallery-thumbs::-webkit-scrollbar,
.brand-rail::-webkit-scrollbar, .story-strip::-webkit-scrollbar { height: 5px; }
.rail::-webkit-scrollbar-thumb, .cat-strip-inner::-webkit-scrollbar-thumb, .gallery-thumbs::-webkit-scrollbar-thumb,
.brand-rail::-webkit-scrollbar-thumb, .story-strip::-webkit-scrollbar-thumb {
    background: var(--line-strong); border-radius: var(--pill);
}

/* --------------------------------------------------------------- ساختار */

.container {
    width: 100%;
    max-width: var(--max-w);
    margin-inline: auto;
    padding-inline: clamp(14px, 3.5vw, 30px);
}

main { display: block; min-height: 46vh; }

.section { padding-block: var(--sp-12); }
.section + .section { padding-block-start: 0; }
.narrow-section { max-width: 780px; margin-inline: auto; }

.home-stack > section { padding-block: var(--sp-10) 0; }
.home-stack > section:first-child { padding-block-start: var(--sp-6); }
.home-stack > section:last-child { padding-block-end: var(--sp-12); }

.two-col { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: var(--sp-6); }
.two-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: var(--sp-3); }

/* سرتیتر بخش — برچسب کوچک + تیتر درشت + خط کوتاه برند */
.section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--sp-4);
    margin-bottom: var(--sp-5);
    flex-wrap: wrap;
}
.section-head .head-text { min-width: 0; }
.section-head h2, .section-head h3 {
    margin: 0;
    font-size: clamp(1.25rem, 1rem + .8vw, 1.5rem);
}
.section-head h2::after {
    content: "";
    display: block;
    width: 42px;
    height: 3px;
    margin-top: 10px;
    border-radius: var(--pill);
    background: var(--accent);
}
.section-head .sub {
    margin: 6px 0 0;
    font-size: var(--fs-sm);
    color: var(--muted);
    max-width: 68ch;
}
.section-label {
    display: inline-block;
    font-size: var(--fs-xs);
    font-weight: 700;
    color: var(--brand2);
    margin-bottom: 4px;
}
.more {
    flex: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: var(--fs-sm);
    font-weight: 700;
    color: var(--accent-dark);
    padding: 6px 14px;
    border: 1px solid var(--accent-line);
    border-radius: var(--pill);
    background: var(--paper-raised);
    transition: background var(--t-fast) var(--ease-out), color var(--t-fast) var(--ease-out);
}
.more:hover { background: var(--accent); color: var(--accent-ink); border-color: var(--accent); }
.more::after { content: "‹"; font-size: 1.1em; line-height: 1; }

/* --------------------------------------------------------------- دکمه‌ها */

.btn, .btn-primary, .btn-ghost, .btn-sm, .cta, .btn-add-cart {
    -webkit-appearance: none;
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--sp-2);
    font-family: inherit;
    font-weight: 700;
    text-align: center;
    text-decoration: none;
    border: 1px solid transparent;
    border-radius: var(--pill);
    cursor: pointer;
    transition: background var(--t-fast) var(--ease-out), border-color var(--t-fast) var(--ease-out),
                color var(--t-fast) var(--ease-out), transform var(--t-fast) var(--ease-out),
                box-shadow var(--t-base) var(--ease-out);
}

.btn, .btn-primary, .cta, .btn-ghost { padding: 11px 22px; font-size: var(--fs-sm); min-height: 44px; }

.btn-primary, .cta {
    background: var(--accent);
    color: var(--accent-ink);
    border-color: var(--accent);
}
.btn-primary:hover, .cta:hover { background: var(--accent-dark); border-color: var(--accent-dark); color: var(--accent-ink); box-shadow: var(--shadow-accent); }
.btn-primary:active, .cta:active { transform: translateY(1px); box-shadow: none; }

.btn {
    background: var(--paper-raised);
    color: var(--ink);
    border-color: var(--line-strong);
}
.btn:hover { border-color: var(--ink-soft); }

.btn-ghost {
    background: transparent;
    color: var(--accent-dark);
    border-color: var(--accent-line);
}
.btn-ghost:hover { background: var(--accent-soft); color: var(--accent-darker); }

.btn-sm {
    padding: 7px 14px;
    font-size: var(--fs-xs);
    font-weight: 600;
    min-height: 34px;
    background: var(--paper-raised);
    color: var(--ink-soft);
    border-color: var(--line);
}
.btn-sm:hover { color: var(--ink); border-color: var(--line-strong); background: var(--paper-sunk); }
.btn-sm.primary { background: var(--accent); color: var(--accent-ink); border-color: var(--accent); }
.btn-sm.primary:hover { background: var(--accent-dark); border-color: var(--accent-dark); color: var(--accent-ink); }
.btn-sm.danger { color: var(--danger); border-color: var(--danger-soft); background: var(--danger-soft); }
.btn-sm.danger:hover { background: var(--danger); color: var(--paper-raised); border-color: var(--danger); }
.btn-sm.ok { color: var(--success); background: var(--success-soft); border-color: var(--success-soft); }

.btn-add-cart {
    width: 100%;
    padding: 14px 24px;
    font-size: 1.0625rem;
    font-weight: 800;
    min-height: 52px;
    background: var(--accent);
    color: var(--accent-ink);
    border-color: var(--accent);
    box-shadow: var(--shadow-accent);
}
.btn-add-cart:hover { background: var(--accent-dark); border-color: var(--accent-dark); }
.btn-add-cart:active { transform: translateY(1px); }

.btn:disabled, .btn-primary:disabled, .btn-sm:disabled, .btn-add-cart:disabled, .cta:disabled,
.btn-ghost:disabled, [disabled] {
    opacity: .55;
    cursor: not-allowed;
    box-shadow: none;
    transform: none;
}

/* ----------------------------------------------------------------- فرم‌ها */

input[type=text], input[type=search], input[type=tel], input[type=email], input[type=number],
input[type=password], input[type=date], input[type=url], select, textarea {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    font-family: inherit;
    font-size: var(--fs-sm);
    color: var(--ink);
    background: var(--paper-raised);
    border: 1px solid var(--line-strong);
    border-radius: var(--radius-sm);
    padding: 11px 14px;
    min-height: 44px;
    line-height: 1.6;
    transition: border-color var(--t-fast) var(--ease-out), box-shadow var(--t-fast) var(--ease-out), background var(--t-fast) var(--ease-out);
}
textarea { min-height: 120px; resize: vertical; line-height: 1.85; }
select {
    background-image: linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);
    background-position: left 16px center, left 11px center;
    background-size: 5px 5px, 5px 5px;
    background-repeat: no-repeat;
    padding-inline-start: 34px;
}
input:hover, select:hover, textarea:hover { border-color: var(--ink-soft); }
input:focus, select:focus, textarea:focus {
    outline: none;
    border-color: var(--accent);
    box-shadow: var(--ring);
    background: var(--paper-raised);
}
input::placeholder, textarea::placeholder { color: var(--faint); }
input:disabled, select:disabled, textarea:disabled { background: var(--paper-sunk); color: var(--muted); cursor: not-allowed; }
input[type=checkbox], input[type=radio] { width: 18px; height: 18px; min-height: 0; accent-color: var(--accent); cursor: pointer; }

.field-group { display: flex; flex-direction: column; gap: 7px; margin-bottom: var(--sp-4); }
.field-group > .label, .field-group > label, .label {
    font-size: var(--fs-xs);
    font-weight: 700;
    color: var(--ink-soft);
}
.req::after, .field-group .req { color: var(--danger); }
.hint { margin: 6px 0 0; font-size: var(--fs-xs); color: var(--muted); line-height: 1.75; }
.check-line { display: flex; align-items: center; gap: var(--sp-2); font-size: var(--fs-sm); }
.inline-form { display: flex; gap: var(--sp-2); flex-wrap: wrap; align-items: flex-start; }

.form-card, .summary-box, .co-card, .form-shell, .public-form, .auth-card, .proforma-card, .offer-card, .pd-buy-box {
    background: var(--paper-raised);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    padding: var(--sp-6);
}
.form-card > h3:first-child, .summary-box > h3:first-child, .co-card > h3:first-child { margin-top: 0; }

/* --------------------------------------------------- بج، پیل، وضعیت‌ها */

.badge, .pill, .chip, .status-pill, .rv-tag, .fb, .cb-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: var(--fs-xs);
    font-weight: 600;
    line-height: 1;
    padding: 6px 12px;
    border-radius: var(--pill);
    border: 1px solid var(--line);
    background: var(--paper-sunk);
    color: var(--ink-soft);
    white-space: nowrap;
}
.pill { background: var(--accent-soft); border-color: var(--accent-line); color: var(--accent-darker); }
.chip {
    background: var(--paper-raised);
    cursor: pointer;
    transition: border-color var(--t-fast) var(--ease-out), background var(--t-fast) var(--ease-out), color var(--t-fast) var(--ease-out);
}
.chip:hover { border-color: var(--accent-line); color: var(--accent-darker); }
.chip.active, .chip[aria-pressed="true"] { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }
.chip.out { opacity: .45; text-decoration: line-through; cursor: not-allowed; }
.rv-tag { background: var(--brand2-soft); border-color: var(--brand2-line); color: var(--brand2); }

.status-pill { font-weight: 700; }
.status-pending_payment { background: var(--warn-soft); border-color: var(--warn-soft); color: var(--warn); }
.status-paid, .status-approved { background: var(--success-soft); border-color: var(--success-soft); color: var(--success); }
.status-processing { background: var(--info-soft); border-color: var(--info-soft); color: var(--info); }
.status-delivered { background: var(--accent-soft); border-color: var(--accent-line); color: var(--accent-darker); }
.status-cancelled, .status-rejected { background: var(--danger-soft); border-color: var(--danger-soft); color: var(--danger); }

.txt-danger { color: var(--danger); }
.txt-success { color: var(--success); }
.mark { background: var(--warn-soft); border-radius: 3px; padding: 0 3px; color: var(--ink); }

/* هشدارها */
.alert {
    display: flex;
    align-items: flex-start;
    gap: var(--sp-3);
    font-size: var(--fs-sm);
    line-height: 1.8;
    padding: 13px 16px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--paper-sunk);
    color: var(--ink-soft);
    margin-bottom: var(--sp-4);
}
.alert.ok      { background: var(--success-soft); border-color: var(--success-soft); color: var(--success); }
.alert.danger, .alert.err { background: var(--danger-soft); border-color: var(--danger-soft); color: var(--danger); }
.alert.info    { background: var(--info-soft); border-color: var(--info-soft); color: var(--info); }
.alert.warn    { background: var(--warn-soft); border-color: var(--warn-soft); color: var(--warn); }
.alert b, .alert strong { font-weight: 800; }

/* حالت خالی — راهنما، نه «چیزی نیست» */
.empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: var(--sp-3);
    padding: var(--sp-12) var(--sp-5);
    border: 1px dashed var(--line-strong);
    border-radius: var(--radius-lg);
    background: var(--paper-raised);
    color: var(--muted);
    font-size: var(--fs-sm);
}
.empty-state .es-ico {
    display: grid;
    place-items: center;
    width: 60px;
    height: 60px;
    border-radius: var(--pill);
    background: var(--accent-soft);
    color: var(--accent);
}
.empty-state strong { display: block; font-size: var(--fs-lg); color: var(--ink); }

/* اسکلتون */
.skeleton {
    background: linear-gradient(90deg, var(--paper-sunk), var(--paper-inset), var(--paper-sunk));
    background-size: 200% 100%;
    border-radius: var(--radius-sm);
    animation: sheen 1.4s linear infinite;
}
@keyframes sheen { from { background-position: 200% 0; } to { background-position: -200% 0; } }

/* مسیر راهنما */
.breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--sp-2);
    font-size: var(--fs-xs);
    color: var(--muted);
    padding-block: var(--sp-5) 0;
}
.breadcrumb a { color: var(--muted); }
.breadcrumb a:hover { color: var(--accent-dark); }
.breadcrumb .sep { color: var(--faint); }
.breadcrumb > :last-child { color: var(--ink); font-weight: 600; }

/* صفحه‌بندی */
.pagination { display: flex; justify-content: center; align-items: center; gap: var(--sp-2); margin-top: var(--sp-10); flex-wrap: wrap; }
.pagination a, .pagination span {
    min-width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    padding-inline: 12px;
    font-size: var(--fs-sm);
    font-weight: 600;
    border-radius: var(--radius-sm);
    border: 1px solid var(--line);
    background: var(--paper-raised);
    color: var(--ink-soft);
}
.pagination a:hover { border-color: var(--accent-line); color: var(--accent-dark); background: var(--accent-soft); }
.pagination .current { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }
.pagination .prev, .pagination .next { font-weight: 700; }

/* جدول‌ها */
.cart-table, .spec-table, .compare-table, .admin-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--fs-sm);
}
.cart-table th, .admin-table th, .compare-table th {
    text-align: start;
    font-size: var(--fs-xs);
    font-weight: 700;
    color: var(--muted);
    padding: 13px 16px;
    background: var(--paper-sunk);
    border-bottom: 1px solid var(--line);
    white-space: nowrap;
}
.cart-table td, .admin-table td, .compare-table td {
    padding: 15px 16px;
    border-bottom: 1px solid var(--line);
    vertical-align: middle;
}
.cart-table tbody tr:last-child td, .admin-table tbody tr:last-child td { border-bottom: 0; }
.cart-table tbody tr, .admin-table tbody tr { transition: background var(--t-fast) var(--ease-out); }
.cart-table tbody tr:hover, .admin-table tbody tr:hover { background: var(--paper-sunk); }
.admin-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.cell-sub { display: block; font-size: var(--fs-xs); color: var(--muted); }
.row-actions { display: flex; gap: 6px; flex-wrap: wrap; }

/* ======================================================= نوار تبلیغاتی */

.promo-ribbon {
    background: var(--navy-deep);
    color: var(--on-navy);
    font-size: var(--fs-xs);
}
.promo-ribbon .container {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--sp-4);
    min-height: 40px;
    flex-wrap: wrap;
    padding-block: 6px;
}
.promo-ribbon .rib-main { display: inline-flex; align-items: center; gap: var(--sp-2); }
.promo-ribbon .rib-tag {
    background: var(--brand2);
    color: oklch(99% 0.01 46);
    font-weight: 800;
    padding: 3px 10px;
    border-radius: var(--pill);
    letter-spacing: .01em;
}
.promo-ribbon .rib-extra {
    color: var(--on-navy);
    font-weight: 700;
    border-bottom: 1px solid oklch(95.5% 0.014 150 / .45);
    padding-bottom: 1px;
}
.promo-ribbon .rib-extra:hover { color: oklch(99% 0.01 46); border-color: currentColor; }

/* ------------------------------------------------------------------ هدر */

.site-header { background: var(--paper-raised); border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: var(--z-sticky); }
.site-header.is-stuck { box-shadow: var(--shadow-md); }

.site-header .bar {
    width: 100%;
    max-width: var(--max-w);
    margin-inline: auto;
    padding: var(--sp-4) clamp(14px, 3.5vw, 30px);
    display: flex;
    align-items: center;
    gap: var(--sp-4);
}

.mobile-toggle {
    display: none;
    width: 42px;
    height: 42px;
    place-items: center;
    background: var(--paper-sunk);
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    color: var(--ink);
}

.logo { display: inline-flex; align-items: center; gap: 10px; font-size: 1.125rem; font-weight: 800; color: var(--ink); flex: none; }
.logo:hover { color: var(--accent-dark); }
.logo .mark {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    font-size: 1.25rem;
    font-weight: 900;
    border-radius: var(--radius-sm);
    background: var(--accent);
    color: var(--accent-ink);
}

/* جستجو — کنترل قرص‌شکل، امضای شکلی قالب */
.search-box {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    background: var(--paper-sunk);
    border: 1px solid var(--line-strong);
    border-radius: var(--pill);
    padding: 4px 4px 4px 6px;
    padding-inline-start: 16px;
    transition: border-color var(--t-fast) var(--ease-out), box-shadow var(--t-fast) var(--ease-out), background var(--t-fast) var(--ease-out);
}
.search-box:focus-within { border-color: var(--accent); box-shadow: var(--ring); background: var(--paper-raised); }
.search-box .s-icon { color: var(--muted); display: grid; place-items: center; flex: none; }
.search-box input {
    flex: 1;
    min-width: 0;
    border: 0;
    background: none;
    padding: 8px 0;
    min-height: 38px;
    font-size: var(--fs-sm);
}
.search-box input:focus { box-shadow: none; }
.search-box input::-webkit-search-cancel-button { display: none; }
.search-box button[type=submit] {
    flex: none;
    border: 0;
    background: var(--accent);
    color: var(--accent-ink);
    font-size: var(--fs-xs);
    font-weight: 700;
    padding: 0 22px;
    height: 38px;
    border-radius: var(--pill);
    transition: background var(--t-fast) var(--ease-out);
}
.search-box button[type=submit]:hover { background: var(--accent-dark); }

.search-suggest {
    position: absolute;
    inset-inline: 0;
    top: calc(100% + 8px);
    background: var(--paper-raised);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: var(--shadow-lg);
    padding: 6px;
    z-index: var(--z-mega);
    max-height: 66vh;
    overflow-y: auto;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: opacity var(--t-fast) var(--ease-out), transform var(--t-fast) var(--ease-out), visibility var(--t-fast);
}
.search-suggest.show, .search-suggest.open { opacity: 1; visibility: visible; transform: none; }
.search-suggest a {
    display: flex;
    align-items: center;
    gap: var(--sp-3);
    padding: 9px 10px;
    border-radius: var(--radius-sm);
    font-size: var(--fs-sm);
    color: var(--ink);
}
.search-suggest a:hover, .search-suggest a.active { background: var(--accent-soft); color: var(--accent-darker); }
.search-suggest img { width: 42px; height: 42px; object-fit: contain; border-radius: var(--radius-xs); background: var(--paper-sunk); }
.search-suggest .price { font-size: var(--fs-xs); margin-inline-start: auto; }

/* اکشن‌های هدر */
.header-actions { display: flex; align-items: center; gap: var(--sp-2); flex: none; }

.act-icon, .act-bell, .theme-toggle {
    position: relative;
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: var(--pill);
    border: 1px solid transparent;
    background: none;
    color: var(--ink-soft);
    transition: background var(--t-fast) var(--ease-out), color var(--t-fast) var(--ease-out);
}
.act-icon:hover, .act-bell:hover, .theme-toggle:hover { background: var(--paper-sunk); color: var(--accent-dark); }

.bell-dot {
    position: absolute;
    top: 2px;
    inset-inline-end: 0;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    display: grid;
    place-items: center;
    font-size: .625rem;
    font-weight: 800;
    line-height: 1;
    border-radius: var(--pill);
    background: var(--brand2);
    color: oklch(99% 0.01 46);
    border: 2px solid var(--paper-raised);
}
.bell-dot.empty { display: none; }

:root[data-theme="light"] .ico-moon, :root:not([data-theme="dark"]) .ico-moon { display: none; }
:root[data-theme="dark"] .ico-sun { display: none; }

.act-login {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-2);
    height: 42px;
    padding-inline: 14px;
    border: 1px solid var(--line-strong);
    border-radius: var(--pill);
    font-size: var(--fs-xs);
    font-weight: 700;
    color: var(--ink);
    max-width: 190px;
}
.act-login:hover { border-color: var(--accent); color: var(--accent-dark); background: var(--accent-soft); }
.act-login .label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: inherit; }
.act-login .hdr-icon, .act-cart .hdr-icon { display: grid; place-items: center; }

.act-cart {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-2);
    height: 42px;
    padding-inline: 18px;
    border-radius: var(--pill);
    background: var(--accent);
    color: var(--accent-ink);
    font-size: var(--fs-xs);
    font-weight: 800;
}
.act-cart .label { color: inherit; }
.act-cart:hover { background: var(--accent-dark); color: var(--accent-ink); box-shadow: var(--shadow-accent); }
.act-cart .cart-count {
    min-width: 22px;
    height: 22px;
    padding: 0 5px;
    display: grid;
    place-items: center;
    font-size: .6875rem;
    border-radius: var(--pill);
    background: var(--accent-ink);
    color: var(--accent-dark);
}

/* منوی اصلی — نوار کاج تیره چسبان */
.main-nav {
    position: sticky;
    top: 0;
    z-index: var(--z-sticky);
    background: var(--navy);
    color: var(--on-navy);
}
.nav-inner {
    width: 100%;
    max-width: var(--max-w);
    margin-inline: auto;
    padding-inline: clamp(14px, 3.5vw, 30px);
    display: flex;
    align-items: stretch;
    gap: var(--sp-4);
}
.main-nav > .nav-inner > ul { display: flex; align-items: stretch; gap: 2px; flex: 1; min-width: 0; overflow: visible; }
.main-nav > .nav-inner > ul > li { position: relative; display: flex; align-items: center; }
.main-nav > .nav-inner > ul > li > a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 14px 13px;
    font-size: var(--fs-xs);
    font-weight: 600;
    color: var(--on-navy);
    white-space: nowrap;
    border-bottom: 2px solid transparent;
    transition: color var(--t-fast) var(--ease-out), border-color var(--t-fast) var(--ease-out);
}
.main-nav > .nav-inner > ul > li > a:hover { color: oklch(99% 0.01 46); border-bottom-color: var(--brand2); }

.nav-sub {
    position: absolute;
    top: 100%;
    inset-inline-start: 0;
    min-width: 210px;
    background: var(--paper-raised);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: var(--shadow-lg);
    padding: 6px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: opacity var(--t-fast) var(--ease-out), transform var(--t-fast) var(--ease-out), visibility var(--t-fast);
    z-index: var(--z-mega);
}
.main-nav li:hover > .nav-sub, .main-nav li:focus-within > .nav-sub { opacity: 1; visibility: visible; transform: none; }
.nav-sub a { display: block; padding: 8px 12px; border-radius: var(--radius-xs); font-size: var(--fs-xs); color: var(--ink-soft); }
.nav-sub a:hover { background: var(--accent-soft); color: var(--accent-darker); }

/* مگا منو */
.mega-wrap { position: relative; display: flex; align-items: center; flex: none; }
.mega-trigger {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-2);
    height: 38px;
    padding-inline: 16px;
    margin-block: 6px;
    border: 0;
    border-radius: var(--pill);
    background: var(--brand2);
    color: oklch(99% 0.01 46);
    font-size: var(--fs-xs);
    font-weight: 800;
    white-space: nowrap;
    box-shadow: 0 1px 0 oklch(0% 0 0 / .05);
    transition: filter var(--t-fast) var(--ease-out), box-shadow var(--t-fast) var(--ease-out);
}
.mega-trigger:hover { filter: brightness(.94); }
.mega-wrap.open .mega-trigger, .mega-wrap:hover .mega-trigger { box-shadow: 0 4px 14px oklch(0% 0 0 / .18); }
.mega-trigger .caret { display: grid; place-items: center; transition: transform var(--t-base) var(--ease-out); }
.mega-wrap:hover .mega-trigger .caret, .mega-wrap.open .mega-trigger .caret { transform: rotate(180deg); }

.mega-panel {
    position: absolute;
    top: calc(100% + 10px);
    inset-inline-start: 0;
    width: min(960px, calc(100vw - 40px));
    background: var(--paper-raised);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    padding: var(--sp-5) var(--sp-6) var(--sp-6);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px) scale(.99);
    transform-origin: top;
    transition: opacity var(--t-base) var(--ease-out), transform var(--t-base) var(--ease-out), visibility var(--t-base);
    z-index: var(--z-mega);
    max-height: 74vh;
    overflow-y: auto;
}
.mega-wrap:hover .mega-panel, .mega-wrap.open .mega-panel, .mega-wrap:focus-within .mega-panel {
    opacity: 1; visibility: visible; transform: none;
}
.mega-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-3);
    padding-bottom: var(--sp-4);
    margin-bottom: var(--sp-5);
    border-bottom: 1px solid var(--line);
}
.mega-head strong { display: inline-flex; align-items: center; gap: var(--sp-2); font-size: var(--fs-base); color: var(--brand2); }
.mega-viewall { display: inline-flex; align-items: center; gap: 4px; font-size: var(--fs-xs); font-weight: 700; color: var(--accent-dark); }
.mega-viewall:hover { color: var(--accent-darker); }
.mega-viewall svg { transition: transform var(--t-fast) var(--ease-out); }
.mega-viewall:hover svg { transform: translateX(-3px); }
[dir="rtl"] .mega-viewall:hover svg { transform: translateX(3px); }

.mega-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    gap: var(--sp-5) var(--sp-6);
}
.mega-col-head {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: var(--fs-sm);
    font-weight: 800;
    color: var(--ink);
    padding-bottom: 10px;
    margin-bottom: 8px;
    border-bottom: 1px solid var(--line);
}
.mega-col:hover .mega-col-head { color: var(--accent-dark); }
.mega-thumb {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    flex: none;
    border-radius: var(--pill);
    background: var(--paper-sunk);
    color: var(--accent);
    overflow: hidden;
    transition: background var(--t-fast) var(--ease-out);
}
.mega-thumb img { width: 100%; height: 100%; object-fit: cover; }
.mega-col:hover .mega-thumb { background: var(--accent-soft); }
.mega-col ul { display: grid; gap: 2px; }
.mega-col li a {
    display: block;
    padding: 6px 8px;
    margin-inline: -8px;
    border-radius: var(--radius-xs);
    font-size: var(--fs-xs);
    color: var(--muted);
    transition: background var(--t-fast) var(--ease-out), color var(--t-fast) var(--ease-out), padding var(--t-fast) var(--ease-out);
}
.mega-col li a:hover { background: var(--accent-soft); color: var(--accent-darker); padding-inline-start: 12px; }
.mega-empty { font-size: var(--fs-sm); color: var(--muted); margin: 0; }

/* نوار دسته‌بندی دایره‌ای */
.cat-strip { background: var(--paper-raised); border-bottom: 1px solid var(--line); }
.cat-strip-inner {
    width: 100%;
    max-width: var(--max-w);
    margin-inline: auto;
    padding: var(--sp-4) clamp(14px, 3.5vw, 30px);
    display: flex;
    gap: var(--sp-5);
    overflow-x: auto;
    scroll-snap-type: x proximity;
}
.cat-chip {
    flex: none;
    width: 84px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    font-size: var(--fs-xs);
    font-weight: 600;
    color: var(--ink-soft);
    text-align: center;
    scroll-snap-align: start;
}
.cat-chip .ring {
    display: grid;
    place-items: center;
    width: 66px;
    height: 66px;
    border-radius: var(--pill);
    background: var(--paper-sunk);
    border: 1px solid var(--line);
    color: var(--accent);
    overflow: hidden;
    transition: transform var(--t-base) var(--ease-out), border-color var(--t-base) var(--ease-out);
}
.cat-chip .ring img { width: 100%; height: 100%; object-fit: cover; }
.cat-chip:hover { color: var(--accent-dark); }
.cat-chip:hover .ring { transform: translateY(-3px); border-color: var(--accent); }
.cat-chip > span:last-child { line-height: 1.5; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }

/* --------------------------------------------------------- کشوی موبایل */

.drawer-backdrop {
    position: fixed;
    inset: 0;
    background: oklch(20% 0.02 158 / .5);
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--t-base) var(--ease-out), visibility var(--t-base);
    z-index: calc(var(--z-drawer) - 1);
}
.drawer-backdrop.open { opacity: 1; visibility: visible; }

.drawer {
    position: fixed;
    inset-block: 0;
    inset-inline-end: 0;
    width: min(320px, 86vw);
    background: var(--paper-raised);
    border-inline-start: 1px solid var(--line);
    z-index: var(--z-drawer);
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform var(--t-slow) var(--ease-out);
    overflow-y: auto;
}
[dir="rtl"] .drawer { transform: translateX(-100%); }
.drawer.open, [dir="rtl"] .drawer.open { transform: none; }
.dr-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-3);
    padding: var(--sp-4) var(--sp-5);
    border-bottom: 1px solid var(--line);
    font-size: var(--fs-base);
    position: sticky;
    top: 0;
    background: var(--paper-raised);
}
.dr-head button { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid var(--line); border-radius: var(--pill); background: none; color: var(--ink-soft); }
.dr-head button:hover { background: var(--paper-sunk); }
.drawer nav { display: flex; flex-direction: column; padding: var(--sp-3) var(--sp-3) var(--sp-8); }
.drawer nav a {
    padding: 11px 14px;
    border-radius: var(--radius-sm);
    font-size: var(--fs-sm);
    color: var(--ink);
}
.drawer nav a:hover { background: var(--accent-soft); color: var(--accent-darker); }
.dr-label {
    padding: var(--sp-4) 14px 6px;
    font-size: var(--fs-xs);
    font-weight: 800;
    color: var(--brand2);
}

/* ----------------------------------------------------------------- فوتر */

.site-footer { margin-top: var(--sp-16); background: var(--grad-dark); color: var(--on-navy); }

.footer-top { border-bottom: 1px solid var(--navy-light); }
.footer-top .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-5);
    flex-wrap: wrap;
    padding-block: var(--sp-5);
}
.brand-name { display: inline-flex; align-items: center; gap: 10px; font-size: 1.0625rem; font-weight: 800; }
.logo-mark { display: grid; place-items: center; width: 38px; height: 38px; border-radius: var(--radius-sm); background: var(--navy-light); color: var(--on-navy); }
.f-contact { display: flex; gap: var(--sp-6); flex-wrap: wrap; font-size: var(--fs-xs); color: oklch(84% 0.014 150); }
.f-contact span { display: inline-flex; align-items: center; gap: 7px; }
.f-contact b { color: var(--on-navy); font-weight: 700; }

.footer-main > .container:first-child {
    display: grid;
    grid-template-columns: 1.5fr repeat(3, 1fr);
    gap: var(--sp-8);
    padding-block: var(--sp-10);
}
.footer-main h4 { font-size: var(--fs-sm); font-weight: 800; color: var(--on-navy); margin-bottom: var(--sp-4); }
.footer-main p { font-size: var(--fs-xs); line-height: 1.9; color: oklch(80% 0.014 150); max-width: 46ch; }
.footer-main ul { display: grid; gap: 9px; }
.footer-main ul a { font-size: var(--fs-xs); color: oklch(82% 0.014 150); }
.footer-main ul a:hover { color: oklch(99% 0.01 46); }
.footer-social { display: flex; gap: var(--sp-2); margin-top: var(--sp-5); }
.footer-social a {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: var(--pill);
    background: var(--navy-light);
    color: var(--on-navy);
    transition: background var(--t-fast) var(--ease-out), transform var(--t-fast) var(--ease-out);
}
.footer-social a:hover { background: var(--brand2); color: oklch(99% 0.01 46); transform: translateY(-2px); }

.footer-badges {
    display: flex;
    gap: var(--sp-3);
    flex-wrap: wrap;
    padding-block: var(--sp-5);
    border-top: 1px solid var(--navy-light);
}
.footer-badges .fb {
    background: none;
    border-color: var(--navy-light);
    color: oklch(86% 0.014 150);
    font-size: var(--fs-xs);
    padding: 8px 14px;
}
.footer-bottom {
    text-align: center;
    font-size: var(--fs-xs);
    color: oklch(74% 0.014 150);
    padding: var(--sp-4);
    border-top: 1px solid var(--navy-light);
}

/* نوار خدمات / اعتماد */
.trust-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: var(--sp-6);
    padding: var(--sp-8) var(--sp-6);
    background: var(--paper-raised);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
}
.trust-item { display: flex; align-items: center; gap: var(--sp-3); font-size: var(--fs-sm); font-weight: 600; }
.trust-item .t-ico {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    flex: none;
    border-radius: var(--pill);
    background: var(--accent-soft);
    color: var(--accent);
}
.trust-item span:last-child { color: var(--ink-soft); }

/* سینی مقایسه */
.compare-tray {
    position: fixed;
    inset-inline: 0;
    bottom: 0;
    z-index: var(--z-toast);
    background: var(--paper-raised);
    border-top: 1px solid var(--line);
    box-shadow: var(--shadow-lg);
    transform: translateY(110%);
    transition: transform var(--t-slow) var(--ease-out);
}
.compare-tray.open { transform: none; }
.compare-tray .container { display: flex; align-items: center; gap: var(--sp-4); padding-block: var(--sp-3); flex-wrap: wrap; }
.ct-label { display: inline-flex; align-items: center; gap: 7px; font-size: var(--fs-xs); font-weight: 800; color: var(--ink); }
.ct-items { display: flex; gap: var(--sp-2); overflow-x: auto; flex: 1; min-width: 0; }
.ct-thumb {
    width: 46px;
    height: 46px;
    flex: none;
    object-fit: contain;
    border-radius: var(--radius-xs);
    background: var(--paper-sunk);
    border: 1px solid var(--line);
    color: var(--faint);
}

/* توست */
.toast {
    position: fixed;
    bottom: var(--sp-6);
    inset-inline-start: 50%;
    transform: translate(50%, 20px);
    background: var(--navy-deep);
    color: var(--on-navy);
    font-size: var(--fs-sm);
    font-weight: 600;
    padding: 12px 22px;
    border-radius: var(--pill);
    box-shadow: var(--shadow-lg);
    opacity: 0;
    visibility: hidden;
    z-index: var(--z-toast);
    transition: opacity var(--t-base) var(--ease-out), transform var(--t-base) var(--ease-out), visibility var(--t-base);
    max-width: calc(100vw - 32px);
    text-align: center;
}
.toast.show { opacity: 1; visibility: visible; transform: translate(50%, 0); }
.toast.danger { background: var(--danger); color: oklch(99% 0.01 27); }

/* ------------------------------------------------------------ کارت محصول
   بدون قاب و سایه در حالت عادی: جداسازی با فاصله و بلوک تصویر فرورفته.
   قاب فقط در هاور ظاهر می‌شود تا شبکه محصولات آرام بماند. */

.product-grid, .archive-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(182px, 1fr));
    gap: var(--sp-6) var(--sp-3);
}
.archive-grid { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }

.product-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: var(--sp-3);
    padding: var(--sp-3);
    border: 1px solid transparent;
    border-radius: var(--radius-lg);
    background: transparent;
    color: var(--ink);
    transition: background var(--t-base) var(--ease-out), border-color var(--t-base) var(--ease-out), box-shadow var(--t-base) var(--ease-out);
}
.product-card:hover { background: var(--paper-raised); border-color: var(--line); box-shadow: var(--shadow); color: var(--ink); }

.product-card .thumb {
    position: relative;
    aspect-ratio: 1;
    display: grid;
    place-items: center;
    border-radius: var(--radius);
    background: var(--paper-sunk);
    overflow: hidden;
}
.product-card .thumb img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: var(--sp-3);
    transition: transform var(--t-slow) var(--ease-out);
}
.product-card:hover .thumb img { transform: scale(1.045); }
.product-card .thumb .ph { color: var(--faint); }

.product-card .body { display: flex; flex-direction: column; gap: 7px; flex: 1; }
.product-card .name {
    margin: 0;
    font-size: var(--fs-sm);
    font-weight: 600;
    line-height: 1.7;
    color: var(--ink);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 3.2em;
}
.product-card:hover .name { color: var(--accent-dark); }
.card-meta { display: flex; align-items: center; gap: var(--sp-3); font-size: var(--fs-xs); color: var(--muted); }

.price-row { display: flex; align-items: baseline; gap: var(--sp-2); flex-wrap: wrap; margin-top: auto; padding-top: 4px; }
.price { font-size: 1.0625rem; font-weight: 800; color: var(--brand2); letter-spacing: -.01em; white-space: nowrap; }
.price.old { font-size: var(--fs-xs); font-weight: 400; color: var(--faint); text-decoration: line-through; }
.price-inquiry { font-size: var(--fs-xs); font-weight: 700; color: var(--muted); }

.badge-discount {
    position: absolute;
    top: 10px;
    inset-inline-start: 10px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    font-size: var(--fs-xs);
    font-weight: 800;
    line-height: 1;
    padding: 6px 10px;
    border-radius: var(--pill);
    background: var(--brand2);
    color: oklch(99% 0.01 46);
}
.badge-flag {
    position: absolute;
    top: 10px;
    inset-inline-start: 10px;
    z-index: 2;
    font-size: var(--fs-xs);
    font-weight: 700;
    padding: 6px 10px;
    border-radius: var(--pill);
    background: var(--paper-inset);
    color: var(--ink-soft);
}
.badge-discount ~ .badge-flag { top: 46px; }
.badge-flag.out { background: var(--danger-soft); color: var(--danger); }

/* اکشن‌های کارت */
.card-actions {
    position: absolute;
    top: 10px;
    inset-inline-end: 10px;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: 6px;
    opacity: 0;
    transform: translateY(-4px);
    transition: opacity var(--t-base) var(--ease-out), transform var(--t-base) var(--ease-out);
}
.product-card:hover .card-actions, .product-card:focus-within .card-actions { opacity: 1; transform: none; }
.card-actions button {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border: 1px solid var(--line);
    border-radius: var(--pill);
    background: var(--paper-raised);
    color: var(--muted);
    transition: color var(--t-fast) var(--ease-out), border-color var(--t-fast) var(--ease-out), background var(--t-fast) var(--ease-out);
}
.card-actions button:hover { color: var(--brand2); border-color: var(--brand2-line); background: var(--brand2-soft); }
.card-actions button.on { background: var(--brand2); border-color: var(--brand2); color: oklch(99% 0.01 46); }
.card-actions button.cmp.on { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }

.quick-add {
    position: absolute;
    bottom: var(--sp-3);
    inset-inline-end: var(--sp-3);
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: var(--pill);
    background: var(--accent);
    color: var(--accent-ink);
    box-shadow: var(--shadow-accent);
    opacity: 0;
    transform: scale(.85);
    transition: opacity var(--t-base) var(--ease-out), transform var(--t-base) var(--ease-out), background var(--t-fast) var(--ease-out);
}
.product-card:hover .quick-add, .product-card:focus-within .quick-add { opacity: 1; transform: none; }
.quick-add:hover { background: var(--accent-dark); }
@media (hover: none) {
    .card-actions, .quick-add { opacity: 1; transform: none; }
}

.countdown {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: var(--fs-xs);
    font-weight: 700;
    padding: 4px 10px;
    border-radius: var(--pill);
    background: var(--brand2-soft);
    color: var(--brand2);
    direction: ltr;
    font-variant-numeric: tabular-nums;
}

/* ریل افقی */
.rail-shell { position: relative; }
.rail {
    display: flex;
    gap: var(--sp-3);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    padding-bottom: var(--sp-2);
}
.rail > * { flex: 0 0 clamp(158px, 42vw, 196px); scroll-snap-align: start; }
.rail-nav {
    position: absolute;
    top: 38%;
    z-index: 3;
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border: 1px solid var(--line);
    border-radius: var(--pill);
    background: var(--paper-raised);
    color: var(--ink-soft);
    box-shadow: var(--shadow-md);
    transition: background var(--t-fast) var(--ease-out), color var(--t-fast) var(--ease-out);
}
.rail-nav:hover { background: var(--accent); color: var(--accent-ink); border-color: var(--accent); }
.rail-nav.prev { inset-inline-start: -14px; }
.rail-nav.next { inset-inline-end: -14px; }
.rail-nav::before { content: "‹"; font-size: 1.4rem; line-height: 0; }
.rail-nav.next::before { content: "›"; }
@media (max-width: 900px) { .rail-nav { display: none; } }

/* ردیف فشرده */
.mini-rail { display: grid; gap: 2px; }
.mini-row {
    display: flex;
    align-items: center;
    gap: var(--sp-3);
    padding: 9px;
    border-radius: var(--radius-sm);
    color: var(--ink);
    transition: background var(--t-fast) var(--ease-out);
}
.mini-row:hover { background: var(--paper-sunk); color: var(--accent-dark); }
.m-thumb {
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    flex: none;
    border-radius: var(--radius-xs);
    background: var(--paper-sunk);
    color: var(--faint);
    overflow: hidden;
}
.m-thumb img { width: 100%; height: 100%; object-fit: contain; }
.m-name {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: var(--fs-xs);
    line-height: 1.7;
}
.mini-row .price { font-size: var(--fs-sm); }

/* ---------------------------------------------------------- صفحه اصلی */

.hero-row { display: flex; gap: var(--sp-4); align-items: stretch; }

.slider {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
    aspect-ratio: 2.55 / 1;
    border-radius: var(--radius-xl);
    overflow: hidden;
    background: var(--paper-sunk);
}
.slider .slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--t-slow) var(--ease-out), visibility var(--t-slow);
}
.slider .slide.active { opacity: 1; visibility: visible; }
.slider .slide img { width: 100%; height: 100%; object-fit: cover; }
.slide-fallback {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: var(--sp-4);
    height: 100%;
    padding: clamp(20px, 5vw, 56px);
    background: var(--accent-soft);
}
.slide-fallback h2, .slide-fallback h3 { margin: 0; font-size: clamp(1.375rem, 1rem + 2vw, 2.25rem); color: var(--accent-darker); max-width: 22ch; }
.slide-fallback h2::after { display: none; }
.slide-fallback p { font-size: var(--fs-sm); color: var(--ink-soft); max-width: 46ch; }
.slide-fallback .pill { align-self: flex-start; background: var(--accent); border-color: var(--accent); color: var(--accent-ink); font-weight: 700; padding: 9px 20px; }

.slider-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 3;
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: var(--pill);
    background: var(--paper-raised);
    color: var(--ink);
    box-shadow: var(--shadow-md);
    transition: background var(--t-fast) var(--ease-out);
}
.slider-arrow:hover { background: var(--accent); color: var(--accent-ink); }
.slider-arrow.prev { inset-inline-start: var(--sp-4); }
.slider-arrow.next { inset-inline-end: var(--sp-4); }
.slider-arrow.prev::before { content: "‹"; font-size: 1.5rem; line-height: 0; }
.slider-arrow.next::before { content: "›"; font-size: 1.5rem; line-height: 0; }

.slider-dots {
    position: absolute;
    bottom: var(--sp-4);
    inset-inline: 0;
    display: flex;
    justify-content: center;
    gap: 6px;
    z-index: 3;
}
.slider-dots span, .slider-dots button {
    width: 8px;
    height: 8px;
    border: 0;
    padding: 0;
    border-radius: var(--pill);
    background: oklch(30% 0.02 158 / .3);
    transition: width var(--t-base) var(--ease-out), background var(--t-base) var(--ease-out);
}
.slider-dots .active { width: 26px; background: var(--brand2); }

/* کارت پیشنهاد ویژه — بلوک کاج تیره کنار اسلایدر */
.offer-card {
    flex: 0 0 clamp(210px, 24vw, 268px);
    display: flex;
    flex-direction: column;
    gap: var(--sp-3);
    background: var(--navy);
    border: 0;
    border-radius: var(--radius-xl);
    padding: var(--sp-5);
    color: var(--on-navy);
}
.oc-head { display: flex; flex-direction: column; gap: var(--sp-2); }
.oc-title { font-size: var(--fs-base); font-weight: 800; display: flex; align-items: center; gap: 7px; }
.oc-timer { align-self: flex-start; background: var(--brand2); color: oklch(99% 0.01 46); }
.oc-body { display: grid; gap: var(--sp-2); flex: 1; align-content: start; }
.oc-item {
    display: flex;
    align-items: center;
    gap: var(--sp-3);
    padding: 8px;
    border-radius: var(--radius-sm);
    background: var(--navy-light);
    color: var(--on-navy);
}
.oc-item:hover { background: var(--navy-deep); color: oklch(99% 0.01 46); }
.oc-item img, .oc-item .ph {
    width: 46px;
    height: 46px;
    flex: none;
    object-fit: contain;
    border-radius: var(--radius-xs);
    background: var(--on-navy);
    display: grid;
    place-items: center;
    color: var(--muted);
}
.oc-name {
    font-size: var(--fs-xs);
    line-height: 1.6;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.oc-item .price { font-size: var(--fs-xs); color: oklch(88% 0.06 46); }
.oc-all {
    align-self: stretch;
    text-align: center;
    font-size: var(--fs-xs);
    font-weight: 700;
    padding: 9px;
    border-radius: var(--pill);
    background: var(--on-navy);
    color: var(--navy-deep);
}
.oc-all:hover { background: var(--brand2); color: oklch(99% 0.01 46); }

/* بنرها */
.banner-duo { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: var(--sp-4); }
.banner-tile {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-4);
    min-height: 188px;
    padding: var(--sp-6);
    border-radius: var(--radius-lg);
    background: var(--accent-soft);
    overflow: hidden;
    color: var(--ink);
}
.banner-tile:nth-child(even) { background: var(--brand2-soft); }
.bt-text { position: relative; z-index: 2; display: flex; flex-direction: column; gap: 10px; max-width: 24ch; }
.bt-text strong, .bt-text h3 { font-size: var(--fs-lg); font-weight: 800; margin: 0; }
.bt-text p, .bt-text span { font-size: var(--fs-xs); color: var(--ink-soft); }
.bt-cta {
    align-self: flex-start;
    font-size: var(--fs-xs);
    font-weight: 700;
    padding: 8px 18px;
    border-radius: var(--pill);
    background: var(--accent);
    color: var(--accent-ink);
}
.banner-tile:nth-child(even) .bt-cta { background: var(--brand2); color: oklch(99% 0.01 46); }
.bt-img { max-width: 46%; }
.bt-img img { max-height: 168px; width: auto; object-fit: contain; }
.banner-tile.is-image { padding: 0; min-height: 0; }
.banner-tile.is-image img { width: 100%; height: 100%; object-fit: cover; }
.banner-tile:hover .bt-img img { transform: scale(1.03); transition: transform var(--t-slow) var(--ease-out); }
.banner-full { border-radius: var(--radius-lg); overflow: hidden; }
.banner-full img { width: 100%; object-fit: cover; }

/* کاشی دسته‌بندی */
.cat-tile-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(148px, 1fr)); gap: var(--sp-3); }
.cat-tile {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--sp-3);
    padding: var(--sp-5) var(--sp-3);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: var(--paper-raised);
    font-size: var(--fs-xs);
    font-weight: 600;
    color: var(--ink);
    text-align: center;
    transition: border-color var(--t-base) var(--ease-out), transform var(--t-base) var(--ease-out);
}
.cat-tile:hover { border-color: var(--accent); transform: translateY(-3px); color: var(--accent-dark); }
.cat-tile .icon {
    display: grid;
    place-items: center;
    width: 56px;
    height: 56px;
    border-radius: var(--pill);
    background: var(--accent-soft);
    color: var(--accent);
    overflow: hidden;
}
.cat-tile .icon img { width: 100%; height: 100%; object-fit: cover; }
.cat-tile .label { font-size: var(--fs-xs); font-weight: 600; color: inherit; }

/* ستون‌های موضوعی */
.columns-block {
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: var(--paper-raised);
    overflow: hidden;
}
.cb-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-3);
    padding: var(--sp-4) var(--sp-5);
    border-bottom: 1px solid var(--line);
    background: var(--paper-sunk);
}
.cb-head h3 { margin: 0; font-size: var(--fs-base); }
.cb-label { background: var(--accent-soft); border-color: var(--accent-line); color: var(--accent-darker); }
.cb-body { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); }
.cb-col { padding: var(--sp-4); }
.cb-col + .cb-col { border-inline-start: 1px solid var(--line); }
.cb-col > h4 { font-size: var(--fs-sm); margin-bottom: var(--sp-3); }
.cb-applied { font-size: var(--fs-xs); color: var(--success); }

/* ریل برندها */
.brand-rail { display: flex; gap: var(--sp-4); overflow-x: auto; padding-bottom: var(--sp-2); }
.brand-rail > a, .brand {
    flex: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--sp-2);
    font-size: var(--fs-xs);
    color: var(--ink-soft);
    width: 108px;
    text-align: center;
}
.b-ring {
    display: grid;
    place-items: center;
    width: 92px;
    height: 92px;
    border-radius: var(--radius-lg);
    border: 1px solid var(--line);
    background: var(--paper-raised);
    overflow: hidden;
    filter: grayscale(1);
    opacity: .82;
    transition: filter var(--t-base) var(--ease-out), opacity var(--t-base) var(--ease-out), border-color var(--t-base) var(--ease-out);
}
.b-ring img { max-width: 76%; max-height: 76%; object-fit: contain; }
.brand-rail > a:hover .b-ring, .brand:hover .b-ring { filter: none; opacity: 1; border-color: var(--accent-line); }

/* مجله */
.post-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(268px, 1fr)); gap: var(--sp-4); }
.post-card {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: var(--paper-raised);
    overflow: hidden;
    color: var(--ink);
    transition: box-shadow var(--t-base) var(--ease-out), transform var(--t-base) var(--ease-out);
}
.post-card:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); color: var(--ink); }
.pc-img { aspect-ratio: 16 / 9; background: var(--paper-sunk); display: grid; place-items: center; color: var(--faint); overflow: hidden; }
.pc-img img { width: 100%; height: 100%; object-fit: cover; }
.pc-body { padding: var(--sp-4); display: flex; flex-direction: column; gap: var(--sp-2); flex: 1; }
.pc-body h3, .pc-body h4 { margin: 0; font-size: var(--fs-sm); line-height: 1.75; }
.pc-meta { display: flex; gap: var(--sp-3); font-size: var(--fs-xs); color: var(--muted); margin-top: auto; }

/* نوار تبلیغاتی میان صفحه — تنها جای «غرق در رنگ» */
.promo-strip {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-5);
    flex-wrap: wrap;
    padding: var(--sp-8) clamp(20px, 4vw, 44px);
    border-radius: var(--radius-xl);
    background: var(--accent);
    color: var(--accent-ink);
}
.promo-strip h2, .promo-strip h3, .promo-strip strong { margin: 0; color: var(--accent-ink); font-size: clamp(1.25rem, 1rem + 1vw, 1.75rem); }
.promo-strip h2::after { display: none; }
.promo-strip p { color: oklch(92% 0.02 150); font-size: var(--fs-sm); margin: 6px 0 0; max-width: 52ch; }
.promo-strip .cta, .promo-strip .btn-primary {
    background: var(--accent-ink);
    color: var(--accent-darker);
    border-color: var(--accent-ink);
}
.promo-strip .cta:hover, .promo-strip .btn-primary:hover { background: var(--brand2); border-color: var(--brand2); color: oklch(99% 0.01 46); box-shadow: none; }

/* آمار */
.stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: var(--sp-3); }
.stat-card {
    padding: var(--sp-5);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: var(--paper-raised);
}
.stat-card .num { display: block; font-size: 1.625rem; font-weight: 800; color: var(--ink); line-height: 1.4; }
.stat-card .label, .stat-card .sub { font-size: var(--fs-xs); color: var(--muted); font-weight: 500; }

/* استوری‌ها */
.story-section { padding-block: var(--sp-6) 0; }
.story-strip { display: flex; gap: var(--sp-4); overflow-x: auto; padding-bottom: var(--sp-2); }
.story-bubble {
    flex: none;
    width: 82px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 7px;
    font-size: var(--fs-xs);
    color: var(--ink-soft);
    text-align: center;
    background: none;
    border: 0;
    padding: 0;
}
.story-bubble .sb-ring {
    display: grid;
    place-items: center;
    width: 70px;
    height: 70px;
    border-radius: var(--pill);
    padding: 3px;
    background: var(--brand2);
    transition: transform var(--t-base) var(--ease-out);
}
.story-bubble.seen .sb-ring { background: var(--line-strong); }
.story-bubble:hover .sb-ring { transform: scale(1.05); }
.story-bubble .sb-ring img, .story-bubble .sb-ph {
    width: 100%;
    height: 100%;
    border-radius: var(--pill);
    object-fit: cover;
    border: 2px solid var(--paper);
    background: var(--paper-sunk);
    display: grid;
    place-items: center;
    color: var(--faint);
}
.story-bubble > span:last-child { overflow: hidden; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; }

.story-viewer {
    position: fixed;
    inset: 0;
    z-index: var(--z-toast);
    display: none;
    place-items: center;
    background: oklch(14% 0.012 158 / .92);
    padding: var(--sp-4);
}
.story-viewer.open { display: grid; }
.sv-frame { position: relative; width: min(420px, 94vw); aspect-ratio: 9 / 16; border-radius: var(--radius-lg); overflow: hidden; background: var(--navy-deep); }
.sv-stage { width: 100%; height: 100%; }
.sv-stage img, .sv-stage video { width: 100%; height: 100%; object-fit: cover; }
.sv-bars { position: absolute; top: 10px; inset-inline: 10px; display: flex; gap: 4px; z-index: 3; }
.sv-bars > span { flex: 1; height: 3px; border-radius: var(--pill); background: oklch(95% 0 0 / .3); overflow: hidden; }
.sv-bars > span .fill { display: block; height: 100%; background: var(--on-navy); border-radius: var(--pill); }
.sv-title { position: absolute; bottom: 0; inset-inline: 0; padding: var(--sp-5); font-size: var(--fs-sm); font-weight: 700; color: var(--on-navy); background: linear-gradient(0deg, oklch(14% 0.012 158 / .85), transparent); }
.sv-close, .sv-nav {
    position: absolute;
    z-index: 4;
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: var(--pill);
    background: oklch(95% 0 0 / .18);
    color: var(--on-navy);
}
.sv-close { top: 24px; inset-inline-end: 10px; }
.sv-nav.prev { top: 50%; inset-inline-start: 10px; }
.sv-nav.next { top: 50%; inset-inline-end: 10px; }
.sv-close:hover, .sv-nav:hover { background: oklch(95% 0 0 / .32); }

/* پرسش‌های متداول */
.faq-wrap, .faq-group { display: grid; gap: var(--sp-2); }
.faq-item {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--paper-raised);
    overflow: hidden;
    transition: border-color var(--t-base) var(--ease-out);
}
.faq-item.open { border-color: var(--accent-line); }
.faq-item > button, .faq-item > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-3);
    width: 100%;
    text-align: start;
    padding: var(--sp-4) var(--sp-5);
    background: none;
    border: 0;
    font-size: var(--fs-sm);
    font-weight: 700;
    color: var(--ink);
    cursor: pointer;
    list-style: none;
}
.faq-item > button:hover { color: var(--accent-dark); }
.fi-plus {
    flex: none;
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: var(--pill);
    background: var(--accent-soft);
    color: var(--accent);
    font-weight: 800;
    transition: transform var(--t-base) var(--ease-out), background var(--t-base) var(--ease-out);
}
.faq-item.open .fi-plus { transform: rotate(45deg); background: var(--accent); color: var(--accent-ink); }
.fi-body {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows var(--t-slow) var(--ease-out);
}
.faq-item.open .fi-body { grid-template-rows: 1fr; }
.fi-body > * { overflow: hidden; }
.fi-body p, .fi-body div { padding: 0 var(--sp-5) var(--sp-5); font-size: var(--fs-sm); color: var(--ink-soft); margin: 0; }

.faq-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-4);
    flex-wrap: wrap;
    margin-top: var(--sp-6);
    padding: var(--sp-6);
    border: 1px dashed var(--accent-line);
    border-radius: var(--radius-lg);
    background: var(--accent-soft);
}
.faq-cta-actions { display: flex; gap: var(--sp-2); flex-wrap: wrap; }

/* --------------------------------------------------------- صفحه محصول */

.product-detail {
    display: grid;
    grid-template-columns: minmax(0, 420px) minmax(0, 1fr);
    gap: var(--sp-8);
    align-items: start;
    padding-block: var(--sp-6) var(--sp-10);
}

.gallery-main {
    display: grid;
    place-items: center;
    aspect-ratio: 1;
    border-radius: var(--radius-lg);
    background: var(--paper-sunk);
    overflow: hidden;
    position: sticky;
    top: 78px;
}
.gallery-main img { width: 100%; height: 100%; object-fit: contain; padding: var(--sp-5); }
.gallery-thumbs { display: flex; gap: var(--sp-2); margin-top: var(--sp-3); overflow-x: auto; padding-bottom: 4px; }
.gallery-thumbs button {
    flex: none;
    width: 68px;
    height: 68px;
    padding: 5px;
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    background: var(--paper-raised);
    transition: border-color var(--t-fast) var(--ease-out);
}
.gallery-thumbs button:hover { border-color: var(--line-strong); }
.gallery-thumbs button.active { border-color: var(--accent); box-shadow: var(--ring); }
.gallery-thumbs img { width: 100%; height: 100%; object-fit: contain; }

/* ستون اطلاعات: جعبه خرید در ستون کنار، بقیه محتوا در ستون اصلی */
.product-detail > div:last-child {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 292px;
    column-gap: var(--sp-6);
    align-items: start;
}
.product-detail > div:last-child > * { grid-column: 1; min-width: 0; }
.product-detail .pd-buy-box {
    grid-column: 2;
    grid-row: 1 / span 30;
    align-self: start;
    position: sticky;
    top: 78px;
}

.pd-title { font-size: clamp(1.25rem, 1rem + 1.1vw, 1.75rem); line-height: 1.6; margin-bottom: var(--sp-3); }
.pd-meta-row {
    display: flex;
    align-items: center;
    gap: var(--sp-4);
    flex-wrap: wrap;
    font-size: var(--fs-xs);
    color: var(--muted);
    padding-bottom: var(--sp-4);
    border-bottom: 1px solid var(--line);
    margin-bottom: var(--sp-4);
}
.pd-meta-row .stars { color: var(--gold); }
.pd-desc { font-size: var(--fs-sm); line-height: 1.95; color: var(--ink-soft); max-width: 72ch; }
.pd-desc h2, .pd-desc h3 { font-size: var(--fs-base); margin-top: var(--sp-5); }
.pd-desc h2::after { display: none; }
.pd-desc ul { list-style: none; display: grid; gap: 7px; margin: var(--sp-3) 0; }
.pd-desc ul li { position: relative; padding-inline-start: 18px; }
.pd-desc ul li::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    top: .78em;
    width: 6px;
    height: 6px;
    border-radius: var(--pill);
    background: var(--accent-line);
}

.attr-group { margin-block: var(--sp-5); }
.attr-group > .label { display: block; margin-bottom: var(--sp-3); }
.attr-group > div { display: flex; gap: var(--sp-2); flex-wrap: wrap; }
.chip.color-swatch { width: 34px; height: 34px; padding: 0; border-radius: var(--pill); }
.chip.color-swatch.active { box-shadow: var(--ring); }

.pd-buy-box { padding: var(--sp-5); }
.pd-price-box {
    display: flex;
    align-items: baseline;
    gap: var(--sp-3);
    flex-wrap: wrap;
    padding-bottom: var(--sp-4);
    margin-bottom: var(--sp-4);
    border-bottom: 1px solid var(--line);
}
.pd-price-box .price { font-size: 1.5rem; }
.stock-note { font-size: var(--fs-xs); font-weight: 700; color: var(--success); margin-bottom: var(--sp-4); }
.stock-note.out { color: var(--danger); }

.qty-input {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--line-strong);
    border-radius: var(--pill);
    background: var(--paper-raised);
    overflow: hidden;
}
.qty-input button, .qty-dec, .qty-inc {
    width: 40px;
    height: 42px;
    border: 0;
    background: none;
    color: var(--ink-soft);
    font-size: 1.125rem;
    font-weight: 700;
    display: grid;
    place-items: center;
    transition: background var(--t-fast) var(--ease-out), color var(--t-fast) var(--ease-out);
}
.qty-input button:hover, .qty-dec:hover, .qty-inc:hover { background: var(--accent-soft); color: var(--accent-dark); }
.qty-input input, .qty-val {
    width: 46px;
    min-height: 0;
    padding: 0;
    border: 0;
    background: none;
    text-align: center;
    font-size: var(--fs-sm);
    font-weight: 700;
}
.qty-input input:focus, .qty-val:focus { box-shadow: none; }
.qty-remove { background: none; border: 0; font-size: var(--fs-xs); color: var(--danger); font-weight: 600; }
.qty-remove:hover { text-decoration: underline; }

.pd-perks { display: grid; gap: var(--sp-3); margin-top: var(--sp-5); padding-top: var(--sp-4); border-top: 1px solid var(--line); }
.pd-perks > div { display: flex; align-items: center; gap: var(--sp-3); font-size: var(--fs-xs); color: var(--ink-soft); }
.pd-perks span { display: grid; place-items: center; width: 34px; height: 34px; flex: none; border-radius: var(--pill); background: var(--accent-soft); color: var(--accent); }

/* نشان فروشنده */
.seller-box, .sb-ring {
    display: flex;
    align-items: center;
    gap: var(--sp-3);
    padding: var(--sp-3) var(--sp-4);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--paper-sunk);
    margin-block: var(--sp-4);
    flex-wrap: wrap;
}
.sb-logo {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    flex: none;
    border-radius: var(--radius-xs);
    background: var(--paper-raised);
    border: 1px solid var(--line);
    overflow: hidden;
}
.sb-logo img { width: 100%; height: 100%; object-fit: contain; }
.sb-info { display: grid; gap: 2px; flex: 1; min-width: 0; }
.sb-label { font-size: var(--fs-xs); color: var(--muted); }
.sb-name { font-size: var(--fs-sm); font-weight: 700; color: var(--ink); }

/* تب‌ها */
.tabs { display: flex; gap: var(--sp-1); border-bottom: 1px solid var(--line); margin-bottom: var(--sp-5); overflow-x: auto; }
.tabs button, .tabs a {
    flex: none;
    padding: 12px 18px;
    border: 0;
    background: none;
    font-size: var(--fs-sm);
    font-weight: 700;
    color: var(--muted);
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    transition: color var(--t-fast) var(--ease-out), border-color var(--t-fast) var(--ease-out);
}
.tabs button:hover, .tabs a:hover { color: var(--ink); }
.tabs .active { color: var(--accent-dark); border-bottom-color: var(--accent); }
.tab-panel { display: none; }
.tab-panel.active { display: block; animation: fade-up var(--t-base) var(--ease-out); }
@keyframes fade-up { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* جدول مشخصات و مقایسه */
.spec-table { border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.spec-table th, .spec-row > :first-child { width: 34%; color: var(--muted); font-weight: 600; background: var(--paper-sunk); }
.spec-row > * { padding: 12px 16px; border-bottom: 1px solid var(--line); font-size: var(--fs-sm); }
.spec-table tr:last-child td, .spec-table tr:last-child th { border-bottom: 0; }

.compare-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--paper-raised); }
.compare-table { min-width: 720px; }
.compare-table th { position: sticky; top: 0; z-index: 2; background: var(--paper-raised); }
.compare-head { display: grid; gap: var(--sp-2); justify-items: center; text-align: center; padding: var(--sp-3); font-weight: 600; }
.compare-head img { width: 96px; height: 96px; object-fit: contain; }

/* امتیاز و نقد و بررسی */
.stars { display: inline-flex; gap: 2px; color: var(--gold); font-size: var(--fs-xs); }
.rating-row { display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap; }
.rv-summary {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: var(--sp-6);
    align-items: center;
    padding: var(--sp-6);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: var(--paper-raised);
    margin-bottom: var(--sp-5);
}
.rv-score { text-align: center; display: grid; gap: 4px; }
.rv-score .val { font-size: 2.5rem; font-weight: 800; line-height: 1.2; color: var(--ink); }
.rv-score .of { font-size: var(--fs-xs); color: var(--muted); }
.rv-bars { display: grid; gap: 7px; }
.rv-bar { display: grid; grid-template-columns: 24px minmax(0, 1fr) 44px; align-items: center; gap: var(--sp-3); font-size: var(--fs-xs); color: var(--muted); }
.rv-bar .track { height: 7px; border-radius: var(--pill); background: var(--paper-inset); overflow: hidden; }
.rv-bar .fill { display: block; height: 100%; border-radius: var(--pill); background: var(--gold); }

.rv-list { display: grid; gap: var(--sp-3); }
.rv-item { padding: var(--sp-5); border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--paper-raised); }
.rv-head { display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap; margin-bottom: var(--sp-3); }
.rv-who { font-size: var(--fs-sm); font-weight: 700; }
.rv-when { font-size: var(--fs-xs); color: var(--faint); margin-inline-start: auto; }
.rv-title { font-size: var(--fs-sm); font-weight: 700; margin-bottom: 6px; }
.rv-body { font-size: var(--fs-sm); color: var(--ink-soft); line-height: 1.95; }
.rv-points { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: var(--sp-3); margin-top: var(--sp-4); }
.rv-points .pros, .rv-points .cons { display: grid; gap: 5px; font-size: var(--fs-xs); }
.rv-points .pros li, .rv-points .cons li { display: flex; gap: 7px; align-items: flex-start; }
.rv-points .pros li::before { content: "+"; color: var(--success); font-weight: 800; }
.rv-points .cons li::before { content: "−"; color: var(--danger); font-weight: 800; }
.rv-foot { display: flex; align-items: center; gap: var(--sp-3); margin-top: var(--sp-4); padding-top: var(--sp-3); border-top: 1px solid var(--line); }
.rv-vote { display: inline-flex; align-items: center; gap: 5px; font-size: var(--fs-xs); color: var(--muted); background: none; border: 1px solid var(--line); border-radius: var(--pill); padding: 5px 12px; }
.rv-vote:hover { border-color: var(--accent-line); color: var(--accent-dark); }

/* ورودی ستاره */
.star-input { display: inline-flex; gap: 4px; }
.star-input button, .star-input label { background: none; border: 0; color: var(--line-strong); font-size: 1.5rem; line-height: 1; padding: 0; transition: color var(--t-fast) var(--ease-out); }
.star-input button.on, .star-input button:hover, .star-input input:checked + label { color: var(--gold); }

/* پرسش و پاسخ */
.qa-list { display: grid; gap: var(--sp-3); }
.qa-item { padding: var(--sp-4) var(--sp-5); border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper-raised); }
.qa-q { font-size: var(--fs-sm); font-weight: 700; }
.qa-a, .bubble {
    margin-top: var(--sp-3);
    padding: var(--sp-3) var(--sp-4);
    border-radius: var(--radius);
    background: var(--accent-soft);
    font-size: var(--fs-sm);
    color: var(--ink-soft);
}
.qa-meta { display: flex; gap: var(--sp-3); font-size: var(--fs-xs); color: var(--faint); margin-top: 6px; }
.bubble.owner, .bubble.admin { background: var(--paper-sunk); }

/* نمودار قیمت و گالری خریداران */
.price-chart-box, .chart-box {
    padding: var(--sp-5);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: var(--paper-raised);
}
.pc-legend { display: flex; gap: var(--sp-4); font-size: var(--fs-xs); color: var(--muted); margin-top: var(--sp-3); }
.buyer-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: var(--sp-2); }
.buyer-gallery img { aspect-ratio: 1; width: 100%; object-fit: cover; border-radius: var(--radius-sm); background: var(--paper-sunk); }

/* ------------------------------------------------- سبد خرید و تسویه */

.checkout-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 336px;
    gap: var(--sp-6);
    align-items: start;
}
.checkout-grid > *:first-child { min-width: 0; }
.checkout-grid .summary-box, .sticky-summary { position: sticky; top: 78px; }

.cart-table { background: var(--paper-raised); }
.cart-row-thumb {
    display: flex;
    align-items: center;
    gap: var(--sp-3);
    font-size: var(--fs-sm);
    font-weight: 600;
    color: var(--ink);
}
.cart-row-thumb img {
    width: 62px;
    height: 62px;
    flex: none;
    object-fit: contain;
    border-radius: var(--radius-xs);
    background: var(--paper-sunk);
}
.line-total { font-weight: 800; color: var(--ink); white-space: nowrap; }

.summary-box { display: grid; gap: 2px; }
.summary-row { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); font-size: var(--fs-sm); padding-block: 7px; color: var(--ink-soft); }
.summary-row span:last-child { font-weight: 700; color: var(--ink); white-space: nowrap; }
.summary-row.discount span:last-child { color: var(--success); }
.summary-row.total {
    margin-top: var(--sp-3);
    padding-top: var(--sp-4);
    border-top: 1px solid var(--line);
    font-size: var(--fs-base);
    font-weight: 800;
}
.summary-row.total span:last-child { font-size: 1.25rem; color: var(--brand2); }

.coupon-bar { display: flex; gap: var(--sp-2); margin-top: var(--sp-4); padding-top: var(--sp-4); border-top: 1px solid var(--line); }
.coupon-bar input { flex: 1; min-width: 0; }

.co-card { margin-bottom: var(--sp-4); }
.co-card > h3 { display: flex; align-items: center; gap: var(--sp-2); font-size: var(--fs-base); margin-bottom: var(--sp-4); }

.choice-row, .delivery-switch { display: grid; gap: var(--sp-2); }
.choice, .pay-option {
    display: flex;
    align-items: flex-start;
    gap: var(--sp-3);
    padding: var(--sp-4);
    border: 1px solid var(--line-strong);
    border-radius: var(--radius);
    background: var(--paper-raised);
    font-size: var(--fs-sm);
    cursor: pointer;
    transition: border-color var(--t-fast) var(--ease-out), background var(--t-fast) var(--ease-out);
}
.choice:hover, .pay-option:hover { border-color: var(--accent); }
.choice.active, .pay-option.active, .choice:has(input:checked), .pay-option:has(input:checked) {
    border-color: var(--accent);
    background: var(--accent-soft);
}
.choice .sub, .pay-option .sub { display: block; font-size: var(--fs-xs); color: var(--muted); font-weight: 400; }

.pay-box { padding: var(--sp-5); border: 1px solid var(--accent-line); border-radius: var(--radius-lg); background: var(--accent-soft); margin-bottom: var(--sp-4); }
.pay-card-num {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--sp-2);
    font-size: 1.375rem;
    font-weight: 800;
    letter-spacing: .12em;
    direction: ltr;
    padding: var(--sp-4);
    margin-block: var(--sp-3);
    border-radius: var(--radius);
    background: var(--paper-raised);
    border: 1px dashed var(--accent-line);
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.copy-card {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: var(--fs-xs);
    font-weight: 700;
    padding: 7px 14px;
    border-radius: var(--pill);
    border: 1px solid var(--accent-line);
    background: var(--paper-raised);
    color: var(--accent-dark);
}
.copy-card.copied { background: var(--success); border-color: var(--success); color: var(--paper-raised); }
.paid-note, .ok-hint, .proforma-note {
    font-size: var(--fs-xs);
    color: var(--success);
    background: var(--success-soft);
    padding: 10px 14px;
    border-radius: var(--radius-sm);
}
.receipt-form { display: grid; gap: var(--sp-3); }
.map-box { aspect-ratio: 16 / 9; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); background: var(--paper-sunk); }

/* صفحه پیش‌فاکتور */
.proforma-card { display: grid; gap: var(--sp-4); }
.po-meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: var(--sp-3); font-size: var(--fs-sm); }
.po-addr { font-size: var(--fs-sm); color: var(--ink-soft); }
.po-price { font-weight: 800; color: var(--brand2); }

/* ------------------------------------------------ حساب کاربری و پنل مشتری */

.auth-page { display: grid; place-items: center; min-height: 68vh; padding: var(--sp-10) var(--sp-4); }
.auth-card { width: min(420px, 100%); padding: var(--sp-8); }
.auth-mark {
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    margin: 0 auto var(--sp-4);
    border-radius: var(--radius);
    background: var(--accent);
    color: var(--accent-ink);
    font-size: 1.5rem;
    font-weight: 900;
}
.auth-card h1, .auth-card h2 { text-align: center; font-size: var(--fs-lg); }
.auth-links { display: flex; justify-content: center; gap: var(--sp-4); margin-top: var(--sp-4); font-size: var(--fs-xs); }

.filter-tabs { display: flex; gap: var(--sp-2); overflow-x: auto; margin-bottom: var(--sp-5); padding-bottom: 4px; }
.filter-tabs a, .filter-tabs button {
    flex: none;
    padding: 8px 16px;
    border-radius: var(--pill);
    border: 1px solid var(--line);
    background: var(--paper-raised);
    font-size: var(--fs-xs);
    font-weight: 600;
    color: var(--ink-soft);
}
.filter-tabs .active { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }

.notif-list, .session-list, .vendor-order-list { display: grid; gap: var(--sp-2); }
.notif-list > *, .session-list > * {
    display: flex;
    align-items: flex-start;
    gap: var(--sp-3);
    padding: var(--sp-4);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--paper-raised);
}
.notif-list > .unread { background: var(--accent-soft); border-color: var(--accent-line); }
.n-ico, .sr-ico {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    flex: none;
    border-radius: var(--pill);
    background: var(--paper-sunk);
    color: var(--accent);
}
.n-body { flex: 1; min-width: 0; }
.n-title { font-size: var(--fs-sm); font-weight: 700; }
.n-when { font-size: var(--fs-xs); color: var(--faint); }
.af-meta { display: flex; gap: var(--sp-3); flex-wrap: wrap; font-size: var(--fs-xs); color: var(--muted); }

/* پنل مشتری (سفارش‌ها، کیف پول، تیکت‌ها) با کلاس‌های admin-* مشترک */
.admin-shell { display: grid; grid-template-columns: 232px minmax(0, 1fr); gap: var(--sp-6); align-items: start; }
.admin-sidebar {
    display: grid;
    gap: 2px;
    padding: var(--sp-3);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: var(--paper-raised);
    position: sticky;
    top: 78px;
}
.admin-sidebar a {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    padding: 10px 13px;
    border-radius: var(--radius-sm);
    font-size: var(--fs-xs);
    font-weight: 600;
    color: var(--ink-soft);
}
.admin-sidebar a:hover { background: var(--paper-sunk); color: var(--ink); }
.admin-sidebar a.active, .admin-sidebar a.current { background: var(--accent); color: var(--accent-ink); }
.admin-main { min-width: 0; }
.admin-topbar { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-4); flex-wrap: wrap; margin-bottom: var(--sp-5); }

/* ------------------------------------------------------- صفحه فروشنده */

.vendor-shell { display: grid; gap: var(--sp-6); }
.vh-banner { aspect-ratio: 4 / 1; min-height: 140px; border-radius: var(--radius-xl); overflow: hidden; background: var(--accent-soft); }
.vh-banner img { width: 100%; height: 100%; object-fit: cover; }
.vh-body {
    display: flex;
    align-items: center;
    gap: var(--sp-5);
    flex-wrap: wrap;
    padding: var(--sp-5);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: var(--paper-raised);
    margin-top: calc(var(--sp-8) * -1);
    margin-inline: var(--sp-5);
    position: relative;
    z-index: 2;
}
.vh-logo {
    display: grid;
    place-items: center;
    width: 78px;
    height: 78px;
    flex: none;
    border-radius: var(--radius);
    border: 1px solid var(--line);
    background: var(--paper);
    overflow: hidden;
}
.vh-logo img { width: 100%; height: 100%; object-fit: contain; }
.vh-text { flex: 1; min-width: 220px; }
.vh-text h1 { font-size: var(--fs-lg); margin-bottom: 4px; }
.vh-meta { display: flex; gap: var(--sp-4); flex-wrap: wrap; font-size: var(--fs-xs); color: var(--muted); }
.vh-desc { font-size: var(--fs-sm); color: var(--ink-soft); max-width: 74ch; }
.vh-call { display: flex; gap: var(--sp-2); flex-wrap: wrap; }

.vendor-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: var(--sp-4); }
.vendor-card {
    display: flex;
    align-items: center;
    gap: var(--sp-4);
    padding: var(--sp-4);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: var(--paper-raised);
    color: var(--ink);
    transition: border-color var(--t-base) var(--ease-out), transform var(--t-base) var(--ease-out);
}
.vendor-card:hover { border-color: var(--accent); transform: translateY(-2px); color: var(--ink); }
.vc-logo {
    display: grid;
    place-items: center;
    width: 56px;
    height: 56px;
    flex: none;
    border-radius: var(--radius-sm);
    background: var(--paper-sunk);
    overflow: hidden;
}
.vc-logo img { width: 100%; height: 100%; object-fit: contain; }
.vc-name { font-size: var(--fs-sm); font-weight: 700; }
.vc-meta { font-size: var(--fs-xs); color: var(--muted); }
.vendor-perks { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--sp-3); }
.vendor-about { font-size: var(--fs-sm); color: var(--ink-soft); }
.vo-card { padding: var(--sp-4); border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper-raised); }
.vo-head { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); flex-wrap: wrap; font-size: var(--fs-sm); font-weight: 700; }
.vo-body { font-size: var(--fs-xs); color: var(--muted); margin-top: var(--sp-2); }
.vo-money { font-weight: 800; color: var(--brand2); }
.vo-form { display: flex; gap: var(--sp-2); flex-wrap: wrap; margin-top: var(--sp-3); }

/* ------------------------------------------------------- فرم‌های عمومی */

.form-shell, .public-form { display: grid; gap: var(--sp-1); }
.form-done { text-align: center; display: grid; gap: var(--sp-3); justify-items: center; padding: var(--sp-10) var(--sp-5); }
.fd-ico {
    display: grid;
    place-items: center;
    width: 62px;
    height: 62px;
    border-radius: var(--pill);
    background: var(--success-soft);
    color: var(--success);
}
.ds-opt { display: flex; align-items: center; gap: var(--sp-2); font-size: var(--fs-sm); }
.pick-option { display: flex; align-items: center; gap: var(--sp-2); font-size: var(--fs-sm); padding: 7px 0; }
.media-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: var(--sp-2); }
.media-item { aspect-ratio: 1; border: 1px solid var(--line); border-radius: var(--radius-sm); overflow: hidden; background: var(--paper-sunk); }
.media-item img { width: 100%; height: 100%; object-fit: cover; }

/* ------------------------------------------------------------ ریسپانسیو */

@media (max-width: 1100px) {
    .product-detail { grid-template-columns: minmax(0, 360px) minmax(0, 1fr); gap: var(--sp-6); }
    .product-detail > div:last-child { grid-template-columns: minmax(0, 1fr); }
    .product-detail .pd-buy-box { grid-column: 1; grid-row: auto; position: static; margin-top: var(--sp-5); }
    .checkout-grid { grid-template-columns: minmax(0, 1fr); }
    .checkout-grid .summary-box, .sticky-summary { position: static; }
    .footer-main > .container:first-child { grid-template-columns: repeat(2, 1fr); gap: var(--sp-6); }
}

@media (max-width: 980px) {
    .site-header .bar { flex-wrap: wrap; gap: var(--sp-3); }
    .mobile-toggle { display: grid; }
    .search-box { order: 5; flex-basis: 100%; }
    .main-nav { display: none; }
    .act-login .label { display: none; }
    .act-login { padding-inline: 12px; }
    .act-cart .label { display: none; }
    .act-cart { padding-inline: 14px; }
    .hero-row { flex-direction: column; }
    .offer-card { flex-basis: auto; }
    .oc-body { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
    .admin-shell { grid-template-columns: minmax(0, 1fr); }
    .admin-sidebar { position: static; display: flex; overflow-x: auto; }
    .admin-sidebar a { white-space: nowrap; }
    .cb-col + .cb-col { border-inline-start: 0; border-top: 1px solid var(--line); }
}

@media (max-width: 760px) {
    body { font-size: .9375rem; }
    .section { padding-block: var(--sp-8); }
    .home-stack > section { padding-block: var(--sp-8) 0; }
    .product-detail { grid-template-columns: minmax(0, 1fr); padding-block: var(--sp-4) var(--sp-8); }
    .gallery-main { position: static; }
    .slider { aspect-ratio: 1.6 / 1; border-radius: var(--radius-lg); }
    .slider-arrow { display: none; }
    .product-grid, .archive-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: var(--sp-5) var(--sp-2); }
    .rv-summary { grid-template-columns: minmax(0, 1fr); gap: var(--sp-4); }
    .promo-strip { padding: var(--sp-6); text-align: start; }
    .footer-main > .container:first-child { grid-template-columns: minmax(0, 1fr); gap: var(--sp-6); padding-block: var(--sp-8); }
    .cart-table thead { display: none; }
    .cart-table tbody tr { display: grid; gap: var(--sp-2); padding: var(--sp-4); border-bottom: 1px solid var(--line); }
    .cart-table td { border: 0; padding: 0; }
    .cart-table tbody tr:hover { background: none; }
    .trust-row { padding: var(--sp-5); gap: var(--sp-4); }
    .pay-card-num { font-size: 1.125rem; letter-spacing: .06em; }
    .toast { inset-inline: var(--sp-4); transform: translateY(20px); bottom: var(--sp-4); }
    .toast.show { transform: none; }
    .compare-tray .container { padding-block: var(--sp-2); }
    .ct-label { font-size: .75rem; }
}

@media (max-width: 420px) {
    .product-grid, .archive-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cat-chip { width: 72px; }
    .cat-chip .ring { width: 58px; height: 58px; }
}

/* ------------------------------------------------ دسترسی‌پذیری و چاپ */

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

@media print {
    .site-header, .site-footer, .promo-ribbon, .compare-tray, .toast, .drawer, .drawer-backdrop,
    .rail-nav, .slider-arrow, .card-actions, .quick-add, .btn-add-cart { display: none !important; }
    body { background: #fff; color: #000; font-size: 11pt; }
    .container { max-width: none; padding: 0; }
    a { color: inherit; text-decoration: none; }
    .summary-box, .form-card, .co-card, .proforma-card { border: 1px solid #ccc; box-shadow: none; }
}

/* ---------------------------------------------------------- ریزه‌کاری‌ها */

.stars .count { color: var(--muted); font-weight: 500; font-size: var(--fs-xs); margin-inline-start: 3px; }
.seller { font-size: var(--fs-xs); color: var(--muted); }
.seller a { font-weight: 700; }

/* انتخابگر رسانه (ویجت مشترک) */
.media-picker { display: grid; gap: var(--sp-3); }
.mp-current { display: flex; align-items: center; gap: var(--sp-3); }
.mp-current img { width: 74px; height: 74px; object-fit: contain; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--paper-sunk); }
.mp-actions { display: flex; gap: var(--sp-2); flex-wrap: wrap; }
.mp-library { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: var(--sp-2); max-height: 320px; overflow-y: auto; padding: var(--sp-2); border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper-sunk); }
.mp-empty { font-size: var(--fs-xs); color: var(--muted); }
.rv-tag.seller { background: var(--accent-soft); border-color: var(--accent-line); color: var(--accent-darker); }


/* وضعیت بارگذاری/خطای برنامه Vue در صفحه محصول — تا برنامه کامل بارگذاری
   و اجرا نشود، متن خام {{ }} دیده نمی‌شود. */
[v-cloak] { visibility: hidden; }
.pd-load-status {
    grid-column: 1 / -1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--sp-2);
    text-align: center;
    padding: var(--sp-16) var(--sp-5);
    color: var(--muted);
}
.pd-spinner {
    width: 34px; height: 34px;
    border-radius: 50%;
    border: 3px solid var(--line);
    border-top-color: var(--accent);
    animation: pd-spin .8s linear infinite;
}
@keyframes pd-spin { to { transform: rotate(360deg); } }
.pd-load-text { font-weight: 700; color: var(--ink-soft); margin: 0; }
.pd-load-sub { font-size: .8125rem; margin: 0; }
.pd-load-retry { margin-top: var(--sp-2); }
