.product-miniature__image-hover {
  display: none;
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
}

@media (hover: hover) and (pointer: fine) {
  .product-miniature__image-link--has-hover {
    position: relative;
  }

  .product-miniature__image-hover {
    display: block;
  }

  .product-miniature__image-link--has-hover:is(:hover, :focus-visible) .product-miniature__image-cover {
    opacity: 0;
  }

  .product-miniature__image-link--has-hover:is(:hover, :focus-visible) .product-miniature__image-hover {
    opacity: 1;
  }
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .product-miniature__image-link--has-hover .product-miniature__image-cover,
  .product-miniature__image-hover {
    transition: opacity 150ms ease-out;
  }
}
