/* ============================================================
   EFK TUTORING — Shared Stylesheet
   ============================================================ */

*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
:root {
  --blue: #1a6fd4; --blue-dark: #1358ab; --blue-deep: #0d3f80;
  --blue-light: #e8f1fb; --blue-bright: #2589f5; --blue-rgb: 26 111 212;
  --red: #e63b2e; --yellow: #ffd166;
  --green: #22c55e; --green-light: #f0fff4; --white: #ffffff; --off-white: #f7f9fc;
  --text: #0f1c2e; --text-muted: #5a6a7a;
  --radius: 20px;
  --shadow: 0 8px 40px rgba(var(--blue-rgb),0.12);
  --shadow-hover: 0 24px 64px rgba(var(--blue-rgb),0.22);
}
html { scroll-behavior: smooth; }
body { font-family: 'Figtree', sans-serif; color: var(--text); background: var(--white); overflow-x: hidden; }

/* SKIP LINK */
.skip-link { position:absolute;top:-100%;left:16px;z-index:9999;background:var(--yellow);color:var(--text);font-family:'Nunito',sans-serif;font-weight:900;font-size:14px;padding:10px 24px;border-radius:8px;text-decoration:none;transition:top 0.15s; }
.skip-link:focus { top:8px; }

/* SCREEN READER ONLY */
.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; }

/* FOCUS */
:focus-visible { outline:3px solid var(--yellow);outline-offset:3px;border-radius:4px; }
#how :focus-visible, .hero :focus-visible, .page-hero :focus-visible, footer :focus-visible { outline-color:white; }

/* MARK HIGHLIGHT */
mark.hl { background:none;color:inherit;padding:0 3px;box-shadow:inset 0 -0.28em 0 rgba(255,209,102,0.55);-webkit-box-decoration-break:clone;box-decoration-break:clone; }
.hero mark.hl { box-shadow:inset 0 -10px 0 rgba(255,209,102,0.5); }

/* ============================================================
   NAVBAR
   ============================================================ */
nav { position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:16px 48px;background:rgba(255,255,255,0.96);backdrop-filter:blur(20px);border-bottom:1px solid rgba(var(--blue-rgb),0.08);transition:box-shadow 0.3s,padding 0.3s; }
nav.scrolled { box-shadow:0 4px 30px rgba(var(--blue-rgb),0.12);padding:12px 48px; }
.nav-logo { font-family:'Nunito',sans-serif;font-weight:900;font-size:31px;color:var(--blue);text-decoration:none;letter-spacing:-0.5px; }
.nav-logo span { color:var(--red); }
nav ul { list-style:none;display:flex;gap:32px;align-items:center; }
nav ul li a { text-decoration:none;color:var(--text-muted);font-weight:600;font-size:14px;transition:color 0.2s; }
nav ul li a:hover { color:var(--blue); }
.nav-active { color:var(--blue)!important;font-weight:700!important; }
.nav-cta { background:var(--blue)!important;color:white!important;padding:11px 26px!important;border-radius:50px!important;box-shadow:0 4px 16px rgba(var(--blue-rgb),0.3)!important;transition:all 0.2s!important; }
.nav-cta:hover { background:var(--blue-dark)!important;transform:translateY(-2px)!important; }

/* MOBILE NAV */
.nav-toggle { display:none;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;cursor:pointer;padding:8px;z-index:1100;position:relative; }
.nav-toggle span { display:block;width:26px;height:3px;border-radius:2px;background:var(--text);transition:transform 0.3s,opacity 0.3s; }
nav.open .nav-toggle span:nth-child(1) { transform:translateY(8px) rotate(45deg); }
nav.open .nav-toggle span:nth-child(2) { opacity:0; }
nav.open .nav-toggle span:nth-child(3) { transform:translateY(-8px) rotate(-45deg); }
body.no-scroll { overflow:hidden; }

@media (max-width:900px) {
  nav { padding:14px 20px; }
  nav.scrolled { padding:12px 20px; }
  .nav-toggle { display:flex; }
  nav ul { position:fixed;top:0;left:0;right:0;z-index:999;flex-direction:column;align-items:stretch;gap:0;background:rgba(255,255,255,0.98);padding:96px 28px 32px;max-height:100vh;overflow-y:auto;box-shadow:0 16px 48px rgba(var(--blue-rgb),0.15);transform:translateY(-100%);opacity:0;visibility:hidden;transition:transform 0.35s cubic-bezier(0.16,1,0.3,1),opacity 0.3s,visibility 0.3s; }
  nav.open ul { transform:translateY(0);opacity:1;visibility:visible; }
  nav ul li { width:100%; }
  nav ul li a { display:block;padding:16px 4px;font-size:17px;border-bottom:1px solid rgba(var(--blue-rgb),0.08); }
  nav ul li:last-child a { border-bottom:none; }
  .nav-cta { display:block!important;text-align:center;margin-top:14px; }
}

/* ============================================================
   HERO (HOME)
   ============================================================ */
.hero { min-height:100vh;min-height:100svh;background:linear-gradient(145deg,#060f1e 0%,#0d3f80 40%,#1a6fd4 100%);display:flex;align-items:center;justify-content:center;text-align:center;padding:140px 24px 100px;position:relative;overflow:hidden; }
.hero-orb { position:absolute;border-radius:50%;pointer-events:none;animation:orbFloat ease-in-out infinite; }
.hero-orb-1 { width:700px;height:700px;background:radial-gradient(circle,rgba(255,209,102,0.10) 0%,transparent 70%);top:-300px;right:-200px;animation-duration:8s; }
.hero-orb-2 { width:500px;height:500px;background:radial-gradient(circle,rgba(37,137,245,0.15) 0%,transparent 70%);bottom:-200px;left:-150px;animation-duration:10s;animation-delay:-3s; }
.hero-orb-3 { width:300px;height:300px;background:radial-gradient(circle,rgba(255,255,255,0.05) 0%,transparent 70%);top:30%;left:10%;animation-duration:6s;animation-delay:-1s; }
@keyframes orbFloat { 0%,100%{transform:scale(1) translate(0,0);}33%{transform:scale(1.08) translate(20px,-20px);}66%{transform:scale(0.95) translate(-15px,15px);} }
.hero-bg-shapes { position:absolute;inset:0;pointer-events:none;overflow:hidden; }
.hero-bg-shapes span { position:absolute;font-family:'Nunito',sans-serif;font-weight:900;color:rgba(255,255,255,0.06);animation:floatUp linear infinite;user-select:none; }
@keyframes floatUp { 0%{transform:translateY(110vh) rotate(0deg);opacity:0;}5%{opacity:1;}95%{opacity:1;}100%{transform:translateY(-10vh) rotate(360deg);opacity:0;} }
.hero-content { position:relative;z-index:2;max-width:820px; }
.hero-badge { display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,0.10);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,0.18);color:white;font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:9px 22px;border-radius:50px;margin-bottom:32px;opacity:0;animation:fadeUp 0.9s 0.2s cubic-bezier(0.16,1,0.3,1) forwards; }
.hero h1 { font-family:'Nunito',sans-serif;font-size:clamp(52px,9vw,96px);font-weight:900;color:white;line-height:1.0;margin-bottom:28px;letter-spacing:-3px;opacity:0;animation:fadeUp 0.9s 0.4s cubic-bezier(0.16,1,0.3,1) forwards; }
.hero h1 em { font-style:normal;color:var(--yellow);display:block; }
.hero-sub { font-size:clamp(16px,2.2vw,20px);color:rgba(255,255,255,0.80);line-height:1.8;max-width:620px;margin:0 auto 48px;opacity:0;animation:fadeUp 0.9s 0.6s cubic-bezier(0.16,1,0.3,1) forwards; }
.hero-buttons { display:flex;gap:16px;justify-content:center;flex-wrap:wrap;opacity:0;animation:fadeUp 0.9s 0.8s cubic-bezier(0.16,1,0.3,1) forwards; }
.btn-primary { background:white;color:var(--blue);font-family:'Nunito',sans-serif;font-weight:900;font-size:16px;padding:18px 44px;border-radius:50px;border:none;cursor:pointer;text-decoration:none;display:inline-block;box-shadow:0 8px 32px rgba(0,0,0,0.2);transition:transform 0.3s cubic-bezier(0.16,1,0.3,1),box-shadow 0.3s; }
.btn-primary:hover { transform:translateY(-5px) scale(1.02);box-shadow:0 16px 48px rgba(0,0,0,0.3); }
.btn-outline { background:transparent;color:white;font-family:'Nunito',sans-serif;font-weight:800;font-size:16px;padding:18px 44px;border-radius:50px;border:2px solid rgba(255,255,255,1);cursor:pointer;text-decoration:none;display:inline-block;transition:all 0.3s cubic-bezier(0.16,1,0.3,1);box-shadow:0 0 0 1px rgba(255,255,255,0.3),0 0 20px rgba(255,255,255,0.18); }
.btn-outline:hover { border-color:white;background:rgba(255,255,255,0.15);transform:translateY(-5px);box-shadow:0 0 0 1px rgba(255,255,255,0.5),0 0 36px rgba(255,255,255,0.35); }
.btn-blue { display:inline-block;background:var(--blue);color:white;font-family:'Nunito',sans-serif;font-weight:900;font-size:15px;padding:14px 32px;border-radius:50px;text-decoration:none;border:none;cursor:pointer;box-shadow:0 4px 16px rgba(var(--blue-rgb),0.3);transition:all 0.2s; }
.btn-blue:hover { background:var(--blue-dark);transform:translateY(-2px);box-shadow:0 8px 28px rgba(var(--blue-rgb),0.4); }
.hero-proof { margin-top:32px;font-size:13px;color:rgba(255,255,255,0.6);font-style:italic;line-height:1.6;opacity:0;animation:fadeUp 0.9s 1s cubic-bezier(0.16,1,0.3,1) forwards; }
.hero-proof cite { font-style:normal;color:rgba(255,255,255,0.85);font-weight:600; }
@keyframes fadeUp { from{opacity:0;transform:translateY(36px);}to{opacity:1;transform:translateY(0);} }

/* ============================================================
   PAGE HERO (INNER PAGES)
   ============================================================ */
.page-hero { background:linear-gradient(145deg,#060f1e 0%,#0d3f80 40%,#1a6fd4 100%);padding:156px 24px 80px;text-align:center;position:relative;overflow:hidden; }
.page-hero-orb { position:absolute;border-radius:50%;pointer-events:none; }
.page-hero-orb-1 { width:600px;height:600px;background:radial-gradient(circle,rgba(255,209,102,0.08) 0%,transparent 70%);top:-200px;right:-150px; }
.page-hero-orb-2 { width:400px;height:400px;background:radial-gradient(circle,rgba(37,137,245,0.12) 0%,transparent 70%);bottom:-80px;left:-100px; }
.page-hero-content { position:relative;z-index:2; }
.page-hero-eyebrow { display:inline-block;font-size:11px;font-weight:800;letter-spacing:2.5px;text-transform:uppercase;color:var(--yellow);background:rgba(255,255,255,0.12);padding:6px 14px;border-radius:50px;margin-bottom:16px; }
.page-hero-title { font-family:'Nunito',sans-serif;font-weight:900;font-size:clamp(38px,5.5vw,68px);color:white;line-height:1.05;margin-bottom:16px;letter-spacing:-2px; }
.page-hero-sub { font-size:clamp(15px,2vw,19px);color:rgba(255,255,255,0.8);line-height:1.75;max-width:580px;margin:0 auto; }

/* ============================================================
   TRUST BAR
   ============================================================ */
.trust-bar { background:var(--text);padding:22px 24px;display:flex;align-items:center;justify-content:center;gap:48px;flex-wrap:wrap; }
.trust-item { display:flex;align-items:center;gap:10px;color:rgba(255,255,255,0.72);font-size:13px;font-weight:600; }
.trust-item span { color:var(--yellow);font-size:16px; }

/* ============================================================
   SCROLL REVEAL
   ============================================================ */
.reveal { opacity:1;transform:none; }
html.js-animate .reveal { opacity:0;transform:translateY(52px);transition:opacity 0.8s cubic-bezier(0.16,1,0.3,1),transform 0.8s cubic-bezier(0.16,1,0.3,1); }
html.js-animate .reveal.visible { opacity:1;transform:translateY(0); }
.reveal-delay-1{transition-delay:0.1s;}.reveal-delay-2{transition-delay:0.2s;}.reveal-delay-3{transition-delay:0.3s;}.reveal-delay-4{transition-delay:0.4s;}.reveal-delay-5{transition-delay:0.5s;}

/* ============================================================
   SHARED SECTION
   ============================================================ */
section { padding:100px 24px; }
.container { max-width:1140px;margin:0 auto; }
.section-eyebrow { display:inline-block;font-size:11px;font-weight:800;letter-spacing:2.5px;text-transform:uppercase;color:var(--blue);background:var(--blue-light);padding:6px 14px;border-radius:50px;margin-bottom:16px; }
.section-title { font-family:'Nunito',sans-serif;font-size:clamp(32px,4.5vw,54px);font-weight:900;color:var(--text);line-height:1.05;margin-bottom:16px;letter-spacing:-1.5px; }
.section-sub { font-size:17px;color:var(--text-muted);line-height:1.8;max-width:560px; }

/* ============================================================
   WHY US
   ============================================================ */
#why, .why-section { background:white; }
.why-statements { margin-top:64px; }
.why-statement { display:grid;grid-template-columns:260px 1fr;gap:0 64px;padding:52px 0;border-bottom:1px solid rgba(var(--blue-rgb),0.1);align-items:start; }
.why-statement:first-child { padding-top:0; }
.why-statement:last-child { border-bottom:none;padding-bottom:0; }
.why-hook { font-family:'Nunito',sans-serif;font-weight:900;font-size:clamp(26px,3vw,38px);color:var(--blue);line-height:1.1;letter-spacing:-0.5px; }
.why-body { font-size:17px;color:var(--text-muted);line-height:1.8;padding-top:4px;max-width:560px; }
@media(max-width:860px){.why-statement{grid-template-columns:1fr;gap:14px;padding:40px 0;}}

/* ============================================================
   ABOUT / TEAM
   ============================================================ */
#about { background:white; }
.about-grid { display:grid;grid-template-columns:1.1fr 0.9fr;gap:80px;align-items:center; }
@media(max-width:768px){.about-grid{grid-template-columns:1fr;gap:48px;}}
.about-text p { font-size:16px;color:var(--text-muted);line-height:1.95;margin-bottom:22px; }
.about-text { padding-right:24px;padding-top:12px; }
.about-text strong { color:var(--blue);font-weight:700; }
.about-highlight { background:var(--blue-light);border-radius:16px;padding:28px 32px 28px 40px;margin-top:24px;font-size:15px;color:var(--blue-dark);font-weight:600;line-height:1.65;font-style:italic;position:relative;overflow:hidden; }
.about-highlight::before { content:'\201C';position:absolute;top:-16px;left:10px;font-family:'Nunito',sans-serif;font-weight:900;font-size:140px;color:var(--blue);opacity:0.12;line-height:1;pointer-events:none;user-select:none; }
.team-stack { display:flex;flex-direction:column;gap:20px; }
.team-card { background:var(--off-white);border-radius:20px;padding:24px;display:flex;align-items:flex-start;gap:20px;border:2px solid transparent;transition:all 0.3s cubic-bezier(0.16,1,0.3,1); }
.team-card:hover { border-color:var(--blue);background:var(--blue-light);transform:translateX(8px); }
.team-avatar { width:88px;height:88px;border-radius:16px;object-fit:cover;object-position:center top;border:3px solid var(--blue);flex-shrink:0;box-shadow:0 4px 16px rgba(var(--blue-rgb),0.25);display:block; }
.team-avatar-fallback { width:88px;height:88px;border-radius:16px;background:linear-gradient(135deg,var(--blue),#2589f5);display:flex;align-items:center;justify-content:center;font-family:'Nunito',sans-serif;font-weight:900;font-size:30px;color:white;flex-shrink:0;border:3px solid var(--blue);box-shadow:0 4px 16px rgba(var(--blue-rgb),0.25); }
.team-info { flex:1;min-width:0; }
.team-info h3 { font-family:'Nunito',sans-serif;font-weight:900;font-size:17px;color:var(--text);margin-bottom:2px; }
.team-info .team-role { font-size:12px;font-weight:700;color:var(--blue);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;display:block; }
.team-info p { font-size:13px;color:var(--text-muted);line-height:1.65; }
@media(max-width:600px){.team-card{flex-direction:column;align-items:center;text-align:center;}}

/* ============================================================
   SERVICES
   ============================================================ */
#services, .services-section { background:var(--off-white); }
.services-list { margin-top:56px; }
.service-row { display:grid;grid-template-columns:200px 1fr;gap:0 64px;padding:32px 0;border-bottom:1px solid rgba(var(--blue-rgb),0.1);align-items:baseline; }
.service-row:first-child { border-top:1px solid rgba(var(--blue-rgb),0.1); }
.service-subject { font-family:'Nunito',sans-serif;font-weight:900;font-size:20px;color:var(--text); }
.service-desc { font-size:15px;color:var(--text-muted);line-height:1.75; }
@media(max-width:640px){.service-row{grid-template-columns:1fr;gap:8px;}}

/* ============================================================
   PROGRAMS
   ============================================================ */
#programs, .programs-section { background:white; }
.programs-grid { display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:56px; }
@media(max-width:768px){.programs-grid{grid-template-columns:1fr;}}
.program-col { background:var(--off-white);border-radius:var(--radius);padding:44px 40px;border:2px solid #e8eef6;position:relative;overflow:hidden;transition:transform 0.4s cubic-bezier(0.16,1,0.3,1),box-shadow 0.4s; }
.program-col:hover { transform:translateY(-8px);box-shadow:var(--shadow-hover); }
.program-col::before { content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--blue),#2589f5); }
.program-col-icon { font-size:40px;display:block;margin-bottom:14px; }
.program-col h3 { font-family:'Nunito',sans-serif;font-weight:900;font-size:24px;color:var(--text);margin-bottom:6px; }
.program-col-desc { font-size:14px;color:var(--text-muted);margin-bottom:28px;font-weight:500; }
.program-tags { display:flex;flex-wrap:wrap;gap:10px; }
.program-tag { background:var(--blue-light);color:var(--blue);border:1.5px solid rgba(var(--blue-rgb),0.18);border-radius:12px;padding:12px 16px;font-family:'Nunito',sans-serif;font-weight:800;font-size:13px;transition:all 0.2s;cursor:default;display:flex;flex-direction:column;gap:3px; }
.program-tag:hover { background:var(--blue);color:white;border-color:var(--blue);transform:translateY(-2px); }
.program-tag-desc { font-family:'Figtree',sans-serif;font-weight:500;font-size:11px;color:var(--text-muted);line-height:1.3; }
.program-tag:hover .program-tag-desc { color:rgba(255,255,255,0.8); }

/* ============================================================
   HOW IT WORKS
   ============================================================ */
#how { background:linear-gradient(145deg,var(--blue-deep) 0%,var(--blue) 100%);position:relative;overflow:hidden; }
#how::before { content:'';position:absolute;width:800px;height:800px;background:radial-gradient(circle,rgba(255,255,255,0.04) 0%,transparent 70%);top:-300px;right:-200px;border-radius:50%; }
#how .section-eyebrow { background:rgba(255,255,255,0.15);color:var(--yellow); }
#how .section-title { color:white; }
#how .section-sub { color:rgba(255,255,255,0.72); }
.steps { display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px;margin-top:56px;position:relative; }
.step { text-align:center;padding:40px 24px;background:rgba(255,255,255,0.07);border-radius:var(--radius);border:1px solid rgba(255,255,255,0.12);transition:background 0.3s,transform 0.3s; }
.step:hover { background:rgba(255,255,255,0.13);transform:translateY(-8px); }
.step-num { width:60px;height:60px;background:var(--yellow);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Nunito',sans-serif;font-weight:900;font-size:24px;color:var(--text);margin:0 auto 22px;box-shadow:0 6px 24px rgba(255,209,102,0.45);position:relative;z-index:1; }
.step h3 { font-family:'Nunito',sans-serif;font-weight:800;font-size:18px;color:white;margin-bottom:12px; }
.step p { font-size:14px;color:rgba(255,255,255,0.7);line-height:1.72; }

/* ============================================================
   TESTIMONIALS
   ============================================================ */
#testimonials, .testimonials-section { background:white; }
.testimonials-grid { display:flex;flex-wrap:wrap;gap:24px;margin-top:56px;justify-content:center; }
.testimonial-card { flex:0 0 calc(33.333% - 16px);min-width:260px;background:var(--off-white);border-radius:var(--radius);padding:36px 30px;border:2px solid transparent;box-shadow:0 4px 20px rgba(var(--blue-rgb),0.07);transition:transform 0.4s cubic-bezier(0.16,1,0.3,1),border-color 0.3s,box-shadow 0.4s; }
.testimonial-card:hover { transform:translateY(-10px);border-color:var(--blue);box-shadow:var(--shadow-hover); }
@media(max-width:900px){.testimonial-card{flex:0 0 calc(50% - 12px);}}
@media(max-width:600px){.testimonial-card{flex:0 0 100%;}}
.quote-mark { font-family:'Nunito',sans-serif;font-size:80px;line-height:0.5;color:var(--blue);font-weight:900;margin-bottom:20px;display:block; }
.stars { color:var(--yellow);font-size:16px;letter-spacing:2px;margin-bottom:16px; }
.testimonial-card p { font-size:15px;color:var(--text);line-height:1.82;margin-bottom:24px;font-style:italic; }
.testimonial-footer { display:flex;align-items:center;gap:12px; }
.testimonial-avatar { width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--blue),#2589f5);display:flex;align-items:center;justify-content:center;font-family:'Nunito',sans-serif;font-weight:900;font-size:15px;color:white;flex-shrink:0; }
.testimonial-name { font-family:'Nunito',sans-serif;font-weight:800;font-size:15px;color:var(--text); }
.testimonial-verified { font-size:12px;color:var(--text-muted);margin-top:2px;display:flex;align-items:center;gap:4px; }
.testimonial-verified::before { content:'✓';color:var(--green);font-weight:700; }
.reviews-footer { text-align:center;margin-top:48px; }

/* ============================================================
   SUMMER CAMP
   ============================================================ */
#camp { background:white; }
.camp-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-top:56px; }
.camp-card { border-radius:var(--radius);padding:32px 28px;border:2px solid #e2e8f0;background:white;transition:transform 0.4s cubic-bezier(0.16,1,0.3,1),box-shadow 0.4s,border-color 0.3s;position:relative;overflow:hidden; }
.camp-card:hover { transform:translateY(-8px);box-shadow:var(--shadow-hover);border-color:var(--blue); }
.camp-card--complete { border-color:var(--green)!important;background:var(--green-light)!important; }
.camp-week-badge { display:inline-block;font-family:'Nunito',sans-serif;font-weight:900;font-size:12px;letter-spacing:1.5px;text-transform:uppercase;background:var(--blue-light);color:var(--blue);padding:5px 14px;border-radius:50px;margin-bottom:14px; }
.camp-dates { font-family:'Nunito',sans-serif;font-weight:900;font-size:22px;color:var(--text);margin-bottom:8px; }
.camp-time { font-size:13px;color:var(--text-muted);margin-bottom:20px; }
.spots-bar-bg { background:#e2e8f0;border-radius:50px;height:8px;overflow:hidden; }
.spots-bar-fill { height:100%;border-radius:50px;background:linear-gradient(90deg,var(--blue),#2589f5);transition:width 1.2s cubic-bezier(0.16,1,0.3,1); }
.spots-bar-fill.low { background:linear-gradient(90deg,#f59e0b,var(--red)); }
.spots-label { display:flex;justify-content:space-between;align-items:center;margin-top:8px; }
.spots-left { font-family:'Nunito',sans-serif;font-weight:800;font-size:15px; }
.spots-left.green { color:var(--green); } .spots-left.yellow { color:#f59e0b; } .spots-left.red { color:var(--red); }
.spots-total { font-size:13px;color:var(--text-muted); }
.camp-enroll-btn { display:block;width:100%;margin-top:20px;background:linear-gradient(135deg,var(--blue),#2589f5);color:white;border:none;border-radius:50px;font-family:'Nunito',sans-serif;font-weight:900;font-size:15px;padding:14px;cursor:pointer;text-align:center;text-decoration:none;box-shadow:0 4px 16px rgba(var(--blue-rgb),0.3);transition:transform 0.3s,box-shadow 0.3s; }
.camp-enroll-btn:hover { transform:translateY(-3px);box-shadow:0 8px 28px rgba(var(--blue-rgb),0.45); }
.camp-closes { font-size:12px;color:var(--text-muted);margin:10px 0 4px;display:flex;align-items:center;gap:5px;font-weight:600; }
.camp-enroll-btn.closed { background:linear-gradient(135deg,#8a9ab0,#a0aec0)!important;box-shadow:none!important;cursor:not-allowed!important;opacity:0.6;pointer-events:none; }
.camp-form-wrap { max-width:640px;margin:56px auto 0; }
.camp-countdown { margin:16px 0;text-align:center;padding:12px 16px;background:var(--blue-light);border-radius:12px;border:1px solid rgba(var(--blue-rgb),0.15); }
.countdown-label { font-size:11px;font-weight:700;color:var(--text-muted);letter-spacing:1.5px;text-transform:uppercase;margin-bottom:6px; }
.countdown-timer { font-family:'Nunito',sans-serif;font-weight:900;font-size:24px;color:var(--blue);letter-spacing:1px; }

/* ============================================================
   FORMS
   ============================================================ */
.individual-form { background:white;border-radius:var(--radius);padding:40px 36px;box-shadow:var(--shadow); }
.individual-form h3 { font-family:'Nunito',sans-serif;font-weight:900;font-size:22px;color:var(--text);margin-bottom:28px; }
.form-row { display:grid;grid-template-columns:1fr 1fr;gap:16px; }
@media(max-width:520px){.form-row{grid-template-columns:1fr;}}
.form-group { margin-bottom:18px; }
.form-group label { display:block;font-size:13px;font-weight:700;color:var(--text);margin-bottom:8px; }
.form-group input,.form-group select,.form-group textarea { width:100%;padding:14px 16px;border:2px solid #e2e8f0;border-radius:12px;font-family:'Figtree',sans-serif;font-size:16px;color:var(--text);background:var(--off-white);outline:none;transition:border-color 0.2s,background 0.2s,box-shadow 0.2s; }
.form-group input::placeholder,.form-group textarea::placeholder { color:#6b7b8d; }
.form-group input:focus,.form-group select:focus,.form-group textarea:focus { border-color:var(--blue);background:white;box-shadow:0 0 0 4px rgba(var(--blue-rgb),0.08); }
.form-group textarea { resize:vertical;min-height:110px; }
.form-check-group { display:flex;flex-direction:column;gap:10px;margin-top:8px; }
.form-check-item { display:flex;align-items:center;gap:10px;font-size:14px;color:var(--text);cursor:pointer; }
.form-check-item input[type="checkbox"],.form-check-item input[type="radio"] { width:17px;height:17px;accent-color:var(--blue);cursor:pointer;flex-shrink:0; }
.form-check-group.horizontal { flex-direction:row;flex-wrap:wrap;gap:20px; }
.form-divider { border:none;border-top:1px solid #e2e8f0;margin:12px 0 20px; }
.form-interest-row { display:grid;grid-template-columns:1fr 1fr;gap:24px; }
@media(max-width:600px){.form-interest-row{grid-template-columns:1fr;}}
.form-submit { width:100%;background:linear-gradient(135deg,var(--blue),#2589f5);color:white;border:none;padding:17px;border-radius:50px;font-family:'Nunito',sans-serif;font-weight:900;font-size:17px;cursor:pointer;box-shadow:0 6px 20px rgba(var(--blue-rgb),0.35);transition:transform 0.3s,box-shadow 0.3s;margin-top:8px; }
.form-submit:hover { transform:translateY(-3px);box-shadow:0 12px 36px rgba(var(--blue-rgb),0.45); }
.form-error { display:none;margin-top:12px;padding:10px 16px;background:rgba(230,59,46,0.08);border:1px solid rgba(230,59,46,0.22);border-radius:10px;color:var(--red);font-size:13px;font-weight:700; }
.form-error.show { display:block; }
.hp-field { opacity:0;position:absolute;left:-9999px;height:0;width:0;pointer-events:none; }
.attest-group { display:flex;align-items:flex-start;gap:10px;margin-top:16px; }
.attest-group input[type="checkbox"] { width:18px;height:18px;margin-top:2px;flex-shrink:0;accent-color:var(--yellow); }
.attest-group label { font-size:13px;color:rgba(255,255,255,0.75);line-height:1.6;cursor:pointer; }
.attest-group-light label { color:var(--text-muted); }
.attest-group-light input[type="checkbox"] { accent-color:var(--blue); }

/* ============================================================
   FOOTER
   ============================================================ */
footer { background:#060f1e;color:rgba(255,255,255,0.5);padding:48px 24px 32px;text-align:center; }
.footer-logo { font-family:'Nunito',sans-serif;font-weight:900;font-size:28px;color:white;margin-bottom:12px; }
.footer-logo span { color:var(--yellow); }
footer p { font-size:14px;line-height:1.8; }
.footer-divider { border:none;border-top:1px solid rgba(255,255,255,0.07);margin:28px 0 20px; }
.footer-legal-links { display:flex;gap:20px;justify-content:center;flex-wrap:wrap;margin-top:14px; }
.footer-legal-links a { font-size:13px;color:rgba(255,255,255,0.65);text-decoration:none;transition:color 0.2s; }
.footer-legal-links a:hover { color:rgba(255,255,255,0.75); }

/* ============================================================
   LEGAL MODALS
   ============================================================ */
.legal-modal-overlay { display:none;position:fixed;inset:0;z-index:2000;background:rgba(6,15,30,0.82);backdrop-filter:blur(6px);padding:24px 16px;overflow-y:auto; }
.legal-modal-overlay.open { display:flex;align-items:flex-start;justify-content:center; }
.legal-modal { background:white;border-radius:24px;max-width:760px;width:100%;margin:auto;padding:52px 52px 44px;position:relative;box-shadow:0 32px 80px rgba(0,0,0,0.35); }
@media(max-width:600px){.legal-modal{padding:36px 24px 32px;}}
.legal-modal-close { position:absolute;top:20px;right:24px;background:var(--off-white);border:none;border-radius:50%;width:36px;height:36px;font-size:18px;cursor:pointer;color:var(--text-muted);display:flex;align-items:center;justify-content:center;transition:background 0.2s; }
.legal-modal-close:hover { background:#e2e8f0; }
.legal-modal h2 { font-family:'Nunito',sans-serif;font-weight:900;font-size:26px;color:var(--text);margin-bottom:6px; }
.legal-modal .legal-updated { font-size:12px;color:var(--text-muted);margin-bottom:32px;display:block; }
.legal-modal h3 { font-family:'Nunito',sans-serif;font-weight:800;font-size:16px;color:var(--blue);margin:28px 0 8px; }
.legal-modal p,.legal-modal li { font-size:14px;color:#3a4a5a;line-height:1.85; }
.legal-modal ul { padding-left:20px;margin-top:6px; }
.legal-modal ul li { margin-bottom:4px; }
.legal-modal a { color:var(--blue); }

/* SCROLL TO TOP */
.scroll-top { position:fixed;bottom:28px;right:28px;z-index:900;width:46px;height:46px;border-radius:50%;background:var(--blue);color:white;border:none;cursor:pointer;font-size:20px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px rgba(var(--blue-rgb),0.4);opacity:0;transform:translateY(12px);transition:opacity 0.3s,transform 0.3s;pointer-events:none; }
.scroll-top.visible { opacity:1;transform:translateY(0);pointer-events:auto; }
.scroll-top:hover { background:var(--blue-dark);transform:translateY(-3px); }

/* ============================================================
   MULTI-PAGE SECTIONS
   ============================================================ */

/* Camp Teaser / Waitlist (home) */
.camp-teaser { background:linear-gradient(145deg,var(--blue-deep) 0%,var(--blue) 100%);position:relative;overflow:hidden;text-align:center; }
.camp-teaser::before { content:'';position:absolute;width:600px;height:600px;background:radial-gradient(circle,rgba(255,209,102,0.08) 0%,transparent 70%);top:-200px;right:-100px;border-radius:50%; }
.camp-teaser .container { position:relative;z-index:1; }
.camp-teaser .section-eyebrow { background:rgba(255,255,255,0.15);color:var(--yellow); }
.camp-teaser .section-title { color:white; }
.camp-teaser .section-sub { color:rgba(255,255,255,0.75);margin:0 auto; }
.waitlist-form { display:flex;gap:12px;max-width:480px;margin:28px auto 0; }
.waitlist-input { flex:1;padding:14px 18px;border:2px solid rgba(255,255,255,0.3);border-radius:50px;background:rgba(255,255,255,0.1);color:white;font-family:'Figtree',sans-serif;font-size:15px;outline:none;transition:border-color 0.2s;backdrop-filter:blur(8px); }
.waitlist-input::placeholder { color:rgba(255,255,255,0.5); }
.waitlist-input:focus { border-color:var(--yellow); }
.waitlist-btn { background:var(--yellow);color:var(--text);border:none;padding:14px 28px;border-radius:50px;font-family:'Nunito',sans-serif;font-weight:900;font-size:14px;cursor:pointer;white-space:nowrap;transition:transform 0.2s,box-shadow 0.2s; }
.waitlist-btn:hover { transform:translateY(-2px);box-shadow:0 6px 20px rgba(255,209,102,0.4); }
.waitlist-note { font-size:13px;color:rgba(255,255,255,0.55);margin-top:14px; }
@media(max-width:520px){.waitlist-form{flex-direction:column;}}

/* Book a Session section */
#book { background:var(--off-white); }
.book-form-wrap { max-width:680px;margin:48px auto 0; }

/* Session details (tutoring page) */
.session-details-section { background:var(--off-white); }
.session-details-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:24px;margin-top:48px; }
.session-detail-card { background:white;border-radius:var(--radius);padding:32px 24px;border:2px solid #e2e8f0;text-align:center;transition:border-color 0.3s,transform 0.3s,box-shadow 0.3s; }
.session-detail-card:hover { border-color:var(--blue);transform:translateY(-4px);box-shadow:var(--shadow); }
.session-detail-icon { font-size:36px;margin-bottom:14px; }
.session-detail-label { font-size:11px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--blue);margin-bottom:8px; }
.session-detail-value { font-family:'Nunito',sans-serif;font-weight:900;font-size:17px;color:var(--text);line-height:1.35; }
.session-detail-sub { font-size:13px;color:var(--text-muted);margin-top:6px;line-height:1.5; }

/* Who we work with (tutoring page) */
.who-section { background:white; }
.who-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-top:48px; }
.who-card { background:var(--blue-light);border-radius:16px;padding:28px 20px;text-align:center;border:1.5px solid rgba(var(--blue-rgb),0.15);transition:transform 0.3s,border-color 0.3s,box-shadow 0.3s; }
.who-card:hover { transform:translateY(-4px);border-color:var(--blue);box-shadow:var(--shadow); }
.who-card-icon { font-size:32px;margin-bottom:10px; }
.who-card h3 { font-family:'Nunito',sans-serif;font-weight:900;font-size:16px;color:var(--text);margin-bottom:6px; }
.who-card p { font-size:13px;color:var(--text-muted);line-height:1.6; }

/* Mission block (about page) */
.mission-block { background:linear-gradient(145deg,var(--blue-deep) 0%,var(--blue) 100%);border-radius:var(--radius);padding:56px 52px;position:relative;overflow:hidden;margin:56px 0 0; }
.mission-block::before { content:'';position:absolute;width:400px;height:400px;background:radial-gradient(circle,rgba(255,255,255,0.06) 0%,transparent 70%);top:-100px;right:-80px;border-radius:50%; }
.mission-quote { font-family:'Nunito',sans-serif;font-weight:900;font-size:clamp(19px,2.8vw,28px);color:white;line-height:1.5;margin-bottom:16px;position:relative;z-index:1; }
.mission-attr { font-size:14px;color:rgba(255,255,255,0.7);font-weight:600;position:relative;z-index:1; }
@media(max-width:600px){.mission-block{padding:36px 28px;}}

/* About story section */
.story-section { background:var(--off-white); }
.story-section p { font-size:17px;color:var(--text-muted);line-height:1.85;margin-bottom:20px;max-width:720px; }
.story-section strong { color:var(--blue); }
.story-lead { font-size:20px;color:var(--text);line-height:1.7;font-weight:600;margin-bottom:24px;max-width:720px; }

/* Camp expect cards */
.camp-expect-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;margin-top:48px; }
.camp-expect-card { background:white;border-radius:var(--radius);padding:32px 28px;border:2px solid #e2e8f0;text-align:center;transition:border-color 0.3s,transform 0.3s,box-shadow 0.3s; }
.camp-expect-card:hover { border-color:var(--blue);transform:translateY(-4px);box-shadow:var(--shadow); }
.camp-expect-icon { font-size:40px;margin-bottom:14px; }
.camp-expect-card h3 { font-family:'Nunito',sans-serif;font-weight:900;font-size:18px;color:var(--text);margin-bottom:8px; }
.camp-expect-card p { font-size:14px;color:var(--text-muted);line-height:1.7; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:768px){
  .section-title { letter-spacing:-0.75px; }
  .camp-form-wrap { padding:0; }
}
@media(max-width:600px){
  section { padding:72px 20px; }
  .hero { padding:128px 20px 80px; }
  .hero h1 { letter-spacing:-1px;font-size:clamp(40px,11vw,56px); }
  .hero-sub { font-size:15px; }
  .hero-badge { font-size:11px;padding:8px 16px; }
  .trust-bar { display:grid;grid-template-columns:1fr 1fr;gap:12px 8px;padding:18px 20px; }
  .trust-item { font-size:12px; }
  .section-title { letter-spacing:-0.5px; }
  .individual-form { padding:28px 20px; }
  .page-hero { padding:128px 20px 60px; }
  .page-hero-title { letter-spacing:-1px; }
}
@media(max-width:480px){
  .steps,.camp-grid,.testimonials-grid { grid-template-columns:1fr; }
  .hero-buttons { flex-direction:column;width:100%; }
  .hero-buttons .btn-primary,.hero-buttons .btn-outline { width:100%;text-align:center; }
  .program-col { padding:28px 20px; }
  .mission-block { padding:28px 20px; }
}

/* REDUCED MOTION */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after { animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important; }
  html.js-animate .reveal { opacity:1!important;transform:none!important; }
  .hero-badge,.hero h1,.hero-sub,.hero-buttons,.hero-proof { animation:none!important;opacity:1!important;transform:none!important; }
}
