.my-cms-scrolling-banner {
    --my-cms-scrolling-banner-background-color: #0073aa;
    --my-cms-scrolling-banner-text-color: #ffffff;
    align-items: stretch;
    background: var(--my-cms-scrolling-banner-background-color);
    box-sizing: border-box;
    color: var(--my-cms-scrolling-banner-text-color);
    display: flex;
    min-height: 42px;
    overflow: hidden;
    position: relative;
    width: 100%;
}

.my-cms-scrolling-banner--has-link .my-cms-scrolling-banner__viewport {
    padding-right: 50px;
}

.my-cms-scrolling-banner__viewport {
    align-items: center;
    display: flex;
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
}

.my-cms-scrolling-banner__track {
    align-items: center;
    animation: my-cms-scrolling-banner-marquee 16s linear infinite;
    display: inline-flex;
    flex: 0 0 auto;
    min-width: max-content;
    will-change: transform;
}

.my-cms-scrolling-banner:hover .my-cms-scrolling-banner__track,
.my-cms-scrolling-banner:focus-within .my-cms-scrolling-banner__track {
    animation-play-state: paused;
}

.my-cms-scrolling-banner__message {
    align-items: center;
    box-sizing: border-box;
    display: inline-flex;
    flex: 0 0 auto;
    min-height: 42px;
    padding: 8px 0;
    white-space: nowrap;
}

.my-cms-scrolling-banner__message p {
    margin: 0;
}

.my-cms-scrolling-banner__message,
.my-cms-scrolling-banner__message *,
.my-cms-scrolling-banner__link-icon,
.my-cms-scrolling-banner__link-icon * {
    color: var(--my-cms-scrolling-banner-text-color) !important;
}

.my-cms-scrolling-banner__message a {
    align-items: center;
    display: inline-flex;
}

.my-cms-scrolling-banner__link-icon {
    align-items: center;
    background: var(--my-cms-scrolling-banner-background-color);
    bottom: 0;
    display: inline-flex;
    flex: 0 0 auto;
    justify-content: center;
    position: absolute;
    right: 0;
    top: 0;
    width: 50px;
}

@keyframes my-cms-scrolling-banner-marquee {
    from {
        transform: translateX(100vw);
    }

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

@media (prefers-reduced-motion: reduce) {
    .my-cms-scrolling-banner__track {
        animation: none;
    }
}

@media (max-width: 760px) {
    .my-cms-scrolling-banner {
        min-height: 38px;
    }

    .my-cms-scrolling-banner__message {
        min-height: 38px;
        padding: 7px 0;
    }
}
