:root {
  --green:#244b3b;
  --green-dark:#173b2d;
  --green-soft:#dfe9df;
  --cream:#fbf7ef;
  --paper:#fffdf8;
  --gold:#c79342;
  --gold-soft:#f2dfaa;
  --clay:#b96f53;
  --clay-soft:#f1dfd7;
  --sky:#dcecf0;
  --sky-ink:#40666d;
  --ink:#27332e;
  --muted:#657169;
  --line:rgba(36,75,59,.14);
  --serif:Lora,Georgia,serif;
  --sans:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-family:var(--sans);
  color:var(--ink);
  background:var(--cream);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);line-height:1.6}
a{color:inherit}
img{display:block;width:100%}
.shell{width:min(1140px,calc(100% - 40px));margin:0 auto}
.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:16px;top:16px;z-index:30;background:#fff;padding:10px 14px;border-radius:8px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.umbrella-header{position:sticky;top:0;z-index:20;background:rgba(251,247,239,.93);border-bottom:1px solid rgba(36,75,59,.09);backdrop-filter:blur(14px)}
.header-inner{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.umbrella-brand{display:inline-flex;align-items:center;gap:11px;text-decoration:none;color:var(--green)}
.umbrella-brand>span:last-child{display:grid;line-height:1}
.umbrella-brand strong{font:700 1.18rem/1 var(--serif)}
.umbrella-brand small{margin-top:5px;color:var(--gold);font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.ridge-mark{position:relative;width:42px;height:34px;display:inline-block;overflow:hidden;border-radius:50% 50% 34% 34%;background:#f1d985}
.ridge-mark::before,.ridge-mark::after{content:"";position:absolute;bottom:-6px;border-radius:50% 50% 0 0;transform:rotate(-8deg)}
.ridge-mark::before{width:45px;height:25px;left:-10px;background:#8aa778}
.ridge-mark::after{width:46px;height:22px;right:-15px;background:var(--green)}
.header-inner nav{display:flex;align-items:center;gap:20px;font-size:.9rem;font-weight:750}
.header-inner nav a{position:relative;text-decoration:none;padding:7px 0}
.header-inner nav a::after{content:"";position:absolute;left:0;right:100%;bottom:1px;height:2px;background:var(--gold);transition:right .2s ease}
.header-inner nav a:hover::after{right:0}

/* Brand gateway, intentionally unlike either detailed program page. */
.umbrella-hero{position:relative;overflow:hidden;padding:76px 0 72px}
.umbrella-hero::before{content:"";position:absolute;width:520px;height:520px;right:-190px;top:-250px;border-radius:50%;background:rgba(241,217,133,.42)}
.umbrella-hero::after{content:"";position:absolute;left:-8%;right:-8%;bottom:-92px;height:170px;border-radius:50% 50% 0 0;background:var(--green-soft);transform:rotate(-2deg)}
.hero-inner{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.18fr) minmax(300px,.82fr);gap:70px;align-items:center}
.hero-copy{max-width:720px}
.eyebrow{margin-bottom:14px;color:#986124;font-size:.76rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase}
h1,h2,h3{font-family:var(--serif)}
h1{margin:0 0 22px;color:var(--green-dark);font-size:clamp(3rem,5.6vw,5.2rem);line-height:.99;letter-spacing:-.042em}
.hero-lede{max-width:700px;margin:0;color:#3f4d46;font-size:clamp(1.05rem,1.9vw,1.24rem);line-height:1.68}
.hero-note{max-width:650px;margin:16px 0 0;color:var(--muted);line-height:1.62}
.hero-stage-map{position:relative;min-height:300px;display:grid;align-content:center;gap:13px}
.hero-stage-map::before{content:"";position:absolute;inset:25px 36px 25px 22px;border:1px solid rgba(36,75,59,.14);border-radius:54% 46% 52% 48% / 52% 58% 42% 48%;transform:rotate(-5deg);background:rgba(255,253,248,.68)}
.stage-choice{position:relative;z-index:1;display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:15px 17px;border-radius:18px;text-decoration:none;background:rgba(255,253,248,.94);border:1px solid rgba(36,75,59,.12);box-shadow:0 12px 34px rgba(36,75,59,.07);transition:transform .2s ease,box-shadow .2s ease}
.stage-choice:hover{transform:translateX(4px);box-shadow:0 16px 38px rgba(36,75,59,.12)}
.stage-dot{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-weight:850;font-size:.75rem}
.stage-choice.preschool .stage-dot{background:var(--clay-soft);color:#8c4d38}
.stage-choice.kidsclub .stage-dot{background:var(--gold-soft);color:#77541c}
.stage-choice strong{display:block;color:var(--green-dark);font-size:1rem}
.stage-choice small{display:block;margin-top:2px;color:var(--muted);font-size:.78rem;line-height:1.35}
.stage-choice>span:last-child{color:var(--green);font-size:1.3rem;font-weight:800}
.stage-caption{position:relative;z-index:1;margin:8px 0 0;color:var(--muted);font-size:.78rem;text-align:center}

.programs{position:relative;z-index:2;padding:40px 0 92px;background:linear-gradient(180deg,var(--green-soft) 0 54px,var(--cream) 54px)}
.programs-heading{max-width:720px;margin:0 0 34px}
.programs-heading .eyebrow{margin-bottom:8px}
.programs-heading h2{margin:0;color:var(--green-dark);font-size:clamp(2rem,3.4vw,3rem);line-height:1.08}
.program-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px;align-items:start}
.program-card{position:relative;overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none}
.program-card figure{position:relative;margin:0;aspect-ratio:4/3;overflow:hidden;border-radius:30px;background:#e8e5dc;box-shadow:0 20px 44px rgba(36,75,59,.11)}
.program-card figure::after{content:"";position:absolute;inset:auto 0 0;height:35%;background:linear-gradient(180deg,transparent,rgba(23,59,45,.32));pointer-events:none}
.program-card figure img{height:100%;object-fit:cover}
.program-card.preschool-card figure{transform:rotate(-1.1deg)}
.program-card.kidsclub-card{margin-top:56px}
.program-card.kidsclub-card figure{transform:rotate(1.1deg)}
.program-image-label{position:absolute;z-index:2;left:18px;bottom:16px;padding:7px 10px;border-radius:999px;background:rgba(255,253,248,.92);color:var(--green-dark);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.program-copy{position:relative;width:calc(100% - 34px);margin:-28px 0 0 34px;padding:27px 28px 28px;border-radius:24px;background:var(--paper);box-shadow:0 16px 38px rgba(36,75,59,.09)}
.kidsclub-card .program-copy{margin-left:0;margin-right:34px}
.preschool-card .program-copy{border-top:5px solid var(--clay)}
.kidsclub-card .program-copy{border-top:5px solid var(--gold)}
.program-age{display:block;margin-bottom:6px;color:#8f5d28;font-size:.72rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.program-card h2{margin:0 0 12px;color:var(--green-dark);font-size:clamp(1.85rem,3vw,2.55rem);line-height:1.08}
.program-card p{margin:0;color:#4b5650;line-height:1.67}
.program-facts{display:flex;flex-wrap:wrap;gap:0;margin:20px 0 22px;color:var(--green);font-size:.82rem;font-weight:750}
.program-facts span{display:inline}
.program-facts span+span::before{content:"•";margin:0 8px;color:var(--gold)}
.program-button{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0;background:transparent;color:var(--green);font-weight:850;text-decoration:none;border-bottom:2px solid rgba(36,75,59,.26)}
.program-button:hover{border-bottom-color:var(--green)}

/* Kids Club is flexible, not an all-or-nothing package. */
.kidsclub-flex-intro{margin-bottom:22px!important;padding:16px 18px;border-radius:16px;background:#f8f3e8;border:1px solid rgba(199,147,66,.2);color:#45524b!important}
.kidsclub-flex-intro strong{color:var(--green-dark)}
.kidsclub-seasons{display:flex;flex-direction:column;gap:14px;margin:22px 0 18px}
.season-panel{position:relative;display:block;padding:20px 20px 18px;border:1px solid var(--line);border-radius:20px;background:#fff;transition:order .2s ease,box-shadow .2s ease,transform .2s ease,opacity .2s ease}
.season-panel-topline{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.season-badge{display:inline-flex;align-items:center;min-height:26px;padding:4px 9px;border-radius:999px;font-size:.66rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.season-kicker{color:var(--muted);font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;text-align:right}
.season-panel h3{margin:0 0 8px;color:var(--green-dark);font-size:1.25rem;line-height:1.22}
.season-panel>p{font-size:.91rem;line-height:1.58}
.season-panel>a{display:inline-flex;margin-top:11px;color:var(--green);font-size:.86rem;font-weight:850;text-decoration:none;border-bottom:1px solid rgba(36,75,59,.28)}
.season-panel>a:hover{border-bottom-color:var(--green)}
.choice-list{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0 12px}
.choice-list span{display:inline-flex;align-items:center;min-height:30px;padding:6px 9px;border-radius:999px;background:#edf2ea;color:var(--green);font-size:.75rem;font-weight:800}
.summer-choice-list span{background:#edf5f4;color:var(--sky-ink)}
.season-extra{padding-top:11px;border-top:1px solid var(--line);color:#59665f!important;font-size:.82rem!important}
.season-extra strong{color:var(--green-dark)}
.kidsclub-not-package{margin:4px 0 17px!important;color:#4d5b54!important;font-size:.84rem!important}
.kidsclub-not-package strong{color:var(--green-dark)}

/* School-year mode: school-day coverage leads; summer remains visible for planning. */
.season-school-year .school-year-panel{order:1;border-color:rgba(199,147,66,.42);background:linear-gradient(145deg,#fffdf8,#fbf4df);box-shadow:0 12px 30px rgba(94,73,30,.08)}
.season-school-year .school-year-panel .season-badge{background:var(--gold-soft);color:#6f501f}
.season-school-year .summer-panel{order:2;background:#fbfcfb;opacity:.86}
.season-school-year .summer-panel .season-badge{background:#edf5f4;color:var(--sky-ink)}

/* Summer mode: full-day summer care leads; school-year care stays visible for planning ahead. */
.season-summer .summer-panel{order:1;border-color:rgba(64,102,109,.38);background:linear-gradient(145deg,#eef7f6,#fbfdfc);box-shadow:0 13px 32px rgba(64,102,109,.12);transform:translateY(-2px)}
.season-summer .summer-panel .season-badge{background:#cfe6e8;color:#355d64}
.season-summer .school-year-panel{order:2;background:#fffdf9;opacity:.86}
.season-summer .school-year-panel .season-badge{background:#f4e7c3;color:#745825}
.season-summer .stage-choice.kidsclub{border-color:rgba(64,102,109,.28);box-shadow:0 14px 36px rgba(64,102,109,.11)}
.season-summer .stage-choice.kidsclub .stage-dot{background:#cfe6e8;color:#355d64}

.shared-values{padding:88px 0 92px;background:var(--green-dark);color:#fff}
.shared-inner{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:70px;align-items:start}
.shared-values .eyebrow{color:#efcb73}
.shared-values h2{margin:0;max-width:500px;color:#fff;font-size:clamp(2.25rem,4vw,3.55rem);line-height:1.08;letter-spacing:-.025em}
.value-grid{position:relative;display:grid;gap:0;counter-reset:value}
.value-grid::before{content:"";position:absolute;left:20px;top:18px;bottom:18px;width:1px;background:rgba(239,203,115,.42)}
.value-grid div{position:relative;counter-increment:value;display:grid;grid-template-columns:42px 1fr;column-gap:20px;padding:0 0 30px}
.value-grid div:last-child{padding-bottom:0}
.value-grid div::before{content:"0" counter(value);position:relative;z-index:1;width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:var(--green-dark);border:1px solid rgba(239,203,115,.62);color:#efcb73;font-size:.72rem;font-weight:850;letter-spacing:.06em}
.value-grid strong{display:block;padding-top:3px;color:#fff;font-size:1.08rem}
.value-grid span{display:block;grid-column:2;margin-top:-13px;color:rgba(255,255,255,.78);line-height:1.6}

footer{padding:30px 0;background:#102b21;color:rgba(255,255,255,.76);border-top:1px solid rgba(255,255,255,.08)}
.footer-inner{display:grid;grid-template-columns:1fr auto auto;gap:28px;align-items:center;font-size:.86rem}
.footer-inner>div{display:grid;gap:3px}
.footer-inner strong{color:#fff}
.footer-inner nav{display:flex;gap:18px}
.footer-inner a{color:inherit;text-decoration:none}
.footer-inner a:hover{color:#fff}

@media(max-width:900px){
  .hero-inner{grid-template-columns:1fr;gap:36px}
  .hero-stage-map{max-width:680px;min-height:0;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:8px}
  .hero-stage-map::before{inset:-15px 5% -15px}
  .stage-choice{grid-template-columns:auto 1fr}
  .stage-choice>span:last-child{display:none}
  .stage-caption{grid-column:1/-1}
  .program-grid{gap:24px}
  .program-copy{width:calc(100% - 18px);margin-left:18px}
  .kidsclub-card .program-copy{margin-right:18px}
  .shared-inner{gap:42px}
}

@media(max-width:720px){
  .shell{width:min(100% - 28px,680px)}
  .header-inner{min-height:70px;gap:10px}
  .header-inner nav{gap:10px;font-size:.76rem}
  .umbrella-brand strong{font-size:.98rem}
  .umbrella-brand small{font-size:.62rem}
  .ridge-mark{width:34px;height:29px}
  .umbrella-hero{padding:52px 0 68px}
  .umbrella-hero::before{width:300px;height:300px;right:-150px;top:-145px}
  .umbrella-hero::after{bottom:-115px;height:160px}
  h1{font-size:clamp(2.55rem,12vw,3.65rem)}
  .hero-lede{font-size:1.02rem}
  .hero-stage-map{grid-template-columns:1fr;gap:10px}
  .stage-choice{grid-template-columns:auto 1fr auto;padding:13px 14px}
  .stage-choice>span:last-child{display:block}
  .stage-caption{grid-column:auto}
  .programs{padding:34px 0 66px}
  .programs-heading{margin-bottom:26px}
  .program-grid{grid-template-columns:1fr;gap:44px}
  .program-card.kidsclub-card{margin-top:0}
  .program-card figure{aspect-ratio:16/10;border-radius:24px}
  .program-card.preschool-card figure,.program-card.kidsclub-card figure{transform:none}
  .program-copy,.kidsclub-card .program-copy{width:calc(100% - 16px);margin:-22px 0 0 16px;padding:24px 22px 25px}
  .program-image-label{left:14px;bottom:13px}
  .season-panel{padding:18px 17px 17px}
  .season-panel-topline{align-items:flex-start;flex-direction:column;gap:5px}
  .season-kicker{text-align:left}
  .shared-values{padding:62px 0}
  .shared-inner{grid-template-columns:1fr;gap:38px}
  .value-grid div{column-gap:16px;padding-bottom:26px}
  .footer-inner{grid-template-columns:1fr;gap:16px}
  .footer-inner nav{flex-wrap:wrap}
}

@media(max-width:540px){
  .umbrella-brand>span:last-child{display:none}
  .header-inner nav{margin-left:auto;gap:11px;font-size:.76rem}
}
