/* ==========================================================================
   woocommerce.css  =  نگاشت markup ووکامرس به کامپوننت‌های سیستم طراحی
   طراحی تازه اینجا ساخته نمی‌شود: هر قاعده می‌گوید کدام selector ووکامرس
   شبیه کدام کامپوننت components.css شود. از ووکامرس فقط woocommerce-layout و
   smallscreen (ستون‌بندی سبد و چک‌اوت) صف می‌شود؛ woocommerce-general حذف شده.
   ========================================================================== */

/* ==== ۱. ریست ستون‌بندی ووکامرس برای شبکه و کاروسل قالب =================== */
:is(.woocommerce, .woocommerce-page) ul.products.ca-grid-products,
:is(.woocommerce, .woocommerce-page) ul.products.ca-carousel__track { margin: 0; padding: 0; list-style: none; }
ul.products.ca-grid-products::before, ul.products.ca-grid-products::after,
ul.products.ca-carousel__track::before, ul.products.ca-carousel__track::after { content: none; display: none; }
:is(.woocommerce, .woocommerce-page) ul.products li.product.ca-product,
ul.products li.product.ca-product { float: none; inline-size: auto; width: auto; margin: 0; padding: 0; }
ul.products.ca-grid-products { display: grid; } /* شورت‌کد [products] خارج از .woocommerce */
.ca-product .ca-product__media img { margin: 0; box-shadow: none; block-size: 100%; }
.ca-product .ca-product__quick .button { margin: 0; }
.ca-product .ca-product__quick .added_to_cart { display: none; } /* توست جایش را می‌گیرد */
.ca-product .ca-product__quick .ca-btn.loading { position: relative; color: transparent; pointer-events: none; }
.ca-product .ca-product__quick .ca-btn.loading::after {
  content: ""; position: absolute; inset: 0; margin: auto; inline-size: 1.15em; block-size: 1.15em;
  border: 2px solid var(--ca-color-text); border-block-start-color: transparent; border-radius: var(--ca-radius-circle);
  animation: ca-spin 700ms linear infinite;
}
.ca-product .ca-product__quick .ca-btn.added::before { content: none; }

/* ==== ۲. دکمه‌ها ← .ca-btn ============================================= */
:is(.woocommerce, .woocommerce-page) :where(a.button, button.button, input.button, input#submit):not(.ca-btn) {
  /* :where تا specificity همه‌ی selector ها یکی بماند (یک ID مثل #respond قاعده‌ی .alt را می‌بازاند) */
  --btn-bg: var(--ca-color-bg); --btn-fg: var(--ca-color-text); --btn-bd: var(--ca-color-border-control);
  --btn-bg-hover: var(--ca-color-bg); --btn-bd-hover: var(--ca-color-text); --btn-bg-active: var(--ca-color-hover-bg);
  --btn-ring: var(--ca-color-text);
  display: inline-flex; align-items: center; justify-content: center; gap: var(--ca-btn-gap);
  min-block-size: var(--ca-control-h-md); padding: var(--ca-space-1) var(--ca-btn-px-md);
  border: 1px solid var(--btn-bd); border-radius: var(--ca-radius-md);
  background: var(--btn-bg); color: var(--btn-fg);
  font: inherit; font-size: var(--ca-btn-font-md); font-weight: var(--ca-weight-semibold); line-height: var(--ca-leading-tight);
  text-decoration: none; text-align: center; cursor: pointer;
  transition: background-color var(--ca-dur-fast) var(--ca-ease-out), border-color var(--ca-dur-fast), color var(--ca-dur-fast), transform var(--ca-dur-fast);
}
/* دکمه‌ی اصلی: .alt، خرید، پرداخت، ثبت سفارش */
:is(.woocommerce, .woocommerce-page) :where(a.button, button.button, input.button, input#submit):is(.alt, .single_add_to_cart_button, .checkout-button, [name="woocommerce_checkout_place_order"]):not(.ca-btn) {
  --btn-bg: var(--ca-color-primary); --btn-fg: var(--ca-color-on-primary); --btn-bd: transparent;
  --btn-bg-hover: var(--ca-color-primary-hover); --btn-bd-hover: transparent; --btn-bg-active: var(--ca-color-primary-active);
  --btn-ring: var(--ca-focus-color);
}
:is(.woocommerce, .woocommerce-page) :where(.single_add_to_cart_button, .checkout-button, [name="woocommerce_checkout_place_order"]):not(.ca-btn) { min-block-size: var(--ca-control-h-lg); font-size: var(--ca-btn-font-lg); padding-inline: var(--ca-btn-px-lg); }
@media (hover: hover) {
  :is(.woocommerce, .woocommerce-page) :where(a.button, button.button, input.button, input#submit):not(.ca-btn):hover { background: var(--btn-bg-hover); border-color: var(--btn-bd-hover); color: var(--btn-fg); }
}
:is(.woocommerce, .woocommerce-page) :where(a.button, button.button, input.button, input#submit):not(.ca-btn):active { background: var(--btn-bg-active); transform: translateY(1px); }
:is(.woocommerce, .woocommerce-page) :where(a.button, button.button, input.button, input#submit):not(.ca-btn):focus-visible { outline: var(--ca-focus-width) solid var(--btn-ring); outline-offset: var(--ca-focus-offset); }
:is(.woocommerce, .woocommerce-page) :where(a.button, button.button, input.button):is(:disabled, .disabled, [aria-disabled="true"]):not(.ca-btn) {
  background: var(--ca-color-disabled-bg); border-color: transparent; color: var(--ca-color-text-disabled); cursor: not-allowed; transform: none; opacity: 1;
}
:is(.woocommerce, .woocommerce-page) :where(a.button, button.button).loading:not(.ca-btn) { opacity: 0.7; pointer-events: none; }
.woocommerce a.remove { /* حذف از سبد ← ghost آیکون قرمز */
  display: inline-grid; place-items: center; inline-size: var(--ca-control-h-sm); block-size: var(--ca-control-h-sm);
  border-radius: var(--ca-radius-md); color: var(--ca-color-danger-text) !important; font-size: 1.25rem; text-decoration: none; line-height: 1;
}
@media (hover: hover) { .woocommerce a.remove:hover { background: var(--ca-color-danger-subtle); } }

/* ==== ۳. قیمت ← .ca-price =============================================== */
.woocommerce .price, .ca-price, .woocommerce-Price-amount { font-feature-settings: var(--ca-font-features-tabular); }
:is(.ca-price, .woocommerce div.product .summary .price, .woocommerce ul.products li.product .price) {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--ca-space-1) var(--ca-space-2);
  color: var(--ca-color-text); font-weight: var(--ca-weight-extrabold); line-height: var(--ca-leading-tight);
}
:is(.ca-price, .woocommerce .price) ins { order: -1; text-decoration: none; }
:is(.ca-price, .woocommerce .price) del { order: 0; color: var(--ca-color-text-muted); font-size: var(--ca-text-sm); font-weight: var(--ca-weight-regular); opacity: 1; text-decoration-thickness: 1px; }
:is(.ca-price, .woocommerce .price) del .woocommerce-Price-currencySymbol { display: none; }
.woocommerce-Price-currencySymbol { font-size: 0.75em; font-weight: var(--ca-weight-medium); color: var(--ca-color-text-secondary); }
.woocommerce div.product .summary .price { font-size: var(--ca-text-h3); margin-block: var(--ca-space-3); }
.woocommerce div.product .summary .price del { font-size: var(--ca-text-md); }

/* ==== ۴. اعلان‌ها ← .ca-alert =========================================== */
:is(.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notice) {
  --alert-bg: var(--ca-color-info-subtle); --alert-fg: var(--ca-color-info-text);
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ca-space-2) var(--ca-space-4);
  margin: 0 0 var(--ca-space-6); padding: var(--ca-space-3) var(--ca-space-4);
  border: 0; border-radius: var(--ca-radius-md); background: var(--alert-bg); color: var(--ca-color-text);
  font-size: var(--ca-text-sm); line-height: var(--ca-leading-sm); list-style: none;
}
.woocommerce-message { --alert-bg: var(--ca-color-success-subtle); --alert-fg: var(--ca-color-success-text); }
.woocommerce-error { --alert-bg: var(--ca-color-danger-subtle); --alert-fg: var(--ca-color-danger-text); display: grid; }
:is(.woocommerce-message, .woocommerce-info, .woocommerce-error)::before { content: none; }
:is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a:not(.button) { color: var(--alert-fg); font-weight: var(--ca-weight-bold); }
:is(.woocommerce-message, .woocommerce-info) .button { order: 2; min-block-size: var(--ca-control-h-sm) !important; font-size: var(--ca-btn-font-sm) !important; }
.woocommerce-error li { margin: 0; }
.woocommerce-notices-wrapper:empty { display: none; }
/* ووکامرس اعلان را برای صفحه‌خوان focus می‌کند؛ اعلان تعاملی نیست، پس حلقه‌ی فوکوس لازم ندارد */
:is(.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notices-wrapper)[tabindex="-1"]:focus { outline: none; }
.woocommerce form .form-row .required { color: var(--ca-color-danger-text); text-decoration: none; }
.woocommerce form .form-row.woocommerce-invalid :is(input.input-text, select, textarea) { border-color: var(--ca-color-danger); }
.woocommerce form .form-row.woocommerce-validated :is(input.input-text, select) { border-color: var(--ca-color-success); }

/* ==== ۵. فرم‌ها ← .ca-input / .ca-label ================================= */
.woocommerce form .form-row { display: grid; gap: var(--ca-space-2); margin: 0 0 var(--ca-space-4); padding: 0; }
.woocommerce form .form-row label { margin: 0; font-size: var(--ca-text-sm); font-weight: var(--ca-weight-semibold); line-height: var(--ca-leading-tight); }
.woocommerce form .form-row label.checkbox, .woocommerce form .form-row .woocommerce-form__label-for-checkbox { display: flex; align-items: center; gap: var(--ca-space-2); font-weight: var(--ca-weight-regular); }
:is(.woocommerce, .woocommerce-page) :is(form .form-row, .woocommerce-ordering, .coupon, .woocommerce-form) :is(input.input-text, input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="number"], textarea):not(.ca-qty__input):not(.ca-input) ,
.woocommerce form .form-row :is(.input-text, textarea) {
  inline-size: 100%; min-block-size: var(--ca-control-h-md); padding: var(--ca-space-2) var(--ca-input-px);
  border: 1px solid var(--ca-color-border-control); border-radius: var(--ca-radius-md);
  background: var(--ca-color-bg); color: var(--ca-color-text); font-size: var(--ca-text-md); line-height: var(--ca-leading-tight);
  transition: border-color var(--ca-dur-fast) var(--ca-ease-out), box-shadow var(--ca-dur-fast);
}
.woocommerce form .form-row textarea { min-block-size: 7.5rem; line-height: var(--ca-leading-body); }
.woocommerce form .form-row :is(.input-text, textarea):focus,
.woocommerce :is(.coupon, .woocommerce-form) input:focus { outline: none; border-color: var(--ca-color-primary); box-shadow: var(--ca-focus-ring-soft); }
.woocommerce form .form-row input[type="checkbox"], .woocommerce input[type="checkbox"].input-checkbox,
.woocommerce form .form-row input[type="radio"], .woocommerce ul#shipping_method input[type="radio"],
.woocommerce .wc_payment_methods input[type="radio"] { accent-color: var(--ca-color-primary); inline-size: 18px; block-size: 18px; margin: 0; }
.woocommerce form .password-input { display: flex; position: relative; }
.woocommerce form .show-password-input { position: absolute; inset-inline-end: var(--ca-space-3); inset-block: 0; margin-block: auto; block-size: 24px; background: none; border: 0; cursor: pointer; }
.woocommerce .woocommerce-form-coupon-toggle .woocommerce-info { margin-block-end: var(--ca-space-4); }

/* ==== ۶. امتیاز ستاره‌ای ← .ca-stars ===================================== */
.woocommerce .star-rating {
  position: relative; display: inline-block; overflow: hidden;
  inline-size: 5.4em; block-size: 1em; font-size: 1rem; line-height: 1;
  background: var(--ca-color-border-strong);
  -webkit-mask: var(--ca-stars-mask) repeat-x left / 1.08em 1em; mask: var(--ca-stars-mask) repeat-x left / 1.08em 1em;
  --ca-stars-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 24'%3E%3Cpath d='M12.53 2.3a.53.53 0 0 1 .95 0l2.31 4.68a2.12 2.12 0 0 0 1.6 1.16l5.16.76a.53.53 0 0 1 .3.9l-3.74 3.64a2.12 2.12 0 0 0-.61 1.88l.88 5.14a.53.53 0 0 1-.77.56l-4.62-2.43a2.12 2.12 0 0 0-1.97 0L7.4 21.01a.53.53 0 0 1-.77-.56l.88-5.14a2.12 2.12 0 0 0-.61-1.88L3.16 9.8a.53.53 0 0 1 .3-.91l5.16-.75a2.12 2.12 0 0 0 1.6-1.16z'/%3E%3C/svg%3E");
}
.woocommerce .star-rating::before { content: none; }
.woocommerce .star-rating span { position: absolute; inset-block: 0; inset-inline-start: 0; overflow: hidden; padding: 0; font-size: 0; background: var(--ca-color-rating); } /* عرض درصدی ووکامرس از ابتدای خط پر می‌شود */
.woocommerce .star-rating span::before { content: none; }
.woocommerce .woocommerce-product-rating { display: flex; align-items: center; gap: var(--ca-space-2); font-size: var(--ca-text-sm); }
.woocommerce p.stars a { color: var(--ca-color-rating); }

/* ==== ۷. آرشیو: نوار ابزار، فیلتر، مرتب‌سازی ============================ */
.ca-shop-toolbar { margin-block-end: var(--ca-space-6); }
.ca-shop-toolbar .woocommerce-result-count { margin: 0; margin-inline-end: auto; font-size: var(--ca-text-sm); color: var(--ca-color-text-secondary); float: none; }
.ca-shop-toolbar .woocommerce-ordering { margin: 0; float: none; min-inline-size: 200px; }
.ca-shop-layout { display: grid; gap: var(--ca-space-8); grid-template-columns: minmax(0, 1fr); }
.ca-shop-layout__main { min-inline-size: 0; }
@media (min-width: 1024px) {
  .ca-shop-layout { grid-template-columns: 280px minmax(0, 1fr); }
  .ca-shop-layout__filters { position: sticky; inset-block-start: calc(var(--ca-header-h) + var(--ca-space-6)); align-self: start; max-block-size: calc(100vh - var(--ca-header-h) - var(--ca-space-12)); overflow-y: auto; }
  .ca-shop-toolbar__filter { display: none; }
}
@media (max-width: 1023px) {
  /* موبایل و تبلت: فیلتر در bottom sheet. theme.js کلاس is-open را می‌گذارد */
  .ca-shop-layout__filters {
    position: fixed; z-index: var(--ca-z-drawer); inset-inline: 0; inset-block-end: 0;
    max-block-size: 85vh; overflow-y: auto; padding: var(--ca-space-5) var(--ca-gutter) calc(var(--ca-space-5) + env(safe-area-inset-bottom, 0px));
    border-radius: var(--ca-radius-xl) var(--ca-radius-xl) 0 0; background: var(--ca-color-surface-raised); box-shadow: var(--ca-shadow-lg);
    transform: translateY(105%); visibility: hidden;
    transition: transform var(--ca-dur-slower) var(--ca-ease-out), visibility var(--ca-dur-slower);
  }
  .ca-shop-layout__filters.is-open { transform: none; visibility: visible; }
  .ca-filters-backdrop { position: fixed; inset: 0; z-index: var(--ca-z-overlay); background: var(--ca-color-overlay); }
}
.ca-shop-layout__filters-head { display: none; }
@media (max-width: 1023px) {
  .ca-shop-layout__filters-head { position: sticky; inset-block-start: calc(-1 * var(--ca-space-5)); z-index: 1; display: flex; align-items: center; justify-content: space-between; margin: calc(-1 * var(--ca-space-5)) calc(-1 * var(--ca-gutter)) 0; padding: var(--ca-space-4) var(--ca-gutter); background: var(--ca-color-surface-raised); border-block-end: 1px solid var(--ca-color-border); }
}
.ca-shop-layout__filters .ca-widget { padding-block: var(--ca-space-4); border-block-end: 1px solid var(--ca-color-border); }
.ca-shop-layout__filters .ca-widget__title { font-size: var(--ca-text-sm); }
.woocommerce .woocommerce-pagination { margin-block-start: var(--ca-space-12); }
.woocommerce .woocommerce-pagination ul.page-numbers, .woocommerce .woocommerce-pagination ul.page-numbers li { border: 0; }
.woocommerce .woocommerce-pagination ul.page-numbers li { float: none; }
.woocommerce .woocommerce-products-header { padding-block: var(--ca-space-2) var(--ca-space-6); }
.woocommerce .woocommerce-products-header__title { font-size: var(--ca-text-h1); }
.woocommerce .term-description { color: var(--ca-color-text-secondary); max-inline-size: var(--ca-measure); }
.ca-wc .ca-breadcrumb { padding-block: var(--ca-space-4) var(--ca-space-2); }

/* ==== ۸. صفحه‌ی محصول ==================================================== */
.woocommerce div.product { display: grid; gap: var(--ca-space-8); grid-template-columns: minmax(0, 1fr); padding-block-start: var(--ca-space-4); }
@media (min-width: 1024px) { .woocommerce div.product { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: var(--ca-space-12); } }
.woocommerce div.product :is(div.images, div.summary) { float: none; inline-size: auto; width: auto; margin: 0; }
.woocommerce div.product > :not(div.images):not(div.summary):not(.onsale) { grid-column: 1 / -1; }
.woocommerce div.product div.images { position: relative; }
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper { margin: 0; }
.woocommerce div.product div.images .woocommerce-product-gallery__image { border-radius: var(--ca-radius-lg); overflow: hidden; background: var(--ca-color-media-bg); }
.woocommerce div.product div.images img { mix-blend-mode: multiply; }
.woocommerce div.product div.images .flex-control-thumbs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--ca-space-2); margin: var(--ca-space-3) 0 0; padding: 0; list-style: none; }
.woocommerce div.product div.images .flex-control-thumbs li { inline-size: auto; width: auto; float: none; }
.woocommerce div.product div.images .flex-control-thumbs img { border-radius: var(--ca-radius-sm); background: var(--ca-color-media-bg); opacity: 0.6; cursor: pointer; transition: opacity var(--ca-dur-fast); }
.woocommerce div.product div.images .flex-control-thumbs img.flex-active, .woocommerce div.product div.images .flex-control-thumbs img:hover { opacity: 1; }
.woocommerce div.product .woocommerce-product-gallery__trigger { position: absolute; inset-block-start: var(--ca-space-3); inset-inline-end: var(--ca-space-3); z-index: 9; display: grid; place-items: center; inline-size: 36px; block-size: 36px; border-radius: var(--ca-radius-circle); background: var(--ca-color-bg); box-shadow: var(--ca-shadow-sm); font-size: 0; }
.woocommerce div.product .woocommerce-product-gallery__trigger::before { content: ""; inline-size: 16px; block-size: 16px; background: var(--ca-color-text); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-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='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5M11 8v6M8 11h6'/%3E%3C/svg%3E") center/contain no-repeat; }
.woocommerce div.product .woocommerce-product-gallery__trigger img { display: none !important; }
.woocommerce span.onsale.ca-badge { position: absolute; z-index: 10; inset-block-start: var(--ca-space-3); inset-inline-start: var(--ca-space-3); min-block-size: var(--ca-badge-h); min-inline-size: 0; margin: 0; padding-inline: var(--ca-space-2); line-height: 1; border-radius: var(--ca-radius-sm); }
.woocommerce div.product .summary { display: grid; align-content: start; gap: var(--ca-space-2); }
.woocommerce div.product .product_title { font-size: var(--ca-text-h1); }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--ca-color-text-secondary); }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ca-space-3); margin: var(--ca-space-4) 0; }
.woocommerce div.product form.cart .single_add_to_cart_button { flex: 1; min-inline-size: 200px; }
.woocommerce div.product form.cart .quantity { margin: 0; float: none; }
.woocommerce div.product form.variations_form { display: grid; }
.woocommerce div.product form.cart .variations { inline-size: 100%; margin: 0; border: 0; border-collapse: collapse; }
.woocommerce div.product form.cart .variations :is(th, td) { display: block; padding: 0; text-align: start; border: 0; }
.woocommerce div.product form.cart .variations tr { display: grid; gap: var(--ca-space-2); margin-block-end: var(--ca-space-4); }
.woocommerce div.product form.cart .variations label { font-size: var(--ca-text-sm); font-weight: var(--ca-weight-bold); }
.woocommerce div.product form.cart .reset_variations { font-size: var(--ca-text-xs); color: var(--ca-color-link); }
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: var(--ca-space-3); inline-size: 100%; }
.woocommerce div.product .stock { font-size: var(--ca-text-sm); font-weight: var(--ca-weight-semibold); color: var(--ca-color-success-text); }
.woocommerce div.product .stock.out-of-stock { color: var(--ca-color-danger-text); }
.woocommerce div.product .product_meta { display: grid; gap: var(--ca-space-1); padding-block-start: var(--ca-space-4); border-block-start: 1px solid var(--ca-color-border); font-size: var(--ca-text-xs); color: var(--ca-color-text-muted); }
.woocommerce div.product .product_meta a { color: var(--ca-color-text-secondary); }

/* تب‌ها ← .ca-tabs */
.woocommerce div.product .woocommerce-tabs ul.tabs {
  display: flex; gap: var(--ca-space-6); margin: 0 0 var(--ca-space-6); padding: 0; overflow-x: auto; list-style: none;
  border-block-end: 1px solid var(--ca-color-border); scrollbar-width: none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { content: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { position: relative; margin: 0; padding: 0; border: 0; background: none; flex-shrink: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { display: block; padding-block: var(--ca-space-3); color: var(--ca-color-text-secondary); font-weight: var(--ca-weight-medium); text-decoration: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--ca-color-text); font-weight: var(--ca-weight-bold); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active::after { content: ""; position: absolute; inset-inline: 0; inset-block-end: -1px; block-size: 2px; border-radius: 2px; background: var(--ca-color-primary); }
.woocommerce div.product .woocommerce-tabs .panel { margin: 0; max-inline-size: var(--ca-measure); }
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child { display: none; }
.woocommerce table.shop_attributes { inline-size: 100%; border: 0; border-collapse: collapse; font-size: var(--ca-text-sm); }
.woocommerce table.shop_attributes :is(th, td) { padding: var(--ca-space-3) var(--ca-space-4); border-block-end: 1px solid var(--ca-color-border); text-align: start; font-style: normal; background: none; }
.woocommerce table.shop_attributes th { inline-size: 35%; color: var(--ca-color-text-secondary); font-weight: var(--ca-weight-semibold); }
.woocommerce table.shop_attributes td p { margin: 0; }
.woocommerce #reviews #comments ol.commentlist { margin: 0; padding: 0; }
.woocommerce #reviews #comments ol.commentlist li .comment-text { margin: 0 0 0 0; margin-inline-start: 56px; border: 1px solid var(--ca-color-border); border-radius: var(--ca-radius-lg); }
.woocommerce #reviews #comments ol.commentlist li img.avatar { border-radius: var(--ca-radius-circle); border: 0; padding: 0; background: none; }
.woocommerce #review_form #commentform textarea#comment { inline-size: 100%; max-inline-size: 100%; box-sizing: border-box; } /* cols="45" تا ۳۸۱px عرض می‌داد و صفحه‌ی محصول را در ۳۲۰ و ۳۹۰ سرریز می‌کرد */
.woocommerce div.product > .ca-carousel { margin-block-start: var(--ca-section-gap); }

/* ==== ۹. سبد و چک‌اوت ==================================================== */
.woocommerce table.shop_table { inline-size: 100%; margin: 0 0 var(--ca-space-6); border: 1px solid var(--ca-color-border); border-radius: var(--ca-radius-lg); border-collapse: separate; border-spacing: 0; overflow: hidden; font-size: var(--ca-text-sm); }
.woocommerce table.shop_table :is(th, td) { padding: var(--ca-space-3) var(--ca-space-4); border: 0; border-block-start: 1px solid var(--ca-color-border); text-align: start; vertical-align: middle; }
.woocommerce table.shop_table thead th { border-block-start: 0; background: var(--ca-color-bg-subtle); color: var(--ca-color-text-secondary); font-weight: var(--ca-weight-semibold); }
.woocommerce table.shop_table td.product-thumbnail img { inline-size: 72px; border-radius: var(--ca-radius-sm); background: var(--ca-color-media-bg); mix-blend-mode: multiply; }
.woocommerce table.shop_table td.product-name a { color: var(--ca-color-text); font-weight: var(--ca-weight-semibold); text-decoration: none; }
.woocommerce table.shop_table :is(.product-price, .product-subtotal, .product-total), .woocommerce table.shop_table tfoot td { font-feature-settings: var(--ca-font-features-tabular); font-weight: var(--ca-weight-bold); }
.woocommerce table.shop_table td.actions { background: var(--ca-color-bg-subtle); }
.woocommerce table.shop_table td.actions .coupon { display: flex; flex-wrap: wrap; gap: var(--ca-space-2); }
.woocommerce table.shop_table td.actions .coupon .input-text { inline-size: auto; min-inline-size: 180px; }
.woocommerce .cart-collaterals .cart_totals { padding: var(--ca-space-6); border: 1px solid var(--ca-color-border); border-radius: var(--ca-radius-lg); background: var(--ca-color-surface); }
.woocommerce .cart-collaterals .cart_totals h2 { font-size: var(--ca-text-h4); margin-block-end: var(--ca-space-4); }
.woocommerce .cart-collaterals .cart_totals table.shop_table { background: var(--ca-color-bg); }
.woocommerce .wc-proceed-to-checkout { padding-block: var(--ca-space-4) 0; }
.woocommerce .wc-proceed-to-checkout a.checkout-button { display: flex; inline-size: 100%; margin: 0; }
/* روش ارسال: هر li کارت .ca-choice--card است (قاعده‌ها در components.css بخش ۱۷)؛ این‌جا فقط چیدمان لیست */
.woocommerce ul#shipping_method { display: grid; gap: var(--ca-space-2); margin: 0; padding: 0; list-style: none; }
.woocommerce ul#shipping_method li::marker { content: none; }
/* ردیف روش ارسال تک‌ستونی است (override cart/cart-shipping.php: td colspan=2 با عنوان .ca-ship-title بالا) */
.ca-ship-title { display: block; margin-block-end: var(--ca-space-2); color: var(--ca-color-text-secondary); font-weight: var(--ca-weight-semibold); }
/* یک کشور، یک ناحیه: «ارسال به …» و ماشین‌حساب آدرس در سبد معنا ندارد؛ آدرس در تسویه گرفته می‌شود */
.woocommerce .woocommerce-shipping-destination { display: none; }
.woocommerce .woocommerce-shipping-contents { margin: var(--ca-space-2) 0 0; color: var(--ca-color-text-secondary); }
/* سبد و تسویه در موبایل: ردیف ارسال تمام‌عرض زیر عنوانش، بدون «عنوان: » ساختگی ووکامرس */
@media (max-width: 767px) {
  .woocommerce table.shop_table_responsive tr.woocommerce-shipping-totals td::before { content: none; }
}
.woocommerce-cart-form .ca-freeship { margin-block-end: var(--ca-space-5); }
.woocommerce-checkout .ca-freeship { margin-block-end: var(--ca-space-4); }
.woocommerce .cart-collaterals > .ca-carousel, .woocommerce .cross-sells { grid-column: 1 / -1; }
@media (max-width: 767px) {
  .woocommerce table.shop_table_responsive tr td { text-align: start !important; }
  .woocommerce table.shop_table_responsive tr td::before { color: var(--ca-color-text-secondary); font-weight: var(--ca-weight-semibold); }
}
.woocommerce-checkout h3 { font-size: var(--ca-text-h4); margin-block: var(--ca-space-2) var(--ca-space-4); }
.woocommerce-checkout .ca-checkout__summary #order_review_heading { margin-block-start: 0; }
/* فیلدهای تسویه: شبکه‌ی دو ستونی (نام/نام خانوادگی، استان/شهر، پلاک/کد پستی)، تک‌ستونی در موبایل.
   ووکامرس first/last را شناور با عرض ۴۷٪ می‌دهد؛ در شبکه باید خنثی شوند. */
.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-additional-fields__field-wrapper { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--ca-space-4); }
.woocommerce form .form-row.form-row-first, .woocommerce form .form-row.form-row-last, .woocommerce form .form-row.form-row-wide { float: none; inline-size: auto; width: auto; }
.woocommerce form .form-row.form-row-wide, .woocommerce-additional-fields__field-wrapper .form-row { grid-column: 1 / -1; }
@media (max-width: 479px) { .woocommerce form .form-row.form-row-first, .woocommerce form .form-row.form-row-last { grid-column: 1 / -1; } }
.woocommerce form .form-row.ca-hidden, .woocommerce form .form-row.ca-city-other[hidden] { display: none !important; }
.woocommerce form .form-row .description { font-size: var(--ca-text-xs); line-height: var(--ca-leading-sm); color: var(--ca-color-text-muted); }
/* پیام خطای زیر هر فیلد بعد از ارسال ناموفق (div.checkout-inline-error-message که checkout.js می‌سازد) ← .ca-error-msg */
.woocommerce form .form-row .checkout-inline-error-message { margin: 0; font-size: var(--ca-text-xs); line-height: var(--ca-leading-sm); color: var(--ca-color-danger-text); font-weight: var(--ca-weight-medium); }
/* موبایل حساب (فقط‌خواندنی): معلوم باشد قابل ویرایش نیست */
.woocommerce form .form-row input[readonly] { background: var(--ca-color-disabled-bg); color: var(--ca-color-text-secondary); cursor: not-allowed; }
.woocommerce-terms-and-conditions-wrapper .woocommerce-privacy-policy-text p { margin-block: 0 var(--ca-space-3); }
.woocommerce-terms-and-conditions-wrapper a { color: var(--ca-color-link); }
.woocommerce-terms-and-conditions-checkbox-text { line-height: var(--ca-leading-sm); }
.woocommerce-checkout #payment { border-radius: var(--ca-radius-lg); background: var(--ca-color-surface); border: 1px solid var(--ca-color-border); }
/* روش‌های پرداخت: هر li کارت .ca-choice--card است (components.css بخش ۱۷)؛ این‌جا چیدمان داخلی: رادیو | نام ... لوگو، و
   توضیح درگاه (payment_box) زیرش داخل همان کارت. لوگو (آپلودی ما یا آیکون خود درگاه) ارتفاع ۴۰ و contain. */
.woocommerce #payment ul.payment_methods { display: grid; gap: var(--ca-space-2); margin: 0; padding: var(--ca-space-4); border-block-end: 1px solid var(--ca-color-border); list-style: none; }
.woocommerce #payment ul.payment_methods > li { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; }
.woocommerce #payment ul.payment_methods > li::marker { content: none; }
.woocommerce #payment ul.payment_methods > li > input[type="radio"] { grid-column: 1; grid-row: 1; }
.woocommerce #payment ul.payment_methods > li > label { grid-column: 2; grid-row: 1; display: flex; align-items: center; gap: var(--ca-space-3); min-block-size: var(--ca-control-h-lg); font-size: var(--ca-text-md); font-weight: var(--ca-weight-semibold); color: var(--ca-color-text); }
.woocommerce #payment ul.payment_methods > li > label img { order: 2; flex-shrink: 0; margin-inline-start: auto; block-size: var(--ca-space-10); inline-size: auto; max-inline-size: var(--ca-space-24); object-fit: contain; }
.woocommerce #payment ul.payment_methods > li > label a.about_paypal { display: none; }
.woocommerce #payment div.payment_box { grid-column: 1 / -1; margin: 0; padding: 0 var(--ca-space-4) var(--ca-space-4); background: none; color: var(--ca-color-text-secondary); font-size: var(--ca-text-sm); line-height: var(--ca-leading-sm); }
.woocommerce #payment div.payment_box p { margin: 0; }
.woocommerce #payment div.payment_box::before { content: none; }
.woocommerce #payment ul.payment_methods > li:not(:has(:checked)) > div.payment_box { display: none; } /* فقط توضیح روش انتخاب‌شده (بدون وابستگی به slide ووکامرس) */
.woocommerce-checkout #payment div.form-row { padding: var(--ca-space-4); margin: 0; }
.woocommerce-checkout #payment [name="woocommerce_checkout_place_order"] { inline-size: 100%; float: none; }
.woocommerce-terms-and-conditions-wrapper { font-size: var(--ca-text-xs); color: var(--ca-color-text-secondary); }

/* ==== ۱۰. حساب کاربری ==================================================== */
.woocommerce-account .woocommerce { display: grid; gap: var(--ca-space-8); grid-template-columns: minmax(0, 1fr); }
/* مشتریِ واردشده قاب داشبورد دارد (account-shell.php، components.css بخش ۲۳)؛ ستون ناوبری این‌جا نیست. */
.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { float: none; inline-size: auto; width: auto; }
.woocommerce form.login, .woocommerce form.register, .woocommerce form.lost_reset_password { margin: 0; padding: var(--ca-space-6); border: 1px solid var(--ca-color-border); border-radius: var(--ca-radius-lg); background: var(--ca-color-surface); }
.woocommerce .u-columns.col2-set { display: grid; gap: var(--ca-space-8); grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
.woocommerce .u-columns.col2-set .u-column1, .woocommerce .u-columns.col2-set .u-column2 { float: none; inline-size: auto; width: auto; }
.woocommerce .woocommerce-Addresses address, .woocommerce-customer-details address { padding: var(--ca-space-4); border: 1px solid var(--ca-color-border); border-radius: var(--ca-radius-md); font-style: normal; line-height: var(--ca-leading-body); }

/* ==== ۱۱. سفارش دریافت شد ================================================ */
/* ردیف «پرداخت / لغو» ووکامرس زیر جدول سفارش پرداخت‌نشده: «پرداخت دوباره»ی بالای صفحه همان کار را می‌کند و «لغو» جای خودش را در حساب کاربری دارد (فاز ۴) */
.ca-thanks .woocommerce-table--order-details tr:has(.order-actions--heading) { display: none; }
.woocommerce ul.order_details { display: grid; gap: var(--ca-space-3); grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); margin: 0 0 var(--ca-space-8); padding: 0; list-style: none; }
.woocommerce ul.order_details::before, .woocommerce ul.order_details::after { content: none; }
.woocommerce ul.order_details li { float: none; margin: 0; padding: var(--ca-space-4); border: 1px solid var(--ca-color-border); border-radius: var(--ca-radius-md); font-size: var(--ca-text-xs); color: var(--ca-color-text-secondary); text-transform: none; }
.woocommerce ul.order_details li strong { display: block; margin-block-start: var(--ca-space-1); font-size: var(--ca-text-md); color: var(--ca-color-text); }

/* ==== ۱۲. سلکت‌های ووکامرس (مرتب‌سازی، متغیر، کشور/استان) قبل از JS ====== */
.woocommerce :is(select.orderby, .variations select, form .form-row select):not([hidden]) {
  inline-size: 100%; min-block-size: var(--ca-control-h-md); padding-inline: var(--ca-input-px);
  border: 1px solid var(--ca-color-border-control); border-radius: var(--ca-radius-md); background-color: var(--ca-color-bg); font-size: var(--ca-text-md);
}
.ca-select-wrap .ca-combo { inline-size: 100%; }

/* ==== ۱۳. ابزارک‌های فیلتر ووکامرس ← اجزای فیلتر قالب ===================== */
.woocommerce .widget_price_filter .price_slider_wrapper { display: grid; gap: var(--ca-space-4); padding-block-start: var(--ca-space-2); }
.woocommerce .widget_price_filter .price_slider { position: relative; block-size: 4px; margin-inline: 11px; border-radius: var(--ca-radius-pill); background: var(--ca-color-pressed-bg); }
.woocommerce .widget_price_filter .ui-slider-range { position: absolute; inset-block: 0; border-radius: inherit; background: var(--ca-color-primary); }
.woocommerce .widget_price_filter .ui-slider-handle {
  position: absolute; inset-block-start: 50%; z-index: 2; inline-size: 22px; block-size: 22px; margin-inline-start: -11px; translate: 0 -50%;
  border: 2px solid var(--ca-color-primary); border-radius: var(--ca-radius-circle); background: var(--ca-color-bg); box-shadow: var(--ca-shadow-sm); cursor: grab; touch-action: none;
}
[dir="rtl"] .woocommerce .widget_price_filter .ui-slider-handle { margin-inline-start: 0; margin-inline-end: -11px; }
.woocommerce .widget_price_filter .ui-slider-handle:focus-visible { outline: var(--ca-focus-width) solid var(--ca-focus-color); outline-offset: 2px; }
.woocommerce .widget_price_filter .price_slider_amount { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ca-space-3); font-size: var(--ca-text-xs); color: var(--ca-color-text-secondary); font-feature-settings: var(--ca-font-features-tabular); }
.woocommerce .widget_price_filter .price_slider_amount .button { order: 2; min-block-size: var(--ca-control-h-sm); font-size: var(--ca-btn-font-sm); padding-inline: var(--ca-btn-px-sm); }
.woocommerce .widget_price_filter .price_slider_amount input { display: none; }
.woocommerce .widget_price_filter .price_label { order: 1; }
.woocommerce .widget_layered_nav ul li, .woocommerce .widget_product_categories ul li { display: flex; align-items: center; justify-content: space-between; gap: var(--ca-space-2); min-block-size: 36px; }
.woocommerce .widget_layered_nav ul li a, .woocommerce .widget_product_categories ul li a { flex: 1; color: var(--ca-color-text); }
.woocommerce .widget_layered_nav ul li .count, .woocommerce .widget_product_categories ul li .count { color: var(--ca-color-text-muted); font-size: var(--ca-text-xs); font-feature-settings: var(--ca-font-features-tabular); }
.woocommerce .widget_layered_nav ul li.chosen a { color: var(--ca-color-primary-text); font-weight: var(--ca-weight-bold); }
.woocommerce .widget_layered_nav_filters ul { display: flex; flex-wrap: wrap; gap: var(--ca-space-2); }
.woocommerce .widget_layered_nav_filters ul li a {
  display: inline-flex; align-items: center; gap: var(--ca-space-1); min-block-size: var(--ca-control-h-sm); padding-inline: var(--ca-space-4);
  border: 1px solid var(--ca-color-primary); border-radius: var(--ca-radius-pill); background: var(--ca-color-primary-subtle); color: var(--ca-color-primary-text); font-size: var(--ca-text-sm);
}
.woocommerce div.product form.cart .ca-qty { block-size: var(--ca-control-h-lg); }

.woocommerce .cart-collaterals { margin-block-start: var(--ca-space-6); }
.woocommerce-cart .cross-sells.ca-carousel { margin-block-start: var(--ca-section-gap); }
