/* BoldTeeHub Seasonal Skins — shared chrome.
   Loaded ONLY while a season is active; the off-season site ships the
   stock stylesheet alone, byte for byte. Every rule is scoped under
   body.bth-season-active so nothing here can leak into the stock look.
   Skin-specific colors arrive as --bth-season-* variables, set either by
   a built skin's own stylesheet or inline from settings (token slots). */

body.bth-season-active{
    --bth-season-accent:#ffd413;
    --bth-season-accent-2:#f22219;
    --bth-season-tint:#171717;
}

/* Seasonal banner strip (server-rendered under the utility bar: no CLS) */
.bth-season-banner{
    background:var(--bth-season-accent);
    color:#0b0b0b;
    font-size:13px;
    font-weight:750;
    letter-spacing:.4px;
}
.bth-season-banner-inner{
    display:flex;align-items:center;justify-content:space-between;gap:20px;
    padding-top:10px;padding-bottom:10px;
}
.bth-season-banner a{
    color:inherit;text-decoration:underline;text-underline-offset:4px;white-space:nowrap;
}
.bth-season-banner a:hover{color:inherit;opacity:.75}

/* Dressing hooks shared by every skin */
body.bth-season-active .bth-eyebrow{color:var(--bth-season-accent-2)}
body.bth-season-active .onsale{background:var(--bth-season-accent);color:#0b0b0b}
body.bth-season-active .bth-term-card:hover .bth-term-image{border-color:var(--bth-season-accent)}
body.bth-season-active .bth-holidays a .bth-icon{color:var(--bth-season-accent)}
body.bth-season-active .bth-hero-art:before{background:radial-gradient(ellipse,var(--bth-season-tint),transparent 70%)}

/* Footer scene: decorative, in-flow above the footer, never overlays it */
.bth-season-scene{line-height:0;margin-top:56px;pointer-events:none}
.bth-season-scene svg{display:block;width:100%;height:auto}

/* Christmas lights: a gentle twinkle, never a strobe */
.bth-season-scene .bth-bulb{animation:bth-twinkle 2.8s ease-in-out infinite}
.bth-season-scene .bth-bulb:nth-child(2n){animation-delay:.7s}
.bth-season-scene .bth-bulb:nth-child(3n){animation-delay:1.3s}
.bth-season-scene .bth-bulb:nth-child(4n){animation-delay:1.9s}
@keyframes bth-twinkle{0%,100%{opacity:.45}50%{opacity:1}}

/* Falling snow layer (christmas): JS-built flakes over a fixed,
   click-through sheet. No layout impact, removed for reduced motion. */
.bth-snow{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:55}
.bth-snow i{
    position:absolute;top:-4vh;border-radius:50%;
    background:#fff;opacity:.85;
    animation-name:bth-fall;animation-timing-function:linear;animation-iteration-count:infinite;
}
@keyframes bth-fall{to{transform:translate3d(var(--bth-sway,24px),110vh,0)}}

/* Valentine's: hearts breathe a little */
.bth-season-scene .bth-heart-float{animation:bth-float 5.5s ease-in-out infinite}
.bth-season-scene .bth-heart-float:nth-child(2n){animation-delay:1.4s}
.bth-season-scene .bth-heart-float:nth-child(3n){animation-delay:2.6s}
@keyframes bth-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}

/* Halloween: bats bob, nothing jumps out */
.bth-season-scene .bth-bat{animation:bth-bob 4.5s ease-in-out infinite}
.bth-season-scene .bth-bat:nth-child(2n){animation-delay:1.6s}
@keyframes bth-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}

@media (prefers-reduced-motion: reduce){
    body.bth-season-active .bth-season-scene .bth-bulb,
    body.bth-season-active .bth-season-scene .bth-heart-float,
    body.bth-season-active .bth-season-scene .bth-bat{animation:none}
    .bth-snow{display:none}
}

@media (max-width:820px){
    .bth-season-banner{font-size:11px}
    .bth-season-banner-inner{padding-top:8px;padding-bottom:8px;gap:12px}
    .bth-season-scene{margin-top:36px}
}
