.ff-header__promo .ff-promo-bar__trigger { display: block; width: 100%; max-width: 100%; min-width: 0; text-align: center; }
.ff-promo-bar__viewport { display: block; max-width: 100%; overflow: hidden; }
.ff-promo-bar__track { display: inline-flex; align-items: center; }
.ff-promo-bar__text { flex: none; }
.ff-promo-bar__copy { display: none; }
.ff-promo-dialog {
    --promo-sage: #839181;
    --promo-ink: #39413b;
    --promo-paper: #fff;
    --promo-button: #f3f1f0;
    box-sizing: border-box;
    width: min(640px, calc(100vw - 32px));
    max-height: calc(100dvh - 40px);
    margin: auto;
    padding: 44px 44px 34px;
    border: 0;
    border-radius: 0;
    color: var(--promo-ink);
    background: var(--promo-paper);
    font: inherit;
    overflow-y: auto;
    box-shadow: 0 20px 80px #0003;
    overscroll-behavior: contain;
}
.ff-promo-dialog:not([open]) { display: none; }
.ff-promo-dialog::backdrop { background: rgba(20, 29, 23, .58); backdrop-filter: blur(3px); }
.ff-promo-dialog #ff-promo-title { margin: 0 22px 24px 0; font: inherit; font-size: 25px; font-weight: 500; line-height: 1.3; }
.ff-promo-dialog__body { font-size: 15px; line-height: 1.65; }
.ff-promo-dialog__body p { margin: 0 0 16px; }
.ff-promo-dialog__body ul { list-style: none; padding: 0; margin: 0 0 20px; }
.ff-promo-dialog__body li { margin-bottom: 5px; padding-left: 20px; position: relative; }
.ff-promo-dialog__body li::before { content: '—'; position: absolute; left: 0; }
.ff-promo-dialog .ff-promo-dialog__close { position: absolute; top: 10px; right: 10px; width: 38px; height: 38px; padding: 0; border: 0; background: transparent; color: var(--promo-sage); font: inherit; font-size: 32px; line-height: 1; cursor: pointer; }
.ff-promo-dialog .ff-promo-dialog__cta { display: block; text-align: center; margin-top: 25px; padding: 17px 12px; background: var(--promo-button); color: var(--promo-sage); font-size: 18px; line-height: 1.3; text-transform: uppercase; text-decoration: none; }
.ff-promo-dialog .ff-promo-dialog__cta:hover { background: #e8ece6; }
.ff-promo-dialog :focus-visible { outline: 2px solid var(--promo-sage); outline-offset: -3px; }
@media (max-width: 768px) {
    .ff-promo-bar__trigger.is-scrolling .ff-promo-bar__track { width: max-content; animation: ff-promo-scroll var(--promo-duration, 18s) linear infinite; }
    .ff-promo-bar__trigger.is-scrolling .ff-promo-bar__text { white-space: nowrap; padding-right: 48px; }
    .ff-promo-bar__trigger.is-scrolling .ff-promo-bar__copy { display: block; }
    .ff-promo-bar__trigger:focus-visible .ff-promo-bar__track { animation-play-state: paused; }
    .ff-promo-dialog { padding: 40px 23px 24px; max-height: calc(100dvh - 24px); }
    .ff-promo-dialog #ff-promo-title { font-size: 21px; margin-bottom: 20px; }
    .ff-promo-dialog__body { font-size: 14px; line-height: 1.6; }
    .ff-promo-dialog .ff-promo-dialog__cta { font-size: 16px; }
}
@keyframes ff-promo-scroll { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
    .ff-promo-bar__trigger.is-scrolling .ff-promo-bar__track { animation: none; width: auto; }
    .ff-promo-bar__trigger.is-scrolling .ff-promo-bar__text { white-space: normal; padding-right: 0; }
    .ff-promo-bar__trigger.is-scrolling .ff-promo-bar__copy { display: none; }
}
