/* Public seasonal decoration is independent of the user's light/dark preference. */
html[data-seasonal-event] { --seasonal-accent: #b36be6; --seasonal-title-font: Creepster; --seasonal-body-font: Barlow; }
html[data-seasonal-event="christmas"] { --seasonal-accent: #dc3945; --seasonal-title-font: 'Mountains of Christmas'; --seasonal-body-font: Lora; }
html[data-seasonal-event="newyear"] { --seasonal-accent: #d6a540; --seasonal-title-font: Cinzel; --seasonal-body-font: Manrope; }
html[data-seasonal-event="easter"] { --seasonal-accent: #b869bd; --seasonal-title-font: 'Baloo 2'; --seasonal-body-font: Nunito; }
html[data-seasonal-event="blackweek"] { --seasonal-accent: #cf8b28; --seasonal-title-font: Anton; --seasonal-body-font: Barlow; }
html[data-seasonal-event="summer"] { --seasonal-accent: #da951b; --seasonal-title-font: Fredoka; --seasonal-body-font: Nunito; }
html[data-seasonal-event="backtoschool"] { --seasonal-accent: #438bb5; --seasonal-title-font: 'Bree Serif'; --seasonal-body-font: 'Source Sans 3'; }
html[data-seasonal-event] body, html[data-seasonal-event] p, html[data-seasonal-event] nav, html[data-seasonal-event] .site-nav, html[data-seasonal-event] .site-nav a, html[data-seasonal-event] footer { font-family: var(--seasonal-body-font), 'Open Sans', sans-serif; }
html[data-seasonal-event] h1, html[data-seasonal-event] h2, html[data-seasonal-event] h3, html[data-seasonal-event] h4, html[data-seasonal-event] .hero-slide-text .h1 { font-family: var(--seasonal-title-font), 'Open Sans', sans-serif; }
html[data-seasonal-event] input, html[data-seasonal-event] textarea, html[data-seasonal-event] select, html[data-seasonal-event] button, html[data-seasonal-event] .form-control, html[data-seasonal-event] [class*="price"], html[data-seasonal-event] .payment-checkout { font-family: Inter, 'Open Sans', Arial, sans-serif; font-variant-numeric: tabular-nums; }
html[data-seasonal-event] form, html[data-seasonal-event] form label, html[data-seasonal-event] form p, html[data-seasonal-event] .help-block { font-family: Inter, 'Open Sans', Arial, sans-serif; }
html[data-seasonal-event] .fa { font-family: FontAwesome; }
.seasonal-decoration { position: fixed; inset: 0; z-index: 90; pointer-events: none; overflow: hidden; contain: strict; color: var(--seasonal-accent); }
.seasonal-particles { position: absolute; inset: 0; opacity: .42; pointer-events: none; }
html[data-seasonal-event]:has(header .site-logo) .seasonal-decoration { --seasonal-header-bottom: 104px; }
.seasonal-corner { position: absolute; width: 155px; height: 180px; top: calc(var(--seasonal-header-bottom, 0px) + 8px); opacity: .82; pointer-events: none; }
.seasonal-corner-left { left: 0; }
.seasonal-corner-right { right: 0; transform: scaleX(-1); }
html[data-seasonal-event="halloween"] .seasonal-corner { opacity: .85; }
.seasonal-web { opacity: 1; }
.seasonal-moving { transform-box: fill-box; transform-origin: center top; }
.seasonal-spider-route { position: absolute; inset: 0; pointer-events: none; }
.seasonal-crawler { position: absolute; left: 0; top: 35%; width: 46px; height: 46px; opacity: 0; overflow: visible; pointer-events: none; }
.seasonal-crawler-legs { transform-box: view-box; transform-origin: 50% 50%; }
.seasonal-scene { --seasonal-scene-size: 88px; position: absolute; left: 0; bottom: max(5px, env(safe-area-inset-bottom)); width: var(--seasonal-scene-size); height: calc(var(--seasonal-scene-size) + 24px); transform: translateX(-400px); visibility: hidden; pointer-events: none; }
.seasonal-scene-actor { position: absolute; left: calc(var(--seasonal-scene-size) * -.5); bottom: 0; width: var(--seasonal-scene-size); height: var(--seasonal-scene-size); pointer-events: none; }
.seasonal-scene--halloween { width: calc(var(--seasonal-scene-size) * 4); }
.seasonal-scene--halloween .seasonal-scene-actor { left: 0; animation: seasonal-scene-hop 1.1s linear infinite paused; }
.seasonal-scene--halloween .seasonal-scene-spider { --seasonal-scene-hop: 3px; }
.seasonal-scene--halloween .seasonal-scene-zombie { --seasonal-scene-hop: 6px; left: calc(var(--seasonal-scene-size) * 1.5); animation-duration: 1.4s; }
.seasonal-scene--halloween .seasonal-scene-choupy { --seasonal-scene-hop: 18px; left: calc(var(--seasonal-scene-size) * 3); animation-duration: 1.9s; }
.seasonal-scene--christmas, .seasonal-scene--blackweek, .seasonal-scene--summer { --seasonal-scene-size: 128px; }
.seasonal-scene--summer:not([data-seasonal-scene-phase="surf"]) { --seasonal-scene-size: 88px; }
.seasonal-scene-sprite { display: block; width: 100%; height: 100%; background-size: 200% 200%; background-repeat: no-repeat; image-rendering: pixelated; filter: drop-shadow(0 2px 1px rgba(0,0,0,.2)); pointer-events: none; }
.seasonal-scene--halloween .seasonal-scene-sprite { animation: seasonal-scene-frames .48s steps(1, end) infinite paused; }
.seasonal-scene--halloween .seasonal-scene-zombie .seasonal-scene-sprite { animation-duration: .64s; }
.seasonal-scene--halloween .seasonal-scene-spider .seasonal-scene-sprite { animation-duration: .4s; }
.seasonal-scene--halloween .seasonal-scene-choupy .seasonal-scene-sprite { animation-duration: .48s; }
html[data-seasonal-event][data-seasonal-motion="playing"] .seasonal-scene[data-seasonal-scene-active="true"] { visibility: visible; }
html[data-seasonal-event="halloween"][data-seasonal-motion="playing"] .seasonal-scene[data-seasonal-scene-active="true"] .seasonal-scene-actor,
html[data-seasonal-event="halloween"][data-seasonal-motion="playing"] .seasonal-scene[data-seasonal-scene-active="true"] .seasonal-scene-sprite { animation-play-state: running; }
@keyframes seasonal-scene-frames { 0%, 100% { background-position: 0 0; } 25% { background-position: 100% 0; } 50% { background-position: 0 100%; } 75% { background-position: 100% 100%; } }
@keyframes seasonal-scene-hop { 0%, 60%, 100% { transform: translateY(0); } 78% { transform: translateY(calc(var(--seasonal-scene-hop) * -1)); } }
@media (max-width: 767px) { .seasonal-scene { --seasonal-scene-size: 54px; } .seasonal-scene--christmas, .seasonal-scene--blackweek, .seasonal-scene--summer { --seasonal-scene-size: 78px; } .seasonal-scene--halloween .seasonal-scene-choupy { --seasonal-scene-hop: 10px; } }
@media (max-width: 767px) { .seasonal-scene--summer:not([data-seasonal-scene-phase="surf"]) { --seasonal-scene-size: 54px; } }
@media (prefers-reduced-motion: reduce) { .seasonal-scene { display: none; } }
html[data-seasonal-event] .seasonal-hero-media { position: relative; }
.seasonal-hero-ornament { position: absolute; width: clamp(70px, 22%, 135px); height: auto; color: var(--seasonal-accent); opacity: .72; pointer-events: none; z-index: 1; }
.seasonal-hero-ornament-top { top: 0; right: 0; transform: scaleX(-1); }
.seasonal-hero-ornament-bottom { bottom: 0; left: 0; transform: scaleY(-1); }
html:not([data-seasonal-motion="playing"]) .seasonal-spider-route { visibility: hidden; }
@media (max-width: 767px) { .seasonal-crawler { width: 34px; height: 34px; } }
@media (prefers-reduced-motion: reduce) { .seasonal-spider-route { display: none; } }
.seasonal-theme-preview-control { box-sizing: border-box; position: fixed; right: 86px; bottom: 14px; z-index: 990; width: 250px; max-width: calc(100vw - 100px); padding: 8px 12px; border: 1px solid #ccd7df; border-radius: 12px; color: #233a52; background: #fff; box-shadow: 0 3px 12px rgba(0,0,0,.12); font-family: Inter, 'Open Sans', Arial, sans-serif; font-size: 12px; }
.seasonal-theme-preview-control label { display: block; margin: 0 0 4px; font-weight: 600; }
.seasonal-animation-preview { display: block; width: 100%; margin-bottom: 8px; color: inherit; background: inherit; border-color: inherit; font-family: inherit; }
.seasonal-animation-preview:focus-visible { outline: 3px solid var(--seasonal-accent, #5ccdde); outline-offset: 3px; }
.seasonal-animation-preview-status { display: block; margin: 0 0 8px; color: inherit; }
.seasonal-animation-preview-status[hidden] { display: none; }
.seasonal-theme-preview-control select { box-sizing: border-box; display: block; width: 100%; min-width: 0; padding: 5px 8px; border: 1px solid #ccd7df; border-radius: 6px; color: inherit; background: inherit; font-family: inherit; font-size: 12px; }
.seasonal-theme-preview-control select:focus-visible { outline: 3px solid var(--seasonal-accent, #5ccdde); outline-offset: 3px; }
html[data-seasonal-event] .seasonal-standalone-logo { display: block; width: min(220px, 70vw); height: 44px; object-fit: cover; object-position: center; margin: 0 auto 15px; }
html[data-seasonal-event] .site-logo img { object-fit: cover; object-position: center; width: 225px; height: 44px; aspect-ratio: 225 / 44; }
@media (min-width: 992px) and (max-width: 1414px) { html[data-seasonal-event] .site-logo img { width: 194px; height: 38px; } }
@media (max-width: 767px) { .seasonal-corner { width: 85px; height: 104px; opacity: .58; } .seasonal-corner-right { display: none; } .seasonal-theme-preview-control { bottom: 10px; right: 82px; max-width: calc(100vw - 92px); padding: 6px 10px; font-size: 11px; } }
@media (max-width: 767px) { html[data-seasonal-event="halloween"] .seasonal-corner { opacity: .68; } }
@media (prefers-reduced-motion: reduce) { .seasonal-particles { display: none; } }
html[data-seasonal-event]:not([data-seasonal-motion="playing"]) img[src^="/assets/frontend/img/seasonal/"].animation-pulse,
html[data-seasonal-event]:not([data-seasonal-motion="playing"]) img[src^="/assets/frontend/img/seasonal/"].logo-pulse { animation-play-state: paused !important; }
@media (prefers-reduced-motion: reduce) {
  html[data-seasonal-event] img[src^="/assets/frontend/img/seasonal/"].animation-pulse,
  html[data-seasonal-event] img[src^="/assets/frontend/img/seasonal/"].logo-pulse { animation-play-state: paused !important; }
}
@media print { .seasonal-decoration, .seasonal-theme-preview-control { display: none !important; } }
@media print { .seasonal-hero-ornament { display: none !important; } }
