:root{
  --bg:#ffffff;
  --fg:#0f172a;
  --muted:#475569;
  --muted2:#64748b;
  --line:rgba(15,23,42,.10);
  --line2:rgba(15,23,42,.06);
  --accent:#2563eb;
  --accent2:#16a34a;
  --pink:#ec4899;
  --soft:#f8fafc;
  --shadow: 0 18px 60px rgba(15,23,42,.10);
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--fg);
  background:
    radial-gradient(1000px 520px at 50% -10%, rgba(37,99,235,.10), transparent 60%),
    radial-gradient(900px 520px at 90% 0%, rgba(22,163,74,.08), transparent 60%),
    linear-gradient(to bottom, rgba(15,23,42,.03), transparent 260px),
    #fff;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
.wrap{width:min(1120px, calc(100% - 32px)); margin:0 auto;}
@media(min-width:720px){.wrap{width:min(1120px, calc(100% - 48px));}}

.top{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.86);backdrop-filter:blur(12px);border-bottom:1px solid var(--line2)}
.top-in{display:flex;align-items:center;justify-content:space-between;padding:14px 0;gap:14px}
.actions .btn{padding:12px 18px}
.brand{display:flex;align-items:baseline;gap:10px}
.mark{width:10px;height:10px;border-radius:3px;background:linear-gradient(135deg,var(--accent),var(--accent2));box-shadow:0 0 0 6px rgba(37,99,235,.10)}
.name{font-weight:900;letter-spacing:.2px}
.sub{display:none;font-size:12px;color:rgba(22,163,74,.85);letter-spacing:.12em;text-transform:uppercase}
@media(min-width:900px){.sub{display:inline}}
.nav{display:none;gap:12px;align-items:center}
@media(min-width:980px){.nav{display:flex}}
.a{font-size:13px;color:rgba(15,23,42,.70);padding:10px 10px;border-radius:10px}
.a:hover{background:rgba(15,23,42,.04)}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:12px 16px;
  min-height:44px;           /* mobile-friendly */
  border-radius:14px;
  font-weight:800;
  font-size:14px;
  line-height:1;
  border:1px solid rgba(37,99,235,.22);
  background:#fff;
  box-shadow:0 10px 28px rgba(15,23,42,.08);
  -webkit-tap-highlight-color: transparent;
  user-select:none;
}
.btn:active{transform:translateY(0.5px)}
.btn2{border-color:rgba(22,163,74,.20);background:linear-gradient(135deg, rgba(37,99,235,.08), rgba(22,163,74,.08))}
.btn3{border-color:var(--line2);background:rgba(15,23,42,.02);box-shadow:none}
.w{width:100%}

.hero{padding:72px 0 26px}
.hero-in{display:grid;gap:14px;align-items:start}
@media(min-width:980px){.hero-in{grid-template-columns:1.15fr .85fr}}
.k{font-size:12px;letter-spacing:.10em;text-transform:uppercase;color:rgba(22,163,74,.90)}
.h1{margin:12px 0 0;font-weight:900;letter-spacing:-.7px;font-size:clamp(34px,4.3vw,60px);line-height:1.05}
.p{margin:12px 0 0;color:var(--muted);line-height:1.8;max-width:70ch}
.cta{margin-top:18px;display:flex;flex-wrap:wrap;gap:10px}

.pill-row{margin-top:16px;display:flex;gap:8px;flex-wrap:wrap}
.pill{font-size:12px;color:rgba(15,23,42,.80);border:1px solid var(--line2);padding:8px 10px;border-radius:999px;background:rgba(15,23,42,.02)}

.note{margin-top:14px;border:1px solid rgba(37,99,235,.14);background:rgba(37,99,235,.05);border-radius:16px;padding:14px;color:var(--muted);line-height:1.7}

.panel{display:grid;gap:12px}
.panel-card{border:1px solid var(--line2);background:#fff;border-radius:18px;box-shadow:var(--shadow);overflow:hidden}
.pc-top{padding:14px;border-bottom:1px solid var(--line2);display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.pc-tag{font-size:12px;color:rgba(15,23,42,.70)}
.pc-title{font-weight:900}
.pc-row{display:flex;justify-content:space-between;gap:10px;padding:12px 14px;border-top:1px dashed rgba(15,23,42,.10)}
.pc-row span{color:var(--muted2);font-size:12px}
.fine{margin-top:0;padding:10px 14px 14px;font-size:12px;color:var(--muted2)}

.panel-soft{border:1px solid rgba(22,163,74,.14);background:rgba(22,163,74,.05);border-radius:18px;padding:14px}
.soft-h{font-weight:900}
.soft-ul{margin:10px 0 0;padding-left:18px;color:var(--muted);line-height:1.75}

.sec{padding:70px 0}
@media(max-width:540px){.sec{padding:56px 0}}
.head{max-width:78ch}
.ey{font-size:12px;letter-spacing:.10em;text-transform:uppercase;color:rgba(37,99,235,.88)}
.h2{margin:10px 0 0;font-family:Fraunces,serif;font-weight:700;letter-spacing:-.2px;font-size:clamp(24px,3vw,40px)}

.cards{margin-top:14px;display:grid;gap:10px}
@media(min-width:980px){.cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}}
.card{border:1px solid var(--line2);background:#fff;border-radius:18px;padding:16px;box-shadow:0 12px 40px rgba(15,23,42,.06)}
.ct{font-weight:900}
.cp{margin-top:10px;color:var(--muted);line-height:1.75}

.callout{margin-top:14px;border:1px solid rgba(236,72,153,.18);background:rgba(236,72,153,.06);border-radius:18px;padding:14px;color:var(--muted);line-height:1.7}

.syllabus{margin-top:14px;border:1px solid var(--line2);background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 12px 40px rgba(15,23,42,.06)}
.mod{border-bottom:1px solid rgba(15,23,42,.06)}
.mod:last-child{border-bottom:none}
.mod summary{cursor:pointer;list-style:none;display:grid;grid-template-columns:90px 1fr;gap:10px;align-items:center;padding:16px}
.mod summary::-webkit-details-marker{display:none}
.mno{font-size:12px;color:rgba(15,23,42,.72)}
.mtt{font-weight:900}
.mc{padding:0 16px 16px;color:var(--muted);line-height:1.75}
.mc ul{margin:8px 0 0;padding-left:18px}

.strip{margin-top:14px;border:1px solid rgba(22,163,74,.16);background:rgba(22,163,74,.06);border-radius:18px;padding:14px;display:grid;gap:6px}
.strip-k{font-size:12px;color:rgba(22,163,74,.92)}
.strip-v{color:var(--muted);line-height:1.7}

.pricing{margin-top:14px;display:grid;gap:12px}
.plan{border:1px solid var(--line2);background:#fff;border-radius:18px;padding:16px;box-shadow:0 12px 40px rgba(15,23,42,.06);position:relative}
.plan.hi{border-color:rgba(22,163,74,.18);box-shadow:0 0 0 4px rgba(22,163,74,.06) inset, 0 18px 60px rgba(15,23,42,.10)}
.tag{position:absolute;top:12px;right:12px;font-size:12px;border:1px solid rgba(22,163,74,.18);background:rgba(22,163,74,.06);padding:6px 10px;border-radius:999px;color:rgba(22,163,74,.92)}
.pn{font-weight:900}
.pp{margin-top:8px;font-weight:900;font-size:30px}
.ps{margin-top:8px;color:var(--muted)}
.pl{margin:12px 0 0;padding-left:18px;color:var(--muted);line-height:1.75}

.legal{margin-top:14px;border:1px solid rgba(199,162,74,.18);background:rgba(199,162,74,.06);border-radius:18px;padding:14px}
.legal-h{font-weight:900}
.legal-p{margin-top:8px;color:var(--muted);line-height:1.75}

.enroll{margin-top:14px;display:grid;gap:12px}
@media(min-width:980px){.enroll{grid-template-columns:1.1fr .9fr;align-items:start}}
.form{border:1px solid var(--line2);background:#fff;border-radius:18px;padding:16px;box-shadow:var(--shadow)}
.two{display:grid;gap:10px}
@media(min-width:760px){.two{grid-template-columns:repeat(2,minmax(0,1fr))}}
.f{display:grid;gap:6px;margin-top:10px}
.f label{font-size:12px;color:rgba(15,23,42,.72)}
.f input,.f textarea,.f select{width:100%;border-radius:14px;border:1px solid rgba(15,23,42,.12);background:#fff;padding:12px;color:var(--fg);outline:none}
.f input:focus,.f textarea:focus,.f select:focus{border-color:rgba(37,99,235,.28);box-shadow:0 0 0 5px rgba(37,99,235,.10)}
.wa{margin-top:12px}

.right{display:grid;gap:12px}
.rbox{border:1px solid var(--line2);background:#fff;border-radius:18px;padding:16px;box-shadow:0 12px 40px rgba(15,23,42,.06)}
.rtitle{font-weight:900}
.rline{margin-top:12px;height:1px;background:linear-gradient(90deg, rgba(37,99,235,.40), transparent)}
.rqa{display:grid;gap:6px;padding:12px 0;border-bottom:1px dashed rgba(15,23,42,.10)}
.rqa:last-child{border-bottom:none}
.rqa span{color:var(--muted);line-height:1.75}

.faq{margin-top:14px;border:1px solid var(--line2);background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 12px 40px rgba(15,23,42,.06)}
.q{border-bottom:1px solid rgba(15,23,42,.06)}
.q:last-child{border-bottom:none}
.q summary{cursor:pointer;padding:16px;font-weight:900}
.c{padding:0 16px 16px;color:var(--muted);line-height:1.75}

.foot{margin-top:20px;padding-top:14px;border-top:1px solid var(--line2);display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}
.muted{color:var(--muted2);font-size:12px}

[data-reveal]{opacity:0; transform: translateY(10px); transition: opacity .65s ease, transform .65s ease;}
[data-reveal].is-in{opacity:1; transform: translateY(0)}

@media print{
  .top{position:static}
  .nav,.actions,.wa{display:none !important}
  body{background:#fff}
}
