/* Seasonal theme + weather widget (homepage draft) */
#season-fx { position: fixed; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 30; animation: fxFadeIn 1.4s ease-out; }
@keyframes fxFadeIn { from { opacity: 0; } to { opacity: 1; } }
.hero .overlay { z-index: 31; }
.wrap, .deal-in, .season-bar, .deal-strip, .perks-bar { position: relative; z-index: 31; }

.season-ribbon { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 18px; padding: 9px 16px 9px 12px; border-radius: 999px; background: rgba(5,5,5,.55); border: 1px solid rgba(255,214,10,.45); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); color: #f5f5f5; font-size: 14.5px; line-height: 1.35; max-width: 640px; }
.season-ribbon .dot { flex: 0 0 auto; width: 10px; height: 10px; border-radius: 50%; background: #FFD60A; box-shadow: 0 0 10px rgba(255,214,10,.8); }
.season-ribbon b { color: #FFD60A; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; font-size: 12.5px; margin-right: 2px; }
.season-ribbon.halloween { border-color: rgba(255,121,0,.65); } .season-ribbon.halloween .dot { background: #ff7900; box-shadow: 0 0 10px rgba(255,121,0,.8); } .season-ribbon.halloween b { color: #ffa040; }
.season-ribbon.christmas, .season-ribbon.remembrance { border-color: rgba(224,49,49,.6); } .season-ribbon.christmas .dot, .season-ribbon.remembrance .dot { background: #e03131; box-shadow: 0 0 10px rgba(224,49,49,.8); } .season-ribbon.christmas b, .season-ribbon.remembrance b { color: #ff8787; }
.season-ribbon.canadaday { border-color: rgba(224,49,49,.6); } .season-ribbon.canadaday .dot { background: #e03131; box-shadow: 0 0 10px rgba(224,49,49,.8); } .season-ribbon.canadaday b { color: #ff8787; }
.season-ribbon.stpatricks { border-color: rgba(47,158,68,.6); } .season-ribbon.stpatricks .dot { background: #2f9e44; box-shadow: 0 0 10px rgba(47,158,68,.8); } .season-ribbon.stpatricks b { color: #69db7c; }
.season-ribbon.valentines { border-color: rgba(240,101,149,.6); } .season-ribbon.valentines .dot { background: #f06595; box-shadow: 0 0 10px rgba(240,101,149,.8); } .season-ribbon.valentines b { color: #faa2c1; }
.season-ribbon.newyear { border-color: rgba(255,214,10,.8); }

.weather-sec { padding-top: 34px; padding-bottom: 6px; }
.weather-card { background: #0d0d0d; border: 1px solid #232323; border-radius: 16px; padding: 22px 24px; display: flex; flex-wrap: wrap; gap: 22px 34px; align-items: center; }
.weather-now { display: flex; align-items: center; gap: 16px; min-width: 240px; }
.weather-now .wic { color: #FFD60A; } .weather-now svg { display: block; }
.weather-temp { font-size: 44px; font-weight: 800; line-height: 1; color: #fff; }
.weather-cond { color: #eee; font-weight: 600; }
.weather-meta { color: #9a9a9a; font-size: 13.5px; }
.weather-days { display: flex; gap: 8px; flex: 1 1 380px; justify-content: space-between; }
.wday { text-align: center; min-width: 62px; padding: 8px 4px; border-radius: 10px; background: #131313; border: 1px solid #1e1e1e; }
.wday .dn { color: #9a9a9a; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; }
.wday .wic { color: #FFD60A; margin: 6px auto 4px; width: 24px; }
.wday .hi { color: #fff; font-weight: 700; font-size: 15px; }
.wday .lo { color: #8a8a8a; font-size: 13px; }
.weather-head { display: flex; align-items: baseline; gap: 12px; margin-bottom: 14px; }
.weather-head .kicker { margin: 0; }
.weather-note { color: #8a8a8a; font-size: 13px; }
@media (max-width: 640px) { .weather-days { flex-wrap: wrap; justify-content: flex-start; } .season-ribbon { font-size: 13.5px; } }

.season-bar { display: flex; align-items: center; justify-content: center; gap: 10px; flex-wrap: wrap; background: #0a0a0a; border-bottom: 1px solid #242424; color: #f0f0f0; padding: 10px 16px; font-size: 14px; line-height: 1.4; text-align: center; }
.season-bar .dot { flex: 0 0 auto; width: 9px; height: 9px; border-radius: 50%; background: #FFD60A; box-shadow: 0 0 8px rgba(255,214,10,.8); }
.season-bar b { color: #FFD60A; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; font-size: 12px; }
.season-bar.halloween .dot { background: #ff7900; } .season-bar.halloween b { color: #ffa040; }
.season-bar.christmas .dot, .season-bar.remembrance .dot, .season-bar.canadaday .dot { background: #e03131; } .season-bar.christmas b, .season-bar.remembrance b, .season-bar.canadaday b { color: #ff8787; }
.season-bar.stpatricks .dot { background: #2f9e44; } .season-bar.stpatricks b { color: #69db7c; }
.season-bar.valentines .dot { background: #f06595; } .season-bar.valentines b { color: #faa2c1; }
.season-ribbon.truth { border-color: rgba(240,140,0,.6); } .season-ribbon.truth .dot { background: #f08c00; box-shadow: 0 0 10px rgba(240,140,0,.8); } .season-ribbon.truth b { color: #ffa94d; }
.season-bar.truth .dot { background: #f08c00; } .season-bar.truth b { color: #ffa94d; }
.wx-chip { background: #161616; border: 1px solid #2c2c2c; color: #cfcfcf; border-radius: 999px; padding: 3px 11px; font-size: 12.5px; white-space: nowrap; }

header.site a.logo { position: relative; display: inline-block; }
.logo-acc { position: absolute; top: -15px; right: -13px; width: 34px; height: 34px; pointer-events: none; transform-origin: 50% 90%; animation: accSwing 3.8s ease-in-out infinite alternate; filter: drop-shadow(0 2px 3px rgba(0,0,0,.45)); }
.logo-acc svg { width: 100%; height: 100%; display: block; }
.logo-acc.spin { animation: none; } .logo-acc.spin svg { animation: accSpin 26s linear infinite; }
@keyframes accSwing { from { transform: rotate(-4.5deg); } to { transform: rotate(4.5deg); } }
@keyframes accSpin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@media (max-width: 640px) { .logo-acc { width: 27px; height: 27px; top: -12px; right: -9px; } }
@media (prefers-reduced-motion: reduce) { .logo-acc, .logo-acc.spin svg { animation: none; } }

/* Homepage dressing (hero decor) + light touches */
.hero-decor { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 1; }
.decor-top { position: absolute; top: 0; left: 0; right: 0; }
.lights-svg { width: 100%; height: 42px; display: block; }
.lights-svg .bulb { animation: twinkle 1.5s ease-in-out infinite alternate; }
@keyframes twinkle { from { opacity: .4; } to { opacity: 1; } }
.garland { height: 30px; background-repeat: repeat-x; background-position: top center; margin-top: -8px; }
.garland.pine { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='30'%3E%3Cpath d='M0 3 Q24 27 48 3 Q72 27 96 3' stroke='%231e5631' stroke-width='8' fill='none'/%3E%3Ccircle cx='24' cy='17' r='4' fill='%23e03131'/%3E%3Ccircle cx='72' cy='17' r='4' fill='%23e03131'/%3E%3Ccircle cx='48' cy='9' r='3' fill='%23FFD60A'/%3E%3Ccircle cx='8' cy='8' r='2.6' fill='%23e03131'/%3E%3Ccircle cx='88' cy='8' r='2.6' fill='%23FFD60A'/%3E%3C/svg%3E"); }
.garland.fall { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='30'%3E%3Cpath d='M0 3 Q24 24 48 3 Q72 24 96 3' stroke='%236b3f12' stroke-width='3' fill='none'/%3E%3Cellipse cx='24' cy='15' rx='6' ry='9' transform='rotate(18 24 15)' fill='%23e07b26'/%3E%3Cellipse cx='72' cy='15' rx='6' ry='9' transform='rotate(-18 72 15)' fill='%23d9480f'/%3E%3Cellipse cx='48' cy='11' rx='5' ry='8' fill='%23e0a32e'/%3E%3C/svg%3E"); }
.bunting { height: 30px; background-repeat: repeat-x; background-position: top center; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='84' height='30'%3E%3Cpath d='M0 3 Q42 13 84 3' stroke='%23444' stroke-width='2' fill='none'/%3E%3Cpolygon points='10,5 26,7 17,25' fill='%23e03131'/%3E%3Cpolygon points='34,8 50,8 42,26' fill='%23ffffff'/%3E%3Cpolygon points='58,7 74,5 67,25' fill='%23e03131'/%3E%3C/svg%3E"); }
.flower-row { position: absolute; left: 0; right: 0; bottom: 0; height: 56px; background-repeat: repeat-x; background-position: bottom center; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='132' height='56'%3E%3Cpath d='M20 56 V30 M66 56 V24 M112 56 V32' stroke='%232f9e44' stroke-width='3'/%3E%3Cg fill='%23f78fb0'%3E%3Ccircle cx='20' cy='22' r='6'/%3E%3Ccircle cx='66' cy='16' r='6'/%3E%3Ccircle cx='112' cy='24' r='6'/%3E%3C/g%3E%3Cg fill='%23ffffff'%3E%3Ccircle cx='43' cy='30' r='5'/%3E%3Ccircle cx='89' cy='28' r='5'/%3E%3C/g%3E%3Cg fill='%23FFD60A'%3E%3Ccircle cx='20' cy='24' r='2.6'/%3E%3Ccircle cx='66' cy='18' r='2.6'/%3E%3Ccircle cx='112' cy='26' r='2.6'/%3E%3Ccircle cx='43' cy='31' r='2.2'/%3E%3Ccircle cx='89' cy='29' r='2.2'/%3E%3C/g%3E%3Cpath d='M0 55 H132' stroke='%232f9e44' stroke-width='4'/%3E%3C/svg%3E"); }
.cane { position: absolute; bottom: 12px; width: 42px; opacity: .95; filter: drop-shadow(0 3px 5px rgba(0,0,0,.4)); }
.cane.left { left: 16px; } .cane.left svg { transform: rotate(-11deg); }
.cane.right { right: 16px; } .cane.right svg { transform: scaleX(-1) rotate(-11deg); }
.frost { position: absolute; inset: 0; box-shadow: inset 0 0 140px rgba(190,220,255,.30), inset 0 0 42px rgba(255,255,255,.13); background: radial-gradient(ellipse at 0% 0%, rgba(255,255,255,.15), transparent 45%), radial-gradient(ellipse at 100% 0%, rgba(255,255,255,.15), transparent 45%); }
.sunglow { position: absolute; inset: 0; background: radial-gradient(circle at 86% 8%, rgba(255,214,10,.32), transparent 42%); }
.bird, .bat { position: absolute; left: 0; width: 46px; animation-name: flyX; animation-timing-function: linear; animation-iteration-count: infinite; animation-fill-mode: backwards; will-change: transform; }
.bat { width: 40px; opacity: .85; }
.bird svg, .bat svg { display: block; width: 100%; animation: bob 1.15s ease-in-out infinite alternate; }
.bird .wdn { animation: flapB .34s steps(1, end) infinite; }
.bird .wup { animation: flapA .34s steps(1, end) infinite; }
@keyframes flyX { from { transform: translateX(-70px); } to { transform: translateX(102vw); } }
@keyframes bob { from { transform: translateY(-2.5px); } to { transform: translateY(2.5px); } }
@keyframes flapA { 0%, 49% { opacity: 1; } 50%, 100% { opacity: 0; } }
@keyframes flapB { 0%, 49% { opacity: 0; } 50%, 100% { opacity: 1; } }
.season-ribbon.christmas, .season-bar.christmas { background-image: repeating-linear-gradient(45deg, rgba(224,49,49,.26) 0 12px, rgba(255,255,255,.12) 12px 24px); }
.mini-lights { display: inline-flex; gap: 5px; margin-left: 8px; align-items: center; }
.mini-lights i { width: 7px; height: 7px; border-radius: 50%; animation: twinkle 1.5s ease-in-out infinite alternate; }
.chirp-btn { margin-left: 10px; display: inline-flex; align-items: center; gap: 6px; background: rgba(255,214,10,.12); border: 1px solid rgba(255,214,10,.55); color: #ffe873; border-radius: 999px; padding: 4px 11px; font-size: 12.5px; cursor: pointer; font-family: inherit; vertical-align: middle; }
.chirp-btn.on { background: #FFD60A; color: #141414; }
.chirp-float { position: fixed; left: 14px; bottom: 14px; z-index: 90; margin-left: 0; background: rgba(12,12,12,.88); box-shadow: 0 4px 18px rgba(0,0,0,.35); }
.chirp-float.on { background: #FFD60A; }
@media (max-width: 640px) { .cane { width: 32px; bottom: 8px; } .flower-row { height: 44px; background-size: auto 44px; } .bird { width: 36px; } }
@media (prefers-reduced-motion: reduce) { .bird, .bat { display: none; } .lights-svg .bulb, .mini-lights i { animation: none; } }

/* Live deal prompts */
.deal-banner { background: linear-gradient(135deg, #151515, #0a0a0a); border-top: 3px solid #FFD60A; border-bottom: 1px solid #262626; padding: 26px 20px 30px; position: relative; }
.deal-in { max-width: var(--max, 1180px); margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 22px; flex-wrap: wrap; }
.deal-kicker { color: #FFD60A; text-transform: uppercase; letter-spacing: .09em; font-size: 12.5px; font-weight: 700; margin: 0; }
.deal-banner h2 { color: #fff; margin: 5px 0 6px; font-size: 29px; line-height: 1.15; }
.deal-sub { color: #cfcfcf; margin: 0; max-width: 580px; }
.deal-side { text-align: left; }
.deal-count span { font-size: 35px; font-weight: 800; color: #fff; font-variant-numeric: tabular-nums; letter-spacing: .02em; line-height: 1; }
.deal-ends { color: #9a9a9a; font-size: 12px; text-transform: uppercase; letter-spacing: .07em; margin: 5px 0 12px; }
.deal-banner.ending { border-top-color: #e03131; }
.deal-banner.ending .deal-count span { color: #ff8787; animation: dealPulse 1.2s ease-in-out infinite alternate; }
.deal-strip.ending { border-top-color: #e03131; }
.deal-strip.ending .deal-count span { color: #ff8787; }
@keyframes dealPulse { from { opacity: 1; } to { opacity: .55; } }
.deal-x { position: absolute; top: 8px; right: 12px; background: none; border: none; color: #8a8a8a; font-size: 23px; cursor: pointer; line-height: 1; padding: 2px 6px; }
.deal-x:hover { color: #fff; }
.deal-strip { display: flex; align-items: center; justify-content: center; gap: 8px 14px; flex-wrap: wrap; background: #101010; border-top: 2px solid #FFD60A; border-bottom: 1px solid #262626; padding: 9px 42px 9px 14px; position: relative; color: #eee; font-size: 14px; text-align: center; }
.deal-strip .deal-count span { font-weight: 800; color: #FFD60A; font-variant-numeric: tabular-nums; }
.deal-strip-cta { background: #FFD60A; color: #141414; font-weight: 700; padding: 6px 16px; border-radius: 999px; text-decoration: none; white-space: nowrap; }
.deal-strip-cta:hover { background: #ffe14d; }
.deal-strip .deal-count span { letter-spacing: .03em; }
.deal-x.small { right: 8px; top: 50%; transform: translateY(-50%); font-size: 19px; }
@media (max-width: 640px) { .deal-banner h2 { font-size: 24px; } .deal-count span { font-size: 29px; } }

/* Always-on perks bar */
.perks-bar { background: #0c0c0c; border-bottom: 1px solid #222; padding: 12px 20px; }
.perks-in { max-width: var(--max, 1180px); margin: 0 auto; display: flex; gap: 10px 34px; flex-wrap: wrap; }
.perk { margin: 0; color: #ddd; font-size: 14.5px; }
.perk b { color: #FFD60A; }

/* Polish: weather loading skeleton + print cleanup */
.weather-card.skeleton { min-height: 133px; align-items: center; }
.weather-card.skeleton .weather-note { animation: dealPulse 1.6s ease-in-out infinite alternate; }
@media print { #season-fx, .hero-decor, .season-bar, .deal-strip, .perks-bar, .deal-banner, .chirp-btn, .wx-chip, .logo-acc { display: none !important; } }

/* Spring critters */
.critter { position: absolute; left: 0; top: 0; pointer-events: none; filter: drop-shadow(0 2px 2px rgba(0,0,0,.25)); }
.critter svg { display: block; width: 100%; }
.c-butterfly .wl { transform-box: fill-box; transform-origin: 100% 50%; animation: wingFlap .32s ease-in-out infinite alternate; }
.c-butterfly .wr { transform-box: fill-box; transform-origin: 0% 50%; animation: wingFlap .32s ease-in-out infinite alternate; }
.c-butterfly.landed .wl, .c-butterfly.landed .wr { animation-duration: 1.5s; }
@keyframes wingFlap { from { transform: scaleX(1); } to { transform: scaleX(.3); } }
.c-bee .beewing { transform-box: fill-box; transform-origin: 50% 100%; animation: beeWing .1s linear infinite alternate; }
@keyframes beeWing { from { transform: rotate(-16deg); } to { transform: rotate(16deg); } }
.c-bunny.hop svg { animation: bunHop .62s ease; }
@keyframes bunHop { 0%, 100% { transform: translateY(0); } 35% { transform: translateY(-17px); } 70% { transform: translateY(0); } 84% { transform: translateY(-6px); } }
@media (prefers-reduced-motion: reduce) { .critter { display: none; } }
