/*
Theme Name: نگین سبز فروشگاهی نسخه نهایی (Negin Sabz Final)
Theme URI: https://example.com
Author: شما
Author URI: https://example.com
Description: قالب فروشگاهی برای محصولات خوراکی، سبزیجات، ترشیجات و ادویه‌جات با اتصال کامل به ووکامرس. کارت محصول به سبک فروشگاه‌های حرفه‌ای (دیجی‌کالا)، با هویت بصری و رنگ‌بندی اختصاصی نگین سبز.
Version: 8.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: negin-sabz-shop
Tags: woocommerce, e-commerce, rtl, custom-menu, food
*/

/* ===========================
   0. DESIGN TOKENS
   =========================== */
:root{
  --color-bg: #FAF6EC;
  --color-bg-alt: #F1E9D4;
  --color-surface: #FFFFFF;

  --color-primary: #56743A;
  --color-primary-dark: #3F5A29;
  --color-primary-light: #7C9B5C;

  --color-accent: #D97D43;
  --color-accent-dark: #B8602E;
  --color-accent-light: #F0A66B;

  --color-paprika: #C24A33;

  --color-text: #3B2F2A;
  --color-text-soft: #6E5F53;
  --color-border: #E6DCC2;

  --font-base: 'Vazirmatn', Tahoma, sans-serif;

  --radius-sm: 10px;
  --radius-md: 18px;
  --radius-lg: 28px;
  --radius-pill: 999px;

  --shadow-soft: 0 6px 24px rgba(59, 47, 42, 0.08);
  --shadow-card: 0 10px 30px rgba(59, 47, 42, 0.10);
  --shadow-float: 0 14px 34px rgba(59, 47, 42, 0.18);

  --header-h: 76px;
  --topbar-h: 38px;
  --bottomnav-h: 68px;
  --container: 1200px;
  --transition: 0.25s ease;
}

/* ===========================
   1. RESET / BASE
   =========================== */
*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; direction: rtl; overflow-x:hidden; }
body{
  margin:0;
  font-family: var(--font-base);
  background: var(--color-bg);
  color: var(--color-text);
  line-height: 1.8;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
  padding-bottom: 0;
  overflow-x:hidden;
}
body.has-bottom-nav{ padding-bottom: calc(var(--bottomnav-h) + 14px); }
img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family: inherit; cursor:pointer; }
input,select,textarea{ font-family: inherit; }
:focus-visible{ outline: 3px solid var(--color-accent); outline-offset: 2px; border-radius: 4px;}

h1,h2,h3,h4{
  font-weight: 800;
  line-height: 1.35;
  margin: 0 0 14px;
  color: var(--color-primary-dark);
}
h1{ font-size: clamp(28px, 5vw, 48px); }
h2{ font-size: clamp(22px, 3.4vw, 34px); }
h3{ font-size: 19px; }
p{ margin: 0 0 14px; color: var(--color-text-soft); }

.container{ max-width: var(--container); margin: 0 auto; padding: 0 20px; }
.section{ padding: 64px 0; position: relative; }
#categories{ padding-top: 28px; }
.section--alt{ background: var(--color-bg-alt); }
.section-head{ text-align:center; max-width: 620px; margin: 0 auto 40px; }
.section-head .eyebrow{
  display:inline-block; color: var(--color-accent-dark); font-weight:700;
  background: rgba(217,125,67,.12); padding: 5px 16px; border-radius: var(--radius-pill);
  font-size: 13px; margin-bottom: 10px;
}

/* هدر باکس «شگفت‌انگیزهای امروز» (افزونه نگین سبز) */
.nsb-deals__head{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  margin-bottom: 20px; flex-wrap: wrap;
}
.nsb-deals__title{ display:flex; align-items:center; gap:10px; font-size: clamp(20px,3vw,26px); color: var(--color-primary-dark); margin:0; }
.nsb-deals__badge{
  background: var(--color-paprika); color:#fff; font-weight:700; font-size:13px;
  padding: 6px 16px; border-radius: var(--radius-pill); white-space:nowrap;
}
.nsb-deals__more{ color: var(--color-primary-dark); font-weight:700; font-size:14px; white-space:nowrap; }
.nsb-deals__more:hover{ color: var(--color-primary); }

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding: 13px 28px; border-radius: var(--radius-pill); font-weight:700;
  border: 2px solid transparent; transition: var(--transition); white-space: nowrap;
  max-width: 100%; box-sizing: border-box;
}
.btn svg{ width:16px; height:16px; flex-shrink:0; }
.btn--primary{ background: var(--color-accent); color:#fff; box-shadow: var(--shadow-card); }
.btn--primary:hover{ background: var(--color-accent-dark); transform: translateY(-2px); }
.btn--outline{ border-color: var(--color-primary); color: var(--color-primary-dark); background: transparent; }
.btn--outline:hover{ background: var(--color-primary); color:#fff; }
.btn--ghost{ background: rgba(255,255,255,.18); color:#fff; border-color: rgba(255,255,255,.5); }

/* ===========================
   2. TOP UTILITY BAR
   =========================== */
.topbar{
  background: var(--color-primary-dark);
  color: #EFE9D6;
  font-size: 13px;
  height: var(--topbar-h);
  display:flex; align-items:center;
}
.topbar .container{ display:flex; justify-content:space-between; align-items:center; width:100%; gap:14px; }
.topbar a{ color:#EFE9D6; }
.topbar__links{ display:flex; gap:18px; }
.topbar__links a:hover{ color: var(--color-accent-light); }
@media (max-width: 700px){ .topbar__links span:not(:first-child){ display:none; } }
@media (max-width: 880px){ .topbar{ display:none; } }

/* ===========================
   3. MAIN HEADER
   =========================== */
.site-header{
  position: sticky; top:0; z-index: 500;
  background: rgba(250,246,236,0.92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid transparent;
  transition: box-shadow var(--transition), height var(--transition), border-color var(--transition);
}
.site-header.is-scrolled{ box-shadow: var(--shadow-soft); border-bottom-color: var(--color-border); }
.header-inner{
  min-height: var(--header-h);
  display:flex; align-items:center; gap:18px;
  padding-top:6px; padding-bottom:6px;
}
.header-inner .container{ display:flex; align-items:center; gap:18px; min-height:100%; }

.hamburger{
  width:44px; height:44px; border-radius: var(--radius-sm);
  background: var(--color-primary); border:none; flex: 0 0 auto;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px;
  transition: var(--transition);
}
.hamburger:hover{ background: var(--color-primary-dark); }
.hamburger span{ width:20px; height:2px; background:#fff; border-radius:2px; transition: var(--transition); }
.hamburger.is-active span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
.hamburger.is-active span:nth-child(2){ opacity:0; }
.hamburger.is-active span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }

.site-logo{ display:flex; align-items:center; gap:10px; flex: 0 0 auto; }
.site-logo img{ height:42px !important; width:auto !important; max-width:220px !important; object-fit:contain; }
.logo-text{ font-weight:800; font-size:20px; color: var(--color-paprika); }
.logo-text span{ color: var(--color-primary-dark); }
.site-logo .logo-text{ font-weight:800; font-size:20px; color: var(--color-paprika); }
.site-logo .logo-text span{ color: var(--color-primary-dark); }

/* لوگوی هدر (اختیاری - از سفارشی‌سازی > نوار بالای سایت)
 * توجه: max-width همیشه ۱۰۰٪ (نسبت به فضای موجود) می‌ماند تا هیچ‌وقت، در
 * هیچ اندازه صفحه‌ای (دسکتاپ/موبایل/اندروید)، باعث اسکرول افقی نشود. */
.header-corner-logo-img{ height:auto; width:auto; max-height:80px; max-width:60vw; object-fit:contain; display:block; }
@media (max-width:640px){ .header-corner-logo-img{ max-height:60px; max-width:65vw; } }

/* بزرگ‌تر کردن لوگو در موبایل/اندروید:
 * قانون «.site-logo img{height:42px}» بالاتر، به‌خاطر خاص‌بودن بیشتر (specificity)،
 * همیشه روی لوگوی سفارشی و هم روی هدر-کرنر-لوگو غالب می‌شد و اجازه نمی‌داد
 * حتی با max-height بزرگ‌تر، لوگو در موبایل بزرگ‌تر دیده شود. با افزودن
 * .site-header به سلکتور، خاص‌بودن آن از هر دو قانون قبلی بیشتر می‌شود و
 * این‌بار واقعاً اعمال می‌شود. عرض هم به‌صورت درصدی از صفحه محدود شده
 * که در هیچ سایز گوشی‌ای باعث اسکرول افقی یا برخورد با دکمه‌ها نشود. */
@media (max-width:640px){
  .site-header .site-logo img{
    height:64px;
    max-height:64px;
    width:auto;
    max-width:52vw;
  }
}
@media (max-width:400px){
  .site-header .site-logo img{
    height:56px;
    max-height:56px;
    max-width:50vw;
  }
}

.primary-menu{ display:none; gap:6px; margin-right:auto; }
.primary-menu li a{
  display:block; padding: 10px 14px; border-radius: var(--radius-pill);
  font-weight:600; color: var(--color-text); transition: var(--transition);
}
.primary-menu li a:hover, .primary-menu li.current-menu-item a{
  background: var(--color-primary); color:#fff;
}
@media (min-width: 960px){
  .primary-menu{ display:flex; }
}

.header-actions{ display:flex; align-items:center; gap:10px; margin-right:auto; }
@media (min-width:960px){ .header-actions{ margin-right:0; } }

.icon-btn{
  position:relative; width:42px; height:42px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background: var(--color-surface); border:1px solid var(--color-border);
  transition: var(--transition);
}
.icon-btn:hover{ background: var(--color-primary); border-color: var(--color-primary); color:#fff; }
.icon-btn svg{ width:20px; height:20px; }

.cart-count{
  position:absolute; top:-6px; left:-6px;
  background: var(--color-paprika); color:#fff; font-size:11px; font-weight:700;
  min-width:19px; height:19px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; padding:0 4px;
  border: 2px solid var(--color-bg);
}

.account-pill{
  display:flex; align-items:center; gap:8px; padding: 8px 16px 8px 10px;
  border-radius: var(--radius-pill); background: var(--color-surface); border:1px solid var(--color-border);
  font-weight:700; font-size:14px; transition: var(--transition);
}
.account-pill:hover{ background: var(--color-primary); color:#fff; border-color: var(--color-primary); }
@media (max-width: 640px){ .account-pill{ display:none; } }

/* ===========================
   4. OFF-CANVAS HAMBURGER MENU
   =========================== */
.offcanvas-overlay{
  position:fixed; inset:0; background: rgba(36,28,20,.55);
  opacity:0; visibility:hidden; transition: opacity var(--transition); z-index: 800;
}
.offcanvas-overlay.is-active{ opacity:1; visibility:visible; }

.offcanvas{
  position:fixed; top:0; right:0; height:100%; width:min(86vw, 360px);
  background: var(--color-surface); z-index: 900;
  transform: translateX(100%); transition: transform .32s ease;
  display:flex; flex-direction:column; box-shadow: -10px 0 40px rgba(0,0,0,.2);
}
.offcanvas.is-active{ transform: translateX(0); }
.offcanvas__head{
  display:flex; align-items:center; justify-content:space-between;
  padding: 18px 20px; border-bottom:1px solid var(--color-border);
}
.offcanvas-logo{ display:inline-flex; align-items:center; }
.offcanvas-logo-img, .offcanvas-logo img{ height:36px; width:auto; max-width:150px; object-fit:contain; display:block; }
.offcanvas__close{
  width:38px; height:38px; border-radius:50%; border:1px solid var(--color-border); background:#fff;
}
.offcanvas__body{ padding: 14px 10px; overflow-y:auto; flex:1; }
.offcanvas-menu-list li{ display:block; }
.offcanvas-menu-list > li{ border-bottom: 1px solid var(--color-bg-alt); }
.offcanvas-menu-list > li:last-child{ border-bottom:none; }
.offcanvas__body a{
  display:flex; align-items:center; gap:10px; padding: 14px 16px; border-radius: var(--radius-sm);
  font-weight:700; color: var(--color-text); font-size:15.5px;
}
.offcanvas__body a:hover, .offcanvas-menu-list li.current-menu-item > a{ background: var(--color-bg-alt); color: var(--color-primary-dark); }

.offcanvas-menu-list li.menu-item-has-children{ position:relative; }
.offcanvas-menu-list li.menu-item-has-children > a{ padding-left:46px; }
.offcanvas-submenu-toggle{
  position:absolute; left:6px; top:4px; width:38px; height:38px; border-radius:50%;
  background: var(--color-bg-alt); border:none; display:flex; align-items:center; justify-content:center;
  transition: var(--transition); color: var(--color-primary-dark);
}
.offcanvas-submenu-toggle svg{ width:16px; height:16px; transition: transform var(--transition); }
li.is-submenu-open > .offcanvas-submenu-toggle svg{ transform: rotate(180deg); }
.offcanvas-menu-list .sub-menu{
  list-style:none; margin:0; padding: 0 14px 8px 0; max-height:0; overflow:hidden; transition: max-height .3s ease;
}
.offcanvas-menu-list .sub-menu a{ font-size:14px; font-weight:600; color: var(--color-text-soft); padding:10px 16px; }
li.is-submenu-open > .sub-menu{ max-height: 1000px; }

.offcanvas-store-address{
  display:flex; align-items:center; gap:12px;
  margin: 14px 6px 6px; padding: 14px 16px;
  background: var(--color-bg-alt); border-radius: var(--radius-md);
  text-decoration:none; cursor: default;
  transition: var(--transition);
}
a.offcanvas-store-address{ cursor:pointer; }
a.offcanvas-store-address:hover{ background: var(--color-primary-light); }
.offcanvas-store-address__icon{
  flex-shrink:0; width:40px; height:40px; border-radius:50%;
  background: var(--color-primary); color:#fff;
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.offcanvas-store-address__icon svg{ width:20px; height:20px; }
.offcanvas-store-address__icon img{ width:100%; height:100%; object-fit:cover; }
.offcanvas-store-address__text{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.offcanvas-store-address__text strong{ font-size:15px; font-weight:800; color: var(--color-text); }
.offcanvas-store-address__text span{ font-size:12.5px; color: var(--color-text-soft); line-height:1.6; }

.offcanvas__foot{ padding: 18px 20px; border-top:1px solid var(--color-border); }
.offcanvas__foot .btn{ width:100%; margin-bottom:10px; }
.offcanvas__social{ display:flex; gap:10px; margin-top:12px; }
.offcanvas__social a{ width:36px;height:36px;border-radius:50%;background:var(--color-bg-alt);display:flex;align-items:center;justify-content:center; }

/* ===========================
   5. HERO
   =========================== */
.hero{
  position:relative; overflow:hidden;
  background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
  color:#fff; padding: 36px 0 0;
}
.hero__blob{
  position:absolute; border-radius:50%; filter: blur(2px); opacity:.25;
}
.hero__blob--1{ width:340px; height:340px; background: var(--color-accent); top:-120px; left:-100px; }
.hero__blob--2{ width:220px; height:220px; background: #fff; bottom:-80px; right:10%; opacity:.08; }
.hero .container{ display:grid; grid-template-columns: 1fr; gap:30px; align-items:center; position:relative; z-index:2; margin-bottom: 28px; }
@media (min-width: 880px){ .hero .container{ grid-template-columns: 1.1fr 0.9fr; } }

.hero__eyebrow{
  display:inline-flex; align-items:center; gap:8px; background: rgba(255,255,255,.16);
  padding:6px 16px; border-radius: var(--radius-pill); font-size:13px; font-weight:700; margin-bottom:18px;
}
.hero__eyebrow-icon{ width:18px; height:18px; object-fit:contain; flex:0 0 auto; }
.hero h1{ color:#fff; }
.hero p{ color: rgba(255,255,255,.85); font-size:17px; max-width:480px; }
.hero__cta{ display:flex; gap:12px; margin-top:24px; flex-wrap:wrap; }

.hero__visual{
  position:relative; border-radius: var(--radius-lg); overflow:hidden; min-height:200px;
  background: var(--color-bg-alt); box-shadow: var(--shadow-float);
  display:flex; align-items:center; justify-content:center;
}
.hero__visual img{ width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.hero__visual .hero__placeholder{ color: var(--color-primary-dark); text-align:center; padding:30px; position:relative; z-index:1; }
.hero__visual .hero__slide{ position:absolute; inset:0; opacity:0; transition: opacity 1.2s ease; }
.hero__visual .hero__slide.is-active{ opacity:1; z-index:1; }
.hero__visual .hero__slide img{ position:static; }
@media (max-width: 767px){
	/* روی موبایل، ارتفاع باکس محدودتره؛ به‌جای برش‌خوردن (cover)، کل تصویر
	   نمایش داده می‌شود (contain) تا هیچ بخشی از بنر روی اندروید/موبایل افتاده نشود. */
	.hero__visual{ min-height:0; aspect-ratio: 4 / 3; }
	.hero__visual img,
	.hero__visual .hero__slide img{ object-fit: contain; }
}
.hero__badge{
  position:absolute; bottom:18px; right:18px; background:#fff; color: var(--color-text);
  border-radius: var(--radius-md); padding: 12px 18px; box-shadow: var(--shadow-card);
  display:flex; align-items:center; gap:10px; font-weight:700; font-size:14px; z-index:2;
}
.hero__badge .dot{ width:10px;height:10px;border-radius:50%;background:#4CAF50; }

.wave-divider{ position:relative; display:block; width:100%; height:70px; margin-top:-1px; }
.wave-divider svg{ display:block; width:100%; height:100%; }

/* ===========================
   6. CATEGORY CARDS
   =========================== */
.cat-grid{ display:grid; grid-template-columns: repeat(2,1fr); gap:18px; }
@media (min-width:700px){ .cat-grid{ grid-template-columns: repeat(3,1fr); } }
@media (min-width:980px){ .cat-grid{ grid-template-columns: repeat(5,1fr); } }
.cat-card{
  background: var(--color-surface); border-radius: var(--radius-md); padding: 26px 16px;
  text-align:center; box-shadow: var(--shadow-soft); transition: var(--transition);
  border: 1px solid transparent;
}
.cat-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-card); border-color: var(--color-accent); }
.cat-card__icon{
  width:76px; height:76px; margin:0 auto 14px; border-radius:50%;
  background: var(--color-bg-alt); display:flex; align-items:center; justify-content:center;
  color: var(--color-primary); transition: var(--transition);
}
.cat-card:hover .cat-card__icon{ background: var(--color-accent); color:#fff; transform: scale(1.08) rotate(-6deg); }
.cat-card__icon svg{ width:38px; height:38px; }
.cat-card__icon img{ width:56px; height:56px; object-fit:contain; border-radius:50%; }
.cat-card h3{ margin-bottom:4px; font-size:16px; }
.cat-card span{ color: var(--color-text-soft); font-size:13px; }

/* ===========================
   7b. SHOP PAGE — باکس‌های اسپات‌لایت دسته‌بندی (سبز رنگ، مثل نمونه دلخواه کاربر)
   =========================== */
.cat-spotlight{
  border-radius: var(--radius-lg); padding: 24px 22px 28px; margin-bottom: 30px;
  box-shadow: var(--shadow-soft); position:relative; overflow:hidden;
  scroll-margin-top: calc(var(--header-h) + 24px);
}
.cat-spotlight--green{ background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%); }
.cat-spotlight--orange{ background: linear-gradient(135deg, var(--color-accent) 0%, var(--color-accent-dark) 100%); }
.cat-spotlight--paprika{ background: linear-gradient(135deg, #C24A33 0%, #97361F 100%); }
.cat-spotlight--olive{ background: linear-gradient(135deg, #8A8049 0%, #635C2E 100%); }
.cat-spotlight--teal{ background: linear-gradient(135deg, #3F8080 0%, #2B5C5C 100%); }
.cat-spotlight--brown{ background: linear-gradient(135deg, #8A5A3C 0%, #5E3B24 100%); }
.cat-spotlight--sand{ background: linear-gradient(135deg, #B8A678 0%, #8C7B4E 100%); }

.cat-spotlight__head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; gap:10px; flex-wrap:wrap; }
.cat-spotlight__title{ display:flex; align-items:center; gap:10px; color:#fff; }
.cat-spotlight__title .icon{
  width:60px; height:60px; border-radius:50%; background: rgba(255,255,255,.22);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.cat-spotlight__title .icon svg{ width:34px; height:34px; }
.cat-spotlight__title .icon img{ width:38px; height:38px; object-fit:cover; border-radius:50%; }
.cat-spotlight__title h2{ color:#fff; font-size:19px; margin:0; }
.cat-spotlight__more{
  color:#fff; font-size:13px; font-weight:700; display:flex; align-items:center; gap:4px;
  background: rgba(255,255,255,.16); padding:8px 16px; border-radius: var(--radius-pill); flex-shrink:0;
  transition: var(--transition);
}
.cat-spotlight__more:hover{ background: rgba(255,255,255,.3); }

.cat-spotlight .woocommerce ul.products,
.cat-spotlight ul.products{
  background:transparent; padding:2px 2px 6px;
}
.cat-spotlight ul.products li.product{ border-color: transparent; }

.cat-spotlight__empty{ color: rgba(255,255,255,.85); font-size:14px; background: rgba(255,255,255,.12); padding:18px; border-radius: var(--radius-md); text-align:center; }
.cat-spotlight .products-carousel__arrow{ background:#fff; box-shadow: 0 4px 14px rgba(0,0,0,.25); }
.cat-spotlight .products-carousel__arrow:hover{ background: var(--color-text); color:#fff; }

/* ==============================================================
   7. PRODUCT CAROUSEL + PRODUCT CARD (بازطراحی کامل — تازه‌بازار)
   ============================================================== */

/* ریست کامل استایل‌های پیش‌فرض ووکامرس روی li.product تا هیچ
   تداخلی (width/float/margin درصدی) با چیدمان ما پیش نیاید.
   نکته: انتخاب‌گرها با کلاس تکراری (.products.products) عمداً specificity
   بالاتری از کلاس‌های پیش‌فرض ووکامرس (مثل columns-5) دارند تا همیشه برنده باشند. */
.woocommerce ul.products.products,
.woocommerce-page ul.products.products{
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.woocommerce ul.products.products li.product.product,
.woocommerce-page ul.products.products li.product.product{
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  list-style: none !important;
  clear: none !important;
}

/* حالت پیش‌فرض (غیرکاروسلی): چیدمان با Flexbox + wrap — مخصوص صفحه‌ی کامل
   یک دسته‌بندی، نتیجه‌ی جست‌وجو، یا هر جایی که «مشاهده همه» به آن می‌رود.
   اسکریپت main.js فقط داخل «.nsb-carousel-zone» و «.cat-spotlight» کاروسل
   می‌سازد؛ در بقیه‌ی جاها همین چیدمان باقی می‌ماند.
   نکته: عمداً به‌جای CSS Grid از Flexbox استفاده شده، چون Grid با
   auto-placement به سلول‌های ثابت (Track) وابسته است و اگر هر عنصر
   غیرمنتظره‌ای (مثل خروجی اضافه‌ی خود ووکامرس) وسط لیست قرار بگیرد، یک
   سلول خالی و جابه‌جایی عجیب ایجاد می‌کند. Flexbox با wrap همیشه هر ردیف
   را تا جایی که جا دارد پر می‌کند و بدون هیچ حفره‌ای به ردیف بعد می‌رود. */
.woocommerce ul.products.products,
.woocommerce-page ul.products.products{
  display: flex !important;
  direction: rtl !important;
  flex-wrap: wrap !important;
  align-items: stretch !important;
  gap: 14px !important;
  width: 100% !important;
}
.woocommerce ul.products.products li.product.product,
.woocommerce-page ul.products.products li.product.product{
  flex: 0 0 calc(50% - 7px) !important;
  max-width: calc(50% - 7px) !important;
  width: auto !important;
}
@media (min-width: 640px){
  .woocommerce ul.products.products,
  .woocommerce-page ul.products.products{ gap: 18px !important; }
  .woocommerce ul.products.products li.product.product,
  .woocommerce-page ul.products.products li.product.product{
    flex-basis: calc(33.333% - 12px) !important;
    max-width: calc(33.333% - 12px) !important;
  }
}
@media (min-width: 1000px){
  .woocommerce ul.products.products,
  .woocommerce-page ul.products.products{ gap: 22px !important; }
  .woocommerce ul.products.products li.product.product,
  .woocommerce-page ul.products.products li.product.product{
    flex-basis: calc(25% - 16.5px) !important;
    max-width: calc(25% - 16.5px) !important;
  }
}
@media (min-width: 1280px){
  .woocommerce ul.products.products li.product.product,
  .woocommerce-page ul.products.products li.product.product{
    flex-basis: calc(20% - 17.6px) !important;
    max-width: calc(20% - 17.6px) !important;
  }
}

/* رفع فضای خالی زشت وقتی تعداد محصولات در یک ردیف کم است (مثلاً باکس
   «شگفت‌انگیزهای امروز» با فقط ۱ یا ۲ محصول): به‌جای کشیده‌شدن به همان
   عرض ثابت گرید (که باقی ردیف را خالی می‌گذارد)، کارت‌ها با اندازه طبیعی
   و وسط‌چین نمایش داده می‌شوند. */
.woocommerce ul.products.products:has(> li.product.product:first-child:nth-last-child(-n+2)),
.woocommerce-page ul.products.products:has(> li.product.product:first-child:nth-last-child(-n+2)){
  justify-content: center !important;
}
.woocommerce ul.products.products:has(> li.product.product:first-child:nth-last-child(-n+2)) li.product.product,
.woocommerce-page ul.products.products:has(> li.product.product:first-child:nth-last-child(-n+2)) li.product.product{
  flex: 0 1 240px !important;
  max-width: 240px !important;
}

/* «محصولات مشابه» و «پیشنهادی» زیر صفحه محصول از قانون بالا مستثنا هستند:
   چون این فروشگاه گاهی فقط ۱-۲ محصول مشابه دارد، قانون بالا کارت‌ها را با
   عرض ثابت ۲۴۰px و وسط‌چین نمایش می‌داد که در عرض واقعی گوشی (که معمولاً
   از ۲×۲۴۰px کوچک‌تر است) به‌درستی جمع نمی‌شد و کارت‌ها زیر هم و کج می‌افتادند.
   اینجا همیشه همان چیدمان درصدی استاندارد (۲ ستون در موبایل، ۳ ستون در
   تبلت) اجباری می‌شود تا مستقل از تعداد محصول، همیشه افقی و منظم باشد. */
.woocommerce div.product .related.products ul.products.products,
.woocommerce div.product .upsells.products ul.products.products{
  justify-content: flex-start !important;
}
.woocommerce div.product .related.products ul.products.products li.product.product,
.woocommerce div.product .upsells.products ul.products.products li.product.product{
  flex: 0 0 calc(50% - 7px) !important;
  max-width: calc(50% - 7px) !important;
  width: auto !important;
}
@media (min-width: 640px){
  .woocommerce div.product .related.products ul.products.products li.product.product,
  .woocommerce div.product .upsells.products ul.products.products li.product.product{
    flex-basis: calc(33.333% - 12px) !important;
    max-width: calc(33.333% - 12px) !important;
  }
}
@media (min-width: 1000px){
  .woocommerce div.product .related.products ul.products.products li.product.product,
  .woocommerce div.product .upsells.products ul.products.products li.product.product{
    flex-basis: calc(25% - 16.5px) !important;
    max-width: calc(25% - 16.5px) !important;
  }
}

/* پوسته کاروسل (اسکریپت main.js این <div> را خودکار دور ul.products می‌کشد) */
.products-carousel{ position: relative; }

/* ریل افقی قابل‌ورق‌خوردن (کلاسی که اسکریپت به ul.products اضافه می‌کند — فقط در
   بخش‌های اسپاتلایت؛ این قوانین بر گرید بالا اولویت دارند چون بعد از آن آمده‌اند
   و specificity برابر/بالاتری دارند) */
.woocommerce ul.products.products.products-carousel__track,
.woocommerce-page ul.products.products.products-carousel__track{
  display: flex !important;
  direction: rtl !important;
  flex-wrap: nowrap !important;
  gap: 14px !important;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  scroll-behavior: smooth;
  cursor: grab;
  padding: 4px 2px 12px;
  width: 100% !important;
}
.woocommerce ul.products.products.products-carousel__track::-webkit-scrollbar,
.woocommerce-page ul.products.products.products-carousel__track::-webkit-scrollbar{ display: none; }
.woocommerce ul.products.products.products-carousel__track.is-dragging,
.woocommerce-page ul.products.products.products-carousel__track.is-dragging{
  cursor: grabbing; scroll-behavior: auto; scroll-snap-type: none;
}

/* عرض هر کارت داخل ریل — تعداد کارت‌های دیده‌شده در هر برش صفحه */
.woocommerce ul.products.products.products-carousel__track li.product.product,
.woocommerce-page ul.products.products.products-carousel__track li.product.product{
  flex: 0 0 auto !important;
  width: 46% !important;
  max-width: none !important;
  scroll-snap-align: start;
}
@media (min-width: 560px){
  .woocommerce ul.products.products.products-carousel__track li.product.product,
  .woocommerce-page ul.products.products.products-carousel__track li.product.product{ width: 32% !important; }
}
@media (min-width: 820px){
  .woocommerce ul.products.products.products-carousel__track li.product.product,
  .woocommerce-page ul.products.products.products-carousel__track li.product.product{ width: 24% !important; }
}
@media (min-width: 1180px){
  .woocommerce ul.products.products.products-carousel__track li.product.product,
  .woocommerce-page ul.products.products.products-carousel__track li.product.product{ width: 19% !important; }
}

/* فلش‌های کاروسل */
.products-carousel__arrow{
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 20;
  width: 40px; height: 40px; border-radius: 50%; background: #fff; border: 1px solid var(--color-border);
  box-shadow: var(--shadow-card); display: flex; align-items: center; justify-content: center;
  color: var(--color-primary-dark); transition: var(--transition); cursor: pointer;
}
.products-carousel__arrow:hover{ background: var(--color-primary); color: #fff; }
.products-carousel__arrow svg{ width: 18px; height: 18px; }
.products-carousel__arrow--prev{ right: -8px; }
.products-carousel__arrow--next{ left: -8px; }
.products-carousel__arrow.is-hidden{ display: none; }
.products-carousel__arrow.is-disabled{ opacity: .35; pointer-events: none; }
@media (max-width: 819px){
  .products-carousel__arrow{ display: none; } /* روی موبایل فلش لازم نیست، لمسی ورق می‌خورد */
}

/* کارت */
.nsbp__box{
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: var(--shadow-card);
  transition: box-shadow .25s ease, transform .25s ease, border-color .25s ease;
}
.nsbp__box:hover{
  transform: translateY(-3px);
  box-shadow: var(--shadow-float);
  border-color: var(--color-primary-light);
}

/* تصویر */
.nsbp__img{
  position: relative;
  display: block;
  aspect-ratio: 1 / 1;
  background: var(--color-bg-alt);
  overflow: hidden;
}
.nsbp__img img{
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  display: block;
  transition: transform .4s ease;
}
.nsbp__box:hover .nsbp__img img{ transform: scale(1.05); }

.nsbp__off{
  position: absolute; top: 8px; right: 8px; z-index: 3;
  background: var(--color-paprika); color: #fff;
  font-size: 11px; font-weight: 800; line-height: 1;
  padding: 6px 8px; border-radius: var(--radius-pill);
  box-shadow: 0 3px 10px rgba(0,0,0,.18);
}
.nsbp__oos{
  position: absolute; inset: 0; z-index: 4;
  display: flex; align-items: center; justify-content: center;
  background: rgba(59,47,42,.45); color: #fff;
  font-size: 13px; font-weight: 700;
}

/* بدنه */
.nsbp__info{
  display: flex; flex-direction: column; flex: 1;
  padding: 12px;
  gap: 8px;
}
.nsbp__name{
  display: -webkit-box;
  -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  font-size: 13.5px; font-weight: 700; line-height: 1.6;
  color: var(--color-text);
  min-height: 2.9em;
}
.nsbp__name:hover{ color: var(--color-primary-dark); }

.nsbp__price{
  margin-top: auto;
  font-size: 15px; font-weight: 800; color: var(--color-text);
  display: flex; flex-direction: column; gap: 2px;
}
.nsbp__price .woocommerce-Price-amount{ font-weight: 800; }
.nsbp__price ins{
  order: 1; text-decoration: none;
  color: var(--color-accent-dark);
}
.nsbp__price del{
  order: 2; text-decoration: line-through;
  font-size: 11.5px; font-weight: 400; color: var(--color-text-soft); opacity: .65;
}

.nsbp__btn{ width: 100%; }
.nsbp__btn .button,
.nsbp__btn a.button{
  display: flex !important;
  align-items: center; justify-content: center;
  width: 100%;
  background: var(--color-primary) !important;
  color: #fff !important;
  font-size: 13px; font-weight: 700;
  padding: 9px 10px !important;
  margin: 0 !important;
  border: none !important;
  border-radius: var(--radius-pill) !important;
  text-align: center;
  transition: background .2s ease;
}
.nsbp__btn .button:hover,
.nsbp__btn a.button:hover{ background: var(--color-accent) !important; }
.nsbp__btn .added_to_cart{
  display: block; margin-top: 6px; text-align: center;
  font-size: 11px; font-weight: 700; color: var(--color-primary-dark);
}

.nsbp.outofstock .nsbp__img{ opacity: .6; }
.nsbp.outofstock .nsbp__btn .button{
  background: var(--color-text-soft) !important; pointer-events: none;
}

/* گزینه‌های وزن/حجم (مثل ۲۵۰ گرم، ۱ کیلوگرم، ۱ لیتر) روی کارت محصول و صفحه اختصاصی */
.nsbp-weight-options{
  display: flex; flex-wrap: wrap; gap: 6px;
  margin: 2px 0 4px;
}
.nsbp-weight-opt{
  appearance: none; -webkit-appearance: none;
  background: var(--color-bg-alt);
  border: 1px solid var(--color-border);
  color: var(--color-text);
  font-family: inherit;
  font-size: 11.5px; font-weight: 700;
  line-height: 1;
  padding: 7px 12px;
  border-radius: var(--radius-pill);
  cursor: pointer;
  transition: var(--transition);
  white-space: nowrap;
}
.nsbp-weight-opt:hover{
  border-color: var(--color-primary-light);
  color: var(--color-primary-dark);
}
.nsbp-weight-opt.is-active{
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
}
.nsbp-dynamic-price{ display: inline-block; }
.nsbp-price-sale ins{ text-decoration: none; color: var(--color-accent-dark); }
.nsbp-price-sale del{ text-decoration: line-through; font-size: 0.85em; font-weight: 400; opacity: .6; margin-inline-end: 4px; }
.nsbp-weight-opt.is-on-sale{ border-color: var(--color-accent); }
.nsbp-weight-opt.is-on-sale::after{ content: "%"; margin-inline-start: 3px; font-size: 10px; opacity: .8; }

/* روی صفحه‌ی اختصاصی محصول کمی بزرگ‌تر و با فاصله‌ی بیشتر از قیمت */
.summary .nsbp-weight-options{
  margin: 10px 0 20px;
  gap: 8px;
}
.summary .nsbp-weight-opt{
  font-size: 13px;
  padding: 9px 16px;
}

/* رفع اصلی باگ موبایل/اندروید: صفحات پیش‌فرض ووکامرس (محصول تکی،
   دسته‌بندی، سبد خرید، پرداخت، حساب کاربری) همگی از طریق هوک استاندارد
   ووکامرس با آی‌دی ثابت #primary رندر می‌شوند. برخلاف بقیه صفحات قالب
   (که همه‌جا از کلاس .container استفاده شده) این ووراپر هیچ حاشیه یا
   عرض حداکثری نداشت، بنابراین محتوا (متن، تصویر، فرم‌ها) مستقیم به لبه‌ی
   صفحه می‌چسبید — دقیقاً همان چیزی که در اندروید باعث می‌شد متن‌ها به هم
   فشرده یا به گوشه بچسبند. با سلکتور ID (اولویت بالاتر از کلاس) فقط
   حاشیه‌ی افقی و عرض حداکثر اضافه می‌شود، بدون دست‌زدن به padding
   بالا/پایین اختصاصی هر صفحه. */
#primary.content-area{
  max-width: var(--container);
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
  box-sizing: border-box;
  width: 100%;
}
@media (max-width: 480px){
  #primary.content-area{ padding-left: 16px; padding-right: 16px; }
}

.woocommerce-page .content-area{ padding-top: 40px; padding-bottom: 70px; }
.woocommerce-breadcrumb{ font-size:13px; color: var(--color-text-soft); margin-bottom:24px !important; }
.woocommerce-products-header__title.page-title{
  font-size: clamp(24px, 4vw, 36px); text-align:center; margin: 10px 0 30px; color: var(--color-primary-dark);
}
.term-description{ text-align:center; max-width:640px; margin:0 auto 30px; color: var(--color-text-soft); }
.woocommerce-breadcrumb a{ color: var(--color-primary-dark); }

/* ==============================================================
   7.b صفحه اختصاصی محصول (Single Product) — چیدمان کامل و ریسپانسیو
   قبلاً این صفحه هیچ استایل اختصاصی نداشت (فقط رنگ قیمت/دکمه) و کاملاً
   به CSS پیش‌فرض ووکامرس متکی بود؛ همین باعث فشردگی و بی‌نظمی در موبایل
   می‌شد. از این‌جا به بعد گالری و اطلاعات محصول به‌صورت کارتی و منظم
   نمایش داده می‌شوند.
   ============================================================== */
.woocommerce div.product{
  display: grid;
  grid-template-columns: 1fr;
  gap: 26px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 16px;
  box-shadow: var(--shadow-soft);
  margin: 0 0 40px;
  max-width: 100%;
  box-sizing: border-box;
}
@media (min-width: 860px){
  .woocommerce div.product{
    grid-template-columns: minmax(0,1fr) minmax(0,1fr);
    padding: 28px;
    gap: 40px;
    align-items: start;
  }
}
/* فقط گالری تصویر و خلاصه‌ی محصول باید کنار هم (دو ستونه) باشند؛ تب‌های
   توضیحات/نظرات و «محصولات مشابه» باید کل عرض را بگیرند و زیر آن‌ها،
   یکی‌زیر‌دیگری، در حالت افقیِ خودشان قرار بگیرند — نه کنار هم در همان
   گرید دو ستونه (باگ قبلی که باعث می‌شد «محصولات مشابه» کنار «دیدگاه‌ها»
   نمایش داده شود). */
.woocommerce div.product > .woocommerce-tabs,
.woocommerce div.product > .related.products,
.woocommerce div.product > .upsells.products{
  grid-column: 1 / -1;
}
.woocommerce div.product > .woocommerce-tabs{ padding-top: 8px; border-top: 1px dashed var(--color-border); }
.woocommerce div.product > .related.products{ padding-top: 28px; border-top: 1px dashed var(--color-border); }
.woocommerce div.product > .upsells.products{ padding-top: 28px; border-top: 1px dashed var(--color-border); }

/* گالری تصاویر */
.woocommerce div.product div.images{ min-width: 0; position: relative; }
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper{
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--color-bg-alt);
}
.woocommerce div.product div.images img{
  border-radius: var(--radius-md);
  width: 100%;
  height: auto;
  object-fit: cover;
}
.woocommerce div.product div.images .woocommerce-product-gallery__image + .woocommerce-product-gallery__image{
  margin-top: 10px;
}
.woocommerce div.product .flex-control-thumbs{
  display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 0; padding: 0;
}
.woocommerce div.product .flex-control-thumbs li{ list-style: none; width: 64px; }
.woocommerce div.product .flex-control-thumbs img{
  border-radius: var(--radius-sm); border: 2px solid transparent; cursor: pointer; opacity: .7;
}
.woocommerce div.product .flex-control-thumbs img.flex-active,
.woocommerce div.product .flex-control-thumbs img:hover{ border-color: var(--color-primary); opacity: 1; }
.woocommerce span.onsale{
  min-height: auto !important; min-width: auto !important; line-height: 1; top: 12px !important; right: 12px !important; left: auto !important;
  background: var(--color-paprika) !important; color: #fff; font-weight: 800; font-size: 12px;
  padding: 6px 12px; border-radius: var(--radius-pill); box-shadow: 0 3px 10px rgba(0,0,0,.18);
}

/* بدنه اطلاعات محصول */
.woocommerce div.product .summary{ min-width: 0; }
.woocommerce div.product .summary > *{ margin: 0 0 16px; }
.woocommerce div.product .summary > *:last-child{ margin-bottom: 0; }
.woocommerce div.product .summary h1.product_title{
  font-size: clamp(22px, 3.6vw, 30px); line-height: 1.5; margin: 0 0 6px; color: var(--color-primary-dark);
}
.woocommerce div.product .summary .price{ color: var(--color-accent-dark); font-size:26px; font-weight:800; margin:0 0 16px; }
.woocommerce div.product .summary .price ins{ text-decoration: none; }
.woocommerce div.product .summary .price del{ font-size: 16px; font-weight: 400; opacity: .6; margin-inline-end: 8px; }
.woocommerce div.product .summary .woocommerce-product-details__short-description{
  color: var(--color-text-soft); line-height: 2; font-size: 14.5px;
}
.woocommerce div.product .summary .woocommerce-product-details__short-description p{ margin: 0 0 10px; }

/* وضعیت موجودی */
.woocommerce div.product p.stock{
  font-weight: 700; font-size: 13.5px; padding: 6px 14px; border-radius: var(--radius-pill);
  display: inline-block; width: auto;
}
.woocommerce div.product p.stock.in-stock{ background: rgba(86,116,58,.12); color: var(--color-primary-dark); }
.woocommerce div.product p.stock.out-of-stock{ background: rgba(194,74,51,.12); color: var(--color-paprika); }

/* فرم افزودن به سبد: تعداد + دکمه در یک ردیف که در موبایل به‌زیبایی می‌شکند */
.woocommerce div.product form.cart{
  display: flex; flex-wrap: wrap; align-items: center; gap: 12px;
}
.woocommerce div.product form.cart .quantity{ margin: 0; }
/* استپر تعداد در صفحه محصول کمی بزرگ‌تر است تا هم‌قد دکمه «افزودن به سبد» باشد */
.woocommerce div.product form.cart .neginsabz-qty-stepper{ height: 50px; background: var(--color-bg-alt); }
.woocommerce div.product form.cart .neginsabz-qty-btn{ width: 42px; height: 100%; font-size: 19px; }
.woocommerce div.product form.cart .neginsabz-qty-stepper input.qty{
  width: 46px; height: 100%; font-size: 16px; color: var(--color-text); box-sizing: border-box;
}
.woocommerce div.product form.cart .quantity .qty:focus{ outline: none; }
.woocommerce div.product form.cart .button{
  background: var(--color-accent); color:#fff; border-radius: var(--radius-pill);
  padding: 14px 34px; font-weight:700; border:none; height: 50px; box-sizing: border-box;
  flex: 1 1 auto; min-width: 160px;
}
.woocommerce div.product form.cart .button:hover{ background: var(--color-accent-dark); }
.woocommerce div.product form.cart .button.disabled{ background: var(--color-text-soft); }

/* متا: دسته‌بندی، برچسب، کد محصول — هر کدام در یک خط مجزا تا در موبایل به هم نچسبند */
.woocommerce div.product .product_meta{
  font-size: 13px; color: var(--color-text-soft); line-height: 2.1;
  padding-top: 14px; margin-top: 4px; border-top: 1px dashed var(--color-border);
}
.woocommerce div.product .product_meta > span{ display: block; }
.woocommerce div.product .product_meta a{ color: var(--color-primary-dark); }
.woocommerce div.product .product_meta a:hover{ color: var(--color-accent-dark); }

/* تب‌های توضیحات کامل / مشخصات / نظرات */
.woocommerce div.product .woocommerce-tabs{ margin-top: 36px; }
.woocommerce div.product .woocommerce-tabs ul.tabs{
  display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0 0 20px; padding: 0;
  border-bottom: 1px solid var(--color-border);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li{ margin: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a{
  display: block; padding: 10px 18px; border-radius: var(--radius-pill) var(--radius-pill) 0 0;
  font-weight: 700; font-size: 14px; color: var(--color-text-soft);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{
  background: var(--color-bg-alt); color: var(--color-primary-dark);
}
.woocommerce div.product .woocommerce-tabs .panel{
  color: var(--color-text-soft); line-height: 2; font-size: 14.5px;
}
.woocommerce div.product .woocommerce-tabs .panel h2{ font-size: 19px; margin-bottom: 14px; color: var(--color-primary-dark); }
.woocommerce div.product table.shop_attributes{ font-size: 14px; border-color: var(--color-border) !important; width: 100%; }
.woocommerce div.product table.shop_attributes th{ background: var(--color-bg-alt); font-weight: 700; }

/* محصولات مرتبط / پیشنهادی زیر صفحه محصول */
.woocommerce div.product .related.products,
.woocommerce div.product .upsells.products{ margin-top: 44px; }
.woocommerce div.product .related.products > h2,
.woocommerce div.product .upsells.products > h2{
  font-size: clamp(20px,3vw,26px); margin-bottom: 20px; color: var(--color-primary-dark);
}

.woocommerce #respond input#submit, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button{
  background: var(--color-primary); color:#fff; border-radius: var(--radius-pill); border:none; font-weight:700;
}
.woocommerce #respond input#submit:hover, .woocommerce a.button:hover, .woocommerce button.button:hover{ background: var(--color-primary-dark); color:#fff; }

.woocommerce-checkout #payment, .woocommerce-cart-form, .cart-collaterals .cart_totals{
  background: var(--color-surface); border-radius: var(--radius-md); padding:20px; box-shadow: var(--shadow-soft);
}
.woocommerce table.shop_table{ border-radius: var(--radius-md); overflow:hidden; border-color: var(--color-border); }
/* ناوبری حساب کاربری با استایل کامل در بخش «۱۵. پنل حساب کاربری اپ‌مانند» در انتهای فایل تعریف شده است */

/* ===========================
   8. WHY US / FEATURES
   =========================== */
.features-grid{ display:grid; gap:20px; grid-template-columns: 1fr; }
@media (min-width:700px){ .features-grid{ grid-template-columns: repeat(4,1fr); } }
.feature{ text-align:center; padding: 20px; }
.feature__icon{
  width:58px; height:58px; border-radius: var(--radius-md); background: var(--color-primary); color:#fff;
  display:flex; align-items:center; justify-content:center; margin:0 auto 16px; transform: rotate(-4deg);
}
.feature__icon svg{ width:26px; height:26px; }

/* ===========================
   9. TESTIMONIALS
   =========================== */
.testi-grid{ display:grid; gap:20px; grid-template-columns:1fr; }
@media (min-width:760px){ .testi-grid{ grid-template-columns: repeat(3,1fr); } }
.testi-card{ background: var(--color-surface); border-radius: var(--radius-md); padding:26px; box-shadow: var(--shadow-soft); }
.testi-card .stars{ color: var(--color-accent); margin-bottom:10px; letter-spacing:2px; }
.testi-card .who{ display:flex; align-items:center; gap:10px; margin-top:16px; }
.testi-card .who .avatar{ width:40px;height:40px;border-radius:50%;background:var(--color-bg-alt); display:flex;align-items:center;justify-content:center; font-weight:800; color:var(--color-primary-dark); }

/* ===========================
   10. NEWSLETTER CTA
   =========================== */
.newsletter{
  background: var(--color-accent); border-radius: var(--radius-lg); padding: 40px 30px;
  display:flex; flex-wrap:wrap; gap:20px; align-items:center; justify-content:space-between; color:#fff;
}
.newsletter h2{ color:#fff; margin-bottom:6px; font-size:24px; }
.newsletter p{ color: rgba(255,255,255,.9); margin:0; }
.newsletter form{ display:flex; gap:8px; flex-wrap:wrap; }
.newsletter input[type=email]{
  border:none; border-radius: var(--radius-pill); padding:13px 20px; min-width:220px; font-size:14px;
}
.newsletter button{ background: var(--color-primary-dark); color:#fff; border-radius: var(--radius-pill); padding:13px 26px; border:none; font-weight:700; }

/* ===========================
   11. FOOTER
   =========================== */
.site-footer{ background: var(--color-text); color:#EDE6D6; padding-top:60px; }
.footer-grid{ display:grid; gap:30px; grid-template-columns: 1fr; padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,.1); }
@media (min-width:760px){ .footer-grid{ grid-template-columns: 1.3fr 1fr 1fr 1.2fr; } }
.footer-logo{ display:inline-flex; align-items:center; }
.footer-logo-img{ height:42px; width:auto; max-width:180px; object-fit:contain; display:block; }
.footer-logo img{ height:42px; width:auto; max-width:180px; object-fit:contain; display:block; }

.footer-trust{ display:flex; flex-wrap:wrap; align-items:center; gap:16px; padding:24px 0; border-bottom:1px solid rgba(255,255,255,.1); }
.footer-trust__label{ color:#fff; font-size:14px; font-weight:700; }
.footer-trust__badges{ display:flex; flex-wrap:wrap; align-items:center; gap:14px; }
/* اندازه ثابت برای نمادهای اعتماد (اس‌اس‌ال، اینماد و ...) در همه صفحات.
 * کد اینماد معمولاً یک <a><img></a> خام از پنل enamad.ir است که ممکن است
 * روی تگ img خودش اندازه/استایل داشته باشد؛ برای این‌که در هیچ صفحه‌ای
 * (نه فقط صفحه اصلی) بزرگ نمایش داده نشود، اندازه با !important و روی
 * تمام لایه‌های تودرتو (باکس + هر img داخلش) قفل شده است. */
.footer-trust__badge{
	box-sizing: border-box;
	display: block;
	height: 70px !important;
	width: 70px !important;
	max-width: 70px !important;
	max-height: 70px !important;
	overflow: hidden;
	object-fit: contain;
	background: #fff;
	border-radius: 8px;
	padding: 4px;
}
.footer-trust__enamad{ display:flex; align-items:center; justify-content:center; }
.footer-trust__enamad a{ display:flex; align-items:center; justify-content:center; width:100%; height:100%; }
.footer-trust__enamad img,
.footer-trust__enamad a img{
	height: 100% !important;
	width: 100% !important;
	max-width: 100% !important;
	max-height: 100% !important;
	object-fit: contain;
}

.footer-col h4{ color:#fff; font-size:15px; margin-bottom:16px; }
.footer-col p{ color: rgba(237,230,214,.7); font-size:14px; }
.footer-col ul li{ margin-bottom:10px; }
.footer-col ul li a{ color: rgba(237,230,214,.8); font-size:14px; transition: var(--transition); }
.footer-col ul li a:hover{ color: var(--color-accent-light); }
.footer-social{ display:flex; gap:10px; margin-top:14px; }
.footer-social a{ width:38px;height:38px;border-radius:50%;background: rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; }
.footer-social a:hover{ background: var(--color-accent); }
.footer-bottom{ padding: 20px 0 30px; display:flex; flex-wrap:wrap; gap:10px; justify-content:space-between; font-size:13px; color: rgba(237,230,214,.6); }

/* ===========================
   12. MOBILE BOTTOM NAV
   =========================== */
.bottom-nav{
  position: fixed; bottom: 12px; right:12px; left:12px; z-index: 700;
  background: var(--color-surface); border-radius: var(--radius-lg);
  box-shadow: var(--shadow-float); display:flex; align-items:center; justify-content:space-around;
  height: var(--bottomnav-h); padding: 0 6px; border: 1px solid var(--color-border);
}
@media (min-width: 880px){ .bottom-nav{ display:none; } }
.bottom-nav__item{
  flex:1; display:flex; flex-direction:column; align-items:center; gap:3px;
  color: var(--color-text-soft); font-size:11px; font-weight:700; position:relative; padding:8px 0;
  transition: var(--transition);
}
.bottom-nav__item svg{ width:22px; height:22px; transition: var(--transition); }
.bottom-nav__item.is-active{ color: var(--color-primary); }
.bottom-nav__item.is-active svg{ transform: translateY(-3px); }
.bottom-nav__item.is-active::after{
  content:''; position:absolute; top:0; width:26px; height:3px; background: var(--color-accent); border-radius:3px;
}
.bottom-nav__center{
  width:50px; height:50px; border-radius:50%; background: var(--color-primary); color:#fff;
  display:flex; align-items:center; justify-content:center; margin-top:-26px;
  box-shadow: 0 8px 20px rgba(86,116,58,.45); flex: 0 0 auto; position:relative;
}
.bottom-nav__center svg{ width:24px; height:24px; }
.bottom-nav__center .cart-count{ top:-4px; left:-4px; }

/* ===========================
   13. SCROLL REVEAL + MISC
   =========================== */
.reveal{ opacity:0; transform: translateY(24px); transition: opacity .6s ease, transform .6s ease; }
.reveal.is-visible{ opacity:1; transform: translateY(0); }

.skip-link{ position:absolute; right:-9999px; }
.skip-link:focus{ right:10px; top:10px; background:#fff; padding:10px 16px; border-radius:8px; z-index:9999; }

@media (prefers-reduced-motion: reduce){
  *{ animation: none !important; transition: none !important; }
  html{ scroll-behavior: auto; }
}

/* ===========================
   14. OTP LOGIN / REGISTER FORM
   =========================== */
.otp-auth-wrap{ display:flex; justify-content:center; padding: 50px 16px 80px; }
.otp-card{
  width:100%; max-width:420px; background: var(--color-surface); border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card); padding: 34px 28px; border: 1px solid var(--color-border);
}
.otp-card__head{ text-align:center; margin-bottom: 22px; }
.otp-card__icon{
  width:58px; height:58px; border-radius:50%; background: var(--color-bg-alt); color: var(--color-primary);
  display:flex; align-items:center; justify-content:center; margin: 0 auto 14px;
}
.otp-card__icon svg{ width:26px; height:26px; }
.otp-card__head h2{ font-size:21px; margin-bottom:6px; }
.otp-card__head p{ font-size:13.5px; }

.otp-step label{ display:block; font-weight:700; font-size:13.5px; margin-bottom:8px; color: var(--color-text); }
.otp-step input{
  width:100%; border:1.5px solid var(--color-border); border-radius: var(--radius-sm);
  padding: 13px 16px; font-size:16px; margin-bottom:16px; background: var(--color-bg); text-align:center;
  letter-spacing: 1px; transition: var(--transition);
}
.otp-step input:focus{ border-color: var(--color-primary); background:#fff; }
.otp-code-input{ font-size:22px !important; font-weight:800; letter-spacing:6px !important; }
.otp-btn-full{ width:100%; }
.otp-step__foot{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; margin-top:14px; font-size:12.5px; color: var(--color-text-soft); }
.otp-link-btn{ background:none; border:none; color: var(--color-primary-dark); font-weight:700; font-size:12.5px; padding:4px; }
.otp-link-btn:disabled{ opacity:.45; cursor:not-allowed; }
.otp-message{ min-height:18px; font-size:13px; text-align:center; font-weight:700; margin: -4px 0 16px; }
.otp-message--error{ color: var(--color-paprika); }
.otp-message--success{ color: var(--color-primary); }

.page-banner{ background: var(--color-bg-alt); padding: 50px 0; text-align:center; }
.page-banner h1{ margin-bottom:6px; }
.widget{ margin-bottom: 28px; }
.widget h2, .widget-title{ font-size:16px; margin-bottom:14px; }

/* ==============================================================
   8. TOAST پیغام شناور «افزوده شد به سبد خرید»
   ============================================================== */
.nsb-toast{
  position: fixed;
  top: 14px;
  left: 50%;
  transform: translateX(-50%) translateY(-140%);
  z-index: 9999;
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--color-primary-dark);
  color: #fff;
  padding: 12px 16px;
  border-radius: var(--radius-pill);
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
  max-width: calc(100% - 32px);
  opacity: 0;
  transition: transform .35s ease, opacity .35s ease;
  pointer-events: none;
}
.nsb-toast.is-visible{
  transform: translateX(-50%) translateY(0);
  opacity: 1;
  pointer-events: auto;
}
.nsb-toast--error{ background: var(--color-paprika); }
.nsb-toast__icon{
  flex-shrink: 0;
  width: 22px; height: 22px;
  border-radius: 50%;
  background: rgba(255,255,255,.18);
  display: flex; align-items: center; justify-content: center;
}
.nsb-toast__icon svg{ width: 14px; height: 14px; }
.nsb-toast__text{
  font-size: 13.5px; font-weight: 600; white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis;
}
.nsb-toast__btn{
  flex-shrink: 0;
  background: rgba(255,255,255,.16);
  color: #fff;
  font-size: 12px; font-weight: 700;
  padding: 6px 12px;
  border-radius: var(--radius-pill);
  white-space: nowrap;
  transition: background .2s ease;
}
.nsb-toast__btn:hover{ background: rgba(255,255,255,.3); }
@media (max-width: 480px){
  .nsb-toast{ left: 16px; right: 16px; transform: translateY(-140%); max-width: none; }
  .nsb-toast.is-visible{ transform: translateY(0); }
  .nsb-toast__text{ white-space: normal; }
}

/* حالت لودینگ دکمه‌ی افزودن به سبد حین ارسال AJAX */
.add_to_cart_button.nsb-loading{ opacity: .6; pointer-events: none; }
.add_to_cart_button.added::after{ content: ' ✓'; }

/* ==============================================================
   9. سبد خرید خالی (آیکون قابل‌تغییر)
   ============================================================== */
.nsb-empty-cart{
  text-align: center;
  padding: 50px 20px;
  max-width: 420px;
  margin: 0 auto;
}
.nsb-empty-cart__icon{
  width: 84px; height: 84px;
  margin: 0 auto 18px;
  border-radius: 50%;
  background: var(--color-bg-alt);
  color: var(--color-primary-dark);
  display: flex; align-items: center; justify-content: center;
}
.nsb-empty-cart__icon svg{ width: 40px; height: 40px; }
.nsb-empty-cart__icon img{ width: 48px; height: 48px; object-fit: contain; border-radius: 0; background: none; }
.nsb-empty-cart__text{ font-size: 15px; font-weight: 600; color: var(--color-text-soft); margin-bottom: 20px; }
.nsb-empty-cart__btn{ display: inline-flex; }

/* ==============================================================
   10. کاروسل خودکار «نظر مشتریان»
   ============================================================== */
.testi-carousel{ position: relative; }
.testi-carousel .testi-grid.testi-carousel__track{
  display: flex !important;
  flex-wrap: nowrap !important;
  direction: rtl;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  scroll-behavior: smooth;
  cursor: grab;
  gap: 20px;
  padding: 4px 2px 10px;
}
.testi-carousel .testi-grid.testi-carousel__track::-webkit-scrollbar{ display: none; }
.testi-carousel .testi-grid.testi-carousel__track.is-dragging{ cursor: grabbing; scroll-behavior: auto; scroll-snap-type: none; }
.testi-carousel .testi-card{
  flex: 0 0 auto;
  width: 84%;
  scroll-snap-align: start;
}
@media (min-width: 640px){ .testi-carousel .testi-card{ width: 46%; } }
@media (min-width: 980px){ .testi-carousel .testi-card{ width: 31%; } }

/* ==============================================================
   12. صفحه «درباره ما»
   ============================================================== */
.about-intro{
  max-width: 760px;
  margin: 0 auto 40px;
  text-align: center;
  font-size: 16px;
  line-height: 2;
  color: var(--color-text-soft);
}
.about-grid{
  display: grid;
  gap: 22px;
  grid-template-columns: 1fr;
}
@media (min-width: 760px){
  .about-grid{ grid-template-columns: repeat(3, 1fr); }
}
.about-box{
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 28px 24px;
  text-align: center;
  box-shadow: var(--shadow-card);
  transition: var(--transition);
}
.about-box:hover{ transform: translateY(-4px); box-shadow: var(--shadow-float); }
.about-box__icon{
  width: 56px; height: 56px;
  margin: 0 auto 16px;
  border-radius: 50%;
  background: var(--color-bg-alt);
  color: var(--color-primary-dark);
  display: flex; align-items: center; justify-content: center;
}
.about-box__icon svg{ width: 26px; height: 26px; }
.about-box h3{ margin-bottom: 10px; font-size: 16px; }
.about-box p{ color: var(--color-text-soft); font-size: 14px; line-height: 1.8; }

/* ==============================================================
   12-B. صفحه «تماس با ما»
   ============================================================== */
.contact-grid{
  display: grid;
  gap: 22px;
  grid-template-columns: 1fr;
}
@media (min-width: 620px){ .contact-grid{ grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 980px){ .contact-grid{ grid-template-columns: repeat(3, 1fr); } }

.contact-box{
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 30px 22px;
  box-shadow: var(--shadow-card);
  transition: var(--transition);
  text-decoration: none;
  color: inherit;
}
a.contact-box{ cursor: pointer; }
.contact-box:hover{ transform: translateY(-4px); box-shadow: var(--shadow-float); border-color: var(--color-accent); }

.contact-box__icon{
  width: 60px; height: 60px;
  margin: 0 auto 16px;
  border-radius: 50%;
  background: var(--color-bg-alt);
  color: var(--color-primary-dark);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  overflow: hidden;
}
.contact-box__icon svg{ width: 28px; height: 28px; }
.contact-box__icon img{ width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block; }

.contact-box h3{ margin-bottom: 8px; font-size: 16px; }
.contact-box__value{ color: var(--color-text-soft); font-size: 14.5px; line-height: 1.8; margin-bottom: 10px; }
.contact-box__cta{
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  font-weight: 700;
  color: var(--color-accent-dark);
  padding-top: 6px;
}
.contact-box:hover .contact-box__cta{ color: var(--color-accent); }

.contact-box--highlight{
  background: var(--color-primary-dark);
  border-color: var(--color-primary-dark);
  color: #fff;
}
.contact-box--highlight .contact-box__icon{ background: rgba(255,255,255,.15); color: #fff; }
.contact-box--highlight h3{ color: #fff; }
.contact-box--highlight .contact-box__value{ color: rgba(255,255,255,.85); }
.contact-box--highlight .contact-box__cta{ color: var(--color-accent-light); }
.contact-box--highlight:hover{ border-color: var(--color-accent); }

.contact-box--social .contact-box__social-links{
  display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 4px;
}
.contact-box--social .contact-box__social-links a{
  width: 40px; height: 40px; border-radius: 50%;
  background: var(--color-bg-alt); color: var(--color-primary-dark);
  display: flex; align-items: center; justify-content: center;
  transition: var(--transition);
}
.contact-box--social .contact-box__social-links a svg{ width: 20px; height: 20px; }
.contact-box--social .contact-box__social-links a:hover{ background: var(--color-primary); color:#fff; }

/* راهنمای گام‌به‌گام تیکت پشتیبانی */
.ticket-guide-head{ max-width: 700px; margin: 0 auto 40px; text-align: center; }
.ticket-guide-head .eyebrow{ display:inline-flex; align-items:center; gap:6px; }
.ticket-guide-head .eyebrow svg{ width:16px; height:16px; }
.ticket-guide-head h2{ margin: 10px 0 12px; }
.ticket-guide-head p{ color: var(--color-text-soft); font-size: 15px; line-height: 1.9; }

.ticket-steps{
  display: grid;
  gap: 20px;
  grid-template-columns: 1fr;
  margin-bottom: 34px;
}
@media (min-width: 700px){ .ticket-steps{ grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px){ .ticket-steps{ grid-template-columns: repeat(4, 1fr); } }

.ticket-step{
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 26px 20px;
  text-align: center;
  box-shadow: var(--shadow-soft);
  position: relative;
}
.ticket-step__num{
  display: flex; align-items: center; justify-content: center;
  width: 40px; height: 40px;
  margin: 0 auto 14px;
  border-radius: 50%;
  background: var(--color-accent);
  color: #fff;
  font-weight: 800;
  font-size: 17px;
}
.ticket-step h3{ margin-bottom: 8px; font-size: 15.5px; }
.ticket-step p{ color: var(--color-text-soft); font-size: 13.5px; line-height: 1.85; margin: 0; }

.ticket-guide-cta{ text-align: center; }

.ticket-missing-notice{
  background: #FFF4E5;
  border: 1px dashed var(--color-accent);
  color: var(--color-text);
  border-radius: var(--radius-md);
  padding: 18px 20px;
  font-size: 14px;
  line-height: 2;
  text-align: center;
}
.ticket-missing-notice code{
  background: rgba(0,0,0,.06);
  padding: 2px 8px;
  border-radius: 6px;
  direction: ltr;
  display: inline-block;
}

/* ===========================
   15. پنل حساب کاربری اپ‌مانند (My Account)
   =========================== */
.neginsabz-account{ padding: 28px 0 70px; }
.neginsabz-account .woocommerce-notices-wrapper{ margin-bottom: 16px; }
.neginsabz-account__grid{
  display:grid;
  gap: 22px;
  grid-template-columns: 1fr;
  align-items:start;
  min-width:0;
}
@media (min-width: 960px){
  .neginsabz-account__grid{ grid-template-columns: 280px 1fr; }
}

/* رفع تداخل حیاتی: استایل پیش‌فرض هسته ووکامرس برای این دو کلاس، چیدمان
   قدیمی مبتنی بر float (عرض ۲۵٪/۷۳٪) تعریف می‌کند که با اختصاصیت بالاتر از
   گرید جدید ما جلو می‌زند و باعث می‌شود سایدبار به یک نوار باریک شناور روی
   محتوا تبدیل شود و کلیک روی دکمه‌ها (مثل «افزودن آدرس») را مسدود کند.
   با این سلکتور دقیق‌تر + !important، رفتار پیش‌فرض ووکامرس کاملاً خنثی می‌شود. */
.woocommerce-account .woocommerce-MyAccount-navigation.neginsabz-account__nav,
.woocommerce-account .woocommerce-MyAccount-content.neginsabz-account__content{
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  min-width: 0 !important;
  max-width: 100% !important;
}
.neginsabz-account__nav, .neginsabz-account__content{ box-sizing: border-box; }

/* --- ناوبری / سایدبار --- */
.neginsabz-account__nav{
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  padding: 18px;
  border: 1px solid var(--color-border);
}
@media (min-width: 960px){
  .neginsabz-account__nav{ position: sticky; top: calc(var(--header-h) + 16px); }
}
.neginsabz-account__profile{
  display:flex; align-items:center; gap:12px;
  padding-bottom: 16px; margin-bottom: 14px;
  border-bottom: 1px solid var(--color-border);
}
.neginsabz-account__avatar{
  width:52px; height:52px; border-radius:50%;
  background: var(--color-bg-alt); color: var(--color-primary-dark);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.neginsabz-account__avatar svg{ width:26px; height:26px; }
.neginsabz-account__profile-info{ display:flex; flex-direction:column; gap:2px; overflow:hidden; }
.neginsabz-account__profile-info strong{ font-size:15px; color: var(--color-text); }
.neginsabz-account__profile-info span{ font-size:12px; color: var(--color-text-soft); direction:ltr; text-align:right; }

.neginsabz-account__wallet-chip{
  display:flex; align-items:center; gap:10px;
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));
  color:#fff; border-radius: var(--radius-md);
  padding: 12px 14px; margin-bottom: 16px;
  transition: var(--transition);
}
.neginsabz-account__wallet-chip:hover{ transform: translateY(-2px); box-shadow: var(--shadow-float); }
.neginsabz-account__wallet-chip-icon{ width:36px; height:36px; border-radius:50%; background: rgba(255,255,255,.18); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.neginsabz-account__wallet-chip-icon svg{ width:18px; height:18px; }
.neginsabz-account__wallet-chip small{ display:block; font-size:11px; opacity:.85; margin-bottom:2px; }
.neginsabz-account__wallet-chip strong{ font-size:14px; }

.neginsabz-account__menu{ display:flex; flex-direction:column; gap:4px; }
.neginsabz-account__menu li a{
  display:flex; align-items:center; gap:10px;
  padding:11px 12px; border-radius: var(--radius-sm);
  font-weight:600; font-size:13.5px; color: var(--color-text);
  transition: var(--transition);
}
.neginsabz-account__menu li a:hover{ background: var(--color-bg-alt); }
.neginsabz-account__menu li.is-active a{ background: var(--color-primary); color:#fff; }
.neginsabz-account__menu-icon{ width:20px; height:20px; flex-shrink:0; display:flex; }
.neginsabz-account__menu-icon svg{ width:20px; height:20px; }
.neginsabz-account__menu-label{ flex:1; }
.neginsabz-account__menu-arrow{ width:14px; height:14px; opacity:.5; transform: scaleX(-1); }
.neginsabz-account__menu-arrow svg{ width:14px; height:14px; }
.neginsabz-account__menu li.woocommerce-MyAccount-navigation-link--customer-logout a{ color: var(--color-paprika); }

@media (max-width: 959px){
  .neginsabz-account__nav{ padding:14px; }
  .neginsabz-account__menu{ flex-direction:row; flex-wrap:nowrap; overflow-x:auto; gap:8px; padding-bottom:4px; margin: 0 -14px; padding-inline:14px; scrollbar-width:none; }
  .neginsabz-account__menu::-webkit-scrollbar{ display:none; }
  .neginsabz-account__menu li{ flex-shrink:0; }
  .neginsabz-account__menu li a{ flex-direction:column; gap:4px; padding:10px 14px; border-radius: var(--radius-md); font-size:12px; text-align:center; background: var(--color-bg-alt); }
  .neginsabz-account__menu li.is-active a{ background: var(--color-primary); color:#fff; }
  .neginsabz-account__menu-arrow{ display:none; }
}

/* --- محتوا --- */
.neginsabz-account__content{ min-width:0; }

.neginsabz-dash-welcome{
  background: linear-gradient(120deg, var(--color-bg-alt), var(--color-surface));
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 22px 24px; margin-bottom: 20px;
}
.neginsabz-dash-welcome h2{ margin-bottom:6px; font-size:19px; }
.neginsabz-dash-welcome p{ color: var(--color-text-soft); font-size:13.5px; }

.neginsabz-stat-grid{ display:grid; grid-template-columns: repeat(2,1fr); gap:14px; margin-bottom:20px; min-width:0; }
@media (min-width: 700px){ .neginsabz-stat-grid{ grid-template-columns: repeat(4,1fr); } }
.neginsabz-stat-card{
  display:flex; flex-direction:column; align-items:flex-start; gap:6px;
  background: var(--color-surface); border:1px solid var(--color-border);
  border-radius: var(--radius-md); padding:16px; box-shadow: var(--shadow-soft);
  transition: var(--transition);
  min-width:0; box-sizing:border-box;
}
.neginsabz-stat-card:hover{ transform: translateY(-3px); box-shadow: var(--shadow-float); }
.neginsabz-stat-card__icon{ width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; background: var(--color-bg-alt); color: var(--color-primary); }
.neginsabz-stat-card__icon svg{ width:19px; height:19px; }
.neginsabz-stat-card__num{ font-size:18px; font-weight:800; color: var(--color-text); }
.neginsabz-stat-card__label{ font-size:12px; color: var(--color-text-soft); }
.neginsabz-stat-card--accent .neginsabz-stat-card__icon{ background: rgba(217,125,67,.14); color: var(--color-accent-dark); }
.neginsabz-stat-card--wallet .neginsabz-stat-card__icon{ background: rgba(86,116,58,.14); color: var(--color-primary-dark); }
.neginsabz-stat-card--wallet .neginsabz-stat-card__num{ font-size:14px; }
.neginsabz-stat-card--pin .neginsabz-stat-card__icon{ background: rgba(194,74,51,.12); color: var(--color-paprika); }

.neginsabz-panel{
  background: var(--color-surface); border:1px solid var(--color-border);
  border-radius: var(--radius-lg); padding:20px; margin-bottom:20px; box-shadow: var(--shadow-soft);
}
.neginsabz-panel__head{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; margin-bottom:16px; }
.neginsabz-panel__head h3{ font-size:16px; }
.neginsabz-panel__head a{ font-size:13px; color: var(--color-primary-dark); font-weight:700; }
.neginsabz-panel__hint{ font-size:12px; color: var(--color-text-soft); }

.neginsabz-shortcut-grid{ display:grid; grid-template-columns: repeat(2,1fr); gap:12px; min-width:0; }
@media (min-width: 700px){ .neginsabz-shortcut-grid{ grid-template-columns: repeat(3,1fr); } }
.neginsabz-shortcut{
  display:flex; align-items:center; gap:10px;
  background: var(--color-bg-alt); border-radius: var(--radius-md);
  padding:14px; font-size:13px; font-weight:700; color: var(--color-text);
  transition: var(--transition);
  min-width:0; box-sizing:border-box; white-space:normal; overflow-wrap:break-word; word-break:break-word;
}
.neginsabz-shortcut span{ width:34px; height:34px; border-radius:50%; background:#fff; display:flex; align-items:center; justify-content:center; color: var(--color-primary); flex-shrink:0; }
.neginsabz-shortcut span svg{ width:17px; height:17px; }
.neginsabz-shortcut:hover{ background: var(--color-primary); color:#fff; transform: translateY(-2px); }
.neginsabz-shortcut:hover span{ color: var(--color-primary-dark); }
.neginsabz-shortcut--danger:hover{ background: var(--color-paprika); }

/* --- سفارش‌ها --- */
.neginsabz-order-list{ display:flex; flex-direction:column; gap:14px; }
.neginsabz-order-card{ border:1px solid var(--color-border); border-radius: var(--radius-md); padding:16px; }
.neginsabz-order-card__top{ display:flex; align-items:flex-start; justify-content:space-between; gap:10px; margin-bottom:10px; flex-wrap:wrap; }
.neginsabz-order-card__top strong{ display:block; font-size:14px; margin-bottom:3px; }
.neginsabz-order-card__date{ font-size:12px; color: var(--color-text-soft); }
.neginsabz-status-badge{ font-size:11px; font-weight:700; padding:5px 12px; border-radius: var(--radius-pill); white-space:nowrap; }
.neginsabz-status-badge--pending{ background: rgba(217,125,67,.15); color: var(--color-accent-dark); }
.neginsabz-status-badge--processing{ background: rgba(86,116,58,.15); color: var(--color-primary-dark); }
.neginsabz-status-badge--completed{ background: rgba(86,116,58,.22); color: var(--color-primary-dark); }
.neginsabz-status-badge--cancelled{ background: rgba(194,74,51,.14); color: var(--color-paprika); }

.neginsabz-order-steps{ position:relative; display:flex; justify-content:space-between; margin: 18px 4px 14px; }
.neginsabz-order-steps__line{ position:absolute; top:6px; right:8%; left:8%; height:3px; background: var(--color-border); z-index:0; border-radius:2px; }
.neginsabz-order-steps__line--processing{ background: linear-gradient(to left, var(--color-primary) 50%, var(--color-border) 50%); }
.neginsabz-order-steps__line--completed{ background: var(--color-primary); }
.neginsabz-order-step{ position:relative; z-index:1; flex:1; text-align:center; font-size:11px; color: var(--color-text-soft); }
.neginsabz-order-step span{ display:block; width:14px; height:14px; border-radius:50%; background:#fff; border:3px solid var(--color-border); margin:0 auto 6px; }
.neginsabz-order-step.is-done span{ background: var(--color-primary); border-color: var(--color-primary); }
.neginsabz-order-step.is-active span{ background: var(--color-accent); border-color: var(--color-accent); }
.neginsabz-order-step.is-active{ color: var(--color-text); font-weight:700; }

.neginsabz-order-card__bottom{ display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; padding-top:12px; border-top:1px dashed var(--color-border); }
.neginsabz-order-card__bottom span{ font-size:12px; color: var(--color-text-soft); }
.neginsabz-order-card__bottom strong{ font-size:14px; }
.neginsabz-order-card__bottom .btn{ padding:8px 16px; font-size:12px; }

/* --- وضعیت خالی --- */
.neginsabz-empty{ text-align:center; padding: 40px 16px; }
.neginsabz-empty span{ display:inline-flex; width:56px; height:56px; border-radius:50%; background: var(--color-bg-alt); color: var(--color-primary); align-items:center; justify-content:center; margin-bottom:14px; }
.neginsabz-empty span svg{ width:26px; height:26px; }
.neginsabz-empty p{ color: var(--color-text-soft); margin-bottom:16px; font-size:13.5px; }

/* --- کیف پول --- */
.neginsabz-wallet-hero{
  display:flex; align-items:center; gap:16px;
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));
  color:#fff; border-radius: var(--radius-lg); padding:24px; margin-bottom:14px;
}
.neginsabz-wallet-hero__icon{ width:56px; height:56px; border-radius:50%; background: rgba(255,255,255,.18); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.neginsabz-wallet-hero__icon svg{ width:28px; height:28px; }
.neginsabz-wallet-hero small{ display:block; font-size:12px; opacity:.85; margin-bottom:4px; }
.neginsabz-wallet-hero h2{ font-size:24px; color:#fff; }
.neginsabz-wallet-note{ font-size:12.5px; color: var(--color-text-soft); margin-bottom:20px; line-height:1.9; }

.neginsabz-tx-list{ display:flex; flex-direction:column; gap:10px; }
.neginsabz-tx-row{ display:flex; align-items:center; gap:12px; padding:12px; border-radius: var(--radius-sm); background: var(--color-bg-alt); }
.neginsabz-tx-row__icon{ width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.neginsabz-tx-row__icon svg{ width:17px; height:17px; }
.neginsabz-tx-row__icon--credit{ background: rgba(86,116,58,.16); color: var(--color-primary-dark); }
.neginsabz-tx-row__icon--debit{ background: rgba(194,74,51,.14); color: var(--color-paprika); }
.neginsabz-tx-row__info{ flex:1; min-width:0; }
.neginsabz-tx-row__info strong{ display:block; font-size:13px; }
.neginsabz-tx-row__info span{ font-size:11px; color: var(--color-text-soft); }
.neginsabz-tx-row__amount{ font-weight:800; font-size:13px; white-space:nowrap; }
.neginsabz-tx-row__amount--credit{ color: var(--color-primary-dark); }
.neginsabz-tx-row__amount--debit{ color: var(--color-paprika); }

/* --- آدرس‌ها --- */
.neginsabz-address-grid{ display:grid; grid-template-columns: 1fr; gap:14px; }
@media (min-width: 700px){ .neginsabz-address-grid{ grid-template-columns: repeat(2,1fr); } }
.neginsabz-address-card{ position:relative; border:1px solid var(--color-border); border-radius: var(--radius-md); padding:16px; }
.neginsabz-address-card.is-default{ border-color: var(--color-primary); background: rgba(86,116,58,.04); }
.neginsabz-address-card__default-tag{ position:absolute; top:12px; left:12px; display:flex; align-items:center; gap:4px; font-size:10.5px; font-weight:700; color: var(--color-primary-dark); background: rgba(86,116,58,.14); padding:3px 9px; border-radius: var(--radius-pill); }
.neginsabz-address-card__default-tag svg{ width:11px; height:11px; }
.neginsabz-address-card__label{ display:flex; align-items:center; gap:6px; margin-bottom:8px; color: var(--color-primary-dark); }
.neginsabz-address-card__label svg{ width:16px; height:16px; }
.neginsabz-address-card__label strong{ font-size:14px; }
.neginsabz-address-card__receiver{ font-size:12.5px; margin-bottom:4px; }
.neginsabz-address-card__text{ font-size:12.5px; color: var(--color-text-soft); line-height:1.8; margin-bottom:4px; }
.neginsabz-address-card__postcode{ font-size:11.5px; color: var(--color-text-soft); margin-bottom:10px; }
.neginsabz-address-card__actions{ display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; padding-top:10px; border-top:1px dashed var(--color-border); }
.neginsabz-address-card__actions button{ display:flex; align-items:center; gap:4px; font-size:11.5px; font-weight:700; color: var(--color-text-soft); background: var(--color-bg-alt); border-radius: var(--radius-pill); padding:6px 12px; }
.neginsabz-address-card__actions button svg{ width:12px; height:12px; }
.neginsabz-address-set-default:hover{ background: var(--color-primary); color:#fff; }
.neginsabz-address-edit:hover{ background: var(--color-accent); color:#fff; }
.neginsabz-address-delete:hover{ background: var(--color-paprika); color:#fff; }

/* --- فرم‌ها --- */
.neginsabz-form-row{ margin-bottom:14px; display:flex; flex-direction:column; gap:6px; }
.neginsabz-form-row label{ font-size:12.5px; font-weight:700; color: var(--color-text); }
.neginsabz-form-row input[type=text], .neginsabz-form-row input[type=tel], .neginsabz-form-row input[type=email], .neginsabz-form-row textarea, .neginsabz-form-row select{
  border:1px solid var(--color-border); border-radius: var(--radius-sm); padding:10px 12px; font-family:inherit; font-size:13.5px; background: var(--color-bg); width:100%;
}
.neginsabz-form-row input:focus, .neginsabz-form-row textarea:focus, .neginsabz-form-row select:focus{ outline:none; border-color: var(--color-primary); background:#fff; }
.neginsabz-form-row small{ font-size:11px; color: var(--color-text-soft); }
.neginsabz-form-row--readonly{ background: var(--color-bg-alt); padding:14px; border-radius: var(--radius-md); margin-bottom:18px; }
.neginsabz-form-row--readonly input{ background:#fff; color: var(--color-text-soft); }
.neginsabz-form-row-group{ display:grid; grid-template-columns: 1fr; gap:12px; }
@media (min-width: 560px){ .neginsabz-form-row-group{ grid-template-columns: repeat(2,1fr); } .neginsabz-form-row-group--three{ grid-template-columns: repeat(3,1fr); } }
.neginsabz-checkbox-row{ display:flex; align-items:center; gap:8px; font-size:12.5px; margin-bottom:14px; }
.neginsabz-account-form input[type=submit]{ border:none; cursor:pointer; }
.neginsabz-form-msg{ font-size:12.5px; margin-bottom:10px; }
.neginsabz-form-msg.is-error{ color: var(--color-paprika); }
.neginsabz-form-msg.is-success{ color: var(--color-primary-dark); }

/* --- مودال افزودن/ویرایش آدرس --- */
.neginsabz-modal{ position:fixed; inset:0; z-index:9999; display:none; align-items:flex-end; justify-content:center; }
.neginsabz-modal.is-open{ display:flex; }
.neginsabz-modal__backdrop{ position:absolute; inset:0; background: rgba(59,47,42,.45); backdrop-filter: blur(2px); }
.neginsabz-modal__box{
  position:relative; background: var(--color-surface); width:100%; max-width:560px;
  max-height:92vh; overflow-y:auto; border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  padding:22px; box-shadow: var(--shadow-float); animation: neginsabz-modal-in .25s ease;
}
@media (min-width: 700px){
  .neginsabz-modal{ align-items:center; }
  .neginsabz-modal__box{ border-radius: var(--radius-lg); }
}
@keyframes neginsabz-modal-in{ from{ transform: translateY(30px); opacity:0; } to{ transform:translateY(0); opacity:1; } }
.neginsabz-modal__head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.neginsabz-modal__head h3{ font-size:16px; }
.neginsabz-modal__close{ width:32px; height:32px; border-radius:50%; background: var(--color-bg-alt); display:flex; align-items:center; justify-content:center; color: var(--color-text-soft); }
.neginsabz-modal__close svg{ width:15px; height:15px; }
.neginsabz-modal__actions{ display:flex; gap:10px; margin-top:6px; }
.neginsabz-modal__actions .btn{ flex:1; text-align:center; justify-content:center; }

.neginsabz-account-page .content-area{ padding: 0 0 20px; }

/* --- ایمنی اضافی برای جلوگیری از اسکرول افقی در گوشی‌های با عرض کم (اندروید/آیفون) --- */
.neginsabz-account, .neginsabz-account *{ box-sizing:border-box; }
.neginsabz-panel, .neginsabz-order-card, .neginsabz-address-card, .neginsabz-wallet-hero, .neginsabz-dash-welcome, .neginsabz-tx-row{ min-width:0; }
.neginsabz-order-list, .neginsabz-address-grid{ min-width:0; }
@media (max-width: 420px){
  .neginsabz-stat-grid{ grid-template-columns: 1fr 1fr; gap:10px; }
  .neginsabz-stat-card{ padding:12px; }
  .neginsabz-stat-card__num{ font-size:15px; }
  .neginsabz-shortcut-grid{ gap:10px; }
  .neginsabz-shortcut{ padding:12px; font-size:12px; }
  .neginsabz-panel{ padding:14px; }
}

/* ==============================================================
   16. صفحه سبد خرید — طراحی کارتی اختصاصی (Cart Redesign)
   ============================================================== */
.neginsabz-cart{ padding: 34px 0 60px; max-width:100%; overflow-x:hidden; }
.neginsabz-cart__grid{ display:grid; grid-template-columns: 1fr; gap:22px; align-items:start; min-width:0; }
@media (min-width: 980px){
  .neginsabz-cart__grid{ grid-template-columns: minmax(0,1fr) 360px; }
}

.neginsabz-cart__items{ min-width:0; }
.neginsabz-cart__items-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:16px; padding-bottom:14px; border-bottom:1px dashed var(--color-border); }
.neginsabz-cart__items-head h3{ display:flex; align-items:center; gap:8px; font-size:17px; margin:0; }
.neginsabz-cart__items-head h3 svg{ width:19px; height:19px; color: var(--color-primary); }
.neginsabz-cart__count{ font-size:12.5px; font-weight:700; color: var(--color-primary-dark); background: rgba(86,116,58,.1); padding:5px 12px; border-radius: var(--radius-pill); white-space:nowrap; }

.neginsabz-cart__list{ display:flex; flex-direction:column; gap:14px; }

/*
 * ردیف سبد خرید — یک ساختار واحد برای همه‌ی اندازه‌های صفحه
 * (موبایل/تبلت/دسکتاپ). دیگر هیچ ستون جداگانه‌ی «قیمت واحد» با
 * عرض ثابت در دسکتاپ اضافه نمی‌شود (همان چیزی که در اندروید بیرون
 * می‌زد و در دسکتاپ هم روی نام محصول می‌نشست)؛ قیمت واحد همیشه
 * به‌صورت یک خط توضیح زیر نام محصول نمایش داده می‌شود و مبلغ نهایی
 * (جمع جزء) در ستون subtotal است.
 */
.neginsabz-cart-row{
  position:relative; display:grid;
  grid-template-columns: 76px 1fr auto; grid-template-areas: "thumb info remove" "thumb qty subtotal";
  gap: 6px 14px; align-items:center;
  border:1px solid var(--color-border); border-radius: var(--radius-md); padding:14px;
  background: var(--color-bg); transition: var(--transition);
  max-width:100%; overflow:hidden; box-sizing:border-box;
}
.neginsabz-cart-row:hover{ box-shadow: var(--shadow-soft); border-color: var(--color-primary-light); }

.neginsabz-cart-row__thumb{ width:76px; height:76px; border-radius: var(--radius-sm); overflow:hidden; background:#fff; display:block; }
.neginsabz-cart-row__thumb img{ width:100%; height:100%; object-fit:cover; }

/* بخش عکس + قیمت زیر آن (ساده، خنثی و کاملاً خوانا، هیچ‌وقت بیرون نمی‌زند) */
.neginsabz-cart-row__media{
  grid-area:thumb; display:flex; flex-direction:column; align-items:center; gap:6px; max-width:76px;
}
.neginsabz-cart-row__price{
  display:block; width:100%; max-width:76px; text-align:center;
  font-size:12.5px; font-weight:700; color: var(--color-text);
  white-space:normal; overflow-wrap:anywhere; word-break:break-word;
}
.neginsabz-cart-row__price .woocommerce-Price-amount,
.neginsabz-cart-row__price bdi{ white-space:normal; overflow-wrap:anywhere; word-break:break-word; }
.neginsabz-cart-row__price ins{ text-decoration:none; }
.neginsabz-cart-row__price del{ font-size:0.85em; font-weight:400; opacity:.55; color: var(--color-text-soft); margin-inline-end:4px; }

.neginsabz-cart-row__info{ grid-area:info; min-width:0; max-width:100%; overflow:hidden; }
.neginsabz-cart-row__name{
  font-weight:700; font-size:14.5px; color: var(--color-text);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  overflow-wrap:anywhere; word-break:break-word;
}
.neginsabz-cart-row__name:hover{ color: var(--color-primary-dark); }

.neginsabz-cart-row__qty{ grid-area:qty; min-width:0; }

.neginsabz-cart-row__subtotal{
  grid-area:subtotal; justify-self:start; min-width:0; max-width:100%;
  font-weight:800; color: var(--color-accent-dark); font-size:14.5px;
  white-space:normal; overflow-wrap:anywhere; word-break:break-word;
}

.neginsabz-cart-row__remove{
  grid-area:remove; justify-self:end; align-self:start; width:30px; height:30px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; color: var(--color-text-soft);
  background: var(--color-bg-alt); transition: var(--transition);
}
.neginsabz-cart-row__remove:hover{ background: var(--color-paprika); color:#fff; }
.neginsabz-cart-row__remove svg{ width:14px; height:14px; }

@media (min-width: 620px){
  .neginsabz-cart-row{ grid-template-columns: 84px 1fr auto auto 40px; grid-template-areas: "thumb info qty subtotal remove"; }
  .neginsabz-cart-row__subtotal{ justify-self:start; min-width:90px; }
}

/* استپر تعداد (+/-) */
.neginsabz-qty-stepper{ display:inline-flex; align-items:center; gap:0; border:1.5px solid var(--color-border); border-radius: var(--radius-pill); overflow:hidden; background:#fff; }
.neginsabz-qty-stepper input.qty{
  width:42px; text-align:center; border:none; background:transparent; font-weight:700; font-size:14px;
  padding:8px 2px; -moz-appearance:textfield;
}
.neginsabz-qty-stepper input.qty::-webkit-inner-spin-button, .neginsabz-qty-stepper input.qty::-webkit-outer-spin-button{ -webkit-appearance:none; margin:0; }
.neginsabz-qty-btn{
  width:32px; height:32px; flex-shrink:0; border:none; background: var(--color-bg-alt); color: var(--color-primary-dark);
  font-size:17px; font-weight:700; display:flex; align-items:center; justify-content:center; transition: var(--transition);
}
.neginsabz-qty-btn:hover{ background: var(--color-primary); color:#fff; }

/* ردیف کوپن + دکمه به‌روزرسانی */
.neginsabz-cart__coupon-row{ margin-top:18px; padding-top:16px; border-top:1px dashed var(--color-border); display:flex; flex-wrap:wrap; gap:12px; align-items:flex-start; }
.neginsabz-cart__coupon-toggle{
  display:flex; align-items:center; gap:8px; font-size:13.5px; font-weight:700; color: var(--color-primary-dark);
  background:none; border:none; padding:8px 0;
}
.neginsabz-cart__coupon-toggle svg{ width:15px; height:15px; transition: transform .2s ease; }
.neginsabz-cart__coupon-toggle.is-open svg{ transform: rotate(45deg); }
.neginsabz-cart__coupon-box{ display:none; flex-wrap:wrap; gap:10px; width:100%; background: var(--color-bg-alt); padding:14px; border-radius: var(--radius-md); }
.neginsabz-cart__coupon-box.is-open{ display:flex; }
.neginsabz-cart__coupon-box input#coupon_code{
  flex:1; min-width:160px; border:1.5px solid var(--color-border); border-radius: var(--radius-sm); padding:11px 14px; background:#fff;
}
/* دکمه‌ی «به‌روزرسانی سبد خرید» دیگر به کاربر نشان داده نمی‌شود؛ چون
   تغییر تعداد به‌صورت خودکار همین دکمه را (از طریق اسکریپت cart.js)
   به‌محض تغییر مقدار کلیک می‌کند، دکمه باید در صفحه و «قابل کلیک»
   باقی بماند، فقط از دید کاربر مخفی است. */
.neginsabz-cart__update-btn{
  position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important;
  overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important;
}

/* سایدبار جمع کل */
.neginsabz-cart__totals h3{ display:flex; align-items:center; gap:8px; font-size:16px; }
.neginsabz-cart__totals h3 svg{ width:18px; height:18px; color: var(--color-primary); }
.neginsabz-cart__totals-table{ width:100%; border-collapse:collapse; margin:14px 0; }
.neginsabz-cart__totals-table th, .neginsabz-cart__totals-table td{ padding:10px 0; font-size:13.5px; border-top:1px dashed var(--color-border); text-align:right; font-weight:600; color: var(--color-text-soft); }
.neginsabz-cart__totals-table th{ font-weight:600; }
.neginsabz-cart__totals-table td{ text-align:left; font-weight:700; color: var(--color-text); }
.neginsabz-cart__totals-table tr.order-total th, .neginsabz-cart__totals-table tr.order-total td{ font-size:17px; font-weight:800; color: var(--color-accent-dark); border-top:2px solid var(--color-border); }
.neginsabz-cart__totals-table tr.shipping td ul{ margin:0; }
/* خط «ارسال به آدرس ... / تغییر آدرس» که ووکامرس به‌صورت پیش‌فرض زیر
   روش‌های ارسال نمایش می‌دهد، در صفحه سبد خرید نمایش داده نشود. */
.neginsabz-cart .woocommerce-shipping-destination{ display:none !important; }
.neginsabz-cart__proceed .checkout-button{
  display:flex; align-items:center; justify-content:center; width:100%; background: var(--color-primary) !important;
  color:#fff !important; padding:15px !important; border-radius: var(--radius-pill) !important; font-weight:800 !important; font-size:15px !important;
}
.neginsabz-cart__proceed .checkout-button:hover{ background: var(--color-primary-dark) !important; }
.neginsabz-cart__secure-note{ display:flex; align-items:center; gap:6px; justify-content:center; font-size:11.5px; color: var(--color-text-soft); margin: 12px 0 0; }
.neginsabz-cart__secure-note svg{ width:13px; height:13px; color: var(--color-primary); }

.woocommerce-cart .woocommerce-shipping-calculator .shipping-calculator-form{ margin-top:8px; }
.woocommerce-cart .woocommerce-shipping-calculator select,
.woocommerce-cart .woocommerce-shipping-calculator input{
  width:100%; margin-bottom:8px; border:1.5px solid var(--color-border); border-radius: var(--radius-sm); padding:9px 12px; background:#fff;
}
.woocommerce-cart .woocommerce-shipping-calculator .button{
  background: var(--color-primary); color:#fff; border-radius: var(--radius-pill); padding:9px 18px; font-size:12.5px; font-weight:700;
}

/* سبد خالی */
.cart-empty.woocommerce-info,
.woocommerce .cart-empty{
  background: var(--color-surface); border:1px solid var(--color-border); border-radius: var(--radius-lg);
  padding: 40px 24px; text-align:center; box-shadow: var(--shadow-soft); font-size:15px; list-style:none;
}
.woocommerce .return-to-shop .button{
  display:inline-flex; margin-top:14px; background: var(--color-primary); color:#fff; padding:12px 26px;
  border-radius: var(--radius-pill); font-weight:700;
}

@media (max-width: 619px){
  .neginsabz-cart-row{ padding:12px; }
  .neginsabz-cart-row__thumb{ width:64px; height:64px; }
  .neginsabz-cart-row__media{ max-width:64px; }
  .neginsabz-cart-row__price{ max-width:64px; font-size:11.5px; }
}

/* ==============================================================
   17. صفحه پرداخت — طراحی اختصاصی نگین سبز (Checkout Redesign)
   ============================================================== */
.neginsabz-checkout{ padding: 30px 0 70px; max-width:100%; overflow-x:hidden; }

.neginsabz-checkout__steps{ display:flex; align-items:center; gap:10px; margin-bottom:24px; font-size:13px; font-weight:700; color: var(--color-text-soft); }
.neginsabz-checkout__step{ display:flex; align-items:center; gap:8px; }
.neginsabz-checkout__step span{ width:24px; height:24px; border-radius:50%; background: var(--color-bg-alt); color: var(--color-text-soft); display:flex; align-items:center; justify-content:center; font-size:12px; }
.neginsabz-checkout__step.is-active{ color: var(--color-primary-dark); }
.neginsabz-checkout__step.is-active span{ background: var(--color-primary); color:#fff; }
.neginsabz-checkout__step-line{ flex:1; max-width:60px; height:2px; background: var(--color-border); }

/* نوار پیشرفتِ خرید (سبد → آدرس → پرداخت) — نمایشی، در بالای سبد خرید و پرداخت */
.neginsabz-purchase-steps{ display:flex; align-items:center; justify-content:center; gap:10px; margin:0 0 24px; font-size:13px; font-weight:700; color: var(--color-text-soft); flex-wrap:wrap; }
.neginsabz-purchase-steps__step{ display:flex; align-items:center; gap:8px; white-space:nowrap; }
.neginsabz-purchase-steps__num{ width:26px; height:26px; border-radius:50%; background: var(--color-bg-alt); color: var(--color-text-soft); display:flex; align-items:center; justify-content:center; font-size:12px; flex-shrink:0; }
.neginsabz-purchase-steps__step.is-active{ color: var(--color-primary-dark); }
.neginsabz-purchase-steps__step.is-active .neginsabz-purchase-steps__num{ background: var(--color-primary); color:#fff; }
.neginsabz-purchase-steps__step.is-done{ color: var(--color-primary-dark); }
.neginsabz-purchase-steps__step.is-done .neginsabz-purchase-steps__num{ background: var(--color-primary-light, var(--color-bg-alt)); color: var(--color-primary-dark); }
.neginsabz-purchase-steps__step.is-done .neginsabz-purchase-steps__num svg{ width:13px; height:13px; }
.neginsabz-purchase-steps__line{ width:40px; max-width:40px; height:2px; background: var(--color-border); }
.neginsabz-purchase-steps__line.is-done{ background: var(--color-primary); }
@media (max-width: 480px){
	.neginsabz-purchase-steps{ font-size:12px; gap:6px; }
	.neginsabz-purchase-steps__line{ width:20px; max-width:20px; }
}

.neginsabz-checkout__grid{ display:grid; grid-template-columns:1fr; gap:22px; align-items:start; min-width:0; }
@media (min-width: 980px){
  .neginsabz-checkout__grid{ grid-template-columns: minmax(0,1fr) 380px; }
  .neginsabz-checkout__side{ position:sticky; top: 100px; }
}

.neginsabz-checkout__main{ min-width:0; display:flex; flex-direction:column; gap:20px; }

.neginsabz-checkout__address-picker .neginsabz-panel__head h3,
.neginsabz-checkout__fields-panel .neginsabz-panel__head h3,
.neginsabz-checkout__notes-panel .neginsabz-panel__head h3{ display:flex; align-items:center; gap:8px; margin:0; font-size:16px; }
.neginsabz-checkout__address-picker .neginsabz-panel__head h3 svg,
.neginsabz-checkout__fields-panel .neginsabz-panel__head h3 svg,
.neginsabz-checkout__notes-panel .neginsabz-panel__head h3 svg{ width:18px; height:18px; color: var(--color-primary); }
.neginsabz-checkout__new-address-btn{ font-size:12.5px; padding:8px 16px; }
.neginsabz-checkout__new-address-btn svg{ width:13px; height:13px; }

.neginsabz-checkout__address-grid{ display:grid; grid-template-columns:1fr; gap:12px; margin-top:6px; }
@media (min-width: 560px){ .neginsabz-checkout__address-grid{ grid-template-columns: 1fr 1fr; } }
.neginsabz-checkout__address-card{
  text-align:right; width:100%; background: var(--color-bg); cursor:pointer;
}
.neginsabz-checkout__address-card.is-selected{ border-color: var(--color-primary); background: rgba(86,116,58,.06); box-shadow: 0 0 0 2px rgba(86,116,58,.25) inset; }
.neginsabz-checkout__manual-hint{ margin-top:12px; background: var(--color-bg-alt); padding:10px 14px; border-radius: var(--radius-sm); }

.neginsabz-checkout__fields-panel{ transition: var(--transition); }
/* وقتی کاربر آدرس ذخیره‌شده دارد، این باکس اصلاً نمایش داده نمی‌شود تا
   گیج‌کننده نباشد؛ فقط با زدن دکمه‌ی «آدرس جدید» ظاهر می‌شود. */
.neginsabz-checkout__fields-panel.is-hidden{ display:none; }

.neginsabz-checkout__name-row{ margin-bottom:16px; }
.neginsabz-checkout__name-row label{ display:block; font-weight:700; font-size:13.5px; margin-bottom:6px; }
.neginsabz-checkout__name-row input{
  width:100%; border:1.5px solid var(--color-border); border-radius: var(--radius-sm); padding:12px 14px;
  font-size:14.5px; background: var(--color-bg); transition: var(--transition);
}
.neginsabz-checkout__name-row input:focus{ outline:none; border-color: var(--color-primary); background:#fff; }

/* فیلدهای پیش‌فرض ووکامرس داخل قالب اختصاصی */
.neginsabz-checkout .woocommerce-billing-fields > h3:first-child{ display:none; }
.neginsabz-checkout .form-row{ margin-bottom:16px; }
.neginsabz-checkout .form-row label{ font-weight:700; font-size:13.5px; margin-bottom:6px; display:block; color: var(--color-text); }
.neginsabz-checkout .form-row .required{ color: var(--color-paprika); text-decoration:none; }
.neginsabz-checkout .form-row input.input-text,
.neginsabz-checkout .form-row select,
.neginsabz-checkout .form-row textarea{
  width:100%; border:1.5px solid var(--color-border); border-radius: var(--radius-sm);
  padding:12px 14px; font-size:14.5px; background: var(--color-bg); transition: var(--transition); font-family:inherit;
}
.neginsabz-checkout .form-row textarea{ min-height:78px; resize:vertical; }
.neginsabz-checkout .form-row input.input-text:focus,
.neginsabz-checkout .form-row select:focus,
.neginsabz-checkout .form-row textarea:focus{ outline:none; border-color: var(--color-primary); background:#fff; }
.neginsabz-checkout .form-row.neginsabz-hidden-field{ display:none !important; }
.neginsabz-checkout .select2-container{ width:100% !important; }

.neginsabz-checkbox-row{ display:flex; align-items:center; gap:8px; font-size:13px; color: var(--color-text-soft); margin-top:10px; }
.neginsabz-checkbox-row input{ accent-color: var(--color-primary); width:16px; height:16px; }

/* توضیحات سفارش */
.neginsabz-checkout__notes-panel .form-row{ margin-bottom:0; }

/* خلاصه سفارش (سایدبار) */
.neginsabz-checkout__summary-panel #order_review_heading{ display:flex; align-items:center; gap:8px; font-size:16px; margin-bottom:14px; }
.neginsabz-checkout__summary-panel #order_review_heading::before{ content:''; }
.woocommerce-checkout-review-order-table{ width:100%; border-collapse:collapse; }
.woocommerce-checkout-review-order-table thead{ display:none; }
.woocommerce-checkout-review-order-table th, .woocommerce-checkout-review-order-table td{
  padding:10px 0; font-size:13px; border-top:1px dashed var(--color-border); text-align:right;
}
.woocommerce-checkout-review-order-table td.product-total{ text-align:left; font-weight:700; }
.woocommerce-checkout-review-order-table .cart-subtotal th, .woocommerce-checkout-review-order-table .cart-subtotal td,
.woocommerce-checkout-review-order-table tr.shipping th, .woocommerce-checkout-review-order-table tr.shipping td,
.woocommerce-checkout-review-order-table tr.cart-discount th, .woocommerce-checkout-review-order-table tr.cart-discount td{ font-size:13px; color: var(--color-text-soft); }
.woocommerce-checkout-review-order-table tr.order-total th, .woocommerce-checkout-review-order-table tr.order-total td{
  font-size:18px; font-weight:800; color: var(--color-accent-dark); border-top:2px solid var(--color-border);
}
.woocommerce-checkout-review-order-table .product-name .product-quantity{ color: var(--color-text-soft); font-weight:600; font-size:12px; }

#shipping_method{ list-style:none; margin:6px 0 0; padding:0; }
#shipping_method li{
  border:1.5px solid var(--color-border); border-radius: var(--radius-md); padding:12px 14px; margin-bottom:8px;
  background: var(--color-bg); transition: var(--transition);
}
#shipping_method li label{ font-weight:700; font-size:13.5px; margin-right:8px; }
#shipping_method li input[type="radio"]{ accent-color: var(--color-primary); }
#shipping_method li .woocommerce-Price-amount{ font-weight:800; color: var(--color-accent-dark); }

#payment{ background:transparent !important; padding:0 !important; }
#payment ul.payment_methods{ list-style:none; margin:0 0 14px; padding:0; display:flex; flex-direction:column; gap:10px; }
#payment ul.payment_methods li.payment_method{
  border:1.5px solid var(--color-border); border-radius: var(--radius-md); padding:13px 15px; background: var(--color-bg); transition: var(--transition);
}
#payment ul.payment_methods li.payment_method label{ font-weight:700; font-size:13.5px; cursor:pointer; }
#payment ul.payment_methods li.payment_method input[type="radio"]{ accent-color: var(--color-primary); margin-left:8px; }
#payment ul.payment_methods li.payment_method img{ height:20px; vertical-align:middle; margin-right:6px; }
#payment .payment_box{ background: var(--color-bg-alt); border-radius: var(--radius-sm); margin-top:10px; font-size:13px; color: var(--color-text-soft); }
#payment .payment_box::before{ display:none; }
#payment .place-order{ margin-top:6px; }
#payment #place_order{
  width:100%; background: var(--color-primary) !important; color:#fff !important; padding:16px !important;
  border-radius: var(--radius-pill) !important; font-size:15.5px !important; font-weight:800 !important; border:none !important;
}
#payment #place_order:hover{ background: var(--color-primary-dark) !important; }
.woocommerce-terms-and-conditions-wrapper{ font-size:12.5px; margin-bottom:10px; }

.neginsabz-checkout__secure-note{ display:flex; align-items:center; gap:6px; justify-content:center; font-size:11.5px; color: var(--color-text-soft); margin: 14px 0 0; }
.neginsabz-checkout__secure-note svg{ width:13px; height:13px; color: var(--color-primary); }

.woocommerce-checkout .woocommerce-NoticeGroup{ margin-bottom:18px; }
.woocommerce-checkout .woocommerce-error{
  background: rgba(194,74,51,.08); border: 1px solid rgba(194,74,51,.3); color: var(--color-paprika);
  border-radius: var(--radius-md); padding:16px 18px; list-style:none;
}
.woocommerce-checkout .woocommerce-error li{ margin-bottom:4px; }

@media (max-width: 619px){
  .neginsabz-panel{ padding:16px; }
  .neginsabz-checkout__address-card{ padding:14px; }
}

/* محافظ اضافه: مخفی‌کردن هر فیلد «تلفن» اضافی/تکراری غیر از فیلد اصلیِ
   billing_phone (مثلاً فیلد جدیدتر shipping_phone در نسخه‌های اخیر ووکامرس)
   در صورتی که به هر دلیلی (کش، افزونه‌ی دیگر) هنوز در فرم رندر شود. */
.neginsabz-checkout #shipping_phone_field,
.neginsabz-checkout .shipping_phone_field,
.neginsabz-checkout [id$="_phone_field"]:not(#billing_phone_field){
  display:none !important;
}

/* ==============================================================
   TERMS  |  صفحه‌ی «قوانین و مقررات» (page-terms.php)
   ============================================================== */
.terms-banner{ position: relative; overflow: hidden; }
.terms-banner::before{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(480px 200px at 12% 0%, rgba(86,116,58,.10), transparent 60%),
    radial-gradient(480px 220px at 88% 100%, rgba(217,125,67,.12), transparent 60%);
  pointer-events:none;
}
.terms-banner .container{ position:relative; z-index:1; }
.terms-banner h1{
  display:flex; align-items:center; justify-content:center; gap:12px; flex-wrap:wrap;
}
.terms-banner__icon{
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; border-radius: var(--radius-md);
  background: var(--color-primary); color:#fff; flex-shrink:0;
}
.terms-banner__icon svg{ width:24px; height:24px; }
.terms-banner__meta{
  color: var(--color-text-soft); font-size:13.5px; margin:0;
}

.terms-section{ padding-top: 44px; }

.terms-card{
  position: relative;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  overflow: hidden;
  max-width: 880px;
  margin: 0 auto;
}
.terms-card__accent{
  height: 6px; width:100%;
  background: linear-gradient(90deg, var(--color-primary), var(--color-accent) 55%, var(--color-paprika));
}
.terms-card__inner{
  padding: 40px 44px 44px;
}

/* تایپوگرافی محتوای قوانین (چه از ادیتور کلاسیک، چه گوتنبرگ) */
.terms-card__inner h1,
.terms-card__inner h2,
.terms-card__inner h3{
  color: var(--color-primary-dark);
}
.terms-card__inner h2{
  font-size: 21px;
  display:flex; align-items:center; gap:10px;
  padding-bottom: 12px;
  margin-top: 34px;
  border-bottom: 2px dashed var(--color-border);
}
.terms-card__inner h2:first-child{ margin-top: 0; }
.terms-card__inner h3{ font-size: 17px; color: var(--color-accent-dark); margin-top: 20px; }
.terms-card__inner p{ color: var(--color-text); font-size: 15.5px; }
.terms-card__inner p:first-of-type{
  font-size: 16.5px; color: var(--color-text-soft);
  background: var(--color-bg-alt);
  border-radius: var(--radius-md);
  padding: 16px 18px;
  border-inline-start: 4px solid var(--color-primary);
}
.terms-card__inner ul,
.terms-card__inner ol{
  margin: 0 0 18px; padding: 0;
}
.terms-card__inner ul{ list-style:none; }
.terms-card__inner ul > li{
  position: relative;
  padding: 8px 30px 8px 4px;
  color: var(--color-text);
  line-height: 1.85;
}
.terms-card__inner ul > li::before{
  content:"✓";
  position:absolute; right:0; top:8px;
  width:20px; height:20px; border-radius:50%;
  background: rgba(86,116,58,.14); color: var(--color-primary-dark);
  font-size:12px; font-weight:800; display:flex; align-items:center; justify-content:center;
}
.terms-card__inner ol{
  counter-reset: nsb-terms-counter;
  padding-inline-start: 0;
}
.terms-card__inner ol > li{
  position:relative; list-style:none;
  counter-increment: nsb-terms-counter;
  padding: 6px 38px 6px 4px;
  color: var(--color-text); line-height:1.85;
}
.terms-card__inner ol > li::before{
  content: counter(nsb-terms-counter);
  position:absolute; right:0; top:5px;
  width:24px; height:24px; border-radius:50%;
  background: var(--color-accent); color:#fff;
  font-size:12.5px; font-weight:800; display:flex; align-items:center; justify-content:center;
}
.terms-card__inner strong{ color: var(--color-primary-dark); }
.terms-card__inner blockquote{
  margin: 18px 0; padding: 14px 18px;
  background: rgba(210,74,51,.07);
  border-inline-start: 4px solid var(--color-paprika);
  border-radius: var(--radius-sm);
  color: var(--color-text);
  font-size: 14.5px;
}
.terms-card__inner a{ color: var(--color-primary-dark); font-weight:700; text-decoration: underline; text-underline-offset:3px; }
.terms-card__inner hr{ border:none; border-top:1px dashed var(--color-border); margin: 28px 0; }

.terms-footnote{
  max-width: 880px; margin: 22px auto 0;
  text-align:center; font-size: 13px; color: var(--color-text-soft);
}

/* واکنش‌گرا: موبایل (اندروید) و صفحه‌های کوچک ویندوز */
@media (max-width: 782px){
  .terms-card__inner{ padding: 26px 20px 30px; }
  .terms-card__inner h2{ font-size: 18px; }
  .terms-card__inner p:first-of-type{ font-size:15px; padding:14px 16px; }
  .terms-banner{ padding: 0; }
}
@media (max-width: 480px){
  .terms-banner__icon{ width:38px; height:38px; }
  .terms-banner__icon svg{ width:20px; height:20px; }
  .terms-card__inner{ padding: 20px 14px 26px; }
}

/* ==============================================================
   17. صفحه‌ی «سفارش ثبت شد» + صورتحساب (Thank you / Invoice)
   ============================================================== */
.neginsabz-thankyou{ padding: 34px 0 60px; }
.neginsabz-thankyou__banner{
  display:flex; align-items:center; gap:16px;
  background: var(--color-surface); border:1px solid var(--color-border);
  border-radius: var(--radius-lg); padding:22px; margin-bottom:22px; box-shadow: var(--shadow-soft);
}
.neginsabz-thankyou__banner-icon{
  flex-shrink:0; width:52px; height:52px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background: rgba(86,116,58,.14); color: var(--color-primary-dark);
}
.neginsabz-thankyou__banner-icon svg{ width:26px; height:26px; }
.neginsabz-thankyou__banner--cancelled .neginsabz-thankyou__banner-icon,
.neginsabz-thankyou__banner--pending .neginsabz-thankyou__banner-icon{
  background: rgba(194,74,51,.14); color: var(--color-paprika);
}
.neginsabz-thankyou__banner h2{ font-size:19px; margin-bottom:4px; }
.neginsabz-thankyou__banner p{ color: var(--color-text-soft); font-size:13.5px; margin:0; }

.neginsabz-thankyou__grid{ display:grid; grid-template-columns: 1fr; gap:22px; align-items:start; }
@media (min-width: 980px){
  .neginsabz-thankyou__grid{ grid-template-columns: 1fr 320px; }
}

.neginsabz-thankyou__overview{
  display:grid; grid-template-columns: repeat(2, 1fr); gap:16px;
}
@media (min-width: 560px){
  .neginsabz-thankyou__overview{ grid-template-columns: repeat(4, 1fr); }
}
.neginsabz-thankyou__overview-item{ display:flex; flex-direction:column; gap:6px; }
.neginsabz-thankyou__overview-item span{ font-size:12px; color: var(--color-text-soft); }
.neginsabz-thankyou__overview-item strong{ font-size:14.5px; }

.neginsabz-thankyou__items-table{ width:100%; border-collapse:collapse; }
.neginsabz-thankyou__items-table th,
.neginsabz-thankyou__items-table td{ padding:12px 8px; border-bottom:1px solid var(--color-border); text-align:right; font-size:13.5px; }
.neginsabz-thankyou__items-table thead th{ color: var(--color-text-soft); font-weight:700; font-size:12.5px; }
.neginsabz-thankyou__items-table tfoot th{ font-weight:700; }
.neginsabz-thankyou__items-table tr.order-total th,
.neginsabz-thankyou__items-table tr.order-total td{ font-size:16px; font-weight:800; color: var(--color-primary-dark); border-bottom:none; }
.neginsabz-thankyou__item-meta{ font-size:12px; color: var(--color-text-soft); margin-top:4px; }
.neginsabz-thankyou__note{ margin-top:14px; font-size:13px; color: var(--color-text-soft); }

.neginsabz-thankyou__address-receiver{ font-weight:700; margin-bottom:6px; }
.neginsabz-thankyou__address-text{ color: var(--color-text-soft); font-size:13.5px; line-height:1.9; }

.neginsabz-thankyou__actions .btn{ display:flex; }

@media (max-width: 619px){
  .neginsabz-thankyou__items-table thead{ display:none; }
  .neginsabz-thankyou__items-table td{ display:flex; justify-content:space-between; border-bottom:none; padding:6px 0; }
  .neginsabz-thankyou__items-table td::before{ content: attr(data-title); color: var(--color-text-soft); font-size:12px; }
  .neginsabz-thankyou__items-table tr{ display:block; border-bottom:1px solid var(--color-border); padding:10px 0; }
}

/* ===========================
   19. دکمه شناور تماس (لوگوی متحرک)
   =========================== */
.fab-contact{
  position: fixed;
  bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  z-index: 780;
}
.fab-contact--right{ right: 16px; }
.fab-contact--left{ left: 16px; }

body.has-bottom-nav .fab-contact{
  bottom: calc(12px + var(--bottomnav-h) + var(--fab-gap, 14px) + env(safe-area-inset-bottom, 0px));
}

.fab-contact__toggle{
  width: var(--fab-size, 60px); height: var(--fab-size, 60px);
  border-radius: 50%; position: relative; padding: 0; overflow: visible;
  background: var(--color-surface); border: 2px solid var(--color-primary);
  display: flex; align-items: center; justify-content: center;
  box-shadow: var(--shadow-float); cursor: pointer;
  transition: transform var(--transition), border-color var(--transition), box-shadow var(--transition);
  animation: fab-bounce 2.6s ease-in-out infinite;
}
.fab-contact__toggle:hover,
.fab-contact__toggle:focus-visible{
  transform: scale(1.07);
  border-color: var(--color-primary-light);
  box-shadow: 0 14px 34px rgba(86,116,58,.4);
}
.fab-contact__ring{
  position: absolute; inset: -7px; border-radius: 50%;
  border: 2px solid var(--color-primary-light);
  opacity: .55; pointer-events: none;
  animation: fab-ring-pulse 2.2s ease-out infinite;
}
.fab-contact__logo-img{
  width: 62%; height: 62%; object-fit: contain; border-radius: 50%;
  transition: opacity var(--transition), transform var(--transition);
}
.fab-contact__logo-fallback{
  width: 56%; height: 56%; color: var(--color-primary);
  display: flex; align-items: center; justify-content: center;
  transition: opacity var(--transition), transform var(--transition);
}
.fab-contact__logo-fallback svg{ width: 100%; height: 100%; }
.fab-contact__close-icon{
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  color: var(--color-primary); opacity: 0; transform: scale(.5) rotate(-90deg); pointer-events: none;
  transition: opacity var(--transition), transform var(--transition);
}
.fab-contact__close-icon svg{ width: 44%; height: 44%; }

.fab-contact.is-open .fab-contact__toggle{ animation: none; border-color: var(--color-primary-light); }
.fab-contact.is-open .fab-contact__ring{ animation: none; opacity: 0; }
.fab-contact.is-open .fab-contact__logo-img,
.fab-contact.is-open .fab-contact__logo-fallback{ opacity: 0; transform: scale(.5) rotate(90deg); }
.fab-contact.is-open .fab-contact__close-icon{ opacity: 1; transform: scale(1) rotate(0); }

.fab-contact__menu{
  position: absolute; bottom: calc(var(--fab-size, 60px) + 14px);
  display: flex; flex-direction: column; gap: 10px; pointer-events: none;
}
.fab-contact--right .fab-contact__menu{ right: 0; align-items: flex-end; }
.fab-contact--left .fab-contact__menu{ left: 0; align-items: flex-start; }

.fab-contact__option{
  display: flex; align-items: center; gap: 10px;
  background: var(--color-surface); border: 1px solid var(--color-border);
  border-radius: var(--radius-pill); padding: 9px 16px 9px 9px;
  box-shadow: var(--shadow-card); white-space: nowrap;
  color: var(--color-text); font-weight: 700; font-size: 13.5px;
  opacity: 0; transform: translateY(14px) scale(.9);
  transition: transform .3s cubic-bezier(.34,1.56,.64,1), opacity .25s ease, border-color .2s ease, box-shadow .2s ease, color .2s ease;
  transition-delay: calc(var(--fab-i, 0) * 0.05s);
}
.fab-contact--left .fab-contact__option{ flex-direction: row-reverse; padding: 9px 9px 9px 16px; }
.fab-contact__option:hover,
.fab-contact__option:focus-visible{
  border-color: var(--color-primary-light);
  box-shadow: 0 10px 26px rgba(86,116,58,.3);
  color: var(--color-primary-dark);
}
.fab-contact__option:hover .fab-contact__icon,
.fab-contact__option:focus-visible .fab-contact__icon{
  background: var(--color-primary); color: #fff;
}
.fab-contact__icon{
  width: 34px; height: 34px; border-radius: 50%; flex: 0 0 auto;
  background: var(--color-bg-alt); color: var(--color-primary);
  display: flex; align-items: center; justify-content: center;
  transition: background var(--transition), color var(--transition);
}
.fab-contact__icon svg{ width: 18px; height: 18px; }
.fab-contact__icon img{ width: 18px; height: 18px; object-fit: contain; border-radius: 4px; }

.fab-contact.is-open .fab-contact__menu{ pointer-events: auto; }
.fab-contact.is-open .fab-contact__option{ opacity: 1; transform: translateY(0) scale(1); }

@keyframes fab-bounce{
  0%, 100%{ transform: translateY(0); }
  50%{ transform: translateY(-6px); }
}
@keyframes fab-ring-pulse{
  0%{ transform: scale(.9); opacity: .6; }
  70%{ transform: scale(1.35); opacity: 0; }
  100%{ opacity: 0; }
}

@media (prefers-reduced-motion: reduce){
  .fab-contact__toggle{ animation: none; }
  .fab-contact__ring{ animation: none; }
}

@media (min-width: 880px){
  .fab-contact{ bottom: calc(22px + env(safe-area-inset-bottom, 0px)) !important; }
}

/* ===========================
   19b. دکمه شناور بازگشت به بالا
   =========================== */
.scroll-top{
  position: fixed;
  right: 16px;
  bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  z-index: 780;
  width: 48px; height: 48px; padding: 0; border: none; border-radius: 50%;
  background: var(--color-surface);
  box-shadow: var(--shadow-float);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  opacity: 0; visibility: hidden; pointer-events: none;
  transform: translateY(14px) scale(.85);
  transition: opacity .3s ease, transform .3s cubic-bezier(.34,1.56,.64,1), visibility .3s, box-shadow var(--transition);
}
body.has-bottom-nav .scroll-top{
  bottom: calc(12px + var(--bottomnav-h) + var(--fab-gap, 14px) + env(safe-area-inset-bottom, 0px));
}
.scroll-top.is-visible{
  opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0) scale(1);
}
.scroll-top:hover,
.scroll-top:focus-visible{
  box-shadow: 0 14px 34px rgba(86,116,58,.35);
}
.scroll-top:active{ transform: scale(.94); }
.scroll-top__ring{
  position: absolute; inset: 0; width: 100%; height: 100%;
  transform: rotate(-90deg); /* شروع حلقه از بالا */
}
.scroll-top__ring-track{
  fill: none; stroke: var(--color-bg-alt); stroke-width: 3;
}
.scroll-top__ring-fill{
  fill: none; stroke: var(--color-accent); stroke-width: 3; stroke-linecap: round;
  stroke-dasharray: 131.9;
  stroke-dashoffset: 131.9;
  transition: stroke-dashoffset .1s linear;
}
.scroll-top__icon{
  position: relative; z-index: 1;
  width: 20px; height: 20px; color: var(--color-primary);
  display: flex; align-items: center; justify-content: center;
  transition: transform var(--transition);
}
.scroll-top:hover .scroll-top__icon{ transform: translateY(-2px); }

@media (min-width: 880px){
  .scroll-top{ bottom: calc(22px + env(safe-area-inset-bottom, 0px)) !important; }
}

/* ---------------------------------
 * سوالات متداول (FAQ)
 * --------------------------------- */
.faq-list{
  max-width: 820px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.faq-item{
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 4px 22px;
  box-shadow: var(--shadow-soft);
  transition: box-shadow .2s ease, border-color .2s ease;
}
.faq-item[open]{
  border-color: var(--color-primary-light);
  box-shadow: var(--shadow-card);
}
.faq-item__question{
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 0;
  font-weight: 700;
  font-size: 16px;
  color: var(--color-text);
}
.faq-item__question::-webkit-details-marker{ display: none; }
.faq-item__icon{
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--color-bg-alt);
  position: relative;
  transition: background .2s ease, transform .2s ease;
}
.faq-item__icon::before,
.faq-item__icon::after{
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  background: var(--color-primary-dark);
  transform: translate(-50%, -50%);
  transition: transform .2s ease, opacity .2s ease;
}
.faq-item__icon::before{ width: 12px; height: 2px; }
.faq-item__icon::after{ width: 2px; height: 12px; }
.faq-item[open] .faq-item__icon{ background: var(--color-primary); }
.faq-item[open] .faq-item__icon::before,
.faq-item[open] .faq-item__icon::after{ background: #fff; }
.faq-item[open] .faq-item__icon::after{ transform: translate(-50%, -50%) rotate(90deg); opacity: 0; }
.faq-item__answer{
  padding: 0 0 20px;
  color: var(--color-text-soft);
  line-height: 1.9;
  font-size: 15px;
}
.faq-item__answer p{ margin: 0; }

@media (max-width: 600px){
  .faq-item{ padding: 2px 16px; }
  .faq-item__question{ font-size: 15px; padding: 14px 0; }
}

/* ===========================
   30. باکس تخفیف‌های امروز (Daily Deals Box)
   =========================== */
.nsdd{
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-lg);
  padding: 30px 26px 34px;
  background: linear-gradient(120deg, var(--color-accent) 0%, var(--color-paprika) 60%, var(--color-accent-dark) 100%);
  box-shadow: var(--shadow-float);
  isolation: isolate;
}
.nsdd::before,
.nsdd::after{
  content:'';
  position:absolute;
  border-radius:50%;
  background: rgba(255,255,255,.10);
  z-index:0;
}
.nsdd::before{ width:260px; height:260px; top:-120px; inset-inline-start:-70px; }
.nsdd::after{ width:180px; height:180px; bottom:-100px; inset-inline-end:-40px; background: rgba(255,255,255,.08); }

.nsdd__head{
  position:relative;
  z-index:1;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:24px;
}
.nsdd__title-row{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.nsdd__fire--img{
  object-fit: contain;
  padding: 8px;
}
.nsdd-admin-tag{
  display:inline-block; margin-inline-start:6px; font-size:10px; font-weight:700;
  padding:1px 8px; border-radius: var(--radius-pill, 999px); background:#eef2ff; color:#4338ca;
}
.nsdd__fire{
  width:44px; height:44px;
  display:flex; align-items:center; justify-content:center;
  background: rgba(255,255,255,.18);
  border-radius: var(--radius-pill);
  font-size: 22px;
  flex-shrink:0;
  animation: nsdd-pulse 1.8s ease-in-out infinite;
}
.nsdd__heading h2{
  margin:0 0 3px;
  color:#fff;
  font-size: clamp(20px, 3vw, 26px);
  font-weight: 800;
}
.nsdd__heading p{
  margin:0;
  color: rgba(255,255,255,.85);
  font-size: 14px;
}
.nsdd__live{
  display:inline-flex;
  align-items:center;
  gap:6px;
  background: rgba(0,0,0,.16);
  color:#fff;
  font-size:12px;
  font-weight:700;
  padding:5px 12px;
  border-radius: var(--radius-pill);
  flex-shrink:0;
}
.nsdd__live-dot{
  width:8px; height:8px; border-radius:50%;
  background:#8CF08C;
  box-shadow: 0 0 0 rgba(140,240,140,.6);
  animation: nsdd-dot-pulse 1.6s infinite;
}

.nsdd__timer{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  gap:8px;
}
.nsdd__timer-unit{
  background: rgba(255,255,255,.16);
  backdrop-filter: blur(6px);
  border: 1px solid rgba(255,255,255,.25);
  border-radius: var(--radius-sm);
  min-width:56px;
  padding:8px 6px;
  text-align:center;
}
.nsdd__timer-unit strong{
  display:block;
  color:#fff;
  font-size:20px;
  font-weight:800;
  line-height:1;
  font-variant-numeric: tabular-nums;
}
.nsdd__timer-unit span{
  display:block;
  color: rgba(255,255,255,.8);
  font-size:11px;
  margin-top:4px;
}
.nsdd__timer-sep{ color: rgba(255,255,255,.7); font-weight:800; font-size:18px; margin-top:-14px; }

.nsdd__body{
  position:relative;
  z-index:1;
  background: rgba(255,255,255,.94);
  border-radius: var(--radius-md);
  padding: 20px 16px 10px;
}
.nsdd__body .nsb-carousel-zone{ margin:0; }

/* ریبون «پیشنهاد امروز» روی کارت‌های داخل باکس تخفیف */
.nsdd__body .nsbp__box{ position:relative; border-color: transparent; box-shadow: var(--shadow-soft); }
.nsdd__body .nsbp__box::after{
  content:'پیشنهاد امروز';
  position:absolute;
  top:12px;
  inset-inline-start:-34px;
  background: var(--color-primary-dark);
  color:#fff;
  font-size:10.5px;
  font-weight:800;
  padding:3px 38px;
  transform: rotate(-45deg);
  box-shadow: 0 3px 8px rgba(0,0,0,.2);
  z-index:3;
  pointer-events:none;
}

.nsdd__empty{
  position:relative;
  z-index:1;
  background: rgba(255,255,255,.94);
  border-radius: var(--radius-md);
  padding: 26px;
  text-align:center;
  color: var(--color-text-soft);
  font-size:14px;
}

@keyframes nsdd-pulse{
  0%, 100%{ transform: scale(1); }
  50%{ transform: scale(1.1); }
}
@keyframes nsdd-dot-pulse{
  0%{ box-shadow: 0 0 0 0 rgba(140,240,140,.6); }
  70%{ box-shadow: 0 0 0 7px rgba(140,240,140,0); }
  100%{ box-shadow: 0 0 0 0 rgba(140,240,140,0); }
}

@media (max-width: 640px){
  .nsdd{ padding:22px 16px 26px; border-radius: var(--radius-md); }
  .nsdd__timer-unit{ min-width:46px; padding:6px 4px; }
  .nsdd__timer-unit strong{ font-size:16px; }
  .nsdd__body{ padding:16px 10px 6px; }
  .nsdd__body .nsbp__box::after{ font-size:9px; padding:2px 32px; top:10px; inset-inline-start:-32px; }
}

/* ===========================
   31. پنل مدیریت «باکس تخفیف امروز»
   =========================== */
.nsdd-admin-wrap{ max-width: 1100px; }
.nsdd-admin-card{
  background:#fff;
  border:1px solid #E2E4E7;
  border-radius:12px;
  padding:22px 24px;
  margin: 18px 0 26px;
  box-shadow: 0 1px 2px rgba(0,0,0,.04);
}
.nsdd-admin-card h2{ margin-top:0; font-size:16px; }
.nsdd-admin-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap:16px;
  align-items:start;
}
.nsdd-admin-field label{ display:block; font-weight:600; margin-bottom:6px; font-size:13px; }
.nsdd-admin-field input[type=text],
.nsdd-admin-field input[type=number],
.nsdd-admin-field input[type=datetime-local]{ width:100%; }
.nsdd-admin-radio{ display:flex; gap:16px; margin-bottom:8px; }
.nsdd-admin-search{ position:relative; }
.nsdd-admin-search__results{
  position:absolute; z-index:10; top:100%; right:0; left:0;
  background:#fff; border:1px solid #E2E4E7; border-radius:8px;
  box-shadow:0 8px 20px rgba(0,0,0,.12);
  max-height:280px; overflow:auto; display:none; margin-top:4px;
}
.nsdd-admin-search__row{
  display:flex; align-items:center; gap:10px;
  padding:8px 10px; cursor:pointer; border-bottom:1px solid #F1E9D4;
}
.nsdd-admin-search__row:last-child{ border-bottom:none; }
.nsdd-admin-search__row:hover{ background: var(--color-bg-alt); }
.nsdd-admin-search__row img{ width:34px; height:34px; object-fit:cover; border-radius:6px; flex-shrink:0; }
.nsdd-admin-search__row small{ display:block; color:#787c82; }
.nsdd-admin-selected{
  display:flex; align-items:center; gap:10px;
  margin-top:10px; padding:8px 10px;
  background: var(--color-bg-alt); border-radius:8px;
  font-size:13px; display:none;
}
.nsdd-admin-selected img{ width:32px; height:32px; object-fit:cover; border-radius:6px; }
.nsdd-admin-selected .button-link{ margin-inline-start:auto; color:#B32D2E; text-decoration:none; }
.nsdd-admin-table-wrap{ background:#fff; border:1px solid #E2E4E7; border-radius:12px; overflow:hidden; }
.nsdd-admin-table{ width:100%; border-collapse:collapse; }
.nsdd-admin-table th{ text-align:right; background:#F8F7F3; font-size:12.5px; padding:10px 12px; border-bottom:1px solid #E2E4E7; }
.nsdd-admin-table td{ padding:10px 12px; border-bottom:1px solid #F1EEE6; font-size:13px; vertical-align:middle; }
.nsdd-admin-table tr:last-child td{ border-bottom:none; }
.nsdd-admin-prod{ display:flex; align-items:center; gap:10px; }
.nsdd-admin-prod img{ width:40px; height:40px; object-fit:cover; border-radius:8px; }
.nsdd-admin-off{ display:inline-block; background:#FDE9E1; color:#B8602E; font-weight:700; font-size:12px; padding:2px 8px; border-radius:999px; }
.nsdd-admin-empty-row td{ text-align:center; color:#787c82; padding:26px 12px; }
.nsdd-admin-notice{ margin:16px 0; }
