/*
 * Seasonal guide looks: each guide page (/halloween, /christmas…) gets its own palette, header scene, display font
 * and card trim. Loaded only on guide pages; <html data-skin="guide" data-guide="KEY"> (guide.php).
 * Each look sets the usual color tokens, plus:
 *   --g-font   display font (site name, page heading)       --g-sub   section and day headings
 *   --g-sky    header background                             --g-art   header art layers (snow, stars, hills…)
 *   --g-deco   emoji row at the header's lower right         --g-trim  card edge (color or pattern)
 *   --g-float  small emoji floating near the top right
 * The shared rules come first, then one block per guide in calendar order.
 */

/* ---------------------------------------------------------------- shared */
:root[data-guide] {
  --g-font: Fraunces, Georgia, serif;
  --g-sub: Fraunces, Georgia, serif;
  --g-trim: var(--accent);
  --g-deco: "";
  --g-float: "";
  --g-art: none;
}
[data-guide] .masthead { background: var(--g-sky); padding: 34px 0 64px; }
[data-guide] .masthead-art { display: block; position: absolute; inset: 0; pointer-events: none; background: var(--g-art); }
[data-guide] .masthead-art::after {
  content: var(--g-deco); position: absolute; right: max(16px, calc(50% - 440px)); bottom: 18px;
  font-size: 38px; letter-spacing: 6px; line-height: 1; filter: drop-shadow(0 4px 8px rgba(0, 0, 0, .25));
}
[data-guide] .masthead-art::before {
  content: var(--g-float); position: absolute; right: max(24px, calc(50% - 400px)); top: 16px;
  font-size: 22px; letter-spacing: 18px; opacity: .85;
}
[data-guide] .masthead-title { text-shadow: 0 2px 14px rgba(0, 0, 0, .35); }
[data-guide] .masthead h1 { font-family: var(--g-font); font-weight: 700; letter-spacing: 0; }
[data-guide] .page-heading { font-family: var(--g-font); font-weight: 700; font-size: clamp(32px, 5.5vw, 48px); line-height: 1.1; }
[data-guide] .guide-h { font-family: var(--g-sub); border-left: 6px solid var(--g-trim); border-radius: 2px; }
[data-guide] .day h2 { font-family: var(--g-sub); }
[data-guide] .day h2 .rel { color: var(--accent); }
[data-guide] .card { position: relative; overflow: hidden; padding-left: 22px; }
[data-guide] .card::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 7px; background: var(--g-trim); }
[data-guide] .time { color: var(--accent); font-weight: 700; }
[data-guide] .guide-jump a { border-color: color-mix(in srgb, var(--accent) 40%, var(--line)); }
[data-guide] .guide-jump a:hover { background: color-mix(in srgb, var(--accent) 12%, var(--surface)); }
[data-guide] .guide-times th { color: var(--accent); }
[data-guide] .guide-list li { border-top: 4px solid color-mix(in srgb, var(--accent) 60%, var(--line)); }
@media (max-width: 560px) {
  [data-guide] .masthead { padding-bottom: 70px; }
  [data-guide] .masthead-art::after { font-size: 30px; bottom: 14px; }
  [data-guide] .masthead-art::before { display: none; }
}
/* Dark looks: brighter category colors so the chips stay readable. */
:root[data-guide="halloween"], :root[data-guide="new-years-eve"] {
  --cat-music: #c4a1ff; --cat-arts: #5fd0dc; --cat-family: #ff8fb8; --cat-learning: #8fb3ff;
  --cat-sports: #7fd68f; --cat-food: #ffb070; --cat-community: #b6bac6;
  --shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 10px 24px -14px rgba(0, 0, 0, .7);
  color-scheme: dark;
}

/* ---------------------------------------------------------------- Valentine's Day: blush pink, hearts */
:root[data-guide="valentines-day"] {
  --bg: #fff6f8; --surface: #ffffff; --ink: #3b1426; --muted: #8a5a6f; --line: #f5d9e2;
  --brand: #a8174b; --brand-ink: #ffffff; --accent: #d93a6f; --accent-ink: #ffffff;
  --chip: #fde6ee; --chip-on: #a8174b; --chip-on-ink: #ffffff;
  --g-font: "Dancing Script", cursive; --g-sub: "Playfair Display", Georgia, serif;
  --g-sky: radial-gradient(500px 220px at 85% 0%, rgba(255, 190, 210, .45), transparent 70%), linear-gradient(135deg, #7d0f37, #b3184f 55%, #e2457a);
  --g-art:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'><path d='M0 36 C 360 10 720 56 1080 30 S 1440 22 1440 22 V60 H0Z' fill='%23fff6f8'/></svg>") center bottom / 100% 48px no-repeat,
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='90' height='90' viewBox='0 0 90 90'><path d='M22 30c-4-6-14-4-14 4 0 7 14 14 14 14s14-7 14-14c0-8-10-10-14-4z' fill='%23ffffff' fill-opacity='.10'/><path d='M66 70c-3-4-9-3-9 2 0 5 9 9 9 9s9-4 9-9c0-5-6-6-9-2z' fill='%23ffffff' fill-opacity='.08'/></svg>") 0 0 / 90px 90px;
  --g-deco: "💝 💕";
  --g-float: "♥ ♡ ♥";
  --g-trim: repeating-linear-gradient(180deg, #d93a6f 0 10px, #ffc2d4 10px 14px);
  color-scheme: light;
}
[data-guide="valentines-day"] .masthead-art::before { color: #ffd1de; }
[data-guide="valentines-day"] .page-heading { color: #a8174b; font-size: clamp(40px, 7vw, 60px); }
[data-guide="valentines-day"] .masthead h1 { font-size: clamp(34px, 6vw, 50px); }
[data-guide="valentines-day"] .guide-h, [data-guide="valentines-day"] .day h2 { font-style: italic; }
[data-guide="valentines-day"] .card { border-radius: 18px; }

/* ---------------------------------------------------------------- St. Patrick's Day: emerald, gold, shamrocks */
:root[data-guide="st-patricks-day"] {
  --bg: #f3f9f2; --surface: #ffffff; --ink: #13301f; --muted: #4f6b58; --line: #d6e8d4;
  --brand: #0e5c32; --brand-ink: #ffffff; --accent: #16884a; --accent-ink: #ffffff;
  --chip: #e2f0e1; --chip-on: #0e5c32; --chip-on-ink: #ffffff; --gold: #d4a72c;
  --g-font: "Uncial Antiqua", Georgia, serif; --g-sub: "Uncial Antiqua", Georgia, serif;
  --g-sky: radial-gradient(420px 200px at 80% 10%, rgba(212, 167, 44, .28), transparent 70%), linear-gradient(160deg, #063d21, #0e5c32 50%, #1f8a4c);
  --g-art:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'><path d='M0 40 C 300 14 560 50 860 30 S 1300 18 1440 34 V60 H0Z' fill='%23c9e3c4'/><path d='M0 48 C 340 30 700 58 1040 42 S 1380 38 1440 44 V60 H0Z' fill='%23f3f9f2'/></svg>") center bottom / 100% 56px no-repeat,
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='110' height='110' viewBox='0 0 110 110'><g fill='%23ffffff' fill-opacity='.08'><circle cx='20' cy='20' r='6'/><circle cx='30' cy='20' r='6'/><circle cx='25' cy='12' r='6'/><rect x='24' y='24' width='2' height='10'/><circle cx='75' cy='72' r='5'/><circle cx='83' cy='72' r='5'/><circle cx='79' cy='65' r='5'/><rect x='78' y='75' width='2' height='8'/></g></svg>") 0 0 / 110px 110px;
  --g-deco: "🍀 🌈";
  --g-float: "☘ ☘ ☘";
  --g-trim: linear-gradient(180deg, #16884a 0 70%, #d4a72c 70%);
  color-scheme: light;
}
[data-guide="st-patricks-day"] .masthead-art::before { color: #9fdcb3; }
[data-guide="st-patricks-day"] .page-heading { color: #0e5c32; }
[data-guide="st-patricks-day"] .guide-h { border-left-color: var(--gold); font-size: 22px; }
[data-guide="st-patricks-day"] .day h2 { font-family: Fraunces, Georgia, serif; }

/* ---------------------------------------------------------------- Easter: pastels, eggs, spring grass */
:root[data-guide="easter"] {
  --bg: #fcfaff; --surface: #ffffff; --ink: #2e2440; --muted: #6b6080; --line: #ebe3f6;
  --brand: #7b5cc4; --brand-ink: #ffffff; --accent: #c2477f; --accent-ink: #ffffff;
  --chip: #f1ebfb; --chip-on: #7b5cc4; --chip-on-ink: #ffffff;
  --g-font: Fredoka, system-ui, sans-serif; --g-sub: Fredoka, system-ui, sans-serif;
  --g-sky: linear-gradient(120deg, #8f73d9 0%, #a98ee6 35%, #7fcdb8 75%, #ffd98a 100%);
  --g-art:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'><path d='M0 30 C 200 12 420 44 640 26 S 1100 10 1440 30 V60 H0Z' fill='%2396d48a'/><path d='M0 44 C 300 30 600 56 900 40 S 1300 34 1440 42 V60 H0Z' fill='%23fcfaff'/></svg>") center bottom / 100% 58px no-repeat,
    radial-gradient(circle, rgba(255, 255, 255, .5) 2px, transparent 2.6px) 0 0 / 46px 46px,
    radial-gradient(circle, rgba(255, 240, 180, .45) 3px, transparent 3.6px) 22px 18px / 92px 92px;
  --g-deco: "🐣 🥚 🐰";
  --g-float: "🌷 🌼";
  --g-trim: repeating-linear-gradient(180deg, #f6a6c8 0 9px, #b9a3ee 9px 18px, #9fdcc8 18px 27px, #ffe08a 27px 36px);
  color-scheme: light;
}
[data-guide="easter"] .page-heading { color: #6a48b8; font-weight: 600; }
[data-guide="easter"] .masthead h1 { font-weight: 600; }
[data-guide="easter"] .guide-h { font-weight: 600; border-left-color: #f08bb4; }
[data-guide="easter"] .day h2 { font-weight: 600; }
[data-guide="easter"] .card { border-radius: 20px; }

/* ---------------------------------------------------------------- Memorial Day: quiet navy, stars, a ribbon of stripes */
:root[data-guide="memorial-day"] {
  --bg: #f6f7fa; --surface: #ffffff; --ink: #1b2333; --muted: #5a6478; --line: #dfe3ec;
  --brand: #1b2a49; --brand-ink: #ffffff; --accent: #9e1b32; --accent-ink: #ffffff;
  --chip: #e7eaf2; --chip-on: #1b2a49; --chip-on-ink: #ffffff;
  --g-font: "Libre Baskerville", Georgia, serif; --g-sub: "Libre Baskerville", Georgia, serif;
  --g-sky: linear-gradient(180deg, #0f1a33, #1b2a49 70%, #24365c);
  --g-art:
    linear-gradient(180deg, transparent calc(100% - 22px), #9e1b32 calc(100% - 22px) calc(100% - 15px), #ffffff calc(100% - 15px) calc(100% - 8px), #9e1b32 calc(100% - 8px) calc(100% - 1px), transparent calc(100% - 1px)),
    radial-gradient(circle, rgba(255, 255, 255, .55) 1px, transparent 1.6px) 0 0 / 38px 38px,
    radial-gradient(circle, rgba(255, 255, 255, .3) 1px, transparent 1.6px) 19px 19px / 38px 38px;
  --g-deco: "";
  --g-float: "★ ★ ★";
  --g-trim: #1b2a49;
  color-scheme: light;
}
[data-guide="memorial-day"] .masthead { padding-bottom: 50px; }
[data-guide="memorial-day"] .masthead-art::before { color: #c9d3e8; font-size: 16px; }
[data-guide="memorial-day"] .page-heading { font-size: clamp(28px, 4.6vw, 40px); color: #1b2a49; }
[data-guide="memorial-day"] .guide-h { border-left-color: #9e1b32; font-size: 21px; }

/* ---------------------------------------------------------------- Summer Fairs & Festivals: sunny sky, bunting, tent stripes */
:root[data-guide="summer-festivals"] {
  --bg: #fffaf0; --surface: #ffffff; --ink: #2b2118; --muted: #6e6152; --line: #f1e3cb;
  --brand: #1e7fbf; --brand-ink: #ffffff; --accent: #e4572e; --accent-ink: #ffffff;
  --chip: #fdeedd; --chip-on: #1e6fa0; --chip-on-ink: #ffffff;
  --g-font: "Lilita One", system-ui, sans-serif; --g-sub: "Lilita One", system-ui, sans-serif;
  --g-sky: radial-gradient(circle at 88% 26%, #ffe066 0 30px, rgba(255, 224, 102, .35) 32px, transparent 90px), linear-gradient(180deg, #1673b3, #3ea6dc 60%, #8fd3f0);
  --g-art:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='34' viewBox='0 0 120 34'><path d='M0 4 Q 60 14 120 4' stroke='%23ffffff' stroke-opacity='.8' fill='none' stroke-width='1.5'/><path d='M8 6 L20 6 L14 22Z' fill='%23e4572e'/><path d='M38 9 L50 10 L44 26Z' fill='%23ffd23f'/><path d='M68 10 L80 9 L74 26Z' fill='%233bb273'/><path d='M98 6 L110 5 L104 22Z' fill='%23ffffff'/></svg>") 0 6px / 120px 34px repeat-x,
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'><path d='M0 38 C 360 18 720 52 1080 32 S 1440 30 1440 30 V60 H0Z' fill='%2378c46b'/><path d='M0 48 C 400 36 800 60 1200 44 S 1440 46 1440 46 V60 H0Z' fill='%23fffaf0'/></svg>") center bottom / 100% 56px no-repeat;
  --g-deco: "🎡 🎠";
  --g-float: "";
  --g-trim: repeating-linear-gradient(180deg, #e4572e 0 10px, #fff1e0 10px 20px);
  color-scheme: light;
}
[data-guide="summer-festivals"] .masthead { padding-top: 46px; }
[data-guide="summer-festivals"] .masthead h1 { font-weight: 400; letter-spacing: .01em; }
[data-guide="summer-festivals"] .page-heading { font-weight: 400; color: #d2461f; letter-spacing: .01em; }
[data-guide="summer-festivals"] .guide-h, [data-guide="summer-festivals"] .day h2 { font-weight: 400; letter-spacing: .01em; }
[data-guide="summer-festivals"] .guide-h { border-left-color: #1e7fbf; }

/* ---------------------------------------------------------------- Fourth of July: night sky, fireworks, stripes */
:root[data-guide="fourth-of-july"] {
  --bg: #f7f9fd; --surface: #ffffff; --ink: #13203a; --muted: #56637c; --line: #dde3ef;
  --brand: #102a5c; --brand-ink: #ffffff; --accent: #c8102e; --accent-ink: #ffffff;
  --chip: #e6ebf5; --chip-on: #102a5c; --chip-on-ink: #ffffff;
  --g-font: "Alfa Slab One", Georgia, serif; --g-sub: "Alfa Slab One", Georgia, serif;
  --g-sky:
    radial-gradient(circle at 78% 34%, transparent 0 22px, rgba(255, 90, 90, .9) 23px 25px, transparent 26px 34px, rgba(255, 90, 90, .45) 35px 37px, transparent 38px),
    radial-gradient(circle at 90% 22%, transparent 0 12px, rgba(255, 255, 255, .9) 13px 14px, transparent 15px 22px, rgba(255, 255, 255, .5) 23px 24px, transparent 25px),
    radial-gradient(circle at 64% 22%, transparent 0 10px, rgba(120, 170, 255, .95) 11px 12px, transparent 13px 19px, rgba(120, 170, 255, .45) 20px 21px, transparent 22px),
    linear-gradient(180deg, #07142e, #102a5c 75%, #1c3d7a);
  --g-art:
    linear-gradient(180deg, transparent calc(100% - 30px), #c8102e calc(100% - 30px) calc(100% - 24px), #ffffff calc(100% - 24px) calc(100% - 18px), #c8102e calc(100% - 18px) calc(100% - 12px), #ffffff calc(100% - 12px) calc(100% - 6px), var(--bg) calc(100% - 6px)),
    radial-gradient(circle, rgba(255, 255, 255, .7) 1px, transparent 1.6px) 0 0 / 44px 44px;
  --g-deco: "🎆 🎇";
  --g-float: "";
  --g-trim: linear-gradient(180deg, #c8102e 0 33%, #ffffff 33% 50%, #102a5c 50%);
  color-scheme: light;
}
[data-guide="fourth-of-july"] .masthead-art::after { bottom: 40px; }
[data-guide="fourth-of-july"] .masthead h1 { font-weight: 400; }
[data-guide="fourth-of-july"] .page-heading { font-weight: 400; color: #102a5c; }
[data-guide="fourth-of-july"] .guide-h, [data-guide="fourth-of-july"] .day h2 { font-weight: 400; }
[data-guide="fourth-of-july"] .guide-h { border-left-color: #c8102e; }

/* ---------------------------------------------------------------- Labor Day: sunset over the lake, picnic gingham */
:root[data-guide="labor-day"] {
  --bg: #fdf8f1; --surface: #ffffff; --ink: #2c2116; --muted: #6d5f50; --line: #eee0cb;
  --brand: #1f5f6b; --brand-ink: #ffffff; --accent: #c8611a; --accent-ink: #ffffff;
  --chip: #f6eadb; --chip-on: #1f5f6b; --chip-on-ink: #ffffff;
  --g-font: Arvo, Georgia, serif; --g-sub: Arvo, Georgia, serif;
  --g-sky: radial-gradient(circle at 62% 92%, #ffd36b 0 46px, rgba(255, 211, 107, .45) 48px, transparent 120px), linear-gradient(180deg, #e8743b 0%, #f2a35a 45%, #f6c978 70%, #6fa7b3 72%, #1f5f6b 100%);
  --g-art:
    repeating-linear-gradient(180deg, transparent 0 6px, rgba(255, 255, 255, .18) 6px 8px) center bottom / 100% 34% no-repeat,
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'><path d='M0 44 C 480 30 960 56 1440 40 V60 H0Z' fill='%23fdf8f1'/></svg>") center bottom / 100% 40px no-repeat;
  --g-deco: "🌭 🍉 ⛵";
  --g-float: "";
  --g-trim:
    repeating-linear-gradient(0deg, rgba(200, 40, 40, .55) 0 6px, transparent 6px 12px),
    repeating-linear-gradient(90deg, rgba(200, 40, 40, .55) 0 3.5px, #ffffff 3.5px 7px);
  color-scheme: light;
}
[data-guide="labor-day"] .page-heading { color: #1f5f6b; }
[data-guide="labor-day"] .guide-h { border-left-color: #c8611a; }

/* ---------------------------------------------------------------- Harvest Season: apple red, golden fields */
:root[data-guide="harvest-season"] {
  --bg: #fdf8ec; --surface: #ffffff; --ink: #2f2412; --muted: #6f6248; --line: #eadfc6;
  --brand: #8e2a1f; --brand-ink: #fff6e6; --accent: #b8541c; --accent-ink: #ffffff;
  --chip: #f4e9d2; --chip-on: #8e2a1f; --chip-on-ink: #ffffff;
  --g-font: "Bree Serif", Georgia, serif; --g-sub: "Bree Serif", Georgia, serif;
  --g-sky: radial-gradient(420px 220px at 82% 0%, rgba(255, 200, 90, .35), transparent 70%), linear-gradient(160deg, #6e1e16, #9e2f1f 50%, #c25a24);
  --g-art:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 70' preserveAspectRatio='none'><path d='M0 30 C 240 10 520 40 760 22 S 1200 8 1440 28 V70 H0Z' fill='%23d9a441'/><path d='M0 44 C 300 26 640 58 940 38 S 1300 30 1440 40 V70 H0Z' fill='%23a6a83f'/><path d='M0 56 C 400 44 800 68 1200 52 S 1440 54 1440 54 V70 H0Z' fill='%23fdf8ec'/></svg>") center bottom / 100% 64px no-repeat;
  --g-deco: "🍎 🌽 🎃";
  --g-float: "🍂 🍁";
  --g-trim:
    repeating-linear-gradient(0deg, rgba(158, 47, 31, .5) 0 6px, transparent 6px 12px),
    repeating-linear-gradient(90deg, rgba(158, 47, 31, .5) 0 3.5px, #fff6e6 3.5px 7px);
  color-scheme: light;
}
[data-guide="harvest-season"] .masthead { padding-bottom: 76px; }
[data-guide="harvest-season"] .masthead h1, [data-guide="harvest-season"] .page-heading,
[data-guide="harvest-season"] .guide-h, [data-guide="harvest-season"] .day h2 { font-weight: 400; }
[data-guide="harvest-season"] .page-heading { color: #8e2a1f; }
[data-guide="harvest-season"] .guide-h { border-left-color: #d9a441; }

/* ---------------------------------------------------------------- Halloween: moonlit night, bats, pumpkins */
:root[data-guide="halloween"] {
  --bg: #14101c; --surface: #1f1830; --ink: #f1e9dc; --muted: #b4a8c2; --line: #362a4a;
  --brand: #1a1029; --brand-ink: #ffe9cf; --accent: #ff7a18; --accent-ink: #1a0d00;
  --chip: #2a2140; --chip-on: #ff7a18; --chip-on-ink: #1a0d00;
  --g-font: Creepster, Fraunces, cursive; --g-sub: Fraunces, Georgia, serif;
  --g-sky:
    radial-gradient(circle at 86% 40%, #fff1c4 0 34px, rgba(255, 233, 176, .28) 36px, rgba(255, 233, 176, .08) 70px, transparent 110px),
    linear-gradient(180deg, #0b0716 0%, #23123a 60%, #4a1d3f 100%);
  --g-art:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'><path d='M0 50 C 120 30 260 46 380 36 C 520 24 600 52 760 44 C 900 36 1000 20 1140 34 C 1260 46 1360 30 1440 38 V80 H0Z' fill='%230b0716'/><path d='M1080 36 L1090 8 L1094 36 M1092 18 L1108 6 M1088 22 L1072 12' stroke='%230b0716' stroke-width='4' fill='none'/><path d='M0 68 C 480 58 960 78 1440 64 V80 H0Z' fill='%2314101c'/></svg>") center bottom / 100% 80px no-repeat,
    radial-gradient(circle, rgba(255, 255, 255, .6) 1px, transparent 1.5px) 0 0 / 60px 60px;
  --g-deco: "🎃 🎃";
  --g-float: "🦇 🦇 🦇";
  --g-trim: linear-gradient(180deg, #ff7a18, #a23bd6);
}
[data-guide="halloween"] .masthead { padding-bottom: 84px; }
[data-guide="halloween"] .masthead-art::before { top: 26px; right: max(90px, calc(50% - 340px)); transform: rotate(-8deg); }
[data-guide="halloween"] .masthead h1 { font-weight: 400; letter-spacing: .03em; color: #ffb35c; }
[data-guide="halloween"] .page-heading { font-weight: 400; letter-spacing: .03em; color: #ff8a2a; font-size: clamp(38px, 7vw, 60px); }
[data-guide="halloween"] .guide-h { color: #ffd9b0; }
[data-guide="halloween"] .card { background: linear-gradient(180deg, #221a35, #1d1630); }
[data-guide="halloween"] .card:hover { border-color: #ff7a18; box-shadow: 0 0 0 1px #ff7a18, 0 10px 30px -10px rgba(255, 122, 24, .45); }
[data-guide="halloween"] .guide-times { background: #1f1830; }
[data-guide="halloween"] .share-btn { background: var(--surface); }

/* ---------------------------------------------------------------- Thanksgiving: warm browns, falling leaves */
:root[data-guide="thanksgiving"] {
  --bg: #fbf4e8; --surface: #fffaf2; --ink: #3a2414; --muted: #7a5f49; --line: #ecdcc4;
  --brand: #6b3412; --brand-ink: #fff4e4; --accent: #b5541c; --accent-ink: #ffffff;
  --chip: #f3e5cf; --chip-on: #6b3412; --chip-on-ink: #ffffff;
  --g-font: Bitter, Georgia, serif; --g-sub: Bitter, Georgia, serif;
  --g-sky: radial-gradient(500px 240px at 15% 0%, rgba(255, 190, 110, .3), transparent 70%), linear-gradient(135deg, #5a2a0c, #8e3f12 45%, #c06a24 80%, #d99a3a);
  --g-art:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'><path d='M0 36 C 300 18 640 50 960 30 S 1360 22 1440 30 V60 H0Z' fill='%23e0b06a'/><path d='M0 46 C 380 32 760 58 1140 42 S 1440 44 1440 44 V60 H0Z' fill='%23fbf4e8'/></svg>") center bottom / 100% 54px no-repeat;
  --g-deco: "🦃 🥧";
  --g-float: "🍂 🍁 🍂";
  --g-trim: linear-gradient(180deg, #b5541c, #d99a3a 50%, #8e3f12);
  color-scheme: light;
}
[data-guide="thanksgiving"] .masthead h1 { font-weight: 800; }
[data-guide="thanksgiving"] .page-heading { font-weight: 800; color: #6b3412; }
[data-guide="thanksgiving"] .guide-h { border-left-color: #d99a3a; }

/* ---------------------------------------------------------------- Christmas: pine green, falling snow, candy-cane trim */
:root[data-guide="christmas"] {
  --bg: #fbf7f0; --surface: #ffffff; --ink: #2a1f1a; --muted: #6e6259; --line: #ece2d4;
  --brand: #0f4a34; --brand-ink: #fff8ec; --accent: #c8102e; --accent-ink: #ffffff;
  --chip: #f1e9dd; --chip-on: #0f4a34; --chip-on-ink: #ffffff; --gold: #c9a227;
  --g-font: "Mountains of Christmas", Georgia, serif; --g-sub: "Playfair Display", Georgia, serif;
  --g-sky: radial-gradient(500px 220px at 85% 0%, rgba(255, 230, 160, .22), transparent 70%), linear-gradient(180deg, #082e20, #0f4a34 60%, #17603f);
  --g-art:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'><path d='M0 32 C 240 8 480 44 720 24 S 1200 6 1440 28 V60 H0Z' fill='%23e8eef0'/><path d='M0 44 C 260 22 520 54 780 38 S 1220 26 1440 42 V60 H0Z' fill='%23fbf7f0'/></svg>") center bottom / 100% 54px no-repeat,
    radial-gradient(circle, rgba(255, 255, 255, .9) 1.4px, transparent 2px) 0 0 / 70px 70px,
    radial-gradient(circle, rgba(255, 255, 255, .7) 2.2px, transparent 2.8px) 20px 14px / 120px 120px,
    radial-gradient(circle, rgba(255, 255, 255, .4) 1px, transparent 1.6px) 9px 30px / 48px 48px;
  --g-deco: "🎄 🎁";
  --g-float: "✨ ⭐ ✨";
  --g-trim: repeating-linear-gradient(135deg, #c8102e 0 6px, #ffffff 6px 12px);
  color-scheme: light;
}
@media (prefers-reduced-motion: no-preference) {
  [data-guide="christmas"] .masthead-art, [data-guide="winter-fun"] .masthead-art { animation: guide-snow 18s linear infinite; }
}
@keyframes guide-snow {
  from { background-position: center bottom, 0 0, 20px 14px, 9px 30px; }
  to   { background-position: center bottom, 70px 700px, -100px 1214px, 57px 510px; }
}
[data-guide="christmas"] .masthead h1 { font-size: clamp(34px, 6vw, 50px); }
[data-guide="christmas"] .page-heading { color: #0f4a34; font-size: clamp(38px, 7vw, 58px); }
[data-guide="christmas"] .guide-h { border-left-color: var(--gold); }
[data-guide="christmas"] .guide-h, [data-guide="christmas"] .day h2 { font-style: italic; }

/* ---------------------------------------------------------------- New Year's Eve: midnight, gold confetti */
:root[data-guide="new-years-eve"] {
  --bg: #0d0d16; --surface: #171723; --ink: #f4efe1; --muted: #aea896; --line: #2c2b3c;
  --brand: #0a0a12; --brand-ink: #f7e7b4; --accent: #e5c158; --accent-ink: #1a1406;
  --chip: #22222f; --chip-on: #e5c158; --chip-on-ink: #111111;
  --g-font: Cinzel, Georgia, serif; --g-sub: Cinzel, Georgia, serif;
  --g-sky: radial-gradient(600px 260px at 50% 0%, rgba(229, 193, 88, .22), transparent 70%), linear-gradient(180deg, #05050b, #121226 70%, #1d1a33);
  --g-art:
    radial-gradient(circle, rgba(229, 193, 88, .9) 1.6px, transparent 2.2px) 0 0 / 54px 54px,
    radial-gradient(circle, rgba(255, 255, 255, .7) 1.2px, transparent 1.8px) 27px 13px / 66px 66px,
    radial-gradient(circle, rgba(255, 140, 190, .6) 1.5px, transparent 2.1px) 11px 37px / 80px 80px,
    radial-gradient(circle, rgba(140, 200, 255, .55) 1.5px, transparent 2.1px) 40px 5px / 96px 96px;
  --g-deco: "🥂 🍾";
  --g-float: "✨ 🎆 ✨";
  --g-trim: linear-gradient(180deg, #f7e7b4, #e5c158 40%, #a8862c);
}
@media (prefers-reduced-motion: no-preference) {
  [data-guide="new-years-eve"] .masthead-art { animation: guide-confetti 24s linear infinite; }
}
@keyframes guide-confetti {
  from { background-position: 0 0, 27px 13px, 11px 37px, 40px 5px; }
  to   { background-position: 54px 540px, -39px 673px, 91px 517px, -56px 485px; }
}
[data-guide="new-years-eve"] .masthead { border-bottom: 2px solid #e5c158; padding-bottom: 60px; }
[data-guide="new-years-eve"] .masthead h1 { color: #f7e7b4; letter-spacing: .04em; }
[data-guide="new-years-eve"] .page-heading { color: #e5c158; letter-spacing: .04em; }
[data-guide="new-years-eve"] .guide-h { color: #f7e7b4; letter-spacing: .03em; }
[data-guide="new-years-eve"] .card { background: linear-gradient(180deg, #1a1a28, #151520); }
[data-guide="new-years-eve"] .card:hover { border-color: #e5c158; }
[data-guide="new-years-eve"] .share-btn { background: var(--surface); }

/* ---------------------------------------------------------------- Winter Fun: icy blue, snow, snowbanks */
:root[data-guide="winter-fun"] {
  --bg: #f1f7fc; --surface: #ffffff; --ink: #13293d; --muted: #536b82; --line: #d9e6f1;
  --brand: #1b4b72; --brand-ink: #ffffff; --accent: #1f7ab8; --accent-ink: #ffffff;
  --chip: #e2eef8; --chip-on: #1b4b72; --chip-on-ink: #ffffff;
  --g-font: Quicksand, system-ui, sans-serif; --g-sub: Quicksand, system-ui, sans-serif;
  --g-sky: radial-gradient(500px 220px at 20% 0%, rgba(200, 230, 255, .3), transparent 70%), linear-gradient(180deg, #0e2e4d, #1b4b72 55%, #3d84b8);
  --g-art:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'><path d='M0 28 C 200 6 420 40 660 22 S 1140 4 1440 26 V60 H0Z' fill='%23d6e7f5'/><path d='M0 42 C 260 22 560 54 860 36 S 1260 28 1440 40 V60 H0Z' fill='%23f1f7fc'/></svg>") center bottom / 100% 58px no-repeat,
    radial-gradient(circle, rgba(255, 255, 255, .9) 1.4px, transparent 2px) 0 0 / 70px 70px,
    radial-gradient(circle, rgba(255, 255, 255, .7) 2.2px, transparent 2.8px) 20px 14px / 120px 120px,
    radial-gradient(circle, rgba(255, 255, 255, .4) 1px, transparent 1.6px) 9px 30px / 48px 48px;
  --g-deco: "⛄ 🛷";
  --g-float: "❄ ❅ ❄";
  --g-trim: repeating-linear-gradient(180deg, #8cc3ea 0 8px, #ffffff 8px 11px, #1f7ab8 11px 19px, #ffffff 19px 22px);
  color-scheme: light;
}
[data-guide="winter-fun"] .masthead-art::before { color: #dff0ff; }
[data-guide="winter-fun"] .page-heading { color: #1b4b72; }
[data-guide="winter-fun"] .guide-h { border-left-color: #8cc3ea; }

/* Phones: the header is taller (buttons stack), so moons, suns and fireworks move to the top corner, clear of the buttons. */
@media (max-width: 560px) {
  :root[data-guide="halloween"] {
    --g-sky: radial-gradient(circle at 96% 2%, #fff1c4 0 26px, rgba(255, 233, 176, .25) 28px, transparent 60px), linear-gradient(180deg, #0b0716 0%, #23123a 60%, #4a1d3f 100%);
  }
  :root[data-guide="summer-festivals"] {
    --g-sky: radial-gradient(circle at 96% 4%, #ffe066 0 24px, rgba(255, 224, 102, .35) 26px, transparent 60px), linear-gradient(180deg, #1673b3, #3ea6dc 60%, #8fd3f0);
  }
  :root[data-guide="fourth-of-july"] {
    --g-sky: radial-gradient(circle at 92% 6%, transparent 0 10px, rgba(255, 90, 90, .9) 11px 12px, transparent 13px 18px, rgba(255, 90, 90, .45) 19px 20px, transparent 21px), linear-gradient(180deg, #07142e, #102a5c 75%, #1c3d7a);
  }
  :root[data-guide="labor-day"] {
    --g-sky: radial-gradient(circle at 30% 97%, #ffd36b 0 30px, rgba(255, 211, 107, .45) 32px, transparent 80px), linear-gradient(180deg, #e8743b 0%, #f2a35a 45%, #f6c978 74%, #6fa7b3 76%, #1f5f6b 100%);
  }
}