/* Lift Academy (/learn/). Builds on engineering-pages.css and loler-pages.css.
   Every rule is scoped to the Academy shell, so no other page is affected. Corners stay square. */
.page-engineering #main.lh-page { --lh-red-soft: #fdf3f5; --lh-green: #23633c; --lh-green-soft: #eef6f0; --lh-faint: #a6adba; }
/* Set by the generator around "(c)", which Manrope would otherwise draw as a copyright sign. */
.page-engineering #main.lh-page .lh-noliga { font-variant-ligatures: no-common-ligatures; }
.page-engineering #main.lh-page .lh-nowrap { white-space: nowrap; }

/* Breadcrumb, kicker and meta line */
.page-engineering #main.lh-page .lh-breadcrumb ol { display: flex; flex-wrap: wrap; list-style: none; margin: 0 0 36px; padding: 0; font-size: 14px; line-height: 1.6; color: var(--ep-muted); }
.page-engineering #main.lh-page .lh-breadcrumb li + li::before { content: "/"; margin: 0 10px; color: var(--lh-faint); }
.page-engineering #main.lh-page .lh-breadcrumb a { text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--lh-faint); }
.page-engineering #main.lh-page .lh-breadcrumb a:hover { text-decoration-color: currentColor; }
.page-engineering #main.lh-page .lh-breadcrumb [aria-current] { color: var(--ep-ink); font-weight: 600; }
.page-engineering #main.lh-page .lh-kicker { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin: 0 0 22px; color: var(--ep-ink); font-size: 14px; font-weight: 700; line-height: 1.5; }
.page-engineering #main.lh-page .lh-kicker::before { content: ""; width: 8px; height: 8px; flex: 0 0 8px; background: var(--ep-red); }
.page-engineering #main.lh-page .lh-sep { color: var(--ep-red); font-weight: 700; }
.page-engineering #main.lh-page .lh-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin-top: 30px; font-size: 14px; line-height: 1.6; }
.page-engineering #main.lh-page .lh-status { display: inline-block; padding: 2px 9px; border: 1px solid var(--ep-line); background: #fff; color: var(--ep-muted); font-size: 12px; font-weight: 600; line-height: 1.6; white-space: nowrap; }

/* Lesson and course hero */
.page-engineering #main.lh-page .lh-hero-grid { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(0,.7fr); gap: 72px; align-items: start; }
.page-engineering #main.lh-page .lh-hero-copy { min-width: 0; }
.page-engineering #main.lh-page .lh-takeaways { padding: 30px 32px 22px; background: var(--ep-soft); }
.page-engineering #main.lh-page .lh-takeaways h2 { font-size: 20px; line-height: 1.3; letter-spacing: -.02em; }
.page-engineering #main.lh-page .lh-takeaways ul { list-style: none; margin: 18px 0 0; padding: 0; }
.page-engineering #main.lh-page .lh-takeaways li { position: relative; padding: 14px 0 14px 22px; border-top: 1px solid var(--ep-line); color: var(--ep-ink); font-size: 15px; line-height: 1.6; }
.page-engineering #main.lh-page .lh-takeaways li a { text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--lh-faint); }
.page-engineering #main.lh-page .lh-takeaways li a:hover { text-decoration-color: currentColor; }
.page-engineering #main.lh-page .lh-takeaways li::before { content: ""; position: absolute; left: 0; top: 23px; width: 7px; height: 7px; background: var(--ep-red); }
.page-engineering #main.lh-page .lh-hero + .lp-guide { padding-top: 0; }
.page-engineering #main.lh-page .lh-hero + .lp-guide > .ep-wrap { padding-top: 64px; border-top: 1px solid var(--ep-line); }

/* Lesson article */
.page-engineering #main.lh-page .lp-article > section > h3 { font-size: 22px; }
.page-engineering #main.lh-page .lp-article > section > .ep-list { max-width: 74ch; }
/* Text-heavy blocks keep the reading width of the paragraphs; tables and explorers use the full column. */
.page-engineering #main.lh-page .lp-article :is(.lh-callout, .lh-steps, .lh-quiz, .lh-sources, .lh-complete) { max-width: 74ch; }

/* Tables (pattern from lift-type-pages.css) */
.page-engineering #main.lh-page .lh-table-wrap { margin-top: 30px; }
.page-engineering #main.lh-page .lh-table { width: 100%; border-collapse: collapse; table-layout: fixed; background: #fff; font-size: 16px; line-height: 1.6; text-align: left; }
.page-engineering #main.lh-page .lh-table caption { caption-side: top; padding: 0 0 14px; color: var(--ep-ink); font-size: 16px; font-weight: 700; text-align: left; }
.page-engineering #main.lh-page .lh-table :is(th,td) { padding: 18px 22px; border: 1px solid var(--ep-line); vertical-align: top; }
.page-engineering #main.lh-page .lh-table th { color: var(--ep-ink); font-weight: 700; }
.page-engineering #main.lh-page .lh-table thead th { background: var(--ep-soft); font-size: 14px; }
.page-engineering #main.lh-page .lh-table thead th:first-child { width: 36%; }
.page-engineering #main.lh-page .lh-table td { color: var(--ep-muted); }
.page-engineering #main.lh-page .lh-table--wide { font-size: 15px; }
.page-engineering #main.lh-page .lh-table--wide :is(th,td) { padding: 16px 18px; }
.page-engineering #main.lh-page .lh-table--wide thead th:first-child { width: 20%; }
/* Shared styles underline links in paragraphs only; lists and tables in lessons need the same cue. */
.page-engineering #main.lh-page .lp-article :is(.ep-list li, .lh-table td) a:not([class]) { text-decoration: underline; text-underline-offset: 4px; }

/* Callouts */
.page-engineering #main.lh-page .lh-callout { margin-top: 32px; padding: 24px 28px; border-left: 3px solid var(--ep-ink); background: var(--ep-soft); }
.page-engineering #main.lh-page .lh-callout--safety { border-left-color: var(--ep-red); background: var(--lh-red-soft); }
.page-engineering #main.lh-page .lh-callout--note { border-left-color: var(--lh-faint); }
.page-engineering #main.lh-page .lh-callout p { margin-top: 10px; color: var(--ep-ink); font-size: 16px; }
.page-engineering #main.lh-page .lh-callout .lh-callout-label { margin: 0; color: var(--ep-red); font-size: 14px; font-weight: 700; }
.page-engineering #main.lh-page .lh-callout .lh-callout-cite { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--ep-line); color: var(--ep-muted); font-size: 14px; }

/* Numbered steps (pattern from lift-faults.css) */
.page-engineering #main.lh-page .lh-steps { list-style: none; margin: 24px 0 0; padding: 0; }
.page-engineering #main.lh-page .lh-steps > li { display: grid; grid-template-columns: 32px minmax(0,1fr); gap: 22px; padding-block: 24px; border-top: 1px solid var(--ep-line); }
.page-engineering #main.lh-page .lh-steps > li:last-child { border-bottom: 1px solid var(--ep-line); }
.page-engineering #main.lh-page .lh-step-num { padding-top: 3px; color: var(--ep-red); font-size: 14px; font-weight: 600; line-height: 1.6; font-variant-numeric: tabular-nums; }
.page-engineering #main.lh-page .lp-article .lh-steps h3 { margin: 0; font-size: 19px; line-height: 1.4; letter-spacing: -.02em; }
.page-engineering #main.lh-page .lh-steps p { margin-top: 6px; font-size: 16px; }

/* Static figures */
.page-engineering #main.lh-page .lh-figure { margin: 32px 0 0; }
/* Figures render at the diagram's own width, so its labels keep their design size, and shrink to fit narrow screens. */
.page-engineering #main.lh-page .lh-figure > svg { display: block; max-width: 100%; height: auto; }
.page-engineering #main.lh-page :is(.lh-figure, .lh-explorer-figure) figcaption { margin-top: 14px; color: var(--ep-muted); font-size: 14px; line-height: 1.6; }
.page-engineering #main.lh-page .lh-describe { margin-top: 12px; font-size: 15px; }
.page-engineering #main.lh-page .lh-describe summary { cursor: pointer; color: var(--ep-ink); font-weight: 600; }

/* Explorer: a diagram or document with numbered parts, and a matching list */
.page-engineering #main.lh-page .lh-explorer { display: grid; grid-template-columns: minmax(0,.92fr) minmax(0,1.08fr); gap: 48px; align-items: start; margin-top: 36px; }
.page-engineering #main.lh-page .lh-explorer--document { grid-template-columns: minmax(0,1.04fr) minmax(0,.96fr); }
.page-engineering #main.lh-page .lh-explorer-figure { position: sticky; top: calc(var(--header-height,140px) + 24px); min-width: 0; margin: 0; }
.page-engineering #main.lh-page .lh-explorer--document .lh-explorer-figure { position: static; }
.page-engineering #main.lh-page .lh-explorer-stage { position: relative; }
.page-engineering #main.lh-page .lh-explorer-stage > svg { display: block; width: 100%; height: auto; }
.page-engineering #main.lh-page .lh-explorer-stage svg [data-part] { transition: opacity .2s, stroke .2s; }
.page-engineering #main.lh-page .lh-explorer-stage svg.has-active [data-part]:not(.is-active) { opacity: .26; }
.page-engineering #main.lh-page .lh-explorer-stage svg [data-part].is-active { stroke: var(--ep-red); }
.page-engineering #main.lh-page .lh-explorer.is-enhanced .lh-explorer-stage svg [data-part] { cursor: pointer; }
.page-engineering #main.lh-page .lh-explorer.is-enhanced .lh-svg-markers { display: none; }
.page-engineering #main.lh-page .lh-explorer-list { min-width: 0; list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ep-line); }
.page-engineering #main.lh-page .lh-explorer-list > li { padding: 18px 0; border-bottom: 1px solid var(--ep-line); scroll-margin-top: calc(var(--header-height,140px) + 24px); }
.page-engineering #main.lh-page .lp-article .lh-explorer-head { display: grid; grid-template-columns: 32px minmax(0,1fr); gap: 14px; align-items: baseline; margin: 0; font-size: 18px; line-height: 1.45; letter-spacing: -.02em; }
.page-engineering #main.lh-page .lh-explorer-num { color: var(--ep-red); font-size: 14px; font-weight: 600; font-variant-numeric: tabular-nums; }
.page-engineering #main.lh-page .lh-explorer-desc { padding-left: 46px; }
.page-engineering #main.lh-page .lh-explorer-desc p { margin-top: 8px; font-size: 15px; line-height: 1.7; }
.page-engineering #main.lh-page .lh-explorer.is-enhanced .lh-explorer-list > li { padding: 0; }
.page-engineering #main.lh-page .lp-article .lh-explorer.is-enhanced .lh-explorer-head { display: block; }
.page-engineering #main.lh-page .lh-explorer.is-enhanced .lh-explorer-desc { display: none; padding-bottom: 22px; }
.page-engineering #main.lh-page .lh-explorer.is-enhanced li.is-open .lh-explorer-desc { display: block; }
.page-engineering #main.lh-page .lh-explorer.is-enhanced .lh-explorer-desc > p:first-child { margin-top: 0; }
.page-engineering #main.lh-page .lh-explorer-toggle { display: grid; grid-template-columns: 32px minmax(0,1fr) 22px; gap: 14px; align-items: center; width: 100%; min-height: 60px; margin: 0; padding: 14px 0; border: 0; background: none; color: var(--ep-ink); font: 700 18px/1.45 "Manrope", sans-serif; letter-spacing: -.02em; text-align: left; cursor: pointer; }
.page-engineering #main.lh-page .lh-explorer-toggle::after { content: "+"; color: var(--ep-muted); font-size: 24px; font-weight: 400; line-height: 1; text-align: center; }
.page-engineering #main.lh-page .lh-explorer-toggle[aria-expanded="true"]::after { content: "−"; }
.page-engineering #main.lh-page .lh-explorer-toggle:hover,
.page-engineering #main.lh-page .lh-explorer-list > li.is-active .lh-explorer-toggle { color: var(--ep-red); }
.page-engineering #main.lh-page .lh-hotspots { position: absolute; inset: 0; pointer-events: none; }
.page-engineering #main.lh-page .lh-hotspot { position: absolute; z-index: 1; display: grid; place-items: center; width: 28px; height: 28px; margin: 0; padding: 0; transform: translate(-50%,-50%); border: 1.5px solid var(--ep-ink); background: #fff; color: var(--ep-ink); font: 700 12px/1 "Manrope", sans-serif; font-variant-numeric: tabular-nums; cursor: pointer; pointer-events: auto; transition: background .15s, border-color .15s, color .15s; }
.page-engineering #main.lh-page .lh-explorer--document .lh-hotspot { position: static; z-index: auto; flex: 0 0 24px; width: 24px; height: 24px; transform: none; font-size: 11px; }
.page-engineering #main.lh-page .lh-hotspot:hover { border-color: var(--ep-red); color: var(--ep-red); }
.page-engineering #main.lh-page .lh-hotspot[aria-pressed="true"] { border-color: var(--ep-red); background: var(--ep-red); color: #fff; }
.page-engineering #main.lh-page .lh-hotspot:focus-visible { outline-offset: 3px; }
/* The panel repeats the selected part's description beside the diagram on narrow screens, where the list is further down.
   It is aria-hidden: screen readers get the description from the list, or from the live status after a hotspot press. */
.page-engineering #main.lh-page .lh-explorer-panel { display: none; scroll-margin: calc(var(--header-height,140px) + 16px) 0 96px; }
.page-engineering #main.lh-page .lh-explorer-panel p { margin: 0; font-size: 15px; line-height: 1.7; }
.page-engineering #main.lh-page .lh-explorer-panel p + p { margin-top: 8px; }
.page-engineering #main.lh-page .lh-explorer-panel .lh-explorer-panel-title { display: flex; gap: 12px; margin-bottom: 4px; color: var(--ep-ink); font-size: 17px; font-weight: 700; }
.page-engineering #main.lh-page .lh-explorer-panel .lh-explorer-hint { color: var(--ep-ink); font-weight: 600; }

/* Report sheet used by the document explorer */
.page-engineering #main.lh-page .lh-report { border: 1px solid var(--ep-line); background: #fff; font-size: 14px; line-height: 1.55; }
.page-engineering #main.lh-page .lh-report p { margin: 0; }
.page-engineering #main.lh-page .lh-report-head { padding: 20px 24px 18px; border-bottom: 2px solid var(--ep-ink); }
.page-engineering #main.lh-page .lh-report .lh-report-title { color: var(--ep-ink); font-size: 19px; font-weight: 700; letter-spacing: -.02em; }
.page-engineering #main.lh-page .lh-report .lh-report-sub { margin-top: 2px; font-size: 13px; }
.page-engineering #main.lh-page .lh-report .lh-report-flag { display: inline-block; margin-top: 12px; padding: 3px 10px; background: var(--ep-soft); color: var(--ep-ink); font-size: 12px; font-weight: 600; }
.page-engineering #main.lh-page .lh-report-rows { margin: 0; }
.page-engineering #main.lh-page .lh-report-row { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 16px; padding: 11px 24px; border-top: 1px solid var(--ep-line); transition: background .15s; }
.page-engineering #main.lh-page .lh-report-row:first-child { border-top: 0; }
.page-engineering #main.lh-page .lh-report-row.is-active { background: var(--lh-red-soft); }
.page-engineering #main.lh-page .lh-explorer.is-enhanced .lh-report-row { cursor: pointer; }
.page-engineering #main.lh-page .lh-report dt { display: flex; align-items: flex-start; gap: 10px; color: var(--ep-ink); font-weight: 700; }
.page-engineering #main.lh-page .lh-report dd { margin: 0; color: var(--ep-muted); }
.page-engineering #main.lh-page .lh-swatch { display: inline-block; width: 12px; height: 12px; margin-right: 6px; border: 1px solid rgba(17,22,37,.2); vertical-align: -1px; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.page-engineering #main.lh-page .lh-swatch ~ .lh-swatch { margin-left: 6px; }
.page-engineering #main.lh-page .lh-swatch--red { background: #c91d43; }
.page-engineering #main.lh-page .lh-swatch--pink { background: #ef9bb4; }
.page-engineering #main.lh-page .lh-swatch--amber { background: #f0a92e; }
.page-engineering #main.lh-page .lh-swatch--green { background: #2f8a52; }
.page-engineering #main.lh-page .lh-marker { display: inline-grid; place-items: center; flex: 0 0 24px; width: 24px; height: 24px; border: 1.5px solid var(--ep-ink); color: var(--ep-ink); font-size: 11px; font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums; }

/* Stepper: a diagram that walks through a sequence, with a matching list */
.page-engineering #main.lh-page .lh-stepper { display: grid; grid-template-columns: minmax(0,.92fr) minmax(0,1.08fr); gap: 48px; align-items: start; margin-top: 36px; }
.page-engineering #main.lh-page .lh-stepper-figure { position: sticky; top: calc(var(--header-height,140px) + 24px); min-width: 0; margin: 0; }
.page-engineering #main.lh-page .lh-stepper-stage > svg { display: block; width: 100%; height: auto; }
.page-engineering #main.lh-page .lh-stepper-figure figcaption { margin-top: 14px; color: var(--ep-muted); font-size: 14px; line-height: 1.6; }
.page-engineering #main.lh-page .lh-stepper:not(.is-enhanced) .lh-stepper-stage [data-show]:not([data-static]),
.page-engineering #main.lh-page .lh-stepper.is-enhanced .lh-stepper-stage [data-show]:not(.is-shown) { display: none; }
.page-engineering #main.lh-page .lh-stepper-stage svg [data-step] { transition: stroke .2s, fill .2s; }
.page-engineering #main.lh-page .lh-stepper-stage svg [data-step].is-active { stroke: var(--ep-red); }
.page-engineering #main.lh-page .lh-stepper-stage svg text[data-step].is-active,
.page-engineering #main.lh-page .lh-stepper-stage svg [data-step].is-active text { fill: var(--ep-red); }
.page-engineering #main.lh-page .lh-stepper-list { min-width: 0; list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ep-line); }
.page-engineering #main.lh-page .lh-stepper-list > li { padding: 18px 0; border-bottom: 1px solid var(--ep-line); }
.page-engineering #main.lh-page .lp-article .lh-stepper-head { display: grid; grid-template-columns: 32px minmax(0,1fr); gap: 14px; align-items: baseline; margin: 0; font-size: 18px; line-height: 1.45; letter-spacing: -.02em; }
.page-engineering #main.lh-page .lh-stepper-num { color: var(--ep-red); font-size: 14px; font-weight: 600; font-variant-numeric: tabular-nums; }
.page-engineering #main.lh-page .lh-stepper-desc { padding-left: 46px; }
.page-engineering #main.lh-page .lh-stepper-desc p { margin-top: 8px; font-size: 15px; line-height: 1.7; }
.page-engineering #main.lh-page .lh-stepper.is-enhanced .lh-stepper-list > li { padding: 0 16px 16px 12px; transition: background .15s; }
.page-engineering #main.lh-page .lh-stepper.is-enhanced .lh-stepper-list > li.is-active { background: var(--ep-soft); }
.page-engineering #main.lh-page .lp-article .lh-stepper.is-enhanced .lh-stepper-head { display: block; }
.page-engineering #main.lh-page .lh-stepper-select { display: grid; grid-template-columns: 32px minmax(0,1fr); gap: 14px; align-items: baseline; width: 100%; margin: 0; padding: 16px 0 0; border: 0; background: none; color: var(--ep-ink); font: 700 18px/1.45 "Manrope", sans-serif; letter-spacing: -.02em; text-align: left; cursor: pointer; }
.page-engineering #main.lh-page .lh-stepper-select:hover,
.page-engineering #main.lh-page .lh-stepper-select[aria-current] { color: var(--ep-red); }
.page-engineering #main.lh-page .lh-stepper-controls { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 12px; align-items: center; margin-top: 18px; }
.page-engineering #main.lh-page .lh-stepper-count { margin: 0; color: var(--ep-ink); font-size: 14px; font-weight: 700; text-align: center; font-variant-numeric: tabular-nums; }
.page-engineering #main.lh-page .lh-stepper-button { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin: 0; padding: 8px 16px; border: 1.5px solid var(--ep-ink); background: #fff; color: var(--ep-ink); font: 700 14px/1.2 "Manrope", sans-serif; cursor: pointer; transition: border-color .15s, color .15s, background .15s; }
.page-engineering #main.lh-page .lh-stepper-button .ep-arrow { width: 18px; height: 18px; flex: 0 0 18px; }
.page-engineering #main.lh-page .lh-stepper-button--next { background: var(--ep-ink); color: #fff; }
.page-engineering #main.lh-page .lh-stepper-button:hover:not([aria-disabled="true"]) { border-color: var(--ep-red); background: var(--ep-red); color: #fff; }
.page-engineering #main.lh-page .lh-stepper-button[aria-disabled="true"] { border-color: var(--ep-line); background: #fff; color: var(--lh-faint); cursor: default; }
.page-engineering #main.lh-page .lh-stepper-panel { display: none; }
.page-engineering #main.lh-page .lh-stepper-panel p { margin: 0; font-size: 15px; line-height: 1.7; }
.page-engineering #main.lh-page .lh-stepper-panel p + p { margin-top: 8px; }
.page-engineering #main.lh-page .lh-stepper-panel .lh-stepper-panel-title { display: flex; gap: 12px; margin-bottom: 4px; color: var(--ep-ink); font-size: 17px; font-weight: 700; }

/* Side-by-side diagrams */
.page-engineering #main.lh-page .lh-compare-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px; align-items: start; }
.page-engineering #main.lh-page .lh-compare-grid--3 { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.page-engineering #main.lh-page .lh-compare-panel { min-width: 0; }
.page-engineering #main.lh-page .lh-compare-panel > svg { display: block; width: 100%; height: auto; }
.page-engineering #main.lh-page .lh-cards { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ep-line); border-left: 1px solid var(--ep-line); }
.page-engineering #main.lh-page .lh-cards > li { min-width: 0; margin: 0; border-right: 1px solid var(--ep-line); border-bottom: 1px solid var(--ep-line); }
.page-engineering #main.lh-page .lh-card { display: flex; flex-direction: column; height: 100%; padding: 18px 18px 20px; color: var(--ep-ink); text-decoration: none; transition: background .15s; }
.page-engineering #main.lh-page a.lh-card:hover { background: var(--ep-soft); color: var(--ep-ink); }
.page-engineering #main.lh-page a.lh-card:hover .lh-card-title { color: var(--ep-red); }
.page-engineering #main.lh-page .lh-card-art svg { display: block; width: 100%; height: auto; }
.page-engineering #main.lh-page .lh-card-title { margin: 14px 0 0; font-size: 17px; line-height: 1.35; }
.page-engineering #main.lh-page .lh-card p { margin: 6px 0 0; color: var(--ep-muted); font-size: 14px; line-height: 1.55; }
.page-engineering #main.lh-page .lh-compare .lh-compare-title { margin: 0 0 16px; padding-bottom: 10px; border-bottom: 2px solid var(--ep-ink); color: var(--ep-ink); font-size: 15px; font-weight: 700; line-height: 1.4; }

/* Photos */
.page-engineering #main.lh-page .lh-photo img { display: block; width: 100%; height: auto; border-radius: 0; background: var(--ep-soft); }
.page-engineering #main.lh-page .lh-photo--narrow img { max-width: 440px; }
.page-engineering #main.lh-page .lh-photo-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px; align-items: start; }
.page-engineering #main.lh-page .lh-photo-panel { min-width: 0; margin: 0; }
.page-engineering #main.lh-page .lh-photo .lh-photo-title { margin: 0 0 16px; padding-bottom: 10px; border-bottom: 2px solid var(--ep-ink); color: var(--ep-ink); font-size: 15px; font-weight: 700; line-height: 1.4; }
.page-engineering #main.lh-page .lh-photo-credit { white-space: nowrap; }

/* Quiz */
.page-engineering #main.lh-page .lh-quiz { list-style: none; margin: 26px 0 0; padding: 0; }
.page-engineering #main.lh-page .lh-question { padding: 28px 0; border-top: 1px solid var(--ep-line); }
.page-engineering #main.lh-page .lh-question:last-child { border-bottom: 1px solid var(--ep-line); }
.page-engineering #main.lh-page .lp-article .lh-question h3 { margin: 0; font-size: 19px; line-height: 1.45; letter-spacing: -.02em; }
.page-engineering #main.lh-page .lh-options { margin: 14px 0 0; padding-left: 24px; color: var(--ep-muted); }
.page-engineering #main.lh-page .lh-options > li + li { margin-top: 6px; }
.page-engineering #main.lh-page .lh-options.is-enhanced { display: grid; gap: 10px; padding: 0; list-style: none; }
.page-engineering #main.lh-page .lh-options.is-enhanced > li + li { margin-top: 0; }
.page-engineering #main.lh-page .lh-option { display: grid; grid-template-columns: 28px minmax(0,1fr); gap: 14px; align-items: center; width: 100%; min-height: 56px; margin: 0; padding: 12px 18px; border: 1px solid var(--ep-line); background: #fff; color: var(--ep-ink); font: 500 16px/1.5 "Manrope", sans-serif; text-align: left; cursor: pointer; transition: border-color .15s, background .15s; }
.page-engineering #main.lh-page .lh-option:hover:not([aria-disabled="true"]) { border-color: var(--ep-ink); }
.page-engineering #main.lh-page .lh-option[aria-disabled="true"] { cursor: default; }
.page-engineering #main.lh-page .lh-option-key { display: grid; place-items: center; width: 28px; height: 28px; border: 1.5px solid currentColor; font-size: 12px; font-weight: 700; }
.page-engineering #main.lh-page .lh-option.is-correct { border-color: var(--lh-green); background: var(--lh-green-soft); color: #17432a; }
.page-engineering #main.lh-page .lh-option.is-wrong { border-color: var(--ep-red); background: var(--lh-red-soft); color: #8f1530; }
.page-engineering #main.lh-page .lh-feedback { margin-top: 14px; color: var(--ep-ink); font-weight: 700; }
.page-engineering #main.lh-page .lh-feedback:empty { margin: 0; }
.page-engineering #main.lh-page .lh-answer { margin-top: 16px; }
.page-engineering #main.lh-page .lh-answer summary { position: relative; display: inline-flex; align-items: center; min-height: 44px; padding-right: 28px; list-style: none; color: var(--ep-ink); font-size: 15px; font-weight: 600; text-decoration: underline; text-underline-offset: 6px; text-decoration-color: var(--lh-faint); cursor: pointer; }
.page-engineering #main.lh-page .lh-answer summary::-webkit-details-marker { display: none; }
/* Out of flow, so the summary's underline does not reach the sign. */
.page-engineering #main.lh-page .lh-answer summary::after { content: "+"; position: absolute; top: 50%; right: 0; transform: translateY(-50%); font-size: 20px; font-weight: 400; line-height: 1; color: var(--ep-muted); }
.page-engineering #main.lh-page .lh-answer[open] summary::after { content: "−"; }
.page-engineering #main.lh-page .lh-answer p { margin-top: 4px; max-width: 70ch; font-size: 15px; }
.page-engineering #main.lh-page .lh-answer strong { color: var(--ep-ink); }

/* Sources and lesson completion */
.page-engineering #main.lh-page .lh-sources { list-style: none; margin: 24px 0 0; padding: 0; counter-reset: lh-source; }
.page-engineering #main.lh-page .lh-sources > li { display: grid; grid-template-columns: 32px minmax(0,1fr); gap: 14px; padding: 16px 0; border-top: 1px solid var(--ep-line); font-size: 15px; line-height: 1.6; counter-increment: lh-source; }
.page-engineering #main.lh-page .lh-sources > li:last-child { border-bottom: 1px solid var(--ep-line); }
.page-engineering #main.lh-page .lh-sources > li::before { content: counter(lh-source, decimal-leading-zero); color: var(--ep-red); font-size: 14px; font-weight: 600; font-variant-numeric: tabular-nums; }
.page-engineering #main.lh-page .lh-sources a { color: var(--ep-ink); font-weight: 700; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--lh-faint); }
.page-engineering #main.lh-page .lh-sources a:hover { color: var(--ep-red); text-decoration-color: currentColor; }
.page-engineering #main.lh-page .lh-source-meta { display: block; margin-top: 2px; color: var(--ep-muted); }
.page-engineering #main.lh-page .lh-complete { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px 32px; margin-top: 56px; padding: 26px 30px; border: 1px solid var(--ep-line); }
.page-engineering #main.lh-page .lh-complete[hidden] { display: none; }
.page-engineering #main.lh-page .lh-complete p { margin: 0; max-width: 48ch; font-size: 15px; }
.page-engineering #main.lh-page .lh-complete.is-complete { border-color: var(--lh-green); background: var(--lh-green-soft); }
.page-engineering #main.lh-page .lh-complete.is-complete p { color: #17432a; }
.page-engineering #main.lh-page .lh-complete.is-complete .lh-complete-button { border-color: var(--lh-green); background: #fff; color: #17432a; }
.page-engineering #main.lh-page .lh-complete.is-complete .lh-complete-button:hover { background: var(--lh-green); color: #fff; }
.page-engineering #main.lh-page .lh-done { display: inline-block; color: var(--lh-green); font-size: 13px; font-weight: 700; white-space: nowrap; }

/* Keep learning: pager and related reading */
.page-engineering #main.lh-page .lh-continue h2 { margin-bottom: 32px; }
.page-engineering #main.lh-page .lh-pager { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.page-engineering #main.lh-page .lh-pager-link { display: flex; flex-direction: column; justify-content: center; min-height: 128px; padding: 24px 28px; border: 1px solid var(--ep-line); background: #fff; color: var(--ep-ink); text-decoration: none; transition: border-color .15s; }
.page-engineering #main.lh-page .lh-pager-link--next { align-items: flex-end; text-align: right; }
.page-engineering #main.lh-page .lh-pager-link:hover { border-color: var(--ep-ink); color: var(--ep-ink); }
.page-engineering #main.lh-page .lh-pager-link:hover .lh-pager-title { color: var(--ep-red); }
.page-engineering #main.lh-page .lh-pager-dir { display: inline-flex; align-items: center; gap: 10px; color: var(--ep-red); font-size: 14px; font-weight: 700; }
.page-engineering #main.lh-page .lh-pager-dir .ep-arrow { width: 20px; height: 20px; flex-basis: 20px; }
.page-engineering #main.lh-page .lh-pager-title { margin-top: 8px; font-size: 21px; font-weight: 700; line-height: 1.35; letter-spacing: -.025em; }
.page-engineering #main.lh-page .lh-pager-meta { margin-top: 4px; color: var(--ep-muted); font-size: 14px; }
.page-engineering #main.lh-page .lh-continue .lh-continue-title { margin: 56px 0 18px; font-size: 21px; }

/* Course page: lesson rows */
.page-engineering #main.lh-page .lh-lessons { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ep-line); }
.page-engineering #main.lh-page .lh-lessons > li { border-bottom: 1px solid var(--ep-line); }
.page-engineering #main.lh-page .lh-lesson-row { display: grid; grid-template-columns: 48px minmax(0,1fr) auto 24px; gap: 24px; align-items: center; padding: 26px 0; color: var(--ep-ink); text-decoration: none; }
.page-engineering #main.lh-page .is-pending .lh-lesson-row { grid-template-columns: 48px minmax(0,1fr) auto; }
.page-engineering #main.lh-page .lh-lesson-num { align-self: start; padding-top: 4px; color: var(--ep-red); font-size: 15px; font-weight: 700; font-variant-numeric: tabular-nums; }
.page-engineering #main.lh-page .lh-lesson-title { display: block; font-size: 21px; font-weight: 700; line-height: 1.4; letter-spacing: -.025em; }
.page-engineering #main.lh-page .lh-lesson-summary { display: block; max-width: 64ch; margin-top: 4px; color: var(--ep-muted); font-size: 15px; line-height: 1.65; }
.page-engineering #main.lh-page .lh-lesson-time { color: var(--ep-muted); font-size: 14px; white-space: nowrap; }
.page-engineering #main.lh-page a.lh-lesson-row:hover .lh-lesson-title { color: var(--ep-red); }
.page-engineering #main.lh-page .is-pending .lh-lesson-title { color: var(--ep-muted); }
.page-engineering #main.lh-page .lh-lesson-title .lh-done { margin-left: 12px; letter-spacing: 0; vertical-align: 2px; }
.page-engineering #main.lh-page .lh-next-course { margin-top: 30px; }

/* Hub */
.page-engineering #main.lh-page .lh-hub-hero .ep-hero-media img { object-position: 50% 40%; }
.page-engineering #main.lh-page .lh-facts { display: flex; flex-wrap: wrap; list-style: none; margin: 40px 0 0; padding: 0; }
.page-engineering #main.lh-page .lh-facts li { padding: 0 28px; border-left: 1px solid var(--ep-line); color: var(--ep-muted); font-size: 14px; line-height: 1.4; }
.page-engineering #main.lh-page .lh-facts li:first-child { padding-left: 0; border-left: 0; }
.page-engineering #main.lh-page .lh-facts strong { display: block; margin-bottom: 4px; color: var(--ep-ink); font-size: 28px; font-weight: 700; line-height: 1.15; letter-spacing: -.04em; }
.page-engineering #main.lh-page .lh-paths { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 40px; }
.page-engineering #main.lh-page .lh-path { min-width: 0; padding-top: 24px; border-top: 2px solid var(--ep-ink); }
.page-engineering #main.lh-page .lh-path .lh-path-audience { margin: 0; color: var(--ep-red); font-size: 14px; font-weight: 700; }
.page-engineering #main.lh-page .lh-path h3 { margin-top: 6px; font-size: 22px; }
.page-engineering #main.lh-page .lh-path ol { list-style: none; margin: 20px 0 0; padding: 0; counter-reset: lh-path; }
.page-engineering #main.lh-page .lh-path li { display: grid; grid-template-columns: 30px minmax(0,1fr); gap: 8px; padding: 13px 0; border-top: 1px solid #d4dae3; font-size: 15px; line-height: 1.5; counter-increment: lh-path; }
.page-engineering #main.lh-page .lh-path li::before { content: counter(lh-path, decimal-leading-zero); color: var(--ep-red); font-size: 13px; font-weight: 600; line-height: 1.75; font-variant-numeric: tabular-nums; }
.page-engineering #main.lh-page .lh-path-item { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.page-engineering #main.lh-page .lh-path-item a { color: var(--ep-ink); font-weight: 700; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--lh-faint); }
.page-engineering #main.lh-page .lh-path-item a:hover { color: var(--ep-red); text-decoration-color: currentColor; }
.page-engineering #main.lh-page .lh-path-pending { color: var(--ep-muted); }
.page-engineering #main.lh-page .lh-courses { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ep-line); border-left: 1px solid var(--ep-line); }
.page-engineering #main.lh-page .lh-courses > li { min-width: 0; border-right: 1px solid var(--ep-line); border-bottom: 1px solid var(--ep-line); }
.page-engineering #main.lh-page .lh-course-tile { display: flex; flex-direction: column; height: 100%; min-height: 272px; padding: 28px 28px 24px; color: var(--ep-ink); text-decoration: none; transition: background .15s; }
.page-engineering #main.lh-page a.lh-course-tile:hover { background: var(--ep-soft); color: var(--ep-ink); }
.page-engineering #main.lh-page a.lh-course-tile:hover h3 { color: var(--ep-red); }
.page-engineering #main.lh-page .lh-course-num { color: var(--ep-red); font-size: 14px; font-weight: 700; font-variant-numeric: tabular-nums; }
.page-engineering #main.lh-page .lh-course-tile h3 { margin-top: 18px; font-size: 22px; line-height: 1.3; }
.page-engineering #main.lh-page .lh-course-tile p { margin-top: 10px; font-size: 15px; line-height: 1.65; }
.page-engineering #main.lh-page .is-pending .lh-course-tile h3 { color: var(--ep-muted); }
.page-engineering #main.lh-page .lh-course-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px 16px; margin-top: auto; padding-top: 24px; font-size: 14px; font-weight: 600; }
.page-engineering #main.lh-page .lh-course-count { display: flex; flex: 1 1 auto; flex-wrap: wrap; gap: 4px 12px; min-width: 0; }
.page-engineering #main.lh-page .lh-course-foot .ep-arrow { flex: 0 0 auto; }
.page-engineering #main.lh-page .lh-featured-grid { display: grid; grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr); gap: 80px; align-items: center; }
.page-engineering #main.lh-page .lh-featured-figure { margin: 0; padding: 28px; border: 1px solid var(--ep-line); background: #fff; }
.page-engineering #main.lh-page .lh-featured-figure > svg { display: block; width: 100%; height: auto; max-height: 620px; }
.page-engineering #main.lh-page .lh-featured-copy { min-width: 0; max-width: 620px; }
.page-engineering #main.lh-page .lh-tools { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.page-engineering #main.lh-page .lh-tool { display: flex; flex-direction: column; min-width: 0; padding: 30px 32px 26px; border: 1px solid var(--ep-line); }
.page-engineering #main.lh-page .lh-tool h3 { font-size: 22px; }
.page-engineering #main.lh-page .lh-tool p { margin-top: 10px; font-size: 16px; }
.page-engineering #main.lh-page .lh-tool-action { margin-top: auto; padding-top: 22px; }
.page-engineering #main.lh-page .lh-terms { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0 48px; margin: 0; }
.page-engineering #main.lh-page .lh-terms > div { padding: 22px 0 24px; border-top: 1px solid #d4dae3; }
.page-engineering #main.lh-page .lh-terms dt { color: var(--ep-ink); font-size: 18px; font-weight: 700; letter-spacing: -.02em; }
.page-engineering #main.lh-page .lh-terms dd { margin: 8px 0 0; color: var(--ep-muted); font-size: 15px; line-height: 1.65; }
.page-engineering #main.lh-page .lh-principles { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 36px; list-style: none; margin: 0; padding: 0; }
.page-engineering #main.lh-page .lh-principles li { min-width: 0; padding-top: 22px; border-top: 2px solid var(--ep-ink); }
.page-engineering #main.lh-page .lh-principles h3 { font-size: 19px; line-height: 1.35; }
.page-engineering #main.lh-page .lh-principles p { margin-top: 10px; font-size: 15px; line-height: 1.65; }

@media (max-width: 1200px) {
  .page-engineering #main.lh-page .lh-hero-grid { gap: 48px; }
  .page-engineering #main.lh-page .lh-courses { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .page-engineering #main.lh-page .lh-course-tile { min-height: 236px; }
  .page-engineering #main.lh-page .lh-principles { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px 40px; }
  .page-engineering #main.lh-page .lh-featured-grid { gap: 48px; }
}
@media (max-width: 1100px) {
  .page-engineering #main.lh-page .lh-explorer,
  .page-engineering #main.lh-page .lh-explorer--document { grid-template-columns: minmax(0,1fr); gap: 28px; }
  .page-engineering #main.lh-page .lh-explorer-figure { position: static; }
  .page-engineering #main.lh-page .lh-explorer:not(.lh-explorer--document) .lh-explorer-stage { max-width: 460px; margin-inline: auto; }
  .page-engineering #main.lh-page .lh-explorer:not(.lh-explorer--document) figcaption { max-width: 460px; margin-inline: auto; }
  .page-engineering #main.lh-page .lh-explorer.is-enhanced .lh-explorer-panel:not([hidden]) { display: block; max-width: 460px; margin: 16px auto 0; padding: 18px 20px; border-left: 3px solid var(--ep-red); background: var(--ep-soft); }
  .page-engineering #main.lh-page .lh-explorer--document.is-enhanced .lh-explorer-panel:not([hidden]) { max-width: none; margin: 0; padding: 0 24px 14px 58px; border-left: 0; background: var(--lh-red-soft); }
  .page-engineering #main.lh-page .lh-stepper { grid-template-columns: minmax(0,1fr); gap: 28px; }
  .page-engineering #main.lh-page .lh-stepper-figure { position: static; max-width: 460px; width: 100%; margin-inline: auto; }
  .page-engineering #main.lh-page .lh-stepper.is-enhanced .lh-stepper-panel { display: block; margin-top: 16px; padding: 18px 20px; border-left: 3px solid var(--ep-red); background: var(--ep-soft); }
}
@media (max-width: 900px) {
  .page-engineering #main.lh-page .lh-breadcrumb ol { margin-bottom: 26px; }
  .page-engineering #main.lh-page .lh-hero-grid { grid-template-columns: minmax(0,1fr); gap: 32px; }
  .page-engineering #main.lh-page .lh-hero + .lp-guide > .ep-wrap { padding-top: 48px; }
  .page-engineering #main.lh-page .lh-paths { grid-template-columns: minmax(0,1fr); gap: 32px; }
  .page-engineering #main.lh-page .lh-featured-grid { grid-template-columns: minmax(0,1fr); gap: 36px; }
  .page-engineering #main.lh-page .lh-featured-figure { max-width: 460px; }
  .page-engineering #main.lh-page .lh-tools { grid-template-columns: minmax(0,1fr); }
  .page-engineering #main.lh-page .lh-terms { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 32px; }
  .page-engineering #main.lh-page .lh-pager { grid-template-columns: minmax(0,1fr); gap: 16px; }
  .page-engineering #main.lh-page .lh-pager-link { min-height: 0; }
  .page-engineering #main.lh-page .lh-continue .lh-continue-title { margin-top: 44px; }
}
/* Printable sheets, such as the blank lift log sheet */
.page-engineering #main.lh-page .lh-printable { margin-top: 30px; }
.page-engineering #main.lh-page .lh-sheet { padding: 24px; border: 1px solid var(--ep-line); background: #fff; color: var(--ep-ink); font-size: 14px; line-height: 1.5; }
.page-engineering #main.lh-page .lh-sheet p { margin: 0; }
.page-engineering #main.lh-page .lh-sheet-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 24px; padding-bottom: 14px; border-bottom: 2px solid var(--ep-ink); }
.page-engineering #main.lh-page .lh-sheet .lh-sheet-title { color: var(--ep-ink); font-size: 19px; font-weight: 700; letter-spacing: -.02em; }
.page-engineering #main.lh-page .lh-sheet .lh-sheet-sub { color: var(--ep-muted); font-size: 13px; }
.page-engineering #main.lh-page .lh-sheet-fields { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 0 24px; margin: 4px 0 0; }
.page-engineering #main.lh-page .lh-sheet-fields > div { display: flex; align-items: flex-end; gap: 10px; min-height: 42px; padding-bottom: 5px; border-bottom: 1px solid var(--ep-line); }
.page-engineering #main.lh-page .lh-sheet-fields dt { flex: none; font-size: 13px; font-weight: 700; }
.page-engineering #main.lh-page .lh-sheet-fields dd { flex: 1; margin: 0; }
.page-engineering #main.lh-page .lh-sheet-scroll { margin-top: 22px; overflow-x: auto; }
.page-engineering #main.lh-page .lh-sheet-table { width: 100%; min-width: 620px; border-collapse: collapse; table-layout: fixed; font-size: 13px; line-height: 1.3; text-align: left; }
.page-engineering #main.lh-page .lh-sheet-table th { padding: 8px 10px; border: 1px solid var(--ep-ink); background: var(--ep-soft); color: var(--ep-ink); font-weight: 700; vertical-align: bottom; overflow-wrap: normal; hyphens: none; }
.page-engineering #main.lh-page .lh-sheet-table td { height: 44px; border: 1px solid var(--ep-muted); }
.page-engineering #main.lh-page .lh-sheet-table th:nth-child(1) { width: 14%; }
.page-engineering #main.lh-page .lh-sheet-table th:nth-child(2) { width: 9%; }
.page-engineering #main.lh-page .lh-sheet-table th:nth-child(3) { width: 30%; }
.page-engineering #main.lh-page .lh-sheet-table th:nth-child(4) { width: 23%; }
.page-engineering #main.lh-page .lh-sheet-table th:nth-child(5) { width: 12%; }
.page-engineering #main.lh-page .lh-sheet-table th:nth-child(6) { width: 12%; }
.page-engineering #main.lh-page .lh-sheet .lh-sheet-key { margin-top: 14px; color: var(--ep-ink); font-size: 13px; }
.page-engineering #main.lh-page .lh-sheet .lh-sheet-foot { margin-top: 6px; color: var(--ep-muted); font-size: 12px; }
.page-engineering #main.lh-page .lh-print-action { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 20px; }
.page-engineering #main.lh-page .lh-print-action[hidden] { display: none; }
@media screen {
  .page-engineering #main.lh-page .lh-print-only { display: none; }
}

/* Checklists: real checkboxes, drawn square, with an optional name box for each column */
.page-engineering #main.lh-page .lh-check-table { width: 100%; margin-top: 18px; border-collapse: collapse; table-layout: fixed; color: var(--ep-ink); font-size: 15px; line-height: 1.45; text-align: left; }
.page-engineering #main.lh-page .lh-check-table :is(th, td) { padding: 8px 12px; border-bottom: 1px solid var(--ep-line); vertical-align: middle; }
.page-engineering #main.lh-page .lh-check-table thead th { padding-top: 4px; padding-bottom: 10px; border-bottom: 2px solid var(--ep-ink); font-size: 13px; font-weight: 700; vertical-align: bottom; }
.page-engineering #main.lh-page .lh-check-table .lh-check-colhead { width: 84px; text-align: center; }
.page-engineering #main.lh-page .lh-check-table--multi .lh-check-colhead { width: 18%; }
.page-engineering #main.lh-page .lh-check-table tbody th { padding-left: 0; font-weight: 500; }
.page-engineering #main.lh-page .lh-check-table tbody td { text-align: center; }
.page-engineering #main.lh-page .lh-check-table .lh-check-group th { padding: 24px 0 8px; border-bottom: 1px solid var(--ep-ink); font-size: 15px; font-weight: 700; }
.page-engineering #main.lh-page .lh-check-group-num { margin-right: 6px; color: var(--ep-red); font-variant-numeric: tabular-nums; }
.page-engineering #main.lh-page .lh-check-col { display: block; }
.page-engineering #main.lh-page .lh-check-name { display: block; width: 100%; min-height: 38px; margin-top: 6px; padding: 6px 8px; border: 0; border-bottom: 1.5px solid var(--ep-ink); border-radius: 0; background: var(--ep-soft); color: var(--ep-ink); font: 500 14px/1.3 "Manrope", sans-serif; text-align: center; }
.page-engineering #main.lh-page .lh-check-name::placeholder { color: var(--ep-muted); opacity: 1; }
.page-engineering #main.lh-page .lh-check-cell { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-width: 44px; min-height: 44px; vertical-align: middle; cursor: pointer; }
.page-engineering #main.lh-page .lh-check-cell input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.page-engineering #main.lh-page .lh-check-box { position: relative; flex: none; width: 22px; height: 22px; border: 1.5px solid var(--ep-ink); background: #fff; transition: border-color .15s; }
.page-engineering #main.lh-page .lh-check-cell:hover .lh-check-box { border-color: var(--ep-red); }
.page-engineering #main.lh-page .lh-check-cell input:checked + .lh-check-box::after { content: ""; position: absolute; left: 6px; top: 1px; width: 6px; height: 12px; border: solid var(--ep-red); border-width: 0 2.5px 2.5px 0; transform: rotate(45deg); }
.page-engineering #main.lh-page .lh-check-cell input:focus-visible + .lh-check-box { outline: 3px solid var(--ep-red); outline-offset: 3px; }
.page-engineering #main.lh-page .lh-check-label { display: none; }
.page-engineering #main.lh-page .lh-check-table tfoot :is(th, td) { padding-top: 14px; border-top: 2px solid var(--ep-ink); border-bottom: 0; font-size: 14px; font-weight: 700; }
.page-engineering #main.lh-page .lh-check-table tfoot th { padding-left: 0; }
.page-engineering #main.lh-page .lh-check-table tfoot td { text-align: center; font-variant-numeric: tabular-nums; white-space: nowrap; }
.page-engineering #main.lh-page .lh-check-table tfoot[hidden] { display: none; }
.page-engineering #main.lh-page .lh-check-clear { display: inline-flex; align-items: center; min-height: 54px; margin: 0; padding: 12px 20px; border: 1.5px solid var(--ep-ink); background: #fff; color: var(--ep-ink); font: 700 15px/1.3 "Manrope", sans-serif; cursor: pointer; transition: border-color .15s, color .15s; }
.page-engineering #main.lh-page .lh-check-clear:hover:not(:disabled) { border-color: var(--ep-red); color: var(--ep-red); }
.page-engineering #main.lh-page .lh-check-clear:disabled { border-color: var(--ep-line); color: var(--lh-faint); cursor: default; }

/* LOLER planner */
.page-engineering #main.lh-page .lh-planner { margin-top: 30px; border: 1px solid var(--ep-line); background: #fff; }
.page-engineering #main.lh-page .lh-planner .lh-planner-nojs { margin: 0; padding: 24px 28px; color: var(--ep-ink); font-size: 16px; }
.page-engineering #main.lh-page .lh-planner-nojs[hidden],
.page-engineering #main.lh-page .lh-planner-form[hidden],
.page-engineering #main.lh-page .lh-planner-result[hidden],
.page-engineering #main.lh-page .lh-planner :is(.lh-planner-error, .lh-planner-compare, .lh-field)[hidden] { display: none; }
.page-engineering #main.lh-page .lh-planner-form { padding: 28px 28px 6px; }
.page-engineering #main.lh-page .lh-field { min-width: 0; margin: 0 0 26px; padding: 0; border: 0; }
.page-engineering #main.lh-page .lh-field > label,
.page-engineering #main.lh-page .lh-field > legend { display: block; margin: 0 0 4px; padding: 0; color: var(--ep-ink); font-size: 16px; font-weight: 700; line-height: 1.45; }
.page-engineering #main.lh-page .lh-planner .lh-field-hint { margin: 0 0 10px; color: var(--ep-muted); font-size: 14px; line-height: 1.55; }
.page-engineering #main.lh-page .lh-field :is(input[type="date"], input[type="number"]) { display: block; width: 100%; max-width: 240px; min-height: 48px; margin: 0; padding: 10px 12px; border: 1.5px solid var(--ep-ink); border-radius: 0; background: #fff; color: var(--ep-ink); font: 600 16px/1.3 "Manrope", sans-serif; }
.page-engineering #main.lh-page .lh-field input[type="number"] { max-width: 120px; }
.page-engineering #main.lh-page .lh-field input[aria-invalid="true"] { border-color: var(--ep-red); background: var(--lh-red-soft); }
.page-engineering #main.lh-page .lh-choice { display: flex; align-items: flex-start; gap: 12px; padding: 8px 0; }
.page-engineering #main.lh-page .lh-choice input { flex: none; width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--ep-ink); cursor: pointer; }
.page-engineering #main.lh-page .lh-choice label { color: var(--ep-ink); font-size: 15px; font-weight: 600; line-height: 1.5; cursor: pointer; }
.page-engineering #main.lh-page .lh-choice-note { display: block; color: var(--ep-muted); font-size: 14px; font-weight: 500; }
.page-engineering #main.lh-page .lh-field.lh-field--months { margin: 4px 0 6px 32px; }
.page-engineering #main.lh-page .lh-planner .lh-planner-error { margin: 0 0 20px; padding: 12px 16px; border-left: 3px solid var(--ep-red); background: var(--lh-red-soft); color: #8f1530; font-size: 15px; font-weight: 600; }
.page-engineering #main.lh-page .lh-planner .lh-planner-submit { margin: 0 0 22px; }
.page-engineering #main.lh-page .lh-planner-result { padding: 26px 28px 28px; border-top: 2px solid var(--ep-ink); background: var(--ep-soft); }
.page-engineering #main.lh-page .lh-planner .lh-planner-label { margin: 0; color: var(--ep-muted); font-size: 14px; font-weight: 700; }
.page-engineering #main.lh-page .lh-planner .lh-planner-date { margin: 4px 0 0; color: var(--ep-ink); font-size: 28px; font-weight: 700; line-height: 1.25; letter-spacing: -.02em; }
.page-engineering #main.lh-page .lh-planner.is-overdue .lh-planner-date { color: var(--ep-red); }
.page-engineering #main.lh-page .lh-planner .lh-planner-status { margin: 10px 0 0; color: var(--ep-ink); font-size: 15px; }
.page-engineering #main.lh-page .lh-planner .lh-planner-compare { margin: 14px 0 0; padding-top: 14px; border-top: 1px solid var(--ep-line); color: var(--ep-ink); font-size: 15px; }
.page-engineering #main.lh-page .lh-planner-result h3 { margin: 28px 0 0; font-size: 16px; }
.page-engineering #main.lh-page .lh-planner-dates { list-style: none; margin: 10px 0 0; padding: 0; border-top: 1px solid var(--ep-line); }
.page-engineering #main.lh-page .lh-planner-dates li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 2px 16px; margin: 0; padding: 10px 0; border-bottom: 1px solid var(--ep-line); font-size: 15px; }
.page-engineering #main.lh-page .lh-planner-num { color: var(--ep-muted); font-weight: 600; }
.page-engineering #main.lh-page .lh-planner-day { color: var(--ep-ink); font-weight: 700; font-variant-numeric: tabular-nums; }
.page-engineering #main.lh-page .lh-planner .lh-planner-note { margin: 14px 0 0; color: var(--ep-muted); font-size: 14px; }

/* Printable examination schedule */
.page-engineering #main.lh-page .lh-sheet-table.lh-sheet-table--schedule th:nth-child(1) { width: 13%; }
.page-engineering #main.lh-page .lh-sheet-table.lh-sheet-table--schedule th:nth-child(2) { width: 33%; }
.page-engineering #main.lh-page .lh-sheet-table.lh-sheet-table--schedule th:nth-child(3),
.page-engineering #main.lh-page .lh-sheet-table.lh-sheet-table--schedule th:nth-child(4),
.page-engineering #main.lh-page .lh-sheet-table.lh-sheet-table--schedule th:nth-child(5) { width: 18%; }
.page-engineering #main.lh-page .lh-sheet-table--schedule tbody th { background: #fff; border-color: var(--ep-muted); text-align: center; font-variant-numeric: tabular-nums; vertical-align: middle; }
.page-engineering #main.lh-page .lh-sheet-table--schedule td { padding: 6px 10px; color: var(--ep-ink); font-weight: 600; vertical-align: middle; }

@media (max-width: 600px) {
  .page-engineering #main.lh-page .lh-sheet { padding: 18px 16px; }
  .page-engineering #main.lh-page .lh-sheet-fields { grid-template-columns: minmax(0,1fr); }
  .page-engineering #main.lh-page .lh-takeaways { padding: 24px 22px 16px; }
  .page-engineering #main.lh-page .lh-meta { margin-top: 24px; }
  .page-engineering #main.lh-page .lh-table { display: block; background: transparent; }
  .page-engineering #main.lh-page .lh-table caption { display: block; }
  .page-engineering #main.lh-page .lh-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
  .page-engineering #main.lh-page .lh-table tbody { display: block; }
  .page-engineering #main.lh-page .lh-table tr { display: grid; grid-template-columns: minmax(0,1fr); padding: 20px 0; border-top: 1px solid var(--ep-line); }
  .page-engineering #main.lh-page .lh-table tr:last-child { border-bottom: 1px solid var(--ep-line); }
  .page-engineering #main.lh-page .lh-table :is(th,td) { display: block; width: auto; padding: 0; border: 0; }
  .page-engineering #main.lh-page .lh-table tbody th { margin-bottom: 8px; font-size: 18px; }
  .page-engineering #main.lh-page .lh-table td::before { content: attr(data-label); display: block; margin-bottom: 2px; color: var(--ep-ink); font-size: 13px; font-weight: 700; }
  .page-engineering #main.lh-page .lh-callout { padding: 20px 20px 20px 22px; }
  .page-engineering #main.lh-page .lh-steps > li { grid-template-columns: 22px minmax(0,1fr); gap: 16px; }
  .page-engineering #main.lh-page .lh-explorer-desc { padding-left: 46px; }
  .page-engineering #main.lh-page .lh-stepper-desc { padding-left: 46px; }
  .page-engineering #main.lh-page .lh-stepper-button { padding: 8px 12px; }
  .page-engineering #main.lh-page :is(.lh-compare-grid, .lh-compare-grid--3) { grid-template-columns: minmax(0,1fr); gap: 36px; }
  .page-engineering #main.lh-page .lh-compare-panel > svg { max-width: 420px; margin-inline: auto; }
  .page-engineering #main.lh-page .lh-photo-grid { grid-template-columns: minmax(0,1fr); gap: 28px; }
  .page-engineering #main.lh-page .lh-cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .page-engineering #main.lh-page .lh-card { padding: 14px 12px 16px; }
  .page-engineering #main.lh-page .lh-card-title { margin-top: 10px; font-size: 15px; }
  .page-engineering #main.lh-page .lh-card p { font-size: 13px; }
  .page-engineering #main.lh-page .lh-report-head { padding: 18px 18px 16px; }
  .page-engineering #main.lh-page .lh-report-row { grid-template-columns: minmax(0,1fr); gap: 4px; padding: 12px 18px; }
  .page-engineering #main.lh-page .lh-report dd { padding-left: 34px; }
  .page-engineering #main.lh-page .lh-explorer--document.is-enhanced .lh-explorer-panel:not([hidden]) { padding: 0 18px 14px 52px; }
  .page-engineering #main.lh-page .lh-option { padding: 12px 14px; font-size: 15px; }
  .page-engineering #main.lh-page .lh-complete { padding: 22px 20px; }
  .page-engineering #main.lh-page .lh-complete .ep-button { width: 100%; }
  .page-engineering #main.lh-page .lh-pager-link { padding: 20px 22px; }
  .page-engineering #main.lh-page .lh-pager-title { font-size: 19px; }
  .page-engineering #main.lh-page .lh-lesson-row,
  .page-engineering #main.lh-page .is-pending .lh-lesson-row { grid-template-columns: 34px minmax(0,1fr) 24px; gap: 8px 14px; padding: 22px 0; }
  .page-engineering #main.lh-page .is-pending .lh-lesson-row { grid-template-columns: 34px minmax(0,1fr); }
  .page-engineering #main.lh-page .lh-lesson-row :is(.lh-lesson-time,.lh-status) { grid-column: 2; grid-row: 2; justify-self: start; }
  .page-engineering #main.lh-page .lh-lesson-row .ep-arrow { grid-column: 3; grid-row: 1 / span 2; }
  .page-engineering #main.lh-page .lh-lesson-title { font-size: 19px; }
  .page-engineering #main.lh-page .lh-facts { margin-top: 32px; }
  .page-engineering #main.lh-page .lh-facts li { padding: 0 18px; }
  .page-engineering #main.lh-page .lh-facts strong { font-size: 24px; }
  .page-engineering #main.lh-page .lh-courses { grid-template-columns: minmax(0,1fr); }
  .page-engineering #main.lh-page .lh-course-tile { min-height: 0; padding: 24px 22px 22px; }
  .page-engineering #main.lh-page .lh-featured-figure { padding: 18px; }
  .page-engineering #main.lh-page .lh-tool { padding: 24px 22px 22px; }
  .page-engineering #main.lh-page .lh-terms { grid-template-columns: minmax(0,1fr); }
  .page-engineering #main.lh-page .lh-principles { grid-template-columns: minmax(0,1fr); gap: 28px; }
  .page-engineering #main.lh-page .lh-check-table :is(th, td) { padding-inline: 8px; }
  .page-engineering #main.lh-page .lh-check-table .lh-check-colhead { width: 64px; }
  .page-engineering #main.lh-page :is(.lh-check-table--multi, .lh-check-table--multi thead, .lh-check-table--multi tbody, .lh-check-table--multi tfoot) { display: block; }
  .page-engineering #main.lh-page .lh-check-table--multi tr { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 0 10px; }
  .page-engineering #main.lh-page .lh-check-table--multi :is(th, td) { display: block; width: auto; padding: 0; border: 0; text-align: left; }
  .page-engineering #main.lh-page .lh-check-table--multi thead tr { padding-bottom: 12px; border-bottom: 2px solid var(--ep-ink); }
  .page-engineering #main.lh-page .lh-check-table--multi .lh-check-itemhead { display: none; }
  .page-engineering #main.lh-page .lh-check-table--multi .lh-check-colhead { width: auto; }
  .page-engineering #main.lh-page .lh-check-table--multi .lh-check-name { text-align: left; }
  .page-engineering #main.lh-page .lh-check-table--multi .lh-check-group th { grid-column: 1 / -1; padding: 24px 0 8px; border-bottom: 1px solid var(--ep-ink); }
  .page-engineering #main.lh-page .lh-check-table--multi tbody tr:not(.lh-check-group) { padding: 12px 0 4px; border-bottom: 1px solid var(--ep-line); }
  .page-engineering #main.lh-page .lh-check-table--multi tbody th { grid-column: 1 / -1; margin-bottom: 2px; }
  .page-engineering #main.lh-page .lh-check-table--multi .lh-check-cell { justify-content: flex-start; width: 100%; }
  .page-engineering #main.lh-page .lh-check-table--multi .lh-check-label { display: block; min-width: 0; overflow: hidden; color: var(--ep-muted); font-size: 13px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
  .page-engineering #main.lh-page .lh-check-table--multi tfoot tr { padding-top: 14px; border-top: 2px solid var(--ep-ink); }
  .page-engineering #main.lh-page .lh-check-table--multi tfoot th { grid-column: 1 / -1; margin-bottom: 6px; }
  .page-engineering #main.lh-page .lh-check-table--multi tfoot td .lh-check-label { margin-bottom: 2px; }
  .page-engineering #main.lh-page .lh-print-action :is(.ep-button, .lh-check-clear) { flex: 1 1 100%; justify-content: center; }
  .page-engineering #main.lh-page .lh-planner .lh-planner-nojs { padding: 20px 18px; }
  .page-engineering #main.lh-page .lh-planner-form { padding: 22px 18px 4px; }
  .page-engineering #main.lh-page .lh-planner-form .ep-button { width: 100%; }
  .page-engineering #main.lh-page .lh-field.lh-field--months { margin-left: 0; }
  .page-engineering #main.lh-page .lh-planner-result { padding: 22px 18px 24px; }
  .page-engineering #main.lh-page .lh-planner .lh-planner-date { font-size: 24px; }
  .page-engineering #main.lh-page .lh-planner-dates li { flex-direction: column; gap: 2px; }
}

@media print {
  body.page-learn :is(.site-header, .site-footer, .skip-link, #mobile-conversion-bar) { display: none !important; }
  .page-engineering #main.lh-page :is(.lp-contents, .ep-contact-band, .lh-pager, .lh-complete, .lh-explorer-panel, .lh-hotspot, .ep-actions, .lh-stepper-controls, .lh-stepper-panel) { display: none !important; }
  .page-engineering #main.lh-page .lh-stepper { grid-template-columns: minmax(0,1fr); }
  .page-engineering #main.lh-page .lh-stepper-figure { position: static; max-width: 420px; break-inside: avoid; }
  .page-engineering #main.lh-page .lp-guide-grid { grid-template-columns: minmax(0,1fr); }
  .page-engineering #main.lh-page .lh-explorer { grid-template-columns: minmax(0,1fr); }
  .page-engineering #main.lh-page .lh-explorer-figure { position: static; break-inside: avoid; }
  .page-engineering #main.lh-page .lh-explorer.is-enhanced .lh-svg-markers { display: inline; }
  .page-engineering #main.lh-page .lh-explorer.is-enhanced .lh-explorer-desc { display: block; }
  .page-engineering #main.lh-page .lh-explorer.is-enhanced .lh-explorer-toggle::after { content: none; }
  .page-engineering #main.lh-page .ep-section { padding-block: 28px; }
  .page-engineering #main.lh-page :is(.lh-callout, .lh-options, .lh-answer, .lh-explorer-list > li, .lh-stepper-list > li, .lh-report, .lh-compare-panel, .lh-cards > li) { break-inside: avoid; }
  /* Keep headings with what follows them, and let long quoted lists run on between items. */
  .page-engineering #main.lh-page :is(h2, h3, h4, .lh-callout-label) { break-after: avoid; }
  .page-engineering #main.lh-page .lh-callout:has(> ul, > ol) { break-inside: auto; }
  .page-engineering #main.lh-page .lh-callout > :is(ul, ol) > li { break-inside: avoid; }
  /* Printing one block: hide everything outside it, and flatten the containers around it. */
  html.lh-print-part :is(body, .lh-print-path) > :not(.lh-print-path):not(.lh-print-target) { display: none !important; }
  html.lh-print-part .lh-print-path { display: block !important; width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; }
  html.lh-print-part .lh-print-target { margin: 0 !important; }
  .page-engineering #main.lh-page .lh-print-action { display: none !important; }
  .page-engineering #main.lh-page .lh-sheet { padding: 0; border: 0; break-inside: avoid; }
  .page-engineering #main.lh-page .lh-sheet-fields { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .page-engineering #main.lh-page .lh-sheet-scroll { overflow: visible; }
  .page-engineering #main.lh-page .lh-sheet-table { min-width: 0; }
  .page-engineering #main.lh-page .lh-sheet-fields > div { min-height: 36px; }
  .page-engineering #main.lh-page .lh-sheet-table td { height: 9mm; }
  .page-engineering #main.lh-page .lh-sheet-table--schedule td { height: 11mm; }
  .page-engineering #main.lh-page .lh-check-table { font-size: 12.5px; }
  .page-engineering #main.lh-page .lh-check-table :is(th, td) { padding-block: 3px; }
  .page-engineering #main.lh-page .lh-check-table .lh-check-group th { padding-top: 12px; break-after: avoid; }
  .page-engineering #main.lh-page .lh-check-table tr { break-inside: avoid; }
  .page-engineering #main.lh-page .lh-check-cell { min-height: 30px; }
  .page-engineering #main.lh-page .lh-check-box { width: 16px; height: 16px; }
  .page-engineering #main.lh-page .lh-check-cell input:checked + .lh-check-box::after { left: 4px; top: 0; width: 5px; height: 10px; }
  .page-engineering #main.lh-page .lh-check-name { background: none; }
  .page-engineering #main.lh-page .lh-check-name::placeholder { color: transparent; }
  .page-engineering #main.lh-page .lh-checklist .lh-sheet { break-inside: auto; }
  .page-engineering #main.lh-page .lh-planner-form { display: none !important; }
  .page-engineering #main.lh-page .lh-planner { border: 0; }
  .page-engineering #main.lh-page .lh-planner-result { padding: 0; border-top: 0; background: none; }
}

/* Glossary: A to Z letters in the sticky contents column, one definition list per letter */
.page-engineering #main.lh-page a.lh-term { text-decoration: underline dotted; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.page-engineering #main.lh-page .lh-terms dt a { text-decoration: none; }
.page-engineering #main.lh-page .lh-terms dt a:hover { text-decoration: underline; text-underline-offset: 4px; }
.page-engineering #main.lh-page .lh-az-letters { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 6px; list-style: none; margin: 0; padding: 0; }
.page-engineering #main.lh-page .lh-az .lh-az-letters :is(a, span) { display: flex; align-items: center; justify-content: center; height: 40px; padding: 0; border: 1px solid var(--ep-line); background: #fff; color: var(--ep-ink); font-size: 15px; font-weight: 700; line-height: 1; text-decoration: none; }
.page-engineering #main.lh-page .lh-az .lh-az-letters a:hover { border-color: var(--ep-ink); color: var(--ep-red); }
.page-engineering #main.lh-page .lh-az .lh-az-letters span { border-color: #eceff3; background: transparent; color: var(--lh-faint); font-weight: 600; }
.page-engineering #main.lh-page .lh-glossary-page .lp-article > section + section { margin-top: 40px; padding-top: 36px; }
.page-engineering #main.lh-page .lh-glossary-page .lh-glossary-letter { font-size: 40px; line-height: 1; letter-spacing: -.03em; }
.page-engineering #main.lh-page .lh-glossary { margin: 22px 0 0; }
.page-engineering #main.lh-page .lh-glossary-entry { display: grid; grid-template-columns: minmax(0,220px) minmax(0,1fr); gap: 8px 40px; padding: 22px 0; border-top: 1px solid var(--ep-line); }
.page-engineering #main.lh-page .lh-glossary-entry:target { padding-inline: 16px; border-top-color: var(--ep-red); background: var(--lh-red-soft); }
.page-engineering #main.lh-page .lh-glossary dt { color: var(--ep-ink); font-size: 18px; font-weight: 700; line-height: 1.45; letter-spacing: -.02em; }
.page-engineering #main.lh-page .lh-glossary dd { min-width: 0; margin: 0; }
.page-engineering #main.lh-page .lh-glossary dd p { max-width: 68ch; margin: 0; font-size: 16px; line-height: 1.7; }
.page-engineering #main.lh-page .lh-glossary dd .lh-glossary-see { margin-top: 8px; font-size: 14px; line-height: 1.6; }
.page-engineering #main.lh-page .lh-glossary-top { display: none; margin: 4px 0 0; font-size: 14px; }
@media (max-width: 900px) {
  .page-engineering #main.lh-page .lh-az-letters { grid-template-columns: repeat(auto-fill,minmax(38px,1fr)); }
  .page-engineering #main.lh-page .lh-glossary-top { display: block; }
}
@media (max-width: 600px) {
  .page-engineering #main.lh-page .lh-glossary-entry { grid-template-columns: minmax(0,1fr); gap: 6px; padding: 18px 0; }
  .page-engineering #main.lh-page .lh-glossary-entry:target { padding-inline: 12px; }
  .page-engineering #main.lh-page .lh-glossary-page .lh-glossary-letter { font-size: 34px; }
}
@media print {
  .page-engineering #main.lh-page :is(.lh-glossary-top) { display: none !important; }
  .page-engineering #main.lh-page .lh-glossary-entry { break-inside: avoid; }
}
