/* Preserve each source image at its native ratio at every viewport and browser zoom. */
img,
picture > img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto !important;
  max-height: none !important;
  object-fit: contain !important;
  object-position: center center !important;
  transform: none !important;
}

picture {
  display: block;
  max-width: 100%;
}

/* Let each photo frame follow its image instead of clipping the edges. */
.hero-image,
.detail-image,
.tile-photo,
.product-art-image,
.about-photo-frame,
.market-lifestyle-figure,
.approach-image,
.story-hero-visual,
.people-card {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  aspect-ratio: auto !important;
  overflow: visible !important;
}

.hero-image img,
.detail-image img,
.tile-photo img,
.product-art-image img,
.about-photo-frame img,
.market-lifestyle-figure img,
.approach-image img,
.story-hero-visual img,
.people-card img {
  position: static !important;
  inset: auto !important;
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  object-fit: contain !important;
  object-position: center center !important;
  transform: none !important;
}

video {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto !important;
  max-height: none !important;
  object-fit: contain !important;
  object-position: center center !important;
}

/* The homepage hero photo is the third background layer after two overlays. */
.home-page .hero::before {
  background-size: 100% 100%, 100% 100%, contain !important;
  background-position: center center, center center, center center !important;
  background-repeat: no-repeat !important;
  transform: none !important;
}

@media (max-width: 680px) {
  /* Scale the complete hero photo to viewport width, leaving overlays full-bleed. */
  .home-page .hero::before {
    background-size: 100% 100%, 100% 100%, 100% auto !important;
    background-position: center center, center center, center bottom !important;
  }

  .home-page .hero {
    height: auto !important;
    max-height: none !important;
  }
}
