.gallery-page .nav { background: var(--forest); }
.gallery-hero {
  padding: 145px 0 82px;
  color: var(--white);
  background: radial-gradient(ellipse at top right, #42654e 0, transparent 60%), var(--forest);
  text-align: center;
}
.gallery-hero h1 { font: 700 clamp(2.7rem, 6vw, 4.8rem)/1.12 'Playfair Display', serif; }
.gallery-hero h1 em { color: var(--gold-light); font-style: normal; }
.gallery-hero p { max-width: 540px; margin: 24px auto 0; color: #e0e7e1; line-height: 1.8; }
.gallery-section { background: #fff; }
.gallery-intro { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 36px; }
.gallery-eyebrow { display: block; color: #896125; font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .16em; margin-bottom: 12px; }
.gallery-intro h2, .gallery-cta h2 { color: var(--forest); font: 700 clamp(1.8rem, 3vw, 2.5rem)/1.25 'Playfair Display', serif; }
.gallery-intro p { color: var(--muted); line-height: 1.7; }
.gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.gallery-grid:empty { display: none; }
.gallery-grid figure { margin: 0; }
.gallery-grid img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; border-radius: 16px; }
.gallery-grid figcaption { padding: 12px 0; color: var(--muted); line-height: 1.5; }
.gallery-cta { padding: 64px 0 72px; background: var(--cream); text-align: center; }
.gallery-cta p { color: var(--muted); margin: 18px 0 26px; line-height: 1.7; }
.gallery-page a:focus-visible, .gallery-page button:focus-visible { outline: 3px solid var(--gold-light); outline-offset: 5px; }
@media (max-width: 768px) {
  .gallery-hero { padding: 124px 0 64px; }
  .gallery-intro { flex-direction: column; align-items: flex-start; }
  .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
}
@media (max-width: 480px) {
  .gallery-grid { grid-template-columns: 1fr; }
}

.gallery-grid a { display: block; border-radius: 16px; overflow: hidden; box-shadow: var(--shadow-card); }
