body[data-season="christmas"]{--xmas-gold:#eac784;background-image:radial-gradient(ellipse at 90% 0,rgba(25,91,66,.13),transparent 45%)}
.christmas-decor{pointer-events:none!important;position:absolute;inset:0 0 auto;height:min(230px,32vh);overflow:hidden;z-index:30;contain:layout paint}
.christmas-decor *{pointer-events:none!important}
.xmas-lights{position:absolute;top:-6px;left:0;width:100%;height:25px;display:flex;justify-content:space-around;border-top:2px solid #285442;filter:drop-shadow(0 2px 5px #0008)}
.xmas-lights i{position:relative;display:block;width:7px;height:12px;margin-top:var(--drop);border-radius:3px 3px 60% 60%;background:var(--bulb);box-shadow:0 0 9px 2px color-mix(in srgb,var(--bulb) 42%,transparent);animation:xmas-glow 4s ease-in-out infinite alternate;animation-delay:calc(var(--i)*-.23s)}
.xmas-lights i:before{content:"";position:absolute;bottom:100%;left:2px;width:3px;height:9px;background:#345943}
@keyframes xmas-glow{to{opacity:.55;box-shadow:0 0 4px var(--bulb)}}
.xmas-ornaments{position:absolute;right:12px;top:8px;width:156px;height:205px;display:flex;align-items:flex-start;filter:drop-shadow(0 5px 8px #0006)}
.xmas-ornament{flex:none;transform-origin:50% 0;animation:xmas-bob 8s ease-in-out infinite}
.xmas-ornament svg{display:block;width:100%;height:auto;overflow:visible}
.ornament-left{width:45px;animation-delay:.65s;animation-duration:8.4s;margin-top:12px}
.ornament-center{width:68px;z-index:1;animation-delay:0s}
.ornament-right{width:43px;animation-delay:1.25s;animation-duration:8.8s;margin-top:24px}
@keyframes xmas-bob{0%,100%{transform:translateY(-18px) rotate(-2deg)}45%,55%{transform:translateY(12px) rotate(2deg)}}
.xmas-parade{position:absolute;left:0;top:35px;width:min(590px,108vw);height:145px;transform:translateX(-110%);animation:xmas-crossing 26s linear infinite;animation-delay:2s;will-change:transform;filter:drop-shadow(0 3px 8px #0005)}
.xmas-sleigh{position:absolute;left:0;top:22%;width:67%;animation:xmas-float 2.2s ease-in-out infinite alternate}
.xmas-sleigh svg{display:block;width:100%}
.xmas-gust{position:absolute;right:0;top:0;width:43%;height:85%;color:#e2f8ff}
.xmas-wind{position:absolute;width:100%;height:100%;fill:none;stroke:#d7f5ff;stroke-width:1.6;opacity:.35;stroke-linecap:round}
.xmas-gust span{position:absolute;left:var(--x);top:var(--y);width:var(--size);animation:xmas-swirl 2.8s ease-in-out infinite;animation-delay:calc(var(--i)*-.19s)}
.xmas-gust span svg{display:block;width:100%;filter:drop-shadow(0 0 4px #cceeff88)}
@keyframes xmas-swirl{0%,100%{transform:translate(-20px,12px) rotate(-60deg);opacity:.2}40%{transform:translate(10px,-32px) rotate(90deg);opacity:.9}75%{transform:translate(35px,14px) rotate(210deg);opacity:.65}}
@keyframes xmas-crossing{0%{transform:translateX(-110%);opacity:0}2%{opacity:1}23%{transform:translateX(calc(100vw + 10%));opacity:1}24%,100%{transform:translateX(calc(100vw + 10%));opacity:0}}
@keyframes xmas-float{to{transform:translateY(-9px) rotate(-1deg)}}
.christmas-banner{position:relative;isolation:isolate;display:grid;grid-template-columns:1.1fr 1fr;align-items:center;overflow:hidden;min-height:330px;margin:0 0 42px;padding:35px 42px;border:1px solid #9d7e454f;border-radius:24px;background:radial-gradient(ellipse at 85% 40%,#20583e80,transparent 54%),linear-gradient(125deg,#191b18,#121f19 65%,#17271f);box-shadow:inset 0 1px #ffdfa42b}
.christmas-banner:before{content:"";position:absolute;inset:0;z-index:-1;opacity:.4;background-image:radial-gradient(circle at 20% 30%,#f9dc9a 0 1px,transparent 2px),radial-gradient(circle at 65% 60%,#e7eee8 0 1px,transparent 2px);background-size:83px 97px,133px 121px}
.christmas-copy{position:relative;z-index:2;max-width:530px}
.christmas-kicker{font-size:11px!important;letter-spacing:.19em;color:#eac784!important;font-weight:700}
.christmas-banner h2{font-size:clamp(28px,3.4vw,47px);line-height:1.15;letter-spacing:-.035em;margin:16px 0;color:#fff5e5}
.christmas-banner h2 em{color:#eac784;font-style:normal}
.christmas-banner p{font-size:15px;line-height:1.7;color:#c2cfc6;max-width:420px}
.christmas-cta{display:inline-flex;align-items:center;gap:20px;background:#e6bf73!important;color:#1b281f!important;margin-top:14px;border:1px solid #f9df9b!important;border-radius:10px;text-decoration:none;padding:14px 20px;font-weight:700;font-size:14px}
.christmas-cta:hover{background:#f5d897!important}
.christmas-scene{width:100%;max-width:480px;justify-self:end;filter:drop-shadow(0 12px 18px #0005)}
.christmas-scene svg{display:block;width:100%;height:auto}
.christmas-snowbank{position:absolute;bottom:-14px;left:-5%;width:110%;height:29px;border-radius:50% 60% 0 0;background:#e7f2e6;opacity:.7;box-shadow:0 -5px 15px #e4f5e717}
.christmas-strip{display:flex;gap:18px;align-items:center;flex-wrap:wrap;justify-content:center;margin:0 0 24px;padding:14px 22px;border:1px solid #a58b514a;border-radius:12px;background:linear-gradient(110deg,#183c2c66,#50302455);font-size:13px;color:#edce97}
.christmas-strip a{color:#edce97;text-underline-offset:4px}
body[data-season="christmas"]>footer{border-top-color:#b091535c;background:radial-gradient(ellipse at bottom,#1b37285c,transparent 70%)}
body:has(dialog[open]) .christmas-decor{visibility:hidden}
@media(max-width:767px){.xmas-ornaments{width:108px;right:1px;top:5px}.ornament-left{width:31px}.ornament-center{width:47px}.ornament-right{width:30px}.xmas-lights i{width:5px;height:9px}.xmas-lights i:nth-child(even){display:none}.xmas-parade{height:105px;top:28px}.christmas-banner{grid-template-columns:1fr;padding:26px 24px 0;min-height:0;border-radius:18px}.christmas-banner h2{font-size:32px}.christmas-scene{max-width:320px;justify-self:center;margin-top:10px}.christmas-strip{font-size:12px;gap:6px;padding:12px}.christmas-banner p{font-size:14px}@keyframes xmas-bob{0%,100%{transform:translateY(-18px) rotate(-2deg)}45%,55%{transform:translateY(14px) rotate(2deg)}}}
@media(prefers-reduced-motion:reduce){.christmas-decor *{animation:none!important}.xmas-parade{display:none}.xmas-ornament{transform:translateY(0)}}
@media print{.christmas-decor,.christmas-banner,.christmas-strip{display:none}}

/* Snow resting on action buttons: decorative, never intercepts clicks. */
body[data-season="christmas"] .button{position:relative;overflow:visible}
body[data-season="christmas"] .button:before{content:"";pointer-events:none;position:absolute;left:5px;right:5px;top:-4px;height:9px;border-radius:65% 45% 35% 30%;background:linear-gradient(#fff,#e0edf1);clip-path:polygon(0 45%,7% 18%,17% 25%,24% 0,36% 22%,48% 10%,58% 30%,72% 5%,83% 25%,93% 18%,100% 48%,100% 75%,88% 68%,82% 100%,75% 70%,60% 82%,46% 65%,30% 85%,18% 70%,8% 95%,0 75%);filter:drop-shadow(0 2px 1px #99b7bf55)}
body[data-season="christmas"] .section-heading h2:after{content:" ✧";color:#eac784;font-size:.6em;vertical-align:middle}
body[data-season="christmas"] .announcements{border-top:1px solid #d7bd7a55;background-image:radial-gradient(ellipse at top right,#214b3433,transparent 65%)}
