/* Each festival has four independently drawn characters in a 2 x 2 atlas. */
.seasonal-mascot {
    display: block;
    flex: 0 0 auto;
    width: var(--mascot-size, 116px);
    aspect-ratio: 1;
    background-image: var(--mascot-image);
    background-size: 200% 200%;
    background-repeat: no-repeat;
    background-position: var(--mascot-x, 0%) var(--mascot-y, 0%);
    pointer-events: none;
    filter: drop-shadow(0 6px 10px rgba(15,23,42,.14));
}
.seasonal-theme-halloween { --mascot-image:url('../images/decor/festival-halloween-v2.png?v=directional-1'); --decor-accent:#fb923c; }
.seasonal-theme-songkran { --mascot-image:url('../images/decor/festival-songkran-v2.png?v=directional-1'); --decor-accent:#38bdf8; }
.seasonal-theme-loykrathong { --mascot-image:url('../images/decor/festival-loykrathong-v2.png?v=directional-1'); --decor-accent:#fbbf24; }
.seasonal-theme-newyear { --mascot-image:url('../images/decor/festival-newyear-v2.png?v=directional-1'); --decor-accent:#c084fc; }
.seasonal-theme-christmas { --mascot-image:url('../images/decor/festival-christmas-v2.png?v=directional-1'); --decor-accent:#34d399; }
.seasonal-theme-chinese_newyear { --mascot-image:url('../images/decor/festival-chinese_newyear-v2.png?v=directional-1'); --decor-accent:#ef4444; }
.seasonal-theme-valentine { --mascot-image:url('../images/decor/festival-valentine-v2.png?v=directional-1'); --decor-accent:#f472b6; }
.seasonal-theme-vegetarian { --mascot-image:url('../images/decor/festival-vegetarian-v2.png?v=directional-1'); --decor-accent:#facc15; }
.seasonal-decoration { --mascot-size:116px; position:relative; pointer-events:none; user-select:none; }
.seasonal-size-small { --mascot-size:86px; }
.seasonal-size-large { --mascot-size:154px; }
.seasonal-corner { display:flex; padding:0 14px; margin-top:8px; }
.seasonal-side-right { justify-content:flex-end; }
.seasonal-side-left { justify-content:flex-start; }
.seasonal-between { display:flex; align-items:center; justify-content:center; gap:18px; margin:8px 0 16px; }
.seasonal-between::before,.seasonal-between::after {
    content:''; height:1px; width:clamp(40px,15vw,160px);
    background:linear-gradient(90deg,transparent,var(--home-card-border,rgba(148,163,184,.4)),transparent);
}
.seasonal-animated .seasonal-mascot { animation:seasonal-mascot-float 5s ease-in-out infinite; }
.seasonal-side-left.seasonal-animated .seasonal-mascot { animation-delay:-2.5s; }
@keyframes seasonal-mascot-float {
    0%,100% { transform:translateY(0) rotate(-2deg); }
    50% { transform:translateY(-6px) rotate(2deg); }
}
body.ls-motion-off .seasonal-mascot { animation:none; }
.ls-admin .seasonal-mascot.seasonal-preview { --mascot-size:44px; opacity:1; }
@media(max-width:767.98px) {
    .seasonal-hide-mobile { display:none; }
    .seasonal-decoration { --mascot-size:86px; }
    .seasonal-size-small { --mascot-size:68px; }
    .seasonal-size-large { --mascot-size:104px; }
}
@media(prefers-reduced-motion:reduce) { .seasonal-animated .seasonal-mascot { animation:none; } }

.seasonal-variant-0 { --mascot-x:0%; --mascot-y:0%; }
.seasonal-variant-1 { --mascot-x:100%; --mascot-y:0%; }
.seasonal-variant-2 { --mascot-x:0%; --mascot-y:100%; }
.seasonal-variant-3 { --mascot-x:100%; --mascot-y:100%; }


.seasonal-theme-halloween { --mascot-extra:url('../images/decor/festival-halloween-additional.png'); --classic-x:0%; --classic-y:0%; }
.seasonal-theme-songkran { --mascot-extra:url('../images/decor/festival-songkran-additional.png'); --classic-x:33.333333%; --classic-y:0%; }
.seasonal-theme-loykrathong { --mascot-extra:url('../images/decor/festival-loykrathong-additional.png'); --classic-x:66.666667%; --classic-y:0%; }
.seasonal-theme-newyear { --mascot-extra:url('../images/decor/festival-newyear-additional.png'); --classic-x:100%; --classic-y:0%; }
.seasonal-theme-christmas { --mascot-extra:url('../images/decor/festival-christmas-additional.png'); --classic-x:0%; --classic-y:100%; }
.seasonal-theme-chinese_newyear { --mascot-extra:url('../images/decor/festival-chinese_newyear-additional.png'); --classic-x:33.333333%; --classic-y:100%; }
.seasonal-theme-valentine { --mascot-extra:url('../images/decor/festival-valentine-additional.png'); --classic-x:66.666667%; --classic-y:100%; }
.seasonal-theme-vegetarian { --mascot-extra:url('../images/decor/festival-vegetarian-additional.png'); --classic-x:100%; --classic-y:100%; }
.seasonal-variant-4,.seasonal-variant-5,.seasonal-variant-6,.seasonal-variant-7 { background-image:var(--mascot-extra); }
.seasonal-variant-4 { --mascot-x:0%; --mascot-y:0%; }
.seasonal-variant-5 { --mascot-x:100%; --mascot-y:0%; }
.seasonal-variant-6 { --mascot-x:0%; --mascot-y:100%; }
.seasonal-variant-7 { --mascot-x:100%; --mascot-y:100%; }
.seasonal-variant-8 { background-image:url('../images/decor/festival-mascots-v1.png'); background-size:400% 200%; background-position:var(--classic-x) var(--classic-y); }

/* Chrome decorations occupy their own space beside the brand / above footer links. */
.seasonal-navbar-slot { flex:0 0 auto; }
.seasonal-navbar-slot .seasonal-decoration { --mascot-size:36px; display:flex; }
.seasonal-footer-slot .seasonal-decoration { --mascot-size:72px; display:flex; margin-bottom:8px; }
.seasonal-chrome::before,.seasonal-chrome::after { display:none; }
.seasonal-navbar-slot:has(.seasonal-hide-mobile),.seasonal-footer-slot:has(.seasonal-hide-mobile) { min-width:0; }
@media(max-width:767.98px) {
    .seasonal-navbar-slot .seasonal-decoration { --mascot-size:28px; }
    .seasonal-footer-slot .seasonal-decoration { --mascot-size:56px; }
    .seasonal-navbar-slot .seasonal-hide-mobile,.seasonal-footer-slot .seasonal-hide-mobile { display:none; }
}

.seasonal-embedded-host { position:relative; }
.seasonal-decoration.seasonal-embedded { position:absolute; display:block; margin:0; padding:0; z-index:1; line-height:0; pointer-events:none !important; }
.seasonal-embedded .seasonal-mascot { filter:drop-shadow(0 2px 3px rgba(15,23,42,.1)); }
.seasonal-embedded.seasonal-animated .seasonal-mascot { animation-name:seasonal-embedded-bob; }
@keyframes seasonal-embedded-bob { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }

/* Keep the navbar mascot outside the bordered menu, in a separate flex slot. */
html body.ls .floating-navbar-container:has(> .seasonal-navbar-slot) { display:flex; align-items:center; gap:8px; }
html body.ls .floating-navbar-container:has(> .seasonal-navbar-slot) > .custom-navbar { flex:1 1 auto; min-width:0; }
html body.ls .floating-navbar-container > .seasonal-navbar-slot { flex:0 0 44px; width:44px; pointer-events:none; }
html body.ls .floating-navbar-container > .seasonal-navbar-slot .seasonal-decoration { --mascot-size:44px; }
@media(max-width:767.98px) {
    html body.ls .floating-navbar-container > .seasonal-navbar-slot { flex-basis:28px; width:28px; }
    html body.ls .floating-navbar-container > .seasonal-navbar-slot .seasonal-decoration { --mascot-size:28px; }
    html body.ls .floating-navbar-container:has(> .seasonal-navbar-slot .seasonal-hide-mobile) { display:block; }
    html body.ls .floating-navbar-container > .seasonal-navbar-slot:has(.seasonal-hide-mobile) { display:none; }
}

html body.ls .floating-navbar-container > .seasonal-navbar-slot.seasonal-navbar-left { order:-1; }
