/*
  Soha Online Shop — توکن‌ها و کامپوننت‌های نئومورفیسم نرم (بازطراحی ظاهری سایت)
  فقط ظاهر: این فایل هیچ منطقی اضافه نمی‌کند. متغیرهای --nx-* جدا از متغیرهای
  قدیمی :root در style.css نگه داشته شدند تا تغییر پالت این فایل هیچ صفحه/کامپوننت
  دیگری را که هنوز به نئومورفیسم منتقل نشده دست‌نخورده نگه دارد.
  تأییدشده با کاربر (فاز ۱، ۲۰۲۶-۰۹-۲۹): سرمه‌ای #0c1d3a/#16305a + طلایی #d9b25f/#f3dc9c.
*/

:root {
  --nx-navy-950: #0c1d3a;
  --nx-navy-800: #16305a;
  --nx-navy-700: #1f3d6e;
  --nx-gold-300: #f3dc9c;
  --nx-gold-500: #d9b25f;
  --nx-gold-600: #c39a43;
  --nx-gold-700: #a37c31;

  /* زمینه/سطح نئومورفیک روشن — پس‌زمینه و کارت باید هم‌رنگ باشند.
     ۲۰۲۶-۰۹-۲۹: از #eee7d8 (کرم زرد) به #f7f4ee (روشن‌تر، کم‌زردتر) طبق
     خواستهٔ کاربر تغییر کرد. هدر/بنر/فوتر/طلایی‌ها به این توکن وصل نیستند،
     دست‌نخورده ماندند. */
  --nx-surface: #f7f4ee;
  --nx-surface-raised: #faf8f4;

  --nx-ink: #1c2b3e;
  --nx-ink-soft: #3c4b5f;
  --nx-muted: #6c6759;
  --nx-on-navy: #f3ead9;
  --nx-on-navy-muted: #a9b6c9;
  --nx-on-gold: #14253f;
  /* متن طلایی/فعال روی سطح کرم — تیره‌تر از --mustard-text قدیمی چون آن رنگ
     برای زمینهٔ سفید کالیبره شده بود (۴٫۸۹:۱) و روی کرم تازه به ۳٫۹۷:۱ افت می‌کرد؛
     این مقدار روی --nx-surface تست‌شده: ۵٫۸۹:۱ (AA). */
  --nx-active-text: #6f5218;

  --nx-danger: #b23a2e;
  --nx-danger-bg: #f5ddd8;
  --nx-success: #33603f;
  --nx-success-bg: #dfe9e0;
  --nx-border-hairline: rgba(28, 43, 62, 0.1);

  /* سایه‌های نئومورفیک روی --nx-surface (گرم، هم‌خانواده با کرم — نه خاکستری خنثی).
     با زمینهٔ تازهٔ کم‌زردتر (#f7f4ee) هم‌آهنگ شدند: قبلاً فاصلهٔ کانال R-B رنگ
     سایه ۵۶ بود (زردی زیاد)، حالا به ۱۵ رسید تا با زردی کمِ زمینهٔ جدید بخواند. */
  --nx-sh-light: #ffffff;
  --nx-sh-dark: rgba(148, 142, 133, 0.5);
  --nx-sh-dark-soft: rgba(148, 142, 133, 0.32);

  /* سایه‌های نئومورفیک روی سرمه‌ای تیره (هدر و بخش‌های تیره) */
  --nx-navy-sh-light: rgba(72, 98, 140, 0.55);
  --nx-navy-sh-dark: rgba(3, 9, 20, 0.65);

  --nx-r-sm: 12px;
  --nx-r-md: 18px;
  --nx-r-lg: 26px;
  --nx-r-pill: 999px;

  --nx-dur-fast: 120ms;
  --nx-dur-base: 200ms;
  --nx-ease: cubic-bezier(0.4, 0, 0.2, 1);

  --nx-touch: 44px;
}

@media (prefers-reduced-motion: reduce) {
  :root { --nx-dur-fast: 0ms; --nx-dur-base: 0ms; }
}

/* ===================== سطوح پایه (برای مارک‌آپ تازه: آکاردئون، پنل کشویی و ...) ===================== */

.nx-raised {
  background: var(--nx-surface);
  border-radius: var(--nx-r-lg);
  box-shadow: -9px -9px 18px var(--nx-sh-light), 9px 9px 18px var(--nx-sh-dark);
}
.nx-inset {
  background: var(--nx-surface);
  border-radius: var(--nx-r-md);
  box-shadow: inset 5px 5px 10px var(--nx-sh-dark), inset -5px -5px 10px var(--nx-sh-light);
}

/* ===================== نشان‌ها (تخفیف/موجودی/وضعیت) ===================== */

.nx-badge {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 0.75rem; font-weight: 700;
  padding: 4px 10px; border-radius: var(--nx-r-pill);
  white-space: nowrap;
}
.nx-badge--discount { background: var(--nx-danger-bg); color: var(--nx-danger); }
.nx-badge--success { background: var(--nx-success-bg); color: var(--nx-success); }
.nx-badge--pending {
  background: var(--nx-surface); color: var(--nx-ink-soft);
  box-shadow: inset 2px 2px 5px var(--nx-sh-dark), inset -2px -2px 5px var(--nx-sh-light);
}
.nx-rate-note { font-size: 0.75rem; color: var(--nx-muted); }

/* ===================== آکاردئون (فرورفتگی‌های محصول، فیلتر موبایل) ===================== */

.nx-accordion { display: flex; flex-direction: column; gap: 12px; }
.nx-accordion-item {
  background: var(--nx-surface);
  border-radius: var(--nx-r-lg);
  box-shadow: -7px -7px 14px var(--nx-sh-light), 7px 7px 14px var(--nx-sh-dark);
  overflow: hidden;
}
.nx-accordion-trigger {
  width: 100%;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  min-height: var(--nx-touch);
  padding: 14px 20px;
  background: none; border: none; cursor: pointer;
  font-family: inherit; font-size: 1rem; font-weight: 700; color: var(--nx-navy-800);
  text-align: right;
}
.nx-accordion-trigger-main { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0; }
.nx-accordion-summary { font-size: 0.75rem; font-weight: 600; color: var(--nx-muted); }
.nx-accordion-chevron {
  width: 28px; height: 28px; flex-shrink: 0; border-radius: 50%;
  background: var(--nx-surface);
  box-shadow: -3px -3px 7px var(--nx-sh-light), 3px 3px 7px var(--nx-sh-dark);
  display: flex; align-items: center; justify-content: center;
  transition: transform var(--nx-dur-base) var(--nx-ease);
  color: var(--nx-navy-800);
}
.nx-accordion-item[data-open="true"] .nx-accordion-chevron { transform: rotate(180deg); }
.nx-accordion-panel {
  padding: 0 20px 20px;
  border-top: 1px solid var(--nx-border-hairline);
  color: var(--nx-ink-soft);
  line-height: 1.9;
}
.nx-accordion-item[data-open="false"] .nx-accordion-panel { display: none; }

/* ===================== پنل کشویی فیلتر (موبایل) ===================== */

.nx-sheet-backdrop {
  position: fixed; inset: 0;
  background: rgba(12, 29, 58, 0.45);
  z-index: 199;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--nx-dur-base) var(--nx-ease);
}
.nx-sheet-backdrop.is-open { opacity: 1; pointer-events: auto; }

.nx-sheet {
  position: fixed; left: 0; right: 0; bottom: 0;
  z-index: 200;
  background: var(--nx-surface);
  border-radius: 24px 24px 0 0;
  box-shadow: 0 -12px 32px var(--nx-sh-dark-soft);
  padding: 10px 20px calc(20px + env(safe-area-inset-bottom));
  max-height: 82vh;
  overflow-y: auto;
  transform: translateY(100%);
  transition: transform var(--nx-dur-base) var(--nx-ease);
}
.nx-sheet.is-open { transform: translateY(0); }
.nx-sheet-handle { width: 44px; height: 5px; border-radius: var(--nx-r-pill); background: var(--nx-sh-dark-soft); margin: 6px auto 14px; }
.nx-sheet-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.nx-sheet-head h3 { margin: 0; font-size: 1.05rem; color: var(--nx-navy-800); }
.nx-sheet-close {
  width: 36px; height: 36px; border-radius: 50%; border: none; cursor: pointer;
  background: var(--nx-surface); color: var(--nx-navy-800);
  box-shadow: -3px -3px 7px var(--nx-sh-light), 3px 3px 7px var(--nx-sh-dark);
  display: flex; align-items: center; justify-content: center;
}
.nx-sheet-actions { display: flex; gap: 12px; margin-top: 16px; }
.nx-sheet-actions .btn-primary,
.nx-sheet-actions .nx-sheet-clear { flex: 1; text-align: center; }
.nx-sheet-clear {
  min-height: var(--nx-touch);
  border-radius: var(--nx-r-md);
  border: none; cursor: pointer;
  background: var(--nx-surface); color: var(--nx-navy-800);
  font-family: inherit; font-weight: 700; font-size: 0.9rem;
  box-shadow: -6px -6px 14px var(--nx-sh-light), 6px 6px 14px var(--nx-sh-dark);
}
.nx-sheet-clear:active { box-shadow: inset 4px 4px 9px var(--nx-sh-dark), inset -4px -4px 9px var(--nx-sh-light); }

/* ===================== نوار پایین چسبان (صفحه محصول، موبایل) ===================== */

.nx-sticky-bar {
  position: sticky; bottom: 0; inset-inline: 0;
  z-index: 40;
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
  background: var(--nx-surface);
  box-shadow: 0 -8px 20px var(--nx-sh-dark-soft);
  border-top: 1px solid var(--nx-border-hairline);
}
.nx-sticky-bar-price { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.nx-sticky-bar-price strong { font-size: 1.05rem; color: var(--nx-navy-800); white-space: nowrap; }

/* ===================== نوار اعتماد (صفحه محصول + پرداخت) ===================== */

.nx-trust-bar {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
  gap: 10px 20px;
  margin: 18px 0;
  padding: 14px 16px;
  background: var(--nx-surface);
  border-radius: var(--nx-r-md);
  box-shadow: inset 3px 3px 7px var(--nx-sh-dark), inset -3px -3px 7px var(--nx-sh-light);
}
.nx-trust-item {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 0.78rem; font-weight: 600; color: var(--nx-ink-soft);
  white-space: nowrap;
}
.nx-trust-item svg { flex-shrink: 0; color: var(--nx-gold-600); }
.nx-trust-item a {
  color: var(--nx-active-text); font-weight: 700; text-decoration: none;
  border-bottom: 1px solid currentColor;
}
.nx-trust-item a:hover { color: var(--nx-gold-700); }

/* ===================== هشدار «بازگشت کالا نداریم» بالای دکمه‌ی ثبت سفارش/پرداخت ===================== */

.nx-no-return-notice {
  display: flex; align-items: flex-start; gap: 8px;
  font-size: 0.82rem; font-weight: 600; line-height: 1.7;
  color: var(--nx-active-text);
  margin: 0 0 12px;
}
.nx-no-return-notice svg { flex-shrink: 0; margin-top: 2px; color: var(--nx-danger); }
/* روی زمینه‌ی سرمه‌ای تیرهٔ .calc-card (صفحه پرداخت) — متن روشن به‌جای طلایی تیره */
.nx-no-return-notice--on-dark { color: var(--nx-gold-300); }
.nx-no-return-notice--on-dark svg { color: #e8998f; }
