/* ==========================================================================
   Funzilla Delran: WINTER & CHRISTMAS LOOK
   Everything here only applies when <html> has the class "theme-winter" (the Funzilla Delran
   Winter theme adds it; the plain-HTML preview adds it from its switch). Loaded after styles.css.
   ========================================================================== */
@keyframes flakeFall { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(0, calc(100vh + 24px), 0); } }
@keyframes flakeSway { from { transform: translate3d(calc(var(--sway) * -1), 0, 0); } to { transform: translate3d(var(--sway), 0, 0); } }
@keyframes twinkle { from { filter: drop-shadow(0 0 2px rgba(255,220,140,.4)); opacity: .85; } to { filter: drop-shadow(0 0 7px rgba(255,220,140,.95)); opacity: 1; } }
html.theme-winter {
  --navy-950: #081430; --navy-900: #0e1f47; --navy-800: #15306a; --navy-700: #1d3f86;
  --line: rgba(170, 215, 255, .28);
  --blue-bright: #8ed8ff;
  --pink: #ff5a6e;           /* Christmas red */
  --pink-deep: #c81d36;
  --orange: #ffbe4d;         /* ornament gold */
  --green: #3fdc8a;          /* pine */
  --green-deep: #1f9d5c;
  --xmas-red: #d7263d;
  --snow: #f2f8ff;
}
/* Snowfall: separate flakes made by main.js, each falling slowly with a soft sideways drift.
   (The flake falls on the <i>; the dot itself is ::before, which sways.) */
html.theme-winter .snowfall { position: fixed; inset: 0; z-index: 35; pointer-events: none; overflow: hidden; }
html.theme-winter .snowfall i {
  position: absolute; top: -12px; left: var(--x); width: var(--s); height: var(--s);
  animation: flakeFall var(--d) linear var(--delay) infinite;
}
html.theme-winter .snowfall i::before {
  content: ""; position: absolute; inset: 0; border-radius: 50%; opacity: var(--o);
  background: radial-gradient(circle, #fff 0 45%, rgba(255,255,255,.55) 70%, transparent 72%);
  animation: flakeSway var(--sd) ease-in-out infinite alternate;
}
.snowfall { display: none; }
html.theme-winter .snowfall { display: block; }
/* Plain-HTML preview only: things that swap with its winter switch (WordPress decides on the server) */
html:not(.theme-winter) .season-winter-only, html.theme-winter .season-regular-only { display: none; }
html.theme-winter .announce { background: linear-gradient(180deg, #e33148, var(--xmas-red) 60%, #b3122a); }
html.theme-winter .site-header::after {
  height: 10px; bottom: -6px; box-shadow: none;
  background:
    radial-gradient(circle, #ff5a6e 0 3.5px, transparent 4.5px) 0 0 / 66px 10px repeat-x,
    radial-gradient(circle, #ffd23f 0 3.5px, transparent 4.5px) 22px 0 / 66px 10px repeat-x,
    radial-gradient(circle, #3fdc8a 0 3.5px, transparent 4.5px) 44px 0 / 66px 10px repeat-x,
    linear-gradient(transparent 4px, rgba(220, 235, 255, .35) 4px 5px, transparent 5px);
  filter: drop-shadow(0 0 4px rgba(255, 220, 140, .75));
}
html.theme-winter .hero::before { background: radial-gradient(55% 90% at 50% 100%, rgba(190, 230, 255, .22), transparent 70%); }
html.theme-winter .hero h1 .hl-yellow { text-shadow: 0 0 40px rgba(255, 236, 170, .45); }
html.theme-winter .tape {
  color: #fff; box-shadow: 0 0 34px -8px rgba(255, 90, 110, .55);
  background:
    repeating-linear-gradient(135deg, #fff 0 9px, var(--xmas-red) 9px 18px) top / 100% 7px no-repeat,
    repeating-linear-gradient(135deg, #fff 0 9px, var(--xmas-red) 9px 18px) bottom / 100% 7px no-repeat,
    linear-gradient(180deg, #e33148, #b3122a);
}
html.theme-winter .tape--green { background: repeating-linear-gradient(135deg, #fff 0 9px, #1f9d5c 9px 18px) top / 100% 7px no-repeat, repeating-linear-gradient(135deg, #fff 0 9px, #1f9d5c 9px 18px) bottom / 100% 7px no-repeat, linear-gradient(180deg, #23a964, #157a45); color: #fff; box-shadow: 0 0 34px -8px rgba(63, 220, 138, .5); }
html.theme-winter .tape--blue { background: linear-gradient(180deg, #e9f6ff, #bfe6ff); color: var(--on-yellow); box-shadow: 0 0 34px -8px rgba(142, 216, 255, .6); }
html.theme-winter .tape__item { padding-block: 4px; }
html.theme-winter .ball { background: radial-gradient(circle at 33% 28%, rgba(255,255,255,.85) 0 9%, transparent 10%), radial-gradient(circle at 50% 45%, #ff6b7d, #c81d36 72%); }
html.theme-winter .ball.green { background: radial-gradient(circle at 33% 28%, rgba(255,255,255,.85) 0 9%, transparent 10%), radial-gradient(circle at 50% 45%, #5ff0a2, #17804a 72%); }
html.theme-winter .ball.blue { background: radial-gradient(circle at 33% 28%, rgba(255,255,255,.9) 0 9%, transparent 10%), radial-gradient(circle at 50% 45%, #ffe27a, #d69a10 72%); }
html.theme-winter .ball::before {
  content: ""; position: absolute; left: 50%; top: -12%; width: 30%; height: 18%; transform: translateX(-50%);
  border-radius: 3px 3px 2px 2px; background: linear-gradient(180deg, #f3f6fb, #9aa8bd);
}
html.theme-winter .ball::after {
  content: ""; position: absolute; left: 50%; top: -24%; width: 18%; height: 16%; transform: translateX(-50%);
  border: 2px solid #c9d3e2; border-bottom: 0; border-radius: 50% 50% 0 0;
}
html.theme-winter :is(.price-card, .deal-card, .party-card, .member-card, .stat-card, .door, .picker__panels, .timeline__step, .scroll-hero__card) { position: relative; overflow: visible; }
html.theme-winter .door::after { display: none; }
html.theme-winter :is(.price-card, .deal-card, .party-card, .member-card, .stat-card, .door, .picker__panels, .scroll-hero__card)::before,
html.theme-winter .timeline__step:not(:where(.x))::before {
  content: ""; position: absolute; z-index: 3; pointer-events: none;
  left: calc(-1 * var(--snow-side, 0px)); right: calc(-1 * var(--snow-side, 0px));
  top: calc(-1 * var(--snow-bt, 0px) - 4px);
  height: calc(var(--snow-bt, 0px) + 4px + var(--snow-depth, 16px));
  border-radius: 0; border-top-left-radius: inherit; border-top-right-radius: inherit;
  background: linear-gradient(180deg, #ffffff 0%, #f1f7fe 55%, #d5e5f6 100%);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 24' preserveAspectRatio='none'%3E%3Cpath d='M0 0H300V14q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0Z'/%3E%3Cpath d='M66 14h8v5a4 4 0 0 1-8 0zM184 14h7v7a3.5 3.5 0 0 1-7 0zM248 14h5v3a2.5 2.5 0 0 1-5 0z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 24' preserveAspectRatio='none'%3E%3Cpath d='M0 0H300V14q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0q-7.5 3.5-15 0Z'/%3E%3Cpath d='M66 14h8v5a4 4 0 0 1-8 0zM184 14h7v7a3.5 3.5 0 0 1-7 0zM248 14h5v3a2.5 2.5 0 0 1-5 0z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}
html.theme-winter .price-card { --snow-bt: 6px; --snow-side: 2px; --snow-depth: 18px; }
html.theme-winter .party-card { --snow-bt: 6px; --snow-side: 2px; --snow-depth: 20px; }
html.theme-winter .deal-card { --snow-bt: 2px; --snow-side: 2px; --snow-depth: 16px; }
html.theme-winter .member-card { --snow-bt: 3px; --snow-side: 3px; --snow-depth: 18px; }
html.theme-winter .stat-card { --snow-bt: 2px; --snow-side: 2px; --snow-depth: 11px; }
html.theme-winter .door { --snow-depth: 18px; }
html.theme-winter .timeline__step { --snow-bt: 5px; --snow-side: 1px; --snow-depth: 16px; }
html.theme-winter .scroll-hero__card { --snow-bt: 4px; --snow-side: 4px; --snow-depth: 22px; }
html.theme-winter .picker__panels { --snow-depth: 18px; }
html.theme-winter .picker__panels::before { border-top-left-radius: var(--r-lg); border-top-right-radius: var(--r-lg); }
html.theme-winter :is(.price-card__badge, .picker__badge) { z-index: 4; }
html.theme-winter .deal-card .price-card__badge, html.theme-winter .member-card .price-card__badge { position: relative; z-index: 4; }
html.theme-winter .member-card .price-card__badge { position: absolute; }
html.theme-winter .door { --door: #ffd76a; }
html.theme-winter .door--green { --door: #3fcf83; }
html.theme-winter .door--blue { --door: #2463e0; }
html.theme-winter .section--blue {
  --sec-bg: #123a8a;
  background:
    radial-gradient(60% 70% at 85% 0%, rgba(190, 230, 255, .22), transparent 65%),
    radial-gradient(50% 70% at 0% 100%, rgba(8, 20, 48, .55), transparent 70%),
    #123a8a;
}
html.theme-winter :is(.section--yellow, .section--green, .section--pink, .section--orange) {
  --sec-bg: var(--snow); --hl: var(--xmas-red);
  background: radial-gradient(60% 90% at 90% 10%, rgba(190, 225, 255, .55), transparent 60%), var(--snow);
}
html.theme-winter .section--waves::before { background: var(--snow); filter: drop-shadow(0 -3px 6px rgba(190, 225, 255, .35)); }
html.theme-winter .bg-confetti {
  background-image:
    radial-gradient(circle at 12% 18%, rgba(255,255,255,.5) 0 2.5px, transparent 3.5px),
    radial-gradient(circle at 78% 30%, rgba(190,230,255,.45) 0 2px, transparent 3px),
    radial-gradient(circle at 42% 72%, rgba(255,255,255,.4) 0 3px, transparent 4px),
    radial-gradient(circle at 88% 82%, rgba(255,255,255,.45) 0 2px, transparent 3px),
    radial-gradient(circle at 25% 55%, rgba(190,230,255,.4) 0 1.5px, transparent 2.5px),
    radial-gradient(circle at 60% 8%, rgba(255,255,255,.5) 0 2px, transparent 3px);
}
html.theme-winter .price-card, html.theme-winter .party-card { --lit: 22%; }
html.theme-winter .section.bg-alt, html.theme-winter .member-promo { box-shadow: inset 0 140px 120px -130px rgba(200, 235, 255, .2); }
html.theme-winter .site-footer { position: relative; }
html.theme-winter .site-footer::before {
  content: ""; position: absolute; left: 0; right: 0; top: -22px; height: 24px; pointer-events: none; background: var(--snow);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 24' preserveAspectRatio='none'%3E%3Cpath d='M0 24V14C120 2 240 0 360 8s240 14 360 6 240-14 360-8 240 12 360 4v14Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 24' preserveAspectRatio='none'%3E%3Cpath d='M0 24V14C120 2 240 0 360 8s240 14 360 6 240-14 360-8 240 12 360 4v14Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}
html.theme-winter .site-footer { background: linear-gradient(180deg, #13285a, var(--navy-900) 40%); }
.season-toggle {
  position: fixed; left: 16px; bottom: 16px; z-index: 45; display: inline-flex; align-items: center; gap: 8px;
  min-height: 44px; padding: 10px 16px; border-radius: var(--r-pill); border: 1px solid var(--line); cursor: pointer;
  font: 700 .9375rem/1 var(--font-body); color: #fff; background: rgba(9, 19, 49, .88);
  box-shadow: 0 10px 30px rgba(0, 0, 0, .35); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
.season-toggle .icon { color: var(--blue-bright); }
html.theme-winter .season-toggle { background: var(--xmas-red); border-color: rgba(255,255,255,.4); }
html.theme-winter .season-toggle .icon { color: #fff; }
html.theme-winter .scroll-hero { background: radial-gradient(60% 50% at 50% 0%, rgba(190, 230, 255, .2), transparent 70%), var(--navy-950); }
html.theme-winter .site-header::before { bottom: -18px; }
@media (prefers-reduced-motion: reduce), print { html.theme-winter .snowfall { display: none; } }
@media (prefers-reduced-motion: no-preference) {
  html.theme-winter .site-header::after { animation: twinkle 2.6s ease-in-out infinite alternate; }
}
@media (max-width: 860px) { html.theme-winter .picker__panels::before { display: none; } html.theme-winter .picker__panel { position: relative; } }
@media (max-width: 640px) { html.theme-winter .party-card { --snow-depth: 14px; } }
@media (max-width: 640px) {
  html.theme-winter .timeline__step:not(:where(.x))::before { -webkit-mask: none; mask: none; filter: none; left: -33px; right: auto; top: 4px; width: 22px; height: 22px; border-radius: 50%; background: var(--navy-950); }
}
@media (max-width: 1100px) { .season-toggle { bottom: 88px; } }
