/* ============================================================
   Apricot Tree Academy — Course experience styles
   Loaded AFTER site.css (relies on its :root brand tokens).
   Circle-style course player + Articulate-Rise-style blocks.
   ============================================================ */

:root {
  --course-bg:      #F4F6F8;   /* app canvas */
  --course-panel:   #ffffff;
  --course-line:    #e7eaef;
  --course-ink:     #1f2733;
  --course-muted:   #6b7585;
  --sidebar-w:      320px;
  --read-w:         760px;
  --shadow-sm:      0 1px 3px rgba(16,21,39,.06), 0 1px 2px rgba(16,21,39,.04);
  --shadow-md:      0 4px 16px rgba(16,21,39,.08);
  --shadow-lg:      0 12px 40px rgba(16,21,39,.14);
}

body.course-body {
  background: var(--course-bg);
  color: var(--course-ink);
}

/* ---------- App shell ---------- */
.course-shell { min-height: 100vh; display: flex; flex-direction: column; }

.course-topbar {
  position: sticky; top: 0; z-index: 60;
  height: 64px;
  background: var(--navy);
  color: #fff;
  display: flex; align-items: center; gap: 18px;
  padding: 0 20px;
  box-shadow: 0 1px 0 rgba(255,255,255,.06);
}
.course-topbar .tb-logo { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.course-topbar .tb-logo img { height: 38px; width: auto; }
/* badge + single-line wordmark variant */
.course-topbar .tb-brand { display:flex; align-items:center; gap:14px; flex-shrink:0; }
.course-topbar .tb-badge { height:46px; width:auto; display:block; }
.course-topbar .tb-brandname { font-family:var(--font-head); font-weight:700; font-size:21px; color:#fff; letter-spacing:.06em; white-space:nowrap; }
@media (max-width:680px) {
  .course-topbar .tb-brandname { font-size:15px; letter-spacing:.02em; }
  .course-topbar .tb-badge { height:36px; }
}
/* single-line page/context title in the top bar */
/* brand wrap aligns to the sidebar's right edge so the topbar divider
   lines up with the sidebar/content split */
.course-topbar { padding-left:0; }
.course-topbar .tb-brandwrap {
  display:flex; align-items:center; gap:12px; flex-shrink:0; height:100%;
  padding-left:20px; box-sizing:border-box;
}
.course-shell:has(.course-sidebar) .course-topbar .tb-brandwrap {
  width:var(--sidebar-w); border-right:1px solid rgba(255,255,255,.16);
}
.course-topbar .tb-context {
  font-family:var(--font-body); font-size:12.5px; font-weight:600;
  letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.8);
  padding-left:20px; white-space:nowrap; flex-shrink:0;
  border-left:1px solid rgba(255,255,255,.18);
}
.course-shell:has(.course-sidebar) .course-topbar .tb-context { border-left:none; }
@media (max-width:1024px) {
  .course-shell:has(.course-sidebar) .course-topbar .tb-brandwrap { width:auto; border-right:none; }
}
@media (max-width:860px) { .course-topbar .tb-context { display:none; } }
.course-topbar .tb-title {
  font-family: var(--font-head); font-weight: 600; font-size: 15px;
  color: #fff; letter-spacing: .01em;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.course-topbar .tb-title small { display:block; font-family:var(--font-body); font-weight:400; font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; color: var(--gold); }
.course-topbar .tb-spacer { flex: 1; }

/* top progress meter */
.tb-progress { display:flex; align-items:center; gap:10px; flex-shrink:0; }
.tb-progress .tb-bar { width: 140px; height: 7px; border-radius: 99px; background: rgba(255,255,255,.18); overflow:hidden; }
.tb-progress .tb-bar > span { display:block; height:100%; width:0; background: var(--gold); border-radius:99px; transition: width .4s ease; }
.tb-progress .tb-pct { font-size: 12.5px; font-weight:700; color: rgba(255,255,255,.92); min-width: 34px; }

.tb-exit {
  flex-shrink:0; color: rgba(255,255,255,.82); font-size: 12px; font-weight:600;
  letter-spacing:.06em; text-transform:uppercase; display:inline-flex; align-items:center; gap:6px;
  padding: 8px 12px; border-radius: 7px; transition: background .2s,color .2s;
}
.tb-exit:hover { background: rgba(255,255,255,.1); color:#fff; }

.sidebar-toggle {
  display:none; background:none; border:none; cursor:pointer; padding:8px; color:#fff; flex-shrink:0;
}
.sidebar-toggle svg { width:22px; height:22px; }

.course-body-wrap { flex:1; display:flex; align-items:flex-start; }

/* ---------- Sidebar (curriculum) ---------- */
.course-sidebar {
  width: var(--sidebar-w); flex-shrink:0;
  background: var(--course-panel);
  border-right: 1px solid var(--course-line);
  align-self: stretch;
  position: sticky; top: 64px;
  height: calc(100vh - 64px);
  overflow-y: auto;
  padding: 22px 0 40px;
}
.sidebar-head { padding: 4px 22px 18px; border-bottom:1px solid var(--course-line); margin-bottom: 10px; }
.sidebar-head .eyebrow { font-size:11px; letter-spacing:.16em; text-transform:uppercase; color: var(--teal); font-weight:700; }
.sidebar-head h2 { font-family:var(--font-head); font-size:18px; color:var(--course-ink); margin:6px 0 14px; line-height:1.25; }
.sidebar-progress { display:flex; align-items:center; gap:10px; }
.sidebar-progress .sp-bar { flex:1; height:8px; border-radius:99px; background: var(--course-line); overflow:hidden; }
.sidebar-progress .sp-bar > span { display:block; height:100%; width:0; background: linear-gradient(90deg,var(--teal),var(--gold)); border-radius:99px; transition:width .4s ease; }
.sidebar-progress .sp-label { font-size:12px; font-weight:700; color: var(--course-muted); white-space:nowrap; }

.module-group { padding: 6px 0; }
.module-label {
  display:flex; align-items:center; justify-content:space-between;
  padding: 12px 22px 6px; font-size: 11px; letter-spacing:.13em; text-transform:uppercase;
  color: var(--course-muted); font-weight:700;
}
.module-label .ml-count { font-weight:600; color:#aab2bf; letter-spacing:0; text-transform:none; font-size:11px; }
.module-locked .module-label { color:#b9c0cb; }

.lesson-list { list-style:none; }
.lesson-list li > a, .lesson-list li > span.ll-locked {
  display:flex; align-items:center; gap:12px;
  padding: 11px 22px; font-size: 14px; line-height:1.35; color: var(--course-ink);
  border-left: 3px solid transparent; transition: background .15s, color .15s;
}
.lesson-list li > a:hover { background: var(--course-bg); }
.lesson-list li.active > a { background: #fff7e9; border-left-color: var(--gold); color: var(--navy); font-weight:600; }
.lesson-list .ll-locked { color:#b3bac4; cursor:not-allowed; }

.ll-icon { flex-shrink:0; width:22px; height:22px; border-radius:50%; display:flex; align-items:center; justify-content:center; }
.ll-icon svg { width:22px; height:22px; }
.ll-icon.done   { color: var(--teal); }
.ll-icon.todo   { color: #cfd5de; }
.ll-icon.locked { color: #d3d8e0; }
.ll-meta { flex:1; }
.ll-meta .ll-sub { display:block; font-size:11.5px; color:var(--course-muted); font-weight:400; margin-top:1px; }

/* ---------- Main reading column ---------- */
.course-main { flex:1; min-width:0; padding: 40px 32px 80px; display:flex; flex-direction:column; align-items:center; }
.lesson { width:100%; max-width: 900px; }
.lesson > section[id] { scroll-margin-top: 84px; }
.lesson-divider { border:none; border-top:1px solid var(--course-line); margin:54px 0 0; }

/* paged mode — one lesson at a time */
.lesson.paged > section[id] { display:none; }
.lesson.paged > section[id].is-active { display:block; animation:lessonfade .28s ease; }
.lesson.paged > .lesson-divider { display:none; }
@keyframes lessonfade { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }

/* lesson + right info rail layout */
.lesson-layout { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:44px; width:100%; max-width:1180px; align-items:start; }
.lesson-layout .lesson, .lesson-layout .lesson-footer { max-width:none; }
.lesson h2 { scroll-margin-top:84px; }
.lesson-rail { position:sticky; top:84px; display:flex; flex-direction:column; gap:18px; }
.lesson-rail .rail-card { background:#fff; border:1px solid var(--course-line); border-radius:14px; padding:18px; box-shadow:var(--shadow-sm); }
.lesson-rail .rail-card h4 { font-family:var(--font-head); font-size:12.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--navy); margin:0 0 12px; }
.rail-toc { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:9px; }
.rail-toc li { margin:0; }
.rail-toc a { display:block; font-size:13.5px; line-height:1.4; color:var(--course-muted); border-left:2px solid var(--course-line); padding-left:12px; transition:color .15s,border-color .15s; }
.rail-toc a:hover { color:var(--teal); border-left-color:var(--teal); }
.rail-upnext { background:linear-gradient(135deg,#fff7e9,#fdeccd); border-color:#f0d79a !important; }
.rail-upnext .rail-label { font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-darker); font-weight:700; }
.rail-upnext .rail-next { display:block; font-family:var(--font-head); font-size:16px; color:var(--navy); margin-top:6px; line-height:1.25; }
.rail-upnext .rail-next::after { content:' \2192'; color:var(--gold-darker); }
.rail-links { list-style:none; padding:0; margin:0; }
.rail-links li { margin:0; }
.rail-links a { display:block; font-size:13.5px; color:var(--course-ink); padding:8px 0; border-bottom:1px solid var(--course-line); transition:color .15s; }
.rail-links li:last-child a { border-bottom:none; }
.rail-links a:hover { color:var(--teal); }
@media (max-width:1200px) {
  .lesson-layout { grid-template-columns:1fr; max-width:900px; gap:30px; }
  .lesson-rail { position:static; flex-direction:row; flex-wrap:wrap; }
  .lesson-rail .rail-card { flex:1; min-width:220px; }
}
@media (max-width:560px) { .lesson-rail { flex-direction:column; } }

.lesson-kicker { display:flex; align-items:center; gap:10px; font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--teal); font-weight:700; margin-bottom:10px; }
.lesson-kicker .lk-dot { width:5px; height:5px; border-radius:50%; background:var(--gold); }
.lesson h1 { font-family:var(--font-head); font-size:38px; line-height:1.12; color:var(--navy); font-weight:700; margin-bottom:14px; }
.lesson-intro { font-size:18px; line-height:1.7; color:#48515f; margin-bottom:8px; }

.lesson-block { margin: 34px 0; }
.lesson h2 { font-family:var(--font-head); font-size:25px; color:var(--navy); margin:38px 0 14px; line-height:1.2; }
.lesson h3 { font-family:var(--font-head); font-size:19px; color:var(--course-ink); margin:26px 0 10px; }
.lesson p { font-size:16.5px; line-height:1.78; margin-bottom:16px; color:#3f4856; }
.lesson ul, .lesson ol { padding-left:22px; margin-bottom:18px; }
.lesson li { font-size:16px; line-height:1.7; margin-bottom:8px; color:#3f4856; }
.lesson a.inline { color:var(--teal); text-decoration:underline; text-underline-offset:2px; }
.lesson a.inline:hover { color: var(--gold-darker); }

/* lesson hero image */
.lesson-hero { border-radius:16px; overflow:hidden; box-shadow:var(--shadow-md); margin: 8px 0 30px; }
.lesson-hero img { width:100%; display:block; }

/* inline lesson video (16:9 YouTube embed) */
.lesson-video { position:relative; width:100%; aspect-ratio:16/9; border-radius:14px; overflow:hidden; box-shadow:var(--shadow-md); background:#000; margin:10px 0 8px; }
.lesson-video iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.video-caption { font-size:13.5px; color:var(--course-muted); margin:0 0 24px; }
.video-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin:10px 0 8px; }
.video-grid .lesson-video { margin:0; }
@media (max-width:680px){ .video-grid { grid-template-columns:1fr; } }

/* ---------- Audio narration player ---------- */
.audio-narration {
  display:flex; align-items:center; gap:16px;
  background: linear-gradient(120deg,#102a44 0%,#163a52 100%);
  color:#fff; border-radius:14px; padding:16px 20px; margin: 6px 0 28px;
  box-shadow: var(--shadow-md);
}
.audio-narration .an-avatar { width:48px; height:48px; border-radius:50%; flex-shrink:0; background:var(--gold); display:flex; align-items:center; justify-content:center; overflow:hidden; }
.audio-narration .an-avatar img { width:100%; height:100%; object-fit:cover; }
.audio-narration .an-avatar svg { width:26px; height:26px; color:var(--navy); }
.audio-narration .an-body { flex:1; min-width:0; }
.audio-narration .an-label { font-size:11px; letter-spacing:.12em; text-transform:uppercase; color: var(--gold); font-weight:700; }
.audio-narration .an-title { font-size:14.5px; font-weight:600; margin-top:1px; }
.audio-narration audio { width:100%; margin-top:8px; height:34px; }
.audio-narration .an-soon { font-size:12.5px; color:rgba(255,255,255,.7); margin-top:4px; font-style:italic; }

/* ---------- Callouts ---------- */
.callout-block { border-radius:14px; padding:20px 22px; margin:28px 0; border:1px solid; display:flex; gap:14px; }
.callout-block .cb-ico { flex-shrink:0; width:26px; height:26px; }
.callout-block .cb-ico svg { width:26px; height:26px; }
.callout-block h4 { font-family:var(--font-head); font-size:16px; margin-bottom:4px; }
.callout-block p:last-child { margin-bottom:0; }
.callout-tip   { background:#fff7e9; border-color:#f4dca0; }
.callout-tip .cb-ico, .callout-tip h4 { color: var(--gold-darker); }
.callout-info  { background:#eaf5f4; border-color:#bfe0de; }
.callout-info .cb-ico, .callout-info h4 { color: var(--teal); }
.callout-key   { background:#eef1f8; border-color:#cfd6ea; }
.callout-key .cb-ico, .callout-key h4 { color: var(--navy); }

/* stat band */
.stat-band {
  display:flex; gap:22px; align-items:center; background:var(--navy); color:#fff;
  border-radius:16px; padding:26px 28px; margin:30px 0; box-shadow:var(--shadow-md);
}
.stat-band .sb-num { font-family:var(--font-head); font-size:52px; font-weight:700; color:var(--gold); line-height:1; flex-shrink:0; }
.stat-band .sb-text { font-size:15.5px; line-height:1.6; color:rgba(255,255,255,.9); }
.stat-band .sb-text strong { color:#fff; }
.stat-band .sb-cite { display:block; font-size:11.5px; color:rgba(255,255,255,.55); margin-top:6px; }

/* definition quote card */
.definition-quote {
  background:var(--teal); color:#fff; border-radius:16px; padding:28px 30px; margin:28px 0;
  position:relative; box-shadow:var(--shadow-md);
}
.definition-quote::before { content:'“'; font-family:var(--font-head); font-size:64px; line-height:1; color:rgba(255,255,255,.3); position:absolute; top:8px; left:18px; }
.definition-quote p { font-size:16px; line-height:1.7; color:#fff; padding-left:24px; margin-bottom:10px; }
.definition-quote cite { display:block; text-align:right; font-style:normal; font-weight:700; font-size:13px; color:rgba(255,255,255,.85); letter-spacing:.04em; }

/* ---------- Accordion (Rise style) ---------- */
.accordion { border:1px solid var(--course-line); border-radius:14px; overflow:hidden; background:#fff; box-shadow:var(--shadow-sm); }
.accordion-item + .accordion-item { border-top:1px solid var(--course-line); }
.accordion-head {
  width:100%; text-align:left; background:none; border:none; cursor:pointer;
  padding:18px 22px; display:flex; align-items:center; gap:14px; font-family:var(--font-head);
  font-size:16px; font-weight:600; color:var(--navy); transition:background .15s;
}
.accordion-head:hover { background:var(--course-bg); }
.accordion-head .ah-num { width:28px; height:28px; flex-shrink:0; border-radius:50%; background:#fff7e9; color:var(--gold-darker); font-family:var(--font-body); font-weight:700; font-size:13px; display:flex; align-items:center; justify-content:center; }
.accordion-head .ah-chevron { margin-left:auto; transition:transform .25s; color:var(--course-muted); }
.accordion-head[aria-expanded="true"] .ah-chevron { transform:rotate(180deg); }
.accordion-panel { max-height:0; overflow:hidden; transition:max-height .3s ease; }
.accordion-panel .ap-inner { padding: 0 22px 20px 64px; font-size:15.5px; line-height:1.7; color:#3f4856; }

/* ---------- Tabs (Rise style) ---------- */
.tabs { background:#fff; border:1px solid var(--course-line); border-radius:14px; box-shadow:var(--shadow-sm); overflow:hidden; }
.tab-strip { display:flex; gap:0; border-bottom:1px solid var(--course-line); background:var(--course-bg); overflow-x:auto; }
.tab-btn {
  flex:1; min-width:max-content; background:none; border:none; cursor:pointer; padding:15px 18px;
  font-family:var(--font-head); font-size:14.5px; font-weight:600; color:var(--course-muted);
  border-bottom:3px solid transparent; transition:color .15s,border-color .15s, background .15s; white-space:nowrap;
}
.tab-btn:hover { color:var(--navy); }
.tab-btn[aria-selected="true"] { color:var(--navy); border-bottom-color:var(--gold); background:#fff; }
.tab-panel { padding:24px 24px; font-size:15.5px; line-height:1.75; color:#3f4856; }
.tab-panel[hidden] { display:none; }
.tab-panel p:last-child { margin-bottom:0; }

/* ---------- Flashcards (flip) ---------- */
.flashcards { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:18px; margin:8px 0; }
.flashcard { perspective:1200px; height:200px; cursor:pointer; }
.flashcard-inner { position:relative; width:100%; height:100%; transition:transform .55s cubic-bezier(.4,0,.2,1); transform-style:preserve-3d; }
.flashcard.flipped .flashcard-inner { transform:rotateY(180deg); }
.flashcard-face {
  position:absolute; inset:0; backface-visibility:hidden; border-radius:16px; padding:22px;
  display:flex; flex-direction:column; box-shadow:var(--shadow-sm); border:1px solid var(--course-line);
}
.flashcard-front { background:#fff; align-items:center; justify-content:center; text-align:center; }
.flashcard-front .fc-num { font-family:var(--font-head); font-size:26px; color:var(--gold); font-weight:700; }
.flashcard-front .fc-title { font-family:var(--font-head); font-size:18px; color:var(--navy); margin-top:8px; line-height:1.25; }
.flashcard-front .fc-hint { margin-top:auto; font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--course-muted); }
.flashcard-back { background:var(--navy); color:#fff; transform:rotateY(180deg); align-items:flex-start; justify-content:center; }
.flashcard-back p { font-size:14px; line-height:1.6; color:rgba(255,255,255,.92); }

/* myth/truth cards */
.flashcard-front.myth { background:#fdecea; }
.flashcard-front.myth .fc-num { color:#c0392b; }
.flashcard-back.truth { background:var(--teal); }

/* ---------- Sound Cards interactive ---------- */
.sound-cards-tool { background:#fff; border:1px solid var(--course-line); border-radius:16px; padding:22px; box-shadow:var(--shadow-sm); }
.sc-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; flex-wrap:wrap; }
.sc-toolbar h4 { font-family:var(--font-head); font-size:16px; color:var(--navy); }
.sc-toolbar .sc-hint { font-size:12.5px; color:var(--course-muted); }
.sound-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(78px,1fr)); gap:10px; }
.sound-card { perspective:900px; aspect-ratio:1; cursor:pointer; }
.sound-card-inner { position:relative; width:100%; height:100%; transition:transform .5s; transform-style:preserve-3d; }
.sound-card.flipped .sound-card-inner { transform:rotateY(180deg); }
.sound-face { position:absolute; inset:0; backface-visibility:hidden; border-radius:12px; display:flex; flex-direction:column; align-items:center; justify-content:center; box-shadow:var(--shadow-sm); }
.sound-face.front { background:var(--teal); color:#fff; }
.sound-face.front .sf-letter { font-family:var(--font-head); font-size:24px; font-weight:700; line-height:1; }
/* color groups (match the course portal) */
.sound-card.vowel .sound-face.front { background:var(--gold); color:var(--navy); }
.sound-card.glued .sound-face.front { background:#b5611f; color:#fff; }
/* speaker icon, top-center */
.sound-face.front::before {
  content:''; position:absolute; top:9px; left:50%; transform:translateX(-50%);
  width:18px; height:18px; opacity:.55;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23101527'><path d='M3 9v6h4l5 5V4L7 9H3zm13.5 3a4.5 4.5 0 00-2.5-4v8a4.5 4.5 0 002.5-4z'/></svg>") center/contain no-repeat;
}
.sound-face.back { background:#f0e7d4; color:var(--navy); transform:rotateY(180deg); padding:8px; text-align:center; flex-direction:column-reverse; }
.sound-face.back .sf-word { font-weight:600; font-size:13px; opacity:.85; }
.sound-face.back .sf-key { font-family:var(--font-head); font-weight:700; font-size:16px; }
.sound-card .sf-audio { position:absolute; top:5px; right:5px; width:16px; height:16px; opacity:.7; }

/* LARGE variant — the dedicated Sound Cards page */
.sound-grid.lg { grid-template-columns:repeat(3,1fr); gap:16px; }
.sound-grid.lg .sound-card { aspect-ratio:1 / 1.04; }
.sound-grid.lg .sound-face { border-radius:16px; }
.sound-grid.lg .sound-face.front .sf-letter { font-size:clamp(42px,8vw,92px); }
.sound-grid.lg .sound-face.front::before { width:26px; height:26px; top:16px; opacity:.5; }
.sound-grid.lg .sound-face.back .sf-key { font-size:clamp(19px,4vw,30px); }
.sound-grid.lg .sound-face.back .sf-word { font-size:clamp(13px,2.6vw,18px); }
@media (max-width:560px) { .sound-grid.lg { gap:11px; } }

/* ---------- Knowledge check (quiz) ---------- */
.knowledge-check { background:#fff; border:1px solid var(--course-line); border-radius:16px; padding:26px 26px 22px; box-shadow:var(--shadow-sm); }
.kc-head { display:flex; align-items:center; gap:12px; margin-bottom:6px; }
.kc-head .kc-badge { background:#fff7e9; color:var(--gold-darker); font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding:5px 10px; border-radius:99px; }
.kc-head h3 { font-family:var(--font-head); font-size:20px; color:var(--navy); margin:0; }
.kc-progress { font-size:13px; color:var(--course-muted); margin-bottom:18px; }
.kc-question { border-top:1px solid var(--course-line); padding:20px 0; }
.kc-question:first-of-type { border-top:none; }
.kc-q { font-size:16px; font-weight:600; color:var(--course-ink); margin-bottom:14px; line-height:1.5; }
.kc-q .kc-qn { color:var(--teal); font-family:var(--font-head); margin-right:6px; }
.kc-options { display:flex; flex-direction:column; gap:10px; }
.kc-opt {
  display:flex; align-items:flex-start; gap:12px; padding:13px 16px; border:1.5px solid var(--course-line);
  border-radius:11px; cursor:pointer; transition:border-color .15s, background .15s; font-size:15px; line-height:1.45; background:#fff;
}
.kc-opt:hover { border-color:#c7cedb; background:var(--course-bg); }
.kc-opt .kc-mark { flex-shrink:0; width:22px; height:22px; border-radius:50%; border:2px solid #cdd4df; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; color:#fff; transition:all .15s; }
.kc-opt.correct { border-color:var(--teal); background:#eaf5f4; }
.kc-opt.correct .kc-mark { background:var(--teal); border-color:var(--teal); }
.kc-opt.wrong { border-color:#e2a8a0; background:#fdecea; }
.kc-opt.wrong .kc-mark { background:#c0392b; border-color:#c0392b; }
.kc-opt.disabled { cursor:default; pointer-events:none; }
.kc-feedback { margin-top:12px; font-size:14px; line-height:1.6; padding:12px 16px; border-radius:10px; display:none; }
.kc-feedback.show { display:block; }
.kc-feedback.right { background:#eaf5f4; color:#1d6b69; }
.kc-feedback.wrong { background:#fdecea; color:#a23b2e; }
.kc-result { margin-top:18px; padding:18px; border-radius:12px; background:var(--navy); color:#fff; text-align:center; display:none; }
.kc-result.show { display:block; }
.kc-result .kc-score { font-family:var(--font-head); font-size:30px; color:var(--gold); font-weight:700; }

/* ---------- Prompt tool (AI co-tutor) ---------- */
.prompt-tool {
  border:1px solid #d8def0; border-radius:16px; overflow:hidden; box-shadow:var(--shadow-sm);
  background:#fff;
}
.prompt-tool .pt-head {
  background:linear-gradient(120deg,#1b2440,#2a3a63); color:#fff; padding:16px 22px;
  display:flex; align-items:center; gap:12px;
}
.prompt-tool .pt-head .pt-spark { width:26px; height:26px; color:var(--gold); flex-shrink:0; }
.prompt-tool .pt-head .pt-eyebrow { font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); font-weight:700; }
.prompt-tool .pt-head h4 { font-family:var(--font-head); font-size:16.5px; margin:1px 0 0; color:#fff; }
.prompt-tool .pt-body { padding:20px 22px; }
.prompt-tool .pt-desc { font-size:14.5px; line-height:1.6; color:#48515f; margin-bottom:14px; }
.prompt-box {
  position:relative; background:#0f1729; color:#e6ebf5; border-radius:11px; padding:16px 18px;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:13px; line-height:1.65;
  white-space:pre-wrap; max-height:260px; overflow:auto;
}
.prompt-box .pt-var { color:var(--gold); }
.pt-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:14px; align-items:center; }
.pt-btn {
  display:inline-flex; align-items:center; gap:8px; padding:11px 18px; border-radius:9px; font-size:13px;
  font-weight:700; letter-spacing:.03em; cursor:pointer; border:none; transition:transform .1s, background .2s, color .2s;
}
.pt-btn svg { width:16px; height:16px; }
.pt-btn-copy { background:var(--gold); color:var(--navy); }
.pt-btn-copy:hover { background:var(--gold-dark); transform:translateY(-1px); }
.pt-btn-open { background:#fff; color:var(--navy); border:1.5px solid #d3d9e6; }
.pt-btn-open:hover { background:var(--course-bg); }
.pt-copied { font-size:12.5px; color:var(--teal); font-weight:700; opacity:0; transition:opacity .2s; }
.pt-copied.show { opacity:1; }
.pt-note { font-size:12px; color:var(--course-muted); margin-top:12px; line-height:1.5; }
/* live-agent slot (phase 2 drop-in) */
.pt-agent-slot:empty { display:none; }

/* ---------- Try-this experiential block ---------- */
.try-this { background:#fff7e9; border:1px solid #f4dca0; border-radius:16px; padding:24px; margin:30px 0; }
.try-this .tt-tag { display:inline-flex; align-items:center; gap:7px; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-darker); margin-bottom:8px; }
.try-this .tt-tag svg { width:16px; height:16px; }
.try-this h4 { font-family:var(--font-head); font-size:18px; color:var(--navy); margin-bottom:10px; }
.try-this ol { padding-left:20px; }
.try-this li { font-size:15px; line-height:1.7; margin-bottom:8px; color:#4a5160; }
.reflection textarea {
  width:100%; min-height:96px; border:1.5px solid #ead9ac; border-radius:11px; padding:13px 15px;
  font-family:var(--font-body); font-size:15px; line-height:1.6; resize:vertical; margin-top:12px; background:#fff;
}
.reflection .rf-save { margin-top:10px; display:flex; align-items:center; gap:10px; }
.reflection .rf-saved { font-size:12.5px; color:var(--teal); font-weight:700; opacity:0; transition:opacity .2s; }
.reflection .rf-saved.show { opacity:1; }

/* ---------- Lesson footer nav ---------- */
.lesson-footer { width:100%; max-width:900px; margin:48px auto 0; border-top:1px solid var(--course-line); padding-top:26px; }
.complete-row { display:flex; flex-direction:column; align-items:center; gap:14px; text-align:center; }
.btn-complete {
  display:inline-flex; align-items:center; gap:10px; background:var(--teal); color:#fff; border:none; cursor:pointer;
  font-family:var(--font-body); font-weight:700; font-size:15px; letter-spacing:.04em; padding:15px 32px; border-radius:11px;
  box-shadow:var(--shadow-md); transition:transform .1s, background .2s;
}
.btn-complete:hover { background:#27716f; transform:translateY(-2px); }
.btn-complete.is-done { background:var(--course-line); color:var(--course-muted); box-shadow:none; }
.btn-complete svg { width:20px; height:20px; }
.prevnext { display:flex; justify-content:space-between; gap:16px; margin-top:26px; }
.prevnext a {
  flex:1; max-width:48%; border:1px solid var(--course-line); border-radius:12px; padding:14px 18px; background:#fff;
  transition:border-color .15s, box-shadow .15s; display:block;
}
.prevnext a:hover { border-color:#c7cedb; box-shadow:var(--shadow-sm); }
.prevnext .pn-dir { font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--course-muted); font-weight:700; }
.prevnext .pn-title { font-family:var(--font-head); font-size:15px; color:var(--navy); margin-top:3px; }
.prevnext .pn-next { text-align:right; }
.prevnext .pn-disabled { opacity:.4; pointer-events:none; }

/* ============================================================
   CATALOG (parent-courses) — course cards
   ============================================================ */
.catalog-wrap { max-width:1080px; margin:0 auto; padding:56px 24px 80px; }
.course-card {
  display:grid; grid-template-columns:1.3fr 1fr; gap:0; background:#fff; border:1px solid var(--course-line);
  border-radius:20px; overflow:hidden; box-shadow:var(--shadow-md); margin-bottom:30px;
}
.course-card .cc-media { position:relative; background:var(--navy); min-height:280px; display:flex; align-items:center; justify-content:center; }
.course-card .cc-media img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; opacity:.92; }
.course-card .cc-media .cc-badge { position:relative; z-index:2; background:rgba(16,21,39,.72); color:#fff; padding:8px 16px; border-radius:99px; font-size:12px; letter-spacing:.1em; text-transform:uppercase; font-weight:700; }
.course-card .cc-body { padding:34px 36px; }
.course-card .cc-eyebrow { font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--teal); font-weight:700; }
.course-card .cc-title { font-family:var(--font-head); font-size:27px; color:var(--navy); margin:8px 0 12px; line-height:1.2; }
.course-card .cc-desc { font-size:15px; line-height:1.65; color:#48515f; margin-bottom:18px; }
.course-card .cc-meta { display:flex; gap:22px; flex-wrap:wrap; margin-bottom:20px; }
.course-card .cc-meta .ccm { font-size:13px; color:var(--course-muted); display:flex; align-items:center; gap:7px; }
.course-card .cc-meta .ccm svg { width:17px; height:17px; color:var(--gold-darker); }
.cc-progress { display:flex; align-items:center; gap:12px; margin-bottom:20px; }
.cc-progress .ccp-bar { flex:1; height:9px; border-radius:99px; background:var(--course-line); overflow:hidden; }
.cc-progress .ccp-bar > span { display:block; height:100%; width:0; background:linear-gradient(90deg,var(--teal),var(--gold)); border-radius:99px; transition:width .5s; }
.cc-progress .ccp-label { font-size:13px; font-weight:700; color:var(--course-muted); }

.tools-strip { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin:10px 0 40px; }
.tool-feat { background:#fff; border:1px solid var(--course-line); border-radius:16px; padding:24px; box-shadow:var(--shadow-sm); }
.tool-feat .tf-ico { width:44px; height:44px; border-radius:12px; display:flex; align-items:center; justify-content:center; background:#fff7e9; color:var(--gold-darker); margin-bottom:14px; }
.tool-feat .tf-ico svg { width:24px; height:24px; }
.tool-feat h3 { font-family:var(--font-head); font-size:17px; color:var(--navy); margin-bottom:7px; }
.tool-feat p { font-size:14px; line-height:1.6; color:#566; color:#566270; }

.section-head { text-align:center; max-width:640px; margin:0 auto 34px; }
.section-head .eyebrow { font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--teal); font-weight:700; }
.section-head h2 { font-family:var(--font-head); font-size:30px; color:var(--navy); margin:8px 0 10px; }
.section-head p { font-size:16px; line-height:1.65; color:#566270; }

/* ============================================================
   LIBRARY — resource grid
   ============================================================ */
.library-wrap { max-width:1100px; margin:0 auto; padding:40px 28px 80px; }
.lib-section { margin-bottom:46px; }
.lib-section > .lib-head { display:flex; align-items:center; gap:12px; margin-bottom:18px; }
.lib-section > .lib-head .lh-ico { width:40px; height:40px; border-radius:11px; background:var(--teal); color:#fff; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.lib-section > .lib-head .lh-ico svg { width:22px; height:22px; }
.lib-section > .lib-head h2 { font-family:var(--font-head); font-size:22px; color:var(--navy); }
.lib-section > .lib-head p { font-size:13.5px; color:var(--course-muted); margin-top:2px; }
.resource-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:20px; }
.resource-card { background:#fff; border:1px solid var(--course-line); border-radius:14px; overflow:hidden; box-shadow:var(--shadow-sm); transition:transform .12s, box-shadow .15s; }
.resource-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-md); }
.resource-card .rc-thumb { aspect-ratio:16/9; background:var(--navy); position:relative; display:flex; align-items:center; justify-content:center; }
.resource-card .rc-thumb img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.resource-card .rc-thumb .rc-play { position:relative; z-index:2; width:48px; height:48px; border-radius:50%; background:rgba(255,255,255,.92); display:flex; align-items:center; justify-content:center; color:var(--navy); }
.resource-card .rc-thumb .rc-play svg { width:22px; height:22px; margin-left:2px; }
.resource-card .rc-type { position:absolute; top:10px; left:10px; z-index:2; background:rgba(16,21,39,.72); color:#fff; font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; font-weight:700; padding:4px 9px; border-radius:6px; }
.resource-card .rc-body { padding:16px 18px; }
.resource-card .rc-title { font-family:var(--font-head); font-size:15.5px; color:var(--navy); line-height:1.3; }
.resource-card .rc-sub { font-size:13px; color:var(--course-muted); margin-top:5px; line-height:1.5; }
.resource-card .rc-link { display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:700; color:var(--teal); margin-top:12px; }
.resource-card .rc-link svg { width:15px; height:15px; }

/* ---------- Inline video lightbox ---------- */
.video-modal { position:fixed; inset:0; z-index:2000; display:none; align-items:center; justify-content:center; background:rgba(8,12,24,.86); padding:24px; }
.video-modal.open { display:flex; }
.video-modal-inner { width:100%; max-width:1000px; }
.video-modal-frame { position:relative; width:100%; aspect-ratio:16/9; background:#000; border-radius:14px; overflow:hidden; box-shadow:0 24px 70px rgba(0,0,0,.55); }
.video-modal-frame iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.video-modal-title { color:#fff; font-family:var(--font-head); font-size:16px; margin-top:14px; text-align:center; }
.video-modal-close { position:absolute; top:18px; right:22px; background:rgba(255,255,255,.14); border:none; color:#fff; width:42px; height:42px; border-radius:50%; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .2s; }
.video-modal-close:hover { background:rgba(255,255,255,.28); }
.video-modal-close svg { width:22px; height:22px; }
@media (max-width:560px) { .video-modal { padding:14px; } .video-modal-close { top:8px; right:10px; } }

/* ---------- Responsive ---------- */
@media (max-width:1024px) {
  .course-sidebar {
    position:fixed; top:64px; left:0; z-index:55; transform:translateX(-100%);
    transition:transform .28s ease; box-shadow:var(--shadow-lg); width:300px;
  }
  .course-sidebar.open { transform:translateX(0); }
  .sidebar-toggle { display:block; }
  .sidebar-backdrop { position:fixed; inset:64px 0 0; background:rgba(16,21,39,.4); z-index:54; opacity:0; pointer-events:none; transition:opacity .25s; }
  .sidebar-backdrop.show { opacity:1; pointer-events:auto; }
  .course-card { grid-template-columns:1fr; }
  .course-card .cc-media { min-height:200px; }
  .tools-strip { grid-template-columns:1fr; }
}
@media (max-width:680px) {
  .course-main { padding:28px 18px 64px; }
  .lesson h1 { font-size:30px; }
  .tb-progress .tb-bar { width:90px; }
  .course-topbar .tb-title { font-size:13.5px; }
  .stat-band { flex-direction:column; text-align:center; gap:10px; }
  .prevnext { flex-direction:column; }
  .prevnext a { max-width:100%; }
}
