
:root{
    --purple:#5A189A;
    --purple-dark:#3E0F72;
    --purple-tint:#7A3FC0;
    --amber:#FFB703;
    --amber-dark:#E29E00;
    --lavender:#E9D8FD;
    --charcoal:#2D2D2D;
    --white:#FFFFFF;
    --gray:#F8F9FA;
    --line:#EAE2F5;
    --shadow: 0 10px 30px rgba(90,24,154,0.10);
    --shadow-lg: 0 20px 50px rgba(90,24,154,0.16);
    --radius: 20px;
    --font-display:'Poppins',sans-serif;
    --font-body:'Inter',sans-serif;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    font-family:var(--font-body);
    color:var(--charcoal);
    background:var(--white);
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  /* Logo Image */
.logo img{
    height:60px;
    width:auto;
    transition:all .3s ease;
}

/* Hover Effect */
.logo img:hover{
    transform:scale(1.05);
}

/* Responsive */
@media(max-width:768px){
    .logo img{
        height:48px;
    }
}

@media(max-width:480px){
    .logo img{
        height:42px;
    }
}
  h1,h2,h3,h4{font-family:var(--font-display); margin:0; color:var(--purple-dark); line-height:1.15;}
  p{margin:0; line-height:1.7;}
  a{text-decoration:none; color:inherit;}
  img{max-width:100%; display:block;}
  ul{margin:0; padding:0; list-style:none;}
  button{font-family:inherit; cursor:pointer;}
  .container{max-width:1200px; margin:0 auto; padding:0 24px;}
  .eyebrow{
    display:inline-flex; align-items:center; gap:8px;
    font-family:var(--font-display); font-weight:600; font-size:13px;
    letter-spacing:.08em; text-transform:uppercase; color:var(--purple);
    background:var(--lavender); padding:7px 16px; border-radius:999px;
    margin-bottom:18px;
  }
  section{padding:96px 0;}
  @media(max-width:768px){ section{padding:64px 0;} }

  /* ---------- Spark signature motif ---------- */
  .spark{ display:inline-block; }
  .spark path{ fill:currentColor; }
  @keyframes spin-slow{ from{transform:rotate(0deg);} to{transform:rotate(360deg);} }
  @keyframes pulse-glow{ 0%,100%{opacity:.55; transform:scale(1);} 50%{opacity:1; transform:scale(1.08);} }
  @media (prefers-reduced-motion: reduce){
    *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important;}
  }

  /* ---------- Buttons ---------- */
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:10px;
    font-family:var(--font-display); font-weight:600; font-size:15px;
    padding:15px 28px; border-radius:999px; border:2px solid transparent;
    transition:transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease;
    white-space:nowrap;
  }
  .btn-primary{ background:var(--amber); color:var(--purple-dark); box-shadow:0 8px 20px rgba(255,183,3,0.35); }
  .btn-primary:hover{ transform:translateY(-2px); box-shadow:0 14px 28px rgba(255,183,3,0.45); }
  .btn-outline{ background:transparent; border-color:rgba(255,255,255,0.55); color:var(--white); }
  .btn-outline:hover{ background:rgba(255,255,255,0.12); transform:translateY(-2px); }
  .btn-ghost{ background:transparent; border-color:var(--purple); color:var(--purple); }
  .btn-ghost:hover{ background:var(--purple); color:var(--white); transform:translateY(-2px); }
  .btn-block{ width:100%; }

  /* ---------- Nav ---------- */
  header{
    position:fixed; top:0; left:0; right:0; z-index:1000;
    background:rgba(255,255,255,0.85); backdrop-filter:blur(14px);
    border-bottom:1px solid transparent;
    transition:border-color .3s ease, box-shadow .3s ease;
  }
  header.scrolled{ border-color:var(--line); box-shadow:0 4px 24px rgba(90,24,154,0.06); }
  .nav-inner{ display:flex; align-items:center; justify-content:space-between; padding:16px 24px; max-width:1200px; margin:0 auto; }
  .logo{ display:flex; align-items:center; gap:10px; font-family:var(--font-display); font-weight:700; font-size:20px; color:var(--purple-dark); }
  .logo .spark{ color:var(--amber); width:26px; height:26px; animation:spin-slow 14s linear infinite; }
  .nav-links{ display:flex; align-items:center; gap:34px; }
  .nav-links a{ font-family:var(--font-display); font-weight:500; font-size:15px; color:var(--charcoal); position:relative; padding:4px 0; }
  .nav-links a::after{ content:''; position:absolute; left:0; bottom:-2px; width:0; height:2px; background:var(--amber); transition:width .25s ease; }
  .nav-links a:hover::after{ width:100%; }
  .nav-links a.current::after{ width: 100%;}
  .nav-links a.current{ color:var(--purple); }
  .nav-cta-wrap{ display:flex; align-items:center; gap:22px; }
  .nav-cta-wrap .btn{ padding:12px 22px; font-size:14px; }
  .btn-nav-primary{ background:var(--purple); color:var(--white); box-shadow:0 6px 16px rgba(90,24,154,0.25); }
  .btn-nav-primary:hover{ background:var(--purple-dark); transform:translateY(-2px); }
  .burger{ display:none; flex-direction:column; gap:5px; background:none; border:none; padding:6px; }
  .burger span{ width:24px; height:2px; background:var(--purple-dark); border-radius:2px; transition:.25s; }
  .mobile-menu{ display:none; flex-direction:column; gap:2px; background:var(--white); border-top:1px solid var(--line); padding:12px 24px 20px; }
  .mobile-menu a{ padding:12px 0; font-family:var(--font-display); font-weight:500; border-bottom:1px solid var(--line); }
  .mobile-menu.open{ display:flex; }
  @media(max-width:900px){
    .nav-links{ display:none; }
    .nav-cta-wrap .btn-nav-primary{ display:none; }
    .burger{ display:flex; }
  }

  /* ---------- Hero ---------- */
  .hero{ position:relative; padding:168px 0 90px; overflow:hidden; background:linear-gradient(180deg,#FBF8FF 0%, var(--white) 78%); }
  .hero-glow{ position:absolute; top:-120px; right:-160px; width:560px; height:560px; border-radius:50%;
    background:radial-gradient(circle, rgba(255,183,3,0.35) 0%, rgba(233,216,253,0.28) 45%, rgba(255,255,255,0) 72%);
    animation:pulse-glow 7s ease-in-out infinite; pointer-events:none; }
  .hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center; position:relative; z-index:1; }
  @media(max-width:960px){ .hero-grid{ grid-template-columns:1fr; } }
  .hero h1{ font-size:clamp(34px,4.6vw,56px); font-weight:700; letter-spacing:-.01em; }
  .hero h1 .accent{ color:var(--amber); position:relative; }
  .hero p.lede{ font-size:18px; color:#5A5A5A; margin:24px 0 34px; max-width:520px; }
  .hero-actions{ display:flex; gap:16px; flex-wrap:wrap; }
  .hero-actions .btn-ghost{ border-color:var(--purple); }
  .hero-visual{ position:relative; }
  .hero-card{
    background:var(--white); border-radius:28px; box-shadow:var(--shadow-lg);
    padding:26px; position:relative; border:1px solid var(--line);
  }
  .hero-card { width:100%; height:auto; display:block; border-radius:18px; }
  .float-badge{
    position:absolute; background:var(--white); border-radius:16px; box-shadow:var(--shadow);
    padding:14px 18px; display:flex; align-items:center; gap:12px; font-family:var(--font-display); font-weight:600; font-size:14px;
    border:1px solid var(--line);
  }
  .float-badge .dot{ width:38px; height:38px; border-radius:12px; display:flex; align-items:center; justify-content:center; color:var(--white); flex-shrink:0; }
  .badge-1{ top:-24px; left:-28px; animation:float1 5s ease-in-out infinite; }
  .badge-2{ bottom:-22px; right:-22px; animation:float2 6s ease-in-out infinite; }
  @keyframes float1{ 0%,100%{transform:translateY(0);} 50%{transform:translateY(-10px);} }
  @keyframes float2{ 0%,100%{transform:translateY(0);} 50%{transform:translateY(10px);} }
  @media(max-width:560px){ .float-badge{ display:none; } }

  /* ---------- Stats ---------- */
  .stats-bar{ background:var(--purple); }
  .stats-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:32px; padding:56px 0; text-align:center; }
  @media(max-width:760px){ .stats-grid{ grid-template-columns:repeat(2,1fr); } }
  .stat-num{ font-family:var(--font-display); font-weight:700; font-size:clamp(30px,4vw,44px); color:var(--amber); }
  .stat-label{ color:rgba(255,255,255,0.85); font-size:14px; margin-top:6px; font-weight:500; }

  /* ---------- Reveal ---------- */
  .reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s ease; }
  .reveal.in{ opacity:1; transform:translateY(0); }

  /* ---------- Section headers ---------- */
  .section-head{ max-width:640px; margin-bottom:52px; }
  .section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
  .section-head h2{ font-size:clamp(28px,3.4vw,38px); }
  .section-head p{ color:#5F5F5F; font-size:16.5px; margin-top:14px; }

  /* ---------- Why choose cards ---------- */
  .why-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
  @media(max-width:960px){ .why-grid{ grid-template-columns:repeat(2,1fr); } }
  @media(max-width:560px){ .why-grid{ grid-template-columns:1fr; } }
  .why-card{
    background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
    padding:30px 26px; transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
  }
  .why-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:transparent; }
  .why-icon{ width:48px; height:48px; border-radius:14px; background:var(--lavender); color:var(--purple); display:flex; align-items:center; justify-content:center; margin-bottom:18px; }
  .why-card h3{ font-size:17px; margin-bottom:8px; }
  .why-card p{ font-size:14.5px; color:#6A6A6A; }

  /* ---------- Programs ---------- */
  .bg-tint{ background:var(--gray); }
  .programs-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
  @media(max-width:960px){ .programs-grid{ grid-template-columns:repeat(2,1fr); } }
  @media(max-width:560px){ .programs-grid{ grid-template-columns:1fr; } }
  .program-card{ background:var(--white); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); transition:transform .3s ease, box-shadow .3s ease; }
  .program-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); }
  .program-media{ height:120px; display:flex; align-items:center; justify-content:center; color:var(--white); overflow: hidden;}
  .program-media img{width: 100%; height: 100%; object-fit: cover; display: block;}
  .program-media .spark{ width:40px; height:40px; }
  .program-body{ padding:22px 22px 26px; }
  .program-body h3{ font-size:17px; margin-bottom:8px; }
  .program-body p{ font-size:14px; color:#6A6A6A; margin-bottom:16px; }
  .program-link{ font-family:var(--font-display); font-weight:600; font-size:14px; color:var(--purple); display:inline-flex; align-items:center; gap:6px; }
  .program-link svg{ width:14px; height:14px; transition:transform .25s ease; }
  .program-card:hover .program-link svg{ transform:translateX(4px); }

  /* ---------- Journey ---------- */
  .journey-track{ position:relative; }
  .journey-line{ position:absolute; top:34px; left:0; right:0; height:2px; background:var(--line); }
  .journey-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:16px; position:relative; }
  @media(max-width:960px){ .journey-grid{ grid-template-columns:repeat(3,1fr); } .journey-line{ display:none; } }
  @media(max-width:560px){ .journey-grid{ grid-template-columns:1fr; } }
  .journey-step{ text-align:center; }
  .journey-node{
    width:68px; height:68px; border-radius:50%; background:var(--white); border:2px solid var(--purple);
    display:flex; align-items:center; justify-content:center; margin:0 auto 16px; position:relative; z-index:1;
    font-family:var(--font-display); font-weight:700; color:var(--purple);
  }
  .journey-step.active .journey-node{ background:var(--purple); color:var(--white); }
  .journey-step h4{ font-size:14.5px; color:var(--purple-dark); margin-bottom:6px; }
  .journey-step p{ font-size:13px; color:#797979; }

  /* ---------- Subjects ---------- */
  .subject-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:14px; }
  @media(max-width:960px){ .subject-grid{ grid-template-columns:repeat(4,1fr); } }
  @media(max-width:640px){ .subject-grid{ grid-template-columns:repeat(3,1fr); } }
  .subject-chip{
    background:var(--white); border:1px solid var(--line); border-radius:16px; padding:20px 12px; text-align:center;
    transition:transform .25s ease, border-color .25s ease, background .25s ease;
  }
  .subject-chip:hover{ transform:translateY(-4px); border-color:var(--amber); background:#FFFCF3; }
  .subject-chip .ic{ width:30px; height:30px; margin:0 auto 10px; color:var(--purple); }
  .subject-chip span{ font-family:var(--font-display); font-weight:600; font-size:13px; }

  /* ---------- Split feature (homeschool / online) ---------- */
  .split{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
  @media(max-width:900px){ .split{ grid-template-columns:1fr; gap:36px; } }
  .split.reverse .split-media{ order:2; }
  @media(max-width:900px){ .split.reverse .split-media{ order:0; } }
  .split-media{ background:var(--lavender); border-radius:0px; padding:34px; }
  .split-media img{border-radius: 0px;}
  .split-media svg{ width:100%; height:auto; }
  .split-list li{ display:flex; gap:14px; padding:12px 0; font-size:15px; color:#4A4A4A; align-items:flex-start; }
  .split-list li .ic{ width:22px; height:22px; color:var(--amber); flex-shrink:0; margin-top:2px; }


  /* ---------- Testimonials ---------- */
  .test-wrap{ max-width:760px; margin:0 auto; position:relative; }
  .test-slide{ display:none; text-align:center; background:var(--white); border:1px solid var(--line); border-radius:28px; padding:48px 40px; box-shadow:var(--shadow); }
  .test-slide.active{ display:block; }
  .stars{ color:var(--amber); margin-bottom:18px; display:flex; justify-content:center; gap:4px; }
  .stars svg{ width:18px; height:18px; }
  .test-slide p.quote{ font-size:18px; color:var(--charcoal); font-style:italic; }
  .test-who{ margin-top:22px; font-family:var(--font-display); font-weight:600; color:var(--purple-dark); }
  .test-role{ font-size:13px; color:#8A8A8A; margin-top:2px; }
  .test-dots{ display:flex; justify-content:center; gap:10px; margin-top:26px; }
  .test-dot{ width:9px; height:9px; border-radius:50%; background:var(--line); border:none; padding:0; transition:background .25s ease, transform .25s ease; }
  .test-dot.active{ background:var(--amber); transform:scale(1.25); }
  .test-arrow{ position:absolute; top:50%; transform:translateY(-50%); width:44px; height:44px; border-radius:50%; background:var(--white); border:1px solid var(--line); box-shadow:var(--shadow); display:flex; align-items:center; justify-content:center; color:var(--purple); }
  .test-arrow.prev{ left:-56px; } .test-arrow.next{ right:-56px; }
  @media(max-width:860px){ .test-arrow{ display:none; } }

  /* ---------- Resources ---------- */
  .res-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:18px; }
  @media(max-width:960px){ .res-grid{ grid-template-columns:repeat(3,1fr); } }
  @media(max-width:640px){ .res-grid{ grid-template-columns:repeat(2,1fr); } }
  .res-card{ background:var(--white); border:1px solid var(--line); border-radius:18px; padding:26px 18px; text-align:center; transition:transform .25s ease, box-shadow .25s ease; }
  .res-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
  .res-card .ic{ width:30px; height:30px; color:var(--purple); margin:0 auto 12px; }
  .res-card span{ font-family:var(--font-display); font-weight:600; font-size:13.5px; }

  /* ---------- FAQ ---------- */
  .faq-item{ border-bottom:1px solid var(--line); }
  .faq-q{ width:100%; background:none; border:none; text-align:left; padding:22px 4px; display:flex; justify-content:space-between; align-items:center; gap:20px; font-family:var(--font-display); font-weight:600; font-size:16px; color:var(--purple-dark); }
  .faq-q .plus{ width:22px; height:22px; flex-shrink:0; position:relative; }
  .faq-q .plus::before, .faq-q .plus::after{ content:''; position:absolute; background:var(--purple); border-radius:2px; transition:transform .3s ease; }
  .faq-q .plus::before{ width:100%; height:2px; top:50%; left:0; transform:translateY(-50%); }
  .faq-q .plus::after{ width:2px; height:100%; left:50%; top:0; transform:translateX(-50%); }
  .faq-item.open .plus::after{ transform:translateX(-50%) rotate(90deg); opacity:0; }
  .faq-a{ max-height:0; overflow:hidden; transition:max-height .35s ease; }
  .faq-a-inner{ padding:0 4px 22px; color:#6A6A6A; font-size:14.5px; max-width:640px; }

  /* ---------- Final CTA ---------- */
  .final-cta{ background:linear-gradient(120deg,var(--purple) 0%, var(--purple-dark) 100%); position:relative; overflow:hidden; text-align:center; }
  .final-cta .hero-glow{ background:radial-gradient(circle, rgba(255,183,3,0.28) 0%, rgba(255,255,255,0) 70%); top:-200px; left:50%; transform:translateX(-50%); width:700px; height:700px; }
  .final-cta h2{ color:var(--white); font-size:clamp(28px,3.6vw,40px); max-width:640px; margin:0 auto; }
  .final-cta p{ color:rgba(255,255,255,0.85); max-width:520px; margin:18px auto 32px; }

  /* ---------- Contact ---------- */
  .contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:56px; }
  @media(max-width:900px){ .contact-grid{ grid-template-columns:1fr; } }
  .contact-cards{ display:grid; grid-template-columns:1fr; gap:16px; margin-bottom:24px; }
  @media(max-width:480px){ .contact-cards{ grid-template-columns:1fr; } }
  .cinfo{ background:var(--white); border:1px solid var(--line); border-radius:16px; padding:20px; }
  .cinfo .ic{ width:26px; height:26px; color:var(--purple); margin-bottom:10px; }
  .cinfo h4{ font-size:14px; }
  .cinfo p{ font-size:13.5px; color:#6A6A6A; margin-top:4px; }
  .map-box{ height:100px; border-radius:16px; background:var(--lavender); display:flex; align-items:center; justify-content:center; color:var(--purple); font-family:var(--font-display); font-weight:600; font-size:14px; border:1px solid var(--line); }
  .form-card{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:34px; box-shadow:var(--shadow); }
  .field{ margin-bottom:18px; }
  .field label{ display:block; font-family:var(--font-display); font-weight:600; font-size:13.5px; margin-bottom:7px; color:var(--purple-dark); }
  .field input, .field select, .field textarea{
    width:100%; padding:13px 15px; border-radius:12px; border:1.5px solid var(--line); font-family:var(--font-body); font-size:14.5px;
    background:var(--gray); transition:border-color .2s ease, background .2s ease;
  }
  .field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--purple); background:var(--white); }
  .field textarea{ resize:vertical; min-height:100px; }
  .field .err{ color:#D64545; font-size:12.5px; margin-top:6px; display:none; }
  .field.invalid input, .field.invalid textarea, .field.invalid select{ border-color:#D64545; }
  .field.invalid .err{ display:block; }
  .form-success{ display:none; background:#EFFBF1; border:1px solid #BFE8C6; color:#1E7A32; padding:16px; border-radius:12px; font-size:14px; margin-bottom:18px; font-weight:500; }
  .form-success.show{ display:block; }

  /* ---------- Footer ---------- */
  footer{ background:var(--charcoal); color:rgba(255,255,255,0.72); padding:64px 0 26px; }
  .footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:40px; margin-bottom:48px; }
  @media(max-width:820px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
  @media(max-width:520px){ .footer-grid{ grid-template-columns:1fr; } }
  .footer-logo{ display:flex; align-items:center; gap:10px; font-family:var(--font-display); font-weight:700; font-size:19px; color:var(--white); margin-bottom:14px; }
  .footer-logo .spark{ color:var(--amber); width:22px; height:22px; }
  footer h5{ font-family:var(--font-display); color:var(--white); font-size:14.5px; margin-bottom:16px; }
  footer ul li{ margin-bottom:10px; font-size:14px; }
  footer ul li a:hover{ color:var(--amber); }
  .footer-social{ display:flex; gap:10px; margin-top:16px; }
  .footer-social a{ width:36px; height:36px; border-radius:10px; background:rgba(255,255,255,0.08); display:flex; align-items:center; justify-content:center; transition:background .25s ease; }
  .footer-social a:hover{ background:var(--amber); color:var(--charcoal); }
  .news-row{ display:flex; gap:8px; margin-top:6px; }
  .news-row input{ flex:1; padding:11px 13px; border-radius:10px; border:1px solid rgba(255,255,255,0.15); background:rgba(255,255,255,0.06); color:var(--white); font-size:13.5px; }
  .news-row input::placeholder{ color:rgba(255,255,255,0.5); }
  .news-row button{ background:var(--amber); color:var(--purple-dark); border:none; border-radius:10px; padding:0 16px; font-family:var(--font-display); font-weight:600; font-size:13px; }
  .footer-bottom{ border-top:1px solid rgba(255,255,255,0.1); padding-top:24px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:13px; }
  .footer-bottom a{ margin-left:18px; }
  .footer-bottom a:hover{ color:var(--amber); }

  /* ---------- Floating buttons ---------- */
  .float-wa{
    position:fixed; bottom:26px; left:26px; width:58px; height:58px; border-radius:50%;
    background:#25D366; display:flex; align-items:center; justify-content:center; box-shadow:0 10px 24px rgba(37,211,102,0.4);
    z-index:900; color:var(--white); transition:transform .25s ease;
  }
  .float-wa:hover{ transform:scale(1.08); }
  .back-top{
    position:fixed; bottom:26px; right:26px; width:50px; height:50px; border-radius:50%;
    background:var(--purple); color:var(--white); display:flex; align-items:center; justify-content:center;
    box-shadow:var(--shadow-lg); border:none; z-index:900; opacity:0; pointer-events:none; transition:opacity .3s ease, transform .25s ease;
  }
  .back-top.show{ opacity:1; pointer-events:auto; }
  .back-top:hover{ transform:translateY(-3px); }

  ::selection{ background:var(--amber); color:var(--purple-dark); }