/* ==========================================================================
   Marji V6 — fixes for the home products carousel
   • Single <img> in .pv3-media (no nested Swiper); color swatch swaps src
   • Restore the carousel geometry so prev AND next blurred cards are visible
   • Arrows hug the active card's edges, no horizontal scroll
   ========================================================================== */

/* Reset V5 shell — the .products-shell shouldn't constrain width.
   The OUTER section keeps overflow:hidden so blurred side cards don't
   force horizontal scroll. */
.products-slider { position: relative; overflow: hidden; padding-bottom: 30px; }
.products-slider .products-shell {
  position: relative;
  max-width: none;
  margin: 0;
  padding: 0;
}
.products-slider .products-swiper {
  overflow: visible;
  padding: 30px 0 50px;
  margin: 0 auto;
  max-width: 1280px;
}

/* Active card width: ~62% of the swiper width via slidesPerView ≈ 1.6 */
/* We rely on Swiper's breakpoint config from v2.js (1.4 / 1.7 / 1.9). The
   shell + section combination above gives the side cards a place to live. */

/* Each slide can have inline width set by Swiper — DO NOT override.
   Make sure the slide can show the FULL product card (no truncation). */
.products-slider .swiper-slide { height: auto; }
.products-slider .swiper-slide .product-card-v3 {
  height: 100%;
}

/* Product image — single <img> shown directly in .pv3-media, full size */
.product-card-v3 .pv3-media {
  position: relative;
  background: #fff;
  border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
  min-height: 320px;
  padding: 14px;
}
.product-card-v3 .pv3-media > img {
  display: block;
  width: 100%;
  height: 100%;
  max-height: 460px;
  object-fit: contain;
}

/* Pagination dots under the product image — purely decorative for now */
.product-card-v3 .pv3-media .pv3-image-pagination {
  position: absolute;
  bottom: 14px;
  left: 0; right: 0;
  display: flex;
  justify-content: center;
  gap: 6px;
  z-index: 2;
}
.product-card-v3 .pv3-media .pv3-image-pagination span {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: #d8d8d8;
  cursor: pointer;
  transition: background .2s, width .2s;
}
.product-card-v3 .pv3-media .pv3-image-pagination span.active {
  background: var(--color-primary);
  width: 22px;
  border-radius: 4px;
}

/* Arrows: position on the OUTER section using calc against viewport.
   At standard ~1280 container with slidesPerView:1.6, active card ≈ 800px.
   Half = 400px. We place arrows just inside that (overlap card edges). */
.products-slider .swiper-button-prev,
.products-slider .swiper-button-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 54px;
  height: 54px;
  margin: 0;
  background: var(--color-primary);
  color: #fff;
  border-radius: 50%;
  box-shadow: 0 8px 24px rgba(242,106,40,0.35);
  z-index: 20;
}
.products-slider .swiper-button-prev:after,
.products-slider .swiper-button-next:after { font-size: 17px; font-weight: 900; }
.products-slider .swiper-button-prev { left: calc(50% - 370px); right: auto; }
.products-slider .swiper-button-next { right: calc(50% - 370px); left: auto; }

/* Pagination dots under the OUTER carousel */
.products-slider .products-shell .swiper-pagination,
.products-slider .swiper-pagination {
  display: block !important;
  position: relative;
  bottom: 0;
  margin-top: 10px;
  text-align: center;
}
.products-slider .swiper-pagination-bullet {
  width: 10px; height: 10px;
  background: #d8d8d8;
  opacity: 1;
  margin: 0 4px;
}
.products-slider .swiper-pagination-bullet-active { background: var(--color-primary); }

/* Card layout — restore from V4 (info | image divider) */
.product-card-v3 {
  grid-template-columns: 1fr 1fr;
  gap: 0;
  padding: 36px;
  min-height: 480px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: var(--radius-lg);
}
.product-card-v3 .pv3-info {
  padding-right: 34px;
  border-right: 1px solid #f0f0f0;
}
.product-card-v3 .pv3-media {
  padding-left: 30px;
}

/* Features fit one row */
.product-card-v3 .pv3-features {
  gap: 14px;
  flex-wrap: nowrap;
  justify-content: flex-start;
}
.product-card-v3 .pv3-features .pv3-feat .ic {
  width: 42px; height: 42px; font-size: 17px;
}
.product-card-v3 .pv3-features .pv3-feat .lbl {
  font-size: 11px; white-space: nowrap;
}

/* Responsive */
@media (max-width: 1199px) {
  .products-slider .swiper-button-prev { left: calc(50% - 360px); }
  .products-slider .swiper-button-next { right: calc(50% - 360px); }
}
@media (max-width: 991px) {
  .product-card-v3 { padding: 24px; min-height: auto; }
  .product-card-v3 .pv3-info { padding-right: 16px; border-right: none; }
  .product-card-v3 .pv3-media { padding-left: 16px; min-height: 260px; }
  .product-card-v3 .pv3-features { flex-wrap: wrap; }
  .products-slider .swiper-button-prev { left: 8px; }
  .products-slider .swiper-button-next { right: 8px; }
}
@media (max-width: 767px) {
  .product-card-v3 { grid-template-columns: 1fr; gap: 18px; padding: 18px; }
  .product-card-v3 .pv3-info { padding-right: 0; border-right: none; padding-bottom: 18px; border-bottom: 1px solid #f0f0f0; }
  .product-card-v3 .pv3-media { padding-left: 0; min-height: 220px; }
  .products-slider .swiper-button-prev,
  .products-slider .swiper-button-next { width: 42px; height: 42px; }
}
