
:root{
  --bg:#fdfbfd;
  --bg-ice:#f5f1f8;
  --bg-ice2:#f0ebf4;
  --card:#ffffff;
  --ink:#2a1637;
  --muted:#6c5d79;
  --faint:#a79ab3;
  --line:#e9e4ef;
  --line-soft:#f2edf6;
  --accent:#8543e3;
  --accent-dark:#6b1ed4;
  --accent-ink:#4a1988;
  --ok-bg:#f1f4f8;
  --ok-line:#d3dcea;
  --err:#4e6513;
  --radius:7.5px;
  --font:"Outfit",system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{overflow-x:clip}
html{scroll-behavior:smooth}
body{
  font-family:var(--font);
  background:var(--bg);
  color:var(--ink);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--accent-dark)}
.wrap{max-width:1180px;margin:0 auto;padding:0 23.3px}
h1,h2,h3,h4{line-height:1.12;letter-spacing:-.03em;font-weight:700;color:var(--ink)}
h1{font-size:clamp(2.6rem,6vw,4.6rem);font-weight:800}
h2{font-size:clamp(1.9rem,3.8vw,2.9rem);font-weight:700}
h3{font-size:1.15rem;font-weight:650;letter-spacing:-.015em}
p{color:var(--muted)}
em{font-style:normal;color:var(--accent)}

.skip{position:absolute;left:-9999px;top:8px;background:var(--ink);color:#ffffff;padding:9.7px 15.5px;border-radius:5px;z-index:200}
.skip:focus{left:8px}


.topline{
  background:var(--bg-ice);
  color:var(--accent-ink);
  font-size:11px;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;
  text-align:center;padding:8.7px 15.5px;
}
header{
  margin-top:13.6px;
  background:#ffffff;
  border-top:1px solid var(--line-soft);
  border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:90;
}
.nav{display:flex;align-items:center;gap:31px;min-height:70px}
.brand{display:flex;align-items:center;gap:9.7px;font-size:20px;font-weight:500;letter-spacing:-.02em;color:var(--ink)}
.brand strong{font-weight:800;color:var(--accent)}
.brand svg{width:32px;height:32px;flex:none}
.navlinks{display:flex;align-items:center;gap:27.2px;margin-left:auto}
.navlinks a{font-size:15px;font-weight:500;color:var(--ink);padding:5.8px 0}
.navlinks a:not(.btn):hover{color:var(--accent)}
.navlinks a[aria-current="page"]:not(.btn){color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent)}
.menu{
  display:none;margin-left:auto;
  font:inherit;font-size:14px;font-weight:600;color:var(--ink);
  background:#ffffff;border:1px solid var(--line);border-radius:var(--radius);
  padding:9.7px 15.5px;cursor:pointer;
}


.btn{
  display:inline-block;
  background:var(--accent);color:#ffffff !important;
  font-size:15px;font-weight:600;letter-spacing:-.01em;
  padding:12.6px 23.3px;border-radius:var(--radius);
  border:1px solid var(--accent);
  cursor:pointer;transition:background .2s,transform .2s,border-color .2s;
}
.btn:hover{background:var(--accent-dark);border-color:var(--accent-dark);transform:translateY(-1px)}
.btn.ghost{background:transparent;color:var(--ink) !important;border-color:var(--line)}
.btn.ghost:hover{border-color:var(--ink);background:#ffffff;transform:translateY(-1px)}
.btn.small{padding:9.7px 17.5px;font-size:14px}
.textlink{font-weight:600;font-size:15px}
.textlink::after{content:" →";transition:margin .2s}
.textlink:hover::after{margin-left:3.9px}


.hero{padding:85.4px 0 0}
.hero-top{display:grid;grid-template-columns:7fr 5fr;gap:54.3px;align-items:end}
.eyebrow{
  display:inline-block;font-size:12px;font-weight:650;
  letter-spacing:.14em;text-transform:uppercase;
  color:var(--accent);margin-bottom:17.5px;
}
.hero h1{margin-bottom:0}
.hero-side{padding-bottom:5.8px}
.hero-side .lead{font-size:18px;line-height:1.65;margin-bottom:27.2px}
.hero-actions{display:flex;gap:13.6px;flex-wrap:wrap}
.hero-proof{
  margin-top:25.2px;padding-top:19.4px;border-top:1px solid var(--line-soft);
  display:flex;align-items:center;gap:11.6px;font-size:13.5px;color:var(--muted);
}
.hero-proof .stars{color:var(--accent);letter-spacing:2px;font-size:13px}
.hero-media{margin-top:58.2px}
.hero-media figure{border:1px solid var(--line);border-radius:5px;overflow:hidden}
.hero-media img{width:100%;aspect-ratio:3/2;object-fit:cover}
.hero-caption{
  display:flex;justify-content:space-between;gap:23.3px;flex-wrap:wrap;
  padding:15.5px 2px 0;font-size:13px;color:var(--faint);
}


.stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:69.8px}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:33px 27.2px;border-left:1px solid var(--line)}
.stat:first-child{border-left:none;padding-left:0}
.stat b{display:block;font-size:32px;font-weight:750;letter-spacing:-.03em;color:var(--ink)}
.stat span{font-size:13.5px;color:var(--muted)}


.block{padding:100.9px 0}
.block.tight{padding:69.8px 0}
.block + .block{border-top:1px solid var(--line)}
.block.tint{background:var(--bg-ice)}
.block.tint + .block{border-top:none}
.section-head{
  display:grid;grid-template-columns:7fr 5fr;gap:54.3px;align-items:end;
  margin-bottom:62.1px;
}
.section-head p{font-size:16.5px;line-height:1.65;padding-bottom:3.9px}


.split{display:grid;grid-template-columns:5fr 6fr;gap:85.4px;align-items:center}
.split .stack h2{margin-bottom:21.3px}
.split .stack p{margin-bottom:15.5px;font-size:16.5px}
.split .stack .textlink{display:inline-block;margin-top:9.7px}
.img-duo{position:relative}
.img-duo > img:first-child{width:100%;border:1px solid var(--line);border-radius:5px}
.img-duo > img.duo-float{
  width:58%;margin:-62.1px 0 0 auto;
  border:6px solid var(--bg);border-radius:5px;
  position:relative;
}


.course-rows{border-top:1px solid var(--line)}
.course-row{
  display:grid;grid-template-columns:56px 1fr minmax(180px,auto) 120px 40px;
  gap:27.2px;align-items:center;
  padding:31px 7.8px;border-bottom:1px solid var(--line);
  color:var(--ink);transition:background .2s;
}
.course-row:hover{background:#f9f7fb;color:var(--ink)}
.cr-num{font-size:13px;font-weight:650;color:var(--faint);letter-spacing:.08em}
.cr-main b{display:block;font-size:clamp(1.3rem,2.2vw,1.7rem);font-weight:700;letter-spacing:-.02em;margin-bottom:5.8px}
.cr-desc{font-size:14.5px;color:var(--muted);display:block;max-width:520px}
.cr-meta{font-size:13px;color:var(--faint);text-align:right}
.cr-price{font-size:19px;font-weight:750;letter-spacing:-.02em;text-align:right;white-space:nowrap}
.cr-price small{display:block;font-size:11.5px;font-weight:500;color:var(--faint);letter-spacing:0}
.cr-arrow{font-size:20px;color:var(--accent);transition:transform .2s;text-align:right}
.course-row:hover .cr-arrow{transform:translateX(6px)}
.courses-note{margin-top:19.4px;font-size:13px;color:var(--faint)}


.timeline{list-style:none;counter-reset:step;border-top:1px solid var(--line)}
.timeline li{
  display:grid;grid-template-columns:100px 1fr;gap:31px;
  padding:33px 0;border-bottom:1px solid var(--line);
}
.tl-num{
  font-size:30px;font-weight:800;letter-spacing:-.03em;
  color:var(--line);line-height:1;padding-top:2px;
}
.timeline li:hover .tl-num{color:var(--accent)}
.timeline h3{margin-bottom:7.8px}
.timeline p{max-width:640px;font-size:15.5px}
.tl-tag{
  display:inline-block;margin-top:11.6px;
  font-size:11.5px;font-weight:650;letter-spacing:.1em;text-transform:uppercase;
  color:var(--accent);background:var(--bg-ice);
  padding:4.8px 9.7px;border-radius:1248.8px;
}


.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:27.2px}
.gallery.wide-first{grid-template-columns:7fr 5fr}
.gallery.wide-mid{grid-template-columns:3fr 2fr}
.gallery figure:nth-child(2){margin-top:54.3px}
.gallery.wide-first figure:nth-child(2),.gallery.wide-mid figure:nth-child(2){margin-top:0}
.gallery img{border:1px solid var(--line);border-radius:5px;aspect-ratio:3/2;object-fit:cover;width:100%}
.gallery figcaption{padding-top:11.6px;font-size:13px;color:var(--faint)}


.quote-feature{
  display:grid;grid-template-columns:auto 1fr;gap:34.9px;align-items:start;
  max-width:880px;
}
.quote-feature img{width:88px;height:88px;border-radius:50%;object-fit:cover;border:1px solid var(--line)}
.quote-feature blockquote{
  font-size:clamp(1.35rem,2.6vw,1.9rem);font-weight:600;letter-spacing:-.02em;
  line-height:1.4;color:var(--ink);
}
.quote-feature blockquote::before{content:"“";color:var(--accent)}
.quote-feature blockquote::after{content:"”";color:var(--accent)}
.quote-by{margin-top:17.5px;font-size:14px;color:var(--muted)}
.quote-by b{color:var(--ink);font-weight:650}


.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
  list-style:none;cursor:pointer;
  display:flex;justify-content:space-between;align-items:center;gap:23.3px;
  padding:23.3px 3.9px;font-size:17px;font-weight:600;letter-spacing:-.01em;color:var(--ink);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"+";font-size:22px;font-weight:400;color:var(--accent);flex:none;
  transition:transform .2s;
}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 3.9px 25.2px;max-width:720px;font-size:15.5px}


.cta-band{background:var(--bg-ice);border-top:1px solid var(--line)}
.cta-inner{
  display:flex;justify-content:space-between;align-items:center;gap:38.8px;flex-wrap:wrap;
  padding:69.8px 0;
}
.cta-inner h2{margin-bottom:9.7px}
.cta-inner p{font-size:16.5px;max-width:520px}


.subhero{background:var(--bg);padding:77.6px 0 54.3px;border-bottom:1px solid var(--line)}
.subhero h1{font-size:clamp(2.1rem,4.6vw,3.4rem);max-width:760px}
.subhero p{margin-top:19.4px;font-size:17.5px;max-width:620px}


.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.cell{
  border-right:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:34.9px 31px;background:transparent;
}
.cell .num{font-size:12px;font-weight:650;letter-spacing:.1em;color:var(--faint);display:block;margin-bottom:15.5px}
.cell h3{margin-bottom:9.7px}
.cell p{font-size:14.5px}
.tint .cell{background:transparent}


.checklist{list-style:none;border-top:1px solid var(--line)}
.checklist li{
  display:grid;grid-template-columns:28px 1fr;gap:15.5px;
  padding:17.5px 0;border-bottom:1px solid var(--line);
  font-size:15.5px;color:var(--muted);
}
.checklist svg{width:20px;height:20px;stroke:var(--accent);margin-top:2px}
.checklist b{color:var(--ink);font-weight:650}


.testi{border-top:1px solid var(--line)}
.testi-item{
  display:grid;grid-template-columns:72px 1fr;gap:27.2px;
  padding:38.8px 0;border-bottom:1px solid var(--line);
}
.testi-item img{width:72px;height:72px;border-radius:50%;object-fit:cover;border:1px solid var(--line)}
.testi-item blockquote{font-size:clamp(1.15rem,2vw,1.5rem);font-weight:550;letter-spacing:-.015em;line-height:1.5;color:var(--ink)}
.testi-item .quote-by{margin-top:13.6px}


.contact-grid{display:grid;grid-template-columns:5fr 7fr;gap:69.8px;align-items:start}
.contact-info h2{margin-bottom:27.2px}
.c-row{
  display:grid;grid-template-columns:44px 1fr;gap:15.5px;align-items:start;
  padding:19.4px 0;border-top:1px solid var(--line);
}
.c-row svg{width:20px;height:20px;stroke:var(--accent);margin-top:2.9px}
.c-row b{display:block;font-size:13px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin-bottom:3.9px}
.c-row a,.c-row span.v{font-size:16px;color:var(--ink)}
form[data-contact]{
  display:grid;grid-template-columns:1fr 1fr;gap:17.5px;
  background:var(--card);border:1px solid var(--line);border-radius:10px;
  padding:34.9px;
}
form[data-contact] label{display:block;font-size:13.5px;font-weight:600;color:var(--ink)}
form[data-contact] .full{grid-column:1/-1}
input,select,textarea{
  width:100%;margin-top:6.8px;
  font:inherit;font-size:15px;color:var(--ink);
  background:#ffffff;border:1px solid var(--line);border-radius:var(--radius);
  padding:11.6px 13.6px;
}
input:focus,select:focus,textarea:focus{
  outline:none;border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(133, 67, 227, .14);
}
textarea{min-height:130px;resize:vertical}
.trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.check{display:flex !important;gap:11.6px;align-items:flex-start;font-weight:400 !important;font-size:13.5px !important;color:var(--muted) !important}
.check input{width:auto;margin-top:2.9px;flex:none}
.form-status{grid-column:1/-1;font-size:14px;min-height:20px;color:var(--muted)}
.form-status.err{color:var(--err)}
.form-success{grid-column:1/-1;text-align:center;padding:27.2px 11.6px}
.form-success .ok-ico{
  width:64px;height:64px;margin:0 auto 17.5px;border-radius:50%;
  background:var(--ok-bg);border:1px solid var(--ok-line);
  display:flex;align-items:center;justify-content:center;
}
.form-success .ok-ico svg{width:30px;height:30px;stroke:var(--accent);stroke-width:2.4;fill:none;stroke-linecap:round;stroke-linejoin:round}
.form-success h3{font-size:20px;margin-bottom:7.8px}
.form-success p{font-size:15px;max-width:420px;margin:0 auto}


.legal{max-width:760px}
.legal .updated{
  display:inline-block;font-size:13px;color:var(--faint);
  border:1px solid var(--line);border-radius:1248.8px;padding:5.8px 13.6px;margin-bottom:34.9px;
}
.legal h2{font-size:1.25rem;margin:42.7px 0 13.6px;letter-spacing:-.015em}
.legal p{margin-bottom:13.6px;font-size:15.5px;line-height:1.75}
.legal ul{margin:0 0 13.6px 21.3px;color:var(--muted);font-size:15.5px;line-height:1.75}
.legal li{margin-bottom:5.8px}
.legal a{text-decoration:underline;text-underline-offset:3px}


footer{background:#261335;color:#ccc2d5;margin-top:0}
.footer-main{
  display:grid;grid-template-columns:5fr 3fr 4fr;gap:54.3px;
  padding:69.8px 0 54.3px;
}
footer .brand{color:#ffffff;font-size:21px}
footer .brand strong{color:#d2bcf0}
footer p{color:#ac9fb7;font-size:14.5px;margin-top:15.5px;max-width:340px}
footer h4{
  font-size:11.5px;font-weight:650;letter-spacing:.14em;text-transform:uppercase;
  color:#8b7b97;margin-bottom:17.5px;
}
.footer-links{display:flex;flex-direction:column;gap:10.7px}
.footer-links a,.footer-links span{color:#d6cdde;font-size:14.5px}
.footer-links a:hover{color:#ffffff}
.footer-bottom{
  border-top:1px solid rgba(255, 255, 255, .1);
  padding:21.3px 0;display:flex;justify-content:space-between;gap:15.5px;flex-wrap:wrap;
  font-size:13px;color:#998aa5;
}
.footer-bottom a{color:#b7aac2}
.footer-bottom a:hover{color:#ffffff}


.cookie-note{
  position:fixed;left:24px;bottom:24px;z-index:120;
  max-width:392px;background:var(--card);
  border:1px solid var(--line);border-radius:12.5px;
  box-shadow:0 12px 40px rgba(42, 22, 55, .14);
  padding:19.4px 21.3px;
  display:flex;flex-direction:column;gap:13.6px;align-items:flex-start;
}
.cookie-note[hidden]{display:none}
.cookie-note p{color:var(--ink);font-size:13.5px;line-height:1.55}
.cookie-note a{color:var(--accent)}
.cookie-note .btn{padding:8.7px 17.5px;font-size:13.5px}


@media (max-width:960px){
  .hero-top,.section-head,.split,.contact-grid{grid-template-columns:1fr;gap:31px}
  .split{gap:46.6px}
  .section-head{margin-bottom:42.7px}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .stat{padding:23.3px 19.4px}
  .stat:nth-child(odd){border-left:none;padding-left:0}
  .stat:nth-child(n+3){border-top:1px solid var(--line)}
  .course-row{grid-template-columns:1fr auto;grid-template-areas:"main arrow" "meta meta" "price price";padding:25.2px 3.9px;gap:7.8px}
  .cr-num{display:none}
  .cr-main{grid-area:main}
  .cr-arrow{grid-area:arrow}
  .cr-meta{grid-area:meta;text-align:left}
  .cr-price{grid-area:price;text-align:left}
  .gallery{grid-template-columns:1fr;gap:19.4px}
  .gallery figure:nth-child(2){margin-top:0}
  .quote-feature{grid-template-columns:1fr;gap:19.4px}
  .timeline li{grid-template-columns:64px 1fr;gap:19.4px}
  .footer-main{grid-template-columns:1fr;gap:34.9px;padding:54.3px 0 38.8px}
  form[data-contact]{grid-template-columns:1fr;padding:23.3px}
  .block{padding:69.8px 0}
  .hero{padding:54.3px 0 0}
  .stats{margin-top:54.3px}
}
@media (max-width:860px){
  .menu{display:inline-block}
  .nav{min-height:62px;gap:15.5px}
  .navlinks{
    display:none;position:absolute;top:100%;left:0;right:0;
    background:#ffffff;border-bottom:1px solid var(--line);
    flex-direction:column;align-items:stretch;gap:0;
    padding:7.8px 23.3px 19.4px;margin-left:0;
    box-shadow:0 24px 40px rgba(42, 22, 55, .08);
  }
  .navlinks.open{display:flex}
  .navlinks a{padding:12.6px 0;border-bottom:1px solid var(--line-soft);font-size:16px}
  .navlinks a[aria-current="page"]:not(.btn){box-shadow:none}
  .navlinks .btn{margin-top:13.6px;text-align:center;padding:12.6px 19.4px}
}
@media (max-width:480px){
  .wrap{padding:0 19.4px}
  .cookie-note{left:16px;right:16px;bottom:16px;max-width:none}
  .hero-actions .btn{width:100%;text-align:center}
  .testi-item{grid-template-columns:56px 1fr;gap:17.5px}
  .testi-item img{width:56px;height:56px}
}
