:root{--ink:#14122E;--teal:#0A6DB0;--deep:#23007F;--amber:#0098E0;--mist:#EEF3FC;--line:#D9E1F2;--bg:#fff;--muted:#4F5575}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font:17px/1.65 "Source Sans 3",system-ui,sans-serif;color:var(--ink);background:var(--bg)}
img{max-width:100%;height:auto;display:block}
h1,h2,h3{font-family:"Bricolage Grotesque",system-ui,sans-serif;line-height:1.15;margin:0 0 .6em;letter-spacing:-.01em}
h1{font-size:clamp(2rem,4.6vw,3.3rem);font-weight:800}h2{font-size:clamp(1.55rem,3vw,2.2rem);font-weight:700}h3{font-size:1.2rem;font-weight:700}
p{margin:0 0 1em}a{color:var(--teal)}
.wrap{width:min(1160px,92%);margin:0 auto}
.skip{position:absolute;left:-999px;top:0;background:var(--amber);color:#000;padding:.6em 1em;z-index:99}.skip:focus{left:8px}
:focus-visible{outline:3px solid var(--amber);outline-offset:3px}
.site-header{position:sticky;top:0;background:#fff;border-bottom:1px solid var(--line);z-index:50}
.bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 0}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--deep);font:800 1.1rem "Bricolage Grotesque",sans-serif}
.brand small{display:block;font:500 .72rem "Source Sans 3",sans-serif;color:var(--muted)}
.brand.light{color:#fff}
nav ul{display:flex;gap:.3rem;list-style:none;margin:0;padding:0}
nav a{display:block;padding:.55rem .85rem;border-radius:8px;text-decoration:none;color:var(--ink);font-weight:600;font-size:.97rem}
nav a:hover{background:var(--mist)}nav a.active{background:var(--deep);color:#fff}
.menu-btn{display:none;border:1px solid var(--line);background:#fff;padding:.5rem .9rem;border-radius:8px;font:600 1rem inherit;cursor:pointer}
.hero{background:linear-gradient(180deg,var(--mist),#fff);padding:4.5rem 0 3.5rem}
.banner{background:var(--deep);color:#fff;padding:3.5rem 0}.banner .lead{color:#D5DBF5}
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;align-items:center}
.split.rev>:first-child{order:2}.top0{align-items:start}
.lead{font-size:1.2rem;color:var(--muted);max-width:56ch}.lead2{font:700 1.25rem "Bricolage Grotesque";color:var(--teal)}
.row{display:flex;gap:.8rem;flex-wrap:wrap}
.btn{display:inline-block;background:var(--amber);color:#04122E;font-weight:700;padding:.85rem 1.5rem;border-radius:10px;text-decoration:none;border:2px solid var(--amber);cursor:pointer;font-size:1rem;font-family:inherit}
.btn:hover{background:#33B0EA}.btn.ghost{background:transparent;color:var(--deep);border-color:var(--deep)}.btn.ghost:hover{background:var(--deep);color:#fff}
.btn.alt{background:#fff;border-color:#fff}
.section{padding:4.2rem 0}.tint{background:var(--mist)}.center{text-align:center}.sub{text-align:center;color:var(--muted);max-width:68ch;margin:0 auto 2.4rem}
.narrow{max-width:800px}.wrap.narrow{margin-inline:auto}.auto{margin-inline:auto;text-align:center;color:var(--muted)}.top{margin-top:3rem}
.section-title{padding:3rem 0 0}.section-title h2{margin:0}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.cards.four{grid-template-columns:repeat(4,1fr)}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1.6rem;display:flex;flex-direction:column}
.card img{margin-bottom:1rem;border-radius:10px;background:var(--mist)}
.card.flat{border-top:4px solid var(--teal)}.card .more{margin-top:auto;font-weight:700}
.chips{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-bottom:2.6rem}
.chips span{background:#fff;border:1px solid var(--line);padding:.45rem 1rem;border-radius:99px;font-weight:600;font-size:.95rem}
.ticks{list-style:none;padding:0;margin:0 0 1rem}.ticks li{position:relative;padding-left:1.8rem;margin-bottom:.55rem}
.ticks li::before{content:"";position:absolute;left:0;top:.45em;width:.9rem;height:.5rem;border-left:3px solid var(--teal);border-bottom:3px solid var(--teal);transform:rotate(-45deg)}
.ticks.num{counter-reset:n}.ticks.num li{counter-increment:n;padding-left:2.2rem}
.ticks.num li::before{content:counter(n);border:0;transform:none;width:1.6rem;height:1.6rem;top:.1em;background:var(--deep);color:#fff;border-radius:50%;font:700 .8rem/1.6rem sans-serif;text-align:center}
.steps{list-style:none;counter-reset:s;display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;padding:0;margin:2.2rem 0 0}
.steps li{counter-increment:s;background:#fff;border-radius:14px;padding:1.5rem;border:1px solid var(--line)}
.steps li::before{content:counter(s);display:inline-grid;place-items:center;width:2rem;height:2rem;background:var(--amber);border-radius:50%;font:800 .95rem sans-serif;margin-bottom:.6rem}
.steps b{display:block;font:700 1.15rem "Bricolage Grotesque";margin-bottom:.3rem}.steps span{color:var(--muted)}
.cta{background:var(--teal);color:#fff;text-align:center;padding:3.5rem 0}.cta h2{margin-bottom:.4em}.cta p{color:#E4ECFB}
.levels{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-bottom:2.5rem}
.level{background:#fff;border-radius:14px;padding:1.3rem 1.3rem 1.3rem 4.4rem;border:1px solid var(--line);position:relative}
.level .n{position:absolute;left:1.1rem;top:1.2rem;width:2.4rem;height:2.4rem;border-radius:10px;background:var(--deep);color:#fff;display:grid;place-items:center;font:800 1.2rem "Bricolage Grotesque"}
.level h3{font-size:1.05rem;margin-bottom:.3rem}.level p{margin:0;color:var(--muted);font-size:.97rem}
.wide{margin:0 auto;max-width:820px}.suite{max-width:820px;margin:1.5rem auto 0;padding-left:1.2rem}.suite li{margin-bottom:.5rem}
.badge{display:inline-block;background:var(--deep);color:#fff;border-radius:99px;padding:.2rem .9rem;font-weight:600;font-size:.9rem;margin-bottom:.8rem}
.note{background:#E8F5FD;border-left:4px solid var(--amber);padding:.8rem 1rem;border-radius:6px;font-size:.95rem;text-align:left}
.people{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.person{text-align:center;padding:1.5rem;border:1px solid var(--line);border-radius:14px}
.person img{width:130px;margin:0 auto 1rem;border-radius:50%}.role{color:var(--teal);font-weight:700;margin-bottom:.6rem}
.courses{display:grid;gap:1.6rem}.course{background:#fff;border:1px solid var(--line);border-radius:16px;padding:2rem}
.course header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap}
.dur{background:var(--amber);padding:.25rem .9rem;border-radius:99px;font-weight:700;font-size:.9rem}
.cols{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin-top:1rem;border-top:1px solid var(--line);padding-top:1.2rem}
.cols h3{font-size:1rem;color:var(--teal)}.cols p{color:var(--muted);font-size:.97rem}
.details{margin:0}.details dt{font:700 1rem "Bricolage Grotesque";color:var(--teal);margin-top:1.1rem}.details dd{margin:.15rem 0 0}
.form{background:var(--mist);padding:2rem;border-radius:16px}.form label{display:block;font-weight:600;margin-bottom:1rem}
.form input,.form textarea{display:block;width:100%;margin-top:.3rem;padding:.75rem .9rem;border:1px solid #b7cbc8;border-radius:8px;font:inherit;background:#fff}
.small{font-size:.88rem;color:var(--muted)}
.site-footer{background:#16084F;color:#D5DBF5;padding-top:3.2rem}.site-footer h3{color:#fff}.site-footer a{color:#D5DBF5}
.grid3{display:grid;grid-template-columns:1.3fr .8fr 1.1fr;gap:2.5rem}.plain{list-style:none;padding:0;margin:0}.plain li{margin-bottom:.45rem}
.legal{margin-top:2.5rem;padding:1.2rem 0;border-top:1px solid #35278A;font-size:.9rem}
@media(max-width:900px){.split,.cards,.cards.four,.steps,.levels,.people,.cols,.grid3{grid-template-columns:1fr}.split.rev>:first-child{order:0}
.menu-btn{display:block}nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--line);padding:.6rem 4%}
nav.open{display:block}nav ul{flex-direction:column}.site-header .bar{position:relative}.hero{padding-top:3rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.logo{height:43px;width:auto}.badge-logo{background:#fff;padding:4px 8px;border-radius:8px}
.hero{background:linear-gradient(180deg,#E6EEFB,#fff)}
.cta{background:var(--deep)}.cta .btn.alt{color:#04122E}
.level .n,.badge{background:var(--deep)}.steps li::before{color:#04122E}
