/* The holiday skin is opt-in; the regular site keeps its existing layout. */
.holiday-only { display: none; }

:root[data-holiday="true"] {
  --charcoal: #19352b;
  --charcoal-2: #204437;
  --wood: #81423d;
  --honey: #c9a363;
  --honey-2: #f1d9a5;
  --cream: #edf0e8;
  --cream-2: #fffaf0;
  --moss: #416653;
  --pine: #123b31;
  --stone: #626e64;
  --line: rgba(38, 72, 53, .15);
}

[data-holiday="true"] body {
  background: linear-gradient(180deg, #f4f2e8, #edf0e7 55%, #f6f1e6);
}
[data-holiday="true"] .site-header {
  background: linear-gradient(135deg, rgba(17, 51, 41, .96), rgba(17, 39, 32, .92));
  border-color: rgba(229, 199, 144, .36);
  box-shadow: 0 12px 48px rgba(9, 33, 25, .22), inset 0 1px rgba(255, 240, 204, .08);
}
[data-holiday="true"] .site-header::before {
  content: ""; position: absolute; left: 20px; right: 20px; top: -1px; height: 3px;
  background: radial-gradient(circle, #f2dbad 1px, transparent 2px) center/24px 3px;
  opacity: .8; pointer-events: none;
}
[data-holiday="true"] .hero {
  background: #102f25;
  color: #fff8e9;
}
[data-holiday="true"] .hero-overlay {
  background: linear-gradient(90deg, rgba(8, 33, 24, .97), rgba(13, 40, 29, .76) 48%, rgba(18, 44, 31, .28)), linear-gradient(0deg, #112f24, transparent 72%);
}
[data-holiday="true"] .hero::after {
  background: linear-gradient(0deg, rgba(22, 59, 43, .75), rgba(22, 59, 43, .08) 70%, transparent);
}
[data-holiday="true"] .hero-backdrop { filter: saturate(.68) brightness(.83); }
[data-holiday="true"] .hero-inner { padding-top: 165px; padding-bottom: 95px; }
[data-holiday="true"] .hero h1 { font-weight: 400; letter-spacing: -.045em; }
[data-holiday="true"] .hero-copy > .eyebrow { color: #dfc798; letter-spacing: .14em; font-size: .72rem; }
[data-holiday="true"] .holiday-caption {
  display: block; margin: 17px 0 0; color: #edd4a6;
  font: italic clamp(1.5rem, 2.7vw, 2.25rem)/1.2 Georgia, serif;
  letter-spacing: -.02em;
}
[data-holiday="true"] .hero-lead { max-width: 610px; font-size: 1.14rem; color: #e4e8dc; }
[data-holiday="true"] .hero-offer {
  border: 1px solid rgba(224, 196, 143, .36);
  background: linear-gradient(150deg, rgba(232, 217, 176, .1), rgba(16, 45, 33, .8));
  box-shadow: 0 28px 85px rgba(1, 17, 10, .3), inset 0 1px rgba(255, 240, 204, .12);
  backdrop-filter: blur(16px);
}
[data-holiday="true"] .hero-offer::before {
  content: "✦"; position: absolute; top: -15px; right: 24px; width: 30px;
  color: #ecd19d; background: #173b2d; font-size: 24px; text-align: center;
}
[data-holiday="true"] .hero-offer h2 { font-family: Georgia, serif; font-weight: 400; font-size: 1.9rem; }
[data-holiday="true"] .hero-facts span { border-color: rgba(218, 193, 147, .26); background: rgba(20, 57, 39, .55); }
[data-holiday="true"] .btn.primary,
[data-holiday="true"] .header-cta { background: linear-gradient(115deg, #f5e2b7, #d8b375); box-shadow: 0 9px 30px rgba(184, 141, 66, .18); color: #263b28; }
[data-holiday="true"] .hero .btn.secondary { border-color: rgba(229, 203, 157, .44); background: rgba(244, 228, 195, .04); }

[data-holiday="true"] .holiday-scene { display: block; position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 2; }
.holiday-bough { position: absolute; right: -20px; top: 45px; width: min(49vw, 640px); aspect-ratio: 640/340; background: url('media/newyear-pine.svg') center/contain no-repeat; opacity: .88; }
.holiday-bough--left { top: auto; bottom: -85px; left: -100px; right: auto; width: 440px; transform: rotate(180deg); opacity: .33; }
.holiday-snow { position: absolute; inset: 0; opacity: .6; }
.holiday-snow i { position: absolute; top: -12px; left: var(--x); width: var(--size, 3px); height: var(--size, 3px); border-radius: 50%; background: #f9f4df; animation: holiday-snowfall var(--duration, 17s) var(--delay, 0s) linear infinite; }
@keyframes holiday-snowfall { from { transform: translate3d(0, 0, 0); opacity: 0; } 15% { opacity: .65; } 80% { opacity: .4; } to { transform: translate3d(-70px, 95vh, 0); opacity: 0; } }

[data-holiday="true"] .holiday-note {
  display: flex; align-items: center; gap: 26px; position: relative;
  width: min(1180px, calc(100% - 36px)); margin: 32px auto 0; padding: 30px 36px;
  background: linear-gradient(110deg, #fffaf0, #f1eddf);
  border: 1px solid #d4c29b; border-radius: 8px;
  box-shadow: 0 12px 36px rgba(58, 65, 42, .05);
}
.holiday-note svg { flex: 0 0 58px; width: 58px; height: 58px; color: #b8955b; }
.holiday-note-copy { flex: 1; min-width: 0; }
.holiday-note .eyebrow { font-size: .68rem; color: #81423d; letter-spacing: .15em; margin-bottom: 7px; }
.holiday-note h2 { font: 400 clamp(1.35rem, 2vw, 1.8rem)/1.2 Georgia, serif; margin: 0; color: #264834; }
.holiday-note p:not(.eyebrow) { color: #697365; margin: 9px 0 0; font-size: .9rem; line-height: 1.5; }
.holiday-note .text-link { color: #234b37; white-space: nowrap; font-size: .9rem; }

[data-holiday="true"] .programs,
[data-holiday="true"] .masters,
[data-holiday="true"] .reviews,
[data-holiday="true"] .contacts { background: transparent; }
[data-holiday="true"] .section-head .eyebrow { color: #8b4b43; letter-spacing: .14em; font-size: .72rem; }
[data-holiday="true"] .section-head h2 { font-weight: 400; color: #254a36; }
[data-holiday="true"] .program-card,
[data-holiday="true"] .master-card { border-color: #d9d4bd; background: linear-gradient(135deg, #fffdf6, #f6f3e7); box-shadow: 0 12px 36px rgba(40, 71, 47, .06); }
[data-holiday="true"] .program-card.featured { border-color: #b9a477; box-shadow: 0 12px 40px rgba(144, 116, 60, .1); }
[data-holiday="true"] .program-body .tag { color: #81423d; background: #f5eddf; border-color: #e1d4b9; }
[data-holiday="true"] .tab.active { color: #f9f0d9; background: #234a38; border-color: #234a38; }
[data-holiday="true"] .builder { background-image: linear-gradient(120deg, rgba(12, 43, 30, .97), rgba(17, 40, 30, .94)), url('media/shop-herbs-brooms.webp'); border-top: 1px solid #b69c65; border-bottom: 1px solid #b69c65; }
[data-holiday="true"] .builder .section-head h2 { color: #f9eed7; }
[data-holiday="true"] .faq { background: #e5ebdf; }
[data-holiday="true"] .site-footer { background: #102e23; border-top: 1px solid rgba(203, 175, 119, .45); }

@media (max-width: 980px) {
  [data-holiday="true"] .hero-inner { padding-top: 148px; }
  .holiday-bough { width: 430px; right: -70px; opacity: .62; }
  [data-holiday="true"] .holiday-note { gap: 18px; padding: 26px; }
  .holiday-note svg { width: 44px; height: 44px; flex-basis: 44px; }
}
@media (max-width: 640px) {
  [data-holiday="true"] .hero-inner { padding: 128px 0 80px; }
  [data-holiday="true"] .hero h1 { font-size: clamp(2.75rem, 13.5vw, 3.65rem); }
  [data-holiday="true"] .hero-copy > .eyebrow { max-width: 235px; line-height: 1.5; font-size: .64rem; }
  [data-holiday="true"] .holiday-caption { font-size: 1.55rem; margin-top: 14px; }
  [data-holiday="true"] .hero-lead { font-size: .97rem; line-height: 1.56; margin-top: 22px; }
  .holiday-bough { top: 48px; width: 260px; right: -72px; opacity: .55; }
  .holiday-bough--left { top: auto; bottom: -50px; left: -130px; right: auto; width: 330px; opacity: .26; }
  [data-holiday="true"] .holiday-note { width: calc(100% - 28px); padding: 24px 20px; gap: 16px; flex-wrap: wrap; margin-top: 22px; }
  .holiday-note svg { flex-basis: 34px; width: 34px; height: 34px; align-self: flex-start; }
  .holiday-note-copy { flex-basis: calc(100% - 50px); }
  .holiday-note h2 { font-size: 1.4rem; }
  .holiday-note .text-link { margin-left: 50px; white-space: normal; }
}
@media (prefers-reduced-motion: reduce) {
  .holiday-snow { display: none; }
  .holiday-snow i { animation: none; }
}
