:root{
  --cream: #FFF8EC;
  --ink: #241938;
  --purple: #6C4AB6;
  --purple-deep: #52348C;
  --gold: #FFB800;
  --coral: #FF6B5D;
  --teal: #2EC4B6;
  --muted: #6B6178;
  --display: 'Fredoka', sans-serif;
  --body: 'Nunito', sans-serif;
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{ font-family:var(--body); color:var(--ink); background:var(--cream); line-height:1.6; overflow-x:hidden; }
.wrap{ max-width:1120px; margin:0 auto; padding:0 24px; position:relative; z-index:2; }
h1,h2,h3{ font-family:var(--display); font-weight:600; line-height:1.15; }

.eyebrow{
  font-family:var(--display); font-weight:600; font-size:0.85rem;
  letter-spacing:0.04em; text-transform:uppercase; color:var(--purple); margin-bottom:0.6rem;
}

/* Header */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(255,248,236,0.95); backdrop-filter:blur(6px);
  border-bottom:2px solid rgba(108,74,182,0.12);
  transition:box-shadow 0.2s ease, border-color 0.2s ease;
}
.site-header.scrolled{ box-shadow:0 4px 16px rgba(36,25,56,0.08); border-bottom-color:transparent; }
.header-inner{ display:flex; align-items:center; justify-content:space-between; padding:1rem 24px; }

.logo{ display:flex; align-items:center; gap:0.6rem; text-decoration:none; }
.logo-icon{ font-size:2.4rem; color:var(--purple); line-height:1; }
.logo-text{ font-family:var(--display); font-weight:700; font-size:1.55rem; color:var(--ink); line-height:1.1; }
.logo-sub{ display:block; font-family:var(--body); font-weight:700; font-size:0.65rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--coral); margin-top:2px; }

.nav-links{ display:flex; gap:1.5rem; }
.nav-links a{ color:var(--ink); text-decoration:none; font-weight:700; font-size:0.9rem; }
.nav-links a:hover{ color:var(--coral); }
.nav-toggle{ display:none; background:none; border:none; font-size:1.4rem; cursor:pointer; }

.btn{
  display:inline-block; padding:0.8rem 1.6rem; border-radius:50px;
  font-weight:700; text-decoration:none; font-size:0.95rem; font-family:var(--display);
  transition:transform 0.15s ease, box-shadow 0.15s ease; border:none; cursor:pointer;
}
.btn-primary{ background:var(--coral); color:#fff; box-shadow:0 6px 0 #D14A3E; }
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 8px 0 #D14A3E; }
.btn-primary:active{ transform:translateY(2px); box-shadow:0 2px 0 #D14A3E; }
.btn-ghost{ background:#fff; color:var(--purple); border:2px solid var(--purple); }
.btn-ghost:hover{ background:var(--purple); color:#fff; }
.btn-lg{ padding:1rem 2.2rem; font-size:1.05rem; }
.btn-whatsapp{ background:#25D366; color:#fff; box-shadow:0 6px 0 #1AA94E; margin-left:0.8rem; }
.btn-whatsapp:hover{ transform:translateY(-2px); }

/* Hero */
.hero{
  position:relative; padding:5.5rem 0 5rem; overflow:hidden;
  background:
    radial-gradient(circle at 8% 12%, rgba(255,184,0,0.17), transparent 24rem),
    radial-gradient(circle at 92% 22%, rgba(108,74,182,0.18), transparent 30rem),
    linear-gradient(145deg,#fffaf0 0%,#fff8ec 48%,#f7efff 100%);
}
.hero::before{
  content:""; position:absolute; inset:0; opacity:.25; pointer-events:none;
  background-image:linear-gradient(rgba(108,74,182,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(108,74,182,.08) 1px,transparent 1px);
  background-size:46px 46px;
  mask-image:linear-gradient(to right,transparent,black 35%,black 85%,transparent);
}
.blob{ position:absolute; border-radius:50%; filter:blur(30px); opacity:0.22; z-index:1; }
.blob-1{ width:380px; height:380px; background:var(--gold); top:-160px; right:-140px; }
.blob-2{ width:300px; height:300px; background:var(--teal); bottom:-140px; left:-120px; }
.hero-inner{ display:flex; align-items:center; gap:4rem; }
.hero-copy{ flex:1.15; }
.hero h1{ font-size:clamp(2.35rem, 4.5vw, 3.65rem); margin-bottom:1.25rem; max-width:14ch; letter-spacing:-.025em; }
.highlight{ color:var(--coral); }
.hero-sub{ color:var(--muted); font-size:1.08rem; max-width:50ch; margin-bottom:0.8rem; }
.hero-countries{ font-size:0.85rem; color:var(--muted); font-weight:700; margin-bottom:1.8rem; }
.hero-actions{ display:flex; gap:1rem; flex-wrap:wrap; }

/* Hero visual */
.hero-visual{ flex:0.85; position:relative; width:440px; height:440px; margin:0 auto; isolation:isolate; }
.visual-glow{
  position:absolute; width:360px; height:360px; top:38px; left:40px; border-radius:50%;
  background:linear-gradient(145deg,rgba(255,184,0,.38),rgba(108,74,182,.25));
  filter:blur(2px); transform:rotate(-7deg); z-index:-2;
  box-shadow:0 30px 70px rgba(82,52,140,.2);
}
.visual-glow::after{
  content:""; position:absolute; inset:16px; border:2px dashed rgba(255,255,255,.7); border-radius:50%;
}
.visual-card{
  position:absolute; z-index:1; width:286px; height:350px; left:77px; top:43px;
  padding:16px; border-radius:30px; background:rgba(255,255,255,.9);
  border:1px solid rgba(255,255,255,.9); box-shadow:0 22px 60px rgba(36,25,56,.2),0 7px 0 rgba(36,25,56,.08);
  backdrop-filter:blur(12px); transform:rotate(3deg);
}
.visual-card-top{ display:flex; align-items:center; gap:8px; font-family:var(--display); font-weight:600; font-size:.78rem; color:var(--purple); padding:1px 4px 12px; }
.live-dot{ width:9px; height:9px; background:#27c66f; border-radius:50%; box-shadow:0 0 0 5px rgba(39,198,111,.14); }
.mini-board{
  position:relative; height:238px; overflow:hidden; border-radius:20px;
  background-color:#fff4d5;
  background-image:conic-gradient(from 90deg,#7a56c1 25%,#fff4d5 0 50%,#7a56c1 0 75%,#fff4d5 0);
  background-size:59.5px 59.5px;
  box-shadow:inset 0 0 0 3px rgba(36,25,56,.08);
}
.mini-board span{ position:absolute; display:grid; place-items:center; width:60px; height:60px; line-height:1; text-shadow:0 5px 12px rgba(36,25,56,.25); }
.board-king{ color:#fff; font-size:3.2rem; right:0; bottom:0; }
.board-knight{ color:var(--ink); font-size:3rem; left:59px; top:59px; }
.visual-card-caption{ display:flex; flex-direction:column; padding:12px 4px 0; line-height:1.25; }
.visual-card-caption strong{ font-family:var(--display); color:var(--ink); font-size:1rem; }
.visual-card-caption span{ color:var(--muted); font-size:.74rem; font-weight:700; margin-top:3px; }

.piece-float{
  position:absolute;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:radial-gradient(circle at 32% 28%, #fff, var(--tint, #F3EAFE));
  box-shadow:0 10px 0 rgba(36,25,56,0.1), 0 14px 28px rgba(36,25,56,0.16), inset 0 0 0 1px rgba(255,255,255,0.6);
  animation-name:float;
  animation-duration:4s;
  animation-timing-function:ease-in-out;
  animation-iteration-count:infinite;
}
.piece-1{ top:-12px; left:154px; width:96px; height:96px; font-size:3.45rem; color:var(--purple); --tint:#EEE1FF; animation-delay:0s; }
.piece-2{ top:82px; left:-2px; width:86px; height:86px; font-size:3rem; color:var(--coral); --tint:#FFE1DC; animation-delay:0.5s; }
.piece-3{ top:115px; right:-4px; width:80px; height:80px; font-size:2.75rem; color:var(--teal); --tint:#DBF5F1; animation-delay:1s; }
.piece-4{ bottom:28px; left:25px; width:68px; height:68px; font-size:2.3rem; color:#b47a00; --tint:#FFEEC2; animation-delay:1.5s; }
.piece-5{ bottom:5px; right:38px; width:76px; height:76px; font-size:2.55rem; color:var(--purple); --tint:#EEE1FF; animation-delay:2s; }

@keyframes float{
  0%{ transform:translateY(0); }
  50%{ transform:translateY(-16px); }
  100%{ transform:translateY(0); }
}

.highlight-badge{
  position:absolute; z-index:4; background:#fff; border-radius:50px;
  padding:0.65rem 1rem; font-family:var(--display); font-weight:600; font-size:0.78rem;
  box-shadow:0 6px 0 rgba(36,25,56,0.1); display:flex; align-items:center; gap:0.4rem;
  animation-name:float; animation-duration:4s; animation-timing-function:ease-in-out; animation-iteration-count:infinite;
  white-space:nowrap;
}
.highlight-badge .badge-icon{ display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:#f8f1ff; }
.highlight-badge strong,.highlight-badge small{ display:block; line-height:1.12; }
.highlight-badge small{ font-family:var(--body); font-size:.63rem; color:var(--muted); margin-top:3px; }
.badge-top{ top:21px; right:-11px; color:var(--purple); }
.badge-bottom{ bottom:4px; left:-10px; color:var(--coral); animation-delay:1s; }

/* Trust strip */
.trust-strip{ background:#fff; border-top:1px solid rgba(108,74,182,0.1); border-bottom:1px solid rgba(108,74,182,0.1); padding:1.4rem 0; }
.trust-grid{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem; }
.trust-item{ display:flex; align-items:center; gap:0.5rem; font-family:var(--display); font-weight:600; font-size:0.85rem; color:var(--ink); }
.trust-icon{ font-size:1.2rem; }

/* India fees page */
.fees-hero{position:relative;padding:5rem 0 3.5rem;text-align:center;overflow:hidden;background:radial-gradient(circle at 15% 10%,rgba(255,184,0,.18),transparent 24rem),radial-gradient(circle at 88% 15%,rgba(108,74,182,.16),transparent 28rem),linear-gradient(145deg,#fffaf0,#f8f0ff)}
.fees-hero::after{content:"";position:absolute;inset:0;opacity:.18;pointer-events:none;background-image:linear-gradient(rgba(108,74,182,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(108,74,182,.1) 1px,transparent 1px);background-size:46px 46px}
.fees-hero h1{font-size:clamp(2.25rem,5vw,4rem);max-width:850px;margin:.4rem auto 1rem;letter-spacing:-.025em}
.fees-hero .hero-sub{max-width:720px;margin:0 auto 1.35rem;font-size:1.08rem}
.fees-note{display:inline-flex;align-items:center;gap:.45rem;padding:.7rem 1rem;background:#fff;border:1px solid rgba(108,74,182,.15);border-radius:999px;box-shadow:0 8px 24px rgba(36,25,56,.08);font-weight:800;color:var(--purple-deep)}
.fees-section{padding:4.5rem 0}
.fees-personal{background:linear-gradient(180deg,#f8f3ff,#fff8ec)}
.fees-section-heading{text-align:center;max-width:680px;margin:0 auto 2.25rem}
.fees-section-heading h2{font-size:clamp(1.9rem,4vw,2.75rem);margin:.35rem 0 .65rem}
.fees-section-heading>p:last-child{color:var(--muted);font-size:1.02rem}
.fees-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;max-width:920px;margin:0 auto}
.fee-card{position:relative;display:flex;flex-direction:column;min-height:100%;padding:2rem;background:#fff;border:2px solid rgba(108,74,182,.12);border-radius:26px;box-shadow:0 16px 42px rgba(36,25,56,.1);overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}
.fee-card:hover{transform:translateY(-5px);box-shadow:0 22px 52px rgba(36,25,56,.14)}
.fee-card-featured{border-color:rgba(108,74,182,.45);box-shadow:0 18px 48px rgba(82,52,140,.16)}
.fee-ribbon{position:absolute;top:18px;right:-36px;width:160px;padding:.42rem 0;text-align:center;transform:rotate(38deg);background:var(--coral);color:#fff;font:700 .72rem var(--display);letter-spacing:.04em}
.fee-piece{display:grid;place-items:center;width:62px;height:62px;margin-bottom:1rem;border-radius:18px;background:#f0e7ff;color:var(--purple);font-size:2.25rem;box-shadow:0 6px 0 rgba(82,52,140,.1)}
.fee-card-featured .fee-piece{background:#fff0cb;color:#a76e00}
.fee-card h3{font-size:1.5rem;margin-bottom:.35rem;padding-right:2.5rem}
.fee-levels{min-height:2.8rem;color:var(--muted);font-weight:700;margin-bottom:1rem}
.fee-pricing{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}
.fee-original{color:#8c8393;text-decoration:line-through;font-weight:700}
.fee-discount{padding:.25rem .55rem;border-radius:999px;background:#e8f8f4;color:#08745e;font-size:.72rem;font-weight:900}
.fee-current{display:block;margin:.25rem 0 1.15rem;color:var(--ink);font:700 clamp(2.3rem,5vw,3.25rem) var(--display);line-height:1}
.fee-current small{font:700 .92rem var(--body);color:var(--muted)}
.fee-includes{display:grid;gap:.68rem;margin:0 0 1.7rem;padding:0;list-style:none;color:#554b62}
.fee-includes li{position:relative;padding-left:1.7rem}
.fee-includes li::before{content:"✓";position:absolute;left:0;top:0;color:var(--teal);font-weight:900}
.fee-card .btn{align-self:flex-start;margin-top:auto}
.fees-smallprint{max-width:850px;margin:1.75rem auto 0;text-align:center;color:var(--muted);font-size:.85rem;line-height:1.65}
@media(max-width:720px){.fees-hero{padding:3.5rem 0 2.75rem}.fees-section{padding:3.25rem 0}.fees-grid{grid-template-columns:1fr;max-width:500px}.fee-card{padding:1.6rem}.fee-levels{min-height:0}.fee-current{font-size:2.55rem}.fee-card .btn{width:100%;text-align:center}}

/* Stats */
.stats{ background:var(--ink); padding:2.5rem 0; }
.stats-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; text-align:center; }
.stat{ display:flex; flex-direction:column; align-items:center; }
.stat-num, .stat-suffix{ font-family:var(--display); font-weight:700; font-size:2.1rem; color:var(--gold); display:inline; }
.stat-label{ color:#D9D2E8; font-size:0.85rem; margin-top:0.2rem; }

/* Sections */
.section{ padding:5rem 0; }
.section-alt{ background:#FBF1DD; }
.section h2{ font-size:clamp(1.6rem,3vw,2.2rem); max-width:22ch; }
.section-sub{ color:var(--muted); max-width:56ch; margin-top:0.8rem; font-size:1.05rem; }

/* Why us */
.why-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; margin-top:2.5rem; }
.why-card{ background:#fff; border-radius:16px; padding:1.8rem; text-align:center; box-shadow:0 6px 0 rgba(36,25,56,0.08); transition:transform 0.15s ease; }
.why-card:hover{ transform:translateY(-6px); }
.why-icon{ font-size:2.3rem; display:block; margin-bottom:0.8rem; }
.why-card h3{ font-size:1.05rem; margin-bottom:0.4rem; }
.why-card p{ color:var(--muted); font-size:0.9rem; }

/* Curriculum levels */
.levels-track{ display:flex; gap:1.2rem; margin-top:3rem; position:relative; flex-wrap:wrap; align-items:flex-start; }
.level-card{
  flex:1; min-width:190px; background:#fff; border-radius:16px;
  padding:1.8rem 1.4rem; text-align:center; box-shadow:0 6px 0 rgba(36,25,56,0.06);
  position:relative;
}
.level-card:not(:last-child)::after{
  content:"→"; position:absolute; right:-1.5rem; top:2.6rem;
  font-size:1.3rem; color:var(--gold); z-index:2;
}
.level-card-featured{ background:linear-gradient(160deg, var(--purple), var(--purple-deep)); color:#fff; }
.level-card-featured .level-tag, .level-card-featured .level-topics li{ color:#EDE7F6; }
.level-card-featured .level-duration{ color:var(--gold); }

.level-icon{
  width:72px; height:72px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:2.6rem; margin:0 auto 0.9rem; color:#fff;
}
.level-pawn .level-icon{ background:var(--gold); }
.level-knight .level-icon{ background:var(--coral); }
.level-bishop .level-icon{ background:var(--teal); }
.level-rook .level-icon{ background:var(--purple); }
.level-queen .level-icon{ background:#fff; color:var(--purple); border:3px solid var(--gold); }

.level-duration{ display:block; font-family:var(--display); font-weight:700; font-size:0.8rem; color:var(--coral); margin-bottom:0.3rem; }
.level-tag{ font-family:var(--display); font-size:0.75rem; text-transform:uppercase; letter-spacing:0.05em; color:var(--muted); margin-bottom:0.9rem; }
.level-card h3{ font-size:1.1rem; margin-bottom:0.2rem; }

.level-topics{ list-style:none; text-align:left; }
.level-topics li{ font-size:0.85rem; color:var(--muted); padding-left:1.3rem; position:relative; margin-bottom:0.6rem; }
.level-topics li::before{ content:"♟"; position:absolute; left:0; color:var(--gold); font-size:0.8rem; }

/* Programs - flip cards */
.programs-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.8rem; margin-top:3rem; perspective:1000px; }
.flip-card{ height:280px; background:transparent; }
.flip-inner{ position:relative; width:100%; height:100%; transition:transform 0.6s; transform-style:preserve-3d; }
.flip-card:hover .flip-inner, .flip-card.flipped .flip-inner{ transform:rotateY(180deg); }
.flip-front, .flip-back{
  position:absolute; width:100%; height:100%; backface-visibility:hidden;
  border-radius:18px; padding:2rem; display:flex; flex-direction:column; justify-content:center;
  color:#fff;
}
.flip-back{ transform:rotateY(180deg); justify-content:flex-start; }
.card-gold{ background:linear-gradient(160deg, var(--gold), #E39A00); }
.card-coral{ background:linear-gradient(160deg, var(--coral), #D14A3E); }
.card-purple{ background:linear-gradient(160deg, var(--purple), var(--purple-deep)); }
.phase-icon{ font-size:2.6rem; margin-bottom:0.6rem; }
.flip-front h3{ font-size:1.4rem; margin-bottom:0.3rem; }
.flip-hint{ font-size:0.78rem; margin-top:1.2rem; opacity:0.85; }
.flip-back ul{ list-style:none; }
.flip-back li{ font-size:0.92rem; padding-left:1.2rem; position:relative; margin-bottom:0.7rem; }
.flip-back li::before{ content:"★"; position:absolute; left:0; }

/* Testimonials */
.testimonials{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:2.5rem; }
blockquote{ background:#fff; border-top:4px solid var(--teal); padding:1.6rem; border-radius:12px; box-shadow:0 6px 0 rgba(36,25,56,0.06); }
blockquote p{ font-size:0.98rem; margin-bottom:1rem; }
cite{ font-style:normal; font-size:0.85rem; color:var(--muted); font-weight:700; }

/* Locations */
.locations-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:2.5rem; }
.location-card{ background:#fff; padding:1.8rem; border-radius:16px; box-shadow:0 6px 0 rgba(36,25,56,0.06); }
.loc-icon{ font-size:1.8rem; display:block; margin-bottom:0.6rem; }
.location-card h3{ font-size:1.1rem; margin-bottom:0.5rem; color:var(--purple); }
.location-card p{ color:var(--muted); font-size:0.92rem; }
.location-card a{ color:var(--coral); font-weight:700; }

/* FAQ */
.faq-list{ margin-top:2.5rem; max-width:760px; }
details{ background:#fff; border-radius:12px; padding:1rem 1.4rem; margin-bottom:0.8rem; box-shadow:0 4px 0 rgba(36,25,56,0.06); }
summary{ font-family:var(--display); font-weight:600; cursor:pointer; }
details p{ color:var(--muted); margin-top:0.7rem; font-size:0.95rem; }

/* CTA band */
.cta-band{ position:relative; background:var(--purple); color:#fff; padding:5rem 0; text-align:center; overflow:hidden; }
.blob-3{ width:400px; height:400px; background:var(--coral); opacity:0.18; filter:blur(30px); top:-150px; left:50%; transform:translateX(-50%); }
.cta-inner{ max-width:620px; margin:0 auto; }
.cta-band h2{ color:#fff; margin-bottom:1rem; font-size:clamp(1.6rem,3vw,2.2rem); }
.cta-band p{ margin-bottom:2rem; opacity:0.92; }

/* Footer */
.site-footer{ background:var(--ink); color:#D9D2E8; padding:2rem 0; }
.footer-inner{ display:flex; justify-content:space-between; font-size:0.85rem; flex-wrap:wrap; gap:0.5rem; }
.footer-inner a{ color:#D9D2E8; }

/* Trial page */
.trial-hero{ position:relative; padding:4.5rem 0 3rem; overflow:hidden; text-align:center; }
.trial-hero h1{ font-size:clamp(2rem,4vw,2.8rem); margin:0.5rem 0 1rem; }
.trial-hero .hero-sub{ max-width:60ch; margin:0 auto; }
.trial-section{ padding-top:2rem; }
.trial-grid{ display:grid; grid-template-columns:1fr 1.3fr; gap:3rem; align-items:start; }
.trial-info h2{ font-size:1.4rem; margin-bottom:1.2rem; }
.trial-steps{ list-style:none; margin-bottom:2rem; }
.trial-steps li{ display:flex; align-items:flex-start; gap:0.8rem; margin-bottom:1rem; font-size:0.95rem; color:var(--muted); }
.step-num{
  flex-shrink:0; width:28px; height:28px; border-radius:50%;
  background:var(--purple); color:#fff; font-family:var(--display); font-weight:700;
  font-size:0.85rem; display:flex; align-items:center; justify-content:center;
}
.trial-whatsapp-box{ background:#fff; border-radius:16px; padding:1.5rem; box-shadow:0 6px 0 rgba(36,25,56,0.06); text-align:center; }
.trial-whatsapp-box p{ margin-bottom:0.8rem; font-weight:700; }
.trial-form{
  background:#fff; border-radius:20px; padding:2.2rem;
  box-shadow:0 8px 0 rgba(36,25,56,0.08);
  display:flex; flex-direction:column; gap:1.1rem;
}
.trial-form label{ display:flex; flex-direction:column; gap:0.4rem; font-family:var(--display); font-weight:600; font-size:0.85rem; color:var(--ink); }
.trial-form input, .trial-form select, .trial-form textarea{
  font-family:var(--body); font-size:0.95rem; padding:0.7rem 0.9rem;
  border:2px solid #EEE3D3; border-radius:10px; background:var(--cream); color:var(--ink);
}
.trial-form input:focus, .trial-form select:focus, .trial-form textarea:focus{ outline:none; border-color:var(--purple); }
.trial-submit{ margin-top:0.5rem; width:100%; text-align:center; }
.trial-note{ font-size:0.8rem; color:var(--muted); text-align:center; font-family:var(--body); font-weight:400; }

/* Responsive */
@media (max-width: 860px){
  .hero{ padding:3.8rem 0 2.8rem; }
  .hero::before{ background-size:32px 32px; opacity:.17; }
  .hero-inner{ flex-direction:column; text-align:center; gap:2rem; }
  .hero h1{ margin-left:auto; margin-right:auto; }
  .hero-sub{ margin-left:auto; margin-right:auto; }
  .hero-actions{ justify-content:center; }
  .hero-visual{ width:360px; height:370px; transform:scale(.9); transform-origin:top center; margin:0 auto -2rem; }
  .visual-card{ left:48px; top:28px; }
  .visual-glow{ left:0; top:12px; }
  .piece-1{ left:130px; }
  .piece-2{ left:-8px; }
  .piece-3{ right:-9px; }
  .badge-top{ right:-7px; }
  .stats-grid, .why-grid{ grid-template-columns:repeat(2,1fr); }
  .programs-grid, .locations-grid, .testimonials, .trial-grid{ grid-template-columns:1fr; }
  .nav-links, .header-cta{ display:none; }
  .nav-toggle{ display:block; }
  .header-inner{ position:relative; }
  .nav-links.open{ display:flex; position:absolute; top:calc(100% + 2px); left:16px; right:16px; flex-direction:column; gap:0; padding:.65rem; background:#fff; border:1px solid rgba(108,74,182,.12); border-radius:16px; box-shadow:0 18px 45px rgba(36,25,56,.16); }
  .nav-links.open a{ padding:.75rem 1rem; border-radius:10px; text-align:left; }
  .nav-links.open a:hover{ background:#f8f1ff; }
  .btn-whatsapp{ margin-left:0; margin-top:0.8rem; }
  .trust-grid{ justify-content:center; text-align:center; }
}
@media (max-width: 960px){
  .levels-track{ flex-direction:column; }
  .level-card:not(:last-child)::after{
    content:"↓"; right:auto; left:50%; top:auto; bottom:-1.5rem; transform:translateX(-50%);
  }
}
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .piece-float, .highlight-badge{ animation:none; }
  .btn, .flip-inner, .why-card{ transition:none; }
}
/* Landing page (ads) */
.lp-header{ background:var(--cream); border-bottom:2px solid rgba(108,74,182,0.12); padding:0.5rem 0; }
.lp-header-inner{ display:flex; align-items:center; justify-content:space-between; padding:0.6rem 24px; }
.lp-header-whatsapp{ padding:0.6rem 1.2rem; font-size:0.85rem; }

.lp-hero{ position:relative; padding:3.5rem 0; overflow:hidden; }
.lp-hero-inner{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:3rem; align-items:start; }

.lp-hero-copy{ position:relative; }
.lp-hero-copy h1{ font-size:clamp(2rem,4vw,2.9rem); margin:0.6rem 0 1.1rem; max-width:16ch; }
.lp-checklist{ list-style:none; margin-top:1.5rem; }
.lp-checklist li{ font-weight:700; font-size:0.98rem; margin-bottom:0.7rem; color:var(--ink); }

.lp-piece{ position:absolute; z-index:0; opacity:0.5; }
.lp-piece-1{ font-size:5rem; color:var(--purple); bottom:-20px; right:60px; animation-delay:0s; }
.lp-piece-2{ font-size:3.5rem; color:var(--coral); bottom:40px; right:-10px; animation-delay:0.8s; }

.lp-form-card{
  background:#fff; border-radius:20px; padding:2rem;
  box-shadow:0 10px 0 rgba(36,25,56,0.1); position:relative; z-index:2;
}
.lp-form-card h2{ font-size:1.4rem; margin-bottom:0.4rem; }
.lp-form-sub{ color:var(--muted); font-size:0.9rem; margin-bottom:1.4rem; }
.lp-form-card form{ display:flex; flex-direction:column; gap:1rem; }
.lp-form-card label{
  display:flex; flex-direction:column; gap:0.4rem;
  font-family:var(--display); font-weight:600; font-size:0.85rem; color:var(--ink);
}
.lp-form-card input{
  font-family:var(--body); font-size:0.95rem; padding:0.75rem 0.9rem;
  border:2px solid #EEE3D3; border-radius:10px; background:var(--cream); color:var(--ink);
}
.lp-form-card input:focus{ outline:none; border-color:var(--purple); }
.lp-submit{ width:100%; text-align:center; margin-top:0.4rem; }

.lp-levels-snapshot{ padding:3rem 0; text-align:center; }
.lp-levels-row{ display:flex; align-items:center; justify-content:center; gap:0.8rem; flex-wrap:wrap; margin-top:2rem; }
.lp-level-chip{
  display:flex; align-items:center; gap:0.5rem; background:#fff; border-radius:50px;
  padding:0.6rem 1.2rem; font-family:var(--display); font-weight:600; font-size:0.9rem;
  box-shadow:0 4px 0 rgba(36,25,56,0.06);
}
.lp-level-icon{
  width:32px; height:32px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:1.1rem;
}
.lp-icon-pawn{ background:var(--gold); }
.lp-icon-knight{ background:var(--coral); }
.lp-icon-bishop{ background:var(--teal); }
.lp-icon-rook{ background:var(--purple); }
.lp-icon-queen{ background:var(--purple-deep); }
.lp-arrow{ color:var(--muted); font-size:1.1rem; }

@media (max-width: 860px){
  .lp-hero-inner{ grid-template-columns:1fr; }
  .lp-piece{ display:none; }
}
/* Enrollment page */
.enroll-embed-wrap{
  background:#fff; border-radius:20px; padding:1rem;
  box-shadow:0 8px 0 rgba(36,25,56,0.08); max-width:900px; margin:0 auto;
}
.enroll-embed{
  width:100%; height:3200px; border:none; border-radius:12px; display:block;
}
.enroll-note{
  text-align:center; margin-top:1.5rem; color:var(--muted); font-size:0.9rem;
}
.enroll-note a{ color:var(--coral); font-weight:700; }

@media (max-width:600px){
  .enroll-embed{ height:3600px; }
}
/* Payment section */
.payment-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:2.5rem; }
.payment-card{ background:#fff; border-radius:16px; padding:1.6rem; box-shadow:0 6px 0 rgba(36,25,56,0.06); }
.payment-card h3{ font-size:1.05rem; margin-bottom:1rem; color:var(--purple); }
.payment-list{ list-style:none; }
.payment-list li{ font-size:0.85rem; color:var(--muted); margin-bottom:0.5rem; line-height:1.5; }
.payment-list strong{ color:var(--ink); }
.payment-disclaimer{ text-align:center; margin-top:2rem; color:var(--muted); font-size:0.9rem; }
.payment-disclaimer a{ color:var(--coral); font-weight:700; }

@media (max-width:860px){
  .payment-grid{ grid-template-columns:1fr; }
}
/* Offline centre gallery */
.offline-centre{
  background:linear-gradient(180deg,#fff 0%,#fff8ec 100%);
}
.offline-centre-heading{
  max-width:720px; margin:0 auto 2.25rem; text-align:center;
}
.offline-centre-heading h2{
  max-width:none; margin:0 auto .8rem;
}
.offline-centre-heading > p:last-child{
  color:var(--muted); font-size:1.02rem;
}
.offline-centre-gallery{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  grid-auto-rows:210px; gap:1rem;
}
.centre-photo{
  margin:0; overflow:hidden; border:5px solid #fff; border-radius:22px;
  background:#eee6f7; box-shadow:0 14px 34px rgba(36,25,56,.13);
}
.centre-photo-featured{ grid-column:span 2; grid-row:span 2; }
.centre-photo-wide{ grid-column:span 2; }
.centre-photo img{
  display:block; width:100%; height:100%; object-fit:cover;
  transition:transform .35s ease;
}
.centre-photo:hover img{ transform:scale(1.045); }

@media(max-width:760px){
  .offline-centre-gallery{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-auto-rows:180px; gap:.75rem;
  }
  .centre-photo-featured{ grid-column:span 2; grid-row:span 1; height:240px; }
  .centre-photo-wide{ grid-column:span 2; }
  .centre-photo{ border-width:4px; border-radius:17px; }
}
@media(max-width:420px){
  .offline-centre-gallery{ grid-auto-rows:150px; }
  .centre-photo-featured{ height:210px; }
}
@media(prefers-reduced-motion:reduce){
  .centre-photo img{ transition:none; }
}

/* Student spotlight */
.spotlight-grid{
  display:grid; grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr); align-items:center; gap:3rem;
}
.spotlight-carousel{
  width:100%; overflow:hidden; padding:8px 0 18px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
}
.spotlight-track{
  display:flex; width:max-content; animation:spotlight-scroll 28s linear infinite;
}
.spotlight-photos{
  display:flex; gap:1.4rem; flex-shrink:0; padding-right:1.4rem;
}
.spotlight-photo-item{
  width:200px; text-align:center;
}
.spotlight-photo{
  width:100%; height:220px; object-fit:cover; display:block;
  border-radius:32px 32px 0 0;
  border:5px solid #fff;
  box-shadow:0 0 0 4px var(--gold), 0 10px 0 rgba(36,25,56,0.1);
}
.spotlight-photo-placeholder{
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(160deg,#fff,#F3EAFE);
  color:var(--purple); font-size:3.2rem;
}
.spotlight-rating-badge{
  display:inline-block; margin-top:-16px; position:relative; z-index:2;
  background:var(--gold); color:var(--ink); font-family:var(--display); font-weight:700;
  font-size:0.8rem; padding:0.5rem 1rem; border-radius:50px;
  box-shadow:0 6px 0 rgba(36,25,56,0.15); white-space:nowrap;
}
.spotlight-name{
  margin-top:0.7rem; font-family:var(--display); font-weight:600; font-size:0.95rem; color:var(--ink);
}
.spotlight-name a{ color:var(--ink); text-decoration:none; }
.spotlight-name a:hover{ color:var(--purple); text-decoration:underline; }
.spotlight-copy h2{ margin-bottom:0.8rem; }
.spotlight-copy .btn{ margin-top:1.5rem; }

.spotlight-carousel:hover .spotlight-track,
.spotlight-carousel:focus-within .spotlight-track,
.spotlight-carousel:active .spotlight-track{ animation-play-state:paused; }

@keyframes spotlight-scroll{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}

@media (max-width:860px){
  .spotlight-grid{ grid-template-columns:1fr; text-align:center; gap:1.5rem; }
  .spotlight-carousel{ width:calc(100% + 36px); margin-left:-18px; }
  .spotlight-photo-item{ width:42vw; max-width:180px; }
  .spotlight-photo, .spotlight-photo-placeholder{ height:180px; }
}

@media (prefers-reduced-motion:reduce){
  .spotlight-track{ animation:none; }
  .spotlight-carousel{ overflow-x:auto; mask-image:none; -webkit-mask-image:none; }
  .spotlight-photos[aria-hidden="true"]{ display:none; }
}
@media (max-width: 520px){
  .wrap{ padding-left:18px; padding-right:18px; }
  .header-inner{ padding:.75rem 18px; }
  .logo-icon{ font-size:2rem; }
  .logo-text{ font-size:1.16rem; }
  .logo-sub{ font-size:.55rem; }
  .hero{ padding:2.5rem 0 3rem; }
  .hero-inner{ gap:0; }
  .hero-copy{ width:100%; }
  .hero h1{ font-size:2.35rem; line-height:1.08; }
  .hero-sub{ font-size:1rem; }
  .hero-countries{ font-size:.76rem; line-height:1.55; }
  .hero-actions{ flex-direction:column; align-items:stretch; width:100%; gap:1rem; }
  .hero-actions .btn{ width:100%; min-height:58px; display:flex; align-items:center; justify-content:center; padding:.85rem 1rem; line-height:1.25; }
  .hero-visual{ display:block; width:360px; height:300px; max-width:none; transform:scale(.76); transform-origin:top center; margin:2.75rem auto 0; }
  .visual-card{ left:37px; top:35px; }
  .visual-glow{ left:0; top:15px; }
  .piece-1{ left:130px; top:-8px; }
  .piece-2{ left:-2px; top:88px; }
  .piece-3{ right:-2px; top:120px; }
  .piece-4{ left:20px; bottom:24px; }
  .piece-5{ right:25px; bottom:8px; }
  .badge-top{ right:-4px; top:25px; }
  .badge-bottom{ left:-4px; bottom:5px; }
  .visual-glow{ width:330px; height:330px; }
  .visual-card{ left:22px; }
  .badge-top{ right:-3px; }
  .badge-bottom{ left:-3px; }
  .trust-grid{ display:grid; grid-template-columns:1fr 1fr; align-items:start; }
  .trust-item{ justify-content:center; font-size:.76rem; line-height:1.3; }
  .trust-strip{ padding:1.6rem 0; }
  .stats{ padding:2.25rem 0; }
  .stats-grid{ gap:2rem 1rem; }
  .stat{ display:block; min-width:0; }
  .stat-num,.stat-suffix{ display:inline; font-size:2rem; line-height:1; }
  .stat-label{ display:block; margin-top:.55rem; font-size:.82rem; line-height:1.3; }
}
