/* Product geometry is based on the equipment, not the original PNG canvas. */
.cp-product-frame {
  display: block;
  position: relative;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  container-type: size;
  background: transparent;
  border-radius: inherit;
}
.cp-product-subject {
  position: absolute;
  display: block;
  left: 50%;
  top: 16.6667%;
  width: min(80cqw, calc(66.6667cqh * var(--cp-aspect)));
  aspect-ratio: var(--cp-aspect);
  transform: translateX(-50%);
}
.cp-product-frame .cp-product-subject img[data-cp-image] {
  position: absolute !important;
  display: block !important;
  width: var(--cp-iw) !important;
  height: var(--cp-ih) !important;
  left: var(--cp-ix) !important;
  top: var(--cp-iy) !important;
  max-width: none !important;
  max-height: none !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: fill !important;
  border: 0 !important;
  border-radius: 0 !important;
  transform: none !important;
  filter: none !important;
  opacity: 1 !important;
  box-shadow: none !important;
}
.cp-card-image > .cp-product-frame { aspect-ratio: 16 / 9; }
:is(.product-media, .mega-image, .page-hero-media, .card-media, .family-image):has(> .cp-product-frame) {
  padding: 0 !important;
  background: transparent !important;
}
:is(.product-media, .family-image):has(> .cp-product-frame)::before { display: none; }
.pm-thumb .cp-product-frame { aspect-ratio: 1; }
.pm-gallery:has([data-pm-bounds]) { background: transparent; border: 1px solid #d5e1ed; }
.showcase-hero:has(> .cp-product-frame) {
  grid-template-rows: minmax(320px, 1fr) auto;
  align-content: stretch;
  background: transparent;
}
.showcase-hero:has(> .cp-product-frame)::after { display: none; }
.showcase-hero:has(> .cp-product-frame) .showcase-copy { background: var(--color-ink, #15323a); }
