/* ZEFFIRO seasonal layer: keep storefront layout and turquoise brand palette untouched. */
.zf-holiday-layer{position:fixed;inset:0;z-index:31;pointer-events:none;overflow:hidden;isolation:isolate;user-select:none}
.zf-holiday-snow{position:absolute;inset:0;pointer-events:none}
.zf-holiday-flake{position:absolute;left:var(--left);top:-28px;width:var(--size);height:var(--size);border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff,#e4fffd 65%,rgba(255,255,255,.25));box-shadow:0 0 8px rgba(222,255,254,.35);opacity:var(--opacity);filter:blur(var(--blur));animation:zf-holiday-fall var(--duration) linear var(--delay) infinite}
@keyframes zf-holiday-fall{0%{transform:translate3d(-4vw,-28px,0) rotate(0deg)}50%{transform:translate3d(3vw,50vh,0) rotate(130deg)}100%{transform:translate3d(-2vw,110vh,0) rotate(280deg)}}
/* The snow banks are fixed on all pages, including long pages and mobile checkout. */
.zf-holiday-drifts{position:absolute;bottom:-5px;left:0;right:0;height:39px;opacity:.82;background:radial-gradient(ellipse 38% 85% at 11% 105%,#edfffc 97%,transparent 100%),radial-gradient(ellipse 34% 75% at 44% 111%,#e8fbfa 98%,transparent 100%),radial-gradient(ellipse 40% 90% at 80% 110%,#e9fffc 98%,transparent 100%),linear-gradient(to top,#f7ffff 0 11px,transparent 11px);filter:drop-shadow(0 -2px 6px #d7fff8aa);pointer-events:none}
/* Snow caps under the masthead and under the header navigation on every storefront page. */
html[data-zf-theme-id="winter"] .brand-masthead{overflow:visible!important;position:relative;z-index:2}
html[data-zf-theme-id="winter"] .brand-masthead::after{content:"";position:absolute;bottom:-4px;left:0;right:0;height:13px;z-index:8;pointer-events:none;background:radial-gradient(ellipse 20% 100% at 12% 90%,#e7fffa 85%,transparent 87%),radial-gradient(ellipse 22% 90% at 40% 110%,#f8ffff 89%,transparent 92%),radial-gradient(ellipse 25% 100% at 76% 103%,#e6fff8 87%,transparent 90%)}
html[data-zf-theme-id="winter"] .navigation-bar{position:relative}
html[data-zf-theme-id="winter"] .navigation-bar::after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:12px;pointer-events:none;z-index:4;background:radial-gradient(ellipse 19% 80% at 8% 110%,#e7f9f8 95%,transparent 97%),radial-gradient(ellipse 30% 90% at 43% 115%,#f8ffff 95%,transparent 97%),radial-gradient(ellipse 28% 90% at 83% 114%,#e2fff9 95%,transparent 97%);opacity:.85}
.zf-header-christmas{position:absolute;inset:0;display:block;pointer-events:none;z-index:6}
.zf-santa-hat{position:absolute;left:1.7%;top:-23%;width:91px;height:84px;transform:rotate(-16deg);filter:drop-shadow(0 5px 4px #0009);animation:zf-hat-sway 6s ease-in-out infinite alternate}
.zf-santa-hat svg{width:100%;height:100%;display:block}
.zf-header-tree{position:absolute;left:100%;top:-12%;margin-left:5px;width:63px;height:94px;filter:drop-shadow(0 0 9px rgba(79,215,176,.5))}
.zf-header-tree svg,.zf-header-snowman svg{display:block;width:100%;height:100%;overflow:visible}
.zf-header-snowman{position:absolute;left:calc(100% + 66px);top:4%;width:57px;height:72px;filter:drop-shadow(0 2px 4px #0009)}
.zf-header-tree .zf-ornament{animation:zf-tree-lights 1.8s ease-in-out infinite alternate}
.zf-header-tree .zf-ornament:nth-of-type(2n){animation-delay:-1.2s}
.zf-header-tree .zf-star{animation:zf-tree-star 1.5s ease-in-out infinite alternate;transform-origin:70px 20px}
@keyframes zf-hat-sway{to{transform:rotate(-11deg) translateY(2px)}}
@keyframes zf-tree-lights{from{opacity:.48;filter:drop-shadow(0 0 1px white)}to{opacity:1;filter:drop-shadow(0 0 9px #fff5b2)}}
@keyframes zf-tree-star{to{filter:drop-shadow(0 0 12px #fff78a);transform:scale(1.07)}}
/* Realistic cut-out Santa, appearing after a random delay and at different screen heights. */
.zf-holiday-santa{position:absolute;left:-220px;top:50vh;width:158px;height:172px;padding:0;border:0;background:none;display:none;align-items:center;justify-content:center;filter:drop-shadow(0 8px 11px rgba(0,0,0,.48));cursor:pointer;pointer-events:auto;touch-action:manipulation;user-select:none}
.zf-holiday-santa.is-running{display:flex}
.zf-holiday-santa:focus-visible{outline:3px solid #ffd976;outline-offset:4px;border-radius:20px}
.zf-santa-photo{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;animation:zf-santa-bob .42s ease-in-out infinite alternate}
@keyframes zf-santa-bob{to{transform:translateY(-5px) rotate(1deg)}}
.zf-holiday-santa .zf-santa-tag{position:absolute;top:-12px;left:50%;z-index:2;transform:translateX(-50%);border-radius:30px;padding:5px 10px;background:#f5fff9;border:2px solid #bbf7de;color:#ab1530;font-weight:900;font-size:14px;box-shadow:0 4px 12px #101b2177}
.zf-holiday-santa:hover .zf-santa-photo{filter:drop-shadow(0 0 9px #fff4c9)}
.zf-holiday-santa.is-caught,.zf-holiday-santa.is-used{display:none!important}
.zf-holiday-toast{position:absolute;left:50%;top:18px;transform:translateX(-50%);padding:14px 22px;max-width:min(420px,calc(100vw - 32px));background:#113e35;color:#fff;border:1px solid #a2ffdf;box-shadow:0 12px 40px #04141288;border-radius:16px;text-align:center;font-size:15px;line-height:1.5;font-weight:800;pointer-events:auto;display:none}
.zf-holiday-toast.is-visible{display:block;animation:zf-toast-in .25s ease-out both}
@keyframes zf-toast-in{from{opacity:0;transform:translate(-50%,-12px)}to{opacity:1;transform:translate(-50%,0)}}
.zf-holiday-discount{margin:9px 0 15px;padding:11px 13px;border:1px solid #51cdb4;border-radius:12px;background:linear-gradient(120deg,#edfdf7,#d7f9ee);color:#164a3d;font-size:13px;font-weight:800;line-height:1.5}
.zf-holiday-receipt{padding:11px 14px;margin-bottom:10px;border-radius:10px;background:#e0fff1;color:#185540;font-size:13px;font-weight:800}
@media(max-width:850px){.zf-header-tree{left:auto;right:14%;margin:0;width:50px;height:75px;top:-4%}.zf-header-snowman{left:auto;right:-3%;width:44px;height:60px;top:10%}.zf-santa-hat{left:0;top:-31%;width:70px;height:67px}}
@media(max-width:650px){.zf-holiday-drifts{height:22px;opacity:.55}.zf-header-tree{right:6%;width:39px;height:55px;top:2%}.zf-header-snowman{right:-13%;width:30px;height:42px;top:14%}.zf-santa-hat{left:0;top:-35%;width:48px;height:48px}.zf-holiday-santa{width:112px;height:123px}.zf-holiday-santa .zf-santa-tag{font-size:10px;padding:3px 7px}.zf-holiday-toast{top:13px;font-size:13px}}
@media(max-width:370px){.zf-header-tree{right:14%}.zf-header-snowman{right:-7%}}
@media(prefers-reduced-motion:reduce){.zf-holiday-flake{animation:none;opacity:.1;display:none}.zf-header-tree .zf-ornament,.zf-header-tree .zf-star,.zf-santa-hat,.zf-santa-photo{animation:none!important}.zf-holiday-toast{animation:none!important}}

/* Phase 4.7: exact approved festive banner & photographed header accessories.
   All other themes retain the original ZEFFIRO site unchanged. */
html[data-zf-theme-id="winter"] .brand-masthead{overflow:visible!important;isolation:isolate;background:#000!important}
html[data-zf-theme-id="winter"] .masthead-brand{isolation:visible!important}
html[data-zf-theme-id="winter"] .zf-header-christmas{position:absolute;inset:0;z-index:5;pointer-events:none}
html[data-zf-theme-id="winter"] .zf-real-hat{position:absolute;left:20%;top:-15%;width:clamp(80px,14vw,147px);height:auto;transform:rotate(-11deg);object-fit:contain;filter:drop-shadow(0 6px 5px rgba(0,0,0,.5));animation:zf-hat-sway 6s ease-in-out infinite alternate}
html[data-zf-theme-id="winter"] .zf-real-tree-snowman{position:absolute;left:calc(100% + 10px);top:-12%;width:clamp(150px,24vw,232px);height:auto;object-fit:contain;filter:drop-shadow(0 0 8px #66f4d94f);animation:zf-scene-glow 3s ease-in-out infinite alternate}
@keyframes zf-scene-glow{to{filter:drop-shadow(0 0 18px #87f9ddbb)}}
html[data-zf-theme-id="winter"] body{background-color:#030c11}
/* The broad snowbanks are present on every page, even at the bottom of long pages. */
html[data-zf-theme-id="winter"] .zf-holiday-drifts{height:72px;opacity:.97;bottom:-3px;background-image:url('/assets/holiday-photo-snowbank.png');background-repeat:repeat-x;background-position:bottom center;background-size:auto 85px;filter:drop-shadow(0 -2px 8px #a4e6ff55);z-index:1}
html[data-zf-theme-id="winter"] .zf-holiday-santa{width:clamp(160px,16vw,260px);height:clamp(180px,19vw,295px);z-index:10;filter:drop-shadow(0 12px 14px #02080ddd)}
html[data-zf-theme-id="winter"] .zf-santa-photo{animation:zf-santa-bob .3s ease-in-out infinite alternate}
html[data-zf-theme-id="winter"] main[data-page="home"]>.hero{display:none!important}
html[data-zf-theme-id="winter"] main[data-page="home"]>.hero.zf-original-show{display:grid!important}
html[data-zf-theme-id="winter"] main[data-page="home"]>.zf-approved-holiday-banner.zf-banner-alternate{display:none!important}
.zf-approved-holiday-banner{position:relative;display:block;width:min(1480px,calc(100% - 48px));margin:22px auto 0;aspect-ratio:1783/361;border-radius:22px;overflow:hidden;border:1px solid #246965;box-shadow:0 12px 38px #0008;background:#05181a}
.zf-approved-banner-art{display:block;width:100%;height:100%;object-fit:fill}
.zf-approved-cta{position:absolute;left:8%;top:72%;width:18%;height:18%;display:block;border-radius:50px;z-index:2}
.zf-approved-cta:focus-visible{outline:3px solid white;outline-offset:1px;background:#52cdb820}
.zf-approved-arrow{position:absolute;z-index:3;top:39%;width:4.2%;height:22%;border:0;background:transparent;border-radius:100%;cursor:pointer;min-width:34px;min-height:34px}
.zf-approved-prev{left:1.2%}.zf-approved-next{right:1.2%}
.zf-approved-arrow:focus-visible,.zf-approved-arrow:hover{outline:2px solid #52cdb8;outline-offset:2px;background:#52cdb819}
.zf-approved-mobile{display:none}
/* Make the rest of the page visually consistent with the supplied artwork. */
html[data-zf-theme-id="winter"] .quick-sections{margin-top:6px;padding-top:32px}
html[data-zf-theme-id="winter"] .quick-sections-head h2{color:#f5fffc}
html[data-zf-theme-id="winter"] .quick-section-link{background:#061e1f!important;border-color:#15534d!important;box-shadow:inset 0 0 16px #031211!important}
html[data-zf-theme-id="winter"] .quick-section-link:hover{box-shadow:0 6px 24px #42f8d533!important}
/* Real reward panel, shown only when Santa was genuinely caught on the server. */
.zf-holiday-win{position:absolute;right:clamp(12px,4vw,70px);bottom:clamp(90px,10vh,150px);width:min(350px,calc(100vw - 24px));padding:33px 22px 23px;border:2px solid #65ffe3;border-radius:22px;background:linear-gradient(135deg,#0b2d2d 3%,#062021 92%);box-shadow:0 0 0 3px #1ebf9e25,0 0 26px #48ffdcab,0 16px 65px #000c;text-align:center;pointer-events:auto;color:#fff;z-index:60}
.zf-holiday-win[hidden]{display:none!important}
.zf-holiday-win h2{margin:15px 0 7px;font-size:23px;line-height:1.25;color:#fff}
.zf-holiday-win p{margin:5px 0 13px;font-size:15px;line-height:1.4;color:#d6eee9}
.zf-holiday-win strong{display:block;margin:12px auto 15px;width:fit-content;border-radius:30px;padding:8px 27px;background:linear-gradient(110deg,#29ddc4,#82ffeb);box-shadow:0 0 18px #61fee4a1;color:#092b28;font-size:22px;letter-spacing:.3px}
.zf-holiday-win .zf-win-gift{position:absolute;top:-45px;left:50%;transform:translateX(-50%);font-size:60px;filter:drop-shadow(0 5px 5px #0009)}
.zf-holiday-win .zf-win-close{position:absolute;right:12px;top:10px;color:#fff;background:transparent;border:0;font-size:30px;line-height:1;padding:0 5px}
.zf-holiday-win .zf-win-go{display:block;margin-top:22px;background:#51e9ce;padding:15px 10px;border-radius:15px;font-weight:900;color:#031b1c;font-size:14px;transition:filter .2s}
.zf-holiday-win .zf-win-go:hover{filter:brightness(1.13)}
@media(max-width:850px){
 html[data-zf-theme-id="winter"] .zf-real-tree-snowman{width:145px;top:0}
 html[data-zf-theme-id="winter"] .zf-real-hat{width:98px}
 .zf-approved-holiday-banner{width:calc(100% - 32px);margin-top:15px;border-radius:17px}
}
@media(max-width:650px){
 html[data-zf-theme-id="winter"] .masthead-brand{width:min(61vw,244px)!important}
 html[data-zf-theme-id="winter"] .zf-real-tree-snowman{left:calc(100% + 2px);top:-13%;width:107px}
 html[data-zf-theme-id="winter"] .zf-real-hat{left:18%;top:-35%;width:66px}
 html[data-zf-theme-id="winter"] .zf-holiday-drifts{height:42px;background-size:auto 52px;opacity:.8}
 html[data-zf-theme-id="winter"] .zf-holiday-santa{width:120px;height:141px}
 .zf-approved-holiday-banner{width:calc(100% - 24px);margin-top:12px;min-height:365px;aspect-ratio:auto;border-radius:20px}
 .zf-approved-banner-art{display:none}
 .zf-approved-holiday-banner::before{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,#001214e6 0%,#002b2ab3 36%,#00131655 70%,#061314 98%),url('/assets/holiday-hero-products.webp') right bottom / auto 100% no-repeat}
 .zf-approved-mobile{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;padding:25px 24px 85px;color:white;height:100%;min-height:365px}
 .zf-approved-mobile>span{font-size:10px;letter-spacing:2px;font-weight:900;color:#56eccf}
 .zf-approved-mobile h2{font-size:clamp(34px,9vw,50px);letter-spacing:-1.7px;line-height:1.15;margin:18px 0 14px;font-weight:900}
 .zf-approved-mobile h2 em{font-style:normal;color:#42eed6}
 .zf-approved-mobile p{max-width:320px;font-size:13px;color:#e2f3f1;line-height:1.5;margin:0 0 19px}
 .zf-approved-mobile a{display:inline-block;background:#40e8d0;color:#052621;padding:12px 16px;border-radius:15px;font-size:12px;font-weight:900;box-shadow:0 0 10px #38e7c54d}
 .zf-approved-cta,.zf-approved-arrow{display:none}
 .zf-holiday-win{left:50%;right:auto;bottom:75px;transform:translateX(-50%);padding-top:26px;width:calc(100% - 24px);max-width:360px}
 .zf-holiday-win h2{font-size:19px}
 .zf-holiday-win strong{font-size:20px}
}
@media(prefers-reduced-motion:reduce){html[data-zf-theme-id="winter"] .zf-real-tree-snowman,html[data-zf-theme-id="winter"] .zf-real-hat{animation:none!important}}

html[data-zf-theme-id="winter"] .hero{position:relative}
html[data-zf-theme-id="winter"] .zf-hero-return{position:absolute;top:16px;left:24px;z-index:10;background:#13302f;color:#b7fff1;padding:10px 16px;border-radius:14px;border:1px solid #49d5bc;font-weight:800;cursor:pointer}
