/* Product photographs fill a consistent portrait frame; original files stay intact. */
.storefront-visual{--hh-product-photo-ratio:4/5}
.storefront-visual #catalog .product-visual,
.storefront-visual #catalog .product-card:only-child .product-visual{
  aspect-ratio:var(--hh-product-photo-ratio);
  overflow:hidden;
}
.storefront-visual #catalog .product-open,
.storefront-visual #catalog .product-photo-pair{width:100%;height:100%;padding:0}
.storefront-visual #catalog .product-photo{
  display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%;
}
/* Two-product sets retain both complete products inside the same outer frame. */
.storefront-visual #catalog .product-photo-pair .product-photo{object-fit:contain}
.storefront-visual .product-dialog:is(.has-print-variants,.fixed-print-product) .product-layout{
  grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);
}
.storefront-visual .product-dialog:is(.has-print-variants,.fixed-print-product) .preview-stage{
  width:100%;height:auto;max-width:480px;max-height:none;
  aspect-ratio:var(--hh-product-photo-ratio);margin-inline:auto;overflow:hidden;
}
.storefront-visual .product-dialog:is(.has-print-variants,.fixed-print-product) .preview-stage .product-photo{
  display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%;
}
.storefront-visual :is(.has-print-variants,.fixed-print-product) .print-thumbnails img,
.storefront-visual :is(.has-print-variants,.fixed-print-product) .photo-gallery .product-photo{
  display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%;
}
.storefront-visual :is(.has-print-variants,.fixed-print-product) .print-thumbnails button,
.storefront-visual :is(.has-print-variants,.fixed-print-product) .photo-gallery>button{
  width:56px;height:70px;flex:0 0 56px;aspect-ratio:var(--hh-product-photo-ratio);
}
.storefront-visual .cart-item-art:has(.fixed-print-photo),
.storefront-visual .checkout-line-thumb:has(.fixed-print-photo),
.storefront-visual .cart-item-art:has(.ready-print-preview),
.storefront-visual .checkout-line-thumb:has(.ready-print-preview){
  height:auto;aspect-ratio:var(--hh-product-photo-ratio);align-self:start;overflow:hidden;
}
.storefront-visual .ready-print-preview{
  width:100%;height:100%;aspect-ratio:var(--hh-product-photo-ratio);
}
.storefront-visual .ready-print-preview .preview-product-photo{
  display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%;
}
@media(max-width:600px){
  .storefront-visual .product-dialog:is(.has-print-variants,.fixed-print-product) .preview-stage{
    width:min(100%,288px);height:auto;max-height:none;
  }
  .storefront-visual :is(.has-print-variants,.fixed-print-product) .print-thumbnails button,
  .storefront-visual :is(.has-print-variants,.fixed-print-product) .photo-gallery>button{
    width:50px;height:62.5px;flex-basis:50px;
  }
}

.storefront-visual .cart-item-art .fixed-print-photo,
.storefront-visual .checkout-line-thumb .fixed-print-photo{
  display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%;
}
.storefront-visual #catalog .product-grid{align-items:stretch}
.storefront-visual #catalog .product-card-bottom,
.storefront-visual #catalog .product-card:only-child .product-card-bottom{margin-top:auto;padding-top:8px}
