/* =========================================================
   SINGLE PRODUCT - MODERN UI
   ========================================================= */

:root {
  --sp-primary: #3e4095;
  --sp-primary-dark: #2d2f78;
  --sp-primary-light: #eef0ff;

  --sp-secondary: #3bb77e;
  --sp-secondary-dark: #29a56c;
  --sp-secondary-light: #ecf9f3;

  --sp-text: #25324b;
  --sp-text-secondary: #6b7280;
  --sp-text-light: #9aa1b2;

  --sp-background: #f5f7fb;
  --sp-white: #ffffff;

  --sp-border: #e5e7eb;
  --sp-border-dark: #d5d9e2;

  --sp-success: #3bb77e;
  --sp-success-light: #ecf9f3;

  --sp-danger: #e05252;
  --sp-danger-light: #fdecec;

  --sp-warning: #f2b84b;
  --sp-warning-light: #fff7e5;

  --sp-shadow-sm: 0 2px 8px rgba(37, 50, 75, 0.05);
  --sp-shadow: 0 8px 25px rgba(37, 50, 75, 0.07);
  --sp-shadow-lg: 0 15px 40px rgba(37, 50, 75, 0.1);

  --sp-radius-sm: 8px;
  --sp-radius: 12px;
  --sp-radius-lg: 18px;
  --sp-radius-xl: 24px;
}

/* =========================================================
   PRODUCT PAGE
   ========================================================= */

.single-product-page {
  background: var(--sp-background);
  padding-bottom: 80px;
}

.single-product-container {
  position: relative;
}

/* =========================================================
   BREADCRUMB
   ========================================================= */

.single-product-breadcrumb {
  padding: 18px 0;
}

.single-product-breadcrumb .breadcrumb {
  margin: 0;
  padding: 0;
  background: transparent;
  font-size: 13px;
}

.single-product-breadcrumb .breadcrumb-item {
  color: var(--sp-text-secondary);
}

.single-product-breadcrumb .breadcrumb-item a {
  color: var(--sp-text-secondary);
  text-decoration: none;
}

.single-product-breadcrumb .breadcrumb-item a:hover {
  color: var(--sp-primary);
}

.single-product-breadcrumb .breadcrumb-item.active {
  color: var(--sp-text);
  font-weight: 600;
}

/* =========================================================
   MAIN PRODUCT CARD
   ========================================================= */

.single-product-card {
  background: var(--sp-white);
  border: 1px solid var(--sp-border);
  border-radius: var(--sp-radius-xl);
  box-shadow: var(--sp-shadow-sm);
  overflow: hidden;
  width: 100%;
  margin-top: 15px;
}

.single-product-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

/* =========================================================
   GALLERY
   ========================================================= */

.single-product-gallery {
  position: relative;
  padding: 28px;
  border-left: 1px solid var(--sp-border);
}

.product-gallery-badges {
  position: absolute;
  right: 16px;
  top: 16px;
  z-index: 5;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
}

.product-gallery-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 7px 11px;
  border-radius: 30px;
  font-size: 11px;
  font-weight: 700;
}

.product-gallery-badge.green {
  background: var(--sp-secondary-light);
  color: var(--sp-secondary-dark);
}

.product-gallery-badge.blue {
  background: var(--sp-primary-light);
  color: var(--sp-primary);
}
/* =========================================================
   MODERN PRODUCT GALLERY
========================================================= */

.single-product-gallery {
  position: relative;
  padding: 24px;
  border-left: 1px solid var(--sp-border);
  background: #fff;
}

.product-gallery-wrapper {
  position: relative;
  width: 100%;
}

/* =========================================================
   TOP BAR
========================================================= */

.product-gallery-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
  min-height: 40px;
}

.product-gallery-topbar-right,
.product-gallery-topbar-left {
  display: flex;
  align-items: center;
  gap: 7px;
}

.product-gallery-brand {
  display: inline-flex;
  align-items: center;
  padding: 6px 11px;
  border-radius: 30px;
  background: var(--sp-primary-light);
  color: var(--sp-primary);
  font-size: 11px;
  font-weight: 800;
  text-decoration: none;
}

.product-gallery-brand:hover {
  color: var(--sp-primary-dark);
  text-decoration: none;
}

/* =========================================================
   ROUND ACTIONS
========================================================= */

.product-gallery-round-btn {
  width: 38px;
  height: 38px;
  padding: 0;
  border: 1px solid var(--sp-border);
  border-radius: 50%;
  background: #fff;
  color: var(--sp-text-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: 0.2s ease;
}

.product-gallery-round-btn:hover {
  border-color: var(--sp-primary);
  color: var(--sp-primary);
  background: var(--sp-primary-light);
}

.product-gallery-round-btn.active {
  color: var(--sp-danger);
  background: var(--sp-danger-light);
  border-color: var(--sp-danger-light);
}

/* =========================================================
   MAIN SLIDER
========================================================= */

.product-gallery-slider {
  position: relative;
  width: 100%;
  background: #fff;
  border: 1px solid var(--sp-border);
  border-radius: 20px;
  overflow: hidden;
}

.product-main-swiper {
  width: 100%;
  aspect-ratio: 1 / 1;
}

.product-main-slide {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 30px;
  background: #fff;
}

.product-main-image {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  user-select: none;
  -webkit-user-drag: none;
}

/* =========================================================
   NAVIGATION
========================================================= */

.product-gallery-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 20;

  width: 42px;
  height: 42px;

  border: 1px solid var(--sp-border);
  border-radius: 50%;

  background: rgba(255, 255, 255, 0.96);
  color: var(--sp-text);

  display: flex;
  align-items: center;
  justify-content: center;

  box-shadow: var(--sp-shadow-sm);

  cursor: pointer;

  transition: 0.2s ease;
}

.product-gallery-nav:hover {
  background: var(--sp-primary);
  color: #fff;
  border-color: var(--sp-primary);
}

.product-gallery-prev {
  right: 15px;
}

.product-gallery-next {
  left: 15px;
}

/* =========================================================
   COUNTER
========================================================= */

.product-gallery-counter {
  position: absolute;
  left: 14px;
  bottom: 14px;
  z-index: 20;

  display: flex;
  align-items: center;
  gap: 4px;

  padding: 7px 11px;

  border-radius: 30px;

  background: rgba(37, 50, 75, 0.78);
  color: #fff;

  font-size: 11px;
  font-weight: 700;

  direction: ltr;
}

/* =========================================================
   BADGES
========================================================= */

.product-gallery-badges {
  position: absolute;
  top: 14px;
  right: 14px;

  z-index: 25;

  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 7px;

  pointer-events: none;
}

.product-gallery-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;

  padding: 7px 10px;

  border-radius: 30px;

  font-size: 10px;
  font-weight: 800;

  box-shadow: var(--sp-shadow-sm);
}

.product-gallery-badge.blue {
  background: var(--sp-primary-light);
  color: var(--sp-primary);
}

.product-gallery-badge.green {
  background: var(--sp-secondary-light);
  color: var(--sp-secondary-dark);
}

/* =========================================================
   ZOOM BUTTON
========================================================= */

.product-gallery-zoom-btn {
  position: absolute;

  left: 14px;
  top: 14px;

  z-index: 25;

  height: 38px;

  padding: 0 12px;

  border: 1px solid var(--sp-border);
  border-radius: 30px;

  background: rgba(255, 255, 255, 0.96);
  color: var(--sp-text);

  display: flex;
  align-items: center;
  gap: 6px;

  font-size: 11px;
  font-weight: 700;

  box-shadow: var(--sp-shadow-sm);

  cursor: pointer;

  transition: 0.2s ease;
}

.product-gallery-zoom-btn:hover {
  background: var(--sp-primary);
  border-color: var(--sp-primary);
  color: #fff;
}

.product-gallery-zoom-btn i {
  font-size: 17px;
}

/* =========================================================
   THUMBNAILS
========================================================= */

.product-gallery-thumbs-wrapper {
  margin-top: 12px;
  padding: 2px;
}

.product-thumbs-swiper {
  width: 100%;
}

.product-thumb-slide {
  width: 74px !important;
}

.product-gallery-thumb:hover {
  border-color: var(--sp-primary);
}

.product-gallery-thumb.active {
  border-color: var(--sp-primary);
  box-shadow: 0 0 0 2px var(--sp-primary-light);
}

/* =========================================================
   LIGHTBOX
========================================================= */

.product-lightbox {
  position: fixed;
  inset: 0;

  z-index: 999999;

  display: none;

  align-items: center;
  justify-content: center;

  background: rgba(15, 18, 35, 0.94);

  padding: 25px;
}

.product-lightbox.active {
  display: flex;
}

.product-lightbox-inner {
  position: relative;

  width: min(1100px, 100%);
  height: min(850px, 100%);

  display: flex;
  align-items: center;
  justify-content: center;
}

.product-lightbox-image {
  max-width: 100%;
  max-height: 100%;

  width: auto;
  height: auto;

  object-fit: contain;

  border-radius: 10px;

  user-select: none;
  -webkit-user-drag: none;
}

/* close */

.product-lightbox-close {
  position: fixed;

  top: 20px;
  right: 20px;

  z-index: 1000001;

  width: 46px;
  height: 46px;

  border: 0;
  border-radius: 50%;

  background: rgba(255, 255, 255, 0.12);
  color: #fff;

  display: flex;
  align-items: center;
  justify-content: center;

  font-size: 22px;

  cursor: pointer;
}

.product-lightbox-close:hover {
  background: rgba(255, 255, 255, 0.22);
}

/* lightbox navigation */

.product-lightbox-nav {
  position: fixed;

  top: 50%;

  transform: translateY(-50%);

  z-index: 1000001;

  width: 50px;
  height: 50px;

  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 50%;

  background: rgba(255, 255, 255, 0.1);
  color: #fff;

  display: flex;
  align-items: center;
  justify-content: center;

  cursor: pointer;

  font-size: 22px;
}

.product-lightbox-prev {
  right: 25px;
}

.product-lightbox-next {
  left: 25px;
}

.product-lightbox-nav:hover {
  background: rgba(255, 255, 255, 0.2);
}

/* lightbox counter */

.product-lightbox-counter {
  position: fixed;

  bottom: 20px;
  left: 50%;

  transform: translateX(-50%);

  z-index: 1000001;

  padding: 7px 14px;

  border-radius: 30px;

  background: rgba(0, 0, 0, 0.35);

  color: #fff;

  font-size: 12px;

  direction: ltr;
}

/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 991px) {
  .single-product-gallery {
    padding: 10px 14px 18px;
    border-left: 0;
  }

  .product-gallery-topbar {
    margin-bottom: 10px;
  }

  .product-gallery-brand {
    font-size: 10px;
  }

  .product-gallery-round-btn {
    width: 36px;
    height: 36px;
  }

  .product-gallery-slider {
    border-radius: 17px;
  }

  .product-main-swiper {
    aspect-ratio: 1 / 1;
  }

  .product-main-slide {
    padding: 18px;
  }

  .product-main-image {
    max-height: 100%;
  }

  .product-gallery-nav {
    width: 36px;
    height: 36px;
  }

  .product-gallery-prev {
    right: 10px;
  }

  .product-gallery-next {
    left: 10px;
  }

  .product-gallery-badges {
    top: 10px;
    right: 10px;
  }

  .product-gallery-zoom-btn {
    top: 10px;
    left: 10px;
    width: 38px;
    padding: 0;
    justify-content: center;
  }

  .product-gallery-zoom-btn span {
    display: none;
  }

  .product-gallery-counter {
    bottom: 10px;
    left: 10px;
  }

  .product-thumb-slide {
    width: 62px !important;
  }

  .product-gallery-thumb {
    width: 62px;
    height: 62px;
    border-radius: 10px;
  }

  .product-lightbox {
    padding: 15px;
  }

  .product-lightbox-inner {
    width: 100%;
    height: 80vh;
  }

  .product-lightbox-prev {
    right: 10px;
  }

  .product-lightbox-next {
    left: 10px;
  }

  .product-lightbox-nav {
    width: 40px;
    height: 40px;
  }

  .product-lightbox-close {
    top: 12px;
    right: 12px;
    width: 40px;
    height: 40px;
  }
}

/* =========================================================
   THUMBNAILS
   ========================================================= */

.product-gallery-thumbs {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 16px;
  overflow-x: auto;
  scrollbar-width: none;
}

.product-gallery-thumbs::-webkit-scrollbar {
  display: none;
}

.product-gallery-thumb {
  flex: 0 0 74px;
  height: 74px;
  border: 1px solid var(--sp-border);
  border-radius: var(--sp-radius);
  background: #fff;
  padding: 5px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.product-gallery-thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.product-gallery-thumb:hover,
.product-gallery-thumb.active {
  border-color: var(--sp-primary);
  box-shadow: 0 0 0 2px var(--sp-primary-light);
}

/* =========================================================
   PRODUCT INFORMATION
   ========================================================= */

.single-product-info {
  padding: 34px;
}

/* brand */

.single-product-brand {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: var(--sp-primary);
  background: var(--sp-primary-light);
  border-radius: 30px;
  padding: 6px 11px;
  font-size: 12px;
  font-weight: 700;
  margin-bottom: 14px;
  text-decoration: none;
}

.single-product-brand:hover {
  color: var(--sp-primary-dark);
  text-decoration: none;
}

/* title */

.single-product-title {
  color: var(--sp-text);
  font-size: 24px;
  line-height: 1.65;
  font-weight: 800;
  margin: 0 0 4px;
}

.single-product-subtitle {
  color: var(--sp-text-secondary);
  font-size: 14px;
  line-height: 1.8;
  margin: 0;
}

/* rating */

.single-product-rating {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 16px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--sp-border);
}

.product-rating-stars {
  direction: ltr;
  display: flex;
  gap: 3px;
}

.product-rating-stars label {
  margin: 0;
  cursor: pointer;
}

.product-rating-stars i {
  color: #f2b84b;
  font-size: 17px;
}

.product-rating-text {
  color: var(--sp-text-secondary);
  font-size: 12px;
}

/* description */

.single-product-short-description {
  color: var(--sp-text-secondary);
  font-size: 14px;
  line-height: 2;
  margin-top: 18px;
}

.single-product-short-description p:last-child {
  margin-bottom: 0;
}

/* =========================================================
   PRICE
   ========================================================= */

.single-product-price-box {
  margin-top: 20px;
  padding: 18px;
  border-radius: var(--sp-radius-lg);
  background: #fafbff;
  border: 1px solid var(--sp-border);
}

.single-product-price {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px;
}

.single-product-price .price {
  color: var(--sp-primary);
  font-size: 27px;
  font-weight: 900;
}

.single-product-price del {
  color: var(--sp-text-light);
  font-size: 13px;
}

.single-product-discount {
  background: var(--sp-danger);
  color: #fff;
  padding: 4px 8px;
  border-radius: 7px;
  font-size: 11px;
  font-weight: 800;
}

/* =========================================================
   PRODUCT INFO FLAGS
   ========================================================= */

.single-product-benefits {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  margin-top: 15px;
}

.single-product-benefit {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 11px;
  border-radius: var(--sp-radius);
  background: var(--sp-secondary-light);
  color: var(--sp-secondary-dark);
  font-size: 12px;
  font-weight: 600;
}

.single-product-benefit i {
  font-size: 17px;
}

/* expiration */

.single-product-expire {
  margin-top: 12px;
  padding: 11px 13px;
  border-radius: var(--sp-radius);
  background: var(--sp-warning-light);
  color: #9a6b13;
  font-size: 12px;
  font-weight: 600;
}

.single-product-expire.expire-danger {
  background: var(--sp-danger-light);
  color: var(--sp-danger);
}

/* =========================================================
   VARIATIONS
   ========================================================= */

.single-product-variation {
  margin-top: 22px;
  padding-top: 22px;
  border-top: 1px solid var(--sp-border);
}

.single-product-variation-label {
  display: block;
  color: var(--sp-text);
  font-size: 14px;
  font-weight: 800;
  margin-bottom: 9px;
}

.single-product-select {
  width: 100%;
  height: 48px;
  border: 1px solid var(--sp-border-dark);
  border-radius: var(--sp-radius);
  background: #fff;
  color: var(--sp-text);
  padding: 0 14px;
  font-size: 13px;
  outline: none;
}

.single-product-select:focus {
  border-color: var(--sp-primary);
  box-shadow: 0 0 0 3px var(--sp-primary-light);
}

/* =========================================================
   CART
   ========================================================= */

.single-product-cart {
  margin-top: 18px;
}

.single-product-cart-row {
  display: flex;
  gap: 10px;
}

.single-product-quantity {
  display: flex;
  align-items: center;
  height: 50px;
  border: 1px solid var(--sp-border-dark);
  border-radius: var(--sp-radius);
  overflow: hidden;
  background: #fff;
}

.single-product-quantity button {
  width: 42px;
  height: 100%;
  border: 0;
  background: #fff;
  color: var(--sp-primary);
  font-size: 18px;
  cursor: pointer;
}

.single-product-quantity input {
  width: 46px;
  height: 100%;
  border: 0;
  outline: none;
  text-align: center;
  font-weight: 700;
  color: var(--sp-text);
  background: #fff;
}

.single-product-add {
  flex: 1;
  height: 50px;
  border: 0;
  border-radius: var(--sp-radius);
  background: var(--sp-secondary);
  color: #fff;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
  transition: all 0.2s ease;
}

.single-product-add:hover {
  background: var(--sp-secondary-dark);
  transform: translateY(-1px);
  box-shadow: 0 7px 18px rgba(59, 183, 126, 0.22);
}

/* out of stock */

.single-product-reminder {
  width: 100%;
  height: 50px;
  border-radius: var(--sp-radius);
  background: var(--sp-primary);
  color: #fff;
  border: 0;
  font-weight: 700;
}

/* =========================================================
   META
   ========================================================= */

.single-product-meta {
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid var(--sp-border);
}

.single-product-meta-row {
  display: flex;
  align-items: baseline;
  gap: 7px;
  margin-bottom: 8px;
  font-size: 12px;
  color: var(--sp-text-secondary);
}

.single-product-meta-row strong {
  color: var(--sp-text);
}

.single-product-meta-row a {
  color: var(--sp-primary);
  font-weight: 600;
}

/* =========================================================
   GIFTS
   ========================================================= */

.single-product-gifts {
  margin-top: 18px;
  padding: 15px;
  background: var(--sp-primary-light);
  border-radius: var(--sp-radius-lg);
}

.single-product-gifts-title {
  color: var(--sp-primary);
  font-size: 13px;
  font-weight: 800;
  margin-bottom: 12px;
}

.single-product-gifts-list {
  display: flex;
  gap: 10px;
  overflow-x: auto;
}

.single-product-gift {
  flex: 0 0 90px;
  text-align: center;
}

.single-product-gift-image {
  width: 70px;
  height: 70px;
  margin: 0 auto 6px;
  background: #fff;
  border-radius: 12px;
  padding: 5px;
}

.single-product-gift-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.single-product-gift-title {
  font-size: 10px;
  color: var(--sp-text);
  line-height: 1.6;
}

/* =========================================================
   MOBILE STICKY CART
   ========================================================= */

.single-product-mobile-cart {
  position: fixed;
  right: 0;
  left: 0;
  bottom: 0;
  z-index: 999;
  background: rgba(255, 255, 255, 0.97);
  backdrop-filter: blur(12px);
  border-top: 1px solid var(--sp-border);
  box-shadow: 0 -8px 30px rgba(37, 50, 75, 0.1);
  padding: 10px 0;
}

.single-product-mobile-cart-inner {
  display: flex;
  align-items: center;
  gap: 10px;
}

.single-product-mobile-price {
  min-width: 125px;
}

.single-product-mobile-price .new-price {
  display: block;
  color: var(--sp-primary);
  font-size: 16px;
  font-weight: 900;
}

.single-product-mobile-price .old-price {
  color: var(--sp-text-light);
  font-size: 10px;
  text-decoration: line-through;
}

.single-product-mobile-add {
  flex: 1;
  height: 48px;
  border: 0;
  border-radius: 12px;
  background: var(--sp-secondary);
  color: #fff;
  font-size: 13px;
  font-weight: 800;
}

/* =========================================================
   PRODUCT CONTENT SECTIONS
   ========================================================= */

.single-product-content {
  margin-top: 20px;
}

.single-product-section {
  background: var(--sp-white);
  border: 1px solid var(--sp-border);
  border-radius: var(--sp-radius-xl);
  overflow: hidden;
  margin-bottom: 16px;
}

.single-product-section-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 20px 24px;
  border-bottom: 1px solid var(--sp-border);
}

.single-product-section-header-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: var(--sp-primary-light);
  color: var(--sp-primary);
  display: flex;
  align-items: center;
  justify-content: center;
}

.single-product-section-header h2 {
  margin: 0;
  color: var(--sp-text);
  font-size: 17px;
  font-weight: 800;
}

.single-product-section-body {
  padding: 24px;
  color: var(--sp-text-secondary);
  font-size: 14px;
  line-height: 2.2;
}

/* =========================================================
   FEATURES
   ========================================================= */

.product-features-table {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border: 1px solid var(--sp-border);
  border-radius: var(--sp-radius);
  overflow: hidden;
}

.product-feature-row {
  display: grid;
  grid-template-columns: 40% 60%;
  min-height: 50px;
  border-bottom: 1px solid var(--sp-border);
}

.product-feature-row:nth-last-child(-n + 2) {
  border-bottom: 0;
}

.product-feature-name {
  padding: 13px;
  background: #fafbff;
  color: var(--sp-text-secondary);
  font-size: 12px;
  font-weight: 700;
}

.product-feature-value {
  padding: 13px;
  color: var(--sp-text);
  font-size: 12px;
}

/* =========================================================
   TABS
   ========================================================= */

.single-product-tabs {
  display: flex;
  gap: 5px;
  overflow-x: auto;
  scrollbar-width: none;
  padding: 5px;
  background: #f7f8fc;
  border-radius: 12px;
}

.single-product-tabs::-webkit-scrollbar {
  display: none;
}

.single-product-tabs .nav-link {
  flex: 0 0 auto;
  border: 0 !important;
  border-radius: 9px !important;
  padding: 10px 17px;
  color: var(--sp-text-secondary);
  background: transparent;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}

.single-product-tabs .nav-link.active {
  color: var(--sp-primary);
  background: #fff;
  box-shadow: var(--sp-shadow-sm);
}

/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 991px) {
  .single-product-page {
    padding-bottom: 85px;
  }

  .single-product-grid {
    display: flex;
    flex-direction: column;
  }

  /*
     * IMPORTANT:
     * Mobile order:
     * title -> gallery -> info
     */

  /* =========================================================
       PRODUCT LAYOUT
       ========================================================= */

  .single-product-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    direction: ltr;
  }

  /* محتویات هر ستون دوباره RTL */
  .single-product-gallery,
  .single-product-info {
    direction: rtl;
  }

  /* =========================================================
       MOBILE
       ========================================================= */

  @media (max-width: 991px) {
    .single-product-grid {
      display: flex;
      flex-direction: column;
      direction: rtl;
    }

    /*
         * عنوان موبایل خارج از grid است
         * بنابراین ترتیب دقیقاً:
         *
         * title
         * gallery
         * info
         */

    .mobile-product-header {
      display: block !important;
    }

    .single-product-gallery {
      order: 1;
      width: 100%;
      border-left: 0;
    }

    .single-product-info {
      order: 2;
      width: 100%;
    }
  }
  .single-product-info .desktop-only-info {
    display: none;
  }

  .mobile-product-header {
    display: block !important;
    padding: 20px 18px 0;
  }

  .mobile-product-header .single-product-title {
    font-size: 20px;
    line-height: 1.7;
  }

  .mobile-product-header .single-product-subtitle {
    margin-top: 3px;
    font-size: 12px;
  }

  .mobile-product-header .single-product-rating {
    border-bottom: 0;
    margin-top: 10px;
    padding-bottom: 8px;
  }

  .single-product-gallery {
    border-left: 0;
    padding: 10px 14px 20px;
  }

  .product-gallery-thumbs {
    margin-top: 10px;
  }

  .product-gallery-thumb {
    flex-basis: 60px;
    height: 60px;
  }

  .single-product-info {
    padding: 18px;
  }

  .single-product-info > .single-product-title,
  .single-product-info > .single-product-subtitle,
  .single-product-info > .single-product-rating {
    display: none;
  }

  .single-product-card {
    border-radius: 18px;
  }

  .single-product-short-description {
    margin-top: 10px;
  }

  .single-product-benefits {
    grid-template-columns: 1fr 1fr;
  }

  .product-features-table {
    grid-template-columns: 1fr;
  }

  .product-feature-row:nth-last-child(-n + 2) {
    border-bottom: 1px solid var(--sp-border);
  }

  .single-product-section-header {
    padding: 16px;
  }

  .single-product-section-body {
    padding: 16px;
  }

  .single-product-breadcrumb {
    padding: 12px 14px;
  }

  .single-product-breadcrumb .breadcrumb {
    white-space: nowrap;
    overflow: hidden;
  }
}

/* =========================================================
   DESKTOP MOBILE HEADER HIDDEN
   ========================================================= */

.mobile-product-header {
  display: none;
}

/* =========================================================
   SMALL MOBILE
   ========================================================= */

@media (max-width: 480px) {
  .single-product-title {
    font-size: 19px;
  }

  .single-product-price .price {
    font-size: 23px;
  }

  .single-product-benefits {
    grid-template-columns: 1fr;
  }

  .single-product-cart-row {
    flex-direction: column;
  }

  .single-product-quantity {
    width: 100%;
    justify-content: center;
  }

  .single-product-add {
    width: 100%;
  }

  .single-product-mobile-price {
    min-width: 105px;
  }

  .single-product-mobile-price .new-price {
    font-size: 14px;
  }
}

@media (max-width: 991px) {
  .single-product-info .single-product-title,
  .single-product-info .single-product-subtitle,
  .single-product-info .single-product-rating {
    display: none !important;
  }
}

.single-product-short-description {
  margin: 14px 0 0;
  padding: 12px 14px;

  background: var(--sp-background);
  border: 1px solid var(--sp-border);
  border-radius: 10px;

  color: var(--sp-text-secondary);
  font-size: 12px;
  line-height: 1.7;

  direction: rtl;
  text-align: right;
}

.single-product-short-description ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.single-product-short-description li {
  position: relative;

  display: block;

  margin: 0;
  padding: 4px 0;

  color: var(--sp-text-secondary);
  font-size: 12px;
  line-height: 1.7;

  direction: rtl;
  text-align: right;

  word-break: normal;
  overflow-wrap: break-word;
}

.single-product-short-description li + li {
  border-top: 1px solid rgba(229, 231, 240, 0.65);
}

/* bullet */

.single-product-short-description li::before {
  content: "";

  position: absolute;
  right: 0;
  top: 12px;

  width: 6px;
  height: 6px;

  border-radius: 50%;
  background: var(--sp-secondary);
}

/* متن را از bullet فاصله بده */

.single-product-short-description li {
  padding-right: 14px;
}

/* متن‌های مهم */

.single-product-short-description li strong,
.single-product-short-description li b {
  color: var(--sp-text);
  font-weight: 700;
}

/* لینک */

.single-product-short-description li a {
  color: var(--sp-primary);
  font-weight: 600;
  text-decoration: none;
}

.single-product-short-description li a:hover {
  text-decoration: underline;
}

/* p داخل li */

.single-product-short-description li p {
  margin: 0;
  padding: 0;

  color: inherit;
  font-size: inherit;
  line-height: inherit;
}

/* اگر توضیحات بدون ul بود */

.single-product-short-description > p {
  margin: 0;
  padding: 0;
}

/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 991px) {

  .single-product-short-description {
    margin-top: 10px;
    padding: 10px 12px;

    border-radius: 9px;

    font-size: 11.5px;
    line-height: 1.65;
  }

  .single-product-short-description li {
    display: block;

    padding: 3px 13px 3px 0;

    font-size: 11.5px;
    line-height: 1.65;
  }

  .single-product-short-description li::before {
    width: 5px;
    height: 5px;

    right: 0;
    top: 9px;
  }

  .single-product-short-description li strong,
  .single-product-short-description li b {
    font-weight: 700;
  }

  .single-product-short-description li p {
    margin: 0;
    padding: 0;
  }

  .single-product-short-description > p {
    margin: 0;
    padding: 0;
  }
}
/* =========================================================
   PRODUCT COMBINATION
========================================================= */

.product-combination-section {
  margin-bottom: 16px;
}

/* Content */

.product-combination-content {
  width: 100%;

  color: var(--sp-text);
  font-size: 13px;
  line-height: 1.9;

  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* =========================================================
   TABLE
========================================================= */

.product-combination-content table {
  width: 100% !important;

  border-collapse: separate !important;
  border-spacing: 0 !important;

  border: 1px solid var(--sp-border);

  border-radius: 12px;

  overflow: hidden;

  background: var(--sp-white);

  margin: 0 !important;
}

/* =========================================================
   TABLE HEADER
========================================================= */

.product-combination-content table thead th {
  background: var(--sp-primary-light);

  color: var(--sp-primary);

  font-size: 11px;

  font-weight: 800;

  text-align: right;

  padding: 11px 13px;

  border-bottom: 1px solid var(--sp-border);

  white-space: nowrap;
}

/* =========================================================
   TABLE CELLS
========================================================= */

.product-combination-content table td {
  padding: 10px 13px;

  color: var(--sp-text-secondary);

  font-size: 11px;

  font-weight: 600;

  line-height: 1.8;

  text-align: right;

  border-bottom: 1px solid var(--sp-border);

  vertical-align: middle;
}

/* آخرین ردیف */

.product-combination-content table tbody tr:last-child td {
  border-bottom: 0;
}

/* =========================================================
   ROW
========================================================= */

.product-combination-content table tbody tr {
  transition: background 0.18s ease;
}

.product-combination-content table tbody tr:nth-child(even) {
  background: #fafbfd;
}

.product-combination-content table tbody tr:hover {
  background: var(--sp-primary-light);
}

/* =========================================================
   FIRST COLUMN
========================================================= */

.product-combination-content table tbody td:first-child {
  color: var(--sp-text);

  font-weight: 700;
}

/* =========================================================
   BORDER BETWEEN COLUMNS
========================================================= */

.product-combination-content table th + th,
.product-combination-content table td + td {
  border-right: 1px solid var(--sp-border);
}

/* =========================================================
   TEXT INSIDE TABLE
========================================================= */

.product-combination-content table p {
  margin: 0;
}

.product-combination-content table strong {
  color: var(--sp-text);

  font-weight: 800;
}

/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 767px) {
  .product-combination-section {
    margin-bottom: 12px;
  }

  .product-combination-section .single-product-section-header {
    gap: 9px;
  }

  .product-combination-section .single-product-section-header-icon {
    width: 34px;
    height: 34px;

    min-width: 34px;

    border-radius: 9px;

    font-size: 16px;
  }

  .product-combination-section .single-product-section-header h2 {
    font-size: 14px;
  }

  .product-combination-section .single-product-section-body {
    padding-top: 12px;
  }

  .product-combination-content {
    font-size: 11px;

    /*
         * اگر جدول از عرض موبایل بیشتر شد،
         * کل صفحه اسکرول نمی‌خورد؛
         * فقط خود جدول اسکرول افقی می‌خورد.
         */

    overflow-x: auto;

    scrollbar-width: thin;
  }

  .product-combination-content table {
    min-width: 560px !important;

    border-radius: 10px;
  }

  .product-combination-content table thead th {
    padding: 9px 10px;

    font-size: 10px;
  }

  .product-combination-content table td {
    padding: 8px 10px;

    font-size: 10px;

    line-height: 1.7;
  }
}
/* =========================================================
   PRODUCT TABS CONTENT
========================================================= */

.single-product-tabs + .tab-content {
  margin-top: 16px;
  width: 100%;
}

/* هر محتوای تب */

.single-product-tabs + .tab-content .tab-pane {
  color: var(--sp-text-secondary);
  font-size: 13px;
  line-height: 2.15;

  width: 100%;
  max-width: 100%;

  overflow-wrap: anywhere;
}

/* محتوای داخلی */

.single-product-tabs + .tab-content .single-product-tab-content {
  padding: 2px 0;
}

/* پاراگراف */

.single-product-tabs + .tab-content p {
  margin: 0 0 12px;
}

.single-product-tabs + .tab-content p:last-child {
  margin-bottom: 0;
}

/* تیترها */

.single-product-tabs + .tab-content h1,
.single-product-tabs + .tab-content h2,
.single-product-tabs + .tab-content h3,
.single-product-tabs + .tab-content h4,
.single-product-tabs + .tab-content h5,
.single-product-tabs + .tab-content h6 {
  margin: 18px 0 8px;

  color: var(--sp-text);

  font-weight: 800;
  line-height: 1.8;
}

.single-product-tabs + .tab-content h3 {
  font-size: 16px;
}

.single-product-tabs + .tab-content h4 {
  font-size: 14px;
}

/* لیست‌ها */

.single-product-tabs + .tab-content ul,
.single-product-tabs + .tab-content ol {
  margin: 10px 0;
  padding-right: 22px;
}

.single-product-tabs + .tab-content li {
  margin-bottom: 6px;
  line-height: 1.9;
}

.single-product-tabs + .tab-content li:last-child {
  margin-bottom: 0;
}

/* Bullet */

.single-product-tabs + .tab-content ul {
  list-style: none;
  padding-right: 0;
}

.single-product-tabs + .tab-content ul li {
  position: relative;
  padding-right: 16px;
}

.single-product-tabs + .tab-content ul li::before {
  content: "";

  position: absolute;
  right: 0;
  top: 11px;

  width: 6px;
  height: 6px;

  border-radius: 50%;

  background: var(--sp-secondary);
}

/* متن مهم */

.single-product-tabs + .tab-content strong,
.single-product-tabs + .tab-content b {
  color: var(--sp-text);
  font-weight: 800;
}

/* لینک */

.single-product-tabs + .tab-content a {
  color: var(--sp-primary);
  font-weight: 700;
  text-decoration: none;
}

.single-product-tabs + .tab-content a:hover {
  color: var(--sp-primary-dark);
}

/* تصویر */

.single-product-tabs + .tab-content img {
  display: block;

  max-width: 100%;
  height: auto;

  margin: 12px auto;

  border-radius: 10px;
}

/* جدول */

.single-product-tabs + .tab-content table {
  width: 100%;
  max-width: 100%;

  margin: 12px 0;

  border-collapse: collapse;
  border: 1px solid var(--sp-border);

  font-size: 12px;
}

.single-product-tabs + .tab-content th,
.single-product-tabs + .tab-content td {
  padding: 9px 11px;

  text-align: right;

  border: 1px solid var(--sp-border);
}

.single-product-tabs + .tab-content th {
  background: var(--sp-primary-light);
  color: var(--sp-primary);
  font-weight: 800;
}

.single-product-tabs + .tab-content td {
  color: var(--sp-text-secondary);
}

/* blockquote */

.single-product-tabs + .tab-content blockquote {
  margin: 12px 0;
  padding: 10px 14px;

  background: var(--sp-background);

  border-right: 3px solid var(--sp-primary);
  border-radius: 8px;

  color: var(--sp-text-secondary);
}

/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 767px) {
  .single-product-tabs + .tab-content {
    margin-top: 12px;
  }

  .single-product-tabs + .tab-content .tab-pane {
    font-size: 11.5px;
    line-height: 2;
  }

  .single-product-tabs + .tab-content h3 {
    font-size: 14px;
  }

  .single-product-tabs + .tab-content h4 {
    font-size: 13px;
  }

  .single-product-tabs + .tab-content ul li {
    padding-right: 14px;
  }

  .single-product-tabs + .tab-content table {
    display: block;
    overflow-x: auto;
    white-space: nowrap;
  }

  .single-product-tabs + .tab-content th,
  .single-product-tabs + .tab-content td {
    padding: 8px 9px;
    font-size: 10px;
  }
}
/* =========================================================
   PRODUCT COMMENTS
========================================================= */

.product-comments-section {
  margin-bottom: 16px;
}

/* =========================================================
   HEADER
========================================================= */

.product-comments-section .single-product-section-header {
  display: flex;
  align-items: center;
  gap: 12px;
}

.product-comments-section .single-product-section-header-content h2 {
  margin: 0;

  color: var(--sp-text);

  font-size: 16px;
  font-weight: 800;
}

.product-comments-section .single-product-section-header-content span {
  display: block;

  margin-top: 2px;

  color: var(--sp-text-light);

  font-size: 10px;
}

/* =========================================================
   COMMENTS TITLE
========================================================= */

.product-comments-title {
  display: flex;
  align-items: center;
  flex-wrap: wrap;

  gap: 6px;

  margin-bottom: 15px;

  color: var(--sp-text-secondary);

  font-size: 12px;
}

.product-comments-title strong {
  color: var(--sp-text);

  font-weight: 700;
}

.product-comments-count {
  min-width: 26px;
  height: 26px;

  padding: 0 7px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  border-radius: 8px;

  background: var(--sp-primary-light);

  color: var(--sp-primary);

  font-size: 11px;
  font-weight: 800;
}

/* =========================================================
   COMMENT ITEM
========================================================= */

.product-comment-items {
  display: flex;

  flex-direction: column;

  gap: 10px;
}

.product-comment-item {
  display: flex;

  align-items: flex-start;

  gap: 12px;

  padding: 14px;

  border: 1px solid var(--sp-border);

  border-radius: 13px;

  background: #fff;

  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.product-comment-item:hover {
  border-color: var(--sp-border-dark);

  box-shadow: var(--sp-shadow-sm);
}

/* Avatar */

.product-comment-avatar {
  flex: 0 0 42px;

  width: 42px;
  height: 42px;

  border-radius: 50%;

  overflow: hidden;

  background: var(--sp-primary-light);
}

.product-comment-avatar img {
  width: 100%;
  height: 100%;

  object-fit: cover;
}

/* Content */

.product-comment-content {
  flex: 1;

  min-width: 0;
}

.product-comment-head {
  display: flex;

  align-items: center;

  justify-content: space-between;

  gap: 10px;

  margin-bottom: 7px;
}

.product-comment-author {
  color: var(--sp-text);

  font-size: 12px;
  font-weight: 800;
}

.product-comment-date {
  display: flex;

  align-items: center;

  gap: 4px;

  flex: 0 0 auto;

  color: var(--sp-text-light);

  font-size: 10px;
}

.product-comment-date i {
  font-size: 12px;
}

.product-comment-text {
  color: var(--sp-text-secondary);

  font-size: 12px;

  line-height: 2;

  white-space: pre-line;
}

/* =========================================================
   ADMIN REPLY
========================================================= */

.product-comment-reply {
  margin-top: 12px;

  padding: 10px 12px;

  border-radius: 10px;

  background: var(--sp-primary-light);

  border-right: 3px solid var(--sp-primary);
}

.product-comment-reply-head {
  display: flex;

  align-items: center;

  gap: 5px;

  margin-bottom: 4px;

  color: var(--sp-primary);

  font-size: 11px;
}

.product-comment-reply-head i {
  font-size: 15px;
}

.product-comment-reply-text {
  color: var(--sp-text-secondary);

  font-size: 11px;

  line-height: 1.9;
}

/* =========================================================
   EMPTY
========================================================= */

.product-comments-empty {
  padding: 25px 15px;

  border: 1px dashed var(--sp-border-dark);

  border-radius: 12px;

  display: flex;

  flex-direction: column;

  align-items: center;

  justify-content: center;

  text-align: center;
}

.product-comments-empty-icon {
  width: 42px;
  height: 42px;

  margin-bottom: 9px;

  border-radius: 12px;

  display: flex;
  align-items: center;
  justify-content: center;

  background: var(--sp-primary-light);

  color: var(--sp-primary);

  font-size: 19px;
}

.product-comments-empty strong {
  color: var(--sp-text);

  font-size: 13px;
}

.product-comments-empty span {
  margin-top: 4px;

  color: var(--sp-text-light);

  font-size: 10px;
}

/* =========================================================
   REVIEW FORM
========================================================= */

.product-review-form {
  margin-top: 22px;

  padding-top: 20px;

  border-top: 1px solid var(--sp-border);
}

.product-review-form-head {
  margin-bottom: 15px;
}

.product-review-form-head h3 {
  margin: 0;

  color: var(--sp-text);

  font-size: 14px;

  font-weight: 800;
}

.product-review-form-head p {
  margin: 3px 0 0;

  color: var(--sp-text-light);

  font-size: 10px;

  line-height: 1.8;
}

/* Grid */

.product-review-grid {
  display: grid;

  grid-template-columns: 1fr 1fr;

  gap: 12px;
}

.product-review-field {
  min-width: 0;
}

.product-review-field-full {
  grid-column: 1 / -1;
}

.product-review-field label {
  display: block;

  margin-bottom: 6px;

  color: var(--sp-text);

  font-size: 11px;

  font-weight: 700;
}

/* Inputs */

.product-review-input {
  width: 100%;

  min-height: 44px;

  padding: 9px 12px;

  border: 1px solid var(--sp-border);

  border-radius: 10px;

  background: #fff;

  color: var(--sp-text);

  font-size: 12px;

  box-shadow: none !important;

  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

textarea.product-review-input {
  min-height: 110px;

  resize: vertical;
}

.product-review-input::placeholder {
  color: var(--sp-text-light);
}

.product-review-input:focus {
  border-color: var(--sp-primary);

  box-shadow: 0 0 0 3px var(--sp-primary-light) !important;

  outline: none;
}

/* Captcha */

.product-review-captcha {
  min-height: 78px;

  display: flex;

  align-items: center;
}

/* Submit */

.product-review-submit {
  height: 46px;

  min-width: 145px;

  padding: 0 20px;

  border: 0;

  border-radius: 10px;

  background: var(--sp-primary);

  color: #fff;

  font-size: 12px;

  font-weight: 800;

  display: inline-flex;

  align-items: center;

  justify-content: center;

  gap: 7px;

  cursor: pointer;

  transition: all 0.2s ease;
}

.product-review-submit:hover {
  background: var(--sp-primary-dark);

  transform: translateY(-1px);

  box-shadow: var(--sp-shadow);
}

.product-review-submit i {
  font-size: 16px;
}

/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 767px) {
  .product-comments-section {
    margin-bottom: 12px;
  }

  .product-comments-section .single-product-section-header {
    gap: 9px;
  }

  .product-comments-section .single-product-section-header-icon {
    width: 34px;
    height: 34px;

    min-width: 34px;

    border-radius: 9px;

    font-size: 16px;
  }

  .product-comments-section .single-product-section-header-content h2 {
    font-size: 14px;
  }

  .product-comments-section .single-product-section-header-content span {
    font-size: 9px;
  }

  .product-comments-section .single-product-section-body {
    padding: 14px;
  }

  .product-comment-item {
    gap: 9px;

    padding: 11px;

    border-radius: 11px;
  }

  .product-comment-avatar {
    flex-basis: 36px;

    width: 36px;
    height: 36px;
  }

  .product-comment-head {
    align-items: flex-start;

    flex-direction: column;

    gap: 2px;
  }

  .product-comment-author {
    font-size: 11px;
  }

  .product-comment-date {
    font-size: 9px;
  }

  .product-comment-text {
    font-size: 11px;

    line-height: 1.9;
  }

  .product-review-grid {
    grid-template-columns: 1fr;

    gap: 10px;
  }

  .product-review-field-full {
    grid-column: auto;
  }

  .product-review-submit {
    width: 100%;
  }
}
/* =========================================================
   RELATED PRODUCTS
========================================================= */

.single-product-related {
  margin-top: 0;
  padding: 28px 0 10px;

  background: var(--sp-background);

  border-top: 1px solid var(--sp-border);
}

/* Header */

.single-product-related-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;

  gap: 20px;

  margin-bottom: 18px;
}

.single-product-related-eyebrow {
  margin-bottom: 4px;

  color: var(--sp-secondary);

  font-size: 10px;
  font-weight: 800;
}

.single-product-related-head h2 {
  margin: 0;

  color: var(--sp-text);

  font-size: 20px;
  font-weight: 850;
}

/* Navigation */

.single-product-related-nav {
  display: flex;
  align-items: center;
  gap: 7px;
}

.single-product-related-nav button {
  width: 38px;
  height: 38px;

  padding: 0;

  border: 1px solid var(--sp-border);
  border-radius: 50%;

  background: var(--sp-white);

  color: var(--sp-text);

  display: flex;
  align-items: center;
  justify-content: center;

  cursor: pointer;

  box-shadow: var(--sp-shadow-sm);

  transition: 0.2s ease;
}

.single-product-related-nav button:hover {
  background: var(--sp-primary);
  color: #fff;
  border-color: var(--sp-primary);
}

.single-product-related-nav button.swiper-button-disabled {
  opacity: 0.45;
  pointer-events: none;
}

/* Swiper */

.single-product-related-swiper {
  width: 100%;
  overflow: hidden;

  padding: 3px 2px 12px;
}

.single-product-related-swiper .swiper-slide {
  height: auto;
  display: flex;
}

/*
 * برای اینکه کارت تمام عرض Slide را بگیرد
 */

.single-product-related-swiper .swiper-slide > .product {
  width: 100%;
}

/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 991px) {
  .single-product-related {
    margin-top: 12px;
    padding: 20px 0 8px;
  }

  .single-product-related-head {
    margin-bottom: 13px;
    align-items: center;
  }

  .single-product-related-head h2 {
    font-size: 16px;
  }

  .single-product-related-eyebrow {
    font-size: 9px;
  }

  .single-product-related-nav button {
    width: 34px;
    height: 34px;
  }

  .single-product-related-swiper {
    padding-bottom: 8px;
  }
}

@media (max-width: 576px) {
  .single-product-related {
    padding-left: 0;
    padding-right: 0;
  }

  .single-product-related-head {
    padding: 0 14px;
  }

  .single-product-related-swiper {
    padding-right: 14px;
    padding-left: 14px;
  }
}
/* =========================================================
   PRODUCT OPTIONS
========================================================= */

.single-product-variation {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid var(--sp-border);
}

.single-product-variation-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    margin-bottom: 11px;
}

.single-product-variation-title {
    display: flex;
    align-items: center;
    gap: 7px;

    color: var(--sp-text);
    font-size: 13px;
    font-weight: 800;
}

.single-product-variation-title i {
    color: var(--sp-primary);
    font-size: 17px;
}

.single-product-variation-selected {
    color: var(--sp-text-light);
    font-size: 10px;
    white-space: nowrap;
}

.single-product-variation-selected strong {
    color: var(--sp-primary);
    font-weight: 800;
}


/* options */

.single-product-options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}


/* option */

.single-product-option {
    position: relative;

    min-height: 43px;
    padding: 8px 12px;

    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;

    border: 1px solid var(--sp-border);
    border-radius: 10px;

    background: #fff;
    color: var(--sp-text-secondary);

    font-family: inherit;
    font-size: 11px;
    font-weight: 700;

    cursor: pointer;

    transition:
        border-color .2s ease,
        background .2s ease,
        color .2s ease,
        box-shadow .2s ease,
        transform .2s ease;
}

.single-product-option:hover {
    border-color: var(--sp-primary);
    color: var(--sp-primary);
    background: var(--sp-primary-light);
}

.single-product-option.active {
    border-color: var(--sp-primary);
    background: var(--sp-primary-light);
    color: var(--sp-primary);

    box-shadow:
        0 0 0 2px rgba(62, 64, 149, .07);
}

.single-product-option.active:hover {
    background: var(--sp-primary-light);
}

.single-product-option:active {
    transform: scale(.98);
}

.single-product-option-title {
    line-height: 1.5;
}

.single-product-option-check {
    width: 18px;
    height: 18px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    flex: 0 0 18px;

    border-radius: 50%;

    background: var(--sp-primary);

    color: #fff;

    font-size: 11px;

    opacity: 0;
    visibility: hidden;

    transform: scale(.7); 

    transition:
        opacity .2s ease,
        visibility .2s ease,
        transform .2s ease;
}

.single-product-option-check {
    opacity: 0;
    visibility: hidden;
    transform: scale(.7);
}

.single-product-option.active .single-product-option-check {
    opacity: 1;
    visibility: visible;
    transform: scale(1);
}
/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 767px) {

    .single-product-variation {
        margin-top: 16px;
        padding-top: 16px;
    }

    .single-product-variation-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 5px;
    }

    .single-product-variation-title {
        font-size: 12px;
    }

    .single-product-variation-selected {
        font-size: 9px;
    }

    .single-product-options {
        gap: 7px;
    }

    .single-product-option {
        min-height: 40px;
        padding: 7px 10px;
        border-radius: 9px;
        font-size: 10px;
    }

}
/* =========================================================
   MOBILE STICKY PRODUCT BAR
========================================================= */

.single-product-mobile-cart {

    position: fixed;

    right: 0;
    left: 0;
    bottom: 0;

    z-index: 99999;

    padding:
        8px 10px
        calc(8px + env(safe-area-inset-bottom));

    background: rgba(255, 255, 255, .97);

    border-top: 1px solid var(--sp-border);

    box-shadow:
        0 -6px 25px rgba(37, 40, 61, .12);

    backdrop-filter: blur(12px);

}


/* =========================================================
   LAYOUT
========================================================= */

.single-product-mobile-cart-inner {

    width: 100%;

    max-width: 1200px;

    margin: 0 auto;

    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        minmax(0, 1.15fr)
        128px;

    gap: 9px;

    align-items: center;

}


/* =========================================================
   SUMMARY
========================================================= */

.single-product-mobile-summary {

    min-width: 0;

}


.single-product-mobile-option {

    display: flex;

    align-items: center;

    gap: 4px;

    margin-bottom: 3px;

    color: var(--sp-text-light);

    font-size: 9px;

    white-space: nowrap;

}


.single-product-mobile-option-value {

    min-width: 0;

    overflow: hidden;

    text-overflow: ellipsis;

    color: var(--sp-primary);

    font-weight: 800;

}


.single-product-mobile-price {

    display: flex;

    align-items: baseline;

    gap: 6px;

}


.single-product-mobile-price .new-price {

    color: var(--sp-primary);

    font-size: 15px;

    font-weight: 900;

    white-space: nowrap;

}


.single-product-mobile-price .new-price small {

    font-size: 9px;

    font-weight: 700;

}


.single-product-mobile-price .old-price {

    color: var(--sp-text-light);

    font-size: 12px;

    white-space: nowrap;

    text-decoration: line-through;

}


.single-product-mobile-expire {

    min-height: 14px;

    margin-top: 2px;

    display: flex;

    align-items: center;

    gap: 4px;

    color: var(--sp-text-light);

    font-size: 11px;

    white-space: nowrap;

}


/* =========================================================
   OPTIONS
========================================================= */

.single-product-mobile-options {

    display: flex;

    align-items: center;

    gap: 5px;

    min-width: 0;

    overflow-x: auto;

    scrollbar-width: none;

}


.single-product-mobile-options::-webkit-scrollbar {

    display: none;

}


.single-product-mobile-option-btn {

    flex: 0 0 auto;

    height: 31px;

    padding: 0 10px;

    display: inline-flex;

    align-items: center;

    justify-content: center;

    gap: 4px;

    border: 1px solid var(--sp-border);

    border-radius: 8px;

    background: #fff;

    color: var(--sp-text-secondary);

    font-family: inherit;

    font-size: 9px;

    font-weight: 700;

    white-space: nowrap;

    cursor: pointer;

    transition: all .2s ease;

}


.single-product-mobile-option-btn i {

    display: none;

    font-size: 11px;

}


.single-product-mobile-option-btn.active {

    background: var(--sp-primary-light);

    border-color: var(--sp-primary);

    color: var(--sp-primary);

}


.single-product-mobile-option-btn.active i {

    display: block;

}


/* =========================================================
   ACTION
========================================================= */

.single-product-mobile-action {

    min-width: 0;

}


.single-product-mobile-add,
.single-product-mobile-reminder {

    width: 100%;

    height: 45px;

    border: 0;

    border-radius: 11px;

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 6px;

    font-family: inherit;

    font-size: 11px;

    font-weight: 800;

    cursor: pointer;

    transition:
        background .2s ease,
        transform .2s ease,
        box-shadow .2s ease;

}


.single-product-mobile-add {

    background: var(--sp-secondary);

    color: #fff;

}


.single-product-mobile-add:hover {

    background: var(--sp-secondary-dark);

    transform: translateY(-1px);

}


.single-product-mobile-reminder {

    background: var(--sp-primary);

    color: #fff;

}


.single-product-mobile-reminder:hover {

    background: var(--sp-primary-dark);

    transform: translateY(-1px);

}


.single-product-mobile-add i,
.single-product-mobile-reminder i {

    font-size: 16px;

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 767px) {

    .single-product-mobile-cart {

        padding:
            7px 8px
            calc(7px + env(safe-area-inset-bottom));

    }


    .single-product-mobile-cart-inner {

        grid-template-columns:
            minmax(0, 1fr)
            minmax(0, 1.2fr)
            112px;

        gap: 6px;

    }


    .single-product-mobile-price .new-price {

        font-size: 15px;

    }


    .single-product-mobile-option {

        font-size: 8px;

    }


    .single-product-mobile-option-btn {

        height: 29px;

        padding: 0 8px;

        font-size: 12px;

    }


    .single-product-mobile-add,
    .single-product-mobile-reminder {

        height: 42px;

        border-radius: 10px;

        font-size: 12px;

    }

}


@media (max-width: 480px) {

    .single-product-mobile-cart-inner {

        grid-template-columns:
            minmax(0, 1fr)
            108px;

    }


    /*
     * در موبایل خیلی کوچک Optionها
     * زیر اطلاعات قرار می‌گیرند.
     */

    .single-product-mobile-options {

        grid-column: 1 / -1;

        grid-row: 2;

    }


    .single-product-mobile-summary {

        grid-column: 1;

        grid-row: 1;

    }


    .single-product-mobile-action {

        grid-column: 2;

        grid-row: 1;

    }

}


@media (max-width: 767px) {

    body {

        padding-bottom: 75px;

    }

}