.wedding-hero {
  position: relative;
  min-height: min(760px, calc(100svh - 74px));
  display: grid;
  align-items: end;
  overflow: hidden;
  color: var(--white);
  background: var(--night);
}
.wedding-hero-media,
.wedding-hero-scrim { position: absolute; inset: 0; }
.wedding-hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 58%; }
.wedding-hero-scrim { background: linear-gradient(90deg, rgba(11,7,14,.88) 0%, rgba(11,7,14,.58) 42%, rgba(11,7,14,.08) 76%), linear-gradient(0deg, rgba(11,7,14,.52), transparent 50%); }
.wedding-hero-inner { position: relative; z-index: 1; padding-block: clamp(58px, 8vw, 104px); }
.wedding-hero .breadcrumb { margin-bottom: 36px; color: rgba(255,255,255,.72); }
.wedding-hero .display-title { max-width: 780px; }
.wedding-hero .lead { max-width: 620px; color: rgba(255,255,255,.82); }
.wedding-hero .text-link { color: var(--white); }

.wedding-intro {
  display: grid;
  grid-template-columns: minmax(360px, .75fr) minmax(520px, 1.25fr);
  gap: clamp(46px, 8vw, 112px);
  align-items: center;
}
.wedding-intro-copy { max-width: 570px; }
.wedding-intro-copy .lead { margin-top: 24px; }
.wedding-intro-media { aspect-ratio: 4 / 5; }
.wedding-intro-media img { object-position: 50% 60%; }
.wedding-intro-note {
  margin-top: 32px;
  padding-left: 22px;
  border-left: 2px solid var(--accent);
  color: var(--muted);
  font-size: 13px;
}

.wedding-moments { padding-bottom: clamp(88px, 10vw, 140px); }
.moment-grid {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 20px;
  align-items: stretch;
}
.moment { position: relative; margin: 0; overflow: hidden; background: var(--night); }
.moment:first-child { min-height: 640px; }
.moment:last-child { min-height: 640px; }
.moment img { width: 100%; height: 100%; object-fit: cover; }
.moment:first-child img { object-position: 50% 56%; }
.moment:last-child img { object-position: 50% 65%; }
.moment figcaption {
  position: absolute;
  right: 18px;
  bottom: 18px;
  left: 18px;
  padding: 20px 22px;
  color: var(--white);
  background: rgba(14,10,17,.84);
}
.moment figcaption strong { display: block; font-family: var(--serif); font-size: 30px; font-weight: 400; line-height: 1; }
.moment figcaption span { display: block; margin-top: 8px; color: rgba(255,255,255,.7); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }

.review-feature {
  display: grid;
  grid-template-columns: minmax(460px, 1fr) minmax(420px, .9fr);
  gap: clamp(34px, 6vw, 80px);
  align-items: center;
}
.review-feature-media { aspect-ratio: 1 / 1; }
.review-feature-media img { object-position: 50% 50%; }
.review-feature-copy { padding-block: 20px; }
.review-stars { margin: 0 0 24px; color: var(--accent); font-size: 24px; letter-spacing: .16em; }
.review-feature blockquote { margin: 0; font-family: var(--serif); font-size: clamp(42px, 4.2vw, 64px); line-height: 1.02; }
.review-feature footer { margin-top: 28px; }
.review-feature footer strong { display: block; font-size: 14px; letter-spacing: .1em; text-transform: uppercase; }
.review-feature footer span { display: block; margin-top: 7px; color: var(--muted); font-size: 13px; }

.wedding-close {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 40px;
  align-items: center;
  padding-block: 46px;
  border-block: 1px solid var(--line);
}
.wedding-close p { margin: 0; font-family: var(--serif); font-size: clamp(30px, 3.5vw, 48px); line-height: 1.05; }
@media (max-width: 980px) {
  .wedding-intro { grid-template-columns: minmax(300px,.8fr) minmax(440px,1.2fr); gap: 40px; }
  .review-feature { grid-template-columns: 1fr 1fr; gap: 38px; }
  .moment:first-child,
  .moment:last-child { min-height: 540px; }
}

@media (max-width: 760px) {
  .wedding-hero { min-height: 720px; }
  .wedding-hero-media img { object-position: 62% 56%; }
  .wedding-hero-scrim { background: linear-gradient(0deg, rgba(10,6,13,.92) 0%, rgba(10,6,13,.55) 48%, rgba(10,6,13,.1) 78%); }
  .wedding-hero-inner { padding-block: 42px; }
  .wedding-hero .breadcrumb { margin-bottom: 22px; }
  .wedding-hero .display-title { font-size: clamp(54px, 15vw, 70px); }
  .wedding-intro { display: flex; flex-direction: column; gap: 34px; align-items: stretch; }
  .wedding-intro-media { order: -1; width: calc(100% + 40px); margin-left: -20px; aspect-ratio: 4 / 5; }
  .moment-grid { grid-template-columns: 1fr; }
  .moment:first-child { min-height: 560px; }
  .moment:last-child { min-height: 620px; }
  .review-feature { grid-template-columns: 1fr; gap: 30px; }
  .review-feature-media { width: calc(100% + 40px); margin-left: -20px; }
  .review-feature blockquote { font-size: 42px; }
  .wedding-close { grid-template-columns: 1fr; }
}

@media (max-width: 420px) {
  .wedding-hero { min-height: 680px; }
  .moment:first-child { min-height: 500px; }
  .moment:last-child { min-height: 560px; }
  .moment figcaption { right: 12px; bottom: 12px; left: 12px; }
}
