/* ==========================================================================
   AraShop — WOOCOMMERCE
   آرشیو، کارت محصول، تک‌محصول، سبد خرید، تسویه‌حساب و حساب کاربری.
   استایل پیش‌فرض ووکامرس غیرفعال است؛ همه‌چیز اینجا از صفر نوشته شده.
   ========================================================================== */

/* =========================================================
   1) سربرگ فروشگاه و نوار ابزار
   ========================================================= */
.ara-woo{ padding-bottom:var(--ara-s8); }

/* عنوان (h1) و بردکرامپ فروشگاه/دسته‌بندی عمداً حذف شده‌اند (هم موبایل هم دسکتاپ).
   این پنل شیشه‌ای فقط وقتی توضیحات واقعی (متن برگه‌ی فروشگاه/توضیح دسته) موجود باشد رندر می‌شود. */
.ara-shop-head-desc-wrap{
  margin:var(--ara-s6) 0 var(--ara-s5);
  padding:var(--ara-s5) var(--ara-s7);
  border-radius:var(--ara-r-xl);
}
.ara-shop-head-desc{ font-size:var(--ara-fs-sm); color:var(--ara-ink-soft); max-width:64ch; }
.ara-shop-head-desc p:last-child{ margin-bottom:0; }

.ara-shop-toolbar{ margin-bottom:var(--ara-s5); }
.ara-shop-toolbar-row{
  display:flex; align-items:center; justify-content:space-between;
  gap:var(--ara-s3); flex-wrap:wrap;
}
.ara-sort{
  display:flex; gap:var(--ara-s2); overflow-x:auto;
  flex:1 1 auto; min-width:0; padding-bottom:4px;
  scrollbar-width:none;
}
.ara-sort::-webkit-scrollbar{ display:none; }
.ara-sort .ara-chip{ text-decoration:none; }
.ara-shop-toolbar-tools{ display:flex; align-items:center; gap:var(--ara-s2); flex:0 0 auto; }
.ara-view-toggle{
  display:flex; gap:3px; padding:4px; border-radius:var(--ara-r-pill);
  background:var(--ara-glass-bg-soft); border:1px solid var(--ara-glass-line-soft);
}
.ara-view-toggle button{
  width:34px; height:34px; border-radius:var(--ara-r-pill);
  display:flex; align-items:center; justify-content:center;
  color:var(--ara-ink-mute);
  transition:all var(--ara-t) var(--ara-ease);
}
.ara-view-toggle button svg{ width:16px; height:16px; }
.ara-view-toggle button.is-active{ background:var(--ara-primary); color:var(--ara-on-primary); }
@media (max-width:767px){ .ara-view-toggle{ display:none; } }

.ara-shop-count{
  margin:var(--ara-s3) 0 0; font-size:var(--ara-fs-xs); color:var(--ara-ink-mute);
}

/* =========================================================
   2) کشوی فیلتر
   ========================================================= */
/* همان منطق کشوی منو — به لبه‌ی شروع (در RTL: راست) چسبیده و با انتقال
   به همان سمت پنهان می‌شود. */
.ara-filters{
  position:fixed; inset-block:0; inset-inline-start:0; z-index:200;
  width:min(88vw, 340px);
  display:flex; flex-direction:column;
  background:var(--ara-glass-bg-strong);
  -webkit-backdrop-filter:blur(var(--ara-blur-lg)) saturate(var(--ara-saturate));
  backdrop-filter:blur(var(--ara-blur-lg)) saturate(var(--ara-saturate));
  border-inline-end:1px solid var(--ara-glass-line);
  box-shadow:var(--ara-e4);
  transform:translateX(100%);
  visibility:hidden;
  transition:transform var(--ara-t-slow) var(--ara-ease-out), visibility var(--ara-t-slow);
  overflow-y:auto; overscroll-behavior:contain;
}
[dir="ltr"] .ara-filters{ transform:translateX(-100%); }
.ara-filters.is-open{ transform:translateX(0)!important; visibility:visible; }
.ara-filters-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:var(--ara-s4) var(--ara-s5);
  border-bottom:1px solid var(--ara-glass-line-soft);
  position:sticky; top:0; background:inherit; z-index:2;
}
.ara-filters-body{ padding:var(--ara-s5); }

/* کشوی فیلتر در همه‌ی اندازه‌ها به‌صورت شناور باز می‌شود (نه فقط موبایل)،
   تا تمام عرض صفحه در اختیار محصولات بماند. */

/* =========================================================
   3) شبکه‌ی محصولات
   ========================================================= */
ul.products{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--ara-s3);
  margin:0!important; padding:0!important; list-style:none;
}
@media (min-width:640px){ ul.products{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--ara-s4); } }
@media (min-width:1100px){ ul.products{ grid-template-columns:repeat(4,minmax(0,1fr)); } }

/* حالت اسلایدر در صفحه‌ی اصلی */
ul.products.ara-slider-track{
  display:flex!important; grid-template-columns:none;
  flex-wrap:nowrap; overflow-x:auto;
  scroll-snap-type:x mandatory; scrollbar-width:none;
  padding:4px 4px var(--ara-s3)!important; margin:-4px -4px 0!important;
}
ul.products.ara-slider-track::-webkit-scrollbar{ display:none; }
ul.products.ara-slider-track > li.product{
  flex:0 0 auto; scroll-snap-align:start;
  width:calc(50% - var(--ara-s2));
}
@media (min-width:640px){ ul.products.ara-slider-track > li.product{ width:calc(33.333% - var(--ara-s3)); } }
@media (min-width:1100px){ ul.products.ara-slider-track > li.product{ width:calc(25% - var(--ara-s4)); } }

.ara-products-wrap{ position:relative; }
.ara-products-wrap .ara-slider-nav{ top:calc(50% - 40px); }

/* =========================================================
   4) کارت محصول
   ========================================================= */
li.product.ara-product-card{
  display:flex!important; flex-direction:column;
  border-radius:var(--ara-r-lg); overflow:hidden;
  margin:0!important; padding:0!important; float:none!important;
  /* min-width پیش‌فرض آیتم‌های flex برابر min-content است؛ اگر تصویری بزرگ داخل
     کارت باشد، همان باعث می‌شود کارت از عرض ستون بیرون بزند. */
  min-width:0; min-height:0;
  list-style:none;
}
/* تصویر با position:absolute از جریان اندازه‌گیری خارج می‌شود.
   بدون این، ارتفاع تصویر اصلی (که ممکن است چند هزار پیکسل باشد) به‌عنوان
   «حداقل محتوا» عمل می‌کرد و کادر aspect-ratio را می‌کشید — نتیجه‌اش
   کارت‌های غول‌پیکر بود. min-height:0 هم جلوی رفتار پیش‌فرض flex را می‌گیرد. */
.ara-product-media{
  position:relative; display:block; aspect-ratio:1/1; overflow:hidden;
  flex:0 0 auto; min-height:0; min-width:0; width:100%;
  background:color-mix(in srgb, var(--ara-primary) 5%, transparent);
}
.ara-product-media-link{ position:absolute; inset:0; display:block; }
.ara-product-media img{
  position:absolute; inset:0;
  width:100%; height:100%; max-width:none; object-fit:cover; border-radius:0;
  transition:transform var(--ara-t-slow) var(--ara-ease-out);
}
.ara-product-card:hover .ara-product-media img{ transform:scale(1.07); }

.ara-product-flags{
  position:absolute; top:10px; inset-inline-start:10px; z-index:2;
  display:flex; flex-direction:column; align-items:flex-start; gap:6px;
}
.ara-sale-badge{
  display:inline-block; padding:4px 11px; border-radius:var(--ara-r-pill);
  background:var(--ara-danger); color:#fff;
  font-size:var(--ara-fs-xs); font-weight:800; line-height:1.6;
  box-shadow:0 4px 12px color-mix(in srgb, var(--ara-danger) 40%, transparent);
}
.ara-feat-badge{
  display:inline-flex; align-items:center; gap:4px;
  padding:4px 10px; border-radius:var(--ara-r-pill);
  background:var(--ara-accent); color:var(--ara-on-accent);
  font-size:var(--ara-fs-xs); font-weight:800;
}
.ara-feat-badge svg{ width:12px; height:12px; }
.ara-stock-badge{
  display:inline-block; padding:4px 11px; border-radius:var(--ara-r-pill);
  background:rgba(20,17,42,.72); color:#fff;
  font-size:var(--ara-fs-xs); font-weight:700;
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
}

.ara-product-quick{
  position:absolute; top:10px; inset-inline-end:10px; z-index:2;
  display:flex; flex-direction:column; gap:6px;
  opacity:0; transform:translateX(-8px);
  transition:opacity var(--ara-t) var(--ara-ease), transform var(--ara-t) var(--ara-ease-out);
}
.ara-product-card:hover .ara-product-quick,
.ara-product-card:focus-within .ara-product-quick{ opacity:1; transform:none; }
@media (hover:none){ .ara-product-quick{ opacity:1; transform:none; } }
.ara-product-quick .ara-icon-btn{
  background:var(--ara-glass-bg-strong);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  border-color:var(--ara-glass-line);
}
.ara-product-quick .ara-icon-btn.is-active{ background:var(--ara-danger); color:#fff; }

.ara-product-body{
  display:flex; flex-direction:column; flex:1 1 auto;
  min-width:0; padding:var(--ara-s4);
}
.ara-product-cat{ font-size:var(--ara-fs-xs); color:var(--ara-primary); font-weight:700; margin-bottom:4px; }
.ara-product-title{
  font-size:var(--ara-fs-sm); font-weight:600; line-height:1.6; margin:0 0 var(--ara-s2);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  min-height:2.9em;
}
.ara-product-title a{ transition:color var(--ara-t) var(--ara-ease); }
.ara-product-title a:hover{ color:var(--ara-primary); }
.ara-product-rating{ margin-bottom:var(--ara-s3); }

.ara-product-foot{
  margin-top:auto; display:flex; align-items:center; justify-content:space-between;
  gap:var(--ara-s2); flex-wrap:wrap;
}
.ara-product-price{ min-width:0; }
.ara-product-price .price{
  display:flex; flex-direction:column; gap:1px;
  font-size:var(--ara-fs-md); font-weight:800; color:var(--ara-ink);
}
.ara-product-price del{
  font-size:var(--ara-fs-xs); font-weight:400; color:var(--ara-ink-mute);
  text-decoration:line-through; opacity:.8;
}
.ara-product-price ins{ text-decoration:none; color:var(--ara-primary); }
.ara-product-price .woocommerce-Price-currencySymbol{ font-size:.78em; font-weight:600; margin-inline-start:2px; }
.ara-price-call{ font-size:var(--ara-fs-sm); color:var(--ara-ink-mute); }

.ara-add-to-cart{ flex:0 0 auto; }
.ara-add-to-cart span{ display:none; }
.ara-add-to-cart{ width:42px; height:42px; min-height:0; padding:0; border-radius:var(--ara-r-pill); }
.ara-add-to-cart svg{ width:18px; height:18px; }
.ara-add-to-cart.loading{ opacity:.6; pointer-events:none; }
.ara-add-to-cart.added::after{ content:none; }
li.product .added_to_cart{
  position:absolute; bottom:var(--ara-s4); inset-inline-end:var(--ara-s4); z-index:3;
  padding:5px 12px; border-radius:var(--ara-r-pill);
  background:var(--ara-success); color:#fff;
  font-size:var(--ara-fs-xs); font-weight:700;
}

/* حالت فهرستی */
ul.products.is-list{ grid-template-columns:1fr!important; }
ul.products.is-list li.product.ara-product-card{ flex-direction:row; align-items:stretch; }
ul.products.is-list .ara-product-media{ width:150px; flex:0 0 auto; aspect-ratio:1/1; }
ul.products.is-list .ara-product-body{ padding:var(--ara-s5); }
ul.products.is-list .ara-product-title{ font-size:var(--ara-fs-md); min-height:0; -webkit-line-clamp:1; }
ul.products.is-list .ara-add-to-cart{ width:auto; height:auto; min-height:40px; padding:0 var(--ara-s5); }
ul.products.is-list .ara-add-to-cart span{ display:inline; }

/* =========================================================
   5) تک‌محصول
   ---------------------------------------------------------
   ساختار دو ستونی/چیدمان صفحه (Grid اصلی، پنل خرید، Sticky، ۴ معماری
   Layout) در assets/css/product-single.css تعریف شده؛ اینجا فقط
   استایل اجزای مشترک (گالری، عنوان/قیمت/موجودی/فرم/تب‌ها) می‌ماند که
   در هر ۴ معماری دوباره استفاده می‌شوند.
   ========================================================= */
.ara-product-gallery-wrap{
  border-radius:var(--ara-r-xl); overflow:hidden; padding:var(--ara-s3);
  background:var(--ara-glass-bg); border:1px solid var(--ara-glass-line-soft);
  box-shadow:var(--ara-e1), inset 0 1px 0 var(--ara-glass-inner);
  position:relative;
}
.woocommerce-product-gallery{ position:relative; }
.woocommerce-product-gallery__wrapper{ border-radius:var(--ara-r-lg); overflow:hidden; }
/* عکس‌های محصول اندازه‌های اصلی متفاوتی دارند؛ بدون این قانون هرکدام با نسبت
   ابعاد متفاوت خودشان کشیده/فشرده به‌نظر می‌رسند. با نسبت ثابت + object-fit
   همه یک‌دست و بدون کش‌آمدگی نمایش داده می‌شوند. */
.woocommerce-product-gallery .woocommerce-product-gallery__image{
  display:block; aspect-ratio:1/1; background:var(--ara-glass-bg-soft); overflow:hidden;
}
.woocommerce-product-gallery img{
  border-radius:var(--ara-r-lg); width:100%; height:100%;
  object-fit:cover; aspect-ratio:auto;
}
.woocommerce-product-gallery__trigger{
  position:absolute; top:14px; inset-inline-end:14px; z-index:5;
  width:40px; height:40px; border-radius:50%;
  display:flex!important; align-items:center; justify-content:center;
  background:var(--ara-glass-bg-strong); border:1px solid var(--ara-glass-line);
  color:var(--ara-ink); font-size:0; text-decoration:none;
  box-shadow:var(--ara-e1);
}
.woocommerce-product-gallery__trigger::before{
  content:""; width:18px; height:18px; background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5M11 8v6M8 11h6'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5M11 8v6M8 11h6'/%3E%3C/svg%3E") center/contain no-repeat;
}
.flex-control-thumbs{
  display:flex; gap:var(--ara-s2); margin-top:var(--ara-s3);
  overflow-x:auto; padding:2px; scrollbar-width:none; list-style:none;
}
.flex-control-thumbs::-webkit-scrollbar{ display:none; }
.flex-control-thumbs li{ flex:0 0 auto; width:74px; }
.flex-control-thumbs img{
  border-radius:var(--ara-r-sm); cursor:pointer; opacity:.55;
  border:2px solid transparent;
  transition:opacity var(--ara-t) var(--ara-ease), border-color var(--ara-t) var(--ara-ease);
}
.flex-control-thumbs img.flex-active,
.flex-control-thumbs img:hover{ opacity:1; border-color:var(--ara-primary); }

.ara-woo-single .product_title{ font-size:var(--ara-fs-2xl); margin:0 0 var(--ara-s3); }
.woocommerce-product-rating{
  display:flex; align-items:center; gap:var(--ara-s3); flex-wrap:wrap;
  margin-bottom:var(--ara-s4); font-size:var(--ara-fs-xs); color:var(--ara-ink-soft);
}
.woocommerce-product-rating .woocommerce-review-link{ color:var(--ara-primary); font-weight:700; }

.ara-woo-single div.product p.price,
.ara-woo-single div.product span.price{
  display:flex; align-items:baseline; gap:var(--ara-s3); flex-wrap:wrap;
  font-size:var(--ara-fs-2xl); font-weight:800; color:var(--ara-primary);
  margin:0 0 var(--ara-s4);
}
.ara-woo-single div.product p.price del{
  font-size:var(--ara-fs-md); font-weight:400; color:var(--ara-ink-mute);
  text-decoration:line-through;
}
.ara-woo-single div.product p.price ins{ text-decoration:none; }

.woocommerce-product-details__short-description{
  font-size:var(--ara-fs-sm); color:var(--ara-ink-soft); line-height:1.9;
  padding-bottom:var(--ara-s4); margin-bottom:var(--ara-s4);
  border-bottom:1px solid var(--ara-glass-line-soft);
}

.ara-woo-single div.product .stock{
  display:inline-flex; align-items:center; gap:6px; width:fit-content;
  padding:5px 14px; border-radius:var(--ara-r-pill);
  font-size:var(--ara-fs-xs); font-weight:700;
  background:var(--ara-success-tint); color:var(--ara-success);
  margin-bottom:var(--ara-s4);
}
.ara-woo-single div.product .stock.out-of-stock{ background:var(--ara-danger-tint); color:var(--ara-danger); }

form.cart{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--ara-s3); margin-bottom:var(--ara-s4); }
form.cart .quantity{ display:inline-flex; }
form.cart .quantity input.qty{
  width:56px; height:50px; text-align:center; border:0; background:transparent;
  font-weight:700; -moz-appearance:textfield; appearance:textfield;
}
form.cart .quantity input.qty::-webkit-outer-spin-button,
form.cart .quantity input.qty::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
form.cart .single_add_to_cart_button{
  flex:1 1 200px; min-height:52px; padding:0 var(--ara-s6);
  border-radius:var(--ara-r-pill);
  background:var(--ara-primary); color:var(--ara-on-primary);
  font-weight:800; font-size:var(--ara-fs-sm);
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  box-shadow:var(--ara-e-primary);
  transition:background-color var(--ara-t) var(--ara-ease), transform var(--ara-t-fast) var(--ara-ease);
}
form.cart .single_add_to_cart_button:hover{ background:var(--ara-primary-600); }
form.cart .single_add_to_cart_button:active{ transform:scale(.98); }
form.cart table.variations{ width:100%; }
form.cart table.variations td{ padding:6px 0; display:block; }
form.cart table.variations label{ font-size:var(--ara-fs-sm); font-weight:700; margin-bottom:6px; display:block; }
form.cart table.variations select{
  width:100%; min-height:46px; padding:0 var(--ara-s4);
  border-radius:var(--ara-r-sm); background:var(--ara-glass-bg-soft);
  border:1px solid var(--ara-glass-line-soft); color:var(--ara-ink);
}
.reset_variations{ font-size:var(--ara-fs-xs); color:var(--ara-primary); }

.ara-product-assurance{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:var(--ara-s3);
  width:100%; list-style:none;
  margin:var(--ara-s5) 0 0; padding-top:var(--ara-s5);
  border-top:1px solid var(--ara-glass-line-soft);
}
.ara-product-assurance li{
  display:flex; align-items:center; gap:9px;
  font-size:var(--ara-fs-xs); color:var(--ara-ink-soft); font-weight:600;
}
.ara-product-assurance svg{
  width:32px; height:32px; padding:8px; flex:0 0 auto; box-sizing:border-box;
  border-radius:50%; background:var(--ara-success-tint); color:var(--ara-success);
}

.product_meta{
  margin-top:var(--ara-s5); padding-top:var(--ara-s4);
  border-top:1px solid var(--ara-glass-line-soft);
  font-size:var(--ara-fs-xs); color:var(--ara-ink-mute);
}
.product_meta > span{ display:block; margin-bottom:6px; }
.product_meta a{ color:var(--ara-primary); }

/* --- تب‌های محصول --- */
.woocommerce-tabs{ margin-top:var(--ara-s7); }
.woocommerce-tabs ul.tabs{
  display:flex; gap:var(--ara-s2); padding:5px; margin:0 0 var(--ara-s5);
  border-radius:var(--ara-r-pill);
  background:var(--ara-glass-bg-soft); border:1px solid var(--ara-glass-line-soft);
  overflow-x:auto; scrollbar-width:none; list-style:none;
}
.woocommerce-tabs ul.tabs::-webkit-scrollbar{ display:none; }
.woocommerce-tabs ul.tabs li{ flex:0 0 auto; }
.woocommerce-tabs ul.tabs li a{
  display:block; padding:11px 22px; border-radius:var(--ara-r-pill);
  font-size:var(--ara-fs-sm); font-weight:700; color:var(--ara-ink-soft);
  white-space:nowrap; border:1px solid transparent;
  transition:all var(--ara-t) var(--ara-ease);
}
.woocommerce-tabs ul.tabs li a:hover{ color:var(--ara-primary); }
.woocommerce-tabs ul.tabs li.active a{
  background:var(--ara-glass-bg-strong); color:var(--ara-primary);
  border-color:var(--ara-glass-line-soft); box-shadow:var(--ara-e1);
}
.woocommerce-tabs .panel{
  padding:var(--ara-s6);
  border-radius:var(--ara-r-xl);
  background:var(--ara-glass-bg); border:1px solid var(--ara-glass-line-soft);
  box-shadow:var(--ara-e1);
  font-size:var(--ara-fs-sm); line-height:1.95; color:var(--ara-ink-soft);
}
.woocommerce-tabs .panel > h2:first-child{ display:none; }
.woocommerce-tabs .panel h1,.woocommerce-tabs .panel h2,
.woocommerce-tabs .panel h3,.woocommerce-tabs .panel h4{ color:var(--ara-ink); }
.woocommerce-tabs .panel ul{ list-style:disc; padding-inline-start:1.4em; margin-bottom:1em; }
.woocommerce-tabs .panel ol{ list-style:decimal; padding-inline-start:1.4em; margin-bottom:1em; }

table.shop_attributes{ font-size:var(--ara-fs-sm); border-radius:var(--ara-r-sm); overflow:hidden; }
table.shop_attributes th,
table.shop_attributes td{ padding:12px 14px; border:1px solid var(--ara-line); text-align:start; }
table.shop_attributes th{ background:var(--ara-glass-bg-soft); font-weight:700; color:var(--ara-ink); width:35%; }
table.shop_attributes p{ margin:0; }

/* جدول‌های دلخواهی که فروشنده داخل توضیحات محصول می‌چسباند (مثل جدول مقایسه‌ی
   مشخصات) اغلب برای موبایل مناسب نیستند و ستون‌هایشان تا حد له‌شدن باریک
   می‌شوند. این‌جا به‌صورت پیش‌فرض به آن‌ها اسکرول افقی داده می‌شود تا هرگز
   شکسته/ناخوانا نشوند — جدول مشخصات و جدول تنوع محصول از این قانون مستثنی‌اند
   چون چیدمان اختصاصی خودشان را دارند. */
.woocommerce-tabs .panel table:not(.shop_attributes):not(.variations),
.woocommerce-product-details__short-description table,
.entry-content table{
  display:block; width:100%; max-width:100%; overflow-x:auto;
  -webkit-overflow-scrolling:touch; border-collapse:collapse; margin-bottom:1em;
}
.woocommerce-tabs .panel table:not(.shop_attributes):not(.variations) th,
.woocommerce-tabs .panel table:not(.shop_attributes):not(.variations) td,
.woocommerce-product-details__short-description table th,
.woocommerce-product-details__short-description table td,
.entry-content table th,
.entry-content table td{
  padding:9px 13px; border:1px solid var(--ara-line); white-space:nowrap; text-align:start;
}

/* --- دیدگاه‌های محصول --- */
#reviews .commentlist{ display:flex; flex-direction:column; gap:var(--ara-s4); margin-bottom:var(--ara-s6); list-style:none; }
#reviews .comment_container{
  display:flex; gap:var(--ara-s4); padding:var(--ara-s5);
  border-radius:var(--ara-r-md);
  background:var(--ara-glass-bg-soft); border:1px solid var(--ara-glass-line-soft);
}
#reviews .comment_container img.avatar{ width:48px; height:48px; border-radius:50%; flex:0 0 auto; }
#reviews .comment-text{ flex:1 1 auto; min-width:0; }
#reviews .woocommerce-review__author{ font-weight:700; font-size:var(--ara-fs-sm); }
#reviews .woocommerce-review__published-date{ font-size:var(--ara-fs-xs); color:var(--ara-ink-mute); }
#review_form_wrapper{
  padding:var(--ara-s6); border-radius:var(--ara-r-xl);
  background:var(--ara-glass-bg); border:1px solid var(--ara-glass-line-soft);
}
#review_form .comment-form-rating label{ display:block; margin-bottom:8px; font-weight:700; font-size:var(--ara-fs-sm); }
#review_form .comment-form input[type="text"],
#review_form .comment-form input[type="email"],
#review_form .comment-form textarea{
  width:100%; min-height:48px; padding:12px var(--ara-s4);
  border-radius:var(--ara-r-sm);
  background:var(--ara-glass-bg-soft); border:1px solid var(--ara-glass-line-soft);
  color:var(--ara-ink); margin-bottom:var(--ara-s3);
}
#review_form .comment-form textarea{ min-height:120px; }
#review_form .form-submit input[type="submit"]{
  min-height:48px; padding:0 var(--ara-s6); border:0;
  border-radius:var(--ara-r-pill);
  background:var(--ara-primary); color:var(--ara-on-primary);
  font-weight:700; cursor:pointer;
}

/* ستاره‌های ووکامرس (چون CSS خودش غیرفعال است، اینجا بازسازی می‌شود) */
.star-rating,
.woocommerce-product-rating .star-rating{
  --ara-star-fill:0%;
  position:relative; display:inline-block; overflow:hidden;
  width:90px; height:16px; line-height:16px;
  font-size:0; color:transparent; flex:0 0 auto;
}
.star-rating::before{
  content:""; position:absolute; inset-block:0; inset-inline-start:0; width:100%;
  background:color-mix(in srgb, var(--ara-ink) 16%, transparent);
  -webkit-mask-image:var(--ara-star-img, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 2.6l2.7 5.9 6.4.7-4.8 4.4 1.3 6.3L12 16.7 6.4 19.9l1.3-6.3L2.9 9.2l6.4-.7z'/%3E%3C/svg%3E"));
  mask-image:var(--ara-star-img, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 2.6l2.7 5.9 6.4.7-4.8 4.4 1.3 6.3L12 16.7 6.4 19.9l1.3-6.3L2.9 9.2l6.4-.7z'/%3E%3C/svg%3E"));
  -webkit-mask-size:18px 16px; mask-size:18px 16px;
  -webkit-mask-repeat:repeat-x; mask-repeat:repeat-x;
}
.star-rating > span{
  position:absolute; inset-block:0; inset-inline-start:0; overflow:hidden;
  padding-top:16px; height:100%; font-size:0;
}
.star-rating > span::before{
  content:""; position:absolute; inset-block:0; inset-inline-start:0; width:100%;
  background:#F5A524;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 2.6l2.7 5.9 6.4.7-4.8 4.4 1.3 6.3L12 16.7 6.4 19.9l1.3-6.3L2.9 9.2l6.4-.7z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 2.6l2.7 5.9 6.4.7-4.8 4.4 1.3 6.3L12 16.7 6.4 19.9l1.3-6.3L2.9 9.2l6.4-.7z'/%3E%3C/svg%3E");
  -webkit-mask-size:18px 16px; mask-size:18px 16px;
  -webkit-mask-repeat:repeat-x; mask-repeat:repeat-x;
}
p.stars a{
  display:inline-block; width:22px; height:22px; margin-inline-end:3px;
  background:color-mix(in srgb, var(--ara-ink) 20%, transparent);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 2.6l2.7 5.9 6.4.7-4.8 4.4 1.3 6.3L12 16.7 6.4 19.9l1.3-6.3L2.9 9.2l6.4-.7z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 2.6l2.7 5.9 6.4.7-4.8 4.4 1.3 6.3L12 16.7 6.4 19.9l1.3-6.3L2.9 9.2l6.4-.7z'/%3E%3C/svg%3E") center/contain no-repeat;
  text-indent:-9999px; overflow:hidden;
}
p.stars:hover a,
p.stars.selected a.active,
p.stars.selected a:not(.active){ background:#F5A524; }

/* --- محصولات مرتبط --- */
.related.products,
.upsells.products,
.up-sells.products{ margin-top:var(--ara-s8); }
.related.products > h2,
.upsells.products > h2,
.up-sells.products > h2{ font-size:var(--ara-fs-xl); margin-bottom:var(--ara-s5); }

/* =========================================================
   6) پیام‌های ووکامرس
   ========================================================= */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews{
  display:flex; align-items:center; gap:var(--ara-s3); flex-wrap:wrap;
  list-style:none; margin:0 0 var(--ara-s5); padding:var(--ara-s4) var(--ara-s5);
  border-radius:var(--ara-r-md);
  background:var(--ara-glass-bg); border:1px solid var(--ara-glass-line-soft);
  border-inline-start:4px solid var(--ara-primary);
  box-shadow:var(--ara-e1);
  font-size:var(--ara-fs-sm); color:var(--ara-ink);
}
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before{ display:none; }
.woocommerce-message{ border-inline-start-color:var(--ara-success); background:var(--ara-success-tint); }
.woocommerce-error{ border-inline-start-color:var(--ara-danger); background:var(--ara-danger-tint); }
.woocommerce-error li{ list-style:none; width:100%; }
.woocommerce-message .button,
.woocommerce-info .button{ margin-inline-start:auto; }

/* دکمه‌های عمومی ووکامرس */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:46px; padding:0 var(--ara-s5);
  border-radius:var(--ara-r-pill); border:0;
  background:var(--ara-primary); color:var(--ara-on-primary);
  font-size:var(--ara-fs-sm); font-weight:700; line-height:1;
  cursor:pointer;
  transition:background-color var(--ara-t) var(--ara-ease), transform var(--ara-t-fast) var(--ara-ease);
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover{ background:var(--ara-primary-600); color:var(--ara-on-primary); }
.woocommerce a.button:active,
.woocommerce button.button:active{ transform:scale(.98); }
.woocommerce button.button:disabled,
.woocommerce button.button.disabled{ opacity:.5; cursor:not-allowed; }

/* =========================================================
   7) سبد خرید
   ========================================================= */
.ara-wc-page{ margin-top:var(--ara-s4); }

table.shop_table.cart{
  display:block; border:0; background:transparent; border-collapse:collapse; margin-bottom:var(--ara-s5);
}
table.shop_table.cart thead{ display:none; }
table.shop_table.cart tbody{ display:flex; flex-direction:column; gap:var(--ara-s3); }
table.shop_table.cart tr{ display:block; }

table.shop_table.cart tr.cart_item{
  display:grid;
  grid-template-columns:auto 74px 1fr;
  grid-template-areas:
    "remove thumb name"
    "price  price price"
    "qty    qty   qty"
    "sub    sub   sub";
  align-items:center; gap:10px var(--ara-s3);
  padding:var(--ara-s4);
  border-radius:var(--ara-r-lg);
  background:var(--ara-glass-bg); border:1px solid var(--ara-glass-line-soft);
  box-shadow:var(--ara-e1);
}
table.shop_table.cart tr.cart_item td{ display:block; border:0!important; padding:0; }
table.shop_table.cart tr.cart_item td.product-remove{ grid-area:remove; }
table.shop_table.cart tr.cart_item td.product-thumbnail{ grid-area:thumb; }
table.shop_table.cart tr.cart_item td.product-name{ grid-area:name; font-weight:700; font-size:var(--ara-fs-sm); }
table.shop_table.cart tr.cart_item td.product-price{ grid-area:price; }
table.shop_table.cart tr.cart_item td.product-quantity{ grid-area:qty; }
table.shop_table.cart tr.cart_item td.product-subtotal{ grid-area:sub; }

table.shop_table.cart tr.cart_item td.product-remove a.remove{
  display:flex!important; align-items:center; justify-content:center;
  width:30px; height:30px; border-radius:50%;
  background:var(--ara-glass-bg-soft); color:var(--ara-ink-mute)!important;
  font-size:18px; line-height:1; text-decoration:none;
  transition:all var(--ara-t) var(--ara-ease);
}
table.shop_table.cart tr.cart_item td.product-remove a.remove:hover{ background:var(--ara-danger); color:#fff!important; }
table.shop_table.cart tr.cart_item td.product-thumbnail img{ width:74px; height:74px; border-radius:var(--ara-r-sm); object-fit:cover; }
table.shop_table.cart tr.cart_item td.product-name a{ color:var(--ara-ink); }
table.shop_table.cart tr.cart_item dl.variation{ margin:6px 0 0; font-size:var(--ara-fs-xs); color:var(--ara-ink-mute); font-weight:400; }
table.shop_table.cart tr.cart_item dl.variation dt,
table.shop_table.cart tr.cart_item dl.variation dd{ display:inline; margin:0; }

table.shop_table.cart tr.cart_item td.product-price,
table.shop_table.cart tr.cart_item td.product-quantity,
table.shop_table.cart tr.cart_item td.product-subtotal{
  display:flex!important; align-items:center; justify-content:space-between;
  padding-top:10px; border-top:1px dashed var(--ara-glass-line-soft)!important;
  font-size:var(--ara-fs-sm); color:var(--ara-ink-soft);
}
table.shop_table.cart tr.cart_item td.product-price::before,
table.shop_table.cart tr.cart_item td.product-quantity::before,
table.shop_table.cart tr.cart_item td.product-subtotal::before{
  content:attr(data-title); font-weight:700; color:var(--ara-ink); font-size:var(--ara-fs-xs);
}
table.shop_table.cart tr.cart_item td.product-subtotal{ font-weight:800; color:var(--ara-primary); }

@media (min-width:900px){
  /* ردیف‌های سبد در دسکتاپ: عکس بندانگشتی + فقط عنوان و قیمت — بدون شلوغی
     ستون قیمت واحد که با جمع سطر تکراری بود حذف شد. */
  table.shop_table.cart tr.cart_item{
    grid-template-columns:auto 44px minmax(0,2.4fr) .85fr 1fr;
    grid-template-areas:"remove thumb name qty sub";
    gap:var(--ara-s3);
    padding:var(--ara-s3) var(--ara-s4);
  }
  table.shop_table.cart tr.cart_item td.product-thumbnail img{ width:44px; height:44px; }
  table.shop_table.cart tr.cart_item td.product-price{ display:none; }
  table.shop_table.cart tr.cart_item td.product-quantity,
  table.shop_table.cart tr.cart_item td.product-subtotal{
    border-top:0!important; padding-top:0; justify-content:center;
  }
  table.shop_table.cart tr.cart_item td.product-quantity::before,
  table.shop_table.cart tr.cart_item td.product-subtotal::before{ display:none; }
  table.shop_table.cart tr.cart_item td.product-subtotal{ justify-content:flex-end; }

  /* چیدمان دو ستونه: اقلام سبد در ستون اصلی، جمع کل در سایدبار کنارش (سمت چپ) */
  body.woocommerce-cart .woocommerce{
    display:grid; grid-template-columns:minmax(0,1fr) 340px; align-items:start; gap:var(--ara-s6);
  }
  /* ووکامرس همیشه یک div.woocommerce-notices-wrapper خالی را به‌عنوان اولین
     فرزند چاپ می‌کند (حتی وقتی پیامی برای نمایش نیست). بدون این قانون، آن
     div خالی خودش یک آیتم گرید حساب می‌شد و ستون اول (1fr) را اشغال می‌کرد؛
     در نتیجه فرم سبد خرید به ستون دوم (۳۴۰px، باریک) رانده می‌شد و جمع کل
     به‌جای کنار آن، به سطر بعدی گرید می‌افتاد. با گرفتن تمام عرض، این wrapper
     دیگر یک ستون گرید حساب نمی‌شود و فرم + جمع کل درست کنار هم می‌نشینند. */
  body.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper{ grid-column:1/-1; }
  body.woocommerce-cart .woocommerce > form.woocommerce-cart-form{ min-width:0; }
  body.woocommerce-cart .cart-collaterals{ margin-top:0; }
  body.woocommerce-cart .cart_totals{ max-width:none; width:100%; position:sticky; top:var(--ara-s6); }
}

td.actions{
  display:flex!important; flex-wrap:wrap; gap:var(--ara-s3); align-items:center;
  padding:0!important; border:0!important; background:transparent;
}
.coupon{ display:flex; gap:var(--ara-s2); flex:1 1 260px; flex-wrap:wrap; }
.coupon label{ display:none; }
.coupon input.input-text{
  flex:1 1 160px; min-width:0; min-height:46px; padding:0 var(--ara-s5);
  border-radius:var(--ara-r-pill);
  background:var(--ara-glass-bg); border:1px solid var(--ara-glass-line-soft);
  color:var(--ara-ink);
}

.cart-collaterals{ margin-top:var(--ara-s6); display:flex; justify-content:flex-start; }
.cart_totals{
  width:100%; max-width:420px;
  padding:var(--ara-s6); border-radius:var(--ara-r-xl);
  background:var(--ara-glass-bg); border:1px solid var(--ara-glass-line-soft);
  box-shadow:var(--ara-e2), inset 0 1px 0 var(--ara-glass-inner);
}
.cart_totals h2{ font-size:var(--ara-fs-md); margin-bottom:var(--ara-s4); }
.cart_totals table{ border:0; }
.cart_totals table th,
.cart_totals table td{
  padding:11px 0; border:0!important; font-size:var(--ara-fs-sm); text-align:start;
}
.cart_totals table th{ color:var(--ara-ink-soft); font-weight:600; }
.cart_totals table td{ text-align:end; font-weight:700; }
.cart_totals tr.order-total th,
.cart_totals tr.order-total td{
  padding-top:16px; border-top:1px solid var(--ara-line)!important;
  font-size:var(--ara-fs-lg); font-weight:800; color:var(--ara-primary);
}
.wc-proceed-to-checkout{ margin-top:var(--ara-s5); }
.wc-proceed-to-checkout a.checkout-button{ display:flex!important; width:100%; min-height:52px; }
.woocommerce-shipping-totals ul#shipping_method{ display:flex; flex-direction:column; gap:8px; }
.woocommerce-shipping-totals label{ font-size:var(--ara-fs-sm); }

.cart-empty,
.wc-empty-cart-message{ text-align:center; }
.return-to-shop{ text-align:center; margin-top:var(--ara-s4); }

/* =========================================================
   7‑ب) چهار استایل آماده سبد خرید/تسویه‌حساب
   (تنظیمات ← سبد خرید و تسویه‌حساب)
   استایل ۱ = پیش‌فرض، بدون کلاس اضافه — همان قواعد بالا
   ========================================================= */
@media (min-width:900px){

  /* --- استایل ۲: جدولی کلاسیک --- */
  body.ara-cart-style-2 table.shop_table.cart thead{ display:table-header-group; }
  body.ara-cart-style-2 table.shop_table.cart tbody{ display:table-row-group; gap:0; }
  body.ara-cart-style-2 table.shop_table.cart thead th{
    background:var(--ara-glass-bg-soft); font-weight:700; font-size:var(--ara-fs-xs);
    padding:12px var(--ara-s3); text-align:start; border-bottom:2px solid var(--ara-line);
  }
  body.ara-cart-style-2 table.shop_table.cart tr.cart_item{
    display:table-row; background:transparent; border:0; border-radius:0; box-shadow:none;
  }
  body.ara-cart-style-2 table.shop_table.cart tr.cart_item td{
    display:table-cell!important; vertical-align:middle; padding:14px var(--ara-s3)!important;
    border:0!important; border-bottom:1px solid var(--ara-line)!important;
  }
  body.ara-cart-style-2 table.shop_table.cart tr.cart_item td.product-price{ display:table-cell!important; }
  body.ara-cart-style-2 .cart_totals{ box-shadow:none; border:1px solid var(--ara-line); }

  /* --- استایل ۳: کارتی بزرگ --- */
  body.ara-cart-style-3 table.shop_table.cart tr.cart_item{
    grid-template-columns:auto 92px minmax(0,2fr) .85fr 1fr;
    padding:var(--ara-s5); border-radius:var(--ara-r-xl);
    border:1px solid var(--ara-glass-line); box-shadow:var(--ara-e2);
  }
  body.ara-cart-style-3 table.shop_table.cart tr.cart_item td.product-thumbnail img{ width:92px; height:92px; border-radius:var(--ara-r-md); }
  body.ara-cart-style-3 table.shop_table.cart tr.cart_item td.product-name{ font-size:var(--ara-fs-md); }
  body.ara-cart-style-3 .cart_totals{
    background:linear-gradient(160deg, var(--ara-primary-tint), transparent);
    border:2px solid var(--ara-primary); box-shadow:none;
  }

  /* --- استایل ۴: جمع‌وجور (شبیه فاکتور) --- */
  body.ara-cart-style-4 table.shop_table.cart tr.cart_item{ padding:8px var(--ara-s3); gap:6px var(--ara-s2); border-radius:var(--ara-r-sm); }
  body.ara-cart-style-4 table.shop_table.cart tr.cart_item td.product-thumbnail img{ width:32px; height:32px; }
  body.ara-cart-style-4 table.shop_table.cart tr.cart_item td.product-name{ font-size:var(--ara-fs-xs); }
  body.ara-cart-style-4 table.shop_table.cart tbody{ gap:6px; }
  body.ara-cart-style-4 .cart_totals{ padding:var(--ara-s4); }
  body.ara-cart-style-4 .cart_totals table th,
  body.ara-cart-style-4 .cart_totals table td{ padding:6px 0; font-size:var(--ara-fs-xs); }
  body.ara-cart-style-4 .cart_totals tr.order-total th,
  body.ara-cart-style-4 .cart_totals tr.order-total td{ padding-top:10px; font-size:var(--ara-fs-md); }
}

/* =========================================================
   8) تسویه‌حساب
   ========================================================= */
/* col2-set همیشه یک‌ستونه می‌ماند (صورتحساب و بعد از آن یادداشت‌ها،
   پشت‌سرهم) — دقیقاً مثل اکثر قالب‌های سفارشی ووکامرس. تفکیک واقعیِ ستون‌ها
   فقط در سطح صفحه (فرم کامل تسویه‌حساب کنار خلاصه‌ی سفارش) اتفاق می‌افتد،
   نه داخل خودِ فرم. */
.woocommerce-checkout .col2-set{ display:grid; grid-template-columns:1fr; gap:var(--ara-s5); }
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2{ width:auto; float:none; }

/* چیدمان دو ستونه‌ی کل صفحه‌ی تسویه‌حساب: فرم صورتحساب سمت اصلی، خلاصه‌ی
   سفارش + پرداخت به‌صورت ستون کناری چسبان. گرید مستقیماً روی خودِ
   <form class="checkout"> اعمال می‌شود تا فقط فرزندهای واقعی فرم
   (صورتحساب و خلاصه‌ی سفارش) در چیدمان محاسبه شوند. */
@media (min-width:900px){
  body.woocommerce-checkout form.checkout{
    display:grid; grid-template-columns:minmax(0,1fr) 400px; align-items:start; gap:var(--ara-s6);
  }
  /* col2-set را صراحتاً به ردیف ۲ می‌بریم (نه span) تا ردیف ۱ فقط ارتفاع
     خودِ تیتر «سفارش شما» را بگیرد (کوتاه)، و ردیف ۲ همزمان فرم صورتحساب
     و خلاصه‌ی سفارش را هم‌تراز و هم‌راستا کنار هم بچیند — بدون فاصله‌ی خالی
     اضافه که روش span ایجاد می‌کرد. */
  body.woocommerce-checkout form.checkout > .col2-set{ grid-column:1; grid-row:2; }
  body.woocommerce-checkout form.checkout > #order_review_heading,
  body.woocommerce-checkout form.checkout > #order_review{
    grid-column:2;
  }
  body.woocommerce-checkout #order_review{ position:sticky; top:var(--ara-s6); }
}

.woocommerce-billing-fields,
.woocommerce-shipping-fields,
.woocommerce-additional-fields{
  padding:var(--ara-s6); border-radius:var(--ara-r-xl);
  background:var(--ara-glass-bg); border:1px solid var(--ara-glass-line-soft);
  box-shadow:var(--ara-e1);
  margin-bottom:var(--ara-s5);
}
/* ووکامرس همیشه یک div.woocommerce-shipping-fields چاپ می‌کند، حتی وقتی
   گزینه‌ی «ارسال به آدرس دیگر» فعال نیست — یعنی این باکس کاملاً خالی است
   (بدون حتی یک فرزند مخفی). بدون این قانون، همان جعبه‌ی سبک‌دهی‌شده (حاشیه،
   سایه، پدینگ) با محتوای خالی رندر می‌شود و یک کادر تو خالی و بی‌معنی وسط
   صفحه ایجاد می‌کند. با :empty فقط در همین حالت کاملاً خالی پنهانش می‌کنیم؛
   اگر کاربر تیک «ارسال به آدرس دیگر» را بزند و ووکامرس فیلدها را داخلش
   تزریق کند، دیگر :empty نیست و طبق معمول نمایش داده می‌شود. */
.woocommerce-shipping-fields:empty{ display:none; }
.woocommerce-billing-fields h3,
.woocommerce-additional-fields h3,
#ship-to-different-address{ font-size:var(--ara-fs-md); margin-bottom:var(--ara-s4); }
#ship-to-different-address label{ display:flex; align-items:center; gap:10px; cursor:pointer; }

/* بعضی از فیلدهای آدرس (بخصوص «کشور/منطقه» و «استان») توسط اسکریپت خودِ
   ووکامرس (country-select.js) در واکنش به AJAX تغییر کشور، دوباره رندر یا
   بلاک (blockUI) می‌شوند؛ در همین بازه‌ی کوتاه، ووکامرس گاهی یک عرض پیکسلیِ
   نادرست را مستقیماً به‌صورت inline style روی خودِ ردیف (p.form-row) یا
   لفافه‌ی ورودی (woocommerce-input-wrapper) تزریق می‌کند — نتیجه‌اش دقیقاً
   همان نمونه‌ی قبلی است: متن لیبل و باکس ورودی حرف‌به‌حرف زیر هم می‌افتند.
   چون این استایل توسط جاوااسکریپت و به‌صورت inline نوشته می‌شود، تنها راه
   مطمئنِ غیر هکی برای خنثی‌کردنش، همانند راه‌حل قبلیِ select2، اجبار عرض
   با !important روی خودِ ردیف و لفافه است. */
.woocommerce form .form-row:not(.form-row-first):not(.form-row-last),
.woocommerce form .form-row .woocommerce-input-wrapper{ width:100%!important; max-width:100%!important; }
.woocommerce form .form-row{ display:flex; flex-direction:column; margin-bottom:var(--ara-s4); padding:0; }
.woocommerce form .form-row label{
  font-size:var(--ara-fs-sm); font-weight:700; margin-bottom:8px; color:var(--ara-ink);
}
.woocommerce form .form-row label .required{ color:var(--ara-danger); text-decoration:none; }
.woocommerce form .form-row .optional{ color:var(--ara-ink-mute); font-weight:400; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select{
  width:100%; min-height:50px; padding:13px var(--ara-s4);
  border-radius:var(--ara-r-sm);
  background:var(--ara-glass-bg-soft); border:1px solid var(--ara-glass-line-soft);
  color:var(--ara-ink); font-size:var(--ara-fs-base);
  transition:border-color var(--ara-t) var(--ara-ease), box-shadow var(--ara-t) var(--ara-ease);
}
.woocommerce form .form-row textarea{ min-height:110px; line-height:1.8; }
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus{
  outline:none; border-color:var(--ara-primary);
  box-shadow:0 0 0 4px var(--ara-primary-tint);
}
.woocommerce form .form-row.woocommerce-invalid input.input-text{ border-color:var(--ara-danger); }
.woocommerce form .form-row.woocommerce-validated input.input-text{ border-color:var(--ara-success); }
@media (min-width:640px){
  .woocommerce form .form-row-first,
  .woocommerce form .form-row-last{ width:calc(50% - 8px); display:inline-flex; }
  .woocommerce form .form-row-first{ float:right; }
  .woocommerce form .form-row-last{ float:left; }
  .woocommerce form .clear{ clear:both; }
}

/* عرض select2 گاهی هنگام مقداردهی اولیه (مثلاً فیلد استان که در ابتدا پنهان است)
   درست محاسبه نمی‌شود و باعث می‌شود متن هر گزینه کاراکتر به کاراکتر زیر هم بیفتد؛
   عرض را همیشه صریحاً ۱۰۰٪ نگه می‌داریم. */
.select2-container{ width:100%!important; }
.select2-container--default .select2-selection--single{
  height:50px!important; padding:0 6px;
  border-radius:var(--ara-r-sm)!important;
  background:var(--ara-glass-bg-soft)!important;
  border:1px solid var(--ara-glass-line-soft)!important;
}
.select2-container--default .select2-selection--single .select2-selection__rendered{
  line-height:48px!important; color:var(--ara-ink)!important; padding-inline-start:10px!important;
  overflow:hidden!important; text-overflow:ellipsis!important; white-space:nowrap!important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow{ height:48px!important; }
.select2-dropdown{
  border-radius:var(--ara-r-sm)!important; overflow:hidden;
  border-color:var(--ara-line)!important; background:var(--ara-bg)!important; color:var(--ara-ink);
}
.select2-container--default .select2-results__option--highlighted[aria-selected]{
  background:var(--ara-primary)!important; color:var(--ara-on-primary)!important;
}
/* گاهی select2 هنگام مقداردهی اولیه (مثلاً فیلد کشور که پیش از رندر کامل فرم
   مقداردهی می‌شود) عرض نتیجه‌ها را عددی خیلی کوچک محاسبه می‌کند؛ نتیجه‌اش این
   می‌شود که هر گزینه از منو حرف‌به‌حرف زیر هم می‌افتد (به‌جای یک خط افقی).
   با اجبار به عدم شکستن خط + یک حداقل عرض منطقی، این حالت همیشه رفع می‌شود،
   صرف‌نظر از اینکه چرا select2 عرض را اشتباه محاسبه کرده. */
.select2-results__option{ white-space:nowrap!important; }
.select2-container--open .select2-dropdown{ min-width:220px; }

#order_review_heading{ font-size:var(--ara-fs-md); margin:var(--ara-s5) 0 var(--ara-s4); }
#order_review{
  padding:var(--ara-s6); border-radius:var(--ara-r-xl);
  background:var(--ara-glass-bg); border:1px solid var(--ara-glass-line-soft);
  box-shadow:var(--ara-e2), inset 0 1px 0 var(--ara-glass-inner);
  width:100%; min-width:0; box-sizing:border-box;
}
/* اگر به هر دلیلی (مثلاً یک لایه‌ی گرید/فلکس دیگر که این جدول داخلش می‌افتد)
   عرض واقعی محفظه به‌درستی محاسبه نشود، جدولِ auto-layout پیش‌فرض مرورگر
   می‌تواند تا حد له‌شدن کاراکتر‌به‌کاراکتر متن جمع شود. با ثابت‌کردن عرض جدول
   روی ۱۰۰٪ محفظه‌اش و table-layout:fixed، این ریسک همیشه از بین می‌رود. */
table.woocommerce-checkout-review-order-table{
  border:0; margin-bottom:var(--ara-s5);
  width:100%; table-layout:fixed;
}
table.woocommerce-checkout-review-order-table .product-name{
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; width:56%;
}
table.woocommerce-checkout-review-order-table .product-total,
table.woocommerce-checkout-review-order-table tfoot th,
table.woocommerce-checkout-review-order-table tfoot td{ width:44%; white-space:nowrap; }
table.woocommerce-checkout-review-order-table .woocommerce-Price-amount{ white-space:nowrap; }
table.woocommerce-checkout-review-order-table thead{ display:none; }
table.woocommerce-checkout-review-order-table tbody tr{ border-bottom:1px dashed var(--ara-glass-line-soft); }
table.woocommerce-checkout-review-order-table th,
table.woocommerce-checkout-review-order-table td{
  padding:9px 0; border:0!important; font-size:var(--ara-fs-sm); text-align:start;
}
table.woocommerce-checkout-review-order-table td{ text-align:end; font-weight:700; }
table.woocommerce-checkout-review-order-table .product-quantity{ color:var(--ara-ink-mute); font-weight:400; }
table.woocommerce-checkout-review-order-table tfoot th{ color:var(--ara-ink-soft); font-weight:600; }
table.woocommerce-checkout-review-order-table tfoot tr.order-total th,
table.woocommerce-checkout-review-order-table tfoot tr.order-total td{
  padding-top:16px; border-top:1px solid var(--ara-line)!important;
  font-size:var(--ara-fs-lg); font-weight:800; color:var(--ara-primary);
}

/* --- چهار استایل آماده روی خلاصه‌ی سفارش تسویه‌حساب --- */
body.ara-cart-style-2 #order_review{ box-shadow:none; border:1px solid var(--ara-line); }
body.ara-cart-style-2 table.woocommerce-checkout-review-order-table tbody tr{ border-bottom:1px solid var(--ara-line); }

body.ara-cart-style-3 #order_review{
  background:linear-gradient(160deg, var(--ara-primary-tint), transparent);
  border:2px solid var(--ara-primary); box-shadow:none;
}

body.ara-cart-style-4 #order_review{ padding:var(--ara-s4); }
body.ara-cart-style-4 table.woocommerce-checkout-review-order-table th,
body.ara-cart-style-4 table.woocommerce-checkout-review-order-table td{ padding:6px 0; font-size:var(--ara-fs-xs); }
body.ara-cart-style-4 table.woocommerce-checkout-review-order-table tfoot tr.order-total th,
body.ara-cart-style-4 table.woocommerce-checkout-review-order-table tfoot tr.order-total td{ padding-top:10px; font-size:var(--ara-fs-md); }

.wc_payment_methods{ list-style:none; margin:0 0 var(--ara-s5); padding:0; display:flex; flex-direction:column; gap:10px; }
.wc_payment_method{
  padding:var(--ara-s4); border-radius:var(--ara-r-md);
  background:var(--ara-glass-bg-soft); border:1.5px solid var(--ara-glass-line-soft);
  transition:border-color var(--ara-t) var(--ara-ease);
}
.wc_payment_method:has(input:checked){ border-color:var(--ara-primary); background:var(--ara-primary-tint); }
.wc_payment_method label{ display:flex; align-items:center; gap:10px; font-weight:700; font-size:var(--ara-fs-sm); cursor:pointer; }
.wc_payment_method input[type="radio"]{ accent-color:var(--ara-primary); width:18px; height:18px; }
.wc_payment_method .payment_box{
  margin-top:12px; padding:var(--ara-s4);
  border-radius:var(--ara-r-sm);
  background:var(--ara-glass-bg); font-size:var(--ara-fs-xs); color:var(--ara-ink-soft);
}
.wc_payment_method .payment_box::before{ display:none; }
.woocommerce-terms-and-conditions-wrapper{ font-size:var(--ara-fs-xs); color:var(--ara-ink-soft); margin-bottom:var(--ara-s4); }
.woocommerce-terms-and-conditions-wrapper label{ display:flex; align-items:flex-start; gap:10px; }
#place_order{ width:100%!important; min-height:56px!important; font-size:var(--ara-fs-md)!important; }

.woocommerce-form-coupon-toggle .woocommerce-info{ border-inline-start-color:var(--ara-accent); }
form.checkout_coupon{
  display:flex; flex-wrap:wrap; gap:var(--ara-s3); align-items:flex-end;
  padding:var(--ara-s5); margin-bottom:var(--ara-s5);
  border-radius:var(--ara-r-lg);
  background:var(--ara-accent-tint);
  border:1.5px dashed color-mix(in srgb, var(--ara-accent) 45%, transparent);
}
form.checkout_coupon .form-row{ flex:1 1 200px; margin:0; }
form.checkout_coupon .form-row-last{ flex:0 0 auto; }

/* =========================================================
   9) حساب کاربری
   ========================================================= */
.woocommerce-account .woocommerce{ display:grid; grid-template-columns:1fr; gap:var(--ara-s5); }
@media (min-width:900px){
  .woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation){
    grid-template-columns:250px minmax(0,1fr);
    align-items:start;
  }
}
.woocommerce-MyAccount-navigation{
  padding:var(--ara-s4); border-radius:var(--ara-r-xl);
  background:var(--ara-glass-bg); border:1px solid var(--ara-glass-line-soft);
  box-shadow:var(--ara-e1);
}
.woocommerce-MyAccount-navigation ul{ display:flex; flex-direction:column; gap:2px; }
.woocommerce-MyAccount-navigation li a{
  display:block; padding:12px var(--ara-s4); border-radius:var(--ara-r-sm);
  font-size:var(--ara-fs-sm); font-weight:600; color:var(--ara-ink-soft);
  transition:all var(--ara-t) var(--ara-ease);
}
.woocommerce-MyAccount-navigation li a:hover{ background:var(--ara-primary-tint); color:var(--ara-primary); }
.woocommerce-MyAccount-navigation li.is-active a{
  background:var(--ara-primary); color:var(--ara-on-primary);
  box-shadow:var(--ara-e-primary);
}
.woocommerce-MyAccount-content{
  padding:var(--ara-s6); border-radius:var(--ara-r-xl);
  background:var(--ara-glass-bg); border:1px solid var(--ara-glass-line-soft);
  box-shadow:var(--ara-e1);
  font-size:var(--ara-fs-sm); color:var(--ara-ink-soft);
}
.woocommerce-MyAccount-content a{ color:var(--ara-primary); font-weight:600; }

table.woocommerce-orders-table,
table.shop_table_responsive{
  font-size:var(--ara-fs-sm); border-radius:var(--ara-r-md); overflow:hidden; border:1px solid var(--ara-line);
}
table.shop_table th{ background:var(--ara-glass-bg-soft); font-weight:700; color:var(--ara-ink); }
table.shop_table th,
table.shop_table td{ padding:13px 14px; border-bottom:1px solid var(--ara-line); text-align:start; }

.woocommerce-form-login,
.woocommerce-form-register{
  padding:var(--ara-s6); border-radius:var(--ara-r-xl);
  background:var(--ara-glass-bg); border:1px solid var(--ara-glass-line-soft);
  box-shadow:var(--ara-e1);
}
.woocommerce-form-login__rememberme{ display:flex; align-items:center; gap:8px; }

/* =========================================================
   10) ابزارک‌های فیلتر ووکامرس
   ========================================================= */
.ara-filters .widget_price_filter .price_slider_wrapper{ padding-top:8px; }
.widget_price_filter .ui-slider{
  position:relative; height:5px; border-radius:999px;
  background:color-mix(in srgb, var(--ara-ink) 12%, transparent); margin:12px 0 20px;
}
.widget_price_filter .ui-slider .ui-slider-range{ position:absolute; height:100%; background:var(--ara-primary); border-radius:999px; }
.widget_price_filter .ui-slider .ui-slider-handle{
  position:absolute; top:-7px; width:19px; height:19px; margin-inline-start:-9px;
  border-radius:50%; background:#fff; border:3px solid var(--ara-primary);
  box-shadow:var(--ara-e1); cursor:grab;
}
.widget_price_filter .price_slider_amount{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:var(--ara-fs-xs); }
.widget_price_filter .price_slider_amount .button{ order:2; }
.widget_price_filter .price_label{ order:1; color:var(--ara-ink-soft); }

.ara-filters .widget ul li{ padding:7px 0; font-size:var(--ara-fs-sm); }
.ara-filters .widget ul li a{ color:var(--ara-ink-soft); }
.ara-filters .widget ul li a:hover{ color:var(--ara-primary); }
.ara-filters .widget .count{ color:var(--ara-ink-mute); font-size:var(--ara-fs-xs); }

/* =========================================================
   11) اسکلت خالی
   ========================================================= */
.woocommerce-no-products-found{ padding:var(--ara-s7) 0; }

/* =========================================================
   استایل‌های اختصاصی موبایل — کارت محصول، سربرگ/نوار ابزار فروشگاه
   همه‌ی قوانین این بخش با @media (max-width:767px) محدود شده‌اند تا
   دیزاین دسکتاپ بدون تغییر بماند.
   ========================================================= */

/* بج دسته‌بندی روی گوشه‌ی عکس محصول: پیش‌فرض/دسکتاپ مخفی (همان متن قبلی زیر عنوان باقی می‌ماند) */
.ara-cat-badge-img{
  position:absolute; bottom:10px; inset-inline-start:10px; z-index:2;
  padding:4px 10px; border-radius:var(--ara-r-pill);
  background:rgba(20,17,42,.72); color:#fff;
  font-size:10px; font-weight:700;
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  max-width:calc(100% - 20px); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  display:none;
}

@media (max-width:767px){

  /* ===== ۵/۶/۸) کارت محصول: کوچک‌تر و سبک‌تر، قیمت+دکمه از قبل هم‌ردیف بودند فقط جمع‌وجورتر شدند، بج دسته‌بندی روی عکس ===== */
  ul.products{ gap:var(--ara-s2); }
  .ara-product-body{ padding:var(--ara-s3); }
  .ara-product-title{ font-size:12.5px; min-height:2.6em; margin-bottom:6px; }
  .ara-product-rating{ margin-bottom:6px; }
  .ara-product-price .price{ font-size:13px; }
  .ara-add-to-cart{ width:34px; height:34px; }
  .ara-add-to-cart svg{ width:15px; height:15px; }
  .ara-product-quick{ display:none; }

  .ara-product-cat{ display:none; }
  .ara-cat-badge-img{ display:inline-block; }

  /* ===== ۱۲/۱۳/۱۴) بهبود بیشتر صفحه فروشگاه در موبایل ===== */
  .ara-shop-head-desc-wrap{ margin:var(--ara-s4) 0; padding:var(--ara-s4) var(--ara-s5); }
  .ara-shop-cat-band{ margin-bottom:var(--ara-s2); }

  /* ===== ۱۵) بدون بکگراند اضافه پشت دکمه‌های بالای فروشگاه ===== */
  .ara-shop-toolbar-row{ background:none; }

  /* ===== تسویه‌حساب: خلاصه‌ی سفارش تا حد ممکن جمع‌وجور، و فضای پایین برای نوار چسبان پرداخت ===== */
  #order_review{ padding:var(--ara-s4); }
  table.woocommerce-checkout-review-order-table th,
  table.woocommerce-checkout-review-order-table td{ padding:7px 0; font-size:var(--ara-fs-xs); }
  table.woocommerce-checkout-review-order-table tfoot tr.order-total th,
  table.woocommerce-checkout-review-order-table tfoot tr.order-total td{ font-size:var(--ara-fs-md); }
  body.woocommerce-checkout .ara-wc-page{ padding-bottom:90px; }
}

/* =========================================================
   نوار چسبان پرداخت در موبایل (صفحه‌ی تسویه‌حساب) — مبلغ نهایی + دکمه‌ی پرداخت
   ========================================================= */
.ara-checkout-stickybar{ display:none; }
@media (max-width:767px){
  .ara-checkout-stickybar{
    display:flex; align-items:center; justify-content:space-between; gap:var(--ara-s3);
    position:fixed; inset-inline:0; bottom:0; z-index:40;
    padding:12px var(--ara-s4); padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));
    background:var(--ara-glass-bg-strong);
    border-top:1px solid var(--ara-glass-line-soft);
    -webkit-backdrop-filter:blur(var(--ara-blur,16px)); backdrop-filter:blur(var(--ara-blur,16px));
    box-shadow:0 -6px 24px rgba(0,0,0,.1);
  }
  .ara-checkout-stickybar-total{ display:flex; flex-direction:column; gap:2px; min-width:0; }
  .ara-checkout-stickybar-total span{ font-size:var(--ara-fs-xs); color:var(--ara-ink-soft); }
  .ara-checkout-stickybar-total strong{ font-size:var(--ara-fs-md); font-weight:800; color:var(--ara-primary); white-space:nowrap; }
  .ara-checkout-stickybar [data-ara-checkout-stickybar-pay]{ flex:0 0 auto; min-height:46px; padding:0 var(--ara-s5); }
}

/* =========================================================
   نوار چسبان «افزودن به سبد» در موبایل (صفحه‌ی تک‌محصول)
   ========================================================= */
.ara-product-stickybar{ display:none; }
@media (max-width:767px){
  .ara-woo-single{ padding-bottom:88px; }
  .ara-product-stickybar{
    display:flex; align-items:center; justify-content:space-between; gap:var(--ara-s3);
    position:fixed; inset-inline:0; bottom:0; z-index:40;
    padding:12px var(--ara-s4); padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));
    background:var(--ara-glass-bg-strong);
    border-top:1px solid var(--ara-glass-line-soft);
    -webkit-backdrop-filter:blur(var(--ara-blur,16px)); backdrop-filter:blur(var(--ara-blur,16px));
    box-shadow:0 -6px 24px rgba(0,0,0,.1);
  }
  .ara-product-stickybar-price{ font-size:var(--ara-fs-md); font-weight:800; color:var(--ara-primary); min-width:0; }
  .ara-product-stickybar-price del{ display:none; }
  .ara-product-stickybar [data-ara-product-stickybar-add]{ flex:0 0 auto; min-height:46px; padding:0 var(--ara-s5); }

  /* ===== تک‌محصول: گالری/خلاصه/تب‌ها کمی جمع‌وجورتر در موبایل (باقی چیدمان در product-single.css) ===== */
  .ara-product-gallery-wrap{ padding:var(--ara-s2); }
  .ara-woo-single .product_title{ font-size:var(--ara-fs-lg); }
  .ara-woo-single div.product p.price,
  .ara-woo-single div.product span.price{ font-size:var(--ara-fs-xl); }
  .woocommerce-tabs .panel{ padding:var(--ara-s4); }
}

/* =========================================================
   سازگاری با «بلوک‌های سبد خرید/تسویه‌حساب» ووکامرس (WC Cart/Checkout Blocks)
   ---------------------------------------------------------
   اگر صفحه‌ی سبدخرید/تسویه‌حساب به‌جای شورت‌کد کلاسیک ([woocommerce_cart] /
   [woocommerce_checkout]) از بلوک‌های جدید ووکامرس استفاده کند، هیچ‌کدام از
   استایل‌های بالا (که برای مارک‌آپ کلاسیک نوشته شده) اعمال نمی‌شوند و ظاهر
   با بقیه‌ی سایت هماهنگ نخواهد بود. این بخش حداقل رنگ/فونت/گردی‌ گوشه‌ها را
   با تم هماهنگ می‌کند؛ برای هماهنگی کامل بهتر است در ویرایشگر صفحه، محتوای
   Cart/Checkout روی حالت کلاسیک (شورت‌کد) تنظیم شود.
   ========================================================= */
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout{ font-family:inherit; color:var(--ara-ink); }
.wc-block-components-text-input input,
.wc-block-components-textarea textarea,
.wc-block-components-select select,
.wc-block-components-combobox-control input{
  border-radius:var(--ara-r-sm)!important;
  background:var(--ara-glass-bg-soft)!important;
  border-color:var(--ara-glass-line-soft)!important;
  color:var(--ara-ink)!important;
}
.wc-block-components-radio-control__option{
  border-radius:var(--ara-r-md)!important;
  border-color:var(--ara-glass-line-soft)!important;
}
.wc-block-components-radio-control__input:checked + .wc-block-components-radio-control__label,
.wc-block-components-radio-control__option.wc-block-components-radio-control__option-checked{
  border-color:var(--ara-primary)!important;
}
.wc-block-components-button,
.wp-block-woocommerce-checkout .wc-block-components-checkout-place-order-button{
  background:var(--ara-primary)!important; color:var(--ara-on-primary)!important;
  border-radius:var(--ara-r-pill)!important; font-weight:700!important;
}
.wc-block-components-totals-item__value,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value{
  color:var(--ara-primary)!important; font-weight:800!important;
}
.wc-block-cart-item__wrap,
.wc-block-components-panel{
  border-radius:var(--ara-r-lg)!important;
  border-color:var(--ara-glass-line-soft)!important;
}
@media (max-width:767px){
  .wp-block-woocommerce-checkout.wc-block-checkout__form,
  .wp-block-woocommerce-cart .wc-block-cart{
    display:flex!important; flex-direction:column!important;
  }
}

/* =========================================================
   به‌روزرسانی خودکار سبد خرید — بدون نیاز به کلیک دستی روی
   «به‌روزرسانی سبد خرید». وقتی تعداد یک محصول تغییر می‌کند،
   assets/js/cart-auto-update.js همین کلاس را به‌طور موقت روی
   فرم سبد/جدول خلاصه‌ی سفارش می‌گذارد تا کاربر بفهمد سیستم در
   حال محاسبه‌ی دوباره است؛ با پایان درخواست آژاکس، خودکار حذف می‌شود.
   ========================================================= */
.ara-cart-updating{ position:relative; }
.ara-cart-updating > *{ opacity:.45; pointer-events:none; transition:opacity .15s ease; }
.ara-cart-updating::after{
  content:""; position:absolute; z-index:5; top:50%; inset-inline-start:50%;
  width:30px; height:30px; margin:-15px 0 0 -15px;
  border-radius:50%; border:3px solid var(--ara-glass-line);
  border-top-color:var(--ara-primary);
  animation:ara-cart-spin .7s linear infinite;
}
@keyframes ara-cart-spin{ to{ transform:rotate(360deg); } }
