*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--purple:#6b21a8;--purple2:#7c3aed;--purple3:#a78bfa;--gold:#d4a574;--cream:#faf8f5;--white:#fff;--text:#2c2c2c;--text2:#666;--text3:#999;--border:#e8e4df;--shadow:0 2px 12px rgba(0,0,0,.06);--shadow-lg:0 8px 30px rgba(0,0,0,.12);--r:12px;--serif:Georgia,'Noto Serif',serif;--sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif}
html{scroll-behavior:smooth}
body{font-family:var(--serif);background:var(--cream);color:var(--text);line-height:1.7}
a{color:var(--purple);text-decoration:none}a:hover{text-decoration:underline}
.wrap{max-width:1100px;margin:0 auto;padding:0 24px}

/* HEADER */
.site-head{background:var(--white);border-bottom:2px solid var(--purple);padding:16px 0;position:sticky;top:0;z-index:100;box-shadow:var(--shadow)}
.head-inner{display:flex;align-items:center;justify-content:space-between}
.logo{font-size:26px;font-weight:700;color:var(--purple);text-decoration:none;font-family:var(--serif);display:flex;align-items:center;gap:8px}
.logo em{color:var(--gold);font-style:normal}
.logo:hover{text-decoration:none}
.head-nav{display:flex;gap:20px}
.head-nav a{font-family:var(--sans);font-size:14px;font-weight:500;color:var(--text2);padding:6px 0;border-bottom:2px solid transparent;transition:all .2s}
.head-nav a:hover,.head-nav a.active{color:var(--purple);border-bottom-color:var(--purple);text-decoration:none}
.mob-btn{display:none;background:none;border:none;font-size:24px;cursor:pointer}

/* HERO */
.hero{background:linear-gradient(135deg,#1a1a2e,#2d1b4e,#4c1d95);color:#fff;padding:64px 0;text-align:center;position:relative;overflow:hidden}
.hero::before{content:'';position:absolute;top:-50%;right:-20%;width:600px;height:600px;background:radial-gradient(circle,rgba(124,58,237,.15),transparent 70%);border-radius:50%}
.hero h1{font-size:36px;margin-bottom:12px;position:relative}
.hero p{font-size:18px;opacity:.85;margin-bottom:28px;position:relative;max-width:600px;margin-left:auto;margin-right:auto}
.hero-cta{display:inline-block;background:var(--gold);color:var(--text);padding:14px 32px;border-radius:30px;font-family:var(--sans);font-weight:700;font-size:16px;cursor:pointer;transition:background .2s;position:relative}
.hero-cta:hover{background:#c4905a;text-decoration:none;color:var(--text)}
.hero-badges{display:flex;justify-content:center;gap:32px;margin-top:32px;position:relative}
.badge{text-align:center}
.badge-num{font-family:var(--sans);font-size:28px;font-weight:700;display:block}
.badge-label{font-family:var(--sans);font-size:13px;opacity:.7}

/* SECTIONS */
.sec{padding:40px 0}
.sec-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:12px;border-bottom:2px solid var(--purple)}
.sec-title{font-size:24px;font-weight:700}
.sec-link{font-family:var(--sans);font-size:14px;color:var(--purple)}

/* CARDS */
.cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.card{background:var(--white);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;transition:transform .2s,box-shadow .2s}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.card-img{width:100%;height:200px;object-fit:cover}
.card-body{padding:20px}
.card-cat{font-family:var(--sans);font-size:11px;text-transform:uppercase;letter-spacing:1.5px;color:var(--purple);font-weight:700;margin-bottom:8px}
.card-title{font-size:18px;font-weight:700;margin-bottom:8px}
.card-title a{color:var(--text)}.card-title a:hover{color:var(--purple)}
.card-excerpt{font-size:14px;color:var(--text2);line-height:1.6;margin-bottom:10px}
.card-meta{font-family:var(--sans);font-size:12px;color:var(--text3)}

/* CLASS CARDS */
.class-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.class-card{background:var(--white);border-radius:var(--r);box-shadow:var(--shadow);padding:24px;transition:transform .2s}
.class-card:hover{transform:translateY(-2px)}
.class-icon{font-size:40px;margin-bottom:12px}
.class-card h3{font-size:17px;margin-bottom:6px}
.class-card p{font-size:14px;color:var(--text2);margin-bottom:10px;line-height:1.6}
.class-info{font-family:var(--sans);font-size:12px;color:var(--text3);display:flex;gap:12px;flex-wrap:wrap}
.class-info span{background:#f3e8ff;color:var(--purple);padding:2px 8px;border-radius:4px}

/* TEACHER CARD */
.teacher{display:flex;gap:24px;background:var(--white);border-radius:var(--r);box-shadow:var(--shadow);padding:24px;margin-bottom:16px;align-items:center}
.teacher-img{width:100px;height:100px;border-radius:50%;object-fit:cover;flex-shrink:0;background:var(--purple3)}
.teacher-body h3{font-size:18px;margin-bottom:4px}
.teacher-body .teacher-role{font-family:var(--sans);font-size:13px;color:var(--purple);margin-bottom:6px}
.teacher-body p{font-size:14px;color:var(--text2)}

/* TESTIMONIAL */
.testimonial{background:linear-gradient(135deg,#f3e8ff,#faf5ff);border-radius:var(--r);padding:32px;text-align:center;margin:16px 0;border:1px solid #e9d5ff}
.testimonial p{font-size:17px;font-style:italic;margin-bottom:12px;line-height:1.7}
.testimonial-author{font-family:var(--sans);font-size:14px;color:var(--purple);font-weight:600}

/* SCHEDULE TABLE */
.schedule{width:100%;border-collapse:collapse;background:var(--white);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow)}
.schedule th{background:var(--purple);color:#fff;font-family:var(--sans);font-size:13px;padding:12px 16px;text-align:left}
.schedule td{padding:12px 16px;border-bottom:1px solid var(--border);font-size:14px}
.schedule tr:hover{background:#f3e8ff}
.schedule .class-name{color:var(--purple);font-weight:600}

/* CTA */
.cta-box{background:linear-gradient(135deg,#1a1a2e,#4c1d95);color:#fff;border-radius:var(--r);padding:48px;text-align:center;margin:32px 0}
.cta-box h2{font-size:26px;margin-bottom:12px}
.cta-box p{font-size:16px;opacity:.8;margin-bottom:24px;max-width:500px;margin-left:auto;margin-right:auto}
.cta-btn{display:inline-block;background:var(--gold);color:var(--text);padding:14px 32px;border-radius:30px;font-family:var(--sans);font-weight:700;font-size:16px;transition:background .2s}
.cta-btn:hover{background:#c4905a;text-decoration:none;color:var(--text)}

/* LAYOUT */
.layout{display:grid;grid-template-columns:1fr 300px;gap:32px}
.sidebar{font-family:var(--sans)}
.sbox{background:var(--white);border-radius:var(--r);padding:20px;margin-bottom:16px;border:1px solid var(--border)}
.sbox h3{font-size:14px;font-weight:700;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid var(--purple);font-family:var(--serif)}
.sbox ul{list-style:none}.sbox li{padding:6px 0;border-bottom:1px solid #f0f0f0;font-size:13px}.sbox li:last-child{border:none}.sbox a{color:var(--text);font-size:13px}.sbox a:hover{color:var(--purple)}

/* PAGE HEADER */
.pg-header{background:linear-gradient(135deg,#1a1a2e,#4c1d95);color:#fff;padding:40px 0;text-align:center}
.pg-header h1{font-size:28px}.pg-header p{font-size:14px;opacity:.7;margin-top:4px}

/* CONTENT */
.farticle{background:var(--white);border-radius:var(--r);padding:28px;margin-bottom:20px;border:1px solid var(--border)}
.farticle h2{font-size:20px;margin-bottom:12px}.farticle p{color:var(--text2);margin-bottom:12px;font-size:15px;line-height:1.7}
.farticle ul{padding-left:20px;color:var(--text2);font-size:15px}.farticle ul li{margin-bottom:6px}
.legal h2{margin-top:18px;margin-bottom:8px;font-family:var(--sans);font-size:16px}.legal p,.legal ul{margin-bottom:8px;color:var(--text2);font-size:14px}

/* FOOTER */
.site-foot{background:#1a1a2e;color:#bbb;margin-top:40px;font-family:var(--sans)}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:28px;padding:32px 0}
.foot-col h4{color:#fff;font-size:14px;font-family:var(--serif);margin-bottom:12px}.foot-col p{font-size:12px;line-height:1.5}.foot-col a{display:block;color:#999;font-size:12px;padding:2px 0}.foot-col a:hover{color:#fff}
.foot-bot{border-top:1px solid rgba(255,255,255,.05);padding:14px 0;text-align:center;font-size:11px;color:#666}

@media(max-width:900px){
.layout{grid-template-columns:1fr}
.foot-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:768px){
.mob-btn{display:block}
.head-nav{display:none;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:var(--white);border-top:1px solid var(--border);padding:12px 20px;box-shadow:var(--shadow);z-index:99}
.head-nav.open{display:flex}
.cards-3{grid-template-columns:1fr}
.teacher{flex-direction:column;text-align:center}
.hero h1{font-size:26px}
}
