/* Product rail: real WooCommerce media must not blend into the reference art. */
.category-section .category-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.category-section .category-card {
  height: 285px;
}

.category-section .category-image {
  display: block;
  background: #0b0911;
}

.category-section .category-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 420ms ease, filter 420ms ease;
}

.category-section .category-card:hover .category-image img {
  transform: scale(1.055);
  filter: saturate(1.06);
}

.category-image-fallback {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(145deg, #21142f, #0b0911);
}

.products .product-track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - 36px) / 4);
  grid-template-columns: none;
  align-items: stretch;
  gap: 12px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: inline proximity;
}

.products .product-card {
  display: flex;
  min-width: 0;
  min-height: 485px;
  flex-direction: column;
  scroll-snap-align: start;
}

.products .product-image {
  height: auto;
  aspect-ratio: 4 / 3;
  background: #0b0911;
  overflow: hidden;
  isolation: isolate;
}

.products .product-image img {
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  mix-blend-mode: normal;
  opacity: 1;
  transition: transform 260ms ease, filter 260ms ease;
}

.products .product-card:hover .product-image img {
  transform: scale(1.035);
  filter: saturate(1.04);
}

.products .product-image::before {
  z-index: 2;
  background: linear-gradient(180deg, transparent 48%, rgba(10, 8, 17, 0.34) 100%);
}

.products .product-image::after {
  z-index: 3;
  background: linear-gradient(0deg, #15101e 0%, transparent 28%);
}

.products .product-body {
  display: flex;
  min-height: 0;
  flex: 1 1 auto;
  flex-direction: column;
  padding: 17px;
}

.products .product-card h3 {
  margin-bottom: 14px;
  min-height: 0;
  color: var(--ivory);
  font-size: 21px;
  line-height: 1.02;
}

.products .price-row {
  margin-top: auto;
  margin-bottom: 8px;
  gap: 12px;
}

.products .price-row strong {
  font-size: 20px;
  line-height: 1.1;
}

.products .add-cart {
  display: grid;
  width: 36px;
  height: 32px;
  flex: 0 0 auto;
  place-items: center;
  text-decoration: none;
}

@media (max-width: 1100px) {
  .category-section .category-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .products .product-track {
    grid-auto-columns: calc((100% - 24px) / 3);
  }
}

@media (max-width: 820px) {
  .category-section .category-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .products .product-track {
    grid-auto-columns: calc((100% - 12px) / 2);
  }
}

@media (max-width: 560px) {
  .category-section .category-grid {
    display: grid;
    grid-template-columns: 1fr;
    overflow: visible;
  }

  .category-section .category-card {
    height: 260px;
  }

  .products .product-track {
    grid-auto-columns: 76vw;
  }

  .products .product-card {
    min-height: 450px;
  }
}
