.course-page,
.course-learning-page,
.course-certificate-page,
.course-syllabus-page,
.course-workbook-page {
    --course-ink: #0f172a;
    --course-brand: #2f7a7b;
    font-family: "Open Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
}

.course-blueprint-grid {
    background-image:
        linear-gradient(rgba(148, 163, 184, .09) 1px, transparent 1px),
        linear-gradient(90deg, rgba(148, 163, 184, .09) 1px, transparent 1px);
    background-size: 28px 28px;
    mask-image: linear-gradient(to bottom, #000 15%, transparent 95%);
}

.course-hero-chip {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 999px;
    padding: 6px 12px;
    background: rgba(255, 255, 255, .06);
}

.course-hero-offer {
    display: inline-flex;
    align-items: baseline;
    gap: 10px;
    border: 1px solid rgba(94, 225, 223, .35);
    border-radius: 12px;
    padding: 9px 13px;
    background: rgba(94, 225, 223, .1);
    text-decoration: none;
    transition: border-color .2s ease, background-color .2s ease, transform .2s ease;
}
.course-hero-offer:hover { border-color: rgba(94, 225, 223, .75); background: rgba(94, 225, 223, .16); transform: translateY(-1px); text-decoration: none; }
.course-hero-offer strong { flex: 0 0 auto; color: #99f6e4; font-size: 18px; white-space: nowrap; }
.course-hero-offer span { color: #cbd5e1; font-size: 12px; font-weight: 700; }

.course-hero-visual {
    overflow: hidden;
    border: 1px solid rgba(148, 163, 184, .3);
    border-radius: 22px;
    background: rgba(15, 23, 42, .86);
    box-shadow: 0 38px 90px rgba(0, 0, 0, .35);
    backdrop-filter: blur(14px);
}

.course-hero-visual__header,
.course-hero-visual__footer {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 13px 18px;
    color: #94a3b8;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
}

.course-hero-visual__header { border-bottom: 1px solid rgba(148, 163, 184, .2); justify-content: space-between; }
.course-hero-visual__footer { border-top: 1px solid rgba(148, 163, 184, .2); }
.course-status-dot { width: 8px; height: 8px; border-radius: 50%; background: #34d399; box-shadow: 0 0 0 4px rgba(52, 211, 153, .12); }
.course-hero-visual svg { display: block; width: 100%; height: auto; padding: 8px; }

.course-eyebrow {
    margin: 0;
    color: #2d7172;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.course-check-list { display: grid; gap: 12px; padding: 0; list-style: none; }
.course-check-list li { position: relative; padding-left: 30px; color: #334155; font-size: 15px; line-height: 1.6; }
.course-check-list li::before { content: "✓"; position: absolute; left: 0; top: 1px; display: grid; width: 20px; height: 20px; place-items: center; border-radius: 50%; color: #fff; background: #378e8f; font-size: 12px; font-weight: 900; }

/* Course player */
.course-learning-layout { min-height: calc(100vh - 82px); background: #f8fafc; }
.course-learning-shell { display: grid; grid-template-columns: minmax(0, 1fr); width: min(100%, 1920px); min-height: calc(100vh - 82px); margin: 0 auto; }
.course-sidebar { min-width: 0; border-right: 1px solid #e2e8f0; background: #fff; }
.course-sidebar__inner { position: sticky; top: 82px; min-width: 0; max-width: 100%; max-height: calc(100vh - 82px); overflow-y: auto; padding: 26px 22px; }
.course-module-link { display: grid; grid-template-columns: 34px 1fr; gap: 12px; padding: 12px; border: 1px solid transparent; border-radius: 12px; color: #475569; text-decoration: none; transition: .15s ease; }
.course-module-link:hover { color: #0f172a; background: #f8fafc; }
.course-module-link[aria-current="page"] { border-color: #a8eaeb; color: #1f4e4f; background: #ecfbfb; }
.course-module-link.is-locked { color: #94a3b8; }
.course-module-number { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 9px; background: #e2e8f0; font-size: 12px; font-weight: 900; }
.course-module-link.is-complete .course-module-number { color: #fff; background: #2f7a7b; }
.course-module-link[aria-current="page"] .course-module-number { color: #fff; background: #2f7a7b; }
.course-module-meta { display: block; margin-top: 3px; color: #94a3b8; font-size: 11px; font-weight: 700; }
.course-progress-track { height: 8px; overflow: hidden; border-radius: 999px; background: #e2e8f0; }
.course-progress-track > span { display: block; height: 100%; border-radius: inherit; background: #47b8b8; }

.course-learning-main { min-width: 0; padding: 30px 24px 70px; }
.course-lesson-card { width: 100%; margin: 0 auto; overflow: hidden; border: 1px solid #e2e8f0; border-radius: 20px; background: #fff; box-shadow: 0 18px 50px rgba(15, 23, 42, .07); }
.course-lesson-header { padding: 34px 44px 30px; border-bottom: 1px solid #e2e8f0; background: linear-gradient(135deg, #f8fafc, #ecfbfb); }
.course-lesson-body { padding: 42px 44px; }
.course-lesson-copy { color: #334155; font-size: 16px; line-height: 1.78; }
.course-lesson-copy .course-lead { margin: 0 0 30px; color: #334155; font-size: 19px; line-height: 1.65; }
.course-lesson-copy h2 { margin: 38px 0 14px; color: #0f172a; font-size: 25px; line-height: 1.25; }
.course-lesson-copy h3 { color: #0f172a; }
.course-lesson-copy > p { max-width: 90ch; }
.course-lesson-copy p { margin: 0 0 18px; }
.course-lesson-copy ul,
.course-lesson-copy ol { display: grid; gap: 10px; margin: 0 0 24px; padding-left: 24px; }
.course-lesson-copy li { padding-left: 5px; }
.course-lesson-copy a { color: #2d7172; }

.course-callout { margin: 28px 0; border-left: 5px solid #47b8b8; border-radius: 0 14px 14px 0; padding: 20px 22px; background: #ecfbfb; }
.course-callout strong { display: block; margin-bottom: 6px; color: #1f4e4f; font-size: 16px; }
.course-callout p:last-child,
.course-callout ol:last-child { margin-bottom: 0; }
.course-callout--warning { border-left-color: #f59e0b; background: #fffbeb; }
.course-callout--warning strong { color: #92400e; }
.course-callout--check { border-left-color: #10b981; background: #ecfdf5; }
.course-callout--check strong { color: #065f46; }
.course-callout--method { border-left-color: #8b5cf6; background: #f5f3ff; }
.course-callout--method strong { color: #5b21b6; }

.course-table-wrap { margin: 24px 0; overflow-x: auto; border: 1px solid #e2e8f0; border-radius: 14px; -webkit-overflow-scrolling: touch; }
.course-table-wrap table { width: 100%; border-collapse: collapse; font-size: 14px; line-height: 1.55; }
.course-table-wrap th { padding: 13px 16px; color: #475569; background: #f8fafc; text-align: left; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }
.course-table-wrap td { padding: 14px 16px; border-top: 1px solid #e2e8f0; vertical-align: top; }
.course-table-scroll-hint { margin:20px 0 -14px; color:#526b73; font-size:12px; line-height:1.5; }
.course-table-scroll-hint[hidden] { display:none; }
@media print { .course-table-scroll-hint { display:none; } }

.course-equation { display: flex; flex-direction: column; align-items: center; gap: 6px; margin: 26px 0; border: 1px solid #cbd5e1; border-radius: 14px; padding: 20px; color: #0f172a; background: #f8fafc; text-align: center; }
.course-equation span { font-family: Georgia, "Times New Roman", serif; font-size: 26px; }
.course-equation small { color: #64748b; font-family: "Open Sans", sans-serif; font-size: 12px; }
.course-equation--stacked span + span { margin-top: 7px; }

.course-calculation-grid { display: grid; gap: 12px; margin: 24px 0; }
.course-calculation-grid article { border: 1px solid #e2e8f0; border-radius: 13px; padding: 17px; background: #fff; }
.course-calculation-grid article > span { display: block; margin-bottom: 7px; color: #64748b; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.course-calculation-grid strong { display: block; color: #0f172a; font-size: 16px; }
.course-calculation-grid small { display: block; margin-top: 5px; color: #2f7a7b; font-weight: 700; }
.course-figure { margin: 28px 0; overflow: hidden; border: 1px solid #e2e8f0; border-radius: 16px; background: #fff; }
.course-figure svg { display: block; width: 100%; height: auto; padding: 12px; }
.course-figure figcaption { border-top: 1px solid #e2e8f0; padding: 13px 17px; color: #64748b; background: #f8fafc; font-size: 12px; line-height: 1.6; }
.course-inline-cta { display: inline-flex; align-items: center; border-radius: 9px; padding: 10px 14px; color: #fff !important; background: #2f7a7b; font-size: 14px; font-weight: 800; text-decoration: none; }
.course-inline-cta:hover { background: #1f4e4f; }

.course-visual-section { margin: 34px 0 42px; border: 1px solid #cbd5e1; border-radius: 20px; padding: 26px; background: linear-gradient(145deg, #f8fafc 0%, #fff 58%, #ecfbfb 100%); }
.course-visual-section__header { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 12px 24px; margin-bottom: 22px; }
.course-visual-section__header h2 { margin: 4px 0 0; }
.course-visual-section__header p { max-width: 62ch; margin: 0; color: #64748b; font-size: 14px; }
.course-beam-atlas { display: grid; gap: 14px; }
.course-beam-card { overflow: hidden; border: 1px solid #dbe4ea; border-radius: 16px; background: rgba(255,255,255,.94); box-shadow: 0 8px 24px rgba(15,23,42,.05); }
.course-beam-card__heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px 0; }
.course-beam-card__heading h3 { margin: 0; color: #0f172a; font-size: 16px; }
.course-beam-card__heading span { border-radius: 999px; padding: 4px 8px; color: #2d7172; background: #ecfbfb; font-size: 10px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.course-beam-card svg { display: block; width: 100%; height: 132px; padding: 6px 12px 0; }
.course-beam-card dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 0; border-top: 1px solid #e2e8f0; }
.course-beam-card dl > div { padding: 11px 13px 13px; }
.course-beam-card dl > div + div { border-left: 1px solid #e2e8f0; }
.course-beam-card dt { color: #64748b; font-size: 9px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.course-beam-card dd { margin: 4px 0 0; color: #334155; font-size: 12px; line-height: 1.45; }
.course-beam-atlas.course-beam-atlas--detailed { grid-template-columns: minmax(0, 1fr); gap: 20px; }
.course-beam-card--detailed { display: flex; min-width: 0; flex-direction: column; }
.course-beam-card--detailed .course-beam-card__heading { padding: 17px 18px; }
.course-beam-card--detailed .course-beam-card__heading h3 { font-size: 19px; }
.course-beam-card__visual { display: block; min-height: 0; margin: 0; overflow: hidden; border-block: 1px solid #e2e8f0; background: #f8fafc; }
.course-beam-card__visual img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: contain; }
.course-beam-card__body { display: grid; flex: 1; gap: 14px; padding: 18px; }
.course-beam-card__body > p { max-width: none; margin: 0; color: #475569; font-size: 13px; line-height: 1.6; }
.course-beam-card__body > p strong { display: block; margin-bottom: 3px; color: #0f172a; font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.course-beam-card__formula { border-radius: 12px; padding: 14px 15px; color: #e2e8f0; background: #0f172a; }
.course-beam-card__formula > span { display: block; margin-bottom: 7px; color: #7dd3d4; font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.course-beam-card__formula p { margin: 0; color: #f8fafc; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 12px; line-height: 1.75; }
.course-beam-card__body > .course-beam-card__caution { border-left: 4px solid #f59e0b; border-radius: 0 10px 10px 0; padding: 11px 13px; color: #78350f; background: #fffbeb; }
.course-beam-card__link { align-self: end; border-top: 1px solid #e2e8f0; padding-top: 12px; font-size: 12px; font-weight: 800; text-decoration: none; }
.course-beam-card__link:hover { text-decoration: underline; }
.course-visual-section__note { margin: 22px 0 0; border-radius: 12px; padding: 14px 16px; color: #475569; background: rgba(255,255,255,.88); font-size: 13px; line-height: 1.65; }
.course-visual-section__note strong { color: #0f172a; }

.course-support-principle { display: grid; margin: 28px 0 38px; overflow: hidden; border: 1px solid #cbd5e1; border-radius: 20px; background: #fff; box-shadow: 0 12px 30px rgba(15,23,42,.06); }
.course-support-principle__copy { padding: 24px; }
.course-support-principle__copy h3 { margin: 6px 0 10px; font-size: 22px; line-height: 1.3; }
.course-support-principle__copy > ol { display: grid; gap: 10px; margin: 20px 0; padding: 0; list-style: none; }
.course-support-principle__copy li { display: flex; align-items: center; gap: 12px; padding: 11px 13px; border: 1px solid #e2e8f0; border-radius: 12px; background: #f8fafc; }
.course-support-principle__copy li > span { display: grid; flex: 0 0 auto; width: 30px; height: 30px; place-items: center; border-radius: 9px; color: #fff; background: #2f7a7b; font-size: 12px; font-weight: 900; }
.course-support-principle__copy li strong,
.course-support-principle__copy li small { display: block; }
.course-support-principle__copy li strong { color: #0f172a; font-size: 13px; }
.course-support-principle__copy li small { margin-top: 2px; color: #64748b; font-size: 11px; line-height: 1.45; }
.course-support-principle__copy aside { border-left: 4px solid #8b5cf6; border-radius: 0 10px 10px 0; padding: 12px 14px; color: #4c1d95; background: #f5f3ff; }
.course-support-principle__copy aside strong { display: block; font-size: 12px; }
.course-support-principle__copy aside p { margin: 4px 0 0; font-size: 11px; line-height: 1.55; }
.course-support-principle__figure { display: flex; min-width: 0; flex-direction: column; justify-content: center; margin: 0; border-top: 1px solid #e2e8f0; padding: 20px; background: linear-gradient(145deg,#f8fafc,#ecfbfb); }
.course-support-principle__figure > svg { display: block; width: 100%; height: auto; }
.course-support-principle__figure figcaption { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 18px; margin-top: 12px; color: #64748b; font-size: 10px; line-height: 1.5; }
.course-support-principle__figure figcaption span { display: inline-flex; align-items: center; gap: 5px; }
.course-support-principle__figure figcaption i { width: 9px; height: 9px; border-radius: 50%; background: #2f7a7b; }
.course-support-principle__figure figcaption i.is-restrained { background: #b66a19; }

.course-support-profiles { margin: 34px 0 40px; }
.course-support-profiles__header { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 12px 24px; margin-bottom: 18px; }
.course-support-profiles__header h3 { margin: 5px 0 0; font-size: 22px; }
.course-support-profiles__header > p { max-width: 60ch; margin: 0; color: #64748b; font-size: 13px; line-height: 1.6; }
.course-support-profiles__grid { display: grid; gap: 18px; }
.course-support-card { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid #cbd5e1; border-radius: 18px; background: #fff; box-shadow: 0 10px 26px rgba(15,23,42,.06); }
.course-support-card > header { display: grid; grid-template-columns: auto 90px minmax(0,1fr); align-items: center; gap: 8px 12px; padding: 17px 18px; background: #f8fafc; }
.course-support-card > header > span { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 9px; color: #1f4e4f; background: #ccfbf1; font-size: 10px; font-weight: 900; }
.course-support-card > header > div { grid-row: span 2; }
.course-support-card > header > div svg { display: block; width: 90px; height: auto; }
.course-support-card > header h4 { align-self: end; margin: 0; color: #0f172a; font-size: 17px; }
.course-support-card > header p { grid-column: 3; align-self: start; margin: 0; color: #64748b; font-size: 11px; line-height: 1.5; }
.course-support-card > figure { margin: 0; border-block: 1px solid #e2e8f0; padding: 10px; background: #fff; }
.course-support-card > figure svg { display: block; width: 100%; height: auto; }
.course-support-card > dl { display: grid; margin: 0; }
.course-support-card > dl > div { padding: 12px 15px; border-bottom: 1px solid #e2e8f0; }
.course-support-card dt { color: #64748b; font-size: 9px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.course-support-card dd { margin: 4px 0 0; color: #334155; font-size: 11px; line-height: 1.5; }
.course-support-card dd strong { color: #1f4e4f; font-weight: 800; }
.course-support-card__question { margin: 14px 15px 0; border-radius: 11px; padding: 12px 13px; background: #0f172a; }
.course-support-card__question span { display: block; color: #7dd3d4; font-size: 9px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.course-support-card__question p { margin: 4px 0 0; color: #f8fafc; font-size: 11px; line-height: 1.5; }
.course-support-card > .course-support-card__caution { margin: 12px 15px 15px; border-left: 4px solid #f59e0b; border-radius: 0 9px 9px 0; padding: 10px 12px; color: #78350f; background: #fffbeb; font-size: 10px; line-height: 1.55; }
.course-support-card__caution strong { display: block; margin-bottom: 2px; font-size: 9px; letter-spacing: .07em; text-transform: uppercase; }
.course-free-end-note { display: grid; gap: 8px 20px; margin-top: 18px; border: 1px dashed #94a3b8; border-radius: 15px; padding: 17px 19px; background: #f8fafc; }
.course-free-end-note span { color: #b45309; font-size: 9px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.course-free-end-note h4 { margin: 2px 0 0; color: #0f172a; font-size: 16px; }
.course-free-end-note p { margin: 0; color: #475569; font-size: 12px; line-height: 1.6; }

.course-worked-example { margin: 34px 0; overflow: hidden; border: 1px solid #94a3b8; border-radius: 20px; background: #fff; box-shadow: 0 16px 34px rgba(15,23,42,.07); }
.course-worked-example__header { display: flex; flex-wrap: wrap; align-items: start; justify-content: space-between; gap: 16px; padding: 22px 24px; color: #e2e8f0; background: #0f172a; }
.course-worked-example__header h2,
.course-worked-example__header h3 { margin: 3px 0 0; color: #fff; }
.course-worked-example__header p { max-width: 62ch; margin: 0; color: #cbd5e1; font-size: 13px; line-height: 1.55; }
.course-worked-example__label { color: #7dd3d4; font-size: 10px; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.course-worked-example__body { padding: 24px; }
.course-worked-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 18px; }
.course-worked-case { border: 1px solid #dbe4ea; border-radius: 15px; padding: 18px; background: #f8fafc; }
.course-worked-case h3 { margin: 0 0 3px; color: #0f172a; font-size: 17px; }
.course-worked-case > p { margin: 0 0 14px; color: #64748b; font-size: 12px; line-height: 1.5; }
.course-worked-case svg { display: block; width: 100%; height: 120px; margin-bottom: 12px; border-radius: 10px; background: #fff; }
.course-worked-case .course-boundary-schematic { height: auto; max-width: 560px; margin-inline: auto; aspect-ratio: 390 / 270; padding: 6px; }
.course-worked-case dl { display: grid; gap: 8px; margin: 0; }
.course-worked-case dl div { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; border-top: 1px solid #e2e8f0; padding-top: 8px; }
.course-worked-case dt { color: #64748b; font-size: 11px; font-weight: 700; }
.course-worked-case dd { margin: 0; color: #0f172a; font-family: ui-monospace,SFMono-Regular,Menlo,monospace; font-size: 12px; font-weight: 800; text-align: right; }
.course-worked-example__takeaway { margin: 18px 0 0; border-left: 4px solid #47b8b8; padding: 12px 15px; color: #334155; background: #ecfbfb; font-size: 13px; line-height: 1.6; }

.course-figure--engineering { background: linear-gradient(180deg,#fff,#f8fafc); }
.course-figure--engineering figcaption { display: flex; align-items: flex-start; gap: 10px; color: #475569; font-size: 13px; }
.course-figure--engineering figcaption::before { content: "FIGURE"; flex: 0 0 auto; border-radius: 999px; padding: 3px 7px; color: #1f4e4f; background: #ccfbf1; font-size: 9px; font-weight: 900; letter-spacing: .08em; }
.course-lesson-nav { width: 100%; }

.course-review-grid { display: grid; gap: 12px; margin: 25px 0; }
.course-review-grid article { border: 1px solid #e2e8f0; border-radius: 13px; padding: 18px; }
.course-review-grid span { color: #2f7a7b; font-family: ui-monospace, monospace; font-size: 12px; font-weight: 900; }
.course-review-grid h3 { margin: 5px 0; font-size: 16px; }
.course-review-grid p { margin: 0; font-size: 13px; line-height: 1.55; }

.course-checkpoint { margin-top: 34px; border-top: 1px solid #e2e8f0; padding-top: 28px; }
.course-question { margin-top: 18px; border: 1px solid #e2e8f0; border-radius: 14px; padding: 19px; }
.course-question legend { float:left; width:100%; margin:0 0 12px; padding:0; color:#0f172a; font-weight:800; line-height:1.5; }
.course-question legend + .course-answer { clear:both; }
.course-answer { display: flex; align-items: flex-start; gap: 10px; margin-top: 10px; border-radius: 9px; padding: 10px; color: #475569; cursor: pointer; }
.course-answer:hover { background: #f8fafc; }
.course-answer input { margin-top: 4px; accent-color: #2f7a7b; }
.course-flash { margin-bottom: 22px; border-radius: 12px; padding: 14px 16px; font-size: 14px; font-weight: 700; }
.course-flash--success { color: #065f46; background: #ecfdf5; }
.course-flash--error { color: #991b1b; background: #fef2f2; }

.course-time-plan { margin: 0 0 30px; border: 1px solid #cbd5e1; border-radius: 14px; padding: 18px; background: #f8fafc; }
.course-time-plan > strong { display: block; color: #0f172a; font-size: 14px; }
.course-time-plan > div { display: grid; gap: 8px; margin-top: 12px; }
.course-time-plan span { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-left: 3px solid #47b8b8; padding: 7px 10px; color: #475569; background: #fff; font-size: 13px; }
.course-time-plan b { color: #334155; }
.course-time-plan small { flex: 0 0 auto; color: #2f7a7b; font-weight: 800; }
.course-solution { margin: 1rem 0 1.5rem; border: 1px solid #cbd5e1; border-radius: 14px; background: #f8fafc; overflow: hidden; }
.course-solution summary { cursor: pointer; padding: 1rem 1.15rem; font-weight: 800; color: #0f172a; list-style-position: inside; }
.course-solution[open] summary { border-bottom: 1px solid #e2e8f0; background: #fff; }
.course-solution .course-calculation-grid { padding: 1rem; }

@media (min-width: 720px) {
    .course-calculation-grid,
    .course-review-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .course-beam-atlas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .course-support-card > dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .course-support-card > dl > div:nth-child(odd) { border-right: 1px solid #e2e8f0; }
    .course-free-end-note { grid-template-columns: minmax(150px,.28fr) minmax(0,1fr); align-items: center; }
}

@media (min-width: 900px) {
    .course-support-profiles__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
    .course-learning-shell { grid-template-columns: 290px minmax(0, 1fr); }
    .course-learning-main { padding: 32px 28px 80px; }
}

@media (min-width: 1280px) {
    .course-beam-atlas { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .course-beam-atlas.course-beam-atlas--detailed { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .course-beam-atlas--detailed .course-beam-card--detailed:last-child { display: grid; grid-column: 1 / -1; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); grid-template-areas: "heading heading" "visual body"; }
    .course-beam-atlas--detailed .course-beam-card--detailed:last-child .course-beam-card__heading { grid-area: heading; }
    .course-beam-atlas--detailed .course-beam-card--detailed:last-child .course-beam-card__visual { grid-area: visual; align-self: start; height: auto; border-right: 1px solid #e2e8f0; }
    .course-beam-atlas--detailed .course-beam-card--detailed:last-child .course-beam-card__body { grid-area: body; }
    .course-time-plan > div { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .course-time-plan span { min-height: 58px; }
}

@media (min-width: 1440px) {
    .course-support-principle { grid-template-columns: minmax(380px,.8fr) minmax(0,1.2fr); }
    .course-support-principle__figure { border-top: 0; border-left: 1px solid #e2e8f0; }
    .course-support-profiles__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1023px) {
    .course-sidebar { border-right: 0; border-bottom: 1px solid #e2e8f0; }
    .course-sidebar__inner { position: static; max-height: none; }
    .course-sidebar__modules { display: grid; min-width: 0; max-width: 100%; grid-auto-flow: column; grid-auto-columns: minmax(245px, 1fr); overflow-x: auto; overscroll-behavior-inline: contain; padding-bottom: 8px; }
}

@media (max-width: 639px) {
    .course-lesson-header,
    .course-lesson-body { padding: 23px 20px; }
    .course-learning-main { padding: 20px 12px 55px; }
    .course-lesson-copy h2 { font-size: 22px; }
    .course-table-wrap table { min-width: 620px; }
    .course-visual-section { margin-inline: -8px; padding: 18px; }
    .course-worked-example { margin-inline: -8px; }
    .course-worked-example__body { padding: 18px; }
    .course-support-principle,
    .course-support-profiles { margin-inline: -8px; }
    .course-support-principle__copy,
    .course-support-principle__figure { padding: 18px; }
    .course-support-card > header { grid-template-columns: auto 78px minmax(0,1fr); padding-inline: 14px; }
    .course-support-card > header > div svg { width: 78px; }
}

/* Certificate and workbook */
.course-document { width: min(100% - 32px, 1050px); margin: 34px auto; border: 1px solid #cbd5e1; padding: 44px; background: #fff; box-shadow: 0 20px 55px rgba(15, 23, 42, .1); }
.course-certificate { min-height: 700px; border: 10px double #2f7a7b; padding: 50px; text-align: center; }
.course-certificate__name { margin: 28px auto 18px; border-bottom: 1px solid #94a3b8; padding: 0 15px 10px; color: #0f172a; font-family: Georgia, serif; font-size: clamp(30px, 5vw, 52px); }
.course-document-toolbar { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 24px; }
.course-document-note { margin: 0 0 20px; font-size: 13px; line-height: 1.7; color: #475569; }

@media print {
    #site-header,
    #site-footer,
    .course-document-toolbar { display: none !important; }
    .course-document-note { display: none; }
    body { background: #fff !important; }
    .course-document { width: 100%; margin: 0; border: 0; padding: 0; box-shadow: none; }
    .course-certificate { min-height: 0; border-width: 5px; padding: 20px 28px; break-inside: avoid; }
    .course-certificate > img { width: 155px !important; }
    .course-certificate h1 { margin-top: 8px !important; font-size: 28px !important; line-height: 1.2; }
    .course-certificate h2 { margin-top: 10px !important; font-size: 23px !important; line-height: 1.2 !important; }
    .course-certificate > p { margin-top: 12px !important; font-size: 11px !important; line-height: 1.45 !important; }
    .course-certificate > p:last-child { font-size: 9px !important; }
    .course-certificate__name { margin: 14px auto 12px; padding-bottom: 8px; font-size: 34px; line-height: 1.25; overflow-wrap: anywhere; }
    .course-certificate > div[style*="display:flex"] { gap: 8px !important; margin-top: 16px !important; font-size: 11px !important; }
    .course-certificate > div[style*="display:grid"] { margin-top: 22px !important; font-size: 12px; }
    @page { size: letter landscape; margin: 10mm; }
}
.course-record-page { padding:24px 0; }
.course-document.course-record-page { padding: 36px 44px; }
.course-record-page h2 { font-size:26px; margin:16px 0; line-height:1.3; }
.course-record-page h3 { font-size:18px; margin:20px 0 10px; }
.course-record-page p { font-size:14px; line-height:1.7; margin:12px 0; }
.course-record-page table { width:100%; border-collapse:collapse; margin:20px 0; font-size:13px; }
.course-record-page td, .course-record-page th { padding:10px; text-align:left; border:1px solid #cbd5e1; }
.course-eligibility a { color:#245e5f; text-decoration:underline; }
.course-eligibility h3 { margin: 14px 0 20px; font-size: 26px; line-height: 1.3; font-weight: 700; }
.course-eligibility p { margin: 0 0 16px; line-height: 1.75; }
.course-eligibility p:last-child { margin-bottom: 0; color: #475569; }
.course-page [aria-labelledby="course-process-title"] ol { list-style: none; padding: 0; }
.course-page .bg-brand-600,
.course-learning-page .bg-brand-600,
.course-certificate-page .bg-brand-600,
.course-syllabus-page .bg-brand-600,
.course-workbook-page .bg-brand-600 { background-color: #2f7a7b; color: #fff; }
.course-page .bg-brand-600:hover,
.course-learning-page .bg-brand-600:hover { background-color: #245e5f; }
.course-page section[id], .course-learning-page [id] { scroll-margin-top: 116px; }
.course-workshop h3 { margin: 28px 0 12px; font-size: 20px; font-weight: 700; line-height: 1.4; }
.course-solution > div, .course-solution > p, .course-solution > ul { padding: 18px; }
.course-diagram-zoom { display: block; margin: 8px 12px 12px auto; border: 1px solid #94a3b8; border-radius: 8px; padding: 8px 12px; background: #fff; color: #245e5f; font: 700 13px/1.4 system-ui,sans-serif; cursor: pointer; }
.course-figure-dialog { width: min(1100px, calc(100vw - 24px)); max-width: none; max-height: calc(100dvh - 24px); margin: auto; border: 1px solid #94a3b8; border-radius: 14px; padding: 0; background: #fff; color: #0f172a; }
.course-figure-dialog::backdrop { background: rgb(15 23 42 / .75); }
.course-figure-dialog__header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 18px; border-bottom: 1px solid #cbd5e1; }
.course-figure-dialog__header h2 { font: 700 17px/1.4 system-ui,sans-serif; }
.course-figure-dialog__header button { flex: 0 0 auto; border: 1px solid #94a3b8; border-radius: 8px; padding: 8px 14px; font: 700 14px/1.4 system-ui,sans-serif; cursor: pointer; }
.course-figure-dialog__scroll { max-height: calc(100dvh - 160px); overflow: auto; padding: 16px; }
.course-figure-dialog__scroll svg, .course-figure-dialog__scroll img { display: block; width: 100%; height: auto; min-width: var(--figure-natural-width, 700px); margin: 0 auto; }
.course-figure-dialog__hint { padding: 8px 18px 14px; font: 13px/1.5 system-ui,sans-serif; color: #475569; }
@media(max-width:639px) {
    .course-page section[id], .course-learning-page [id] { scroll-margin-top: 96px; }
    .course-worked-case dl div { flex-wrap: wrap; gap: 4px 12px; }
    .course-worked-case dd { overflow-wrap: anywhere; }
    .course-document { padding: 20px; }
    .course-document.course-record-page { padding: 24px 20px; }
    .course-certificate { padding: 24px 14px; border-width: 6px; }
    .course-certificate h1 { font-size: 26px !important; }
    .course-certificate h2 { font-size: 22px !important; }
    .course-equation span { font-size: 23px; }
    .course-document div[style*="grid-template-columns:1fr 1fr"] { grid-template-columns: 1fr !important; gap: 24px !important; }
}
@media screen and (max-width: 639px) {
    .course-workbook-page table, .course-syllabus-page table { display: block; max-width: 100%; overflow-x: auto; }
}
@media print { .course-diagram-zoom, .course-figure-dialog { display: none !important; } }
@media print { .course-record-page, .course-document.course-record-page { padding:0; } .course-record-page p, .course-record-page table, .course-record-page .course-workbook-response { font-size:10pt; } .course-record-page tr { break-inside:avoid; } }

.course-workshop { margin: 48px 0 28px; border-top: 3px solid #2f7a7b; padding-top: 28px; }
.course-activity { margin: 40px 0; padding: 28px; border: 1px solid #b6d6d6; border-radius: 18px; background: #f0f9f9; color: #1e293b; }
.course-activity h2 { margin: 12px 0; font-size: 25px; line-height: 1.3; }
.course-activity p { font-size: 15px; line-height: 1.7; margin: 12px 0; }
.course-activity label { display: block; font-size: 14px; line-height: 1.6; font-weight: 650; margin-top: 18px; }
.course-activity input[type=text], .course-activity input[type=number], .course-activity textarea { display: block; width: 100%; margin-top: 8px; border: 1px solid #94a3b8; background: white; border-radius: 8px; padding: 12px; font: inherit; color: #0f172a; }
.course-activity input[type=number] { max-width: 180px; }
.course-activity textarea { resize: vertical; }
.course-activity input:focus, .course-activity textarea:focus { outline: 3px solid #2f7a7b; outline-offset: 2px; }
.course-activity__numbers { display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 20px; }
.course-activity .course-activity__help { font-size: 13px; color: #475569; }
.course-activity__status { background: #dcfce7; color: #14532d; border-radius: 8px; padding: 12px; }
.course-activity .course-activity__attest { display: flex; gap: 12px; align-items: start; }
.course-activity__attest input { margin-top: 6px; flex: 0 0 auto; }
.course-activity__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.course-activity button { padding: 12px 18px; border: 1px solid #2f7a7b; border-radius: 8px; background: white; color: #245e5f; font-weight: 750; cursor: pointer; }
.course-activity button[name=activity_submit] { background: #2f7a7b; color: white; }
.course-activity ul { padding-left: 20px; list-style: disc; }
.course-workbook-response { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.7; padding: 16px; background: #f8fafc; border-left: 3px solid #2f7a7b; }
.course-outline-nav { display:flex; flex-wrap:wrap; gap:10px; padding:16px 0; border-bottom:1px solid #e2e8f0; margin-bottom:24px; }
.course-outline-nav a { border:1px solid #cbd5e1; border-radius:8px; padding:8px 12px; font-size:13px; color:#245e5f; font-weight:700; }

/* Course editorial system: quiet surfaces, real examples and predictable rhythm. */
.course-front { color:#243449; }
.course-front-container { width:min(1320px, calc(100% - 64px)); margin-inline:auto; }
.course-front-hero { background:#f4f8f8; border-bottom:1px solid #dce6e8; padding:26px 0 56px; }
.course-front-breadcrumb { display:flex; flex-wrap:wrap; gap:10px; font-size:12px; color:#62758a; margin-bottom:36px; }
.course-front-hero__grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:64px; align-items:center; }
.course-front-kicker { font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:#487172; }
.course-catalog-hero { padding:24px 0; background:#f3f8f8; border-bottom:1px solid #dde7e7; }
.course-catalog-hero h1 { max-width:980px; }
.course-catalog-hero .course-catalog-intro { max-width:780px; margin-top:24px; color:#52616a; font-size:18px; line-height:1.8; }
.course-catalog-hero .course-front-breadcrumb { margin-bottom:16px; }
.course-catalog-hero__grid { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:64px; align-items:center; }
.course-front .course-catalog-hero__grid h1 { font-size:clamp(38px,3.7vw,52px); line-height:1.08; margin-top:12px; }
.course-catalog-promise { margin:16px 0 0; color:#2f7a7b; font-size:25px; line-height:1.35; font-weight:600; letter-spacing:-.02em; }
.course-catalog-hero__grid .course-catalog-intro { font-size:17px; line-height:1.8; margin-top:16px; }
.course-catalog-hero__grid .course-front-fine { max-width:540px; }
.course-catalog-hero__outcome { min-width:0; }
.course-certificate-preview { margin:0; min-width:0; }
.course-certificate-preview__label { display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; margin:0 0 12px; color:#526a73; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.course-certificate-preview__label span:last-child { color:#6a7379; font-weight:500; letter-spacing:0; text-transform:none; }
.course-certificate-preview__paper { padding:28px 30px 24px; text-align:center; background:#fff; border:6px double #769c9c; outline:1px solid #dae5e5; outline-offset:7px; margin:8px; box-shadow:0 15px 42px #193c4a0d; }
.course-certificate-preview__logo { display:block; width:150px; height:auto; margin:0 auto 24px; }
.course-certificate-preview__eyebrow { color:#2f7a7b; font-size:10px; font-weight:800; line-height:1.5; letter-spacing:.13em; text-transform:uppercase; }
.course-certificate-preview__heading { color:#172e3d; font:24px/1.25 Georgia,serif; margin:10px 0 22px; }
.course-certificate-preview__intro { color:#617078; font-size:11px; line-height:1.65; margin:0; }
.course-certificate-preview__name { color:#172e3d; font:italic 30px/1.25 Georgia,serif; border-bottom:1px solid #cedddd; margin:10px auto 12px; padding:0 0 10px; max-width:300px; }
.course-certificate-preview__course { color:#172e3d; font-size:18px; line-height:1.35; font-weight:750; margin:10px 0 16px; }
.course-certificate-preview__hours { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:6px 12px; color:#315b60; }
.course-certificate-preview__hours strong { font-size:22px; line-height:1.3; }
.course-certificate-preview__hours span { font-size:11px; }
.course-certificate-preview__code { color:#63757b; font-size:10px; margin:8px 0 22px; }
.course-certificate-preview__signoff { display:grid; grid-template-columns:1fr 1fr; gap:22px; text-align:left; }
.course-certificate-preview__signoff>div { border-top:1px solid #a8bdc2; padding-top:9px; }
.course-certificate-preview__signoff strong { display:block; color:#334e5a; font-size:11px; line-height:1.5; }
.course-certificate-preview__signoff span { display:block; color:#62747d; font-size:9px; line-height:1.5; margin-top:3px; }
.course-certificate-preview__note { color:#617078; font-size:9px; line-height:1.65; margin:18px 0 0; }
.course-certificate-preview figcaption { margin:20px 0 0; color:#62747d; font-size:11px; line-height:1.65; }
.course-certificate-preview-link { display:flex; justify-content:space-between; gap:14px; padding-top:13px; margin-top:14px; border-top:1px solid #cbdcdd; color:#245e5f; font-size:13px; line-height:1.7; font-weight:700; }
.course-certificate-preview-link:hover { text-decoration:underline; text-underline-offset:3px; }
/* The hero uses a compact preview; the course's full certificate section stays spacious. */
.course-catalog-hero .course-front-actions { margin-top:18px; }
:is(.course-catalog-hero,.course-front-hero) .course-certificate-preview__label { margin-bottom:8px; }
:is(.course-catalog-hero,.course-front-hero) .course-certificate-preview__paper { padding:18px 24px 16px; }
:is(.course-catalog-hero,.course-front-hero) .course-certificate-preview__logo { width:124px; margin-bottom:12px; }
:is(.course-catalog-hero,.course-front-hero) .course-certificate-preview__heading { font-size:22px; margin:6px 0 12px; }
:is(.course-catalog-hero,.course-front-hero) .course-certificate-preview__name { font-size:26px; margin:6px auto 8px; padding-bottom:6px; }
:is(.course-catalog-hero,.course-front-hero) .course-certificate-preview__course { margin:8px 0 10px; }
:is(.course-catalog-hero,.course-front-hero) .course-certificate-preview__code { margin:6px 0 12px; }
:is(.course-catalog-hero,.course-front-hero) .course-certificate-preview__note { margin-top:10px; }
:is(.course-catalog-hero,.course-front-hero) .course-certificate-preview figcaption { margin-top:10px; }
:is(.course-catalog-hero,.course-front-hero) .course-certificate-preview-link { margin-top:10px; padding-top:8px; }
.course-catalog-hero + #online-courses { padding-top:40px; }
.course-completion-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:72px; align-items:center; }
.course-completion-copy>p:not(.course-eyebrow):not(.course-front-fine) { margin:20px 0; font-size:15px; line-height:1.8; color:#536575; }
.course-completion-items { margin:24px 0 0; }
.course-completion-items>div { padding:18px 0; border-top:1px solid #d3e1e3; }
.course-completion-items dt { display:flex; gap:12px; color:#213f4b; font-size:16px; line-height:1.5; font-weight:750; }
.course-completion-items dt span { color:#2f7a7b; font-size:12px; padding-top:3px; }
.course-completion-items dd { margin:8px 0 0 29px; color:#536575; font-size:14px; line-height:1.8; }
.course-front-fine a { color:#245e5f; text-decoration:underline; text-underline-offset:3px; }
.course-catalog-feature h3 { margin:10px 0 12px; color:#172e3d; font-size:clamp(28px,3vw,38px); line-height:1.2; letter-spacing:-.03em; font-weight:700; }
.course-catalog-feature h3 a { color:inherit; text-decoration:none; }
.course-catalog-feature h3 a:hover { text-decoration:underline; text-underline-offset:4px; }
.course-catalog-feature .course-front-subtitle { font-size:20px; margin-bottom:18px; }
.course-catalog-feature { display:grid; grid-template-columns:1.1fr 1fr; gap:54px; align-items:center; }
.course-catalog-feature > div > p { line-height:1.8; }
.course-catalog-figure { margin:0; padding:24px; border:1px solid #dce5e8; border-radius:16px; background:#fbfdfd; }
.course-catalog-figure svg { display:block; width:100%; height:auto; margin:18px 0; }
.course-catalog-figure figcaption { color:#52616a; font-size:14px; line-height:1.7; }
.course-catalog-figure figcaption strong { display:block; color:#243449; margin-bottom:6px; }
.course-catalog-next { margin-top:64px; padding-top:38px; border-top:1px solid #dce5e8; }
.course-catalog-next p:last-child { max-width:850px; line-height:1.8; color:#52616a; }
.course-front-small { margin-top:16px; color:#64748b; font-size:12px; line-height:1.7; }
.course-front-small a { color:#2f6c6d; text-decoration:underline; text-underline-offset:3px; }
@media(max-width:900px) { .course-catalog-feature { grid-template-columns:1fr; gap:32px; } }
.course-front h1 { font-size:clamp(38px,4.4vw,62px); line-height:1.06; letter-spacing:-.045em; font-weight:750; color:#172e3d; margin:18px 0 8px; }
.course-front-h1-detail { display:block; font-size:clamp(23px,2.4vw,32px); line-height:1.25; color:#2f7a7b; letter-spacing:-.025em; font-weight:600; margin:14px 0 22px; }
.course-hours-badge { display:flex; align-items:center; gap:20px; margin:22px 0 0; padding:14px 18px; border:1px solid #bdd4d4; border-left:4px solid #2f7a7b; border-radius:8px; background:#edf6f5; }
.course-hours-badge>strong { flex:none; color:#17494b; font-size:44px; line-height:1; letter-spacing:-.04em; white-space:nowrap; }
.course-hours-badge>strong>span { font-size:18px; letter-spacing:0; font-weight:650; }
.course-hours-badge b { display:block; color:#21484b; font-size:14px; line-height:1.5; }
.course-hours-badge div>span { display:block; color:#51676e; font-size:12px; line-height:1.6; margin-top:3px; }
.course-front .course-hours-caption { color:#536575; font-size:12px; line-height:1.6; margin:9px 0 16px; }
.course-hours-caption a,.course-hours-explainer a,.course-cpd-regions a,.course-catalog-reference-intro a,.course-front-package a { color:#245e5f; text-decoration:underline; text-underline-offset:3px; }
.course-hours-explainer { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }
.course-hours-explainer>div>p:not(.course-eyebrow) { font-size:15px; line-height:1.8; margin:14px 0 0; color:#536575; }
.course-hours-plan { border:1px solid #cddcde; border-radius:12px; padding:26px; background:#f8fafb; }
.course-hours-plan h3 { font-size:17px; font-weight:750; line-height:1.5; margin-bottom:16px; }
.course-hours-plan dl>div { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:24px; padding:13px 0; border-bottom:1px solid #dce5e8; font-size:14px; line-height:1.6; }
.course-hours-plan dd { margin:0; font-weight:750; color:#245e5f; white-space:nowrap; }
.course-hours-plan .course-hours-plan__total { border-bottom:0; font-weight:750; }
.course-front .course-hours-plan>p { font-size:12px; line-height:1.75; }
.course-cpd-regions { display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.course-cpd-regions article { padding:28px; border:1px solid #d5e1e3; background:white; border-radius:12px; }
.course-cpd-regions h3,.course-catalog-next h3 { margin:0 0 14px; color:#172e3d; font-size:22px; line-height:1.4; font-weight:700; }
.course-cpd-regions p,.course-catalog-reference-intro { font-size:15px; line-height:1.8; color:#536575; }
.course-cpd-regions p+p { margin-top:18px; }
.course-cpd-regions a { display:block; font-size:13px; margin-top:8px; }
.course-cpd-regions+.course-front-package { margin-top:28px; }
.course-front-subtitle { color:#2f7a7b; font-size:clamp(25px,2.5vw,34px); font-weight:600; letter-spacing:-.025em; margin:0 0 24px; }
.course-front-intro { font-size:18px; line-height:1.75; max-width:550px; color:#475b6b; }
.course-front-facts { display:flex; flex-wrap:wrap; list-style:none; gap:8px 20px; padding:0; margin:22px 0; font-size:13px; font-weight:650; }
.course-front-facts li { display:flex; align-items:center; gap:8px; }
.course-front-facts li::before { content:''; width:5px; height:5px; background:#2f7a7b; border-radius:50%; }
.course-front-offer { display:flex; flex-wrap:wrap; align-items:center; gap:20px; padding-top:22px; margin-top:20px; border-top:1px solid #cfdddd; }
.course-front-offer strong { font-size:44px; line-height:1.2; letter-spacing:-.045em; color:#172e3d; }
.course-front-offer strong span { font-size:15px; letter-spacing:0; font-weight:650; }
.course-front-offer p { font-size:13px; line-height:1.7; color:#536575; }
.course-front-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:23px; }
.course-front-button { display:inline-flex; align-items:center; justify-content:center; gap:12px; padding:14px 22px; border:1px solid #2f7a7b; border-radius:8px; background:#2f7a7b; color:white; font-size:14px; font-weight:750; line-height:1.5; text-decoration:none; }
.course-front-button:hover { background:#245e5f; color:white; text-decoration:none; }
.course-front-button--secondary { color:#245e5f; background:white; border-color:#b9cccc; }
.course-front-button--secondary:hover { color:#245e5f; background:#edf6f6; }
.course-front .course-front-fine { font-size:12px; line-height:1.7; color:#62758a; margin-top:16px; }
.course-front a:focus-visible { outline:3px solid #2f7a7b; outline-offset:4px; }
.course-front-preview { border:1px solid #cddcde; border-radius:14px; background:white; overflow:hidden; box-shadow:0 14px 35px #183c4a0a; }
.course-front-preview header { display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; padding:17px 22px; border-bottom:1px solid #e3eaea; color:#62758a; font-size:11px; }
.course-front-preview header span:first-child { color:#2f7a7b; font-weight:800; text-transform:uppercase; letter-spacing:.1em; }
.course-front-preview__figure { padding:12px 18px 0; }
.course-front-preview svg { display:block; width:100%; height:auto; }
.course-front-preview__question { padding:20px 26px 25px; }
.course-front-preview__question h2 { font-size:20px; line-height:1.4; font-weight:700; letter-spacing:-.02em; }
.course-front-preview__question p { font-size:13px; line-height:1.75; color:#536575; margin-top:10px; }
.course-front-preview details { border-top:1px solid #e3eaea; margin-top:15px; padding-top:15px; }
.course-front summary { cursor:pointer; font-weight:700; color:#245e5f; line-height:1.6; }
.course-front-preview summary { font-size:13px; }
.course-front-jump { border-bottom:1px solid #e2e8f0; background:white; }
.course-front-jump > div { display:flex; flex-wrap:wrap; gap:12px 32px; padding-block:17px; }
.course-front-jump a { font-size:13px; font-weight:650; color:#475b6b; text-decoration:none; }
.course-front-jump a:hover { color:#245e5f; text-decoration:underline; }
.course-front-section { padding:72px 0; }
.course-front-section--muted { background:#f7f9fa; border-block:1px solid #e2e8f0; }
.course-front-section--compact { padding:44px 0; }
.course-front-section-heading { max-width:730px; margin-bottom:35px; }
.course-front h2 { font-weight:700; }
.course-front-section h2 { margin:12px 0 16px; font-size:clamp(27px,3vw,38px); line-height:1.2; letter-spacing:-.03em; color:#172e3d; }
.course-front-section-heading > p:last-child, .course-front-enroll > div > p, .course-front-eligibility > div > p, .course-front-author p, .course-front-faq > div > p { font-size:15px; line-height:1.8; color:#536575; }
.course-front-project { display:grid; grid-template-columns:1fr 1fr; border:1px solid #ccdadd; border-radius:12px; overflow:hidden; }
.course-front-project__brief { padding:35px; background:#eff6f6; }
.course-front-project__brief h3 { margin:14px 0; color:#172e3d; font-size:27px; letter-spacing:-.03em; font-weight:700; }
.course-front-project__brief p { margin:16px 0 0; font-size:15px; line-height:1.8; }
.course-front-project__steps { list-style:none; margin:0; padding:30px 35px; }
.course-front-project__steps li { display:flex; gap:18px; padding:15px 0; }
.course-front-project__steps li+li { border-top:1px solid #e2e8f0; }
.course-front-project__steps li > span { font-size:12px; font-weight:800; color:#487172; padding-top:3px; }
.course-front-project__steps h3 { font-size:17px; font-weight:700; margin-bottom:7px; }
.course-front-project__steps p, .course-front-fit p { font-size:14px; line-height:1.75; color:#536575; }
.course-front-fit { display:grid; grid-template-columns:1fr 1fr; gap:40px; margin-top:30px; }
.course-front-fit h3 { margin-bottom:10px; font-size:15px; font-weight:750; }
.course-front-curriculum { border-block:1px solid #cfdade; }
.course-front-curriculum article { display:grid; grid-template-columns:45px minmax(0,1fr) 70px; gap:22px; padding:25px 0; }
.course-front-curriculum article+article { border-top:1px solid #dce4e8; }
.course-front-module-number { font-family:ui-monospace,monospace; font-size:18px; color:#69848b; padding-top:2px; }
.course-front-curriculum h3 { font-size:18px; font-weight:700; color:#172e3d; }
.course-front-curriculum p { font-size:14px; line-height:1.7; margin-top:7px; color:#536575; }
.course-front-curriculum .course-front-evidence { font-size:13px; color:#2f6264; }
.course-front-evidence strong { font-weight:750; margin-right:8px; }
.course-front-curriculum a { display:inline-block; font-size:13px; color:#245e5f; font-weight:700; margin-top:11px; }
.course-front-duration { font-size:12px; font-weight:700; color:#536575; text-align:right; padding-top:5px; }
.course-front-reference { display:flex; flex-wrap:wrap; justify-content:space-between; gap:18px; margin-top:24px; font-size:12px; line-height:1.6; color:#62758a; }
.course-front-reference a, .course-front-author a { color:#245e5f; font-weight:700; }
.course-front-process { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:35px; padding:0; margin:0; list-style:none; }
.course-front-process li { border-top:2px solid #79aaaa; padding-top:20px; }
.course-front-process li > span { font-size:12px; color:#487172; font-weight:750; }
.course-front-process h3 { font-size:20px; font-weight:700; margin:14px 0 12px; letter-spacing:-.02em; }
.course-front-process p, .course-front-package p { font-size:14px; line-height:1.8; color:#536575; }
.course-front-package { display:grid; grid-template-columns:230px 1fr; gap:25px; padding:25px 30px; background:#f3f7f7; border-left:3px solid #7caeaf; margin-top:35px; }
.course-front-package h3 { font-size:17px; font-weight:700; }
.course-front-eligibility { display:grid; grid-template-columns:.85fr 1.15fr; gap:80px; }
.course-front-eligibility .course-eligibility h3 { font-size:19px; margin:0 0 20px; }
.course-front-eligibility .course-eligibility p { font-size:13px; line-height:1.85; }
.course-front-author { display:grid; grid-template-columns:1.5fr 1fr; gap:50px; align-items:center; }
.course-front-author h2 { font-size:25px; }
.course-front-author a { display:block; margin:14px 0; font-size:13px; }
.course-front-enroll { display:grid; grid-template-columns:minmax(0,1fr) 380px; gap:100px; align-items:start; }
.course-front-enroll .course-check-list { margin-top:25px; }
.course-front-price { padding:30px; border:1px solid #c7d8d8; background:white; border-radius:12px; }
.course-front-price .course-front-offer { margin:20px 0 12px; border:0; padding:0; }
.course-front-price .course-front-offer strong { font-size:56px; }
.course-front-price > p { font-size:13px; color:#536575; }
.course-front-price .course-front-button { width:100%; margin-top:23px; }
.course-front-price__preview { display:block; text-align:center; color:#245e5f; font-size:13px; font-weight:700; margin-top:17px; }
.course-front-price .course-front-fine { border-top:1px solid #e2e8f0; padding-top:16px; }
.course-front-faq { display:grid; grid-template-columns:.75fr 1.25fr; gap:80px; }
.course-front-faq details { padding:20px 0; border-bottom:1px solid #dce4e8; }
.course-front-faq details:first-child { border-top:1px solid #dce4e8; }
.course-front-faq summary { font-size:15px; color:#243449; }
.course-front-faq details p { font-size:14px; line-height:1.85; color:#536575; margin:14px 0 0; }
.course-study-plan { margin:0 0 25px; padding:14px 18px; border:1px solid #dce4e8; border-radius:8px; background:#f8fafb; font-size:13px; }
.course-study-plan summary { cursor:pointer; color:#536575; font-weight:650; }
.course-study-plan ol { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; list-style:none; padding:18px 0 0; margin:0; }
.course-study-plan li { display:flex; gap:12px; justify-content:space-between; line-height:1.6; }
.course-study-plan b { color:#2f7a7b; white-space:nowrap; }
.course-section-index { margin:0 0 26px; font-size:13px; line-height:1.6; }
.course-section-index summary { font-weight:700; cursor:pointer; color:#245e5f; }
.course-section-index ol { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 28px; padding:18px 0 5px 20px; list-style:decimal; }
.course-section-index a { color:#475b6b; }
.course-lesson-copy > p, .course-lesson-copy > ul, .course-lesson-copy > ol { max-width:90ch; }
.course-lesson-copy > h2 { margin-top:44px; padding-top:8px; font-weight:700; letter-spacing:-.02em; }
.course-figure--engineering { max-width:950px; margin:28px auto; }
.course-figure--engineering figcaption { display:block; }
.course-figure--engineering figcaption::before { display:inline-block; margin-right:8px; }
.course-table-wrap caption { caption-side:top; text-align:left; padding:14px 16px; color:#334155; background:#f8fafc; font-size:13px; font-weight:700; line-height:1.5; }
.course-reference-note { color:#64748b; font-size:13px; }
.course-reference-note a { text-decoration:underline; text-underline-offset:3px; }
.course-boundary-schematic { max-width:600px; }
.course-worked-grid { grid-template-columns:minmax(0,1fr); }
.course-worked-case { padding:22px; display:grid; grid-template-columns:minmax(0,1.3fr) minmax(230px,.7fr); grid-template-areas:"title title" "intro intro" "figure data" "zoom data"; column-gap:24px; align-items:start; }
.course-worked-case > h3 { grid-area:title; }
.course-worked-case > p { grid-area:intro; }
.course-worked-case > svg { grid-area:figure; }
.course-worked-case > .course-diagram-zoom { grid-area:zoom; }
.course-worked-case > dl { grid-area:data; margin-top:28px; }
.course-worked-case:not(:has(> dl)) { display:block; }
.course-worked-case:not(:has(> dl)) > svg { max-width:700px; }
.course-workshop h2 { font-weight:700; letter-spacing:-.02em; }
.course-lesson-copy > h3 { margin:30px 0 12px; font-weight:700; line-height:1.4; }
@media screen {
    .course-syllabus-page .course-document h2 { margin:30px 0 12px; font-size:24px; font-weight:700; line-height:1.3; }
    .course-syllabus-page .course-document ul { padding-left:20px; line-height:1.7; }
    .course-syllabus-page .course-document li + li { margin-top:12px; }
    .course-syllabus-page .course-document td { line-height:1.6; }
    .course-syllabus-page .course-document a { color:#2f6c6d; text-decoration:underline; text-underline-offset:3px; }
}
.course-support-profiles__grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,430px),1fr)); }
.course-worked-case h3 { font-weight:700; }
.course-worked-case dl div { display:block; }
.course-worked-case dd { margin:6px 0 0; font-size:16px; }
.course-worked-example__header { background:#eff6f6; color:#243449; border-bottom:1px solid #d5e4e4; }
.course-worked-example__header h2 { color:#172e3d; font-weight:700; }
.course-worked-example__header p { color:#536575; }
.course-worked-example__label { color:#487172; }
.course-beam-card__formula { background:#eff6f6; color:#243449; border:1px solid #d5e4e4; }
.course-beam-card__formula p { color:#243449; }
.course-beam-card__formula > span { color:#487172; }
@media(max-width:1023px) {
    .course-front-hero__grid, .course-hours-explainer { grid-template-columns:1fr; gap:32px; }
    .course-catalog-hero__grid, .course-completion-grid { grid-template-columns:1fr; gap:40px; }
    .course-catalog-hero__outcome, .course-completion-grid>.course-certificate-preview { width:100%; max-width:640px; justify-self:center; }
    .course-front-eligibility, .course-front-enroll, .course-front-faq { gap:40px; }
    .course-front-enroll { grid-template-columns:1fr 340px; }
}
@media(max-width:767px) {
    .course-front-container { width:calc(100% - 36px); }
    .course-front-hero { padding-bottom:32px; }
    .course-front-breadcrumb { margin-bottom:26px; }
    .course-catalog-hero { padding:20px 0 24px; }
    .course-catalog-hero__grid { gap:28px; }
    .course-catalog-hero .course-certificate-preview__paper { padding-inline:16px; }
    .course-catalog-promise { font-size:21px; }
    .course-catalog-hero__grid .course-catalog-intro { font-size:16px; }
    .course-certificate-preview__paper { padding:22px 16px 20px; }
    .course-certificate-preview__heading { font-size:22px; }
    .course-certificate-preview__signoff { gap:16px; }
    .course-certificate-preview__signoff strong { font-size:10px; }
    .course-certificate-preview__code { font-size:9px; }
    .course-front-hero__grid, .course-front-project, .course-front-fit, .course-front-process, .course-front-package, .course-front-eligibility, .course-front-author, .course-front-enroll, .course-front-faq, .course-hours-explainer, .course-cpd-regions { grid-template-columns:1fr; gap:28px; }
    .course-hours-badge { gap:14px; padding:12px; }
    .course-hours-badge>strong { font-size:38px; }
    .course-hours-badge>strong>span { font-size:16px; }
    .course-hours-badge b { font-size:13px; }
    .course-hours-plan,.course-cpd-regions article { padding:22px; }
    .course-front-section { padding:44px 0; }
    .course-front-intro { font-size:16px; }
    .course-front-preview__question { padding:20px; }
    .course-front-preview__figure { padding:12px 2px 0; }
    .course-front-jump > div { gap:12px 20px; }
    .course-front-jump a { font-size:12px; }
    .course-front-project__brief, .course-front-project__steps { padding:23px; }
    .course-front-project { gap:0; }
    .course-front-curriculum article { grid-template-columns:25px minmax(0,1fr) 48px; gap:10px; }
    .course-front-curriculum h3 { font-size:16px; }
    .course-front-duration { font-size:11px; }
    .course-front-package { padding:22px; gap:10px; }
    .course-study-plan ol, .course-section-index ol { grid-template-columns:1fr; }
    .course-worked-case { display:block; padding:18px; }
}
@media(max-width:400px) { .course-front-actions { flex-direction:column; } .course-front-offer { gap:12px; } .course-front-offer p { font-size:12px; } }
@media(max-width:640px) { .course-activity { padding:18px; } .course-activity__numbers { grid-template-columns:1fr; gap:0; } .course-activity__actions button { width:100%; } }
@media print { .course-activity__actions { display:none; } .course-workbook-response { background:white; } .course-document { max-width:none; } }
@media print {
    .course-workbook-page .workbook-page { padding-top: 0 !important; }
    .course-workbook-page h1 { font-size: 28px !important; line-height: 1.15 !important; }
    .course-workbook-page h2 { margin: 14px 0 8px !important; font-size: 20px !important; line-height: 1.25; }
    .course-workbook-page h3 { margin: 14px 0 6px !important; font-size: 15px !important; line-height: 1.3; }
    .course-workbook-page h1, .course-workbook-page h2, .course-workbook-page h3 { break-after: avoid; }
    .course-workbook-page p { font-size: 10pt !important; line-height: 1.4 !important; orphans: 3; widows: 3; }
    .course-workbook-page .course-record-page p { margin: 8px 0; }
    .course-workbook-page table { margin: 14px 0 !important; }
    .course-workbook-page th, .course-workbook-page td { padding: 7px !important; font-size: 9pt; line-height: 1.35; }
    .course-workbook-page tr { break-inside: avoid; }
    .course-workbook-page thead { display: table-header-group; }
    .course-workbook-page .course-eligibility p { font-size: 9pt !important; }
    .course-workbook-page .course-workbook-response { padding: 12px; font-size: 10pt; line-height: 1.45; orphans: 3; widows: 3; }
    .course-workbook-page .course-workbook-sketch { height: 70px !important; break-inside: avoid; }
}

.course-save-status{font-size:.875rem;line-height:1.6;color:#334155;background:#f1f5f9;border-radius:8px;padding:10px 14px;min-height:42px}

.course-policy{max-width:960px;margin:0 auto;padding:64px 24px 88px;line-height:1.8}.course-policy h1{font-size:clamp(32px,5vw,48px);font-weight:750;line-height:1.15;margin:16px 0 24px}.course-policy h2{font-size:24px;font-weight:700;line-height:1.3;margin:30px 0 14px}.course-policy p{margin:14px 0}.course-policy a:not(.course-front-button){color:#236869;text-decoration:underline;text-underline-offset:3px}.course-policy ul{list-style:disc;padding-left:24px}.course-dashboard-card{border:1px solid #dce4e8;border-radius:18px;background:#fff;padding:24px;margin:28px 0}.course-dashboard-card h2:first-child{margin-top:0}.course-dashboard-modules{list-style:none;padding:0;margin-top:24px}.course-dashboard-modules li{display:flex;justify-content:space-between;gap:18px;border-top:1px solid #e2e8f0;padding:14px 0}.course-dashboard-modules span{font-size:13px;color:#64748b;text-align:right}@media(max-width:600px){.course-dashboard-modules li{display:block}.course-dashboard-modules span{display:block;text-align:left}.course-policy{padding-top:32px}.course-dashboard-card{padding:18px}}

.course-front-hero{padding-top:28px;padding-bottom:40px}.course-front-hero h1{font-size:clamp(34px,3.6vw,49px)}.course-front-h1-detail{font-size:.48em;margin-top:10px}.course-front-intro{font-size:18px;line-height:1.65}.course-front-section{padding-top:54px;padding-bottom:54px}.course-front-section--compact{padding-top:36px;padding-bottom:36px}.course-front-section-heading{margin-bottom:26px}.course-sidebar-help{font-size:13px;margin-top:20px;text-decoration:underline}.course-front-author h2{font-size:26px}.course-front-author{gap:28px}@media(max-width:700px){.course-front-section{padding-top:36px;padding-bottom:36px}.course-front-hero{padding-top:20px}.course-front-h1-detail{font-size:.55em}.course-front-preview{margin-top:10px}}

/* Lead with hours and completion evidence; keep worked examples below the offer. */
.course-front-hero__outcome { min-width:0; }
.course-front-worked-example { display:grid; grid-template-columns:1fr 1fr; align-items:center; margin-top:30px; }
.course-front-worked-example header { grid-column:1/-1; }
.course-front-worked-example .course-front-preview__question h2 { margin:0; font-size:clamp(20px,2vw,26px); line-height:1.35; }
@media(max-width:1000px) { .course-front-hero__outcome { width:100%; max-width:640px; justify-self:center; } }
@media(max-width:700px) { .course-front-worked-example { grid-template-columns:1fr; } }

.course-dashboard-certificate{border-color:#b6d4d1;background:#eff7f5}
.course-dashboard-hours{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;border-block:1px solid #dce4e8;margin:22px 0;padding:20px 0}.course-dashboard-hours dt{font-size:12px;line-height:1.5;color:#536575}.course-dashboard-hours dd{margin:8px 0 0;color:#245e5f;font-size:26px;line-height:1.2;font-weight:750}
.course-dashboard-record-note{font-size:13px;color:#536575}
@media(max-width:600px){.course-dashboard-hours{grid-template-columns:1fr;gap:16px}.course-dashboard-hours>div{display:flex;align-items:center;justify-content:space-between;gap:16px}.course-dashboard-hours dd{flex:none;margin:0;font-size:23px;white-space:nowrap;text-align:right}}
