.product-gallery-wrap { padding: 3.75rem 1rem 1rem; }
.product-gallery { max-width: 36rem; margin: auto; }
.product-gallery:focus-visible, .product-gallery button:focus-visible {
  outline: 3px solid #ff0033; outline-offset: 3px;
}
.product-gallery-stage {
  position: relative; display: flex; align-items: center; justify-content: center;
  height: clamp(12rem, 32vh, 23rem); border-radius: 2rem; background: #fff;
  touch-action: pan-y pinch-zoom;
}
.product-gallery-image { width: 100%; height: 100%; object-fit: contain; padding: 1.25rem 3rem; }
.product-gallery-arrow {
  position: absolute; top: calc(50% - 22px); width: 44px; height: 44px;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid #e5e7eb; border-radius: 50%; background: #fffffff0;
  color: #2c2a29; font-size: 1.5rem; cursor: pointer;
}
.product-gallery-arrow:hover { background: #fbf9f6; }
.product-gallery-prev { left: .25rem; }
.product-gallery-next { right: .25rem; }
.product-gallery-controls { display: flex; align-items: center; justify-content: center; gap: .5rem; min-height: 44px; margin-top: .5rem; }
.product-gallery-dots { display: flex; }
.product-gallery-dot { width: 44px; height: 44px; display: grid; place-items: center; cursor: pointer; }
.product-gallery-dot::after { content: ''; width: 7px; height: 7px; border-radius: 50%; background: #d1d5db; }
.product-gallery-dot[aria-pressed="true"]::after { background: #ff0033; }
.product-gallery-count { font: 500 .75rem Inter, sans-serif; color: #6b7280; min-width: 2.5rem; }
.product-gallery-controls[hidden], .product-gallery-arrow[hidden] { display: none; }
.product-detail-copy { max-width: 48rem; margin: 0 auto; }
@media (min-width: 768px) {
  .product-gallery-wrap { padding: 3rem 2rem 1.5rem; }
}
@media (max-width: 767px) and (max-height: 650px) {
  .product-gallery-wrap { padding-top: 3rem; }
  .product-gallery-stage { height: 10rem; }
  .product-detail-copy > .eyebrow { display: none; }
}
