/* Photograph-led layouts: retain the complete original frame at every width. */
.wide-image img,
.band-candid,
.gallery img {
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
}
.gallery {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: auto;
  align-items: start;
  gap: 24px;
}
.gallery-main {
  grid-row: auto;
  grid-column: 1 / -1;
}
.gallery figure { overflow: visible; }
.gallery figure:nth-child(4) {
  display: block;
  grid-column: 1 / -1;
  width: min(100%, 560px);
  justify-self: center;
}
.gallery figure:hover img { transform: none; }
.hero {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  align-items: center;
  min-height: min(900px, 100svh);
  padding: 130px 4vw 80px;
  gap: 3vw;
  overflow: visible;
}
.hero-copy {
  grid-column: 1;
  grid-row: 1;
  padding: 30px 0;
  width: auto;
  min-width: 0;
}
.hero h1 { font-size: clamp(3.5rem, 6.6vw, 7.5rem); }
.hero-image {
  position: static;
  grid-column: 2;
  grid-row: 1;
  width: 100%;
  height: auto;
  object-fit: contain;
  object-position: center;
}
.hero-shade { display: none; }
@media (max-width: 900px) {
  .hero {
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
    padding: 110px 24px 40px;
    gap: 24px;
  }
  .hero-copy { grid-column: 1; grid-row: 1; padding: 20px 0 0; }
  .hero-image { grid-column: 1; grid-row: 2; }
  .hero h1 { font-size: clamp(3.6rem, 12vw, 7rem); }
  .scroll-cue { display: none; }
}
@media (max-width: 560px) {
  .hero { padding: 92px 20px 30px; }
  .gallery { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; }
  .gallery-main, .gallery figure:nth-child(4) { grid-column: 1; }
}

/* Keep the logo inside the header. */
.brand { width: 62px; flex-shrink: 0; }
.contact { isolation: isolate; }
/* Two landscapes beside one portrait, with every original frame visible. */
.gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; }
.gallery .gallery-main { grid-column: 1; grid-row: 1; }
.gallery figure:nth-child(2) { grid-column: 1; grid-row: 2; }
.gallery figure:nth-child(3) { grid-column: 2; grid-row: 1 / 3; }
@media (max-width: 560px) {
  .brand { width: 52px; }
  .gallery { grid-template-columns: minmax(0, 1fr); }
  .gallery .gallery-main, .gallery figure:nth-child(2), .gallery figure:nth-child(3) { grid-column: 1; grid-row: auto; }
}

/* Viewports omit only empty PNG margins; the supplied artwork stays intact. */
.brand { width: 160px; }
.header-logo { display: block; width: 100%; height: auto; overflow: hidden; }
.contact-logo { display: block; width: 100%; height: auto; overflow: hidden; opacity: .65; }
@media (max-width: 900px) { .contact-logo { width: 180px; } }
@media (max-width: 560px) {
  .brand { width: 126px; }
  .contact-logo { display: none; }
}
