/* ============================================================
   OVEX — components.css
   دکمه‌ها، بج‌ها، کارت محصول، قیمت، ستاره، اسلایدر، ردیف دسته‌ها،
   تایمر فروش ویژه، تضمین‌ها، مودال، توست، اسکلت، تولتیپ، تب،
   صفحه‌بندی، مسیر راهنما، حالت خالی
   ============================================================ */

/* ============================================================
   ۱) دکمه‌ها
   ============================================================ */

.ovex-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  height: 40px;
  padding-inline: 20px;
  border-radius: var(--ovex-r-pill);
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 700;
  line-height: 1;
  color: var(--ovex-ink);
  background: var(--ovex-bg);
  border: 1px solid transparent;
  cursor: pointer;
  white-space: nowrap;
  user-select: none;
  text-align: center;
  position: relative;
  overflow: hidden;
  transition:
    background-color var(--ovex-t-fast) var(--ovex-ease),
    color var(--ovex-t-fast) var(--ovex-ease),
    border-color var(--ovex-t-fast) var(--ovex-ease),
    box-shadow var(--ovex-t-fast) var(--ovex-ease),
    transform var(--ovex-t-fast) var(--ovex-ease),
    filter var(--ovex-t-fast) var(--ovex-ease);
}

.ovex-btn:hover {
  color: var(--ovex-ink);
  background: var(--ovex-line);
}

.ovex-btn:active {
  transform: translateY(1px);
}

.ovex-btn .ovex-icon {
  width: 18px;
  height: 18px;
}

/* دکمه‌ی اصلی — گرادیان نارنجی */
.ovex-btn--primary {
  background: var(--ovex-primary-grad);
  color: var(--ovex-white);
  box-shadow: 0 3px 10px rgba(251, 119, 1, .26);
}

.ovex-btn--primary:hover {
  color: var(--ovex-white);
  background: var(--ovex-primary-grad);
  filter: brightness(1.07);
  box-shadow: 0 6px 18px rgba(251, 119, 1, .34);
  transform: translateY(-1px);
}

.ovex-btn--primary:active {
  transform: translateY(0);
  filter: brightness(.96);
}

/* دکمه‌ی حاشیه‌دار */
.ovex-btn--ghost {
  background: transparent;
  color: var(--ovex-primary);
  border-color: var(--ovex-primary);
}

.ovex-btn--ghost:hover {
  background: var(--ovex-primary-50);
  color: var(--ovex-primary-700);
  border-color: var(--ovex-primary-700);
}

/* دکمه‌ی خنثای حاشیه‌دار */
.ovex-btn--line {
  background: var(--ovex-surface);
  border-color: var(--ovex-line-2);
  color: var(--ovex-ink-2);
}

.ovex-btn--line:hover {
  border-color: var(--ovex-primary);
  color: var(--ovex-primary);
  background: var(--ovex-primary-50);
}

/* دکمه‌ی فروش/تخفیف */
.ovex-btn--sale {
  background: var(--ovex-sale-grad);
  color: var(--ovex-white);
  box-shadow: 0 3px 10px rgba(255, 59, 48, .26);
}

.ovex-btn--sale:hover {
  color: var(--ovex-white);
  filter: brightness(1.06);
}

/* دکمه‌ی «موجودم کن» — حاشیه‌ی نارنجی + آیکن زنگوله */
.ovex-btn--notify {
  background: var(--ovex-surface);
  color: var(--ovex-primary);
  border: 1.6px solid var(--ovex-primary);
  box-shadow: none;
}

.ovex-btn--notify::before {
  content: "";
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  background-color: currentColor;
  -webkit-mask: var(--ovex-bell-mask) center / contain no-repeat;
  mask: var(--ovex-bell-mask) center / contain no-repeat;
  transform-origin: 50% 3px;
}

.ovex-btn--notify:hover {
  background: var(--ovex-primary-50);
  color: var(--ovex-primary-700);
  border-color: var(--ovex-primary-700);
}

.ovex-btn--notify:hover::before {
  animation: ovex-bell .7s var(--ovex-ease);
}

@keyframes ovex-bell {
  0%   { transform: rotate(0); }
  20%  { transform: rotate(14deg); }
  40%  { transform: rotate(-11deg); }
  60%  { transform: rotate(7deg); }
  80%  { transform: rotate(-4deg); }
  100% { transform: rotate(0); }
}

/* ماسک زنگوله به صورت SVG درون‌خطی (بدون فایل خارجی) */
:root {
  --ovex-bell-mask: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9'/%3E%3Cpath d='M13.7 21a2 2 0 0 1-3.4 0'/%3E%3C/svg%3E");
}

/* دکمه‌ی غیرفعال */
.ovex-btn--disabled,
.ovex-btn:disabled,
.ovex-btn.is-disabled {
  background: var(--ovex-line);
  color: var(--ovex-ink-3);
  border-color: transparent;
  box-shadow: none;
  cursor: not-allowed;
  pointer-events: none;
  filter: none;
  transform: none;
}

/* اندازه‌ها و عرض */
.ovex-btn--sm {
  height: 32px;
  padding-inline: 14px;
  font-size: 12.5px;
}

.ovex-btn--sm .ovex-icon {
  width: 15px;
  height: 15px;
}

.ovex-btn--lg {
  height: 50px;
  padding-inline: 30px;
  font-size: 15px;
}

.ovex-btn--lg .ovex-icon {
  width: 21px;
  height: 21px;
}

.ovex-btn--block {
  display: flex;
  width: 100%;
}

.ovex-btn--icon {
  width: 40px;
  padding-inline: 0;
  border-radius: 50%;
}

.ovex-btn--icon.ovex-btn--sm { width: 32px; }
.ovex-btn--icon.ovex-btn--lg { width: 50px; }

/* حالت در حال بارگذاری */
.ovex-btn.is-loading {
  color: transparent !important;
  pointer-events: none;
}

.ovex-btn.is-loading::after {
  content: "";
  position: absolute;
  inset-inline-start: calc(50% - 9px);
  top: calc(50% - 9px);
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, .45);
  border-top-color: var(--ovex-white);
  animation: ovex-spin .7s linear infinite;
}

.ovex-btn--ghost.is-loading::after,
.ovex-btn--line.is-loading::after,
.ovex-btn--notify.is-loading::after {
  border-color: var(--ovex-primary-100);
  border-top-color: var(--ovex-primary);
}

@keyframes ovex-spin {
  to { transform: rotate(360deg); }
}

/* گروه دکمه */
.ovex-btns {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

/* ============================================================
   ۲) بج‌ها
   ============================================================ */

.ovex-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 22px;
  padding-inline: 8px;
  border-radius: var(--ovex-r-pill);
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  color: var(--ovex-white);
  background: var(--ovex-ink-3);
  white-space: nowrap;
  letter-spacing: .01em;
}

.ovex-badge .ovex-icon {
  width: 12px;
  height: 12px;
}

/* بج تخفیف — نارنجی گرد */
.ovex-badge--off {
  background: var(--ovex-primary-grad);
  box-shadow: 0 2px 6px rgba(251, 119, 1, .3);
}

.ovex-badge--new {
  background: var(--ovex-success);
}

.ovex-badge--hot {
  background: var(--ovex-sale-grad);
}

.ovex-badge--out {
  background: rgba(26, 26, 26, .72);
}

.ovex-badge--free {
  background: var(--ovex-success-bg);
  color: var(--ovex-success);
}

.ovex-badge--soft {
  background: var(--ovex-primary-100);
  color: var(--ovex-primary-700);
}

.ovex-badge--line {
  background: transparent;
  border: 1px solid var(--ovex-line-2);
  color: var(--ovex-ink-2);
}

.ovex-badge--lg {
  height: 26px;
  font-size: 12px;
  padding-inline: 11px;
}

/* بج گوشه‌ی مربعی (برای بنرها) */
.ovex-badge--corner {
  border-radius: var(--ovex-r-sm) 0 var(--ovex-r-sm) 0;
}

/* ============================================================
   ۳) کارت محصول
   ============================================================ */

.ovex-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: var(--ovex-surface);
  border-radius: var(--ovex-r);
  border: 0;
  box-shadow: var(--ovex-sh-1);
  overflow: hidden;
  height: 100%;
  transition:
    transform var(--ovex-t) var(--ovex-ease),
    box-shadow var(--ovex-t) var(--ovex-ease);
}

.ovex-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--ovex-sh-3);
}

.ovex-card__media {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--ovex-bg);
  border-radius: var(--ovex-r) var(--ovex-r) 0 0;
}

.ovex-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform var(--ovex-t-slow) var(--ovex-ease), opacity var(--ovex-t) var(--ovex-ease);
}

.ovex-card:hover .ovex-card__img {
  transform: scale(1.055);
}

/* تصویر دوم هنگام هاور */
.ovex-card__img--alt {
  position: absolute;
  inset: 0;
  opacity: 0;
}

.ovex-card:hover .ovex-card__img--alt {
  opacity: 1;
}

/* لایه‌ی بج‌ها روی تصویر */
.ovex-card__badges {
  position: absolute;
  top: 8px;
  inset-inline-start: 8px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 5px;
  z-index: 2;
  pointer-events: none;
  max-width: calc(100% - 16px);
}

/* پوشش «ناموجود» */
.ovex-card.is-out .ovex-card__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, .58);
  z-index: 1;
}

.ovex-card.is-out .ovex-card__img {
  filter: grayscale(.72);
}

.ovex-card__body {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px 11px 12px;
  flex: 1 1 auto;
}

.ovex-card__title {
  font-size: 13px;
  font-weight: 600;
  line-height: 1.75;
  color: var(--ovex-ink);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 44px;
}

.ovex-card__title a {
  color: inherit;
}

.ovex-card:hover .ovex-card__title {
  color: var(--ovex-primary-700);
}

.ovex-card__rating {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11.5px;
  color: var(--ovex-ink-3);
}

.ovex-card__rating b {
  color: var(--ovex-ink-2);
  font-weight: 700;
}

/* ----------------------------------------------------------
   ستاره‌های امتیاز کارت محصول
   ovex_stars() در inc/helpers.php آیکن‌های star / star-half /
   star-empty را چاپ می‌کند، ولی قاعده‌ی پایه‌ی `.ovex-icon`
   مقدار `fill: none` دارد و همه‌ی ستاره‌ها توخالی دیده می‌شدند.
   این‌جا پرشدگی درست هر سه حالت بازنویسی می‌شود.
   ---------------------------------------------------------- */

.ovex-card__rating .ovex-icon,
.ovex-rating-line .ovex-icon,
.ovex-stars .ovex-icon {
  width: 14px;
  height: 14px;
  stroke: none;
}

/* ستاره‌ی پر */
.ovex-card__rating .ovex-icon--star,
.ovex-rating-line .ovex-icon--star,
.ovex-stars .ovex-icon--star {
  fill: var(--ovex-warning);
  color: var(--ovex-warning);
}

/* ستاره‌ی خالی */
.ovex-card__rating .ovex-icon--star-empty,
.ovex-rating-line .ovex-icon--star-empty,
.ovex-stars .ovex-icon--star-empty {
  fill: #E3E3E3;
  color: #E3E3E3;
}

/* ستاره‌ی نیمه: مسیر اول قاب خاکستری، مسیر دوم نیمه‌ی نارنجی */
.ovex-card__rating .ovex-icon--star-half,
.ovex-rating-line .ovex-icon--star-half,
.ovex-stars .ovex-icon--star-half {
  fill: #E3E3E3;
  color: var(--ovex-warning);
}

.ovex-card__rating .ovex-icon--star-half > path + path,
.ovex-rating-line .ovex-icon--star-half > path + path,
.ovex-stars .ovex-icon--star-half > path + path {
  fill: var(--ovex-warning);
  stroke: none;
}

/*
  در راست‌چین ستاره‌ها از راست پر می‌شوند، پس نیمه‌ی پرشده‌ی
  ستاره‌ی نیمه هم باید سمت راست باشد؛ آیکن آینه می‌شود.
*/
[dir="rtl"] .ovex-card__rating .ovex-icon--star-half,
[dir="rtl"] .ovex-rating-line .ovex-icon--star-half {
  transform: scaleX(-1);
}

.ovex-card__price {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 7px;
  margin-block-start: 2px;
}

.ovex-card__sold {
  font-size: 11.5px;
  color: var(--ovex-ink-3);
  display: flex;
  align-items: center;
  gap: 5px;
}

.ovex-card__sold .ovex-icon {
  width: 13px;
  height: 13px;
  color: var(--ovex-primary);
}

/* رنگ‌های موجود روی کارت */
.ovex-card__colors {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-block-start: 2px;
}

.ovex-card__color-dot {
  width: 13px;
  height: 13px;
  border-radius: 50%;
  border: 1px solid var(--ovex-line-2);
  flex: 0 0 auto;
}

.ovex-card__colors span.ovex-card__color-more {
  font-size: 10.5px;
  color: var(--ovex-ink-3);
  border: 0;
  width: auto;
  height: auto;
}

/* دکمه‌های شناور روی تصویر */
.ovex-card__actions {
  position: absolute;
  top: 8px;
  inset-inline-end: 8px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  z-index: 3;
  opacity: 0;
  transform: translateX(-8px);
  transition:
    opacity var(--ovex-t) var(--ovex-ease),
    transform var(--ovex-t) var(--ovex-ease);
}

.ovex-card:hover .ovex-card__actions,
.ovex-card:focus-within .ovex-card__actions {
  opacity: 1;
  transform: translateX(0);
}

.ovex-card__fav,
.ovex-card__quick {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .95);
  color: var(--ovex-ink-2);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--ovex-sh-2);
  transition:
    background-color var(--ovex-t-fast) var(--ovex-ease),
    color var(--ovex-t-fast) var(--ovex-ease),
    transform var(--ovex-t-fast) var(--ovex-ease);
}

.ovex-card__fav .ovex-icon,
.ovex-card__quick .ovex-icon {
  width: 17px;
  height: 17px;
}

.ovex-card__fav:hover,
.ovex-card__quick:hover {
  background: var(--ovex-primary);
  color: var(--ovex-white);
  transform: scale(1.08);
}

.ovex-card__fav.is-active {
  background: var(--ovex-price);
  color: var(--ovex-white);
}

.ovex-card__fav.is-active .ovex-icon {
  fill: currentColor;
  stroke: currentColor;
}

/* دکمه‌ی افزودن سریع */
.ovex-card__add {
  position: absolute;
  inset-inline: 10px;
  bottom: 10px;
  height: 34px;
  border-radius: var(--ovex-r-pill);
  background: var(--ovex-primary-grad);
  color: var(--ovex-white);
  font-size: 12.5px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  z-index: 3;
  opacity: 0;
  transform: translateY(8px);
  box-shadow: 0 4px 12px rgba(251, 119, 1, .3);
  transition:
    opacity var(--ovex-t) var(--ovex-ease),
    transform var(--ovex-t) var(--ovex-ease),
    filter var(--ovex-t-fast) var(--ovex-ease);
}

.ovex-card:hover .ovex-card__add,
.ovex-card:focus-within .ovex-card__add {
  opacity: 1;
  transform: translateY(0);
}

.ovex-card__add:hover {
  color: var(--ovex-white);
  filter: brightness(1.07);
}

.ovex-card__add .ovex-icon {
  width: 16px;
  height: 16px;
}

.ovex-card__add.is-loading {
  color: transparent;
  pointer-events: none;
}

.ovex-card__add.is-loading::after {
  content: "";
  position: absolute;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, .4);
  border-top-color: var(--ovex-white);
  animation: ovex-spin .7s linear infinite;
}

.ovex-card.is-out .ovex-card__add {
  background: var(--ovex-line-2);
  color: var(--ovex-ink-3);
  box-shadow: none;
  pointer-events: none;
}

/* نوار موجودی محدود روی کارت */
.ovex-card__stockbar {
  margin-block-start: 3px;
}

.ovex-card__stockbar span {
  display: block;
  font-size: 10.5px;
  color: var(--ovex-primary-700);
  font-weight: 600;
  margin-block-end: 3px;
}

/* کارت در نمای لیست */
.ovex-card--list {
  flex-direction: row;
  align-items: stretch;
}

.ovex-card--list .ovex-card__media {
  width: 210px;
  flex: 0 0 210px;
  border-radius: var(--ovex-r) 0 0 var(--ovex-r);
}

.ovex-card--list .ovex-card__body {
  padding: 14px 16px;
  gap: 9px;
}

.ovex-card--list .ovex-card__title {
  font-size: 15px;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  min-height: 0;
}

.ovex-card--list .ovex-card__excerpt {
  font-size: 12.5px;
  color: var(--ovex-ink-3);
  line-height: 1.95;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.ovex-card--list .ovex-card__add {
  position: static;
  opacity: 1;
  transform: none;
  width: 190px;
  margin-block-start: auto;
}

/* کارت کوچک (سبد/پیشنهاد) */
.ovex-card--mini {
  flex-direction: row;
  box-shadow: none;
  border: 1px solid var(--ovex-line);
  gap: 10px;
  padding: 8px;
}

.ovex-card--mini:hover {
  transform: none;
  box-shadow: var(--ovex-sh-1);
}

.ovex-card--mini .ovex-card__media {
  width: 68px;
  flex: 0 0 68px;
  border-radius: var(--ovex-r-sm);
}

.ovex-card--mini .ovex-card__body {
  padding: 0;
  gap: 4px;
}

.ovex-card--mini .ovex-card__title {
  font-size: 12.5px;
  min-height: 0;
}

/* ============================================================
   ۴) قیمت
   ============================================================ */

.ovex-price {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 6px;
  line-height: 1.5;
}

.ovex-price__now {
  font-size: 18px;
  font-weight: 900;
  color: var(--ovex-price);
  letter-spacing: -.01em;
}

.ovex-price__old {
  font-size: 12px;
  font-weight: 500;
  color: var(--ovex-ink-3);
  text-decoration: line-through;
  text-decoration-thickness: 1px;
}

.ovex-price__unit {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--ovex-ink-3);
  margin-inline-start: -2px;
}

.ovex-price__off {
  display: inline-flex;
  align-items: center;
  height: 20px;
  padding-inline: 7px;
  border-radius: var(--ovex-r-pill);
  background: var(--ovex-primary-grad);
  color: var(--ovex-white);
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
}

.ovex-price--lg .ovex-price__now { font-size: 28px; }
.ovex-price--lg .ovex-price__old { font-size: 14px; }
.ovex-price--lg .ovex-price__unit { font-size: 13px; }

.ovex-price--sm .ovex-price__now { font-size: 14px; }
.ovex-price--sm .ovex-price__old { font-size: 11px; }
.ovex-price--sm .ovex-price__unit { font-size: 10.5px; }

.ovex-price--free .ovex-price__now {
  color: var(--ovex-success);
}

/* محدوده‌ی قیمت محصول متغیر */
.ovex-price__range {
  display: inline-flex;
  align-items: baseline;
  gap: 5px;
  color: var(--ovex-price);
  font-weight: 800;
  font-size: 16px;
}

.ovex-price__range i {
  font-style: normal;
  color: var(--ovex-ink-3);
  font-weight: 500;
  font-size: 12px;
}

/* ============================================================
   ۵) ستاره‌ها (امتیاز)
   ============================================================ */

.ovex-stars {
  display: inline-flex;
  align-items: center;
  gap: 1px;
  direction: ltr;
  line-height: 1;
}

.ovex-stars__icon {
  width: 14px;
  height: 14px;
  flex: 0 0 auto;
  color: var(--ovex-line-2);
  fill: currentColor;
  stroke: none;
}

.ovex-stars__icon.is-on {
  color: var(--ovex-warning);
}

/* ستاره‌ی نیمه‌پر */
.ovex-stars__icon.is-half {
  color: var(--ovex-warning);
  clip-path: inset(0 50% 0 0);
  margin-inline-end: -14px;
  position: relative;
  z-index: 1;
}

.ovex-stars--lg .ovex-stars__icon {
  width: 18px;
  height: 18px;
}

.ovex-stars--lg .ovex-stars__icon.is-half {
  margin-inline-end: -18px;
}

/* نسخه‌ی مبتنی بر عرض (وقتی درصد مشخص است) */
.ovex-stars--bar {
  position: relative;
  width: 78px;
  height: 14px;
  background-image: var(--ovex-star-empty);
  background-size: 15.6px 14px;
  background-repeat: repeat-x;
  direction: ltr;
}

.ovex-stars--bar span {
  position: absolute;
  inset-block: 0;
  left: 0;
  background-image: var(--ovex-star-full);
  background-size: 15.6px 14px;
  background-repeat: repeat-x;
  display: block;
}

:root {
  --ovex-star-empty: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='14' viewBox='0 0 16 14'%3E%3Cpath d='M8 1l1.9 3.9 4.3.6-3.1 3 .7 4.3L8 10.8 4.2 12.8l.7-4.3-3.1-3 4.3-.6z' fill='%23D9D9D9'/%3E%3C/svg%3E");
  --ovex-star-full: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='14' viewBox='0 0 16 14'%3E%3Cpath d='M8 1l1.9 3.9 4.3.6-3.1 3 .7 4.3L8 10.8 4.2 12.8l.7-4.3-3.1-3 4.3-.6z' fill='%23FFB020'/%3E%3C/svg%3E");
}

.ovex-rating-line {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 12.5px;
  color: var(--ovex-ink-3);
}

.ovex-rating-line b {
  color: var(--ovex-ink);
  font-weight: 800;
  font-size: 13.5px;
}

/* ============================================================
   ۶) اسلایدر (RTL-aware)
   ============================================================ */

.ovex-slider {
  position: relative;
  width: 100%;
  border-radius: var(--ovex-r-lg);
  overflow: hidden;
  background: var(--ovex-primary-50);
  box-shadow: var(--ovex-sh-2);
  touch-action: pan-y;
  user-select: none;
}

.ovex-slider__viewport {
  overflow: hidden;
  width: 100%;
}

.ovex-slider__track {
  display: flex;
  width: 100%;
  /*
    در RTL محور X معکوس است؛ هم transform و هم transition به‌صورت درون‌خطی
    توسط assets/js/slider.js ست می‌شوند، پس این‌جا تعریف نمی‌شوند تا
    انیمیشن دوباره اجرا نشود.
  */
  will-change: transform;
}

.ovex-slider__track.is-dragging {
  transition: none;
  cursor: grabbing;
}

/*
  نسبت اسلاید دقیقاً برابر نسبت فایل تصویر (۱۶۰۰×۶۰۰) است تا با
  object-fit: cover هیچ برشی رخ ندهد و کمد، جاکفشی و کفش‌ها کامل دیده شوند.
*/
.ovex-slider__slide {
  flex: 0 0 100%;
  width: 100%;
  min-width: 100%;
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: var(--ovex-primary-50);
}

.ovex-slider__slide > img,
.ovex-slider__slide picture,
.ovex-slider__slide picture img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  pointer-events: none;
}

/*
  گرادیان خوانایی روی تصویر.
  تصاویر اسلایدر عمداً اشیا را در نیمه‌ی چپ و فضای خالی را در نیمه‌ی راست
  دارند، پس متن سمت راست می‌نشیند و گرادیان هم باید از راست سفید شروع شود
  و به سمت چپ محو شود. (`to left` یعنی مبدأ گرادیان لبه‌ی راست است.)
*/
.ovex-slider__slide::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to left, rgba(255, 252, 248, .97) 0%, rgba(255, 252, 248, .92) 22%, rgba(255, 252, 248, .62) 38%, rgba(255, 252, 248, 0) 58%);
  z-index: 1;
  pointer-events: none;
}

/*
  بنرهای آماده (کلاس is-ready) متن و دکمه را روی خود تصویر دارند، پس
  گرادیان خوانایی لازم نیست و فقط تصویر را محو و سفید می‌کند.
*/
.ovex-slider__slide.is-ready::before {
  display: none;
}

/*
  محتوای اسلاید در RTL باید فیزیکاً سمت «راست» تصویر بنشیند.
  در راست‌چین `inline-start` همان لبه‌ی راست است؛ استفاده از
  `inset-inline-end` قبلاً متن را به سمت چپ (روی کمد و جاکفشی) می‌برد.
*/
.ovex-slide__content {
  position: absolute;
  inset-block: 0;
  inset-inline-start: 0;
  inset-inline-end: auto;
  width: min(42%, 500px);
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 10px;
  padding-inline: clamp(18px, 3vw, 44px);
  padding-block: 18px;
}

.ovex-slide__kicker {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 26px;
  padding-inline: 12px;
  border-radius: var(--ovex-r-pill);
  background: var(--ovex-primary-grad);
  color: var(--ovex-white);
  font-size: 12px;
  font-weight: 700;
  box-shadow: 0 3px 10px rgba(251, 119, 1, .26);
}

.ovex-slide__title {
  font-size: clamp(19px, 2.2vw, 32px);
  font-weight: 900;
  line-height: 1.5;
  color: var(--ovex-ink);
  margin: 0;
  max-width: 100%;
  text-shadow: 0 1px 0 rgba(255, 255, 255, .85);
}

.ovex-slide__title b,
.ovex-slide__title em {
  color: var(--ovex-primary);
  font-style: normal;
  font-weight: 900;
}

.ovex-slide__text {
  font-size: clamp(12.5px, 1.1vw, 15px);
  color: var(--ovex-ink-2);
  line-height: 1.9;
  margin: 0;
  max-width: 100%;
  /* حداکثر سه خط تا از کادر متن بیرون نزند */
  display: -webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.ovex-slide__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 44px;
  padding-inline: 26px;
  border-radius: var(--ovex-r-pill);
  background: var(--ovex-primary-grad);
  color: var(--ovex-white);
  font-size: 14px;
  font-weight: 800;
  margin-block-start: 6px;
  box-shadow: 0 5px 16px rgba(251, 119, 1, .3);
  transition: transform var(--ovex-t-fast) var(--ovex-ease), filter var(--ovex-t-fast) var(--ovex-ease);
}

.ovex-slide__cta:hover {
  color: var(--ovex-white);
  transform: translateY(-2px);
  filter: brightness(1.07);
}

.ovex-slide__cta .ovex-icon {
  width: 18px;
  height: 18px;
}

/* واترمارک دامنه روی اسلاید (علاوه بر واترمارک داخل تصویر) */
.ovex-slide__mark {
  position: absolute;
  bottom: 10px;
  inset-inline-start: 14px;
  z-index: 2;
  font-size: 11px;
  font-weight: 700;
  color: var(--ovex-ink-3);
  opacity: .7;
  direction: ltr;
  letter-spacing: .06em;
}

/* نقطه‌ها */
.ovex-slider__dots {
  position: absolute;
  bottom: 12px;
  inset-inline: 0;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
}

.ovex-slider__dot {
  width: 9px;
  height: 9px;
  border-radius: var(--ovex-r-pill);
  background: rgba(26, 26, 26, .24);
  border: 0;
  padding: 0;
  cursor: pointer;
  transition:
    width var(--ovex-t) var(--ovex-ease),
    background-color var(--ovex-t) var(--ovex-ease);
}

.ovex-slider__dot:hover {
  background: rgba(26, 26, 26, .4);
}

.ovex-slider__dot.is-active {
  width: 26px;
  background: var(--ovex-primary);
}

/* فلش‌ها — در RTL جهت آیکن آینه می‌شود */
.ovex-slider__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .92);
  color: var(--ovex-ink);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--ovex-sh-2);
  z-index: 3;
  opacity: 0;
  transition:
    opacity var(--ovex-t) var(--ovex-ease),
    background-color var(--ovex-t-fast) var(--ovex-ease),
    color var(--ovex-t-fast) var(--ovex-ease);
}

.ovex-slider:hover .ovex-slider__arrow,
.ovex-slider:focus-within .ovex-slider__arrow {
  opacity: 1;
}

.ovex-slider__arrow:hover {
  background: var(--ovex-primary);
  color: var(--ovex-white);
}

.ovex-slider__arrow .ovex-icon {
  width: 20px;
  height: 20px;
}

/* «قبلی» در RTL یعنی سمت راست */
.ovex-slider__arrow--prev {
  inset-inline-end: 14px;
}

/* «بعدی» در RTL یعنی سمت چپ */
.ovex-slider__arrow--next {
  inset-inline-start: 14px;
}

.ovex-slider__arrow.is-disabled {
  opacity: .35;
  pointer-events: none;
}

/* نوار پیشرفت پخش خودکار */
.ovex-slider__progress {
  position: absolute;
  inset-inline: 0;
  bottom: 0;
  height: 3px;
  background: rgba(26, 26, 26, .1);
  z-index: 3;
}

.ovex-slider__progress span {
  display: block;
  height: 100%;
  width: 0;
  background: var(--ovex-primary-grad);
}

.ovex-slider__progress span.is-running {
  animation: ovex-slider-progress linear forwards;
}

@keyframes ovex-slider-progress {
  from { width: 0; }
  to   { width: 100%; }
}

/* ریل محصولات با اسکرول (اسلایدر کوچک) */
.ovex-rail {
  position: relative;
}

.ovex-rail__track {
  display: flex;
  gap: var(--ovex-gap);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  padding-block-end: 4px;
  scrollbar-width: none;
}

.ovex-rail__track::-webkit-scrollbar {
  display: none;
}

.ovex-rail__track > * {
  flex: 0 0 calc((100% - var(--ovex-gap) * 4) / 5);
  scroll-snap-align: start;
  min-width: 170px;
}

.ovex-rail__arrow {
  position: absolute;
  top: 40%;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--ovex-surface);
  color: var(--ovex-ink);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--ovex-sh-2);
  z-index: 3;
  transition: background-color var(--ovex-t-fast) var(--ovex-ease), color var(--ovex-t-fast) var(--ovex-ease);
}

.ovex-rail__arrow:hover {
  background: var(--ovex-primary);
  color: var(--ovex-white);
}

.ovex-rail__arrow--prev { inset-inline-end: -8px; }
.ovex-rail__arrow--next { inset-inline-start: -8px; }

/* ============================================================
   ۷) ردیف دایره‌ای دسته‌ها
   ============================================================ */

.ovex-cats {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  overflow-x: auto;
  padding-block: 6px 10px;
  scrollbar-width: none;
  background: var(--ovex-surface);
  border-radius: var(--ovex-r-lg);
  padding-inline: 10px;
  box-shadow: var(--ovex-sh-1);
}

.ovex-cats::-webkit-scrollbar {
  display: none;
}

.ovex-cats__item {
  flex: 1 0 auto;
  min-width: 92px;
  max-width: 116px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 7px;
  padding: 10px 6px;
  border-radius: var(--ovex-r);
  transition: background-color var(--ovex-t-fast) var(--ovex-ease);
  text-align: center;
}

.ovex-cats__item:hover {
  background: var(--ovex-primary-50);
}

.ovex-cats__img {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  object-fit: cover;
  background: var(--ovex-bg);
  border: 2px solid var(--ovex-line);
  padding: 3px;
  transition:
    border-color var(--ovex-t) var(--ovex-ease),
    transform var(--ovex-t) var(--ovex-ease),
    box-shadow var(--ovex-t) var(--ovex-ease);
}

.ovex-cats__item:hover .ovex-cats__img {
  border-color: var(--ovex-primary);
  transform: translateY(-3px) scale(1.04);
  box-shadow: 0 6px 16px rgba(251, 119, 1, .2);
}

.ovex-cats__name {
  font-size: 12px;
  font-weight: 600;
  color: var(--ovex-ink-2);
  line-height: 1.6;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.ovex-cats__item:hover .ovex-cats__name {
  color: var(--ovex-primary);
}

.ovex-cats__count {
  font-size: 10.5px;
  color: var(--ovex-ink-3);
}

/* نسخه‌ی کاشی‌ای (کارت‌های مربعی دسته) */
.ovex-cattiles {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: var(--ovex-gap);
}

.ovex-cattile {
  position: relative;
  border-radius: var(--ovex-r);
  overflow: hidden;
  background: var(--ovex-surface);
  box-shadow: var(--ovex-sh-1);
  aspect-ratio: 1 / 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  transition: transform var(--ovex-t) var(--ovex-ease), box-shadow var(--ovex-t) var(--ovex-ease);
}

.ovex-cattile:hover {
  transform: translateY(-2px);
  box-shadow: var(--ovex-sh-3);
}

.ovex-cattile img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ovex-cattile b {
  position: relative;
  z-index: 1;
  padding: 10px;
  font-size: 13px;
  font-weight: 700;
  color: var(--ovex-white);
  background: linear-gradient(to top, rgba(0, 0, 0, .6), rgba(0, 0, 0, 0));
}

/* ============================================================
   ۸) فروش ویژه و تایمر
   ============================================================ */

.ovex-deal {
  background: var(--ovex-sale-grad);
  border-radius: var(--ovex-r-lg);
  padding: 16px 18px;
  color: var(--ovex-white);
  box-shadow: var(--ovex-sh-2);
  position: relative;
  overflow: hidden;
}

.ovex-deal::after {
  content: "";
  position: absolute;
  inset-inline-end: -40px;
  top: -40px;
  width: 180px;
  height: 180px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .09);
  pointer-events: none;
}

.ovex-deal__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  margin-block-end: 14px;
  position: relative;
  z-index: 1;
}

.ovex-deal__head-title {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 19px;
  font-weight: 900;
  color: var(--ovex-white);
  margin: 0;
}

.ovex-deal__head-title .ovex-icon {
  width: 24px;
  height: 24px;
  color: var(--ovex-warning);
  fill: currentColor;
  stroke: none;
}

.ovex-deal__head .ovex-section__more {
  background: rgba(255, 255, 255, .2);
  color: var(--ovex-white);
}

.ovex-deal__head .ovex-section__more:hover {
  background: var(--ovex-white);
  color: var(--ovex-price);
}

/*
  ترتیب واحدها در HTML: روز، ساعت، دقیقه، ثانیه.
  با direction: rtl خوانش درست راست‌چین می‌شود: «روز» سمت راست و
  «ثانیه» سمت چپ. (قبلاً ltr بود و ترتیب وارونه خوانده می‌شد.)
*/
.ovex-deal__timer {
  display: flex;
  align-items: center;
  gap: 6px;
  direction: rtl;
}

/* خود عددها همیشه با ارقام فارسی و بدون وارونگی */
.ovex-deal__timer .ovex-deal__num,
.ovex-deal__timer .ovex-deal__unit b {
  unicode-bidi: isolate;
}

.ovex-deal__timer-label {
  font-size: 12.5px;
  font-weight: 600;
  opacity: .92;
  margin-inline-end: 4px;
  direction: rtl;
}

.ovex-deal__unit {
  min-width: 46px;
  height: 46px;
  border-radius: var(--ovex-r-sm);
  background: rgba(255, 255, 255, .95);
  color: var(--ovex-price-700);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  padding-inline: 5px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, .12);
}

.ovex-deal__unit b {
  font-size: 18px;
  font-weight: 900;
  line-height: 1;
}

.ovex-deal__unit span {
  font-size: 9.5px;
  font-weight: 600;
  color: var(--ovex-ink-3);
  line-height: 1;
}

.ovex-deal__sep {
  font-size: 18px;
  font-weight: 900;
  opacity: .8;
  line-height: 1;
}

.ovex-deal__body {
  position: relative;
  z-index: 1;
}

/* کارت‌های داخل باکس فروش ویژه سفید می‌مانند */
.ovex-deal .ovex-card {
  box-shadow: none;
}

/* نوار پیشرفت فروش (چند عدد باقی‌مانده) */
.ovex-deal__progress {
  margin-block-start: 6px;
}

.ovex-deal__progress .ovex-bar {
  background: rgba(255, 255, 255, .4);
  height: 5px;
}

.ovex-deal__progress .ovex-bar__fill {
  background: var(--ovex-warning);
}

.ovex-deal__progress span {
  display: block;
  font-size: 10.5px;
  margin-block-start: 4px;
  opacity: .92;
}

/* ============================================================
   ۹) تضمین‌ها (trust)
   ============================================================ */

.ovex-trust {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: var(--ovex-gap);
  background: var(--ovex-surface);
  border-radius: var(--ovex-r-lg);
  padding: 18px;
  box-shadow: var(--ovex-sh-1);
}

.ovex-trust__item {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 6px 4px;
  border-radius: var(--ovex-r);
  transition: background-color var(--ovex-t-fast) var(--ovex-ease);
  min-width: 0;
}

.ovex-trust__item:hover {
  background: var(--ovex-primary-50);
}

.ovex-trust__item .ovex-icon,
.ovex-trust__icon {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  border-radius: 50%;
  background: var(--ovex-primary-100);
  color: var(--ovex-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 9px;
  transition: background var(--ovex-t) var(--ovex-ease), color var(--ovex-t) var(--ovex-ease);
}

.ovex-trust__item:hover .ovex-trust__icon {
  background: var(--ovex-primary-grad);
  color: var(--ovex-white);
}

.ovex-trust__text {
  min-width: 0;
}

.ovex-trust__text b {
  display: block;
  font-size: 13px;
  font-weight: 700;
  color: var(--ovex-ink);
  line-height: 1.7;
}

.ovex-trust__text span {
  display: block;
  font-size: 11.5px;
  color: var(--ovex-ink-3);
  line-height: 1.7;
}

/* ============================================================
   ۱۰) مودال
   ============================================================ */

.ovex-modal {
  position: fixed;
  inset: 0;
  z-index: var(--ovex-z-modal);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: var(--ovex-overlay);
  opacity: 0;
  visibility: hidden;
  transition:
    opacity var(--ovex-t) var(--ovex-ease),
    visibility var(--ovex-t) var(--ovex-ease);
  overflow-y: auto;
  backdrop-filter: blur(2px);
}

.ovex-modal.is-open {
  opacity: 1;
  visibility: visible;
}

.ovex-modal__box {
  position: relative;
  width: 100%;
  max-width: 460px;
  max-height: calc(100vh - 32px);
  overflow-y: auto;
  background: var(--ovex-surface);
  border-radius: var(--ovex-r-lg);
  box-shadow: var(--ovex-sh-3);
  padding: 22px;
  transform: translateY(18px) scale(.98);
  transition: transform var(--ovex-t) var(--ovex-ease);
}

.ovex-modal.is-open .ovex-modal__box {
  transform: translateY(0) scale(1);
}

.ovex-modal__box--lg {
  max-width: 860px;
}

.ovex-modal__box--sm {
  max-width: 360px;
}

.ovex-modal__close {
  position: absolute;
  top: 12px;
  inset-inline-end: 12px;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--ovex-bg);
  color: var(--ovex-ink-2);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  transition:
    background-color var(--ovex-t-fast) var(--ovex-ease),
    color var(--ovex-t-fast) var(--ovex-ease),
    transform var(--ovex-t-fast) var(--ovex-ease);
}

.ovex-modal__close:hover {
  background: var(--ovex-danger-bg);
  color: var(--ovex-danger);
  transform: rotate(90deg);
}

.ovex-modal__head {
  margin-block-end: 16px;
  padding-inline-end: 44px;
}

.ovex-modal__title {
  font-size: 17px;
  font-weight: 800;
  color: var(--ovex-ink);
  margin: 0 0 4px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.ovex-modal__title .ovex-icon {
  color: var(--ovex-primary);
}

.ovex-modal__sub {
  font-size: 12.5px;
  color: var(--ovex-ink-3);
  line-height: 1.9;
}

.ovex-modal__body {
  font-size: 13.5px;
  color: var(--ovex-ink-2);
}

.ovex-modal__foot {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-block-start: 18px;
}

.ovex-modal__foot .ovex-btn {
  flex: 1 1 auto;
}

/* خلاصه‌ی محصول داخل مودال «موجودم کن» */
.ovex-modal__product {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 10px;
  border-radius: var(--ovex-r);
  background: var(--ovex-primary-50);
  margin-block-end: 16px;
}

.ovex-modal__product img {
  width: 58px;
  height: 58px;
  border-radius: var(--ovex-r-sm);
  object-fit: cover;
  flex: 0 0 58px;
  background: var(--ovex-surface);
}

.ovex-modal__product b {
  display: block;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.7;
}

.ovex-modal__product span {
  font-size: 11.5px;
  color: var(--ovex-ink-3);
}

/* نتیجه‌ی موفق داخل مودال */
.ovex-modal__done {
  text-align: center;
  padding: 16px 6px;
}

.ovex-modal__done .ovex-icon {
  width: 54px;
  height: 54px;
  color: var(--ovex-success);
  margin-inline: auto;
  margin-block-end: 12px;
}

.ovex-modal__done b {
  display: block;
  font-size: 16px;
  font-weight: 800;
  margin-block-end: 6px;
}

.ovex-modal__done p {
  font-size: 13px;
  color: var(--ovex-ink-3);
}

/* ============================================================
   ۱۱) توست
   ============================================================ */

.ovex-toasts {
  position: fixed;
  top: calc(var(--ovex-header-h) + 16px);
  inset-inline-start: 16px;
  z-index: var(--ovex-z-toast);
  display: flex;
  flex-direction: column;
  gap: 9px;
  pointer-events: none;
  max-width: calc(100vw - 32px);
}

.ovex-toast {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 250px;
  max-width: 380px;
  padding: 12px 15px;
  border-radius: var(--ovex-r);
  background: var(--ovex-surface);
  box-shadow: var(--ovex-sh-3);
  border-inline-start: 4px solid var(--ovex-ink-3);
  font-size: 13px;
  font-weight: 600;
  color: var(--ovex-ink);
  pointer-events: auto;
  animation: ovex-toast-in var(--ovex-t) var(--ovex-ease);
}

@keyframes ovex-toast-in {
  from { opacity: 0; transform: translateX(24px); }
  to   { opacity: 1; transform: translateX(0); }
}

.ovex-toast.is-out {
  animation: ovex-toast-out var(--ovex-t) var(--ovex-ease) forwards;
}

@keyframes ovex-toast-out {
  from { opacity: 1; transform: translateX(0); }
  to   { opacity: 0; transform: translateX(24px); }
}

.ovex-toast .ovex-icon {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
}

.ovex-toast__text {
  flex: 1 1 auto;
  min-width: 0;
  line-height: 1.75;
}

.ovex-toast__close {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  color: var(--ovex-ink-3);
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}

.ovex-toast__close:hover {
  background: var(--ovex-bg);
  color: var(--ovex-ink);
}

.ovex-toast--ok {
  border-inline-start-color: var(--ovex-success);
}

.ovex-toast--ok .ovex-icon {
  color: var(--ovex-success);
}

.ovex-toast--err {
  border-inline-start-color: var(--ovex-danger);
}

.ovex-toast--err .ovex-icon {
  color: var(--ovex-danger);
}

.ovex-toast--info {
  border-inline-start-color: var(--ovex-primary);
}

.ovex-toast--info .ovex-icon {
  color: var(--ovex-primary);
}

/* ============================================================
   ۱۲) اسکلت بارگذاری
   ============================================================ */

.ovex-skeleton {
  position: relative;
  overflow: hidden;
  background: var(--ovex-skeleton-1);
  border-radius: var(--ovex-r-sm);
  display: block;
}

.ovex-skeleton::after {
  content: "";
  position: absolute;
  inset: 0;
  transform: translateX(-100%);
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0) 0%,
    var(--ovex-skeleton-2) 50%,
    rgba(255, 255, 255, 0) 100%
  );
  animation: ovex-shimmer 1.3s infinite;
}

@keyframes ovex-shimmer {
  100% { transform: translateX(100%); }
}

.ovex-skeleton--text {
  height: 12px;
  margin-block-end: 8px;
  border-radius: var(--ovex-r-pill);
}

.ovex-skeleton--text.is-short { width: 55%; }
.ovex-skeleton--text.is-mid   { width: 78%; }

.ovex-skeleton--title {
  height: 18px;
  width: 65%;
  margin-block-end: 12px;
  border-radius: var(--ovex-r-pill);
}

.ovex-skeleton--img {
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: var(--ovex-r) var(--ovex-r) 0 0;
}

.ovex-skeleton--circle {
  width: 72px;
  height: 72px;
  border-radius: 50%;
}

.ovex-skeleton--btn {
  height: 38px;
  border-radius: var(--ovex-r-pill);
}

/* کارت اسکلتی کامل */
.ovex-skeleton-card {
  background: var(--ovex-surface);
  border-radius: var(--ovex-r);
  overflow: hidden;
  box-shadow: var(--ovex-sh-1);
}

.ovex-skeleton-card__body {
  padding: 11px;
}

/* پوشش لودینگ روی یک ناحیه */
.ovex-loading {
  position: relative;
  min-height: 120px;
}

.ovex-loading.is-loading::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, .7);
  z-index: 5;
  border-radius: inherit;
}

.ovex-loading.is-loading::before {
  content: "";
  position: absolute;
  top: calc(50% - 16px);
  inset-inline-start: calc(50% - 16px);
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 3px solid var(--ovex-primary-100);
  border-top-color: var(--ovex-primary);
  animation: ovex-spin .8s linear infinite;
  z-index: 6;
}

.ovex-spinner {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  border: 3px solid var(--ovex-primary-100);
  border-top-color: var(--ovex-primary);
  animation: ovex-spin .8s linear infinite;
  display: inline-block;
}

/* ============================================================
   ۱۳) تولتیپ
   ============================================================ */

.ovex-tooltip {
  position: relative;
  display: inline-flex;
}

.ovex-tooltip::after {
  content: attr(data-tip);
  position: absolute;
  bottom: calc(100% + 8px);
  inset-inline-start: 50%;
  transform: translateX(50%) translateY(4px);
  background: var(--ovex-ink);
  color: var(--ovex-white);
  font-size: 11.5px;
  font-weight: 600;
  padding: 6px 10px;
  border-radius: var(--ovex-r-sm);
  white-space: nowrap;
  max-width: 240px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  z-index: 60;
  transition:
    opacity var(--ovex-t-fast) var(--ovex-ease),
    transform var(--ovex-t-fast) var(--ovex-ease),
    visibility var(--ovex-t-fast) var(--ovex-ease);
}

.ovex-tooltip::before {
  content: "";
  position: absolute;
  bottom: calc(100% + 3px);
  inset-inline-start: 50%;
  transform: translateX(50%);
  border: 5px solid transparent;
  border-top-color: var(--ovex-ink);
  opacity: 0;
  visibility: hidden;
  z-index: 60;
  transition: opacity var(--ovex-t-fast) var(--ovex-ease), visibility var(--ovex-t-fast) var(--ovex-ease);
}

.ovex-tooltip:hover::after,
.ovex-tooltip:focus-within::after {
  opacity: 1;
  visibility: visible;
  transform: translateX(50%) translateY(0);
}

.ovex-tooltip:hover::before,
.ovex-tooltip:focus-within::before {
  opacity: 1;
  visibility: visible;
}

.ovex-tooltip--bottom::after {
  bottom: auto;
  top: calc(100% + 8px);
  transform: translateX(50%) translateY(-4px);
}

.ovex-tooltip--bottom::before {
  bottom: auto;
  top: calc(100% + 3px);
  border-top-color: transparent;
  border-bottom-color: var(--ovex-ink);
}

.ovex-tooltip--bottom:hover::after {
  transform: translateX(50%) translateY(0);
}

/* ============================================================
   ۱۴) تب‌ها
   ============================================================ */

.ovex-tabs {
  background: var(--ovex-surface);
  border-radius: var(--ovex-r-lg);
  box-shadow: var(--ovex-sh-1);
  overflow: hidden;
}

.ovex-tabs__nav {
  display: flex;
  align-items: stretch;
  gap: 2px;
  border-bottom: 1px solid var(--ovex-line);
  overflow-x: auto;
  scrollbar-width: none;
  margin: 0;
  padding: 0 8px;
  list-style: none;
  background: var(--ovex-surface);
}

.ovex-tabs__nav::-webkit-scrollbar {
  display: none;
}

.ovex-tabs__btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  height: 50px;
  padding-inline: 18px;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--ovex-ink-3);
  white-space: nowrap;
  background: transparent;
  border: 0;
  cursor: pointer;
  transition: color var(--ovex-t-fast) var(--ovex-ease);
}

.ovex-tabs__btn::after {
  content: "";
  position: absolute;
  inset-inline: 12px;
  bottom: -1px;
  height: 3px;
  border-radius: var(--ovex-r-pill) var(--ovex-r-pill) 0 0;
  background: var(--ovex-primary-grad);
  transform: scaleX(0);
  transition: transform var(--ovex-t) var(--ovex-ease);
}

.ovex-tabs__btn:hover {
  color: var(--ovex-ink);
}

.ovex-tabs__btn.is-active {
  color: var(--ovex-primary);
}

.ovex-tabs__btn.is-active::after {
  transform: scaleX(1);
}

.ovex-tabs__btn .ovex-icon {
  width: 17px;
  height: 17px;
}

.ovex-tabs__btn-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding-inline: 5px;
  border-radius: var(--ovex-r-pill);
  background: var(--ovex-bg);
  color: var(--ovex-ink-3);
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
}

.ovex-tabs__btn.is-active .ovex-tabs__btn-count {
  background: var(--ovex-primary-100);
  color: var(--ovex-primary-700);
}

.ovex-tabs__panel {
  display: none;
  padding: 20px;
  animation: ovex-fade-in var(--ovex-t) var(--ovex-ease);
}

.ovex-tabs__panel.is-active {
  display: block;
}

@keyframes ovex-fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* تب‌های قرصی‌شکل */
.ovex-tabs--pill {
  background: transparent;
  box-shadow: none;
}

.ovex-tabs--pill .ovex-tabs__nav {
  border-bottom: 0;
  padding: 0;
  gap: 8px;
  margin-block-end: 14px;
}

.ovex-tabs--pill .ovex-tabs__btn {
  height: 36px;
  border-radius: var(--ovex-r-pill);
  background: var(--ovex-surface);
  border: 1px solid var(--ovex-line);
  font-size: 12.5px;
}

.ovex-tabs--pill .ovex-tabs__btn::after {
  display: none;
}

.ovex-tabs--pill .ovex-tabs__btn.is-active {
  background: var(--ovex-primary-grad);
  color: var(--ovex-white);
  border-color: transparent;
}

.ovex-tabs--pill .ovex-tabs__panel {
  padding: 0;
}

/* ============================================================
   ۱۵) آکاردئون
   ============================================================ */

.ovex-acc {
  border: 1px solid var(--ovex-line);
  border-radius: var(--ovex-r);
  overflow: hidden;
  background: var(--ovex-surface);
  margin-block-end: 10px;
}

.ovex-acc__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  padding: 13px 15px;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--ovex-ink);
  text-align: start;
  background: var(--ovex-surface);
  transition: background-color var(--ovex-t-fast) var(--ovex-ease);
}

.ovex-acc__head:hover {
  background: var(--ovex-primary-50);
}

.ovex-acc__head .ovex-icon {
  color: var(--ovex-ink-3);
  transition: transform var(--ovex-t) var(--ovex-ease), color var(--ovex-t) var(--ovex-ease);
  flex: 0 0 auto;
}

.ovex-acc.is-open .ovex-acc__head {
  color: var(--ovex-primary);
}

.ovex-acc.is-open .ovex-acc__head .ovex-icon {
  transform: rotate(180deg);
  color: var(--ovex-primary);
}

.ovex-acc__body {
  display: none;
  padding: 0 15px 15px;
  font-size: 13px;
  color: var(--ovex-ink-2);
  line-height: 2.05;
}

.ovex-acc.is-open .ovex-acc__body {
  display: block;
  animation: ovex-fade-down var(--ovex-t) var(--ovex-ease);
}

/* ============================================================
   ۱۶) صفحه‌بندی
   ============================================================ */

.ovex-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 6px;
  margin-block: 26px 10px;
}

.ovex-pagination .page-numbers,
.ovex-pagination__item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 38px;
  padding-inline: 12px;
  border-radius: var(--ovex-r-sm);
  background: var(--ovex-surface);
  border: 1px solid var(--ovex-line);
  font-size: 13px;
  font-weight: 700;
  color: var(--ovex-ink-2);
  transition:
    background-color var(--ovex-t-fast) var(--ovex-ease),
    color var(--ovex-t-fast) var(--ovex-ease),
    border-color var(--ovex-t-fast) var(--ovex-ease),
    transform var(--ovex-t-fast) var(--ovex-ease);
}

.ovex-pagination a.page-numbers:hover,
.ovex-pagination__item:hover {
  border-color: var(--ovex-primary);
  color: var(--ovex-primary);
  background: var(--ovex-primary-50);
  transform: translateY(-1px);
}

.ovex-pagination .page-numbers.current,
.ovex-pagination__item.is-active {
  background: var(--ovex-primary-grad);
  border-color: transparent;
  color: var(--ovex-white);
  box-shadow: 0 3px 10px rgba(251, 119, 1, .26);
}

.ovex-pagination .page-numbers.dots {
  border-color: transparent;
  background: transparent;
  cursor: default;
  min-width: 26px;
  padding-inline: 0;
}

.ovex-pagination .page-numbers.prev,
.ovex-pagination .page-numbers.next {
  padding-inline: 14px;
  gap: 5px;
}

.ovex-pagination .ovex-icon {
  width: 16px;
  height: 16px;
}

.ovex-pagination__info {
  width: 100%;
  text-align: center;
  font-size: 12px;
  color: var(--ovex-ink-3);
  margin-block-start: 6px;
}

/* دکمه‌ی «نمایش بیشتر» */
.ovex-loadmore {
  display: flex;
  justify-content: center;
  margin-block: 22px;
}

/* ============================================================
   ۱۷) مسیر راهنما (breadcrumb)
   ============================================================ */

.ovex-breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px;
  font-size: 12.5px;
  color: var(--ovex-ink-3);
  padding-block: 12px;
  line-height: 1.9;
}

.ovex-breadcrumb a {
  color: var(--ovex-ink-3);
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.ovex-breadcrumb a:hover {
  color: var(--ovex-primary);
}

.ovex-breadcrumb .ovex-icon {
  width: 14px;
  height: 14px;
}

.ovex-breadcrumb__sep {
  color: var(--ovex-line-2);
  display: inline-flex;
  align-items: center;
  margin-inline: 1px;
}

/* جداکننده‌ی متنی پیش‌فرض ووکامرس */
.ovex-breadcrumb > span > span {
  margin-inline: 3px;
}

.ovex-breadcrumb__current,
.ovex-breadcrumb > span:last-child {
  color: var(--ovex-ink-2);
  font-weight: 600;
}

/* ============================================================
   ۱۸) حالت خالی
   ============================================================ */

.ovex-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  text-align: center;
  padding: 48px 20px;
  background: var(--ovex-surface);
  border-radius: var(--ovex-r-lg);
  box-shadow: var(--ovex-sh-1);
}

.ovex-empty__icon,
.ovex-empty .ovex-icon {
  width: 76px;
  height: 76px;
  color: var(--ovex-line-2);
  stroke-width: 1.2;
  margin-block-end: 4px;
}

.ovex-empty__title {
  font-size: 17px;
  font-weight: 800;
  color: var(--ovex-ink);
  margin: 0;
}

.ovex-empty__text {
  font-size: 13px;
  color: var(--ovex-ink-3);
  max-width: 44ch;
  line-height: 2;
  margin: 0;
}

.ovex-empty .ovex-btn {
  margin-block-start: 8px;
}

/* ============================================================
   ۱۹) پیام‌ها / نوتیس‌ها
   ============================================================ */

.ovex-notice {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 14px;
  border-radius: var(--ovex-r);
  font-size: 13px;
  line-height: 1.9;
  background: var(--ovex-primary-50);
  border-inline-start: 4px solid var(--ovex-primary);
  color: var(--ovex-ink-2);
  margin-block-end: 12px;
}

.ovex-notice .ovex-icon {
  flex: 0 0 auto;
  margin-block-start: 3px;
  color: var(--ovex-primary);
}

.ovex-notice--ok {
  background: var(--ovex-success-bg);
  border-inline-start-color: var(--ovex-success);
}

.ovex-notice--ok .ovex-icon {
  color: var(--ovex-success);
}

.ovex-notice--warn {
  background: var(--ovex-warning-bg);
  border-inline-start-color: var(--ovex-warning);
}

.ovex-notice--warn .ovex-icon {
  color: var(--ovex-warning);
}

.ovex-notice--err {
  background: var(--ovex-danger-bg);
  border-inline-start-color: var(--ovex-danger);
}

.ovex-notice--err .ovex-icon {
  color: var(--ovex-danger);
}

.ovex-notice a {
  color: var(--ovex-primary);
  font-weight: 700;
  margin-inline-start: auto;
  white-space: nowrap;
}

/* ============================================================
   ۲۰) بنرها و خبرنامه
   ============================================================ */

.ovex-banners {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ovex-gap);
}

.ovex-banner {
  position: relative;
  border-radius: var(--ovex-r-lg);
  overflow: hidden;
  min-height: 150px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  padding: 18px 20px;
  background: var(--ovex-primary-100);
  box-shadow: var(--ovex-sh-1);
  transition: transform var(--ovex-t) var(--ovex-ease), box-shadow var(--ovex-t) var(--ovex-ease);
}

.ovex-banner:hover {
  transform: translateY(-2px);
  box-shadow: var(--ovex-sh-3);
}

.ovex-banner img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ovex-banner__body {
  position: relative;
  z-index: 1;
  max-width: 72%;
}

.ovex-banner__body b {
  display: block;
  font-size: 16px;
  font-weight: 800;
  color: var(--ovex-ink);
  line-height: 1.7;
}

.ovex-banner__body span {
  display: block;
  font-size: 12.5px;
  color: var(--ovex-ink-2);
  margin-block-end: 8px;
}

.ovex-banner__body .ovex-btn {
  height: 32px;
  font-size: 12px;
  padding-inline: 16px;
}

.ovex-newsletter {
  background: var(--ovex-primary-grad);
  border-radius: var(--ovex-r-lg);
  padding: 24px;
  color: var(--ovex-white);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  flex-wrap: wrap;
  box-shadow: var(--ovex-sh-2);
  position: relative;
  overflow: hidden;
}

.ovex-newsletter::after {
  content: "";
  position: absolute;
  inset-inline-start: -30px;
  bottom: -60px;
  width: 200px;
  height: 200px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .1);
}

.ovex-newsletter__text {
  position: relative;
  z-index: 1;
  min-width: 240px;
  flex: 1 1 300px;
}

.ovex-newsletter__text b {
  display: block;
  font-size: 19px;
  font-weight: 900;
  margin-block-end: 5px;
}

.ovex-newsletter__text span {
  font-size: 13px;
  opacity: .94;
  line-height: 1.9;
}

.ovex-newsletter__form {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--ovex-surface);
  border-radius: var(--ovex-r-pill);
  padding: 5px 5px 5px 5px;
  padding-inline-start: 16px;
  flex: 1 1 340px;
  max-width: 440px;
}

.ovex-newsletter__form input {
  border: 0;
  background: transparent;
  padding: 0;
  height: 38px;
  flex: 1 1 auto;
  min-width: 0;
}

.ovex-newsletter__form input:focus {
  box-shadow: none;
}

.ovex-newsletter__form .ovex-btn {
  flex: 0 0 auto;
  height: 38px;
}

/* ============================================================
   ۲۱) ورودی تعداد (quantity)
   ============================================================ */

.ovex-qty {
  display: inline-flex;
  align-items: center;
  height: 40px;
  border: 1px solid var(--ovex-line-2);
  border-radius: var(--ovex-r-pill);
  background: var(--ovex-surface);
  overflow: hidden;
  flex: 0 0 auto;
}

.ovex-qty__btn {
  width: 38px;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ovex-ink-2);
  font-size: 17px;
  font-weight: 700;
  transition: background-color var(--ovex-t-fast) var(--ovex-ease), color var(--ovex-t-fast) var(--ovex-ease);
}

.ovex-qty__btn:hover {
  background: var(--ovex-primary-50);
  color: var(--ovex-primary);
}

.ovex-qty__btn:disabled {
  color: var(--ovex-line-2);
  background: transparent;
}

.ovex-qty input,
.ovex-qty .qty {
  width: 46px;
  height: 100%;
  border: 0;
  border-radius: 0;
  text-align: center;
  font-size: 14px;
  font-weight: 700;
  padding: 0;
  background: transparent;
}

.ovex-qty input:focus {
  box-shadow: none;
}

/* ============================================================
   ۲۲) چیپ‌ها و تگ‌ها
   ============================================================ */

.ovex-chips {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
}

.ovex-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 30px;
  padding-inline: 12px;
  border-radius: var(--ovex-r-pill);
  background: var(--ovex-surface);
  border: 1px solid var(--ovex-line-2);
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ovex-ink-2);
  cursor: pointer;
  transition:
    border-color var(--ovex-t-fast) var(--ovex-ease),
    color var(--ovex-t-fast) var(--ovex-ease),
    background-color var(--ovex-t-fast) var(--ovex-ease);
}

.ovex-chip:hover {
  border-color: var(--ovex-primary);
  color: var(--ovex-primary);
}

.ovex-chip.is-active,
.ovex-chip.is-selected {
  background: var(--ovex-primary-50);
  border-color: var(--ovex-primary);
  color: var(--ovex-primary-700);
}

.ovex-chip__x {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--ovex-line);
  color: var(--ovex-ink-2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  line-height: 1;
  flex: 0 0 auto;
  transition: background-color var(--ovex-t-fast) var(--ovex-ease), color var(--ovex-t-fast) var(--ovex-ease);
}

.ovex-chip__x:hover {
  background: var(--ovex-danger);
  color: var(--ovex-white);
}

.ovex-tag {
  display: inline-flex;
  align-items: center;
  height: 26px;
  padding-inline: 11px;
  border-radius: var(--ovex-r-sm);
  background: var(--ovex-bg);
  color: var(--ovex-ink-2);
  font-size: 12px;
  font-weight: 600;
}

.ovex-tag:hover {
  background: var(--ovex-primary-100);
  color: var(--ovex-primary-700);
}

/* ============================================================
   ۲۳) آواتار و لیست ساده
   ============================================================ */

.ovex-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
  background: var(--ovex-primary-100);
  color: var(--ovex-primary-700);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 800;
  flex: 0 0 auto;
  overflow: hidden;
}

.ovex-avatar--sm { width: 30px; height: 30px; font-size: 12px; }
.ovex-avatar--lg { width: 56px; height: 56px; font-size: 18px; }

.ovex-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.ovex-list li {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 9px 0;
  border-bottom: 1px solid var(--ovex-line);
  font-size: 13px;
  color: var(--ovex-ink-2);
}

.ovex-list li:last-child {
  border-bottom: 0;
}

.ovex-list li .ovex-icon {
  color: var(--ovex-primary);
  width: 17px;
  height: 17px;
  flex: 0 0 auto;
}

.ovex-list li b {
  margin-inline-start: auto;
  color: var(--ovex-ink);
  font-weight: 700;
}

/* ============================================================
   ۹۹) تکمیل کامپوننت‌ها — افزوده‌ی مرحله‌ی یکپارچه‌سازی
   ============================================================ */

/* ----------------------------------------------------------
   ۹۹.۱) بنرهای تبلیغاتی
   ---------------------------------------------------------- */

.ovex-banner__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

.ovex-banner__content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  padding: 20px;
  max-width: 70%;
}

.ovex-banner__kicker {
  display: inline-block;
  padding: 3px 10px;
  border-radius: var(--ovex-r-pill);
  background: var(--ovex-surface);
  color: var(--ovex-primary-700);
  font-size: 11px;
  font-weight: 800;
}

.ovex-banner__title {
  margin: 0;
  font-size: 20px;
  font-weight: 900;
  line-height: 1.6;
  color: var(--ovex-ink);
}

.ovex-banner__text {
  margin: 0;
  font-size: 13px;
  line-height: 1.9;
  color: var(--ovex-ink-2);
}

.ovex-banner__brand {
  position: absolute;
  inset-block-end: 10px;
  inset-inline-start: 12px;
  z-index: 1;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .05em;
  color: var(--ovex-ink-3);
  direction: ltr;
  unicode-bidi: isolate;
}

.ovex-banner--wide {
  grid-column: 1 / -1;
  min-height: 190px;
}

.ovex-banner--wide .ovex-banner__title {
  font-size: 26px;
}

/* ----------------------------------------------------------
   ۹۹.۲) خبرنامه
   ---------------------------------------------------------- */

.ovex-newsletter__box {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 24px;
  border-radius: var(--ovex-r-lg);
  background: var(--ovex-primary-grad);
  color: var(--ovex-white);
  box-shadow: var(--ovex-sh-2);
}

.ovex-newsletter__intro {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
}

.ovex-newsletter__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  height: 58px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: rgba(255, 255, 255, .22);
  color: var(--ovex-white);
}

.ovex-newsletter__title {
  margin: 0 0 4px;
  font-size: 19px;
  font-weight: 900;
  color: var(--ovex-white);
}

.ovex-newsletter__text {
  margin: 0;
  font-size: 13px;
  line-height: 1.9;
  color: rgba(255, 255, 255, .92);
}

.ovex-newsletter__form {
  display: grid;
  grid-template-columns: minmax(200px, 1fr) auto;
  gap: 8px;
  flex: 1 1 340px;
  max-width: 520px;
}

.ovex-newsletter__input {
  grid-column: 1;
  width: 100%;
  height: 46px;
  padding-inline: 14px;
  border: 0;
  border-radius: var(--ovex-r-pill);
  background: var(--ovex-surface);
  color: var(--ovex-ink);
  font: inherit;
  font-size: 14px;
}

.ovex-newsletter__input:focus-visible {
  outline: 3px solid rgba(255, 255, 255, .55);
  outline-offset: 1px;
}

.ovex-newsletter__btn {
  grid-column: 2;
  height: 46px;
  background: var(--ovex-ink);
  background-image: none;
  white-space: nowrap;
}

.ovex-newsletter__btn:hover {
  background: var(--ovex-ink-2);
}

.ovex-newsletter__note {
  grid-column: 1 / -1;
  margin: 0;
  min-height: 1em;
  font-size: 12px;
  font-weight: 700;
  color: var(--ovex-white);
}

.ovex-newsletter__note.is-ok::before {
  content: "✓ ";
}

.ovex-newsletter__note.is-error {
  color: #FFE1DC;
}

.ovex-newsletter__note.is-error::before {
  content: "! ";
}

.ovex-newsletter__privacy {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  font-size: 11px;
  color: rgba(255, 255, 255, .85);
}

/* ----------------------------------------------------------
   ۹۹.۳) شمارنده‌ی فروش ویژه
   ---------------------------------------------------------- */

.ovex-deal__num {
  display: block;
  font-size: 17px;
  font-weight: 900;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.ovex-deal__label {
  display: block;
  margin-block-start: 3px;
  font-style: normal;
  font-size: 10px;
  font-weight: 500;
  opacity: .85;
}

.ovex-deal__colon {
  align-self: flex-start;
  padding-block-start: 4px;
  font-size: 16px;
  font-weight: 900;
  opacity: .5;
}

.ovex-deal__expired {
  font-size: 12px;
  font-weight: 700;
}

.ovex-deal__timer.is-expired .ovex-deal__unit,
.ovex-deal__timer.is-expired .ovex-deal__colon {
  opacity: .4;
}

/* ----------------------------------------------------------
   ۹۹.۴) مودال — بخش‌های تکمیلی
   ---------------------------------------------------------- */

.ovex-modal__box--wide {
  max-width: 900px;
  width: min(900px, calc(100vw - 32px));
}

.ovex-modal__lead {
  margin: 0 0 14px;
  color: var(--ovex-ink-2);
  font-size: 13px;
  line-height: 1.9;
}

.ovex-modal__form {
  display: grid;
  gap: 8px;
}

.ovex-modal__form label {
  font-size: 12px;
  font-weight: 700;
  color: var(--ovex-ink-2);
}

.ovex-modal__form input[type="text"],
.ovex-modal__form input[type="email"],
.ovex-modal__form input[type="tel"] {
  width: 100%;
  height: 42px;
  padding-inline: 12px;
  border: 1px solid var(--ovex-line-2);
  border-radius: var(--ovex-r-sm);
  background: var(--ovex-surface);
  font: inherit;
  font-size: 14px;
  color: var(--ovex-ink);
}

.ovex-modal__form input:focus-visible {
  outline: none;
  border-color: var(--ovex-primary);
  box-shadow: 0 0 0 3px var(--ovex-primary-100);
}

.ovex-modal__hint {
  margin: 0;
  font-size: 11px;
  color: var(--ovex-ink-3);
}

.ovex-modal__msg {
  margin: 0;
  min-height: 1em;
  font-size: 12px;
  font-weight: 700;
}

.ovex-modal__msg.is-ok {
  color: var(--ovex-success);
}

.ovex-modal__msg.is-error {
  color: var(--ovex-danger);
}

/* ----------------------------------------------------------
   ۹۹.۵) اسلایدر — رسانه و جایگزین
   ---------------------------------------------------------- */

.ovex-slider__media {
  position: absolute;
  inset: 0;
  display: block;
  z-index: 0;
}

.ovex-slider__media img,
.ovex-slider__media picture {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.ovex-slider__fallback {
  display: block;
  width: 100%;
  height: 100%;
  background: var(--ovex-primary-grad);
}

.ovex-slide__brand {
  position: absolute;
  inset-block-end: 14px;
  inset-inline-start: 18px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .06em;
  color: var(--ovex-ink-3);
  opacity: .75;
  direction: ltr;
  unicode-bidi: isolate;
}

/* ----------------------------------------------------------
   ۹۹.۶) ردیف دایره‌ای دسته‌ها
   ---------------------------------------------------------- */

.ovex-cats__link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  color: inherit;
  text-align: center;
}

.ovex-cats__media {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 78px;
  height: 78px;
  border-radius: 50%;
  overflow: hidden;
  background: var(--ovex-primary-50);
  box-shadow: var(--ovex-sh-1);
  transition: transform var(--ovex-t) var(--ovex-ease), box-shadow var(--ovex-t) var(--ovex-ease);
}

.ovex-cats__item:hover .ovex-cats__media {
  transform: translateY(-3px);
  box-shadow: var(--ovex-sh-2);
}

.ovex-cats__count {
  font-size: 11px;
  color: var(--ovex-ink-3);
  font-variant-numeric: tabular-nums;
}

/* ----------------------------------------------------------
   ۹۹.۷) ردیف تضمین‌ها
   ---------------------------------------------------------- */

.ovex-trust__row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: var(--ovex-gap);
}

.ovex-trust__body {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.ovex-trust__title {
  font-size: 13px;
  font-weight: 800;
  color: var(--ovex-ink);
}

/* ----------------------------------------------------------
   ۹۹.۸) کارت محصول — تکمیل
   ---------------------------------------------------------- */

.ovex-card__link {
  display: block;
  color: inherit;
}

.ovex-card__link:hover {
  color: inherit;
}

.ovex-card__reviews {
  font-size: 11px;
  color: var(--ovex-ink-3);
  font-variant-numeric: tabular-nums;
}

/* ----------------------------------------------------------
   ۹۹.۹) قیمت — تکمیل
   ---------------------------------------------------------- */

.ovex-price__sep {
  margin-inline: 2px;
  color: var(--ovex-ink-3);
  font-weight: 500;
}

.ovex-price__save {
  font-size: 11px;
  font-weight: 700;
  color: var(--ovex-success);
}

/* ----------------------------------------------------------
   ۹۹.۱۰) نمادهای اعتماد
   ---------------------------------------------------------- */

.ovex-enamad--placeholder,
.ovex-enamad--samandehi {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 8px 10px;
  border: 1px dashed var(--ovex-line-2);
  border-radius: var(--ovex-r-sm);
  background: var(--ovex-surface);
  text-align: center;
}

.ovex-enamad--placeholder img,
.ovex-enamad--samandehi img,
.ovex-enamad--placeholder svg,
.ovex-enamad--samandehi svg {
  width: 52px;
  height: auto;
  display: block;
}

.ovex-enamad--placeholder span,
.ovex-enamad--samandehi span {
  font-size: 10px;
  line-height: 1.6;
  color: var(--ovex-ink-3);
  max-width: 88px;
}

/* ----------------------------------------------------------
   ۹۹.۱۱) فرم جست‌وجو
   ---------------------------------------------------------- */

.ovex-search--compact {
  max-width: none;
}

.ovex-search--compact .ovex-search__cat {
  display: none;
}

.ovex-search__btn-text {
  font-size: 13px;
  font-weight: 700;
}

.ovex-search-again {
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-width: 520px;
  margin-inline: auto;
  margin-block-start: 16px;
}

.ovex-empty__cats {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin: 16px 0 0;
  padding: 0;
  list-style: none;
}

/* ----------------------------------------------------------
   ۹۹.۱۲) مراحل خرید (سبد ← تسویه ← پرداخت)
   ---------------------------------------------------------- */

.ovex-steps {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin: 0 0 20px;
  padding: 0;
  list-style: none;
  flex-wrap: wrap;
}

.ovex-steps__item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  border-radius: var(--ovex-r-pill);
  background: var(--ovex-bg);
  color: var(--ovex-ink-3);
  font-size: 13px;
  font-weight: 700;
}

.ovex-steps__item.is-active {
  background: var(--ovex-primary-100);
  color: var(--ovex-primary-700);
}

.ovex-steps__item.is-done {
  background: var(--ovex-success-bg);
  color: var(--ovex-success);
}

.ovex-steps__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--ovex-surface);
  font-size: 11px;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}

.ovex-steps__item.is-active .ovex-steps__num {
  background: var(--ovex-primary);
  color: var(--ovex-white);
}

.ovex-steps__item.is-done .ovex-steps__num {
  background: var(--ovex-success);
  color: var(--ovex-white);
}

.ovex-steps__label {
  white-space: nowrap;
}

/* ----------------------------------------------------------
   ۹۹.۱۳) نوار پیشرفت ارسال رایگان
   ---------------------------------------------------------- */

.ovex-freeship {
  display: grid;
  gap: 8px;
  padding: 12px 14px;
  border-radius: var(--ovex-r);
  background: var(--ovex-primary-50);
}

.ovex-freeship__text {
  font-size: 12px;
  font-weight: 700;
  color: var(--ovex-ink-2);
}

.ovex-freeship__bar,
.ovex-freeship__track {
  position: relative;
  height: 8px;
  border-radius: var(--ovex-r-pill);
  background: var(--ovex-line);
  overflow: hidden;
}

.ovex-freeship__fill {
  display: block;
  height: 100%;
  width: 0;
  border-radius: inherit;
  background: var(--ovex-primary-grad);
  transition: width var(--ovex-t-slow) var(--ovex-ease);
}

.ovex-freeship.is-reached {
  background: var(--ovex-success-bg);
}

.ovex-freeship.is-reached .ovex-freeship__text {
  color: var(--ovex-success);
}

.ovex-freeship.is-reached .ovex-freeship__fill {
  background: var(--ovex-success);
}

/* ----------------------------------------------------------
   ۹۹.۱۴) صفحه‌بندی — فهرست
   ---------------------------------------------------------- */

.ovex-pagination__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ovex-pagination__item {
  display: inline-flex;
}

.ovex-pagination--inline {
  justify-content: flex-start;
  margin-block-start: 20px;
}

/* ----------------------------------------------------------
   ۹۵.۱۵) فرم ورود مشترک
   ---------------------------------------------------------- */

.ovex-login {
  display: grid;
  gap: 12px;
}

.ovex-login--hidden {
  display: none;
}

.ovex-login__message {
  margin: 0;
  font-size: 13px;
  color: var(--ovex-ink-2);
  line-height: 1.9;
}

.ovex-login__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}

.ovex-login__lost {
  font-size: 12px;
  color: var(--ovex-primary);
}

/* ----------------------------------------------------------
   ۹۹.۱۶) نان‌ریزه
   ---------------------------------------------------------- */

.ovex-breadcrumb-wrap {
  padding-block: 10px;
}

.ovex-breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ovex-breadcrumb__item {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.ovex-breadcrumb__link {
  color: var(--ovex-ink-3);
}

.ovex-breadcrumb__link:hover {
  color: var(--ovex-primary);
}

/* ----------------------------------------------------------
   ۹۹.۱۷) واکنش‌گرایی پایه‌ی این بخش‌ها
   ---------------------------------------------------------- */

@media (max-width: 768px) {
  .ovex-newsletter__box {
    flex-direction: column;
    align-items: stretch;
    text-align: center;
  }

  .ovex-newsletter__intro {
    flex-direction: column;
    text-align: center;
  }

  .ovex-newsletter__form {
    grid-template-columns: minmax(0, 1fr);
    max-width: none;
  }

  .ovex-newsletter__btn {
    grid-column: 1;
  }

  .ovex-banner__content {
    max-width: 100%;
  }

  .ovex-banner--wide .ovex-banner__title {
    font-size: 20px;
  }

  .ovex-steps__label {
    display: none;
  }

  .ovex-steps__item {
    padding: 6px 10px;
  }

  .ovex-cats__media {
    width: 64px;
    height: 64px;
  }
}

/* ============================================================
   ۱۰۰) کلاس‌هایی که در زمان اجرا ساخته می‌شوند
   منبع: assets/js/*.js و افزونه‌ی ovex-core
   ============================================================ */

/* ----------------------------------------------------------
   ۱۰۰.۱) پیشنهادهای جست‌وجو (assets/js/search.js)
   ---------------------------------------------------------- */

.ovex-suggest__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border-block-end: 1px solid var(--ovex-line);
}

.ovex-suggest__head-title {
  font-size: 12px;
  font-weight: 800;
  color: var(--ovex-ink-2);
}

.ovex-suggest__clear {
  border: 0;
  background: none;
  color: var(--ovex-primary);
  font: inherit;
  font-size: 12px;
  cursor: pointer;
}

.ovex-suggest__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 10px 12px;
}

.ovex-suggest__chip {
  padding: 4px 10px;
  border: 1px solid var(--ovex-line-2);
  border-radius: var(--ovex-r-pill);
  background: var(--ovex-surface);
  color: var(--ovex-ink-2);
  font: inherit;
  font-size: 12px;
  cursor: pointer;
  transition: border-color var(--ovex-t-fast) var(--ovex-ease), color var(--ovex-t-fast) var(--ovex-ease);
}

.ovex-suggest__chip:hover {
  border-color: var(--ovex-primary);
  color: var(--ovex-primary);
}

.ovex-suggest__group + .ovex-suggest__group {
  border-block-start: 1px solid var(--ovex-line);
}

.ovex-suggest__group-title {
  display: block;
  padding: 8px 12px 4px;
  font-size: 11px;
  font-weight: 800;
  color: var(--ovex-ink-3);
}

.ovex-suggest__item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 8px 12px;
  border: 0;
  background: none;
  color: var(--ovex-ink);
  font: inherit;
  font-size: 13px;
  text-align: start;
  cursor: pointer;
  transition: background var(--ovex-t-fast) var(--ovex-ease);
}

.ovex-suggest__item:hover,
.ovex-suggest__item.is-active {
  background: var(--ovex-primary-50);
}

.ovex-suggest__media {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border-radius: var(--ovex-r-sm);
  overflow: hidden;
  background: var(--ovex-bg);
}

.ovex-suggest__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.ovex-suggest__body {
  flex: 1 1 auto;
  min-width: 0;
  display: grid;
  gap: 2px;
}

.ovex-suggest__title {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ovex-suggest__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px;
  font-size: 11px;
  color: var(--ovex-ink-3);
}

.ovex-suggest__cat {
  color: var(--ovex-ink-3);
}

.ovex-suggest__price {
  font-weight: 800;
  color: var(--ovex-price);
  font-variant-numeric: tabular-nums;
}

.ovex-suggest__count {
  flex: 0 0 auto;
  font-size: 11px;
  color: var(--ovex-ink-3);
  font-variant-numeric: tabular-nums;
}

.ovex-suggest__icon {
  flex: 0 0 auto;
  display: inline-flex;
  color: var(--ovex-ink-3);
}

.ovex-suggest__label {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ovex-suggest__mark {
  background: var(--ovex-primary-100);
  color: var(--ovex-primary-700);
  font-weight: 800;
  border-radius: 3px;
  padding-inline: 1px;
}

.ovex-suggest__more {
  display: block;
  padding: 10px 12px;
  border-block-start: 1px solid var(--ovex-line);
  color: var(--ovex-primary);
  font-size: 12px;
  font-weight: 700;
  text-align: center;
}

.ovex-suggest__state,
.ovex-suggest__hint {
  display: block;
  padding: 16px 12px;
  color: var(--ovex-ink-3);
  font-size: 12px;
  text-align: center;
}

.ovex-suggest__item--term .ovex-suggest__label {
  font-weight: 700;
}

.ovex-suggest__group--products .ovex-suggest__item {
  padding-block: 6px;
}

/* ----------------------------------------------------------
   ۱۰۰.۲) لایت‌باکس گالری (assets/js/product.js)
   ---------------------------------------------------------- */

.ovex-lightbox {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(1100px, 96vw);
  max-height: 86vh;
}

.ovex-lightbox__img {
  max-width: 100%;
  max-height: 86vh;
  object-fit: contain;
  border-radius: var(--ovex-r);
  background: var(--ovex-surface);
  display: block;
}

.ovex-lightbox__arrow {
  position: absolute;
  inset-block-start: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  background: var(--ovex-surface);
  color: var(--ovex-ink);
  box-shadow: var(--ovex-sh-2);
  font-size: 20px;
  cursor: pointer;
}

.ovex-lightbox__arrow--prev {
  inset-inline-end: 12px;
}

.ovex-lightbox__arrow--next {
  inset-inline-start: 12px;
}

.ovex-lightbox__arrow:hover {
  background: var(--ovex-primary);
  color: var(--ovex-white);
}

.ovex-lightbox__counter {
  position: absolute;
  inset-block-end: 12px;
  inset-inline-start: 50%;
  transform: translateX(50%);
  padding: 3px 12px;
  border-radius: var(--ovex-r-pill);
  background: rgba(0, 0, 0, .55);
  color: #FFFFFF;
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}

.ovex-modal__box--lightbox {
  background: transparent;
  box-shadow: none;
  padding: 0;
  max-width: none;
}

.ovex-modal__box--notify,
.ovex-modal__box--guide {
  max-width: 460px;
}

/* ----------------------------------------------------------
   ۱۰۰.۳) نوار پیام و فیلدهای ساخته‌شده با JS
   ---------------------------------------------------------- */

.ovex-toast__icon {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  font-weight: 900;
}

.ovex-totop__icon {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-inline-start: 2px solid currentColor;
  border-block-start: 2px solid currentColor;
  transform: rotate(45deg) translate(2px, 2px);
}

.ovex-field__label {
  display: block;
  margin-block-end: 4px;
  font-size: 12px;
  font-weight: 700;
  color: var(--ovex-ink-2);
}

/* ----------------------------------------------------------
   ۱۰۰.۴) ریل افقی ساخته‌شده با JS (assets/js/slider.js)
   ---------------------------------------------------------- */

.ovex-scroller {
  position: relative;
  overflow: hidden;
}

.ovex-scroller__lane {
  display: flex;
  gap: var(--ovex-gap);
  overflow-x: auto;
  scroll-snap-type: x proximity;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.ovex-scroller__lane::-webkit-scrollbar {
  display: none;
}

.ovex-scroller__lane > * {
  flex: 0 0 auto;
  scroll-snap-align: start;
}

/* ----------------------------------------------------------
   ۱۰۰.۵) منوی موبایل (کلون منوی اصلی داخل کشو)
   ---------------------------------------------------------- */

.ovex-header__menu-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: var(--ovex-r);
  background: none;
  color: var(--ovex-ink-2);
  cursor: pointer;
}

.ovex-nav__list--mobile {
  display: grid;
  gap: 2px;
  width: 100%;
}

.ovex-nav__list--mobile .ovex-nav__item {
  display: block;
  width: 100%;
}

.ovex-nav__list--mobile .ovex-nav__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 12px 10px;
  border-radius: var(--ovex-r-sm);
  font-size: 14px;
}

.ovex-nav__list--mobile .ovex-nav__item.is-open > .ovex-nav__link {
  background: var(--ovex-primary-50);
  color: var(--ovex-primary-700);
}

.ovex-mega--mobile {
  position: static;
  display: none;
  width: 100%;
  min-width: 0;
  padding: 0 0 10px;
  opacity: 1;
  visibility: visible;
  transform: none;
  box-shadow: none;
  background: none;
}

.ovex-nav__list--mobile .ovex-nav__item.is-open .ovex-mega--mobile {
  display: block;
}

.ovex-mega--mobile .ovex-mega__cols {
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
}

.ovex-mega--mobile .ovex-mega__promo {
  display: none;
}

/* حالت شلوغی درخواست‌های سبد — نشانگر ظریف روی کل صفحه */
body.ovex-cart-busy {
  cursor: progress;
}

/* ----------------------------------------------------------
   ۱۰۰.۶) فرم «موجودم کن» (JS و افزونه هر دو همین را می‌سازند)
   ---------------------------------------------------------- */

.ovex-notify-form {
  display: grid;
  gap: 10px;
}

.ovex-notify-form__title {
  margin: 0;
  font-size: 15px;
  font-weight: 800;
  color: var(--ovex-ink);
}

.ovex-notify-form__hint {
  margin: 0;
  font-size: 12px;
  line-height: 1.9;
  color: var(--ovex-ink-3);
}

.ovex-notify-form__sel {
  margin: 0;
  padding: 8px 10px;
  border-radius: var(--ovex-r-sm);
  background: var(--ovex-primary-50);
  color: var(--ovex-primary-700);
  font-size: 12px;
  font-weight: 700;
}

.ovex-notify-form__row {
  display: grid;
  gap: 4px;
}

.ovex-notify-form__msg {
  margin: 0;
  min-height: 1em;
  font-size: 12px;
  font-weight: 700;
}

.ovex-notify-form__msg.is-ok {
  color: var(--ovex-success);
}

.ovex-notify-form__msg.is-error {
  color: var(--ovex-danger);
}

/* ----------------------------------------------------------
   ۱۰۰.۷) جست‌وجوهای پرطرفدار (شورت‌کد افزونه)
   ---------------------------------------------------------- */

.ovex-popular-searches {
  display: grid;
  gap: 8px;
}

.ovex-popular-searches__title {
  margin: 0;
  font-size: 13px;
  font-weight: 800;
  color: var(--ovex-ink);
}

.ovex-popular-searches__list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ovex-popular-searches__list a {
  display: inline-block;
  padding: 4px 10px;
  border-radius: var(--ovex-r-pill);
  background: var(--ovex-bg);
  color: var(--ovex-ink-2);
  font-size: 12px;
}

.ovex-popular-searches__list a:hover {
  background: var(--ovex-primary-100);
  color: var(--ovex-primary-700);
}

/* ----------------------------------------------------------
   ۱۰۰.۸) نماد اعتماد — اجزای افزونه
   ---------------------------------------------------------- */

.ovex-enamad__placeholder {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 10px;
  border: 1px dashed var(--ovex-line-2);
  border-radius: var(--ovex-r-sm);
  background: var(--ovex-surface);
  text-align: center;
}

.ovex-enamad__svg {
  width: 52px;
  height: auto;
  display: block;
}

.ovex-enamad__label {
  font-size: 10px;
  font-weight: 700;
  line-height: 1.6;
  color: var(--ovex-ink-2);
  max-width: 96px;
}

.ovex-enamad__hint {
  font-size: 9px;
  line-height: 1.6;
  color: var(--ovex-ink-3);
  max-width: 96px;
}

/* ----------------------------------------------------------
   ۱۰۰.۹) اطلاعات ارسال سفارش (ایمیل و صفحه‌ی سفارش)
   ---------------------------------------------------------- */

.ovex-order-info {
  display: grid;
  gap: 8px;
  margin-block: 16px;
  padding: 14px;
  border-radius: var(--ovex-r);
  background: var(--ovex-bg);
  font-size: 13px;
}

.ovex-order-info__title {
  margin: 0;
  font-size: 14px;
  font-weight: 800;
  color: var(--ovex-ink);
}

/* ----------------------------------------------------------
   ۱۰۰.۱۰) بج وضعیت و برچسب موجودی (مشترک با پیشخوان)
   ---------------------------------------------------------- */

.ovex-tag--in {
  background: var(--ovex-success-bg);
  color: var(--ovex-success);
}

.ovex-tag--out {
  background: var(--ovex-danger-bg);
  color: var(--ovex-danger);
}

/* ============================================================
   ۹۹.۲۰) ویجت‌های ستون فیلتر فروشگاه
   ساختار خروجی (از inc/widgets.php):
     section.ovex-filter__group > details.ovex-filter__acc
       > summary.ovex-filter__title
       > div.ovex-filter__body > ul + input.ovex-filter__more-cb + label
   کل تعامل (جمع‌شدن گروه و «نمایش بیشتر») بدون جاوااسکریپت است.
   نکته: فایل assets/css/shop.css مال ایجنت دیگری است؛ این‌جا فقط
   کلاس‌های ovex-filter__* تعریف می‌شوند تا تداخلی پیش نیاید.
   ============================================================ */

.ovex-filter__group {
  background: var(--ovex-surface);
  border-radius: var(--ovex-r);
  box-shadow: var(--ovex-sh-1);
  padding: 0;
  margin-block-end: 10px;
  overflow: hidden;
}

.ovex-filter__acc {
  display: block;
}

/* هدر کلیک‌شونده‌ی هر گروه */
.ovex-filter__acc > .ovex-filter__title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin: 0;
  padding: 12px 14px;
  font-size: 13.5px;
  font-weight: 800;
  color: var(--ovex-ink);
  cursor: pointer;
  list-style: none;
  user-select: none;
  transition: background-color var(--ovex-t-fast) var(--ovex-ease);
}

.ovex-filter__acc > .ovex-filter__title::-webkit-details-marker,
.ovex-filter__acc > .ovex-filter__title::marker {
  display: none;
  content: "";
}

.ovex-filter__acc > .ovex-filter__title:hover {
  background: var(--ovex-primary-50);
}

/* فلش جمع/باز — با باز شدن details می‌چرخد */
.ovex-filter__chev {
  width: 9px;
  height: 9px;
  flex: 0 0 auto;
  border-inline-start: 2px solid var(--ovex-ink-3);
  border-block-end: 2px solid var(--ovex-ink-3);
  transform: rotate(-45deg);
  transform-origin: center;
  transition: transform var(--ovex-t) var(--ovex-ease);
  margin-inline-start: auto;
}

.ovex-filter__acc[open] > .ovex-filter__title .ovex-filter__chev {
  transform: rotate(135deg);
}

.ovex-filter__body {
  padding: 0 14px 12px;
}

.ovex-filter__body > ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* ---------- فیلتر رنگ: سواچ دایره‌ای ---------- */

.ovex-filter__group--color .ovex-filter__body > ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px 6px;
}

.ovex-filter__group--color .ovex-filter__body > ul > li {
  margin: 0;
  min-width: 0;
}

.ovex-filter__swatch {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 5px 7px;
  border-radius: var(--ovex-r-pill);
  font-size: 12px;
  color: var(--ovex-ink-2);
  line-height: 1.6;
  border: 1px solid transparent;
  transition:
    background-color var(--ovex-t-fast) var(--ovex-ease),
    border-color var(--ovex-t-fast) var(--ovex-ease);
}

.ovex-filter__swatch:hover {
  background: var(--ovex-primary-50);
  border-color: var(--ovex-primary-100);
  color: var(--ovex-ink);
}

.ovex-filter__dot {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--ovex-swatch, #DDD);
  box-shadow:
    inset 0 0 0 1px rgba(0, 0, 0, .14),
    0 1px 2px rgba(0, 0, 0, .12);
}

.ovex-filter__swatch-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}

.ovex-filter__swatch .count,
.ovex-filter__chip .count {
  font-size: 10.5px;
  color: var(--ovex-ink-3);
  margin-inline-start: auto;
  flex: 0 0 auto;
}

/* گزینه‌ی انتخاب‌شده */
.ovex-filter__group--color li.chosen .ovex-filter__swatch,
.ovex-filter__group--color li.woocommerce-widget-layered-nav-list__item--chosen .ovex-filter__swatch {
  background: var(--ovex-primary-100);
  border-color: var(--ovex-primary);
  color: var(--ovex-primary-700);
  font-weight: 700;
}

/* ---------- فیلتر سایز و سایر ویژگی‌ها: چیپ مستطیلی ---------- */

.ovex-filter__group--size .ovex-filter__body > ul,
.ovex-filter__group--attr .ovex-filter__body > ul {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.ovex-filter__group--size .ovex-filter__body > ul > li,
.ovex-filter__group--attr .ovex-filter__body > ul > li {
  margin: 0;
}

.ovex-filter__chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 30px;
  padding: 3px 11px;
  border-radius: var(--ovex-r-sm);
  border: 1px solid var(--ovex-line-2);
  background: var(--ovex-surface);
  font-size: 12px;
  font-weight: 600;
  color: var(--ovex-ink-2);
  white-space: nowrap;
  transition:
    background-color var(--ovex-t-fast) var(--ovex-ease),
    border-color var(--ovex-t-fast) var(--ovex-ease),
    color var(--ovex-t-fast) var(--ovex-ease);
}

.ovex-filter__chip:hover {
  border-color: var(--ovex-primary);
  color: var(--ovex-primary-700);
  background: var(--ovex-primary-50);
}

.ovex-filter__chip .count {
  margin-inline-start: 0;
}

.ovex-filter__group--size li.chosen .ovex-filter__chip,
.ovex-filter__group--size li.woocommerce-widget-layered-nav-list__item--chosen .ovex-filter__chip,
.ovex-filter__group--attr li.chosen .ovex-filter__chip,
.ovex-filter__group--attr li.woocommerce-widget-layered-nav-list__item--chosen .ovex-filter__chip {
  background: var(--ovex-primary-grad);
  border-color: transparent;
  color: var(--ovex-white);
}

.ovex-filter__swatch.is-disabled,
.ovex-filter__chip.is-disabled {
  opacity: .45;
  pointer-events: none;
}

/* ---------- فیلتر دسته‌بندی‌ها ---------- */

.ovex-filter__group--cats .ovex-filter__body > ul li {
  margin: 0;
  list-style: none;
}

.ovex-filter__group--cats .ovex-filter__body > ul a {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 8px;
  border-radius: var(--ovex-r-sm);
  font-size: 12.5px;
  color: var(--ovex-ink-2);
  transition: background-color var(--ovex-t-fast) var(--ovex-ease), color var(--ovex-t-fast) var(--ovex-ease);
}

.ovex-filter__group--cats .ovex-filter__body > ul a:hover {
  background: var(--ovex-primary-50);
  color: var(--ovex-primary-700);
}

.ovex-filter__group--cats .ovex-filter__body > ul .count {
  margin-inline-start: auto;
  font-size: 10.5px;
  color: var(--ovex-ink-3);
}

.ovex-filter__group--cats .ovex-filter__body > ul ul {
  list-style: none;
  margin: 0;
  padding-inline-start: 12px;
  border-inline-start: 1px dashed var(--ovex-line);
  margin-inline-start: 8px;
}

.ovex-filter__group--cats .ovex-filter__body > ul ul a {
  font-size: 12px;
  color: var(--ovex-ink-3);
}

.ovex-filter__group--cats .ovex-filter__body > ul .current-cat > a,
.ovex-filter__group--cats .ovex-filter__body > ul li.is-active > a {
  background: var(--ovex-primary-100);
  color: var(--ovex-primary-700);
  font-weight: 700;
}

/* ---------- دکمه‌ی «نمایش بیشتر» (کاملاً CSS) ---------- */

.ovex-filter__more-cb {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.ovex-filter__more {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-block-start: 9px;
  font-size: 12px;
  font-weight: 700;
  color: var(--ovex-primary-700);
  cursor: pointer;
  user-select: none;
}

.ovex-filter__more::after {
  content: "";
  width: 7px;
  height: 7px;
  border-inline-end: 2px solid currentColor;
  border-block-end: 2px solid currentColor;
  transform: rotate(45deg);
  margin-block-end: 3px;
}

.ovex-filter__more:hover {
  color: var(--ovex-primary);
}

.ovex-filter__more-off {
  display: none;
}

.ovex-filter__more-cb:checked ~ .ovex-filter__more .ovex-filter__more-on {
  display: none;
}

.ovex-filter__more-cb:checked ~ .ovex-filter__more .ovex-filter__more-off {
  display: inline;
}

.ovex-filter__more-cb:checked ~ .ovex-filter__more::after {
  transform: rotate(-135deg);
  margin-block-end: -2px;
}

.ovex-filter__more-cb:focus-visible ~ .ovex-filter__more {
  outline: 2px solid var(--ovex-primary);
  outline-offset: 2px;
  border-radius: 4px;
}

/*
  جمع‌کردن لیست‌های بلند. تا وقتی چک‌باکس تیک نخورده، آیتم‌های بعد از
  سقف هر گروه پنهان می‌مانند. چون چک‌باکس بعد از <ul> است از :has()
  استفاده می‌شود.
*/
.ovex-filter__body:has(> .ovex-filter__more-cb:not(:checked)) > ul > li:nth-child(n + 11) {
  display: none;
}

.ovex-filter__group--size .ovex-filter__body:has(> .ovex-filter__more-cb:not(:checked)) > ul > li:nth-child(n + 13),
.ovex-filter__group--attr .ovex-filter__body:has(> .ovex-filter__more-cb:not(:checked)) > ul > li:nth-child(n + 13) {
  display: none;
}

.ovex-filter__group--size .ovex-filter__body:has(> .ovex-filter__more-cb:not(:checked)) > ul > li:nth-child(-n + 12),
.ovex-filter__group--attr .ovex-filter__body:has(> .ovex-filter__more-cb:not(:checked)) > ul > li:nth-child(-n + 12) {
  display: block;
}

/* اگر لیست کوتاه بود، دکمه اصلاً دیده نشود */
.ovex-filter__body:not(:has(> ul > li:nth-child(11))) > .ovex-filter__more,
.ovex-filter__body:not(:has(> ul > li:nth-child(11))) > .ovex-filter__more-cb {
  display: none;
}

.ovex-filter__group--size .ovex-filter__body:not(:has(> ul > li:nth-child(13))) > .ovex-filter__more,
.ovex-filter__group--attr .ovex-filter__body:not(:has(> ul > li:nth-child(13))) > .ovex-filter__more {
  display: none;
}

/* ---------- فیلتر قیمت ---------- */

.ovex-filter__group--price .price_slider_amount {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.ovex-filter__group--price input[type="text"] {
  flex: 1 1 78px;
  min-width: 0;
  height: 34px;
  padding-inline: 9px;
  border: 1px solid var(--ovex-line-2);
  border-radius: var(--ovex-r-sm);
  font-size: 12px;
  background: var(--ovex-surface);
  color: var(--ovex-ink);
  direction: ltr;
  text-align: center;
}

.ovex-filter__group--price .button {
  flex: 0 0 auto;
  height: 34px;
  padding-inline: 16px;
  border: 0;
  border-radius: var(--ovex-r-pill);
  background: var(--ovex-primary-grad);
  color: var(--ovex-white);
  font-size: 12.5px;
  font-weight: 700;
  cursor: pointer;
}

.ovex-filter__group--price .price_label {
  flex: 1 0 100%;
  font-size: 12px;
  color: var(--ovex-ink-2);
}

.ovex-filter__group--price .clear {
  display: none;
}

/* ---------- فهرست محصول داخل ستون (پرامتیازترین‌ها) ---------- */

.ovex-filter__group--products .ovex-filter__body ul.product_list_widget {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px;
}

.ovex-filter__group--products .ovex-filter__body ul.product_list_widget li {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
}

.ovex-filter__group--products .ovex-filter__body ul.product_list_widget img {
  width: 48px;
  height: 48px;
  object-fit: cover;
  border-radius: var(--ovex-r-sm);
  flex: 0 0 auto;
}

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

@media (max-width: 768px) {
  .ovex-filter__group--color .ovex-filter__body > ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ovex-filter__acc > .ovex-filter__title {
    padding: 11px 12px;
  }

  .ovex-filter__body {
    padding: 0 12px 11px;
  }
}

/* ============================================================
   ۹۹.۲۱) هم‌زیستی گروه‌های فیلتر با shop.css
   shop.css (مال ایجنت دیگر) بعد از این فایل بارگذاری می‌شود و
   قاعده‌های عمومی .ovex-filter__title و .ovex-filter__body را دارد
   (فلش دوم، max-height و پدینگ). این‌جا فقط برای ساختار
   details/summary خودِ قالب با ویژگی (specificity) بالاتر خنثی می‌شود.
   ============================================================ */

.ovex-filter .ovex-filter__group:has(> .ovex-filter__acc),
.ovex-filter__groups .ovex-filter__group:has(> .ovex-filter__acc) {
  padding: 0;
  border-bottom: 0;
}

.ovex-filter__acc > .ovex-filter__title {
  margin-block-end: 0;
}

/* فلش خودِ shop.css حذف می‌شود تا دو فلش کنار هم نیفتد */
.ovex-filter__acc > .ovex-filter__title::after {
  content: none;
  display: none;
}

/* گروه‌ها با دکمه‌ی «نمایش بیشتر» جمع می‌شوند، نه با اسکرول داخلی */
.ovex-filter__acc > .ovex-filter__body {
  max-height: none;
  overflow: visible;
  padding: 0 14px 12px;
}

/* ---------- رنگ: یک ستون، چون ستون کناری باریک است ---------- */

.ovex-filter__group--color .ovex-filter__body > ul {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 2px;
}

/* ---------- دسته‌بندی‌ها: نام و تعداد در یک سطر ---------- */

.ovex-filter__group--cats .ovex-filter__body ul li {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  column-gap: 6px;
  margin: 0;
  list-style: none;
}

.ovex-filter__group--cats .ovex-filter__body ul li > a {
  flex: 1 1 auto;
  min-width: 0;
  display: block;
  padding: 6px 8px;
  border-radius: var(--ovex-r-sm);
  font-size: 12.5px;
  line-height: 1.7;
  color: var(--ovex-ink-2);
}

.ovex-filter__group--cats .ovex-filter__body ul li > .count {
  flex: 0 0 auto;
  font-size: 10.5px;
  color: var(--ovex-ink-3);
  direction: ltr;
  unicode-bidi: isolate;
}

/* فهرست فرزندان باید سطر جدید بگیرد */
.ovex-filter__group--cats .ovex-filter__body ul li > ul {
  flex: 1 0 100%;
  display: block;
  margin: 2px 0 4px;
  padding-inline-start: 0;
  padding-inline-end: 10px;
  margin-inline-end: 8px;
  border-inline-start: 0;
  border-inline-end: 1px dashed var(--ovex-line);
}

/* ---------- فهرست محصول داخل ستون ---------- */

.ovex-filter__group--products .ovex-filter__body ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px;
}

.ovex-filter__group--products .ovex-filter__body ul li {
  display: block;
  font-size: 12px;
  line-height: 1.7;
  padding: 0;
}

.ovex-filter__group--products .ovex-filter__body ul li > a {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  color: var(--ovex-ink-2);
}

.ovex-filter__group--products .ovex-filter__body ul li img {
  width: 46px;
  height: 46px;
  object-fit: cover;
  border-radius: var(--ovex-r-sm);
  margin: 0;
  float: none;
}

.ovex-filter__group--products .ovex-filter__body ul li .product-title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: 12px;
  font-weight: 600;
}

.ovex-filter__group--products .ovex-filter__body ul li .star-rating {
  margin-block-start: 3px;
}

.ovex-filter__group--products .ovex-filter__body ul li ins,
.ovex-filter__group--products .ovex-filter__body ul li .amount {
  font-size: 12px;
  text-decoration: none;
  color: var(--ovex-price);
  font-weight: 800;
}

.ovex-filter__group--products .ovex-filter__body ul li del {
  font-size: 11px;
  color: var(--ovex-ink-3);
}

/* ---------- اصلاح نهایی فهرست محصول ستون کناری ----------
   ساختار ووکامرس: li > a( img + span.product-title ) + div.star-rating + span.amount
   تصویر و عنوان در سطر اول، امتیاز و قیمت در سطرهای بعدی و هم‌تراز عنوان. */

.ovex-filter__group--products .ovex-filter__body ul.product_list_widget > li {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 3px 8px;
  padding: 0 0 10px;
  border-block-end: 1px solid var(--ovex-line);
}

.ovex-filter__group--products .ovex-filter__body ul.product_list_widget > li:last-child {
  border-block-end: 0;
  padding-block-end: 0;
}

.ovex-filter__group--products .ovex-filter__body ul.product_list_widget > li > a {
  flex: 1 0 100%;
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  color: var(--ovex-ink-2);
}

.ovex-filter__group--products .ovex-filter__body ul.product_list_widget > li > a img {
  width: 46px;
  height: 46px;
  object-fit: cover;
  border-radius: var(--ovex-r-sm);
  margin: 0;
  float: none;
}

.ovex-filter__group--products .ovex-filter__body ul.product_list_widget .product-title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: 11.5px;
  font-weight: 700;
  line-height: 1.65;
  color: var(--ovex-ink);
}

/* امتیاز و قیمت زیر تصویر، هم‌تراز با عنوان */
.ovex-filter__group--products .ovex-filter__body ul.product_list_widget > li > .star-rating,
.ovex-filter__group--products .ovex-filter__body ul.product_list_widget > li > span,
.ovex-filter__group--products .ovex-filter__body ul.product_list_widget > li > ins,
.ovex-filter__group--products .ovex-filter__body ul.product_list_widget > li > del {
  margin-inline-start: 54px;
  flex: 1 0 calc(100% - 54px);
}

.ovex-filter__group--products .ovex-filter__body ul.product_list_widget > li > .star-rating {
  font-size: 10px;
}

.ovex-filter__group--products .ovex-filter__body ul.product_list_widget .woocommerce-Price-amount {
  font-size: 12px;
  font-weight: 800;
  color: var(--ovex-price);
  white-space: nowrap;
}

.ovex-filter__group--products .ovex-filter__body ul.product_list_widget del,
.ovex-filter__group--products .ovex-filter__body ul.product_list_widget del .woocommerce-Price-amount {
  font-size: 11px;
  font-weight: 500;
  color: var(--ovex-ink-3);
}

.ovex-filter__group--products .ovex-filter__body ul.product_list_widget ins {
  text-decoration: none;
  background: transparent;
}

/* ============================================================
   ۹۹.۲۲) ردیف تضمین‌ها — اصلاح چیدمان
   template-parts/trust.php ساختار
   section.ovex-trust > .ovex-container > .ovex-trust__row > .ovex-trust__item
   دارد؛ ولی .ovex-trust خودش گرید ۵ ستونه بود و کانتینر فقط یک ستون
   می‌گرفت، در نتیجه همه‌ی آیتم‌ها زیر هم در یک ستون باریک می‌افتادند.
   صفحه‌ی محصول از همان کلاس با فرزند مستقیم item استفاده می‌کند، پس
   این اصلاح فقط با :has(> .ovex-container) محدود می‌شود.
   ============================================================ */

.ovex-trust:has(> .ovex-container) {
  display: block;
  background: transparent;
  box-shadow: none;
  border-radius: 0;
  padding: 0;
  margin-block: 16px;
}

.ovex-trust:has(> .ovex-container) .ovex-trust__row {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: var(--ovex-gap);
  background: var(--ovex-surface);
  border-radius: var(--ovex-r-lg);
  padding: 16px 12px;
  box-shadow: var(--ovex-sh-1);
}

/* آیکن داخل دایره باید کوچک‌تر از خود دایره باشد */
.ovex-trust__icon > .ovex-icon {
  width: 21px;
  height: 21px;
  flex: 0 0 auto;
  padding: 0;
  background: none;
  border-radius: 0;
  color: inherit;
}

.ovex-trust__body {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.ovex-trust__body > strong,
.ovex-trust__body > .ovex-trust__title {
  font-size: 12.5px;
  font-weight: 800;
  color: var(--ovex-ink);
  line-height: 1.6;
}

/* قالب برای توضیح از <em> استفاده می‌کند؛ ایتالیک خنثی می‌شود */
.ovex-trust__body > em,
.ovex-trust__body > .ovex-trust__text {
  font-size: 11px;
  font-style: normal;
  color: var(--ovex-ink-3);
  line-height: 1.7;
}

@media (max-width: 1024px) {
  .ovex-trust:has(> .ovex-container) .ovex-trust__row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .ovex-trust:has(> .ovex-container) .ovex-trust__row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 12px 10px;
  }
}

/*
  برچسب دامنه روی اسلاید: چون خود عنصر direction: ltr دارد،
  inset-inline-start برایش «چپ» حساب می‌شد و وسط تصویر می‌افتاد.
  حالا به گوشه‌ی پایین-راست کادر متن چسبانده می‌شود.
*/
.ovex-slide__brand {
  inset-inline-start: auto;
  inset-inline-end: 18px;
  font-size: 10.5px;
  opacity: .55;
}

/*
  موبایل: ترکیب عمودی روی تصویر مربعی -m.png.
  گرادیان پایین کمی قوی‌تر می‌شود تا عنوان روی کفش‌ها هم خوانا بماند.
  (با ویژگی بالاتر از قاعده‌ی مشابه در responsive.css نوشته شده است.)
*/
@media (max-width: 768px) {
  .ovex-slider .ovex-slider__slide::before {
    background: linear-gradient(to top, rgba(255, 252, 248, .99) 0%, rgba(255, 252, 248, .96) 26%, rgba(255, 252, 248, .74) 40%, rgba(255, 252, 248, 0) 62%);
  }

  .ovex-slider .ovex-slide__title {
    text-shadow: 0 1px 2px rgba(255, 255, 255, .9);
  }
}


/* ---------------------------------------------------------------
   بنرهای آماده‌ی اسلایدر: متن روی خود تصویر چاپ شده، پس لایه‌ی
   متن HTML چاپ نمی‌شود و فقط یک لینک تمام‌صفحه روی تصویر می‌نشیند.
   --------------------------------------------------------------- */
.ovex-slide__full {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: block;
}
