/* VZ FESTIVAL V5: HIGH-RES VECTOR ART ONLY ON EXISTING BLANK SECTION BACKGROUNDS.
 * CRITICAL: Only background declarations, never any position, z-index, padding,
 * margin, height, width, grid, flex, overflow, color or font on storefront.
 * Popup styles below are isolated to vz-festival-* names.
 * The theme CSS/JS is emitted ONLY on homepage when theme != nothing.
 */
body[data-vz-festival-theme="halloween"] {
  --vz-surface-art: url('../festival/halloween-surface.svg');
  --vz-surface-base: #fff0e5;
}
body[data-vz-festival-theme="eid"] {
  --vz-surface-art: url('../festival/eid-surface.svg');
  --vz-surface-base: #fff8e9;
}
body[data-vz-festival-theme="ramadan"] {
  --vz-surface-art: url('../festival/ramadan-surface.svg');
  --vz-surface-base: #f8f3e9;
}
body[data-vz-festival-theme="qurbani"] {
  --vz-surface-art: url('../festival/qurbani-surface.svg');
  --vz-surface-base: #f5f7ec;
}
body[data-vz-festival-theme="boishakh"] {
  --vz-surface-art: url('../festival/boishakh-surface.svg');
  --vz-surface-base: #fff4e8;
}
body[data-vz-festival-theme="newyear"] {
  --vz-surface-art: url('../festival/newyear-surface.svg');
  --vz-surface-base: #f3efff;
}
/* The body's own empty canvas, only on homepage with an active theme. */
body[data-vz-festival-theme] {
  background-color: var(--vz-surface-base) !important;
  background-image: var(--vz-surface-art) !important;
  background-position: center top !important;
  background-repeat: repeat !important;
  background-size: 900px 460px !important;
}
/* V5 JS adds this marker ONLY to approved EXISTING section backgrounds.
 * Cards, their grids, images, links, headings, text, nav and footer untouched.
 * Background imagery is painted underneath descendants by the browser.
 */
body[data-vz-festival-theme] .vz-festival-surface {
  background-color: var(--vz-surface-base) !important;
  background-image: var(--vz-surface-art) !important;
  background-position: center center !important;
  background-repeat: repeat !important;
  background-size: 900px 460px !important;
}
@media (max-width:767.98px) {
  body[data-vz-festival-theme],
  body[data-vz-festival-theme] .vz-festival-surface {
    background-size: 720px 368px !important;
  }
}
@media (prefers-reduced-data: reduce) {
  body[data-vz-festival-theme],
  body[data-vz-festival-theme] .vz-festival-surface {
    background-image: none !important;
  }
}
/* The message overlay is shown ONLY after successful existing 18+ verification. */
.vz-festival-popup[hidden] { display:none!important; }
.vz-festival-popup {
  position:fixed;inset:0;z-index:2147483000;
  display:flex;align-items:center;justify-content:center;
  padding:18px;
  font-family:Georgia,'Times New Roman',serif;
  animation:vzFestivalShow .28s ease-out both;
}
.vz-festival-shade {
  position:absolute;inset:0;
  background:radial-gradient(circle at center,rgba(15,10,28,.68),rgba(7,8,17,.85));
  backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);
}
.vz-festival-dialog {
  --vz-bg1:#052e29; --vz-bg2:#041c27; --vz-gold:#e7c679;
  --vz-light:#fff6da; --vz-text:#f1e7cd; --vz-flare:rgba(228,177,83,.30);
  --vz-scene:url('../festival/ramadan-scene.svg');
  position:relative;width:min(548px,100%);
  border:2px solid var(--vz-gold);border-radius:14px;
  background:
    radial-gradient(ellipse at 50% 20%,var(--vz-flare),transparent 56%),
    linear-gradient(155deg,var(--vz-bg1),var(--vz-bg2));
  color:var(--vz-light);
  box-shadow:0 0 0 7px rgba(16,13,21,.68),0 0 0 8px color-mix(in srgb,var(--vz-gold) 42%,transparent),
             0 25px 90px rgba(0,0,0,.65),0 0 45px var(--vz-flare);
  text-align:center;
  overflow:hidden;
  isolation:isolate;
  animation:vzFestivalRise .4s cubic-bezier(.2,.8,.2,1) both;
}
.vz-festival-dialog[data-theme="eid"] { --vz-bg1:#073c36;--vz-bg2:#092b3f;--vz-gold:#f1c777;--vz-flare:rgba(221,182,92,.21); }
.vz-festival-dialog[data-theme="qurbani"] { --vz-bg1:#113c36;--vz-bg2:#0c2929;--vz-gold:#d8b974;--vz-flare:rgba(156,187,103,.23); }
.vz-festival-dialog[data-theme="boishakh"] {
  --vz-bg1:#fff3d8;--vz-bg2:#f7dfb9;--vz-gold:#b72b32;
  --vz-light:#982529;--vz-text:#7c3630;--vz-flare:rgba(236,123,45,.17);
  --vz-scene:url('../festival/boishakh-scene.svg');
}
.vz-festival-dialog[data-theme="newyear"] {
  --vz-bg1:#14173f;--vz-bg2:#21133c;--vz-gold:#f4d49a;
  --vz-light:#fcebd0;--vz-text:#e3d8f9;--vz-flare:rgba(139,81,219,.33);
  --vz-scene:url('../festival/newyear-scene.svg');
}
.vz-festival-dialog[data-theme="halloween"] {
  --vz-bg1:#1a102b;--vz-bg2:#2e112c;--vz-gold:#ff9b43;
  --vz-light:#ffcd8b;--vz-text:#f6dbdb;--vz-flare:rgba(244,81,31,.3);
  --vz-scene:url('../festival/halloween-scene.svg');
}

.vz-festival-dialog[data-theme="ramadan"] { --vz-scene:url('../festival/ramadan-scene.svg'); }
.vz-festival-dialog[data-theme="eid"] { --vz-scene:url('../festival/eid-scene.svg'); }
.vz-festival-dialog[data-theme="qurbani"] { --vz-scene:url('../festival/qurbani-scene.svg'); }
.vz-festival-dialog:before {
  content:"";position:absolute;inset:11px;
  border:1px solid color-mix(in srgb,var(--vz-gold) 58%,transparent);
  border-radius:5px;pointer-events:none;z-index:2;
}
.vz-festival-dialog:after {
  content:"";position:absolute;inset:18px;
  border:1px dashed color-mix(in srgb,var(--vz-gold) 23%,transparent);
  border-radius:3px;pointer-events:none;z-index:2;
}
.vz-festival-inner {position:relative;padding:24px 26px 26px;overflow:hidden;}
.vz-festival-inner:before,
.vz-festival-inner:after {
  content:"✦";position:absolute;top:16px;
  font:16px/1 Georgia,serif;color:var(--vz-gold);opacity:.85;
}
.vz-festival-inner:before {left:19px;}
.vz-festival-inner:after {right:19px;}
.vz-festival-kicker {
  font:600 10px/1.5 Arial,Helvetica,sans-serif;
  letter-spacing:3px;color:var(--vz-gold);position:relative;z-index:3;
  margin:4px auto 0;padding:0 30px;
}
.vz-festival-kicker span {padding:0 6px;}
.vz-festival-scene {
  height:188px;width:100%;position:relative;
  background-image:var(--vz-scene);
  background-repeat:no-repeat;
  background-position:center bottom;
  background-size:contain;
  z-index:1;
  animation:vzFestivalGlow 5s ease-in-out infinite;
}
.vz-festival-copy {position:relative;z-index:3;margin-top:-12px;padding:0 4px;}
.vz-festival-eyebrow {
  font:600 10px/1.4 Arial,Helvetica,sans-serif;
  letter-spacing:3px;color:var(--vz-gold);
  text-transform:uppercase;
  margin-bottom:11px;
}
.vz-festival-title {
  margin:0!important;padding:0!important;
  font-family:Georgia,'Times New Roman',serif!important;
  font-size:clamp(33px,5vw,52px)!important;
  line-height:1.1!important;font-weight:700!important;
  color:var(--vz-light)!important;
  text-shadow:0 3px 17px color-mix(in srgb,var(--vz-gold) 22%,transparent);
  letter-spacing:-.6px;
}
.vz-festival-dialog[data-theme="halloween"] .vz-festival-title {
  color:#ffc783!important;text-shadow:0 0 17px rgba(255,102,21,.38);
}
.vz-festival-dialog[data-theme="boishakh"] .vz-festival-title {font-family:Georgia,'Noto Serif Bengali',serif!important;font-size:clamp(38px,7vw,54px)!important;}
.vz-festival-message {
  font:400 15px/1.65 Arial,Helvetica,sans-serif!important;
  color:var(--vz-text)!important;
  max-width:410px;margin:15px auto 0!important;padding:0!important;
}
.vz-festival-divider {color:var(--vz-gold);margin-top:17px;letter-spacing:12px;font-size:16px;}
.vz-festival-signoff {
  font:600 9px/1.5 Arial,Helvetica,sans-serif;
  letter-spacing:2px;color:var(--vz-gold);opacity:.86;margin:10px auto 0;
}
.vz-festival-close {
  position:absolute;z-index:8;right:24px;top:23px;
  width:36px;height:36px;border-radius:50%;
  background:rgba(0,0,0,.22);color:var(--vz-light);
  border:1px solid color-mix(in srgb,var(--vz-gold) 48%,transparent);
  font:400 25px/30px Arial,Helvetica,sans-serif;
  cursor:pointer;transition:background .2s ease,transform .2s ease;
}
.vz-festival-close:hover,.vz-festival-close:focus-visible {
  background:color-mix(in srgb,var(--vz-gold) 24%,transparent);
  transform:rotate(90deg);outline:2px solid var(--vz-gold);outline-offset:2px;
}
@keyframes vzFestivalShow {from{opacity:0}to{opacity:1}}
@keyframes vzFestivalRise {from{transform:translateY(16px) scale(.975);opacity:.5}to{transform:translateY(0) scale(1);opacity:1}}
@keyframes vzFestivalGlow {0%,100%{filter:brightness(1)}50%{filter:brightness(1.18)}}
@media (max-width:600px){
  .vz-festival-edge {opacity:.75;}
  .vz-festival-popup {padding:17px;}
  .vz-festival-inner {padding:26px 21px 23px;}
  .vz-festival-scene {height:150px;}
  .vz-festival-kicker {font-size:8px;letter-spacing:2.1px;}
  .vz-festival-title {font-size:clamp(29px,9vw,43px)!important;}
  .vz-festival-message {font-size:13px!important;line-height:1.6!important;}
  .vz-festival-close {right:20px;top:20px;width:32px;height:32px;font-size:22px;}
  .vz-festival-signoff {font-size:8px;letter-spacing:1.3px;}
}
@media (max-height:620px){
  .vz-festival-popup{align-items:flex-start;overflow-y:auto;}
  .vz-festival-dialog{margin:auto 0;}
  .vz-festival-scene{height:110px;}
  .vz-festival-inner{padding-top:18px;padding-bottom:18px;}
}
@media (prefers-reduced-motion:reduce){
  .vz-festival-popup,.vz-festival-dialog,.vz-festival-scene{animation:none!important;transition:none!important;}
}

/* V5: high-detail retina SVG artwork, with a stronger but elegant premium stage. */
.vz-festival-dialog { box-shadow:0 0 0 6px rgba(9,11,21,.71),0 0 0 8px var(--vz-gold),0 26px 82px rgba(0,0,0,.64),0 0 55px var(--vz-flare); }
.vz-festival-scene { height:207px; background-size:cover; background-position:center 51%; animation:vzFestivalGlow 7s ease-in-out infinite; }
.vz-festival-copy { margin-top:-7px; }
.vz-festival-dialog[data-theme="boishakh"] .vz-festival-title { font-family:'Noto Serif Bengali','Noto Sans Bengali','Hind Siliguri',serif!important; }
@media(max-width:600px){.vz-festival-scene{height:157px}.vz-festival-copy{margin-top:-5px}}
@media (prefers-reduced-motion:reduce){.vz-festival-scene{animation:none!important}}
