.gallery-intro__grid { display: grid; gap: 120px; grid-template-columns: .85fr 1.15fr; }
.gallery-intro h2 { max-width: 500px; }
.gallery-intro__grid > p { color: var(--ink-soft); font-size: 18px; margin: 34px 0 0; max-width: 580px; }
.gallery-grid { display: grid; gap: 18px; grid-template-columns: 1.05fr .95fr; }
.gallery-card { background: var(--cream); margin: 0; min-height: 430px; overflow: hidden; position: relative; }
.gallery-card--tall { grid-row: span 2; min-height: 878px; }
.gallery-card--wide { grid-column: 2; }
.gallery-card img { height: 100%; object-fit: cover; width: 100%; }
.gallery-card::after { background: linear-gradient(180deg, transparent 45%, rgba(17,45,42,.86)); content: ""; inset: 0; pointer-events: none; position: absolute; }
.gallery-card figcaption { bottom: 0; color: var(--white); display: flex; flex-direction: column; left: 0; padding: 28px; position: absolute; right: 0; z-index: 1; }
.gallery-card figcaption strong { font-family: var(--serif); font-size: 30px; font-weight: 500; letter-spacing: -.04em; }
.gallery-card figcaption span { color: rgba(255,255,255,.78); font-size: 13px; margin-top: 4px; }
.gallery-cta { background: var(--coral); color: var(--white); }
.gallery-cta__inner { align-items: end; display: flex; justify-content: space-between; }
.gallery-cta h2 { font-size: clamp(40px, 5vw, 62px); margin-bottom: 0; max-width: 620px; }
@media (max-width: 800px) {
  .gallery-intro__grid { gap: 45px; grid-template-columns: 1fr; }
  .gallery-intro__grid > p { margin-top: 0; }
  .gallery-grid { grid-template-columns: 1fr; }
  .gallery-card, .gallery-card--tall, .gallery-card--wide { grid-column: auto; grid-row: auto; min-height: 420px; }
  .gallery-cta__inner { align-items: flex-start; flex-direction: column; gap: 32px; }
}
@media (max-width: 520px) {
  .gallery-card, .gallery-card--tall, .gallery-card--wide { min-height: 330px; }
  .gallery-card figcaption { padding: 20px; }
}