.wedding-film-opening { background: var(--ivory); }
.wedding-film-frame { width: 100%; aspect-ratio: 16 / 9; background: #171412; }
.wedding-film-frame iframe { display: block; width: 100%; height: 100%; border: 0; }
.wedding-film-credit { margin: 0; padding: 14px 20px 0; text-align: center; font-size: 12px; line-height: 1.6; color: var(--muted); }
.wedding-film-credit a { text-underline-offset: 4px; text-decoration-thickness: 1px; }
.wedding-film-transition { text-align: center; padding: clamp(30px, 4vw, 54px) 22px 20px; }
.wedding-film-transition .eyebrow { margin-bottom: 14px; }
.wedding-film-transition h1 { max-width: 940px; margin: 0 auto 19px; font-size: clamp(34px, 4.2vw, 58px); line-height: 1.15; text-wrap: balance; }
.wedding-film-transition > p:not(.eyebrow) { max-width: 710px; margin: 0 auto; font-size: clamp(16px, 1.45vw, 19px); color: var(--muted); }
.wedding-film-scroll { display: inline-block; margin-top: 22px; padding: 8px 0; font-size: 11px; font-weight: 600; letter-spacing: .17em; text-decoration: none; color: var(--muted); }
.wedding-film-scroll:hover { color: var(--espresso); }
.wedding-film-scroll:focus-visible { outline: 2px solid var(--gold); outline-offset: 5px; }
.wedding-story { width: min(1200px, calc(100% - clamp(44px, 10vw, 144px))); margin: 0 auto; scroll-margin-top: 100px; }
.wedding-story-section { display: grid; grid-template-columns: minmax(0,1.08fr) minmax(0,.92fr); align-items: center; gap: clamp(30px, 5vw, 76px); padding: clamp(32px,4vw,52px) 0; }
.wedding-story-section + .wedding-story-section { border-top: 1px solid rgba(36,25,20,.1); }
.wedding-story-media { margin: 0; min-width: 0; }
.wedding-story-media img { display: block; width: 100%; height: auto; }
.wedding-story-section:nth-child(6) .wedding-story-media { position: relative; width: 100%; max-width: 440px; justify-self: center; aspect-ratio: 960 / 1707; overflow: hidden; }
.wedding-story-section:nth-child(6) .wedding-story-media img { position: absolute; inset: 0 auto auto 0; transform: translateY(-8.94661%); }
.wedding-story-section:not(.landscape):nth-child(1) .wedding-story-media,
.wedding-story-section:not(.landscape):nth-child(3) .wedding-story-media { max-width: 440px; width: 100%; justify-self: center; }
.wedding-story-section.reverse .wedding-story-media { order: 2; }
.wedding-story-copy { min-width: 0; }
.wedding-story-copy h2 { font-size: clamp(32px,3.4vw,48px); line-height: 1.15; margin: 0 0 22px; text-wrap: balance; }
.wedding-story-copy > p:not(.eyebrow) { font-size: 17px; color: var(--muted); }
.wedding-story-copy .wedding-story-detail { padding-top: 18px; margin-top: 24px; border-top: 1px solid rgba(36,25,20,.15); font-size: 14px !important; line-height: 1.75; }
.wedding-planning { background: rgba(228,211,180,.24); padding-block: clamp(36px,4.5vw,60px); }
.wedding-planning h2, .wedding-questions h2 { font-size: clamp(32px,3.5vw,48px); line-height: 1.15; margin-bottom: 28px; }
.wedding-planning-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 30px; }
.wedding-planning-grid h3 { font-size: 23px; line-height: 1.3; margin: 0 0 12px; }
.wedding-planning-grid p { margin: 0; color: var(--muted); font-size: 15px; }
.wedding-questions { padding-block: clamp(36px,4.5vw,60px); }
.wedding-inquiry { text-align: center; background: var(--espresso); color: var(--white); padding-block: clamp(42px,5vw,68px); }
.wedding-inquiry h2 { font-size: clamp(36px,4.5vw,60px); line-height: 1.15; margin-bottom: 20px; }
.wedding-inquiry > p:not(.eyebrow) { max-width: 660px; margin-inline: auto; color: rgba(255,250,242,.8); }
.wedding-inquiry .actions { justify-content: center; margin-top: 26px; }
.wedding-inquiry .btn.primary { background: var(--champagne); color: var(--espresso); }
@media (max-width: 760px) {
  .wedding-story { width: calc(100% - 44px); }
  .wedding-story-section { grid-template-columns: 1fr; gap: 24px; padding: 30px 0; }
  .wedding-story-section.reverse .wedding-story-media { order: 0; }
  .wedding-story-copy h2 { margin-bottom: 16px; }
  .wedding-story-copy > p:not(.eyebrow) { font-size: 16px; }
  .wedding-story-copy .wedding-story-detail { margin-top: 19px; padding-top: 15px; }
  .wedding-planning-grid { grid-template-columns: 1fr; gap: 26px; }
  .wedding-film-transition { padding-top: 28px; padding-bottom: 8px; }
  .wedding-film-credit { padding-inline: 18px; font-size: 11px; }
}
@media (max-width: 480px) {
  .wedding-film-transition h1 { font-size: 34px; }
  .wedding-inquiry .actions { flex-direction: column; align-items: stretch; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
