:root{--navy:#1B365D;--navy-deep:#12253F;--grass:#4CAF3E;--ball:#E8792B;--sky:#EAF3FB;--ink:#1F2A3A;--ink-soft:#5B6878;--line:#D9E2EC}
*{box-sizing:border-box}
body{margin:0;font-family:"Nunito",system-ui,sans-serif;font-size:17px;line-height:1.6;color:var(--ink);background:#fff}
h1,h2,h3{font-family:"Fredoka","Nunito",sans-serif;font-weight:600;line-height:1.1;margin:0;color:var(--navy)}
h2{font-size:clamp(28px,4vw,40px);margin-bottom:20px}
a{color:var(--navy)}
a:focus-visible{outline:3px solid var(--ball);outline-offset:3px}
.wrap{max-width:1040px;margin:0 auto;padding:0 20px}
section{padding:56px 0}
.lead{font-size:19px;color:var(--ink-soft);max-width:40ch;margin:12px 0 24px}
.nav{position:sticky;top:0;background:#fff;border-bottom:1px solid var(--line);z-index:10}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-family:"Fredoka",sans-serif;font-weight:600;font-size:20px}
.mark{width:30px;height:30px;border-radius:50%;background:var(--ball);border:2px solid var(--navy)}
.nav nav{display:flex;gap:22px}.nav nav a{text-decoration:none;font-weight:600;font-size:15px}
.btn{display:inline-block;font-family:"Fredoka",sans-serif;font-weight:500;font-size:17px;padding:12px 22px;border-radius:999px;text-decoration:none;border:2px solid var(--navy);background:var(--navy);color:#fff}
.btn:hover{background:var(--navy-deep)}
.ages{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.age{padding:22px;border:2px solid var(--navy);border-radius:18px}
.age h3{font-size:24px}.age .range{color:var(--grass);font-weight:600;margin:4px 0 10px}.age p{margin:0;color:var(--ink-soft)}
.locs{display:grid;gap:16px}
.loc{display:grid;grid-template-columns:1fr auto auto;gap:16px;align-items:center;padding:20px 22px;border:1px solid var(--line);border-radius:18px;border-left:8px solid var(--grass)}
.loc h3{font-size:22px}.loc .meta{color:var(--ink-soft);margin:4px 0 0}
.price{font-family:"Fredoka",sans-serif;font-size:22px;color:var(--navy)}
.spots{display:block;font-family:"Nunito",sans-serif;font-size:14px;color:var(--grass);font-weight:600}
.spots.low{color:var(--ball)}
.loc.soon{border-left-color:var(--ball)}
.loc.soon .btn,.tt tr.soon .btn{background:transparent;color:var(--ink-soft);border-color:var(--line);pointer-events:none}
.loc.full .btn{background:var(--ball);border-color:var(--ball)}
.tt{width:100%;border-collapse:collapse;font-size:16px}
.tt th{text-align:left;font-family:"Fredoka",sans-serif;font-weight:500;color:var(--navy);padding:10px 12px;border-bottom:2px solid var(--navy)}
.tt td{padding:14px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
.tt .btn{padding:8px 16px;font-size:15px}
.waiver{margin:20px 0 0;color:var(--ink-soft);font-size:15px}
.embed{border:1px solid var(--line);border-radius:18px;overflow:hidden}
.embed.pending{display:none}.embed.pending+.placeholder{display:block}
.placeholder{display:none;border:2px dashed var(--line);border-radius:18px;padding:12px}
.reel-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.reel{aspect-ratio:4/5;border-radius:12px;background:var(--sky)}
.foot{background:var(--navy);color:#C9D6E8;padding:32px 20px;display:flex;justify-content:space-between;font-size:15px}
.foot a{color:#fff}
@media(max-width:760px){.ages{grid-template-columns:1fr}.reel-grid{grid-template-columns:repeat(3,1fr)}.nav nav{display:none}}
@media(max-width:640px){.loc{grid-template-columns:1fr auto}.loc .btn{grid-column:1/-1}.tt thead{display:none}.tt tr{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:12px 0;border-bottom:1px solid var(--line)}.tt td{border:0;padding:0}.tt td:last-child{grid-column:1/-1}}
