/* Full-width, continuous promotion strip immediately below the navigation. */
.promotion-marquee { position: relative; width: 100%; margin-top: max(0px, calc(var(--promotion-nav-height, 100px) - 80px)); background: #0d0d0d; }
.promotion-viewport { width: 100%; height: 100px; overflow-x: auto; overflow-y: hidden; }
.promotion-track { display: flex; width: max-content; height: 100%; }
.promotion-group { display: flex; flex: none; height: 100%; }
.promotion-banner { position: relative; flex: 0 0 auto; width: var(--promotion-width, 100vw); height: 100px; overflow: hidden; }
.promotion-banner picture { display: block; width: 100%; height: 100%; }
.promotion-image { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.promotion-banner::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.85), transparent 85%); pointer-events: none; }
.promotion-caption { position: absolute; z-index: 1; bottom: 12px; left: max(24px, 6%); right: max(150px, 12%); color: white; }
.promotion-caption h2 { color: white; font-size: clamp(1rem, 2vw, 1.4rem); margin: 0 0 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.promotion-caption p { margin: 0 0 6px; font-size: .85rem; line-height: 1.4; max-width: 760px; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1; overflow: hidden; }
.promotion-caption .btn-gold { display: inline-flex; max-width: 100%; box-sizing: border-box; padding: 5px 12px; font-size: .8rem; line-height: 1.4; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.promotion-viewport:focus-visible, .promotion-caption a:focus-visible { outline: 3px solid var(--signature-gold); outline-offset: -3px; }
.promotion-marquee.is-moving .promotion-viewport { overflow-x: hidden; }
.promotion-marquee.is-moving .promotion-track { animation: promotion-scroll var(--promotion-duration, 30s) linear infinite; }
.promotion-marquee.is-touching .promotion-track,
.promotion-viewport:focus-visible .promotion-track,
.promotion-viewport:has(a:focus-visible) .promotion-track { animation-play-state: paused; }
@media (hover: hover) and (pointer: fine) {
    .promotion-marquee:hover .promotion-track { animation-play-state: paused; }
}
@keyframes promotion-scroll { to { transform: translateX(-50%); } }
@media (max-width: 767px) {
    .promotion-caption { left: 16px; right: 16px; bottom: 10px; }
    .promotion-caption p { font-size: .8rem; }
}
@media (prefers-reduced-motion: reduce) {
    .promotion-marquee.is-moving .promotion-track { animation: none; }
    .promotion-marquee.is-moving .promotion-viewport { overflow-x: auto; }
    .promotion-group[aria-hidden] { display: none; }
}


