/*
  Brand palette, taken directly from the Omnia logo: midnight navy letters,
  with a royal-blue -> sky-cyan -> aqua wave running through them. Navy
  carries the structure, the blues carry action, and a cool ice-white keeps
  the page clean. (Variable names are kept from the old palette so nothing
  else in the stylesheet had to change: "gold" is now the cyan accent,
  "forest" is now royal blue.)
*/
:root{
  --navy:#02082A;          /* logo letters */
  --navy-deep:#01051C;
  --forest:#0359B0;        /* royal blue, from the logo wave */
  --forest-deep:#031B4A;
  --gold:#04B0DA;          /* sky cyan accent */
  --gold-soft:#5EDCE6;     /* aqua, for accents on dark backgrounds */
  --cream:#EAF4FB;
  --chalk:#FFFFFF;
  --sand:#DCE9F4;
  --ivory:#F3F8FC;
  --ink:#0A1433;
  --ink-soft:#4A5878;
  --line:rgba(2,8,42,0.12);
  --board:#010B24;
  --board-digit:#DDF6FB;
  --font-display:'Montserrat', 'Work Sans', -apple-system, sans-serif;
  --font-body:'Work Sans', -apple-system, sans-serif;
  --maxw:1100px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--ivory);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%;display:block;}
a{color:inherit;}
button{font-family:inherit;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
.center{text-align:center;}

/* ---------- top banner (first thing on the page) ---------- */
.top-banner{background:var(--gold);color:var(--navy-deep);padding:14px 0;}
.top-banner-inner{
  display:flex;align-items:center;justify-content:center;gap:20px;
  flex-wrap:wrap;text-align:center;
}
.top-banner-inner p{margin:0;font-weight:700;font-size:14px;letter-spacing:0.02em;}

/* ---------- sticky nav ---------- */
header.nav{
  position:sticky;top:0;z-index:50;
  background:rgba(2,8,42,0.94);
  backdrop-filter:blur(10px);
  transition:box-shadow .25s ease;
}
header.nav.scrolled{box-shadow:0 6px 24px rgba(0,0,0,0.18);}
.nav-inner{
  max-width:var(--maxw);margin:0 auto;padding:16px 32px;
  display:flex;align-items:center;justify-content:space-between;
  gap:20px;
  transition:padding .25s ease;
}
header.nav.scrolled .nav-inner{padding-top:10px;padding-bottom:10px;}
.wordmark{
  font-family:var(--font-display);
  font-size:20px;
  letter-spacing:0.02em;
  font-weight:600;
  color:var(--cream);
  text-decoration:none;
  transition:font-size .25s ease;
}
header.nav.scrolled .wordmark{font-size:17px;}
.wordmark em{font-style:normal;color:var(--gold-soft);}
nav.links{display:flex;gap:30px;align-items:center;}
nav.links a{
  font-size:13px;
  text-decoration:none;
  color:rgba(234,244,251,0.75);
  letter-spacing:0.04em;
  text-transform:uppercase;
  transition:color .2s ease;
}
nav.links a:hover{color:var(--cream);}
.nav-cta{flex-shrink:0;}

/* Hamburger toggle — hidden on desktop, shown at <=900px */
.nav-toggle{
  display:none;
  flex-direction:column;justify-content:center;gap:5px;
  width:44px;height:44px;padding:10px;
  background:transparent;border:0;cursor:pointer;
  margin:-10px -10px -10px 0; /* keep a big tap target without shifting layout */
}
.nav-toggle span{
  display:block;height:2px;width:100%;border-radius:2px;
  background:var(--cream);
  transition:transform .28s ease, opacity .2s ease;
}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:14px 28px;
  border-radius:2px;
  font-size:14px;
  letter-spacing:0.03em;
  text-decoration:none;
  border:1px solid transparent;
  cursor:pointer;
  transition:transform .15s ease, background .25s ease, box-shadow .25s ease;
  font-weight:600;
}
.btn:active{transform:scale(0.97);}
.btn-gold{background:var(--gold);color:var(--navy-deep);animation:ctaPop 1.8s ease-in-out infinite;}
.btn-gold:hover{background:#0396BD;box-shadow:0 10px 28px rgba(4,176,218,0.4);}
.btn-gold:hover,.btn-gold:active,.btn-gold:focus-visible{animation-play-state:paused;}
@keyframes ctaPop{
  0%,100%{transform:scale(1) translateY(0);}
  50%{transform:scale(1.045) translateY(-2px);}
}
@media (prefers-reduced-motion: reduce){
  .btn-gold{animation:none;}
}
.btn-navy{background:var(--navy);color:var(--cream);border-color:var(--navy);}
.btn-navy:hover{background:var(--navy-deep);}
.btn-ghost{border-color:var(--forest);color:var(--forest);background:transparent;}
.btn-ghost:hover{background:var(--forest);color:var(--cream);}
.btn-cream{border-color:var(--navy-deep);color:var(--navy-deep);background:transparent;}
.btn-cream:hover{background:var(--navy-deep);color:var(--cream);}
.btn-sm{padding:10px 20px;font-size:12px;}
.btn-full{width:100%;justify-content:center;}
.btn:disabled{opacity:0.5;cursor:not-allowed;transform:none;}

/* ---------- shared section head ---------- */
section{padding:100px 0;}
.section-head{max-width:640px;margin:0 auto 52px;text-align:center;}
.section-eyebrow{
  font-size:12px;letter-spacing:0.16em;text-transform:uppercase;
  color:var(--gold);margin:0 0 14px;font-weight:600;
}
.section-head h2{
  font-family:var(--font-display);
  font-size:clamp(28px,3.6vw,40px);
  line-height:1.2;
  margin:0 0 16px;
  font-weight:600;
}
.section-head p{color:var(--ink-soft);font-size:16px;margin:0;}

/* ---------- SECTION: hero + 1-on-1 (solid navy — no fade) ---------- */
.section-hero{
  position:relative;overflow:hidden;
  background:linear-gradient(160deg, var(--navy) 0%, var(--navy-deep) 100%);
  color:var(--cream);
  padding:80px 0 90px;
}
.section-hero::before{
  content:'';
  position:absolute;top:-30%;left:50%;transform:translateX(-50%);
  width:1000px;height:1000px;
  background:radial-gradient(circle, rgba(4,176,218,0.20) 0%, rgba(4,176,218,0) 68%);
  pointer-events:none;z-index:0;
}
.section-hero::after{
  content:'';
  position:absolute;inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity:0.05;mix-blend-mode:overlay;pointer-events:none;z-index:0;
}
.section-hero > .wrap{position:relative;z-index:1;}

@keyframes heroFadeUp{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}
.hero-fade{opacity:0;animation:heroFadeUp .7s ease forwards;}
.hero-fade.d1{animation-delay:.05s;}
.hero-fade.d2{animation-delay:.15s;}
.hero-fade.d3{animation-delay:.25s;}
.hero-fade.d4{animation-delay:.4s;}
.hero-fade.d5{animation-delay:.55s;}
.hero-fade.d6{animation-delay:.65s;}

.prehead{
  font-size:14px;color:rgba(234,244,251,0.6);
  max-width:600px;margin:0 auto 20px;font-style:italic;
}
.section-hero .eyebrow{
  font-size:13px;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--gold-soft);margin:0 0 18px;
}
.section-hero h1{
  font-family:var(--font-display);
  font-size:clamp(28px,4.2vw,46px);
  line-height:1.12;font-weight:700;
  max-width:840px;margin:0 auto 28px;
  letter-spacing:-0.01em;
  text-transform:uppercase;
}
.section-hero .sub{
  font-size:17px;font-weight:400;color:rgba(234,244,251,0.75);
  max-width:540px;margin:0 auto 44px;
}
.quiz-trigger{
  display:block;width:100%;max-width:620px;margin:0 auto 40px;
  background:rgba(4,176,218,0.06);
  border:1.5px dashed rgba(4,176,218,0.45);
  border-radius:10px;padding:30px 30px 26px;
  cursor:pointer;text-align:center;
  transition:border-color .2s ease,background .2s ease,transform .15s ease;
}
.quiz-trigger:hover{border-color:var(--gold);background:rgba(4,176,218,0.1);transform:translateY(-1px);}
.quiz-trigger-badge{
  display:inline-flex;align-items:center;gap:7px;
  background:var(--gold);color:var(--navy-deep);
  font-size:11px;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;
  padding:6px 14px;border-radius:20px;margin-bottom:16px;
}
.quiz-trigger-headline{
  display:block;font-family:var(--font-display);font-weight:600;
  font-size:clamp(17px,2.2vw,21px);color:var(--gold-soft);
  margin-bottom:8px;line-height:1.3;
}
.quiz-trigger-sub{display:block;font-size:14px;color:rgba(234,244,251,0.65);margin-bottom:20px;}
.quiz-trigger-cta{
  display:inline-flex;align-items:center;gap:8px;
  border:1px solid var(--gold);color:var(--gold-soft);
  font-size:13px;font-weight:700;letter-spacing:0.03em;text-transform:uppercase;
  padding:10px 20px;border-radius:24px;
  transition:background .2s ease,color .2s ease;
}
.quiz-trigger:hover .quiz-trigger-cta{background:var(--gold);color:var(--navy-deep);}
.hero-cta{margin-bottom:44px;}
.trust-strip{
  display:flex;justify-content:center;gap:56px;flex-wrap:wrap;
  padding-top:30px;border-top:1px solid rgba(234,244,251,0.16);
}
.trust-stat{display:flex;flex-direction:column;align-items:center;gap:6px;}
.trust-stat .tnum{font-family:var(--font-display);font-size:26px;color:var(--gold-soft);font-weight:600;}
.trust-stat .tlabel{font-size:12px;letter-spacing:0.06em;text-transform:uppercase;color:rgba(234,244,251,0.72);}

.mechanism{max-width:640px;margin:64px auto 0;text-align:center;}
.mechanism p{font-size:16px;color:rgba(234,244,251,0.82);margin:0;}

.session-tags{
  display:flex;justify-content:center;gap:10px;flex-wrap:wrap;
  margin:36px 0 40px;
}
.session-tag{
  border:1px solid rgba(234,244,251,0.25);
  color:rgba(234,244,251,0.85);
  padding:8px 16px;border-radius:20px;font-size:13px;
}
.calendly-wrap{background:var(--chalk);border:1px solid var(--line);border-radius:4px;overflow:hidden;max-width:720px;margin:0 auto;}

/* ---------- SECTION: credentials (cream -> sand) ---------- */
.section-credentials{
  background:linear-gradient(180deg, var(--cream) 0%, var(--sand) 100%);
}
.bio-block{max-width:720px;margin:0 auto 56px;text-align:center;}
.coach-photo{
  width:160px;height:160px;border-radius:50%;
  object-fit:cover;margin:0 auto 26px;
  border:3px solid var(--gold-soft);
}
.bio-copy{font-size:17px;color:var(--ink-soft);max-width:620px;margin:0 auto;}

/* Hairline gradient border instead of a flat box — padding-box/border-box
   double-background trick, no extra wrapper element needed. */
.credentials-panel{
  max-width:680px;margin:0 auto 70px;padding:8px 32px;border-radius:8px;
  border:1px solid transparent;
  background:
    linear-gradient(var(--cream), var(--cream)) padding-box,
    linear-gradient(135deg, var(--gold-soft), transparent 55%) border-box;
}
.credentials-list{list-style:none;padding:0;margin:0;}
.credentials-list li{
  display:flex;gap:14px;align-items:flex-start;
  padding:16px 0;border-bottom:1px solid rgba(2,8,42,0.1);
  font-size:15px;color:var(--ink-soft);text-align:left;
  /* Stagger target: opacity/transform here, cascade timing below via
     .stagger-reveal.in li:nth-child(n). Adjust the per-item delay there. */
  opacity:0;transform:translateY(12px);
  transition:opacity .5s ease, transform .5s ease;
}
.credentials-list li:last-child{border-bottom:none;}
.stagger-reveal.in .credentials-list li{opacity:1;transform:translateY(0);}
.credentials-list li:nth-child(1){transition-delay:.03s;}
.credentials-list li:nth-child(2){transition-delay:.09s;}
.credentials-list li:nth-child(3){transition-delay:.15s;}
.credentials-list li:nth-child(4){transition-delay:.21s;}
.credentials-list li:nth-child(5){transition-delay:.27s;}
.credentials-list li:nth-child(6){transition-delay:.33s;}
.credentials-list li:nth-child(7){transition-delay:.39s;}
.c-icon{
  width:22px;height:22px;flex-shrink:0;border-radius:50%;
  background:var(--forest);color:var(--cream);
  display:flex;align-items:center;justify-content:center;
  font-size:12px;
}

.testimonials{max-width:760px;margin:0 auto;}
.sample-flag{font-size:12px;color:var(--ink-soft);opacity:0.7;margin:0 0 30px;font-style:italic;}

/* Native scroll-snap track — gives real touch/trackpad drag for free,
   auto-advance below just calls track.scrollTo(). */
.testimonial-viewport{overflow:hidden;}
.testimonial-track{
  display:flex;overflow-x:auto;scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;min-height:320px;
}
.testimonial-track::-webkit-scrollbar{display:none;}
.testimonial-slide{
  flex:0 0 100%;scroll-snap-align:center;
  display:flex;flex-direction:column;align-items:center;
  padding:0 12px;text-align:center;
}
.testimonial-avatar{
  width:48px;height:48px;border-radius:50%;
  background:var(--forest);color:var(--cream);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-display);font-size:15px;font-weight:600;
  margin-bottom:12px;flex-shrink:0;
}
.testimonial-stars{color:var(--gold);font-size:15px;letter-spacing:2px;margin-bottom:14px;}
.testimonial p{font-family:var(--font-display);font-size:17px;font-style:italic;color:var(--ink);margin:0 0 14px;line-height:1.5;}
.testimonial cite{font-size:14px;color:var(--ink-soft);font-style:normal;font-weight:600;}
.testimonial cite em{opacity:0.65;font-style:italic;display:block;margin-top:2px;font-size:12px;}
.reviews-more{margin:22px 0 0;font-size:14px;}
.reviews-more a{color:var(--forest);font-weight:600;text-decoration:none;border-bottom:1px solid rgba(3,89,176,0.3);padding-bottom:1px;display:inline-flex;align-items:center;gap:6px;}
.reviews-more a:hover{color:var(--gold);border-bottom-color:var(--gold);}
.testimonial-dots{display:flex;justify-content:center;gap:8px;margin-top:24px;}
.tdot{width:8px;height:8px;border-radius:50%;background:rgba(2,8,42,0.2);border:none;cursor:pointer;padding:0;}
.tdot.active{background:var(--forest);}

/* ---------- SECTION: summer camp (forest -> deep green), no pricing here ---------- */
.section-camp{
  background:linear-gradient(180deg, var(--forest) 0%, var(--forest-deep) 100%);
  color:var(--cream);
}
.section-camp .section-eyebrow{color:var(--gold-soft);}
.section-camp .section-head h2{color:var(--cream);}
.section-camp .section-head p{color:rgba(234,244,251,0.78);}
/* At-a-glance camp facts. The daily hours are the standout — parents kept
   missing them — so the middle card is scaled up and gold-bordered. */
.camp-facts{
  display:flex;justify-content:center;align-items:stretch;
  flex-wrap:wrap;gap:16px;
  margin:38px auto 40px;
}
.camp-fact{
  flex:1 1 180px;max-width:240px;
  display:flex;flex-direction:column;align-items:center;gap:6px;
  padding:22px 18px;
  background:rgba(234,244,251,0.05);
  border:1px solid rgba(234,244,251,0.16);
  border-radius:10px;
}
.cf-label{
  font-size:12px;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--gold-soft);font-weight:600;
}
.cf-value{
  font-family:var(--font-display);
  font-size:clamp(22px,3vw,30px);font-weight:600;color:var(--cream);
  line-height:1.05;text-align:center;
}
.camp-fact-time{
  background:rgba(4,176,218,0.12);
  border-color:rgba(4,176,218,0.55);
  transform:scale(1.06);
}
.camp-fact-time .cf-value{
  font-size:clamp(30px,4.6vw,46px);
  color:var(--gold-soft);
  letter-spacing:0.01em;
}
@media (max-width:600px){
  .camp-facts{gap:12px;}
  .camp-fact{flex:1 1 100%;max-width:340px;padding:16px;flex-direction:row;justify-content:space-between;}
  .camp-fact-time{transform:none;}
  .cf-value{text-align:right;}
}

.camp-cta{text-align:center;}
.camp-cta .btn{margin-bottom:14px;}
.camp-cta p{font-size:13px;color:rgba(234,244,251,0.6);margin:0;}

/* ---------- SECTION: contact (ivory) ---------- */
/* ---------- SECTION: shop (forest -> sand transition, mirrors Shopify) ---------- */
.section-shop{
  background:linear-gradient(180deg, var(--sand) 0%, var(--ivory) 100%);
  color:var(--ink);
}
.section-shop .section-eyebrow{color:var(--gold);}
.shop-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(240px, 1fr));
  gap:22px;
  margin-top:44px;
}
.shop-status{
  grid-column:1/-1;text-align:center;color:var(--ink-soft);
  font-size:15px;padding:30px 0;margin:0;
}
.shop-card{
  display:flex;flex-direction:column;
  background:var(--chalk);
  border:1px solid var(--line);
  border-radius:8px;
  overflow:hidden;
  text-decoration:none;color:inherit;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.shop-card:hover{
  transform:translateY(-4px);
  box-shadow:0 14px 30px rgba(2,8,42,0.12);
  border-color:rgba(4,176,218,0.5);
}
.shop-card-media{
  position:relative;
  aspect-ratio:1/1;
  background:var(--sand);
  overflow:hidden;
}
.shop-card-media img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .4s ease;
}
.shop-card:hover .shop-card-media img{transform:scale(1.05);}
.shop-cat{
  position:absolute;top:10px;left:10px;
  background:rgba(2,8,42,0.82);color:var(--cream);
  font-size:11px;letter-spacing:0.06em;text-transform:uppercase;
  padding:4px 9px;border-radius:20px;font-weight:600;
}
.shop-card-body{
  display:flex;flex-direction:column;gap:8px;
  padding:16px 16px 18px;flex:1;
}
.shop-card-title{
  font-family:var(--font-display);
  font-size:16px;font-weight:600;line-height:1.3;color:var(--ink);margin:0;
}
.shop-sizes{font-size:12px;color:var(--ink-soft);margin:0;}
.shop-card-foot{
  display:flex;align-items:center;justify-content:space-between;
  gap:10px;margin-top:auto;padding-top:6px;
}
.shop-price{font-family:var(--font-display);font-size:19px;font-weight:600;color:var(--forest);}
.shop-price .from{font-size:11px;font-weight:500;color:var(--ink-soft);margin-right:3px;text-transform:uppercase;letter-spacing:0.05em;}
.shop-buy{
  display:inline-flex;align-items:center;gap:6px;
  background:var(--navy);color:var(--cream);
  border:none;border-radius:22px;
  font-family:var(--font-body);font-size:13px;font-weight:600;
  padding:8px 15px;cursor:pointer;text-decoration:none;
  transition:background .2s ease, transform .2s ease;
}
.shop-card:hover .shop-buy{background:var(--gold);color:var(--navy-deep);}
.shop-buy svg{width:13px;height:13px;}
.shop-foot{text-align:center;margin-top:40px;}
@media (max-width:600px){
  .shop-grid{grid-template-columns:repeat(2, 1fr);gap:14px;}
  .shop-card-body{padding:12px 12px 14px;}
  .shop-card-title{font-size:14px;}
  .shop-buy{padding:7px 12px;font-size:12px;}
}

/* Honeypot spam trap. Positioned off-screen rather than display:none, which
   smarter bots detect and skip. Real users never see or tab into it. */
.hp-field{
  position:absolute;left:-9999px;top:auto;
  width:1px;height:1px;overflow:hidden;
}

.section-contact{background:var(--ivory);padding-bottom:80px;}
.contact-form-panel{max-width:560px;margin:0;}
.contact-grid{
  display:grid;grid-template-columns:0.85fr 1.15fr;gap:48px;
  max-width:900px;margin:0 auto;align-items:start;
}
.contact-info{
  background:var(--chalk);border-radius:4px;padding:36px;
  border:1px solid transparent;
  background-clip:padding-box;
  background-image:
    linear-gradient(var(--chalk), var(--chalk)),
    linear-gradient(135deg, var(--gold-soft), transparent 55%);
  background-origin:border-box;
}
.contact-line{
  display:flex;align-items:center;gap:12px;
  font-size:15px;color:var(--ink);
  padding:14px 0;border-bottom:1px solid var(--line);
}
.contact-line:last-child{border-bottom:none;}
.contact-line em{color:var(--ink-soft);font-style:italic;font-size:13px;}
.contact-icon{
  flex-shrink:0;width:36px;height:36px;border-radius:50%;
  background:var(--forest);color:var(--cream);
  display:flex;align-items:center;justify-content:center;
}
.contact-icon-btn{
  margin-left:auto;flex-shrink:0;width:34px;height:34px;border-radius:50%;
  border:1px solid var(--line);color:var(--forest);
  display:flex;align-items:center;justify-content:center;
  transition:background .2s ease,color .2s ease;
}
.contact-icon-btn:hover{background:var(--forest);color:var(--cream);}
.contact-icon-whatsapp:hover{background:#25D366;color:#fff;border-color:#25D366;}

/* ---------- shared form panel (contact + enroll) ---------- */
.form-panel{
  color:var(--ink);
  border:1px solid transparent;
  padding:44px;
  max-width:680px;margin:0 auto;
  border-radius:4px;
  background:
    linear-gradient(var(--chalk), var(--chalk)) padding-box,
    linear-gradient(135deg, var(--gold-soft), transparent 55%) border-box;
}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px;}
.form-row.single{grid-template-columns:1fr;}
.field label{
  display:block;font-size:12px;letter-spacing:0.05em;text-transform:uppercase;
  color:var(--ink-soft);margin-bottom:8px;
}
.field input,.field textarea,.field select{
  width:100%;padding:12px 14px;
  border:1px solid var(--line);background:var(--cream);
  font-family:var(--font-body);font-size:15px;color:var(--ink);
  border-radius:2px;
}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--gold);}
.field textarea{resize:vertical;min-height:100px;}
.field-note{font-size:11px;color:var(--ink-soft);margin:6px 0 0;opacity:0.8;}
.field-note.err{color:#a33;opacity:1;}
/* Day / Month / Year dropdowns share one row; Day and Year stay narrow so the
   month name has room. */
.dob-selects{display:flex;gap:8px;}
.dob-selects select{flex:1;min-width:0;}
.dob-selects #dobMonth{flex:1.5;}
.form-status{margin-top:16px;font-size:14px;}
.form-status.ok{color:#0B7A4B;}
.form-status.err{color:#a33;}

footer{background:var(--navy);color:rgba(234,244,251,0.6);padding:48px 0;}
.footer-inner{text-align:center;}
.footer-inner .wordmark{display:inline-block;margin-bottom:18px;}
.footer-line{font-size:14px;margin-bottom:14px;display:flex;justify-content:center;gap:10px;}
.footer-line a{color:var(--gold-soft);text-decoration:none;}
.footer-copy{font-size:13px;margin:0;opacity:0.7;}

/* ---------- reveal on scroll ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease;}
.reveal.in{opacity:1;transform:translateY(0);}

/* ==================================================================
   /enroll page — chip selectors, scoreboard, step wizard
   ================================================================== */
.subpage-header{background:var(--navy);color:var(--cream);padding:60px 0 44px;text-align:center;}
.subpage-header .section-eyebrow{color:var(--gold-soft);}
.subpage-header h1{font-family:var(--font-display);font-size:clamp(26px,3.4vw,36px);font-weight:600;margin:0 0 12px;}
.subpage-header p{color:rgba(234,244,251,0.75);margin:0;}

.book-top{background:var(--navy);color:var(--cream);padding:26px 0 40px;}
.book-top .back-link{display:inline-block;margin-bottom:14px;}
.book-top-head{text-align:center;max-width:640px;margin:0 auto 22px;}
.book-top-head .section-eyebrow{color:var(--gold-soft);}
.book-top-head h1{font-family:var(--font-display);font-size:clamp(24px,3.2vw,34px);font-weight:600;margin:0 0 10px;}
.book-top-sub{color:rgba(234,244,251,0.78);margin:0;font-size:15px;line-height:1.5;}
.book-top .calendly-wrap{max-width:720px;margin:0 auto;}
@media (max-width:600px){
  .book-top{padding:16px 0 26px;}
  .book-top .back-link{margin-bottom:10px;}
  .book-top-head{margin-bottom:16px;}
  .book-top-head h1{margin:0 0 8px;}
  .book-top-sub{font-size:14px;}
}

.book-body{background:var(--navy);color:var(--cream);padding:20px 0 100px;border-top:1px solid rgba(234,244,251,0.08);}
.book-body .calendly-wrap{max-width:720px;margin:0 auto;}

.book-benefits{max-width:820px;margin:0 auto 48px;}
.book-benefits .section-eyebrow{color:var(--gold-soft);text-align:center;}
.book-benefits-heading{
  font-family:var(--font-display);font-size:clamp(24px,3.4vw,36px);
  font-weight:600;color:var(--cream);margin:0 0 40px;line-height:1.25;
  text-align:center;
}
.benefit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;}
.benefit-card{
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(234,244,251,0.14);
  border-radius:8px;padding:20px 22px;
  display:flex;gap:14px;align-items:flex-start;
}
.benefit-icon{
  width:34px;height:34px;border-radius:50%;flex-shrink:0;
  background:var(--gold);color:var(--navy-deep);
  display:flex;align-items:center;justify-content:center;
}
.benefit-card p{margin:0;font-size:16px;line-height:1.5;color:rgba(234,244,251,0.9);}
.benefit-card strong{color:var(--gold-soft);font-weight:700;}
.benefit-card em{font-style:italic;color:rgba(234,244,251,0.75);}

.book-clarify{
  text-align:center;font-size:14px;color:var(--gold-soft);
  background:rgba(4,176,218,0.1);border:1px solid rgba(4,176,218,0.25);
  border-radius:20px;padding:10px 20px;max-width:560px;margin:0 auto 32px;
}

@media (max-width:700px){
  .benefit-grid{grid-template-columns:1fr;}
}
.back-link{display:inline-block;margin-bottom:20px;font-size:13px;color:rgba(234,244,251,0.6);text-decoration:none;border-bottom:1px solid rgba(234,244,251,0.3);}

.enroll-body{background:var(--ivory);padding:60px 0 100px;}
.step-indicator{display:flex;align-items:center;justify-content:center;gap:18px;margin-bottom:44px;}
.step-dot{
  display:flex;align-items:center;gap:8px;font-size:12px;letter-spacing:0.05em;
  text-transform:uppercase;color:var(--ink-soft);transition:color .25s ease;
}
.step-dot .dot-num{
  width:26px;height:26px;border-radius:50%;background:var(--line);
  display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;
  transition:background .25s ease,color .25s ease,transform .25s ease;
}
.step-dot.active{color:var(--forest);font-weight:600;}
.step-dot.active .dot-num{background:var(--forest);color:var(--cream);transform:scale(1.12);}

.enroll-urgency{
  text-align:center;font-size:13px;font-weight:600;letter-spacing:0.02em;
  color:var(--forest);background:rgba(3,89,176,0.08);
  border:1px solid rgba(3,89,176,0.18);border-radius:20px;
  padding:8px 18px;display:inline-block;margin:0 auto 32px;
  width:100%;box-sizing:border-box;
}
.chip-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px;}
.chip-label-row .chip-label{margin-bottom:0;}
.chip-label.chip-label-question{
  font-size:14px;letter-spacing:normal;text-transform:none;font-weight:600;
  color:var(--ink);flex:1;min-width:220px;
}
.incentive-badge{
  font-size:12px;font-weight:700;color:var(--navy-deep);
  background:var(--gold-soft);padding:5px 12px;border-radius:20px;
  white-space:nowrap;
}
.enroll-summary-sticky{position:sticky;top:74px;z-index:10;box-shadow:0 8px 20px rgba(0,0,0,0.15);}

.step-panel{display:none;max-width:680px;margin:0 auto;}
.step-panel.active{display:block;animation:stepIn .4s ease;}
@keyframes stepIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}

.chip-group{display:flex;gap:8px;margin-bottom:32px;flex-wrap:wrap;}
.chip-btn{
  padding:12px 18px;
  border:1px solid var(--line);
  background:var(--chalk);color:var(--ink);
  font-size:14px;cursor:pointer;border-radius:24px;
  transition:all .2s ease;
}
.chip-btn.active{background:var(--forest);border-color:var(--forest);color:var(--cream);font-weight:600;}
.chip-label{
  display:block;font-size:12px;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--ink-soft);margin:0 0 12px;
}
/* Checklist row (replaces the old on/off toggle): a real checkbox, visually
   hidden, driving a custom box with a stroke-drawn tick, plus a price value
   on the right that gets its own strike-and-reveal animation (see
   .price-flip below) whenever the resulting rate changes. */
.check-row{
  display:flex;align-items:center;gap:14px;cursor:pointer;
  padding:16px 18px;margin-bottom:8px;border-radius:8px;
  border:1px solid var(--line);background:var(--chalk);
  transition:border-color .2s ease;
}
.check-row:hover{border-color:var(--gold-soft);}
.check-input{position:absolute;opacity:0;width:1px;height:1px;}
.check-box{
  width:24px;height:24px;border-radius:6px;flex-shrink:0;
  border:2px solid var(--line);background:var(--chalk);
  display:flex;align-items:center;justify-content:center;
  transition:background .2s ease,border-color .2s ease;
}
.check-input:checked ~ .check-box{background:var(--forest);border-color:var(--forest);}
.check-input:focus-visible ~ .check-box{outline:2px solid var(--gold);outline-offset:2px;}
.check-tick{
  width:14px;height:14px;fill:none;stroke:var(--cream);stroke-width:2.4;
  stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:18;stroke-dashoffset:18;
  transition:stroke-dashoffset .28s ease;
}
.check-input:checked ~ .check-box .check-tick{stroke-dashoffset:0;}
.check-label{flex:1;font-size:15px;color:var(--ink);}
.check-price{font-size:14px;color:var(--ink-soft);font-weight:600;white-space:nowrap;}
.calc-note{font-size:13px;color:var(--ink-soft);margin:20px 0 0;}

/* Sub-checkbox row: revealed under "Sibling also attending" once that box is
   checked, letting the parent pick exactly how many siblings (1-5). Same
   check-box/check-tick visuals as the parent, just smaller. */
.sub-label{
  display:block;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;
  color:var(--ink-soft);margin:0 0 10px;
}
.sibling-subgroup{
  max-height:0;opacity:0;overflow:hidden;
  transition:max-height .3s ease,opacity .3s ease,margin-top .3s ease;
  margin-top:0;padding-left:18px;
}
.sibling-subgroup.open{max-height:100px;opacity:1;margin-top:14px;}
.sub-check-group{display:flex;gap:14px;}
.sub-check{display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;}
.check-box.sub{width:22px;height:22px;border-radius:5px;}
.check-box.sub .check-tick{width:12px;height:12px;}
.sub-check-label{font-size:12px;color:var(--ink-soft);font-weight:600;}

/* "Was / now" price-drop animation. Old value crosses out in red (the line
   draws left-to-right over .3s), then the new value pops in; the crossed-out
   old value lingers for ~1.2s before fading. Driven from playPriceChange()
   in enroll.js, which only calls this when the price actually decreases —
   an increase just swaps the text with no animation. Adjust the
   keyframe/transition durations here to retime it. */
.price-flip{position:relative;display:inline-flex;align-items:baseline;gap:8px;}
.price-was{
  position:relative;opacity:0;color:#b23b3b;
  transition:opacity .3s ease .9s;
}
/* The crossed-out "was" price has to match its "now" sibling's size exactly —
   each spot below lives in a different type scale, so each gets its own rule. */
#sbRateFlip .price-was{font-size:24px;}
#sbTotalFlip .price-was{font-size:36px;font-weight:700;}
#summaryTotalFlip .price-was{font-size:16px;font-weight:700;}
.price-was.show{opacity:1;transition:opacity .15s ease;}
.price-was::after{
  content:'';position:absolute;left:-2px;right:-2px;top:50%;height:2px;
  background:#b23b3b;transform:scaleX(0);transform-origin:left;
}
.price-was.show::after{animation:priceStrike .3s ease forwards;}
@keyframes priceStrike{to{transform:scaleX(1);}}
.price-now.pop{animation:pricePop .35s ease;}
@keyframes pricePop{from{opacity:0;transform:translateY(5px);}to{opacity:1;transform:translateY(0);}}

.scoreboard{
  background:var(--board);
  border:1px solid rgba(234,244,251,0.1);
  border-radius:4px;
  padding:32px;margin-top:36px;
}
.sb-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:18px;}
.sb-row:last-child{margin-bottom:0;padding-top:18px;border-top:1px solid rgba(234,244,251,0.12);}
.sb-label{font-size:12px;letter-spacing:0.1em;text-transform:uppercase;color:rgba(221,246,251,0.55);}
.sb-digits{font-size:24px;color:var(--board-digit);letter-spacing:0.02em;font-variant-numeric:tabular-nums;}
.sb-digits.big{font-size:36px;color:var(--gold-soft);font-weight:700;}
.sb-sub{font-size:12px;color:rgba(221,246,251,0.4);margin-top:4px;}

.step-actions{display:flex;justify-content:space-between;align-items:center;margin-top:36px;gap:16px;flex-wrap:wrap;}
.step-actions .btn{flex:1;min-width:200px;}
.step-back{font-size:13px;color:var(--ink-soft);text-decoration:none;border-bottom:1px solid var(--line);white-space:nowrap;}

.enroll-summary{
  background:var(--forest);color:var(--cream);
  padding:16px 18px;border-radius:2px;margin-bottom:22px;
  font-size:14px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;
}
.enroll-summary strong{color:var(--gold-soft);font-size:16px;}

/* ---------- camp day calendar ---------- */
.camp-calendar{display:flex;flex-direction:column;gap:14px;margin:14px 0 0;}
.cal-week{
  background:var(--chalk);border:1px solid var(--line);border-radius:8px;padding:14px 16px;
}
.cal-week-label{
  display:block;font-size:11px;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--gold);font-weight:700;margin-bottom:10px;
}
.cal-days{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.cal-day{
  padding:12px 4px;border-radius:6px;font-size:13px;font-weight:600;
  border:1px solid var(--line);background:var(--cream);color:var(--ink);
  cursor:pointer;transition:all .15s ease;
}
.cal-day:hover{border-color:var(--gold);}
.cal-day.selected{background:var(--forest);border-color:var(--forest);color:var(--cream);}
.cal-day:disabled{opacity:0.35;cursor:not-allowed;text-decoration:line-through;}
.cal-day.maintenance{
  opacity:0.6;background:rgba(162,59,59,0.06);border-color:rgba(162,59,59,0.35);
  color:#a23b3b;cursor:not-allowed;
}
.cal-day.maintenance:hover{border-color:#a23b3b;}
.cal-closed{display:block;font-size:9px;letter-spacing:0.06em;text-transform:uppercase;opacity:0.8;}

/* Places-left counter under each day */
.cal-spots{display:block;font-size:10px;font-weight:600;letter-spacing:0.02em;margin-top:3px;opacity:0.72;}
.cal-day.selected .cal-spots{opacity:0.85;}
.cal-spots-low{color:#C0551B;opacity:1;}
.cal-day.selected .cal-spots-low{color:var(--gold-soft);}
.cal-spots-full{color:#a23b3b;opacity:1;text-transform:uppercase;font-size:9px;letter-spacing:0.06em;}
/* A sold-out day: greyed and not clickable, like the maintenance day */
.cal-day.full{
  opacity:0.55;background:rgba(162,59,59,0.05);border-color:rgba(162,59,59,0.3);
  color:#a23b3b;cursor:not-allowed;
}
.cal-day.full:hover{border-color:rgba(162,59,59,0.3);}
/* A day that has already passed (Cardiff time): greyed, struck through and
   non-interactive. Wins over selected/maintenance styling for that day. */
.cal-day.past,.cal-day.past:hover{
  opacity:0.4;cursor:not-allowed;text-decoration:line-through;
  background:var(--cream);border-color:var(--line);color:var(--ink);
}

/* ---------- expanded camp form ---------- */
.form-section-title{
  font-family:var(--font-display);font-size:18px;font-weight:600;color:var(--forest);
  margin:30px 0 14px;padding-bottom:8px;border-bottom:1px solid var(--line);
}
.form-section-title:first-child{margin-top:0;}
.field textarea{min-height:80px;}

.terms-box{
  max-height:260px;overflow-y:auto;border:1px solid var(--line);border-radius:6px;
  padding:18px 20px;background:var(--cream);font-size:13px;line-height:1.6;color:var(--ink-soft);
}
.terms-box h4{font-family:var(--font-display);font-size:16px;color:var(--forest);margin:16px 0 8px;}
.terms-box h4:first-child{margin-top:0;}
.terms-box h5{font-size:13px;font-weight:700;color:var(--ink);margin:14px 0 4px;text-transform:uppercase;letter-spacing:0.03em;}
.terms-box p{margin:0 0 8px;}

.consent-row{
  display:flex;gap:12px;align-items:flex-start;
  padding:12px 0;border-bottom:1px solid var(--line);
  font-size:14px;color:var(--ink);cursor:pointer;line-height:1.5;
}
.consent-row:last-of-type{border-bottom:none;}
.consent-input{position:absolute;opacity:0;width:1px;height:1px;}
.consent-box{
  width:22px;height:22px;border-radius:5px;flex-shrink:0;margin-top:1px;
  border:2px solid var(--line);background:var(--chalk);
  display:flex;align-items:center;justify-content:center;transition:all .18s ease;
}
.consent-box svg{width:13px;height:13px;fill:none;stroke:var(--cream);stroke-width:2.4;
  stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:18;stroke-dashoffset:18;transition:stroke-dashoffset .25s ease;}
.consent-input:checked ~ .consent-box{background:var(--forest);border-color:var(--forest);}
.consent-input:checked ~ .consent-box svg{stroke-dashoffset:0;}

/* ==================================================================
   Quiz modal — strict black / dark-green / gold palette, reusing the
   same --navy-deep / --forest / --gold / --cream variables as the rest
   of the site rather than introducing new colours.
   ================================================================== */
.quiz-overlay{
  display:none;position:fixed;inset:0;z-index:200;
  background:rgba(10,16,21,0.82);backdrop-filter:blur(6px);
  align-items:center;justify-content:center;padding:20px;
}
.quiz-overlay.open{display:flex;}
.quiz-modal{
  position:relative;width:100%;max-width:560px;max-height:88vh;overflow-y:auto;
  background:var(--navy-deep);border:1px solid rgba(4,176,218,0.2);
  border-radius:10px;padding:40px 36px 36px;
}
.quiz-close{
  position:absolute;top:16px;right:16px;width:32px;height:32px;
  border-radius:50%;border:1px solid rgba(234,244,251,0.25);
  background:transparent;color:var(--cream);font-size:20px;line-height:1;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:background .2s ease,border-color .2s ease;
}
.quiz-close:hover{background:rgba(234,244,251,0.08);border-color:rgba(234,244,251,0.45);}

.quiz-progress-track{
  height:3px;border-radius:2px;background:rgba(234,244,251,0.12);
  margin:0 0 32px;overflow:hidden;
}
.quiz-progress-fill{
  height:100%;background:var(--gold);border-radius:2px;
  width:0%;transition:width .35s ease;
}

.quiz-body{position:relative;}
.quiz-screen{transition:opacity .3s ease,transform .3s ease;}
.quiz-screen.leaving{opacity:0;transform:translateY(-14px);}
.quiz-screen.entering{opacity:0;transform:translateY(14px);}

.quiz-eyebrow{
  font-size:12px;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--gold-soft);margin:0 0 14px;text-align:center;
}
.quiz-question-text{
  font-family:var(--font-display);font-size:clamp(19px,2.6vw,24px);
  font-weight:600;color:var(--cream);text-align:center;
  margin:0 0 28px;line-height:1.35;
}
.quiz-options{display:flex;flex-direction:column;gap:10px;}
.quiz-option{
  display:block;width:100%;text-align:left;
  background:rgba(234,244,251,0.04);border:1px solid rgba(234,244,251,0.16);
  border-radius:8px;padding:15px 18px;font-size:15px;color:var(--cream);
  cursor:pointer;transition:border-color .18s ease,background .18s ease;
}
.quiz-option:hover{border-color:rgba(4,176,218,0.5);background:rgba(4,176,218,0.06);}
.quiz-option.selected{
  border-color:var(--gold);background:rgba(4,176,218,0.14);
  color:var(--gold-soft);font-weight:600;
}

.quiz-gate-head{text-align:center;margin-bottom:28px;}
.quiz-gate-head h3{
  font-family:var(--font-display);font-size:clamp(20px,2.8vw,26px);
  color:var(--cream);font-weight:600;margin:0 0 10px;
}
.quiz-gate-head p{color:rgba(234,244,251,0.7);font-size:15px;margin:0;}
.quiz-gate-form{display:flex;flex-direction:column;gap:14px;}
.quiz-gate-form input{
  width:100%;padding:13px 16px;border-radius:6px;
  border:1px solid rgba(234,244,251,0.2);background:rgba(234,244,251,0.05);
  color:var(--cream);font-family:var(--font-body);font-size:15px;
}
.quiz-gate-form input::placeholder{color:rgba(234,244,251,0.4);}
.quiz-gate-form input:focus{outline:none;border-color:var(--gold);}
.quiz-gate-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}

.quiz-result-eyebrow{
  text-align:center;font-size:12px;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--gold-soft);margin:0 0 10px;
}
.quiz-result-name{
  font-family:var(--font-display);font-size:clamp(24px,3.4vw,30px);
  font-weight:600;color:var(--cream);text-align:center;margin:0 0 20px;
}
.quiz-result-copy{
  font-size:16px;line-height:1.6;color:rgba(234,244,251,0.85);
  text-align:center;margin:0 0 30px;
}
.quiz-result-secondary{
  display:block;text-align:center;margin-top:14px;font-size:13px;
  color:rgba(234,244,251,0.55);text-decoration:underline;
}
.quiz-status{text-align:center;font-size:14px;margin-top:14px;min-height:20px;}
.quiz-status.err{color:#e08a8a;}
.quiz-status.ok{color:var(--gold-soft);}

@media (max-width:600px){
  .quiz-modal{padding:32px 22px 28px;}
  .quiz-gate-row{grid-template-columns:1fr;}
}

/* ==================================================================
   1-on-1 slot booker (replaces Calendly on /book)
   ================================================================== */
.session-booker{max-width:640px;margin:0 auto;}
.booker-panel{
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(4,176,218,0.25);
  border-radius:10px;padding:34px 30px;
}
.booker-panel .chip-label{color:var(--gold-soft);}
.booker-panel .field label{color:rgba(234,244,251,0.65);}
.booker-panel .field input{
  background:rgba(234,244,251,0.06);border-color:rgba(234,244,251,0.2);color:var(--cream);
}
.booker-panel .field input::placeholder{color:rgba(234,244,251,0.4);}
.booker-panel .field input:focus{border-color:var(--gold);}
.booker-date{
  width:100%;max-width:260px;padding:12px 14px;border-radius:6px;
  border:1px solid rgba(234,244,251,0.25);background:rgba(234,244,251,0.06);
  color:var(--cream);font-family:var(--font-body);font-size:15px;
  color-scheme:dark;
}
.booker-date:focus{outline:none;border-color:var(--gold);}
.booker-panel .field-note{color:rgba(234,244,251,0.55);}
.booker-panel .field-note.err{color:#e08a8a;}
.booker-panel .chip-btn{
  background:rgba(234,244,251,0.05);border-color:rgba(234,244,251,0.25);color:var(--cream);
}
.booker-panel .chip-btn.active{background:var(--gold);border-color:var(--gold);color:var(--navy-deep);}
.booker-panel .scoreboard{margin-top:26px;}
.booker-panel .form-status{color:rgba(234,244,251,0.8);}
.booker-panel .form-status.ok{color:var(--gold-soft);}
.booker-panel .form-status.err{color:#e08a8a;}

.slot-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:8px;
}
.slot-btn{
  padding:11px 6px;border-radius:6px;font-size:13px;
  border:1px solid rgba(234,244,251,0.25);
  background:rgba(234,244,251,0.05);color:var(--cream);
  cursor:pointer;transition:border-color .15s ease,background .15s ease;
}
.slot-btn:hover{border-color:var(--gold);}
.slot-btn.active{background:var(--gold);border-color:var(--gold);color:var(--navy-deep);font-weight:700;}
.slot-btn.taken{
  opacity:0.35;cursor:not-allowed;text-decoration:line-through;
}

/* Disabled day chip (third-week rule on /enroll) */
.chip-btn.disabled{opacity:0.35;cursor:not-allowed;}

/* ==================================================================
   Notice modal (third-week maintenance warning)
   ================================================================== */
.notice-overlay{
  display:none;position:fixed;inset:0;z-index:210;
  background:rgba(10,16,21,0.8);backdrop-filter:blur(4px);
  align-items:center;justify-content:center;padding:20px;
}
.notice-overlay.open{display:flex;}
.notice-box{
  width:100%;max-width:420px;background:var(--navy-deep);
  border:1px solid rgba(4,176,218,0.4);border-radius:10px;padding:32px 28px;
}
.notice-title{
  font-family:var(--font-display);font-size:20px;font-weight:600;
  color:var(--gold-soft);margin:0 0 12px;
}
.notice-copy{font-size:15px;line-height:1.6;color:rgba(234,244,251,0.85);margin:0 0 24px;}

/* ==================================================================
   Contact extras: map + social links
   ================================================================== */
.contact-map{
  width:100%;height:220px;border:0;border-radius:8px;
  margin-top:18px;display:block;
}
.social-row{
  display:flex;gap:10px;flex-wrap:wrap;margin-top:18px;
}
.social-btn{
  display:inline-flex;align-items:center;gap:8px;
  border:1px solid var(--line);border-radius:20px;
  padding:8px 14px;font-size:13px;color:var(--ink);
  text-decoration:none;transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.social-btn:hover{background:var(--forest);color:var(--cream);border-color:var(--forest);}

/* ---------- responsive ---------- */
@media (max-width:900px){
  /* Phone: show the tabs as a slim strip under the wordmark. It scrolls
     sideways if the labels don't all fit, so every tab stays reachable
     without a hamburger. A soft right-edge fade hints there's more to swipe. */
  .nav-toggle{display:none;}
  .nav-inner{
    flex-direction:column;align-items:stretch;
    padding:12px 0 0;gap:10px;
  }
  header.nav.scrolled .nav-inner{padding-top:8px;}
  .wordmark{padding:0 20px;align-self:flex-start;}
  nav.links{
    display:flex;flex-direction:row;align-items:stretch;gap:2px;
    width:100%;overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    border-top:1px solid rgba(234,244,251,0.1);
    -webkit-mask-image:linear-gradient(90deg, #000 88%, transparent 100%);
    mask-image:linear-gradient(90deg, #000 88%, transparent 100%);
  }
  nav.links::-webkit-scrollbar{display:none;}
  nav.links a{
    flex:0 0 auto;
    font-size:12px;
    padding:13px 15px;
    white-space:nowrap;
  }
  nav.links a:first-child{padding-left:20px;}
  /* Extra tail padding so the right-edge fade lands on empty space, never on
     the last tab's text once the strip is scrolled to the end. */
  nav.links a:last-child{padding-right:54px;}
  .contact-grid{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}
  section{padding:64px 0;}
  .form-panel{padding:26px;}
  .section-hero{padding:60px 0 60px;}
  .trust-strip{gap:32px;}
  .top-banner-inner{flex-direction:column;gap:12px;}
  .slot-grid{grid-template-columns:repeat(2,1fr);}
}


/* ---------- brand logo ---------- */
.wordmark-logo{height:40px;width:auto;display:block;transition:height .25s ease;}
header.nav.scrolled .wordmark-logo{height:32px;}
footer .wordmark-logo{height:30px;}
@media (max-width:640px){ .wordmark-logo{height:28px;} }
h1,h2,h3{letter-spacing:-0.015em;}
/* The logo's wave, as a thin stripe under the header: royal blue -> cyan -> aqua */
header.nav::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:3px;
  background:linear-gradient(90deg,#0374CC 0%,#04B0DA 55%,#00D6DA 100%);
}
.wordmark{line-height:0;}
@media (max-width:900px){
  /* Sub-pages have no tab strip under the logo, so give it room below too. */
  .nav-inner:not(:has(nav.links)){padding-bottom:12px;}
}

/* ═══════════ Camp spotlight banner (top of homepage + booking page) ═══════════ */
.camp-spotlight{
  position:relative;overflow:hidden;color:var(--cream);
  background:
    radial-gradient(ellipse 70% 90% at 85% 40%, rgba(3,116,204,0.45), transparent 60%),
    radial-gradient(ellipse 50% 70% at 10% 100%, rgba(0,214,218,0.14), transparent 60%),
    linear-gradient(160deg,#031B4A 0%,#02082A 55%,#01051C 100%);
  padding:56px 0 64px;
}
/* the logo's wave, as a closing edge */
.camp-spotlight::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:4px;
  background:linear-gradient(90deg,#0374CC 0%,#04B0DA 55%,#00D6DA 100%);
}
.camp-spotlight-inner{
  display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,0.85fr);
  gap:56px;align-items:center;
}
.cs-flag{
  display:inline-flex;align-items:center;gap:10px;margin:0 0 18px;
  padding:7px 14px;border-radius:999px;
  background:rgba(4,176,218,0.12);border:1px solid rgba(94,220,230,0.35);
  color:var(--gold-soft);font-size:12px;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;
}
.cs-dot{width:8px;height:8px;border-radius:50%;background:#00D6DA;box-shadow:0 0 0 0 rgba(0,214,218,0.6);animation:csPulse 2s ease-out infinite;}
@keyframes csPulse{0%{box-shadow:0 0 0 0 rgba(0,214,218,0.55);}80%,100%{box-shadow:0 0 0 10px rgba(0,214,218,0);}}
.cs-title{
  font-family:var(--font-display);font-weight:800;text-transform:uppercase;
  font-size:clamp(32px,4.4vw,54px);line-height:1.04;letter-spacing:-0.02em;
  margin:0 0 18px;color:#fff;
}
.cs-title .cs-accent{
  display:block;
  background:linear-gradient(90deg,#04B0DA,#00D6DA);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.cs-sub{font-size:17px;line-height:1.6;color:rgba(234,244,251,0.78);max-width:520px;margin:0 0 26px;}
.cs-facts{
  list-style:none;padding:0;margin:0 0 30px;
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:520px;
}
.cs-facts li{
  padding:12px 16px;border-radius:12px;
  background:rgba(255,255,255,0.05);border:1px solid rgba(234,244,251,0.12);
  font-weight:600;font-size:15px;color:#fff;
}
.cs-label{display:block;font-size:11px;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:3px;}
.cs-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap;}
.cs-btn{padding:16px 34px;font-size:16px;}
.cs-price{margin:0;color:rgba(234,244,251,0.8);font-size:15px;}
.cs-price strong{font-family:var(--font-display);font-size:30px;color:#FFD84D;margin-right:4px;vertical-align:-3px;}
.cs-note{margin:22px 0 0;font-size:13px;color:rgba(234,244,251,0.6);letter-spacing:0.02em;}
.cs-back{color:rgba(234,244,251,0.75);text-decoration:none;border-bottom:1px solid rgba(234,244,251,0.3);}
.cs-back:hover{color:#fff;}
.camp-spotlight-poster{display:flex;justify-content:center;}
.camp-spotlight-poster img{
  width:100%;max-width:400px;height:auto;display:block;border-radius:16px;
  box-shadow:0 30px 60px rgba(0,0,0,0.45),0 0 0 1px rgba(94,220,230,0.25);
  transform:rotate(1.5deg);transition:transform .4s ease;
}
.camp-spotlight-poster img:hover{transform:rotate(0) scale(1.01);}
#bookingSteps{scroll-margin-top:80px;}

@media (max-width:900px){
  .camp-spotlight{padding:36px 0 44px;}
  .camp-spotlight-inner{grid-template-columns:1fr;gap:32px;}
  .camp-spotlight-poster img{max-width:340px;transform:none;}
  .cs-actions{gap:14px;}
  .cs-btn{width:100%;text-align:center;justify-content:center;}
}
@media (prefers-reduced-motion:reduce){
  .cs-dot{animation:none;}
  .camp-spotlight-poster img{transform:none;transition:none;}
}
.cs-nowrap{white-space:nowrap;}
