/* Preserve the photographer's full composition in every placement. */
.hero-film {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  height: auto;
  align-items: start;
}
.hero-frame { display: block; overflow: visible; background: transparent; }
.hero-frame::after { display: none; }
.hero-frame > img,
.gallery-photo img,
.studio-image img,
.package-visual img {
  position: static;
  width: 100%;
  height: auto;
  max-width: 100%;
  object-fit: contain;
  object-position: center;
  transform: none;
}
.hero-frame > img { aspect-ratio: 2 / 3; }
.hero-frame:hover > img,
.gallery-photo:hover img { transform: none; filter: brightness(1.035); }
.hero-frame > img,
.gallery-photo img { transition: filter .4s ease; }
.photo-marker {
  position: static;
  margin-top: 10px;
  color: var(--ink);
  min-height: 26px;
}
.hero-caption { padding-top: 20px; border-top: 1px solid var(--line); margin-top: 14px; }
.gallery-photo,
.gallery-item:nth-child(3n) .gallery-photo { aspect-ratio: auto; }
.gallery-photo img { aspect-ratio: var(--image-ratio, 2 / 3); }
.studio-image { aspect-ratio: auto; background: transparent; }
.studio-image img { aspect-ratio: var(--image-ratio, 3 / 2); }
.studio-feature { align-items: center; }
.image-note {
  position: static;
  display: block;
  background: transparent;
  padding: 12px 0 0;
  line-height: 1.6;
}
.single-package { align-items: center; }
.package-visual { min-height: 0; align-self: center; overflow: visible; }
.package-visual img { aspect-ratio: var(--image-ratio, 2 / 3); }
.package-visual .image-note { padding: 12px 0 0; }
/* The stamp uses the original logo glyphs and colors, without blending or tinting. */
.frame-stamp {
  top: 18px;
  right: 18px;
  width: 44px;
  line-height: 0;
  mix-blend-mode: normal;
  pointer-events: none;
}
.frame-stamp img,
.hero-frame:hover .frame-stamp img {
  display: block;
  position: static;
  width: 100%;
  height: auto;
  aspect-ratio: 226 / 265;
  object-fit: contain;
  transform: none;
  filter: none;
  transition: none;
}
@media (max-width: 700px) {
  .frame-stamp { top: 12px; right: 12px; width: 32px; }
  .hero-film { grid-template-columns: repeat(2, minmax(0, 1fr)); height: auto; max-height: none; }
  .frame-three { display: none; }
  .photo-marker { font-size: 7px; letter-spacing: .04em; margin-top: 7px; gap: 8px; }
  .photo-marker b { font-size: 16px; }
  .hero-caption { margin-top: 10px; padding-top: 14px; }
  .studio-image { aspect-ratio: auto; }
  .package-visual { min-height: 0; }
}
