.hero-photo {
  min-height: 520px;
  overflow: hidden;
  position: relative;
}
.hero-tagline {
  color: #b8d4df;
  font-family: "Fraunces", serif;
  font-size: clamp(22px, 2.2vw, 32px);
  line-height: 1.2;
  margin: 28px 0 0;
}
.hero-photo > img {
  height: 100%;
  inset: 0;
  object-fit: cover;
  position: absolute;
  width: 100%;
}
.gallery { background: #fff; }
.gallery-heading {
  align-items: end;
  display: grid;
  gap: 60px;
  grid-template-columns: 1.25fr .75fr;
  margin-bottom: 45px;
}
.gallery-heading > p { margin: 0; }
.photo-grid {
  display: grid;
  gap: 16px;
  grid-auto-rows: 390px;
  grid-template-columns: repeat(3, 1fr);
}
.photo-grid figure {
  background: var(--navy);
  margin: 0;
  overflow: hidden;
  position: relative;
}
.photo-grid .photo-wide { grid-column: span 2; }
.photo-grid .open-air-feature { grid-column: 1 / -1; }
.photo-grid img {
  height: 100%;
  object-fit: cover;
  transition: transform .5s ease;
  width: 100%;
}
.photo-grid figure:hover img { transform: scale(1.025); }
.photo-grid .guest-photo { background: #17324a; }
.photo-grid .guest-photo img {
  object-fit: contain;
}
.photo-grid .guest-photo:hover img { transform: none; }
.photo-grid .projector-photo { background: #101b21; }
.photo-grid .projector-photo img {
  object-fit: contain;
  padding: 14px;
}
.photo-grid .projector-photo:hover img { transform: none; }
.photo-grid .table-inventory { background: #17324a; }
.photo-grid .table-inventory img { object-fit: contain; }
.photo-grid .table-inventory:hover img { transform: none; }
.photo-grid .equipment-pair {
  background: #17324a;
  display: grid;
  grid-template-columns: 1fr 1fr;
  height: 100%;
}
.photo-grid .equipment-pair img { min-width: 0; }
.photo-grid .equipment-pair img:last-child { object-fit: contain; }
.photo-grid .equipment-combo:hover img { transform: none; }
.photo-grid figcaption {
  background: linear-gradient(transparent, #0c1f2ddd);
  bottom: 0;
  color: white;
  display: flex;
  flex-direction: column;
  left: 0;
  padding: 55px 22px 20px;
  position: absolute;
  right: 0;
}
.photo-grid figcaption strong {
  font-family: "Fraunces";
  font-size: 22px;
}
.photo-grid figcaption span {
  color: #e1e9ed;
  font-size: 13px;
}
@media (max-width: 850px) {
  .hero-photo { min-height: 500px; }
  .gallery-heading { gap: 20px; grid-template-columns: 1fr; }
  .photo-grid { grid-auto-rows: 360px; grid-template-columns: 1fr 1fr; }
  .photo-grid .photo-wide { grid-column: span 2; }
}
@media (max-width: 520px) {
  .photo-grid { grid-auto-rows: 380px; grid-template-columns: 1fr; }
  .photo-grid .photo-wide { grid-column: auto; }
}
.story-card {
  display: grid;
  gap: 34px;
  grid-template-columns: minmax(180px, .62fr) 1.38fr;
}
.owner-photo {
  align-items: center;
  background: #17324a;
  display: flex;
  min-height: 520px;
  overflow: hidden;
}
.owner-photo img {
  height: auto;
  object-fit: contain;
  width: 100%;
}
@media (max-width: 1150px) {
  .story-card { grid-template-columns: 1fr; }
  .owner-photo { min-height: 430px; }
}
@media (max-width: 520px) {
  .owner-photo { min-height: 380px; }
}
