/* ============================================================
   BUNKROS LESSONS (2026-09-28) — the 10 Learning trainings
   Intro screen → 12 chapter screens → completion screen.
   Palette moves from the old navy to the Bunkros underground black;
   each training gets its own accent (--lesson) from its category:
   core = cyan, applied = green, ethics = yellow, generative = pink.
   Brand pink stays the interaction colour (buttons, selections).
   Typography: Montserrat display, Space Grotesk reading text,
   Instrument Serif italic for the emphasised words.
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap');

body.bk-lesson { background: #09090d; }
body.bk-lesson .bk-mod {
    --bg: #09090d; --bg2: #0f0f15; --bg3: #15151d;
    --card: #121219; --card2: #191922;
    --border: rgba(255,255,255,.08); --border2: rgba(255,255,255,.16);
    --text: #f2f2f7; --dim: #a3a3b6; --faint: #6c6c80;
    --accent: #ff005a; --accent-alt: #9d00ff; --accent2: #ff4d7a; --green: #2ee59d;
    --serif: 'Instrument Serif', Georgia, serif;
    --read: min(700px, 100%);
    --ls-bar-h: 56px;
    padding-top: var(--sh-top-h) !important;
    background: var(--bg);
    font-size: 17px;
}
[data-theme="light"] body.bk-lesson, [data-theme="light"] body.bk-lesson .bk-mod { background: #f7f5f1; }
[data-theme="light"] body.bk-lesson .bk-mod {
    --bg: #f7f5f1; --bg2: #efece6; --bg3: #ebe7e0; --card: #ffffff; --card2: #faf8f5;
    --border: rgba(20,18,16,.1); --border2: rgba(20,18,16,.2);
    --text: #16140f; --dim: #555048; --faint: #8a8378;
}

/* ---------- lesson bar ---------- */
.ls-bar {
    position: sticky; top: var(--sh-top-h); z-index: 900; height: var(--ls-bar-h); box-sizing: border-box;
    display: flex; align-items: center; gap: 12px; padding: 0 max(var(--gutter), 16px);
    background: color-mix(in srgb, var(--bg) 86%, transparent);
    -webkit-backdrop-filter: blur(18px) saturate(160%); backdrop-filter: blur(18px) saturate(160%);
    border-bottom: 1px solid var(--border);
    transition: transform .4s var(--sh-ease), opacity .3s;
}
.ls-bar.is-intro { opacity: 0; pointer-events: none; transform: translateY(-8px); }
.ls-bar-toc, .ls-bar-btn { width: 44px; height: 44px; flex: none; display: grid; place-items: center; border-radius: 12px; border: 1px solid var(--border2); background: var(--card); color: var(--text); cursor: pointer; font-size: .95rem; transition: border-color .2s, color .2s, transform .3s var(--sh-spring); }
.ls-bar-toc:hover, .ls-bar-btn:hover { border-color: var(--lesson); color: var(--lesson); }
.ls-bar-btn:disabled { opacity: .3; pointer-events: none; }
.ls-bar-toc:active, .ls-bar-btn:active { transform: scale(.9); }
.ls-bar-now { flex: 1; min-width: 0; display: flex; align-items: baseline; gap: 12px; }
.ls-bar-count { flex: none; font: 800 .8rem/1 var(--font-h); letter-spacing: .1em; color: var(--lesson); font-variant-numeric: tabular-nums; }
.ls-bar-title { font: 700 .95rem/1.2 var(--font-h); color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ls-bar-nav { display: flex; gap: 6px; }
.ls-bar-prog { position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: transparent; }
.ls-bar-prog i { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--lesson), var(--accent)); transition: width .6s var(--sh-ease); }

/* ---------- screens ---------- */
.ls { color: var(--text); font-family: var(--font-b); }
.ls-screen {
    position: relative; box-sizing: border-box;
    min-height: calc(100dvh - var(--sh-top-h));
    padding: clamp(32px, 7vh, 88px) max(var(--gutter), 20px) clamp(40px, 8vh, 96px);
    scroll-margin-top: calc(var(--sh-top-h) + var(--ls-bar-h));
    display: flex; flex-direction: column; justify-content: center;
    border-bottom: 1px solid var(--border);
}
.ls-screen.ls-chapter { min-height: calc(100dvh - var(--sh-top-h) - var(--ls-bar-h)); }
.ls-screen > * { opacity: 1; }
@media (prefers-reduced-motion: no-preference) {
    .ls-screen:not(.is-in) .ls-col, .ls-screen:not(.is-in) .ls-intro-text, .ls-screen:not(.is-in) .ls-done-inner { opacity: 0; transform: translateY(26px); }
    .ls-col, .ls-intro-text, .ls-done-inner { transition: opacity .8s var(--sh-ease), transform .9s var(--sh-ease); }
}

/* ---------- 00 intro ---------- */
.ls-intro { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); align-items: center; gap: clamp(28px, 5vw, 80px); min-height: calc(100dvh - var(--sh-top-h)); width: 100%; max-width: 1360px; margin: 0 auto; border-bottom: 0; }
.ls-intro::before { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: radial-gradient(60% 60% at 80% 30%, color-mix(in srgb, var(--lesson) 18%, transparent), transparent 70%), radial-gradient(50% 60% at 0% 100%, rgba(255,0,90,.1), transparent 70%); }
.ls-intro-text { min-width: 0; }
.ls .bk-breadcrumb { margin: 0 0 18px; font-size: .75rem; letter-spacing: .22em; }
.ls .bk-breadcrumb a { color: var(--dim); }
.ls-badges { display: flex; gap: 8px; margin-bottom: 18px; flex-wrap: wrap; }
.ls-badge { display: inline-flex; align-items: center; min-height: 30px; padding: 0 12px; border-radius: 999px; font: 800 .7rem/1 var(--font-h); letter-spacing: .16em; text-transform: uppercase; background: var(--lesson); color: #0a0a0f; }
.ls-badge--ghost { background: transparent; color: var(--text); border: 1px solid var(--border2); }
.ls-intro h1 { font: 900 clamp(2.4rem, 1.2rem + 4.6vw, 5.4rem)/.96 var(--font-h) !important; letter-spacing: -.03em !important; margin: 0 0 22px !important; color: var(--text); text-wrap: balance; }
.ls-intro h1 em, .ls .bk-sec-title em, .ls-done-title em { font-family: var(--serif); font-style: italic; font-weight: 400; letter-spacing: 0; color: var(--lesson); }
.ls-intro .bk-hero-lead { font-size: clamp(1.05rem, .98rem + .4vw, 1.25rem) !important; line-height: 1.6; color: var(--dim); max-width: 56ch; margin: 0 0 28px; }
.ls-intro .bk-hero-lead strong { color: var(--text); }
.ls-cta { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 30px; }
.ls-cta--center { justify-content: center; margin: 0; }
.ls-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: .6rem; min-height: 52px; padding: 0 1.4rem;
    border-radius: 14px; border: 1.5px solid transparent; cursor: pointer; text-decoration: none !important;
    font: 800 .8rem/1.1 var(--font-b) !important; letter-spacing: .12em !important; text-transform: uppercase;
    transition: transform .3s var(--sh-spring), box-shadow .3s, border-color .2s, color .2s, background-color .2s;
}
.ls-btn--primary { background: linear-gradient(135deg, var(--accent), var(--accent-alt)) !important; color: #fff !important; box-shadow: 0 14px 30px -14px var(--accent); }
.ls-btn--primary:hover { transform: translateY(-2px); box-shadow: 0 18px 38px -14px var(--accent); }
.ls-btn--ghost { background: var(--card) !important; color: var(--text) !important; border-color: var(--border2) !important; }
@media (hover: hover) { .ls-btn--ghost:hover { border-color: var(--lesson) !important; color: var(--lesson) !important; } }
.ls-btn:active { transform: scale(.96); }
.ls-objectives { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 10px !important; background: none !important; border: 0 !important; margin: 0 !important; overflow: visible !important; }
.ls-objectives .bk-hero-card { border-radius: 16px; border: 1px solid var(--border); background: var(--card); padding: 16px 16px 18px !important; border-top: 3px solid var(--lesson); }
.ls-objectives .bk-hero-card-label { font-size: .68rem !important; color: var(--lesson) !important; margin-bottom: 8px !important; }
.ls-objectives h3 { font-size: 1rem !important; }
.ls-objectives p { font-size: .9rem !important; }
.ls-intro-side { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.ls-cover { position: relative; margin: 0; aspect-ratio: 4 / 3.4; border-radius: 28px; overflow: hidden; background: #111; box-shadow: 0 40px 90px -40px color-mix(in srgb, var(--lesson) 70%, transparent), 0 0 0 1px var(--border); }
.ls-cover img { width: 100%; height: 100%; object-fit: cover; }
.ls-cover::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, rgba(0,0,0,.6)); }
.ls-cover-no { position: absolute; z-index: 1; right: 18px; bottom: 6px; font: 900 clamp(4rem, 3rem + 4vw, 7.5rem)/1 var(--font-h); color: transparent; -webkit-text-stroke: 2px rgba(255,255,255,.85); }
.ls-snapshot { border-radius: 18px !important; padding: 14px 18px !important; background: var(--card) !important; }
.ls-snapshot h4 { display: none; }
.ls-snapshot { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.ls-snapshot .bk-stat-row { flex-direction: column; align-items: flex-start; gap: 4px; border: 0 !important; padding: 0 !important; font-size: .75rem !important; }
.ls-snapshot .bk-stat-row span { text-transform: uppercase; letter-spacing: .14em; font-size: .66rem; }
.ls-snapshot .bk-stat-row b { font-size: .9rem !important; color: var(--text); }

/* ---------- chapters ---------- */
.ls-chapter-inner { width: 100%; max-width: 1120px; margin: 0 auto; display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 0 clamp(20px, 3vw, 48px); align-items: start; }
.ls-no { position: sticky; top: calc(var(--sh-top-h) + var(--ls-bar-h) + 28px); display: flex; flex-direction: column; line-height: .85; }
.ls-no span { font: 900 clamp(4rem, 2.6rem + 3.4vw, 6.4rem)/.85 var(--font-h); color: transparent; -webkit-text-stroke: 1.5px var(--lesson); letter-spacing: -.04em; }
.ls-no small { font: 700 .8rem/1 var(--font-h); letter-spacing: .12em; color: var(--faint); margin-top: 10px; }
.ls-col { min-width: 0; max-width: 780px; }
body.bk-lesson .bk-mod .ls .bk-section { margin: 0 !important; padding: 0 !important; scroll-margin-top: calc(var(--sh-top-h) + var(--ls-bar-h) + 24px) !important; }
.ls .bk-sec-label { font-size: .74rem !important; letter-spacing: .22em !important; color: var(--lesson) !important; margin-bottom: 14px !important; }
.ls .bk-sec-label span { background: var(--lesson) !important; }
.ls .bk-sec-title { font: 800 clamp(1.9rem, 1.2rem + 2.6vw, 3.4rem)/1.04 var(--font-h) !important; letter-spacing: -.02em; margin: 0 0 6px !important; text-wrap: balance; }
.ls .bk-sec-rule { width: 56px !important; height: 3px !important; background: linear-gradient(90deg, var(--lesson), var(--accent)) !important; margin: 18px 0 26px !important; }
.ls .bk-body { font-size: clamp(1.02rem, .98rem + .22vw, 1.16rem) !important; line-height: 1.75 !important; max-width: 68ch; margin-bottom: 1.1em !important; }
.ls .bk-body.dim { color: var(--dim) !important; }

/* callouts: pull-quote style */
.ls .bk-callout { border: 0 !important; border-left: 3px solid var(--lesson) !important; background: color-mix(in srgb, var(--lesson) 7%, transparent) !important; border-radius: 0 18px 18px 0 !important; padding: 20px 24px !important; margin: 26px 0 !important; }
.ls .bk-callout-label { color: var(--lesson) !important; font-size: .72rem !important; }
.ls .bk-callout p { font-size: 1.05rem !important; line-height: 1.65 !important; }

/* cards + grids: separate rounded cards instead of hairline tables */
.ls .bk-grid, .ls .bk-glossary { background: none !important; border: 0 !important; gap: 12px !important; overflow: visible !important; margin: 24px 0 !important; }
.ls .bk-card, .ls .bk-glossary-item { border-radius: 18px !important; border: 1px solid var(--border) !important; background: var(--card) !important; padding: 22px 22px 24px !important; }
.ls .bk-card::before { height: 3px !important; background: var(--lesson) !important; }
.ls .bk-card h4 { font-family: var(--font-h) !important; font-size: 1.08rem !important; }
.ls .bk-card p, .ls .bk-glossary-def { font-size: .96rem !important; line-height: 1.6 !important; }
.ls .bk-card-tag { color: var(--lesson) !important; }
.ls .bk-card-icon { color: var(--lesson) !important; font-size: 1.5rem !important; }
.ls .bk-glossary-term { color: var(--lesson) !important; font-size: 1rem !important; }
.ls .bk-table-wrap { border-radius: 18px !important; }
.ls .bk-table { font-size: .92rem !important; }

/* exercises: the interactive heart */
.ls .bk-exercise, .ls .bk-lab, .ls .bk-dilemma {
    border-radius: 24px !important; border: 1px solid var(--border2) !important; padding: clamp(20px, 3vw, 34px) !important; margin: 28px 0 !important;
    background: linear-gradient(160deg, color-mix(in srgb, var(--accent) 7%, transparent), transparent 55%), var(--card) !important;
    box-shadow: 0 30px 60px -44px rgba(0,0,0,.9);
}
.ls .bk-ex-label { color: var(--accent) !important; font-size: .72rem !important; letter-spacing: .2em !important; }
.ls .bk-ex-q { font-size: clamp(1.15rem, 1.05rem + .5vw, 1.45rem) !important; line-height: 1.3 !important; margin-bottom: 16px !important; }
.ls .bk-pick-option { min-height: 58px; border-radius: 16px !important; padding: 14px 16px !important; align-items: center !important; transition: border-color .2s, background-color .2s, transform .25s var(--sh-spring) !important; }
.ls .bk-pick-option:active { transform: scale(.985); }
.ls .bk-pick-num { width: 34px; height: 34px; min-width: 34px !important; font-size: .85rem !important; }
.ls .bk-pick-text { font-size: 1rem !important; padding-top: 0 !important; }
.ls .bk-ex-actions { flex-wrap: wrap; gap: 10px !important; }
.ls .bk-ex-btn, .ls .bk-copy-btn { min-height: 48px; border-radius: 13px !important; padding: 0 20px !important; font-size: .76rem !important; }
.ls .bk-ex-feedback { border-radius: 14px !important; font-size: .98rem !important; padding: 16px 18px !important; }
.ls .bk-toggle { border-radius: 14px !important; }
.ls .bk-toggle button { min-height: 50px; padding: 0 32px !important; font-size: .95rem !important; }
.ls .bk-textarea, .ls .bk-mc-input, .ls .bk-build-input { font-size: 16px !important; border-radius: 14px !important; min-height: 52px; background: var(--bg3) !important; }
.ls .bk-textarea { min-height: 140px; }
.ls .bk-details { border-radius: 16px !important; }
.ls .bk-details summary { min-height: 54px; font-size: .95rem !important; }
.ls .bk-check { min-height: 48px; align-items: center !important; }
.ls .bk-check span { font-size: 1rem !important; }
.ls .bk-dil-btn { min-height: 56px; border-radius: 14px !important; font-size: 1rem !important; }
.ls .bk-hero-actions { display: none; }

/* step navigation at the end of each chapter */
.ls-step { display: flex; justify-content: space-between; gap: 10px; margin-top: clamp(28px, 5vh, 52px); padding-top: 22px; border-top: 1px solid var(--border); }
.ls-step .ls-btn--primary { max-width: 70%; }
.ls-step .ls-btn--primary { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ---------- complete ---------- */
.ls-done { border-bottom: 0; background: radial-gradient(60% 60% at 50% 30%, color-mix(in srgb, var(--lesson) 16%, transparent), transparent 70%); }
.ls-done-inner { width: 100%; max-width: 980px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: clamp(20px, 3.5vh, 36px); text-align: center; }
.ls-eyebrow { font: 800 .76rem/1 var(--font-h); letter-spacing: .24em; text-transform: uppercase; color: var(--lesson); }
.ls-done-title { font: 900 clamp(2rem, 1.3rem + 3vw, 4rem)/1 var(--font-h); letter-spacing: -.02em; margin: 14px 0; text-wrap: balance; }
.ls-done-lead { color: var(--dim); font-size: 1.05rem; max-width: 52ch; margin: 0 auto; line-height: 1.6; }
.ls-done-grid { display: grid; grid-template-columns: minmax(0, .6fr) minmax(0, 1.4fr); gap: 14px; width: 100%; text-align: left; }
.ls-done-card { border-radius: 22px !important; padding: 22px 24px !important; background: var(--card) !important; }
.ls-done-card h4 { color: var(--lesson) !important; }
.ls-done-card .bk-score-big { font-size: 4.2rem !important; color: var(--lesson) !important; }
.ls-done-card .bk-key-list li { font-size: .98rem !important; padding: 10px 0 10px 18px !important; }
.ls-done-card .bk-key-list li::before { background: var(--lesson) !important; top: 18px !important; }

/* ---------- drawer ---------- */
.ls-scrim { position: fixed; inset: 0; z-index: 2090; background: rgba(5,5,9,.55); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); opacity: 0; transition: opacity .35s; }
.ls-scrim.is-open { opacity: 1; }
.ls-drawer {
    position: fixed; z-index: 2100; top: calc(12px + var(--sh-safe-t)); bottom: calc(12px + var(--sh-safe-b)); left: calc(12px + var(--sh-rail-w));
    width: min(380px, calc(100vw - 24px)); display: flex; flex-direction: column; border-radius: 26px;
    background: var(--sh-glass-strong); border: 1px solid var(--sh-border-2); color: var(--sh-text);
    -webkit-backdrop-filter: blur(24px); backdrop-filter: blur(24px); box-shadow: 0 40px 100px -30px #000;
    transform: translateX(calc(-100% - 40px)); transition: transform .45s var(--sh-ease);
}
.ls-drawer.is-open { transform: none; }
.ls-drawer-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 16px 16px 10px 20px; }
.ls-drawer-head strong { font: 800 1rem/1.2 var(--font-heading); }
.ls-drawer .ls-bar-btn { background: var(--sh-surface); color: var(--sh-text); border-color: var(--sh-border-2); }
.ls-toc { list-style: none; margin: 0; padding: 4px 10px 16px; overflow-y: auto; overscroll-behavior: contain; }
.ls-toc button { width: 100%; min-height: 50px; display: grid; grid-template-columns: 34px 1fr 18px; align-items: center; gap: 8px; padding: 6px 10px; border: 0; border-radius: 12px; background: none; color: var(--sh-muted); text-align: left; cursor: pointer; font: 600 .92rem/1.25 var(--font-body); }
.ls-toc button:hover { background: var(--sh-surface-2); color: var(--sh-text); }
.ls-toc-no { font: 800 .78rem/1 var(--font-heading); color: var(--sh-accent); }
.ls-toc button > .fa-check { opacity: 0; color: #2ee59d; font-size: .8rem; }
.ls-toc button.is-seen > .fa-check { opacity: 1; }
.ls-toc button[aria-current] { background: var(--sh-tint); color: var(--sh-text); box-shadow: inset 0 0 0 1px rgba(var(--sh-accent-rgb), .4); }

/* ============ iPad landscape ============ */
@media (min-width: 1024px) and (max-width: 1199px) {
    .ls-chapter-inner { grid-template-columns: 110px minmax(0, 1fr); }
    .ls-screen { padding-right: max(var(--gutter), 76px); }
}
/* ============ iPad portrait: number on top, generous single column ============ */
@media (min-width: 768px) and (max-width: 1023px) {
    body.bk-lesson .bk-mod { --ls-bar-h: 60px; }
    .ls-bar { top: 0; }
    .ls-screen { padding: clamp(36px, 6vh, 72px) 76px clamp(40px, 7vh, 80px) 36px; min-height: 100dvh; }
    .ls-screen.ls-chapter { min-height: calc(100dvh - var(--ls-bar-h)); }
    .ls-intro { grid-template-columns: 1fr; gap: 28px; align-content: center; }
    .ls-intro-side { order: -1; display: grid; grid-template-columns: 1.2fr 1fr; align-items: end; }
    .ls-cover { aspect-ratio: 16 / 10; }
    .ls-snapshot { grid-template-columns: 1fr 1fr; }
    .ls-chapter-inner { grid-template-columns: 1fr; }
    .ls-no { position: static; flex-direction: row; align-items: baseline; gap: 10px; margin-bottom: 18px; }
    .ls-no span { font-size: 4.2rem; }
    .ls-col { max-width: none; }
    .ls .bk-grid.cols-3 { grid-template-columns: 1fr 1fr !important; }
}
/* ============ phone: stacked, thumb-first ============ */
@media (max-width: 767px) {
    body.bk-lesson .bk-mod { --ls-bar-h: 52px; font-size: 16px; }
    .ls-bar { padding: 0 12px; gap: 8px; }
    .ls-bar-toc, .ls-bar-btn { width: 40px; height: 40px; border-radius: 11px; }
    .ls-bar-now { flex-direction: column; gap: 3px; }
    .ls-bar-count { font-size: .7rem; }
    .ls-bar-title { font-size: .86rem; max-width: 100%; }
    .ls-screen { padding: 28px 18px calc(var(--sh-bot-h) + 28px); min-height: calc(100dvh - var(--sh-top-h)); }
    .ls-screen.ls-chapter { min-height: calc(100dvh - var(--sh-top-h) - var(--ls-bar-h)); justify-content: flex-start; }
    .ls-intro { grid-template-columns: 1fr; gap: 20px; align-content: start; padding-top: 18px; }
    .ls-intro-side { order: -1; }
    .ls-cover { aspect-ratio: 16 / 10; border-radius: 22px; }
    .ls-cover-no { font-size: 4.2rem; -webkit-text-stroke-width: 1.5px; }
    .ls-snapshot { grid-template-columns: 1fr 1fr; padding: 12px 14px !important; }
    .ls-intro h1 { font-size: clamp(2.1rem, 1.2rem + 5vw, 2.8rem) !important; margin-bottom: 14px !important; }
    .ls-intro .bk-hero-lead { margin-bottom: 20px; font-size: 1rem !important; }
    .ls-cta { flex-direction: column; margin-bottom: 20px; }
    .ls-cta .ls-btn { width: 100%; }
    .ls-objectives { grid-template-columns: none !important; grid-auto-flow: column; grid-auto-columns: 78%; overflow-x: auto !important; scroll-snap-type: x mandatory; margin: 0 -18px !important; padding: 0 18px 6px !important; scrollbar-width: none; }
    .ls-objectives .bk-hero-card { scroll-snap-align: start; }
    .ls-chapter-inner { grid-template-columns: 1fr; }
    .ls-no { position: static; flex-direction: row; align-items: baseline; gap: 8px; margin-bottom: 14px; }
    .ls-no span { font-size: 3.2rem; -webkit-text-stroke-width: 1.2px; }
    .ls .bk-sec-title { font-size: clamp(1.7rem, 1.1rem + 4vw, 2.2rem) !important; }
    .ls .bk-sec-rule { margin: 14px 0 20px !important; }
    .ls .bk-body { font-size: 1.02rem !important; line-height: 1.7 !important; }
    .ls .bk-callout { padding: 16px 18px !important; }
    .ls .bk-grid, .ls .bk-grid.cols-3, .ls .bk-glossary { grid-template-columns: 1fr !important; }
    .ls .bk-card, .ls .bk-glossary-item { padding: 18px !important; }
    .ls .bk-exercise, .ls .bk-lab, .ls .bk-dilemma { margin: 22px -6px !important; padding: 20px 16px !important; border-radius: 20px !important; }
    .ls .bk-ex-actions .bk-ex-btn { flex: 1 1 0; }
    .ls .bk-toggle { display: flex !important; }
    .ls .bk-toggle button { flex: 1; }
    .ls .bk-lab-row { flex-wrap: wrap; }
    .ls .bk-lab-row label { min-width: 0 !important; width: 100%; }
    .ls .bk-rank-name { min-width: 90px !important; font-size: .9rem !important; }
    .ls-step { flex-direction: column-reverse; }
    .ls-step .ls-btn { width: 100%; max-width: none; }
    .ls-done-grid { grid-template-columns: 1fr; }
    .ls-cta--center { flex-direction: column; width: 100%; }
    .ls-drawer { left: 0; right: 0; top: auto; bottom: 0; width: 100%; max-height: 82dvh; border-radius: 26px 26px 0 0; transform: translateY(105%); padding-bottom: var(--sh-safe-b); }
    .ls-drawer.is-open { transform: none; }
}
@media (max-width: 767px) and (max-height: 700px) {
    .ls-cover { aspect-ratio: 16 / 7; }
    .ls-snapshot { display: none; }
}
/* hide shell pieces that compete with the lesson UI */
body.bk-lesson .hud-container { display: none !important; }
body.bk-lesson .site-footer { border-top: 1px solid var(--sh-border); }
@media print { .ls-bar, .ls-drawer, .ls-step { display: none !important; } .ls-screen { min-height: 0; } }

/* ---- fixes pass ---- */
@media (min-width: 1024px) and (max-height: 940px) {
    .ls-intro h1 { font-size: clamp(2.3rem, 1rem + 3.8vw, 4.4rem) !important; margin-bottom: 16px !important; }
    .ls-intro .bk-hero-lead { font-size: 1.05rem !important; margin-bottom: 22px; }
    .ls-cta { margin-bottom: 20px; }
    .ls-objectives .bk-hero-card { padding: 12px 14px 14px !important; }
    .ls-objectives p { display: none; }
    .ls-cover { aspect-ratio: 4 / 3; }
}
@media (max-width: 767px) {
    .ls-intro { display: flex; flex-direction: column; gap: 18px; }
    .ls-intro-side { display: contents; }
    .ls-cover { order: -1; aspect-ratio: 16 / 8; }
    .ls-snapshot { order: 5; }
    .ls-intro-text { order: 0; }
    .ls .bk-breadcrumb { margin-bottom: 12px; }
    .ls-badges { margin-bottom: 12px; }
}
.ls-drawer[hidden], .ls-scrim[hidden] { display: none !important; }
body.bk-lesson .bk-mod .ls .bk-section { scroll-margin-top: calc(var(--sh-top-h) + var(--ls-bar-h) + 40px) !important; }
@media (max-width: 767px) { .ls-screen.ls-intro { padding-top: 14px; } }
/* the objectives strip must not size its column from its own scroll width */
.ls-intro-text { min-width: 0; max-width: 100%; }
@media (max-width: 767px) {
    .ls-objectives { contain: inline-size; }
    .ls-intro h1 { overflow-wrap: anywhere; }
}
body.bk-lesson .bk-mod { --lesson: var(--lesson-raw, #ff005a); }
[data-theme="light"] body.bk-lesson .bk-mod { --lesson: color-mix(in srgb, var(--lesson-raw, #ff005a) 40%, #140f00); }
