/* Scoped patch: append after existing gallery/reference styles.
 * Presentation only: no DOM, image source, order, visibility or handler changes.
 */
.zone-full-container:has(.zone-grid) .zone-grid > .zone-card > .zone-img-wrapper {
  box-sizing: border-box;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  aspect-ratio: 4 / 5 !important;
  padding: 0 !important;
  overflow: hidden;
  position: relative;
}
.zone-full-container:has(.zone-grid) .zone-grid > .zone-card > .zone-img-wrapper > img.zone-img {
  position: absolute !important;
  inset: 0 !important;
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: contain !important;
  object-position: center center !important;
}
/* :has isolates LOOKBOOK, which shares zone header classes with ZONE.
 * Do not set display/visibility on the shared container or any descendants:
 * JPG save controls, filenames and the Instagram paragraph stay hidden.
 */
.zone-full-container:has(.lookbook-grid) .zone-header-wrapper,
.zone-full-container:has(.lookbook-grid) .zone-main-title,
.zone-full-container:has(.lookbook-grid) .zone-subtitle,
.zone-full-container:has(.lookbook-grid) .lookbook-notice-text,
.zone-full-container:has(.lookbook-grid) .lookbook-info,
.zone-full-container:has(.lookbook-grid) .lookbook-name,
.zone-full-container:has(.lookbook-grid) .lookbook-size {
  text-align: center !important;
}
