.site-logo__initials {
    background: rgba(31, 29, 26, 0.5);
}
.site-logo .site-logo__text {
    color: #fff;
}
.site-header.is-scrolled .site-logo .site-logo__text {
  color: var(--color-heading);
}
.hero { background: #e4e4e4; }
.hero::before { background: none; }
.hero::after { height: 20%;}
.hero__image, .hero__video {
    object-fit: contain;
    object-position: 88% center;
}
.hero__overlay { display: none; }
.hero .eyebrow, .hero__amp, .hero__subtitle, .hero__date {
    color: var(--color-heading);
}
.hero .eyebrow::before, .hero .eyebrow::after {
    background: linear-gradient(90deg, transparent, var(--color-heading), transparent);
}
.hero__amp {
    color: var(--color-muted);
}

.hero__title {
    color: var(--color-heading);
    text-shadow: none;
}
.btn-secondary {
    color: var(--color-heading);
    background: rgba(255, 255, 255, 1);
    border: 1px solid rgba(0, 0, 0, 0.24);
}

.hero__date {
    border: 1px solid rgba(0, 0, 0, 0.24);
    background: rgba(0, 0, 0, 0.05);
}

/* Feature additions inherit the original Modern Minimal palette and typography. */
.dress-code-samples { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dress-code-sample { min-width: 0; }
.playlist-player { border-radius: 24px; }
.playlist-player__art, .playlist-player__control, .playlist-player__utility { border-radius: 18px; }
.playlist-mobile-toggle { display: none; width: 100%; padding: 18px; color: var(--color-primary); background: var(--color-surface-alt); }
.site-footer { padding: 32px 24px; text-align: center; background: var(--color-surface-alt); color: var(--color-muted); font-size: .85rem; }
.site-footer a { color: var(--color-heading); }
@media (max-width: 680px) {
 .dress-code-samples { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .playlist-mobile-toggle { display: block; }
 .playlist-player:not(.is-mobile-expanded) .playlist-player__track:nth-child(n+4) { display: none; }
}

/* Mobile guest actions and swipeable gallery. */
.mobile-guest-actions, .gallery-slider-controls { display: none; }
@media (max-width: 680px) {
 body { padding-bottom: calc(86px + env(safe-area-inset-bottom, 0px)); }
 .mobile-guest-actions { position: fixed; z-index: 90; left: 10px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom, 0px)); display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 8px; border: 1px solid var(--color-border); border-radius: 16px; background: var(--color-bg); box-shadow: var(--shadow-card); }
 .mobile-guest-actions a { display: flex; align-items: center; justify-content: center; gap: 9px; min-height: 44px; border: 1px solid var(--color-border); border-radius: 10px; font-size: .75rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
 .mobile-guest-actions svg { width: 17px; height: 17px; fill: currentColor; }
 .mobile-guest-actions__directions { color: var(--color-primary); background: var(--color-surface-alt); }
 .mobile-guest-actions__rsvp { color: #fff; background: var(--color-primary); }
 .floating-controls { bottom: calc(94px + env(safe-area-inset-bottom, 0px)); }
 body.nav-open .mobile-guest-actions { visibility: hidden; }
 .gallery__grid { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 0; }
 .gallery__grid::-webkit-scrollbar { display: none; }
 .gallery__grid .gallery__item { flex: 0 0 100%; width: 100%; min-width: 0; height: 420px; max-height: 60vh; scroll-snap-align: start; scroll-snap-stop: always; opacity: 1; transform: none; visibility: visible; }
 .gallery__grid .gallery__item img { width: 100%; height: 100%; object-fit: cover; }
 .gallery__grid .gallery__item:hover img { transform: none; }
 .gallery-slider-controls { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 20px; }
 .gallery-slider-arrow { flex-shrink: 0; width: 44px; height: 44px; border-radius: 14px; color: #fff; background: var(--color-primary); font-size: 1.4rem; }
 .gallery-slider-pagination { display: flex; justify-content: center; flex-wrap: wrap; }
 .gallery-slider-dot { display: grid; place-items: center; width: 24px; height: 44px; background: transparent; }
 .gallery-slider-dot::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--color-muted); opacity: .35; }
 .gallery-slider-dot[aria-current="true"]::before { background: var(--color-primary); opacity: 1; transform: scale(1.3); }
 .gallery-slider-controls button:focus-visible, .mobile-guest-actions a:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 3px; }
}
@media (max-width: 680px) {
    .hero__video {
        object-fit: cover;
        object-position: center;
    }
    .hero__overlay { 
        display: block; 
        background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.7) 100%);
    }
}

@keyframes heroImageFloat {
    from {
        transform: scale(1);
        transform-origin: right center;
    }

    to {
        transform: scale(1.08);
        transform-origin: right center;
    }
}

/* Compact lists on every screen size. */
.playlist-mobile-toggle { display: block; }
.playlist-player:not(.is-mobile-expanded) .playlist-player__track:nth-child(n+4) { display: none; }
.entourage__grid:not(.is-expanded) .entourage-card:nth-child(n+5) { display: none; }
.entourage-toggle-wrap { text-align: center; margin-top: 28px; }
.entourage-toggle-wrap [hidden] { display: none; }
/* Crossfading portraits retain the original frame and proportions. */
.invitation-slider { position: relative; aspect-ratio: 4 / 5; border-radius: 24px; overflow: hidden; box-shadow: var(--shadow-card); }
.invitation-slider .invitation__image { position: absolute; inset: 0; display: block; width: 100%; height: 100%; margin: 0; opacity: 0; transition: opacity 1.1s ease; box-shadow: none; }
.invitation-slider .invitation__image.is-active { opacity: 1; }
.invitation-slider__controls { position: absolute; bottom: 14px; left: 14px; z-index: 2; display: flex; gap: 6px; }
.invitation-slider__controls button { min-width: 40px; min-height: 40px; padding: 8px 12px; border-radius: 12px; background: rgba(255, 255, 255, 0.5); color: var(--color-heading); border: 1px solid var(--color-border); font-size: .75rem; }
.invitation-slider__controls button:hover { background: rgba(255, 255, 255, 0.8); }
.invitation-slider__controls button:focus-visible, .playlist-mobile-toggle:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 3px; }
@media(prefers-reduced-motion: reduce) { .invitation-slider .invitation__image { transition: none; } }
