/* Three complete holiday directions, inspired by the supplied references. */
:root[data-site-theme="warm"] {
  --variant-base: #f5ecda; --variant-panel: #fff8eb; --variant-ink: #382b1b;
  --variant-muted: #776b57; --variant-accent: #846024; --variant-line: #d8c59d;
  --variant-hero: #23180d; --variant-header: rgba(35, 24, 13, .94);
  --corner-art: url('media/holiday-warm-corner.webp');
  --charcoal: #382b1b; --wood: #85612e; --stone: #776b57;
  --cream: #efe2cb; --cream-2: #fff8eb; --pine: #4b542c; --line: rgba(130, 96, 44, .23);
}
:root[data-site-theme="frost"] {
  --variant-base: #101f2b; --variant-panel: #172e3c; --variant-ink: #e5eff4;
  --variant-muted: #b5c9d3; --variant-accent: #e5cba0; --variant-line: #78909e;
  --variant-hero: #0d1d28; --variant-header: rgba(12, 28, 39, .94);
  --corner-art: url('media/holiday-frost-corner.webp');
  --charcoal: #e5eff4; --wood: #d9c6a4; --stone: #b5c9d3;
  --cream: #122634; --cream-2: #101f2b; --pine: #c9e0eb; --line: rgba(164, 194, 208, .3);
}
:root[data-site-theme="premium"] {
  --variant-base: #08251b; --variant-panel: #102c20; --variant-ink: #f1e5c9;
  --variant-muted: #bfbca1; --variant-accent: #d2b677; --variant-line: #92794a;
  --variant-hero: #091b10; --variant-header: rgba(8, 28, 17, .95);
  --corner-art: url('media/holiday-premium-corner.webp');
  --charcoal: #f1e5c9; --wood: #dfbf7f; --stone: #bfbca1;
  --cream: #102b20; --cream-2: #08251b; --pine: #e1c48d; --line: rgba(194, 161, 97, .3);
}

:root[data-holiday-variant="true"] {
  --variant-dark: #19281c;
}
:root[data-holiday-variant="true"] body {
  color: var(--variant-ink);
  background: radial-gradient(circle at 4% 14%, #ae81482b 0, transparent 22%), radial-gradient(circle at 97% 3%, #c79b4e35 0, transparent 19%), var(--variant-hero);
}
:root[data-holiday-variant="true"] main {
  width: min(1280px, calc(100% - 56px)); margin: 24px auto 0;
  border: 1px solid var(--variant-line); border-radius: 16px 16px 0 0;
  overflow: clip; background: var(--variant-base);
  box-shadow: 0 0 0 5px #ffffff04, 0 30px 100px #0005;
}
:root[data-holiday-variant="true"] .site-header {
  top: 38px; width: min(1180px, calc(100% - 100px));
  border-color: var(--variant-line); background: var(--variant-header);
  box-shadow: 0 10px 36px #0002; border-radius: 8px;
}
:root[data-holiday-variant="true"] .site-header::before { opacity: .45; }
:root[data-holiday-variant="true"] .hero {
  min-height: 720px; background: var(--variant-hero); color: #fff4dd;
}
:root[data-holiday-variant="true"] .hero-inner {
  padding: 168px 32px 110px; display: block; width: min(1180px, calc(100% - 24px));
}
:root[data-holiday-variant="true"] .hero-copy { max-width: 560px; }
:root[data-holiday-variant="true"] .hero h1 { font-size: clamp(3.4rem, 6.5vw, 5.7rem); font-weight: 400; letter-spacing: -.035em; }
:root[data-holiday-variant="true"] .hero-copy > .eyebrow { max-width: 460px; color: #eed8ad; font-size: .9rem; font-weight: 500; text-transform: none; letter-spacing: .015em; }
:root[data-holiday-variant="true"] .holiday-caption { font-size: 1.3rem; font-style: normal; line-height: 1.5; margin-top: 18px; color: #efdebc; }
:root[data-holiday-variant="true"] .hero-lead,
:root[data-holiday-variant="true"] .hero-offer { display: none; }
:root[data-holiday-variant="true"] .hero-backdrop { filter: brightness(1) saturate(.95); animation: none; transform: none; }
:root[data-holiday-variant="true"] .hero-cover:first-child { display: block; opacity: 1; transform: none; background-image: url('media/program-pair-ritual.webp'); }
:root[data-holiday-variant="true"] .hero-cover:not(:first-child) { display: none; }
:root[data-holiday-variant="true"] .hero-cover { background-position: right 80px; background-size: auto calc(100% - 80px); background-repeat: no-repeat; }
:root[data-site-theme="warm"] .hero-overlay { background: linear-gradient(90deg, #1c1008f2, #25180c7a 46%, #2a180b0a 72%), linear-gradient(0deg, #21170af2, transparent 55%); }
:root[data-site-theme="frost"] .hero-overlay { background: linear-gradient(90deg, #0c1e2aec, #11232f80 43%, #0c1e2a05 75%), linear-gradient(0deg, #112330f2, transparent 55%); }
:root[data-site-theme="premium"] .hero-overlay { background: linear-gradient(90deg, #07170eee, #0f1d0f6b 48%, #1e150308 72%), linear-gradient(0deg, #08251bf2, transparent 55%); }
:root[data-site-theme="frost"] body { background: radial-gradient(circle at 0 8%, #9bd7f325, transparent 26%), radial-gradient(circle at 100% 3%, #bce6f320, transparent 22%), #0c1a25; }
:root[data-site-theme="frost"] .hero h1 { color: #f0f8fc; }
:root[data-site-theme="frost"] .hero-copy > .eyebrow,
:root[data-site-theme="frost"] .holiday-caption { color: #d7e8ef; }
:root[data-site-theme="premium"] .hero h1 { color: #e7cc8e; background: linear-gradient(115deg, #f5e7ba, #d2ae61 65%, #f2dfab); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; text-shadow: none; }
:root[data-holiday-variant="true"] .hero::after { height: 20%; filter: none; background: linear-gradient(0deg, var(--variant-base), transparent); }
:root[data-holiday-variant="true"] .hero-steam { opacity: .45; height: 45%; }
:root[data-holiday-variant="true"] .holiday-bough {
  background-image: var(--corner-art); width: 440px; aspect-ratio: 1;
  top: auto; bottom: -25px; right: -25px; opacity: .95; transform: scaleX(-1);
}
:root[data-holiday-variant="true"] .holiday-bough--left { left: -45px; right: auto; bottom: -45px; width: 300px; opacity: .75; transform: none; }
:root[data-holiday-variant="true"] .holiday-scene::before {
  content: ""; position: absolute; width: 400px; height: 200px; top: 0; right: 0;
  background: var(--corner-art) left top/400px 400px no-repeat; opacity: .85;
  transform: scaleX(-1); mask-image: linear-gradient(#000 55%, transparent);
}
:root[data-holiday-variant="true"] .holiday-scene::after { content: ""; position: absolute; left: 0; top: 0; width: 250px; height: 160px; background: var(--corner-art) left top/300px 300px no-repeat; opacity: .6; mask-image: linear-gradient(#000 50%, transparent); }
:root[data-site-theme="frost"] .holiday-scene::before { opacity: .95; }
:root[data-site-theme="frost"] .hero::before { content: ""; position: absolute; inset: 0; border-radius: 15px 15px 0 0; box-shadow: inset 0 0 0 2px #dbeef0cc, inset 0 0 34px #bfd9e566; z-index: 2; pointer-events: none; }
:root:is([data-site-theme="warm"], [data-site-theme="premium"]) .holiday-snow i { background: #f4d89a; opacity: .2; width: 2px; height: 2px; }
:root[data-holiday-variant="true"] .hero-facts { max-width: 520px; gap: 10px; }
:root[data-holiday-variant="true"] .hero-facts span { border-color: #e8c98e4a; background: #10150c80; color: #e9ddc6; font-size: .82rem; }
:root[data-holiday-variant="true"] .btn.primary,
:root[data-holiday-variant="true"] .header-cta { background: linear-gradient(120deg, #edcf93, #b88e4e); color: #2d271b; border: 1px solid #f4daab66; box-shadow: inset 0 1px #fff6; }
:root[data-site-theme="premium"] .btn.primary,
:root[data-site-theme="premium"] .header-cta { background: linear-gradient(130deg, #821b30, #4d071b); color: #f8e8bf; border-color: #bf9e5d; box-shadow: 0 7px 24px #0003, inset 0 1px #f9d7ab33; }
:root[data-holiday-variant="true"] .program-body .btn.small { color: #2d271b; background: linear-gradient(120deg, #edcf93, #b88e4e); }
:root[data-site-theme="premium"] .program-body .btn.small { color: #f8e8bf; background: linear-gradient(130deg, #821b30, #4d071b); border: 1px solid #bf9e5d; }
:root[data-holiday-variant="true"] .section { padding: 64px 44px; }
:root[data-holiday-variant="true"] .section-head h2 { font-size: clamp(2rem, 3.4vw, 3.05rem); font-weight: 400; color: var(--variant-ink); }
:root[data-holiday-variant="true"] .section-head .eyebrow { color: var(--variant-accent); }
:root[data-holiday-variant="true"] .section-head p:not(.eyebrow) { color: var(--variant-muted); font-size: 1rem; }
:root[data-site-theme="warm"] .section-head { max-width: 850px; margin-left: auto; margin-right: auto; text-align: center; }
:root[data-site-theme="premium"] .section-head h2::after { content: ""; display: block; width: 84px; height: 1px; background: #c8a25c; margin-top: 20px; }
:root[data-holiday-variant="true"] .holiday-note { width: calc(100% - 88px); padding: 27px 28px; margin: 28px auto 0; background: var(--variant-panel); border-color: var(--variant-line); }
:root[data-holiday-variant="true"] .holiday-note h2,
:root[data-holiday-variant="true"] .holiday-note .text-link { color: var(--variant-ink); }
:root[data-holiday-variant="true"] .holiday-note p:not(.eyebrow) { color: var(--variant-muted); }
:root[data-holiday-variant="true"] .holiday-note :is(.eyebrow, svg) { color: var(--variant-accent); }

/* Equal portrait cards match the compact programme gallery in the references. */
:root[data-holiday-variant="true"] .program-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
:root[data-holiday-variant="true"] .program-card { display: flex; flex-direction: column; grid-column: auto; min-height: 0; background: var(--variant-panel); border-color: var(--variant-line); box-shadow: 0 9px 24px #00000012; }
:root[data-holiday-variant="true"] .program-card.is-filter-hidden { display: none; }
:root[data-holiday-variant="true"] .program-card .card-media { aspect-ratio: auto; width: 100%; height: 210px; min-height: 210px; flex: 0 0 210px; }
:root[data-holiday-variant="true"] .program-body { flex: 1; padding: 20px; }
:root[data-holiday-variant="true"] :is(.program-body h3, .master-card h3, .faq summary, .contact-copy h2) { color: var(--variant-ink); font-weight: 400; }
:root[data-holiday-variant="true"] .program-body h3 { font-size: 1.42rem; }
:root[data-holiday-variant="true"] .program-body :is(p, li),
:root[data-holiday-variant="true"] :is(.master-card p, .master-reviews p, .review-card p, .faq p, .contact-copy p) { color: var(--variant-muted); }
:root[data-holiday-variant="true"] .program-body .tag { align-self: flex-start; background: transparent; border-color: var(--variant-line); color: var(--variant-accent); font-size: .65rem; letter-spacing: .07em; }
:root[data-holiday-variant="true"] :is(.master-card, .review-card, .faq details, .location-card) { background: var(--variant-panel); border-color: var(--variant-line); color: var(--variant-ink); }
:root[data-holiday-variant="true"] .master-card .tag { color: var(--variant-accent); }
:root[data-holiday-variant="true"] :is(.tab, .program-description-toggle) { color: var(--variant-ink); background: var(--variant-panel); border-color: var(--variant-line); }
:root[data-holiday-variant="true"] .tab.active { color: #23251b; background: #d6bb81; border-color: #d6bb81; }
:root[data-holiday-variant="true"] .price-row { color: var(--variant-ink); border-color: var(--variant-line); margin-top: auto; }
:root[data-holiday-variant="true"] .builder { background-image: linear-gradient(110deg, #152b1ef2, #171c11ec), url('media/shop-herbs-brooms.webp'); border-color: var(--variant-line); }
:root[data-holiday-variant="true"] .builder .section-head h2 { color: #f2e5c7; }
:root[data-holiday-variant="true"] .builder .section-head p { color: #c1c9b4; }
:root[data-holiday-variant="true"] .builder .btn.secondary { color: #f4e7d0; }
:root[data-holiday-variant="true"] .control-group select option { color: #24352a; background: #faf4e6; }
:root[data-holiday-variant="true"] .faq { background: var(--variant-base); }
:root[data-holiday-variant="true"] .section .btn.secondary { color: var(--variant-ink); border-color: var(--variant-line); background: #aaaaaa10; }
:root[data-holiday-variant="true"] .builder .btn.secondary { color: #f7e7c3; }
:root[data-holiday-variant="true"] .site-footer { width: min(1280px, calc(100% - 56px)); margin: 0 auto 24px; padding: 32px 44px; border: 1px solid var(--variant-line); border-top: 0; border-radius: 0 0 16px 16px; background: var(--variant-hero); }
:root[data-holiday-variant="true"] :is(.sticky-contact a, .review-controls button) { color: #2d271b; }
:root[data-site-theme="premium"] .sticky-contact a { color: #f8e8bf; background: linear-gradient(130deg, #821b30, #4d071b); border-color: #bf9e5d; }
:root[data-holiday-variant="true"] .legal-shell { background: var(--variant-panel); color: var(--variant-ink); }
:root[data-holiday-variant="true"] :is(.legal-grid article, .legal-note) { background: var(--variant-base); border-color: var(--variant-line); }
:root[data-holiday-variant="true"] .legal-shell a:not(.btn) { color: var(--variant-accent); text-decoration: underline; text-underline-offset: 3px; }
:root[data-holiday-variant="true"] .shop-school { background: var(--variant-base); }
:root[data-holiday-variant="true"] .shop-panel .btn.secondary { color: #2d271b; background: linear-gradient(120deg, #edcf93, #b88e4e); border-color: #e6c487; }
:root[data-site-theme="premium"] .shop-panel .btn.secondary { color: #f8e8bf; background: linear-gradient(130deg, #821b30, #4d071b); border-color: #bf9e5d; }

/* Frost gives the final sections the pale, snowy contrast of the reference. */
:root[data-site-theme="frost"] :is(.reviews, .faq, .contacts) {
  --variant-ink: #243e4e; --variant-muted: #536e7c; --variant-panel: #f2f7fa; --variant-base: #e1eaf1; --variant-line: #bacbd5; --variant-accent: #86683d;
  --charcoal: #243e4e; --stone: #536e7c; --pine: #2f5365; --line: #bacbd5;
  color: #243e4e; background: linear-gradient(120deg, #e1eaf1, #f1f7fa);
}
:root[data-site-theme="frost"] .builder { background-image: linear-gradient(110deg, #102330f5, #102a36ed), url('media/shop-herbs-brooms.webp'); }

@media (max-width: 1100px) {
  :root[data-holiday-variant="true"] .program-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  :root[data-holiday-variant="true"] .hero-copy { max-width: 520px; }
}
@media (max-width: 980px) {
  :root[data-holiday-variant="true"] .site-header { width: calc(100% - 80px); }
  :root[data-holiday-variant="true"] .hero-inner { padding-left: 22px; padding-right: 22px; }
  :root[data-holiday-variant="true"] .holiday-bough { width: 340px; right: -40px; }
  :root[data-holiday-variant="true"] .holiday-bough--left { left: -70px; right: auto; width: 270px; }
}
@media (max-width: 640px) {
  :root[data-holiday-variant="true"] main { width: 100%; margin: 0; border: 0; border-radius: 0; }
  :root[data-holiday-variant="true"] .site-header { top: 0; width: 100%; border-radius: 0 0 8px 8px; }
  :root[data-holiday-variant="true"] .site-nav { background: var(--variant-header); }
  :root[data-holiday-variant="true"] .hero { min-height: 0; }
  :root[data-holiday-variant="true"] .hero-inner { padding: 285px 6px 62px; width: calc(100% - 24px); }
  :root[data-holiday-variant="true"] .hero-copy { max-width: none; }
  :root[data-holiday-variant="true"] .hero h1 { font-size: clamp(2.7rem, 13vw, 3.5rem); }
  :root[data-holiday-variant="true"] .hero-copy > .eyebrow { max-width: none; font-size: .82rem; margin-bottom: 12px; }
  :root[data-holiday-variant="true"] .holiday-caption { font-size: 1.08rem; margin-top: 13px; }
  :root[data-holiday-variant="true"] .hero-cover { background-position: 59% 54px; background-size: auto 360px; background-repeat: no-repeat; }
  :root[data-holiday-variant="true"] .hero-overlay { background: linear-gradient(180deg, transparent 90px, #00000019 195px, var(--variant-hero) 390px); }
  :root[data-holiday-variant="true"] .hero-actions { gap: 10px; margin-top: 25px; }
  :root[data-holiday-variant="true"] .hero-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin-top: 24px; }
  :root[data-holiday-variant="true"] .hero-facts span { padding: 9px 5px; font-size: .65rem; line-height: 1.4; }
  :root[data-holiday-variant="true"] .holiday-bough { width: 245px; right: -65px; bottom: -50px; opacity: .6; }
  :root[data-holiday-variant="true"] .holiday-bough--left { width: 195px; left: -85px; right: auto; bottom: -40px; opacity: .5; }
  :root[data-holiday-variant="true"] .holiday-scene::before { width: 200px; height: 120px; background-size: 230px 230px; top: 50px; right: -10px; opacity: .8; }
  :root[data-holiday-variant="true"] .holiday-scene::after { top: 50px; width: 110px; height: 100px; background-size: 190px 190px; opacity: .55; }
  :root[data-holiday-variant="true"] .section { padding: 44px 14px; }
  :root[data-holiday-variant="true"] .holiday-note { width: calc(100% - 28px); padding: 22px 18px; }
  :root[data-holiday-variant="true"] .holiday-note .text-link { white-space: normal; }
  :root[data-holiday-variant="true"] .program-grid { grid-template-columns: 1fr; gap: 14px; }
  :root[data-holiday-variant="true"] .program-card { display: grid; grid-template-columns: 100px minmax(0, 1fr); min-height: 270px; }
  :root[data-holiday-variant="true"] .program-card .card-media { height: 100%; min-height: 100%; width: 100%; }
  :root[data-holiday-variant="true"] .program-body { padding: 15px; }
  :root[data-holiday-variant="true"] .program-body h3 { font-size: 1.2rem; }
  :root[data-holiday-variant="true"] .site-footer { width: 100%; margin: 0; padding: 30px 18px; border: 0; border-radius: 0; }
}
