.promo-banner{z-index:200;width:100%;font-family:var(--font-body);border-bottom:1px solid var(--border);font-size:.875rem;line-height:1.4;animation:.24s cubic-bezier(.22,1,.36,1) promo-slide-in;position:sticky;top:0;overflow:hidden}.promo-banner-inner{z-index:1;align-items:center;gap:12px;max-width:1200px;margin:0 auto;padding:10px clamp(16px,4vw,32px);display:flex;position:relative}.promo-banner-message{flex:1;align-items:center;min-width:0;font-weight:500;display:inline-flex}.promo-banner-text{min-width:0}.promo-banner-text strong{color:var(--ink);font-weight:700}.promo-banner--promo .promo-banner-text strong,.promo-banner--sale .promo-banner-text strong,.promo-banner--warning .promo-banner-text strong{color:inherit}.promo-banner-text .promo-banner-title{color:var(--ink);margin-right:4px;font-weight:700}.promo-banner--promo .promo-banner-text .promo-banner-title,.promo-banner--sale .promo-banner-text .promo-banner-title,.promo-banner--warning .promo-banner-text .promo-banner-title{color:inherit}.promo-banner-link{color:var(--accent-solid);text-underline-offset:2px;text-decoration:underline;text-decoration-thickness:1px;transition:color .14s}.promo-banner-link:hover{color:var(--accent-solid-hover)}.promo-banner--promo .promo-banner-link,.promo-banner--sale .promo-banner-link,.promo-banner--warning .promo-banner-link{color:inherit}.promo-banner-link:focus-visible{outline-offset:2px;border-radius:2px;outline:2px solid}.promo-banner-chip{font-family:var(--font-mono);color:var(--ink);background:var(--surface-raised);border:1px solid color-mix(in srgb, var(--stripe-color) 45%, var(--border));white-space:nowrap;border-radius:999px;margin:0 1px;padding:1px 7px;font-size:.8125rem;font-weight:600}.promo-banner-icon{color:var(--stripe-color);flex:none;margin-right:8px;display:inline-flex}.promo-banner-cta{white-space:nowrap;border-radius:var(--radius);background:var(--cta-bg);color:var(--cta-fg);padding:4px 12px;font-weight:600;text-decoration:none;transition:background .14s,transform .14s,box-shadow .14s;animation:3s ease-in-out infinite cta-breathe}.promo-banner-cta:hover{background:var(--cta-bg-hover);transform:translateY(-1px)}.promo-banner-cta:focus-visible{outline-offset:3px;border-radius:var(--radius);outline:2px solid}.promo-banner-close{cursor:pointer;border-radius:var(--radius);color:inherit;opacity:.65;background:0 0;border:0;justify-content:center;align-items:center;margin:-4px;padding:4px;transition:opacity .14s;display:inline-flex}.promo-banner-close:hover{opacity:1}.promo-banner-close:focus-visible{outline-offset:2px;opacity:1;outline:2px solid}.promo-banner:before{content:"";pointer-events:none;z-index:0;background:linear-gradient(100deg,#0000 30%,#ffffff47 50%,#0000 70%);animation:5s ease-in-out infinite shine-sweep;position:absolute;inset:0;transform:translate(-100%)}[data-theme=dark] .promo-banner:before{background:linear-gradient(100deg,#0000 30%,#ffffff1a 50%,#0000 70%)}.promo-banner--promo{color:#312e81;--stripe-color:#4f46e5;--cta-bg:#4f46e5;--cta-fg:#fff;--cta-bg-hover:#4338ca;--glow-color:#4f46e566;background:#e0e7ff}[data-theme=dark] .promo-banner--promo{color:#e0e7ff;--stripe-color:#818cf8;--cta-bg:#818cf8;--cta-fg:#1e1b4b;--cta-bg-hover:#fff;--glow-color:#818cf866;background:#1e1b4b}.promo-banner--sale{color:#9f1239;--stripe-color:#e11d48;--cta-bg:#e11d48;--cta-fg:#fff;--cta-bg-hover:#be123c;--glow-color:#e11d4866;background:#ffe4e6}[data-theme=dark] .promo-banner--sale{color:#ffe4e6;--stripe-color:#fda4af;--cta-bg:#fda4af;--cta-fg:#4c0519;--cta-bg-hover:#fff;--glow-color:#fda4af66;background:#4c0519}.promo-banner--info{background:var(--surface);color:var(--ink-secondary);--stripe-color:var(--accent-solid);--cta-bg:var(--accent-solid);--cta-fg:#fff;--cta-bg-hover:var(--accent-solid-hover);--glow-color:transparent}.promo-banner--info:before{display:none}.promo-banner--info .promo-banner-cta{animation:none}.promo-banner--warning{color:#78350f;--stripe-color:#d97706;--cta-bg:#d97706;--cta-fg:#fff;--cta-bg-hover:#b45309;--glow-color:#d9770666;background:#fef3c7}[data-theme=dark] .promo-banner--warning{color:#fef3c7;--stripe-color:#fcd34d;--cta-bg:#fcd34d;--cta-fg:#451a03;--cta-bg-hover:#fff;--glow-color:#fcd34d66;background:#451a03}.promo-banner--closing{pointer-events:none;animation:.24s cubic-bezier(.3,.8,.25,1) forwards promo-collapse!important}@keyframes promo-slide-in{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes promo-collapse{0%{opacity:1;border-bottom-width:1px;max-height:80px}30%{opacity:0}to{opacity:0;border-bottom-width:0;max-height:0;padding-top:0;padding-bottom:0}}@keyframes shine-sweep{0%{transform:translate(-100%)}60%{transform:translate(120%)}to{transform:translate(120%)}}@keyframes cta-breathe{0%{box-shadow:0 0 0 0 var(--glow-color)}60%{box-shadow:0 0 0 8px #0000}to{box-shadow:0 0 #0000}}@media (max-width:640px){.promo-banner-inner{gap:8px;padding:8px 12px;font-size:.8125rem}.promo-banner-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.promo-banner--info .promo-banner-inner{align-items:flex-start}.promo-banner--info .promo-banner-text{white-space:normal;-webkit-line-clamp:3;-webkit-box-orient:vertical;line-height:1.45;display:-webkit-box}.promo-banner--info .promo-banner-title{margin-right:0;display:block}.promo-banner-cta{flex:none;padding:4px 11px;font-size:.75rem}}@media (prefers-reduced-motion:reduce){.promo-banner,.promo-banner:before,.promo-banner-icon,.promo-banner-cta{transition:none!important;animation:none!important}}
