html { scroll-behavior: smooth; }
body { margin:0; background:#F6F3FF; color:#1C1147; font-family:'Plus Jakarta Sans',system-ui,sans-serif; -webkit-font-smoothing:antialiased; }
* { box-sizing:border-box; }
a { color:#FF5B35; text-decoration:none; }
a:hover { color:#1C1147; }
button { font-family:inherit; cursor:pointer; }
h1,h2,h3 { font-family:'Bricolage Grotesque',sans-serif; letter-spacing:-0.03em; }
img { max-width:100%; }

/* header */
header.site { position:sticky; top:0; z-index:50; background:rgba(251,248,243,0.94); backdrop-filter:blur(10px); border-bottom:1px solid #E4DEFA; }
.hdr-inner { max-width:1240px; margin:0 auto; padding:14px 28px; display:flex; align-items:center; gap:28px; }
.logo { display:flex; align-items:center; gap:11px; cursor:pointer; margin-right:auto; }
.logo .mark { width:38px; height:38px; border-radius:11px; background:#1C1147; color:#C8F250; display:grid; place-items:center; font-family:'Bricolage Grotesque',sans-serif; font-weight:800; font-size:20px; }
.logo .word { line-height:1.05; }
.logo .word .t1 { font-family:'Bricolage Grotesque',sans-serif; font-weight:800; font-size:19px; letter-spacing:-0.02em; }
.logo .word .t2 { font-size:10px; letter-spacing:0.14em; text-transform:uppercase; color:#7A70A6; font-weight:600; }
nav.mainnav { display:flex; align-items:center; gap:24px; font-size:14.5px; font-weight:600; color:#453B72; }
nav.mainnav a { color:#453B72; }
nav.mainnav a.active { color:#FF5B35; }
nav.mainnav a:hover { color:#1C1147; }
.btn-join { border:none; background:#FF5B35; color:#fff; padding:12px 22px; border-radius:999px; font-weight:700; font-size:14px; box-shadow:0 6px 18px rgba(255,91,53,0.28); white-space:nowrap; }
.menu-toggle { display:none; border:1.5px solid #CFC6F0; background:#fff; border-radius:10px; padding:8px 12px; font-weight:700; }

/* buttons */
.btn-dark { border:none; background:#1C1147; color:#fff; padding:16px 30px; border-radius:999px; font-weight:700; font-size:16px; display:inline-block; }
.btn-outline { border:1.5px solid #CFC6F0; background:#fff; color:#1C1147; padding:16px 30px; border-radius:999px; font-weight:700; font-size:16px; display:inline-block; }
.btn-outline-sm { border:1.5px solid #CFC6F0; background:#fff; color:#1C1147; padding:12px 22px; border-radius:999px; font-weight:700; font-size:14.5px; display:inline-block; }
.btn-orange { border:none; background:#FF5B35; color:#fff; padding:14px 26px; border-radius:999px; font-weight:700; font-size:15px; display:inline-block; }
.btn-orange-lg { border:none; background:#FF5B35; color:#fff; padding:16px 32px; border-radius:999px; font-weight:700; font-size:16px; display:inline-block; }
.btn-ghost-dark { border:1.5px solid rgba(255,255,255,0.35); background:transparent; color:#fff; padding:14px 26px; border-radius:999px; font-weight:700; font-size:15px; display:inline-block; }

/* layout helpers */
.wrap { max-width:1240px; margin:0 auto; padding:0 28px; }
.wrap-narrow { max-width:1000px; margin:0 auto; padding:0 28px; }
.wrap-med { max-width:1100px; margin:0 auto; padding:0 28px; }
.section { padding:60px 0; }
.g2 { display:grid; grid-template-columns:1fr 1fr; gap:26px; }
.g3 { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.g4 { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.card { background:#fff; border:1px solid #E4DEFA; border-radius:20px; padding:26px; }
.card-hover { transition:border-color .2s ease, transform .2s ease; }
.card-hover:hover { border-color:#1C1147; transform:translateY(-3px); }
.eyebrow { font-size:12px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:#FF5B35; }
.muted { color:#655B92; }
.pill { display:inline-flex; align-items:center; gap:9px; background:#FFE9E4; border:1px solid #FFCFC4; color:#C0341A; padding:7px 14px; border-radius:999px; font-size:12.5px; font-weight:700; }

/* photo placeholders (populated by images.js) */
.ph { position:relative; width:100%; height:100%; overflow:hidden; background:#E4DEFA; }
.ph img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }

/* footer */
footer.site { background:#150C39; color:#fff; padding:56px 28px 40px; }
footer.site a { color:#CFC7F0; }
footer.site .fgrid { max-width:1240px; margin:0 auto; display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; }
footer.site .fcol-title { font-size:12px; font-weight:700; letter-spacing:0.12em; color:#7E74B0; }
footer.site .flinks { display:grid; gap:9px; margin-top:14px; font-size:14.5px; }
footer.site .fbottom { max-width:1240px; margin:36px auto 0; padding-top:22px; border-top:1px solid rgba(255,255,255,0.12); font-size:13px; color:#7E74B0; display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; }

/* pathway tabs */
.ptabs { display:flex; gap:10px; flex-wrap:wrap; margin-top:30px; }
.ptab { border:1.5px solid #E4DEFA; background:#fff; color:#1C1147; padding:10px 18px; border-radius:999px; font-weight:700; font-size:14px; cursor:pointer; }
.ptab.active { background:#1C1147; color:#fff; border-color:#1C1147; }
details.speech { background:#fff; border:1px solid #E4DEFA; border-radius:16px; padding:18px 22px; margin-bottom:10px; }
details.speech summary { cursor:pointer; list-style:none; display:grid; grid-template-columns:56px 1fr 150px 20px; gap:18px; align-items:center; }
details.speech summary::-webkit-details-marker { display:none; }
details.speech[open] summary { margin-bottom:14px; }
.speech-body { display:grid; grid-template-columns:1fr 1fr; gap:22px; padding-top:12px; border-top:1px solid #EFEAFF; }

/* forms */
.field { display:grid; gap:6px; }
.field label { font-size:13.5px; font-weight:700; }
.field input, .field select, .field textarea { width:100%; padding:13px 15px; border:1px solid #D9D2F6; border-radius:12px; font-size:15px; font-family:inherit; background:#F6F3FF; }
.field input:focus, .field select:focus, .field textarea:focus { outline:none; border-color:#1C1147; }

/* video embed */
.video-embed { position:relative; width:100%; padding-top:56.25%; border-radius:18px; overflow:hidden; background:#150C39; }
.video-embed iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }

@media (max-width:900px){
  .g2, .g3 { grid-template-columns:1fr !important; }
  .g4 { grid-template-columns:repeat(2,1fr) !important; }
  h1 { font-size:34px !important; }
  .hero-grid { grid-template-columns:1fr !important; }
  nav.mainnav { position:fixed; top:66px; left:0; right:0; background:#fff; flex-direction:column; align-items:flex-start; padding:18px 28px; border-bottom:1px solid #E4DEFA; gap:16px; display:none; }
  nav.mainnav.open { display:flex; }
  .menu-toggle { display:inline-block; }
  .speech-body { grid-template-columns:1fr !important; }
  details.speech summary { grid-template-columns:40px 1fr 20px !important; }
  details.speech summary .sumRight { display:none; }
}

.lms-bar { position:sticky; top:0; z-index:60; background:#1C1147; color:#fff; padding:14px 28px; }
.lms-bar a { color:#CFC7F0; }
.lms-bar-inner { max-width:1400px; margin:0 auto; display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.lms-bar h1 { font-size:18px; margin:0; font-weight:800; }
.lms-bar .meta { font-size:12.5px; color:#A79EDC; margin-top:2px; }
.lms-progress { flex:1; min-width:180px; height:8px; border-radius:999px; background:rgba(255,255,255,0.16); overflow:hidden; }
.lms-progress span { display:block; height:100%; background:#C8F250; border-radius:999px; }
.lms-shell { max-width:1400px; margin:0 auto; padding:26px 28px 70px; display:grid; grid-template-columns:330px minmax(0,1fr); gap:26px; align-items:start; }
.lms-side { background:#fff; border:1px solid #E4DEFA; border-radius:20px; padding:18px; position:sticky; top:92px; max-height:calc(100vh - 120px); overflow-y:auto; }
.lms-side .mod { font-size:11.5px; font-weight:800; letter-spacing:0.12em; text-transform:uppercase; color:#7A70A6; margin:18px 0 8px; }
.lms-side .mod:first-child { margin-top:4px; }
.lms-item { display:grid; grid-template-columns:26px 1fr; gap:10px; align-items:start; padding:10px 12px; border-radius:12px; color:#1C1147; font-size:14.5px; line-height:1.4; }
.lms-item:hover { background:#F6F3FF; color:#1C1147; }
.lms-item.active { background:#1C1147; color:#fff; }
.lms-item.active .lms-item-meta { color:#A79EDC; }
.lms-item.locked { opacity:0.55; }
.lms-item-meta { display:block; font-size:12px; color:#7A70A6; margin-top:3px; }
.lms-tick { width:22px; height:22px; border-radius:50%; border:1.5px solid #D9D2F6; display:grid; place-items:center; font-size:12px; font-weight:800; color:#7A70A6; background:#fff; }
.lms-tick.done { background:#C8F250; border-color:#C8F250; color:#1C1147; }
.lms-main { background:#fff; border:1px solid #E4DEFA; border-radius:20px; padding:34px; min-width:0; }
.lms-body { font-size:16px; line-height:1.75; color:#3B3168; }
.lms-body h3 { font-size:19px; margin:28px 0 10px; }
.lms-body ol, .lms-body ul { padding-left:20px; }
.lms-body li { margin-bottom:7px; }
.lms-body blockquote { margin:20px 0 0; background:#EFEAFF; border-radius:12px; padding:16px 18px; color:#453B72; font-size:15px; }
.lms-foot { display:flex; justify-content:space-between; gap:14px; margin-top:34px; padding-top:22px; border-top:1px solid #EFEAFF; flex-wrap:wrap; }
.lms-file { display:flex; align-items:center; gap:12px; border:1px solid #E4DEFA; border-radius:14px; padding:14px 18px; margin-bottom:10px; font-weight:700; color:#1C1147; }
.lms-quiz { margin-top:30px; border:1px solid #E4DEFA; border-radius:18px; padding:24px; background:#FBFAFF; }
.lms-q { margin-bottom:20px; }
.lms-q p { font-weight:700; margin:0 0 10px; }
.lms-q label { display:flex; gap:10px; align-items:flex-start; padding:9px 12px; border:1px solid #E4DEFA; border-radius:12px; background:#fff; margin-bottom:7px; font-size:15px; cursor:pointer; }
.lms-q input { width:auto; margin-top:3px; }
.progress-line { height:8px; border-radius:999px; background:#EFEAFF; overflow:hidden; }
.progress-line span { display:block; height:100%; background:#FF5B35; border-radius:999px; }

@media (max-width:1000px){
  .lms-shell { grid-template-columns:1fr; padding:18px 18px 60px; }
  .lms-main { order:1; padding:24px; }
  .lms-side { order:2; position:static; max-height:none; }
  .lms-side::before { content:"All lessons"; display:block; font-family:'Bricolage Grotesque',sans-serif; font-weight:800; font-size:17px; margin:2px 4px 10px; }
  .lms-bar { padding:12px 18px; }
  .lms-bar h1 { font-size:16px; }
  .lms-bar-inner { gap:10px 14px; }
  .lms-progress { order:3; flex-basis:100%; min-width:0; }
  .lms-foot { flex-direction:column; align-items:stretch; gap:10px; }
  .lms-foot > div { display:flex; flex-direction:column; gap:10px; }
  .lms-foot .btn-orange, .lms-foot .btn-outline-sm { text-align:center; }
}

.cur-switch { display:inline-flex; border:1px solid #D9D2F6; border-radius:999px; overflow:hidden; background:#fff; }
.cur-switch button { border:none; background:transparent; padding:7px 12px; font-size:12.5px; font-weight:700; color:#655B92; line-height:1; }
.cur-switch button:hover { background:#F6F3FF; color:#1C1147; }
.cur-switch button.on { background:#1C1147; color:#fff; }
.cur-note { font-size:12.5px; color:#7A70A6; }

@media (max-width:900px){
  .hdr-inner { flex-wrap:wrap; gap:12px 14px; padding:12px 18px; }
  .logo .word .t1 { font-size:17px; }
  .btn-join { padding:10px 16px; font-size:13px; }
  .cur-switch button { padding:6px 9px; font-size:11.5px; }
  nav.mainnav { top:auto; }
  footer.site { padding:44px 22px 34px; }
  footer.site .fgrid { grid-template-columns:1fr; gap:30px; }
  footer.site .fbottom { flex-direction:column; gap:8px; }
  .wrap, .wrap-narrow, .wrap-med { padding-left:20px; padding-right:20px; }
}

@media (max-width:760px){
  [style*="grid-template-columns:110px"],
  [style*="grid-template-columns:1fr 1fr"],
  [style*="grid-template-columns:minmax(0,280px)"],
  [style*="grid-template-columns:1fr minmax(0,280px)"],
  [style*="grid-template-columns:1.15fr"],
  [style*="grid-template-columns:minmax(0,1.05fr)"],
  [style*="grid-template-columns:minmax(0,0.95fr)"] { grid-template-columns:1fr !important; }
  h1 { font-size:30px !important; }
  h2 { font-size:24px !important; }
  .lms-main { padding:20px 16px; }
  .table-scroll { overflow-x:auto; -webkit-overflow-scrolling:touch; }
}
