/* Product image stages share the page background, including before decoding. */
#catalog-browser .catalog-cover,
#catalog-browser .catalog-card { background: var(--bone, #F4F1EB); }
#catalog-browser .catalog-cover { aspect-ratio: 4 / 3; }
#catalog-browser .catalog-cover img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: opacity .24s ease, transform .6s ease;
}
#catalog-browser img.catalog-image-pending { opacity: 0; }
#catalog-browser .catalog-image-error { display: grid; place-items: center; }
#catalog-browser .catalog-image-error img { display: none; }
#catalog-browser .catalog-image-error::after {
  content: 'Фото временно недоступно';
  font-size: 13px;
  color: #62655d;
  text-align: center;
}
@media (prefers-reduced-motion: reduce) {
  #catalog-browser .catalog-cover img { transition: none; }
}

/* Normalize supplier cutouts to the visible object, preserving original pixels. */
#catalog-browser .catalog-card-cutout .catalog-cover { aspect-ratio: 4 / 3; }
#catalog-browser .catalog-cutout-stage { position: absolute; inset: 8px 8px 28px; overflow: hidden; }
#catalog-browser .catalog-cutout-stage img {
  position: absolute; left: 50%; top: var(--cutout-top, 0%);
  width: auto; height: var(--cutout-height, 100%); max-width: none;
  padding: 0; transform: translateX(var(--cutout-center, -50%));
}
#catalog-browser .catalog-sku-overlay { position: absolute; left: 8px; right: 8px; bottom: 4px; margin: 0; font-size: 12px; line-height: 1.2; letter-spacing: .01em; color: #111417; overflow-wrap: anywhere; background: var(--bone, #F4F1EB); width: fit-content; max-width: calc(100% - 16px); }
@media (max-width: 600px) {
  #catalog-browser .catalog-cutout-stage { inset: 6px 4px 28px; }
  #catalog-browser .catalog-sku-overlay { left: 4px; right: 4px; max-width: calc(100% - 8px); font-size: 10px; }
}
