body.single-product .woocommerce-product-gallery__image > a {
  position: relative !important;
  overflow: hidden !important;
  cursor: zoom-in !important;
  touch-action: manipulation;
  --xy-hover-zoom-x: 50%;
  --xy-hover-zoom-y: 50%;
}

@media (hover: hover) and (pointer: fine) {
  body.single-product .woocommerce-product-gallery__image > a > img:not(.zoomImg) {
    transform: scale(1) !important;
    transform-origin: var(--xy-hover-zoom-x) var(--xy-hover-zoom-y) !important;
    transition: transform 150ms ease-out !important;
    will-change: transform;
  }

  body.single-product .woocommerce-product-gallery__image > a.xy-hover-zoom-active > img:not(.zoomImg) {
    transform: scale(2) !important;
  }

  /* Let WooCommerce's native inner-pan layer win if it is initialized. */
  body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image > img.zoomImg,
  body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image > a > img.zoomImg {
    width: auto !important;
    height: auto !important;
    max-width: none !important;
    max-height: none !important;
    padding: 0 !important;
    object-fit: unset !important;
    border-radius: 0 !important;
    pointer-events: none !important;
  }
}

@media (hover: none), (pointer: coarse) {
  body.single-product .woocommerce-product-gallery__image > a > img:not(.zoomImg) {
    transform: none !important;
  }

  body.single-product .woocommerce-product-gallery__image > img.zoomImg,
  body.single-product .woocommerce-product-gallery__image > a > img.zoomImg {
    display: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.single-product .woocommerce-product-gallery__image > a > img:not(.zoomImg) {
    transition: none !important;
  }
}

body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__trigger {
  display: flex !important;
  top: 18px !important;
  right: 18px !important;
  width: 42px !important;
  height: 42px !important;
  align-items: center !important;
  justify-content: center !important;
  border: 2px solid #fff !important;
  border-radius: 50% !important;
  background: #ffc62b !important;
  box-shadow: 0 8px 20px rgba(6, 22, 37, .25) !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  z-index: 100 !important;
}

body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__trigger span {
  display: grid !important;
  width: 22px !important;
  height: 22px !important;
  place-items: center !important;
  line-height: 1 !important;
}

body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__trigger img {
  width: 20px !important;
  height: 20px !important;
  max-width: none !important;
  max-height: none !important;
  border-radius: 0 !important;
}
