/* Shared promo bar: attached to header as one visual block */
.header-with-promo {
    position: relative;
    z-index: 200;
}

.top-promo-bar {
    background: linear-gradient(135deg, #273469 0%, #1a244d 100%);
    color: #ffffff;
    padding: 12px 0;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.3px;
    line-height: 1.4;
    position: relative;
    z-index: 1;
    overflow: hidden;
    white-space: nowrap;
    width: 100%;
    display: block;
}

/* Mobile/tablet: keep promo bar directly attached below fixed header */
.mobile-header + .top-promo-bar {
    margin-top: calc(var(--header-height, 102px) + 20px);
}

@media (max-width: 1023px) {
    .mobile-header + .top-promo-bar {
        min-height: 40px;
        padding: 10px 12px;
        display: flex;
        align-items: center;
        background: linear-gradient(135deg, #273469 0%, #1a244d 100%) !important;
        color: #ffffff !important;
        z-index: 90;
    }

    .mobile-header + .top-promo-bar .promo-scroll {
        display: inline-block;
        width: auto;
        animation: promo-scroll-left 70s linear infinite;
        white-space: nowrap;
        will-change: transform;
    }

    .mobile-header + .top-promo-bar .promo-scroll span {
        display: inline-block;
        padding-right: 50px;
    }
}

@media (min-width: 768px) and (max-width: 1279px) {
    .mobile-header + .top-promo-bar {
        margin-top: calc(var(--header-height, 102px) + 44px);
    }
}

/* Homepage mobile layout: promo bar is outside main, so remove duplicated header offset */
.header-with-promo + .mobile-main {
    padding-top: 12px;
}

.top-promo-bar .promo-scroll {
    display: inline-block;
    animation: promo-scroll-left 70s linear infinite;
    animation-play-state: running;
}

.top-promo-bar .promo-scroll span {
    display: inline-block;
    padding-right: 50px;
}

.top-promo-bar:hover .promo-scroll {
    animation-play-state: paused;
}

/* Touch devices can keep :hover stuck; never pause marquee there */
@media (hover: none) and (pointer: coarse) {
    .top-promo-bar:hover .promo-scroll {
        animation-play-state: running !important;
    }
}

/* Keep promo marquee moving even when global reduced-motion clamp is active */
@media (prefers-reduced-motion: reduce) {
    .top-promo-bar .promo-scroll {
        animation: promo-scroll-left 70s linear infinite !important;
        animation-play-state: running !important;
    }
}

@keyframes promo-scroll-left {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-50%);
    }
}
