.wedding-banner { max-width: 1600px; margin: 0 auto; }
.wedding-banner > .image { margin: 0; display: block; }
.wedding-banner > .image img { display: block; width: 100%; height: auto; }
.wedding-banner .content { padding: 3rem 1.5rem; }
.wedding-banner .actions { margin-bottom: 0; }
.wedding-scene { padding-bottom: 4rem; }
.wedding-scene > .inner { padding: 4rem 2rem 2rem; }
.wedding-scene h2 { margin-bottom: 0; }
.gallery.wedding-gallery { max-width: 1400px; margin: 0 auto; padding: 0 2rem; }
.gallery.wedding-gallery > .inner { display: grid; width: 100%; gap: 1.5rem; align-items: start; }
.gallery.wedding-gallery.three-columns > .inner { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gallery.wedding-gallery.two-columns > .inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gallery.wedding-gallery article { width: 100%; }
.gallery.wedding-gallery article .image img { height: auto; }
.gallery.wedding-gallery article .image:focus-visible { outline: 3px solid #555; outline-offset: -3px; }
.theme-credit { font-size: 0.8rem; }
@media (max-width: 736px) {
    .gallery.wedding-gallery.three-columns > .inner,
    .gallery.wedding-gallery.two-columns > .inner { grid-template-columns: minmax(0, 1fr); }
    .gallery.wedding-gallery { padding: 0 1rem; }
    .wedding-scene { padding-bottom: 2.5rem; }
    .wedding-scene > .inner { padding: 2.5rem 1rem 1.5rem; }
    .wedding-banner .content { padding: 2rem 1rem; }
}
@media (prefers-reduced-motion: reduce) {
    .gallery.wedding-gallery article .image img { transition: none !important; opacity: 1 !important; }
}
