.pcm-product-gallery,
.pcm-product-gallery * { box-sizing: border-box; }
.pcm-product-gallery { inline-size: 100%; min-inline-size: 0; margin-block-end: var(--pcm-space-7); }
.pcm-product-gallery [hidden] { display: none !important; }
.pcm-product-gallery__stage,
.pcm-product-gallery__slides,
.pcm-product-gallery__slide,
.pcm-product-gallery__zoom-trigger { inline-size: 100%; min-inline-size: 0; }
.pcm-product-gallery__stage { position: relative; }
.pcm-product-gallery__slides { overflow: hidden; border: 1px solid var(--pcm-border-subtle); border-radius: var(--pcm-radius-feature); background: transparent; }
.pcm-product-gallery__slide { aspect-ratio: 1; margin: 0; background: transparent; }
.pcm-product-gallery__zoom-trigger { display: grid; block-size: 100%; padding: 0; place-items: center; overflow: hidden; color: inherit; text-decoration: none; }
.pcm-product-gallery__image,
.pcm-product-gallery__modal-image { display: block; inline-size: auto; block-size: auto; max-inline-size: 100%; max-block-size: 100%; object-fit: contain; object-position: center; }
.pcm-product-gallery__image { inline-size: 100%; block-size: 100%; max-inline-size: 100%; max-block-size: 100%; object-fit: contain; }
.pcm-product-gallery__arrow,
.pcm-product-gallery__modal-close,
.pcm-product-gallery__modal-arrow { display: grid; min-inline-size: 44px; min-block-size: 44px; padding: 0; place-items: center; border: 1px solid var(--pcm-border-control); border-radius: 999px; color: var(--pcm-color-royal); background: #fffdfa; cursor: pointer; }
.pcm-product-gallery__zoom-trigger:focus-visible,
.pcm-product-gallery__arrow:focus-visible,
.pcm-product-gallery__thumbnail:focus-visible,
.pcm-product-gallery__modal-close:focus-visible,
.pcm-product-gallery__modal-arrow:focus-visible { outline: 3px solid var(--pcm-focus-on-light); outline-offset: 3px; }
.pcm-product-gallery__arrow { position: absolute; z-index: 2; inset-block-start: 50%; transform: translateY(-50%); box-shadow: 0 0.25rem 1rem var(--pcm-shadow-color); }
.pcm-product-gallery__arrow--previous { inset-inline-start: 0.75rem; }
.pcm-product-gallery__arrow--next { inset-inline-end: 0.75rem; }
.pcm-product-gallery__thumbnails { display: grid; grid-auto-columns: 4.75rem; grid-auto-flow: column; gap: 0.75rem; max-inline-size: 100%; margin-block-start: 0.875rem; padding: 0.25rem; overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: inline proximity; }
.pcm-product-gallery__thumbnail { display: grid; inline-size: 4.75rem; min-inline-size: 44px; block-size: 4.75rem; min-block-size: 44px; padding: 0.375rem; place-items: center; overflow: hidden; scroll-snap-align: start; border: 2px solid var(--pcm-border-subtle); border-radius: 0.75rem; background: #fffdfa; cursor: pointer; }
.pcm-product-gallery__thumbnail[aria-current="true"] { border-color: var(--pcm-color-active-orange); box-shadow: 0 0 0 2px #fffdfa, 0 0 0 4px var(--pcm-color-royal); }
.pcm-product-gallery__thumbnail img { display: block; inline-size: auto; block-size: auto; max-inline-size: 100%; max-block-size: 100%; object-fit: contain; }
.pcm-product-gallery__modal { position: fixed; z-index: 100000; inset: 0; }
.pcm-product-gallery__modal-backdrop { display: grid; inline-size: 100%; block-size: 100%; padding: clamp(0.75rem, 3vw, 2rem); place-items: center; background: rgb(17 17 68 / 0.82); }
.pcm-product-gallery__modal-dialog { position: relative; display: grid; inline-size: min(100%, 82rem); max-block-size: 100%; overflow: hidden; border-radius: 1.25rem; background: #fffdfa; box-shadow: 0 1rem 4rem rgb(0 0 0 / 0.35); }
.pcm-product-gallery__modal-canvas { display: grid; inline-size: 100%; min-block-size: min(70vh, 42rem); max-block-size: calc(100vh - 2rem); padding: clamp(1rem, 4vw, 3rem); place-items: center; overflow: auto; background: #fffdfa; }
.pcm-product-gallery__modal-close,
.pcm-product-gallery__modal-arrow { position: absolute; z-index: 2; }
.pcm-product-gallery__modal-close { inset-block-start: 0.75rem; inset-inline-end: 0.75rem; font-size: 1.75rem; line-height: 1; }
.pcm-product-gallery__modal-arrow { inset-block-start: 50%; transform: translateY(-50%); }
.pcm-product-gallery__modal-arrow--previous { inset-inline-start: 0.75rem; }
.pcm-product-gallery__modal-arrow--next { inset-inline-end: 0.75rem; }
.pcm-gallery-modal-open { overflow: hidden; }
.pcm-product-gallery__visually-hidden { position: absolute !important; inline-size: 1px !important; block-size: 1px !important; padding: 0 !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.pcm-product-gallery.is-enhanced .pcm-product-gallery__slide:not([hidden]) { animation: pcm-product-gallery-fade 220ms ease-out; }
@keyframes pcm-product-gallery-fade { from { opacity: 0.72; } to { opacity: 1; } }
@media (max-width: 47.999rem) {
  .pcm-product-gallery__arrow--previous { inset-inline-start: 0.375rem; }
  .pcm-product-gallery__arrow--next { inset-inline-end: 0.375rem; }
  .pcm-product-gallery__modal-backdrop { padding: 0; }
  .pcm-product-gallery__modal-dialog { inline-size: 100%; block-size: 100%; border-radius: 0; }
  .pcm-product-gallery__modal-canvas { min-block-size: 100%; max-block-size: 100%; padding: 4.25rem 3.25rem 2rem; }
}
@media (prefers-reduced-motion: reduce) {
  .pcm-product-gallery.is-enhanced .pcm-product-gallery__slide:not([hidden]) { animation: none; }
  .pcm-product-gallery__thumbnails { scroll-behavior: auto; }
}

