/* Calendar themes apply only to the public site. Program colors keep their meaning. */
body[data-season] {
  --season-ink: #293c33;
  --brand-green: #356344; --brand-deep: #244b36; --brand-gold: #b39a58;
  --season-detail: #b99d50; --season-detail-soft: #e7dca8;
  --season-paper: #fffdf7;
  --season-accent: var(--brand-green);
  --season-deep: var(--brand-deep);
  --season-wash: #edf3df;
  --season-ground: #f4f1e5;
  --season-glow: #fff4c9;
  --season-line: #d6ddc6;
  --season-footer: #e5ead7;
  --season-scene: url("./hero-real-nature-watercolor-life-optimized.b3f5f737c352.webp");
}
body[data-season="winter"] {
  --season-paper: #fcfdf7; --season-detail: #729bab; --season-detail-soft: #d5e9ed;

  --season-wash: #edf3f6; --season-ground: #f1f3f0;
  --season-glow: #effbff; --season-line: #ccdce2; --season-footer: #dae6eb;
  --season-scene: url("./seasons/hero-winter-v1.0a74fa603c1b.webp");
}
body[data-season="spring"] {
  --season-paper: #fffdf5; --season-detail: #b78593; --season-detail-soft: #f1dce0;

  --season-wash: #eef4e9; --season-ground: #f5f3e7;
  --season-glow: #f8ffdb; --season-line: #d1e0d0; --season-footer: #e0eadc;
  --season-scene: url("./seasons/hero-spring-v1.2e4e455a6026.webp");
}
body[data-season="autumn"] {
  --season-paper: #fffaf0; --season-detail: #ad7538; --season-detail-soft: #ead3ad;

  --season-wash: #f7f0e4; --season-ground: #f3ebdd;
  --season-glow: #fff1cb; --season-line: #e2d3b9; --season-footer: #eae0cc;
  --season-scene: url("./seasons/hero-autumn-v1.e9a26a7418fd.webp");
}
body[data-season] {
  --color-brand-50: var(--season-wash);
  --color-brand-100: var(--season-line);
  --color-brand-500: var(--season-accent);
  --color-brand-700: var(--season-deep);
  --color-brand-900: var(--season-ink);
  --camp-page-bg-top: var(--season-wash);
  --camp-page-bg-sage: var(--season-wash);
  --camp-page-bg-paper: var(--season-paper);
  --camp-page-bg-warm: var(--season-ground);
  --camp-page-bg-footer: var(--season-footer);
  --camp-page-bg-lower: var(--season-ground);
  --camp-page-bg-image: radial-gradient(ellipse at 8% 8%, color-mix(in srgb, var(--season-glow) 45%, transparent), transparent 40rem), linear-gradient(180deg, var(--season-wash),var(--season-paper) 45%,var(--season-ground) 80%,var(--season-footer));
  color: var(--season-ink);
  background-color: var(--season-wash);
}
body[data-season] .camp-header-nav,
body[data-season] .camp-mobile-menu {
  background: color-mix(in srgb, var(--season-paper) 94%, transparent);
  border: 1px solid var(--season-line);
  box-shadow: 0 8px 28px color-mix(in srgb, var(--season-ink) 9%, transparent);
}
body[data-season] .camp-header-nav { border-top: 3px solid var(--brand-gold); }
body[data-season] :is(.camp-header-icon-button,.camp-header-menu-button) {
  background: var(--brand-green); box-shadow: 0 4px 12px color-mix(in srgb, var(--season-accent) 15%, transparent);
}
body[data-season] :is(.camp-header-icon-button,.camp-header-menu-button):hover { background: var(--season-deep); }
body[data-season] :is(a,button,summary):focus-visible { outline: 3px solid var(--season-accent); outline-offset: 4px; }
body[data-season] #top .camp-hero-wash {
  background: radial-gradient(ellipse at 26% 52%, color-mix(in srgb, var(--season-paper) 78%, transparent), transparent 65%), linear-gradient(90deg,color-mix(in srgb, var(--season-paper) 40%, transparent),transparent 78%);
}
body[data-season] .camp-hero-content::before { background: radial-gradient(ellipse, color-mix(in srgb,var(--season-paper) 65%,transparent),transparent 70%); }
body[data-season] .camp-hero-content::after { background: radial-gradient(ellipse, color-mix(in srgb,var(--season-glow) 35%,transparent),transparent 75%); }
body[data-season] #top .camp-hero-torn-shadow { stroke: var(--season-glow); }
body[data-season] #top .camp-hero-torn-fiber { stroke: var(--season-paper); }
body[data-season] :is(.camp-child-hero-shell,.camp-about-hero-shell,.prep-public-hero) {
  background: radial-gradient(ellipse at 85% 25%, color-mix(in srgb,var(--season-glow) 60%,transparent),transparent 65%), linear-gradient(135deg,color-mix(in srgb,var(--season-wash) 70%,transparent),transparent 75%);
  border-color: var(--season-line);
}
body[data-season] :is(.camp-child-hero-kicker,.camp-child-hero-aside,.prep-eyebrow) { color: var(--season-accent); }
body[data-season] .camp-parent-question { border-color: var(--season-line); }
body[data-season] .camp-parent-question[open] { background: color-mix(in srgb,var(--season-paper) 82%,transparent); }
body[data-season] .camp-parent-question summary > span { color: var(--season-accent); }
body[data-season] :is(.camp-parent-letter-actions a,.camp-footer-primary-action) { background: var(--season-accent); color:#fff; }
body[data-season] .camp-footer { background: transparent; }
/* Let the page gradient continue through the final section into the footer. */
body[data-season] :is(.camp-section-parents,.camp-section-parent-guide) { background: transparent; }
body[data-season] .camp-promo-album-petal { background: var(--season-accent); opacity:.2; }
body[data-season] :is(.camp-about-garlands,.camp-promo-garlands) { opacity:.65; }
body[data-season="winter"] :is(.camp-about-garlands,.camp-promo-garlands) { opacity:.25; filter:saturate(.3); }
/* The native parent guide shares the same palette. */
body[data-season].prep-public { background:var(--camp-page-bg-image); color:var(--season-ink); }
body[data-season] .prep-public-header { background:var(--season-paper); border-color:var(--season-line); border-top-color:var(--season-accent); }
body[data-season] .prep-public .prep-button, body[data-season].prep-public .prep-button { background:var(--season-accent)!important; }
body[data-season] :is(.prep-section,.prep-public-footer) { border-color:var(--season-line); }
body[data-season] .prep-section h2 { color:var(--season-deep); }
body[data-season] .prep-public-next { background:var(--season-footer); }
.season-preview { position:fixed; z-index:1000; bottom:12px; left:50%; transform:translateX(-50%); max-width:calc(100vw - 24px); padding:8px; display:flex; align-items:center; gap:4px; overflow-x:auto; border:1px solid var(--season-line); border-radius:14px; background:var(--season-paper); box-shadow:0 4px 24px #0002; font:12px/1.2 system-ui,sans-serif; }
.season-preview :is(a,span) { padding:8px; white-space:nowrap; }
.season-preview a[aria-current] { background:var(--season-accent); color:white; border-radius:8px; }
@media print { .season-preview { display:none; } }
@media(min-width:1280px) {
 body[data-season] .camp-header-nav>div:not(.camp-mobile-menu) { max-width:none; gap:20px; }
 body[data-season] .camp-header-nav>div>a>img { max-width:200px; height:auto; }
 body[data-season] .camp-header-nav>div>div:nth-child(2) { gap:16px; font-size:14px; }
 body[data-season] .camp-header-nav>div>div:last-child { gap:8px; }
}
/* Keep the brand ornaments in their own gutters, clear of the navigation. */
@media(min-width:1280px) and (max-width:1439px) {
 body[data-season] .camp-header-side-pattern { display:none; }
}
@media(min-width:1440px) {
 body[data-season] .camp-header-nav { --header-ornament-width:clamp(100px,7vw,150px); padding-inline:calc(var(--header-ornament-width) + 36px); }
 body[data-season] .camp-header-side-pattern { display:flex; width:var(--header-ornament-width); }
 body[data-season] .camp-header-side-pattern-left { left:18px; }
 body[data-season] .camp-header-side-pattern-right { right:18px; }
 body[data-season] .camp-header-nav>div:not(.camp-mobile-menu) { max-width:1480px; }
}
body[data-season] .camp-shift-directions-heading h2 { color:var(--season-ink); }
body[data-season] .camp-child-hero-title h1 { color:var(--season-ink); }
body[data-season] .camp-child-hero-title>p { color:var(--season-accent); }
body[data-season] .camp-section-index { border-color:var(--season-line); }
body[data-season] .camp-section-index a { color:var(--season-deep); }
body[data-season] :is(.camp-child-hero-actions,.camp-programs-cta-actions,.camp-shifts-apply-actions,.camp-about-return-actions,.camp-health-contact-actions,.camp-safety-family-actions,.camp-services-contact-actions,.camp-staff-confirm-actions,.camp-facilities-confirm-actions,.camp-living-confirm-actions,.camp-official-note-actions) > a:first-child {
 background:var(--season-accent); color:#fff; border-color:transparent;
}
body[data-season] :is(.camp-child-hero-actions,.camp-programs-cta-actions,.camp-shifts-apply-actions,.camp-about-return-actions,.camp-health-contact-actions,.camp-safety-family-actions,.camp-services-contact-actions,.camp-staff-confirm-actions,.camp-facilities-confirm-actions,.camp-living-confirm-actions,.camp-official-note-actions) > a:first-child:hover { background:var(--season-deep); }
body[data-season] .camp-mobile-menu-contact svg { background:var(--season-wash); color:var(--season-deep); }
body[data-season] :is(.camp-parent-guide-heading,.camp-promo-album-copy,.camp-location-heading) h2 { color:var(--season-ink); }
body[data-season] :is(.camp-parent-guide-heading>div>p,.camp-promo-album-copy>p,.camp-location-heading>div>p,.camp-about-intro>p) { color:var(--season-accent); }
body[data-season] .camp-parent-letter>p { color:var(--season-deep); }
/* Existing page layouts use their own tokens; keep them on the same palette. */
body.camp-page[data-season] #top {
 --about-ink:var(--season-ink); --about-muted:color-mix(in srgb,var(--season-ink) 78%,var(--season-paper)); --about-line:var(--season-line);
 --apply-ink:var(--season-ink); --apply-muted:var(--about-muted); --apply-line:var(--season-line);
 --docs-ink:var(--season-ink); --docs-muted:var(--about-muted); --docs-line:var(--season-line);
 --parent-ink:var(--season-ink); --parent-muted:var(--about-muted); --parent-line:var(--season-line);
 --interior-ink:var(--season-ink); --interior-muted:var(--about-muted); --interior-line:var(--season-line);
}
body.camp-page[data-season] #top.camp-interior :is(.camp-services-contact-actions,.camp-safety-family-actions,.camp-staff-confirm-actions,.camp-facilities-confirm-actions,.camp-living-confirm-actions) a:first-child,
body.camp-page[data-season] #top :is(.camp-paperwork-link,.camp-documents-cabinet .camp-documents-generator-action a) { background:var(--season-accent); border-color:var(--season-accent); color:#fff; }
/* Keep the original dark summer footer in every calendar theme. */
body[data-season] :is(.camp-footer,.prep-public-footer) {
 --season-paper:#fffdf7;
 --season-line:#d6ddc6;
 --season-accent:#356344;
}
body[data-season] .camp-footer .camp-footer-frame {
 background:radial-gradient(ellipse at 15% 0%,color-mix(in srgb,var(--brand-gold) 13%,transparent),transparent 38rem),linear-gradient(135deg,#294636,#142a23);
 color:var(--season-paper); border-color:color-mix(in srgb,var(--season-line) 22%,transparent);
}
body[data-season] .camp-footer :is(.camp-footer-nav-group h3,.camp-footer-phone) { color:var(--season-paper); }
body[data-season] .camp-footer-bottom { border-color:color-mix(in srgb,var(--season-line) 20%,transparent); }
body[data-season] .camp-footer-contact-panel { background:color-mix(in srgb,var(--season-paper) 5%,transparent); border-color:color-mix(in srgb,var(--season-line) 18%,transparent); }
body[data-season] .camp-footer-round-action { background:var(--season-accent); box-shadow:none; }
body[data-season] .prep-public-footer { background:linear-gradient(135deg,#294636,#142a23); color:#fffdf7; border-color:#d6ddc638; }
body[data-season] .prep-public-footer a { color:#fffdf7; }
