/* Couple gallery — editorial photo story */
#couple-gallery {
  position: relative;
  overflow: hidden;
  padding: clamp(5rem, 10vw, 9rem) clamp(1rem, 5vw, 4rem);
  background: #fffaf3;
  color: #3b2229;
}
#couple-gallery::before { content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .5; background: repeating-linear-gradient(135deg, transparent 0 32px, rgba(155,77,55,.045) 33px 34px); }
.couple-gallery__heading { position: relative; z-index: 1; max-width: 42rem; margin: 0 auto clamp(2.5rem, 6vw, 4.5rem); text-align: center; }
.couple-gallery__eyebrow { margin: 0 0 .7rem; color: #a15d39; font: 800 .75rem/1 var(--font-body); letter-spacing: .2em; text-transform: uppercase; }
.couple-gallery__heading h2 { margin: 0; color: #71384b; font: 400 clamp(3.2rem, 8vw, 6.5rem)/.92 var(--font-display); }
.couple-gallery__heading h2 span { color: #c47f46; font-family: var(--font-script); }
.couple-gallery__intro { max-width: 32rem; margin: 1rem auto 0; color: #6a4d54; font: 1rem/1.6 var(--font-body); }
.couple-gallery__grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: clamp(1rem, 2vw, 1.6rem); width: min(100%, 1180px); margin: 0 auto; }
.couple-gallery__item { position: relative; min-width: 0; margin: 0; overflow: hidden; border: 1px solid rgba(113,56,75,.16); border-radius: 1.25rem; background: #fff; box-shadow: 0 16px 34px rgba(59,34,41,.14); }
.couple-gallery__item--hero, .couple-gallery__item--wide { grid-column: span 1; }
.couple-gallery__item img { display: block; width: 100%; height: auto; object-fit: contain; transition: transform .8s cubic-bezier(.16,1,.3,1); }
.couple-gallery__item figcaption { position: absolute; right: 1rem; bottom: 1rem; left: 1rem; z-index: 1; width: fit-content; max-width: calc(100% - 2rem); padding: .45rem .7rem; border-radius: .55rem; color: #fffaf3; background: rgba(24,15,20,.78); font: 700 clamp(.82rem, 1.4vw, 1.05rem)/1.2 var(--font-display); letter-spacing: .03em; pointer-events: none; }
@media (max-width: 760px) { .couple-gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .couple-gallery__grid { grid-template-columns: 1fr; } }
