:root{
  --bg:#FFF8EC;
  --bg-alt:#FF3E96;
  --section-purple:#B24BF5;
  --section-green:#16B84A;
  --section-mint:#00E0A8;
  --surface:#FFFFFF;
  --fg:#241F3A;
  --fg-soft:#5B5478;
  --accent:#FF3B63;
  --accent-ink:#FFFFFF;
  --accent-2:#00BFA6;
  --accent-3:#FFC400;
  --accent-4:#9D4EDD;
  --accent-5:#7ED957;
  --accent-6:#2FB4F2;
  --border:#241F3A;
  --shadow: 6px 6px 0 rgba(36,31,58,0.9);
  --radius: 22px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#1C1730; --bg-alt:#C81874; --section-purple:#6B1FC2; --section-green:#0E7A33; --section-mint:#00946F;
    --surface:#2A2444; --fg:#FFF8EC; --fg-soft:#C9C2E0;
    --accent:#FF6B8B; --accent-ink:#1C1730; --accent-2:#2DE1C7; --accent-3:#FFD93D;
    --accent-4:#B57CFF; --accent-5:#9BE86B; --accent-6:#5FC6FF;
    --border:#FFF8EC; --shadow: 6px 6px 0 rgba(0,0,0,0.55);
  }
}
:root[data-theme="dark"]{
  --bg:#1C1730; --bg-alt:#C81874; --section-purple:#6B1FC2; --section-green:#0E7A33; --section-mint:#00946F;
  --surface:#2A2444; --fg:#FFF8EC; --fg-soft:#C9C2E0;
  --accent:#FF6B8B; --accent-ink:#1C1730; --accent-2:#2DE1C7; --accent-3:#FFD93D;
  --accent-4:#B57CFF; --accent-5:#9BE86B; --accent-6:#5FC6FF;
  --border:#FFF8EC; --shadow: 6px 6px 0 rgba(0,0,0,0.55);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;background:var(--bg);color:var(--fg);
  font-family:'Nunito',sans-serif;line-height:1.5;overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;}
h1,h2,h3{font-family:'Baloo 2',sans-serif;margin:0 0 .4em;line-height:1.1;}
.tag{font-family:'Caveat',cursive;}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px;position:relative;}
.narrow{max-width:760px;}
.btn{
  display:inline-flex;align-items:center;gap:8px;font-family:'Baloo 2',sans-serif;font-weight:700;font-size:1rem;
  padding:14px 26px;border-radius:999px;border:3px solid var(--border);text-decoration:none;cursor:pointer;
  background:var(--accent);color:var(--accent-ink);box-shadow:var(--shadow);transition:transform .15s ease;white-space:nowrap;
}
.btn:hover{transform:translate(-2px,-2px) rotate(-1deg);}
.btn.c2{background:var(--accent-2);color:var(--fg);}
.btn.c3{background:var(--accent-3);color:var(--fg);}
.btn.c4{background:var(--accent-4);color:#fff;}
.btn.c5{background:var(--accent-5);color:var(--fg);}
.btn.c6{background:var(--accent-6);color:var(--fg);}
.btn.ghost{background:var(--surface);color:var(--fg);}
.btn.sm{padding:9px 18px;font-size:.85rem;box-shadow:4px 4px 0 rgba(36,31,58,0.9);}

@keyframes float{0%,100%{transform:translateY(0) rotate(var(--r,0deg));}50%{transform:translateY(-10px) rotate(var(--r,0deg));}}
.floatie{position:absolute;font-size:1.8rem;animation:float 4s ease-in-out infinite;filter:drop-shadow(2px 2px 0 rgba(0,0,0,.15));pointer-events:none;}

.confetti-bg{
  background-image:
    radial-gradient(circle, var(--accent) 6px, transparent 7px),
    radial-gradient(circle, var(--accent-3) 5px, transparent 6px),
    radial-gradient(circle, var(--accent-2) 4px, transparent 5px),
    radial-gradient(circle, var(--accent-4) 5px, transparent 6px);
  background-size: 160px 160px, 130px 130px, 110px 110px, 190px 190px;
  background-position: 10px 20px, 90px 80px, 40px 120px, 140px 10px;
  background-repeat: repeat;
}

.stripe-divider{
  height:16px;border-top:3px solid var(--border);border-bottom:3px solid var(--border);
  background:repeating-linear-gradient(45deg,
    var(--accent) 0 16px, var(--accent-3) 16px 32px, var(--accent-2) 32px 48px,
    var(--accent-4) 48px 64px, var(--accent-6) 64px 80px, var(--accent-5) 80px 96px);
}

/* section color utilities, for subpage heroes/blocks */
.section-pink{background:var(--bg-alt);}
.section-green{background:var(--section-green);}
.section-purple{background:var(--section-purple);}
.section-mint{background:var(--section-mint);}
.section-gold{background:var(--accent-3);}
.section-navy{background:var(--fg);color:var(--bg);}
.section-navy h1, .section-navy h2{color:var(--bg);}

/* header */
header{position:sticky;top:0;z-index:50;background:var(--bg);border-bottom:3px solid var(--border);}
.nav-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;gap:16px;}
.brand{display:flex;align-items:center;gap:10px;font-family:'Baloo 2',sans-serif;font-weight:800;font-size:1.2rem;text-decoration:none;}
.brand img{height:42px;width:auto;}
nav.links{display:none;gap:18px;font-weight:700;font-size:.88rem;flex-wrap:wrap;}
nav.links a{text-decoration:none;position:relative;padding:4px 0;}
nav.links a.active{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:5px;text-decoration-color:var(--accent);}
nav.links a:nth-child(1):hover{color:var(--accent);}
nav.links a:nth-child(2):hover{color:var(--accent-2);}
nav.links a:nth-child(3):hover{color:var(--accent-4);}
nav.links a:nth-child(4):hover{color:var(--accent-6);}
nav.links a:nth-child(5):hover{color:var(--accent-3);}
nav.links a:nth-child(6):hover{color:var(--accent-5);}
nav.links a:nth-child(6):hover{color:var(--accent-5);}
nav.links a:nth-child(7):hover{color:var(--accent);}
nav.links a:nth-child(8):hover{color:var(--accent-2);}
nav.links a:nth-child(9):hover{color:var(--accent-4);}
.header-cta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end;}

/* mobile menu toggle */
.menu-toggle{
  display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;flex:0 0 auto;border:3px solid var(--border);border-radius:12px;
  background:var(--surface);cursor:pointer;
}
.menu-toggle span,.menu-toggle span::before,.menu-toggle span::after{
  content:"";display:block;width:20px;height:3px;background:var(--fg);border-radius:2px;position:relative;
}
.menu-toggle span::before{position:absolute;top:-7px;}
.menu-toggle span::after{position:absolute;top:7px;}
@media(min-width:960px){ .menu-toggle{display:none;} }

nav.links.open{
  display:flex;flex-direction:column;gap:16px;
  position:absolute;left:0;right:0;top:100%;
  background:var(--bg);border-bottom:3px solid var(--border);
  padding:22px 20px;box-shadow:var(--shadow);z-index:40;
}
@media(min-width:960px){
  nav.links{display:flex;position:static;flex-direction:row;padding:0;border:none;box-shadow:none;background:none;}
}

/* hero (homepage) */
.hero{position:relative;background:var(--bg-alt);overflow:hidden;}
.hero .wrap{display:grid;grid-template-columns:1fr;gap:36px;padding:52px 20px 70px;align-items:center;}
@media(min-width:860px){ .hero .wrap{grid-template-columns:1.05fr .95fr;padding:72px 20px 90px;} }
.est-badge{
  display:inline-block;background:var(--accent-3);border:3px solid var(--border);border-radius:999px;
  padding:6px 16px;font-weight:800;font-size:.8rem;letter-spacing:.06em;color:var(--fg);
  transform:rotate(-4deg);margin-bottom:18px;box-shadow:var(--shadow);
}
.hero h1{font-size:clamp(2.4rem,6vw,4rem);}
.hero h1 .pop{color:var(--accent-6);}
.hero h1 .hl{position:relative;white-space:nowrap;}
.hero h1 .hl::before{
  content:"";position:absolute;left:-6px;right:-6px;top:28%;bottom:8%;
  background:var(--accent-5);transform:skew(-8deg) rotate(-1deg);z-index:-1;opacity:.75;border-radius:6px;
}
.hero .tag{display:block;font-size:clamp(1.5rem,4vw,2.1rem);color:#fff;text-shadow:2px 2px 0 rgba(36,31,58,0.55);margin-top:10px;}
.hero p.lede{font-size:1.1rem;color:var(--fg);max-width:46ch;margin:18px 0 26px;font-weight:600;}
.hero-ctas{display:flex;flex-wrap:wrap;gap:14px;}
.hero-art{position:relative;}
.hero-art .frame{
  border:4px solid var(--border);border-radius:28px;overflow:hidden;box-shadow:10px 10px 0 rgba(36,31,58,0.9);
  transform:rotate(2deg);
}
.hero-art .frame img{width:100%;height:420px;object-fit:cover;}
.sticker{
  position:absolute;background:var(--surface);border:3px solid var(--border);border-radius:16px;
  padding:10px 14px;font-family:'Caveat',cursive;font-size:1.3rem;font-weight:700;
  box-shadow:5px 5px 0 rgba(36,31,58,0.9);
}
.sticker.one{top:-20px;left:-24px;transform:rotate(-9deg);color:var(--accent);}
.sticker.two{bottom:-18px;right:-14px;transform:rotate(7deg);color:var(--accent-2);}
.sticker.three{top:40%;right:-34px;transform:rotate(-6deg);color:var(--accent-4);background:var(--accent-3);display:none;}
@media(min-width:860px){ .sticker.three{display:block;} }

/* page-hero (subpages): simpler single-column banner */
.page-hero{position:relative;padding:50px 0 60px;overflow:hidden;}
.page-hero .wrap{text-align:center;}
.page-hero .est-badge{margin-bottom:16px;}
.page-hero h1{font-size:clamp(2.2rem,6vw,3.4rem);}
.page-hero p.lede{font-size:1.1rem;max-width:56ch;margin:14px auto 26px;font-weight:600;}
.page-hero .hero-ctas{justify-content:center;}
.page-hero .frame{
  max-width:620px;margin:34px auto 0;border:4px solid var(--border);border-radius:28px;overflow:hidden;
  box-shadow:10px 10px 0 rgba(36,31,58,0.9);transform:rotate(-1deg);
}
.page-hero .frame img{width:100%;max-height:380px;object-fit:cover;}

/* story (homepage) */
.story{padding:64px 0;background:var(--section-green);position:relative;overflow:hidden;}
.story .wrap{display:grid;gap:30px;grid-template-columns:1fr;}
@media(min-width:800px){ .story .wrap{grid-template-columns:.9fr 1.1fr;align-items:center;} }
.story h2{font-size:clamp(1.8rem,4vw,2.4rem);}
.story h2 span{color:var(--accent-4);}
.story-card{
  background:var(--surface);border:3px solid var(--border);border-radius:40% 8% 40% 8%/12% 40% 12% 40%;
  padding:34px;box-shadow:var(--shadow);transform:rotate(-1.5deg);
}

/* generic content section */
.content-section{padding:60px 0;}
.content-section .head{text-align:center;margin-bottom:34px;}
.content-section h2{font-size:clamp(1.8rem,4vw,2.4rem);}
.section-label{font-family:'Caveat',cursive;font-size:1.5rem;font-weight:700;margin-bottom:2px;}

/* info card (pricing / policy callouts) */
.info-card{
  background:var(--surface);border:3px solid var(--border);border-radius:var(--radius);
  padding:28px 30px;box-shadow:var(--shadow);
}
.info-card h3{font-size:1.2rem;}
.info-card + .info-card{margin-top:22px;}
.kv-grid{display:grid;grid-template-columns:auto auto;gap:4px 18px;margin:16px 0;font-weight:600;}
.kv-grid dt{font-weight:800;}

/* experiences / card grids (homepage + reused for sub-cards) */
.experiences{padding:20px 0 70px;background:var(--section-purple);border-top:3px solid var(--border);border-bottom:3px solid var(--border);}
.experiences .head{padding:50px 0 10px;text-align:center;}
.experiences .head h2{font-size:clamp(2rem,5vw,2.7rem);}
.card-grid{display:grid;gap:26px;grid-template-columns:1fr;margin-top:30px;}
@media(min-width:700px){ .card-grid{grid-template-columns:1fr 1fr;} }
.exp-card{
  background:var(--surface);border:3px solid var(--border);border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow);display:flex;flex-direction:column;border-top-width:8px;
}
.exp-card:nth-child(1){border-top-color:var(--accent);}
.exp-card:nth-child(2){border-top-color:var(--accent-2);}
.exp-card:nth-child(3){border-top-color:var(--accent-4);}
.exp-card:nth-child(4){border-top-color:var(--accent-6);}
.exp-card .img-wrap{height:200px;overflow:hidden;border-bottom:3px solid var(--border);}
.exp-card .img-wrap img{width:100%;height:100%;object-fit:cover;}
.exp-card .body{padding:22px;flex:1;display:flex;flex-direction:column;gap:10px;}
.exp-card h3{font-size:1.3rem;}
.exp-card p{color:var(--fg-soft);margin:0;flex:1;}
.exp-card .actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px;}

/* camps / events strip (homepage pills) */
.strip{padding:70px 0;background:var(--section-mint);}
.strip .head{text-align:center;margin-bottom:34px;}
.pill-grid{display:grid;gap:18px;grid-template-columns:1fr;}
@media(min-width:560px){ .pill-grid{grid-template-columns:repeat(2,1fr);} }
@media(min-width:900px){ .pill-grid{grid-template-columns:repeat(3,1fr);} }
.pill{
  background:var(--surface);border:3px solid var(--border);border-radius:18px;padding:22px 18px;
  text-align:center;box-shadow:4px 4px 0 rgba(36,31,58,0.9);text-decoration:none;border-bottom-width:7px;
  transition:transform .15s ease;
}
.pill:hover{transform:translateY(-4px) rotate(-1deg);}
.pill:nth-child(1){border-bottom-color:var(--accent-6);}
.pill:nth-child(2){border-bottom-color:var(--accent-3);}
.pill:nth-child(3){border-bottom-color:var(--accent-5);}
.pill:nth-child(4){border-bottom-color:var(--accent);}
.pill:nth-child(5){border-bottom-color:var(--accent-4);}
.pill:nth-child(6){border-bottom-color:var(--accent-6);}
.pill .emoji{font-size:1.8rem;display:block;margin-bottom:8px;}
.pill h3{font-size:1.05rem;margin-bottom:4px;}
.pill span.small{color:var(--fg-soft);font-size:.85rem;}

/* visit / contact block (reused on homepage + Visit page) */
.visit{background:var(--fg);color:var(--bg);padding:64px 0;position:relative;overflow:hidden;}
.visit .wrap{display:grid;gap:30px;grid-template-columns:1fr;}
@media(min-width:800px){ .visit .wrap{grid-template-columns:1fr 1fr;} }
.visit h2{color:var(--bg);}
.visit .hours{display:grid;grid-template-columns:auto auto;gap:4px 18px;margin:16px 0;font-weight:600;}
.visit a.map-link{color:var(--accent-3);font-weight:700;text-decoration:underline;}
.visit .socials{display:flex;gap:14px;margin-top:20px;}
.visit .socials a{
  width:42px;height:42px;border-radius:50%;background:var(--bg);color:var(--fg);
  display:flex;align-items:center;justify-content:center;font-weight:800;text-decoration:none;border:2px solid var(--accent-3);
}
.visit .socials a:nth-child(1){border-color:var(--accent);}
.visit .socials a:nth-child(2){border-color:var(--accent-6);}
.visit .socials a:nth-child(3){border-color:var(--accent-5);}

footer{padding:36px 0;text-align:center;font-size:.85rem;color:var(--fg);font-weight:600;background:var(--bg-alt);border-top:3px solid var(--border);}
footer .wrap{display:flex;flex-direction:column;gap:10px;align-items:center;}
footer nav{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;font-weight:700;font-size:.85rem;}
footer nav a{text-decoration:none;}
footer nav a:hover{text-decoration:underline;}

.draft-note{
  background:var(--accent-3);color:#241F3A;text-align:center;font-weight:700;
  padding:10px 16px;font-size:.85rem;border-bottom:3px solid var(--border);
}

/* misc content helpers used on subpages */
.lead-p{font-size:1.08rem;max-width:70ch;}
.muted{color:var(--fg-soft);}
.center{text-align:center;}
.gallery-grid{display:grid;gap:18px;grid-template-columns:repeat(2,1fr);margin:28px 0;}
@media(min-width:700px){ .gallery-grid{grid-template-columns:repeat(3,1fr);} }
.gallery-grid img{border:3px solid var(--border);border-radius:16px;box-shadow:4px 4px 0 rgba(36,31,58,.9);height:180px;width:100%;object-fit:cover;}
