/*
 * Commerce bridges only. The reference theme and ecom-custom stylesheet own
 * product cards, purchase bars, panels, selectors, zoom, wishlist and cart geometry.
 */
.shop-product-root { display: contents; }
/* Original selectors use .opened; the local router applies that state to the
   same select-button rather than the source app's parent panel controller. */
.quickbuy-bar .select-button.opened .select-button__options { pointer-events: auto; }
@media screen and (max-width: 900px) {
  .quickbuy-bar .select-button.opened .select-button__options { display: block; }
  .product-sticky-bar[data-shop-no-size="true"] .product-sticky-bar__infos {
    width: 100%;
    flex-shrink: 0;
  }
  .product-sticky-bar[data-shop-no-size="true"] .product-sticky-bar__actions {
    width: 0;
    border-left: 0;
  }
}

/* The theme paints the complete dropdown/popup/zoom states. These attributes
   provide their local event targets without changing layout or type sizes. */
[data-shop-zoom-thumb], [data-shop-popup-toggle],
[data-shop-popup-close], [data-shop-mobile-track], [data-shop-card-track] {
  cursor: pointer;
}
.product-sticky-bar__thumbnail, .quickbuy-bar__thumbnails > img { flex-shrink: 0; }

/* Native focus visibility is restored only for keyboard navigation; the theme
   otherwise removes every focus outline, including its own controls. */
[data-shop-action]:focus-visible,
[data-shop-zoom-thumb]:focus-visible, [data-shop-popup-toggle]:focus-visible,
.select-button__button:focus-visible, .select-button__option:focus-visible,
.product-card__track:focus-visible {
  outline: 1px solid currentColor;
  outline-offset: -1px;
}

/* Nontransactional demo feedback stays out of the reference component flow. */
.shop-local-status, .shop-purchase-message {
  position: fixed;
  z-index: 3001;
  right: var(--padding);
  bottom: calc(var(--padding) + var(--bar-height) * 2 + 15rem);
  max-width: calc(var(--vw) - var(--padding) * 2);
  padding: 8rem 10rem;
  font-size: 10rem;
  line-height: 1.2;
  font-weight: 400;
  color: var(--color-black);
  background: var(--color-blurred);
  -webkit-backdrop-filter: var(--blur);
  backdrop-filter: var(--blur);
  border-radius: var(--border-radius);
}
.shop-purchase-message { color: #9d2626; }
.shop-local-note { font-size: 10rem; line-height: 1.2; font-weight: 400; color: var(--color-grey); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* Pointer Events adapter of source _t keeps vertical page gestures available. */
.product-card[data-shop-mode="row"] .product-card__slider, .product-gallery__inner.infinite-carousel { touch-action:pan-y; }

/* Reference PDP desktop frames are 4:5; source mobile fixed height remains authoritative. */
@media screen and (min-width:901px) {
 .product-gallery__image, .product-zoom__image, .product-infos__image, .product-sticky-bar__thumbnail, .product-zoom__thumb { aspect-ratio:4 / 5; object-fit:cover; }
 .product-gallery__image, .product-sticky-bar__thumbnail { width:auto; }
 .product-zoom__image, .product-infos__image, .product-zoom__thumb { height:auto; }
 .product-zoom__image.zoomed { aspect-ratio:4 / 5; height:auto; }
}

/* The superzoom clone uses the original 4:5 frame at every viewport. */
.product-zoom__image.zoomed { aspect-ratio:4 / 5; object-fit:cover; height:auto; }
