/* A lighter text face separates descriptions from the school wordmark,
   display headings, prices and interactive controls. */
:root {
  --reading-face: system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --reading-size: clamp(.9375rem, .9rem + .14vw, 1.0625rem);
}

/* Short summaries keep their component's type size and colour. */
main :is(.sj-field-copy, .sj-grad, .sj-ai-intro, .sch-closing > div) > p:not([class]),
main :is(.sch-lead, .school-program__lead, .school-path__text p,
  .sc-heading > p, .sc-summary, .sc-forthcoming, .sd-intro, .sd-about,
  .sd-original, .sd-caption, .sd-coming-note, .sd-notice, .sd-pay-hint,
  .sg-summary, .sg-task p, .sg-grid li, .sg-planner-hint,
  .sg-field p:last-child, .sg-alt p:last-child, .sj-ai-intro li p, .sj-ai-note blockquote,
  .hs-founder-bio, .hs-history li p, .hs-news article p, .hs-product p,
  .hs-partner-notes p, .hs-market-head > p:not(.kicker), .hs-film-caption > p:not(.kicker),
  .lw-expert p, .lw-profile p:not(.kicker), .lw-cover-copy p:not(.kicker), .lw-row p, .lw-answer p,
  .pg-intro, .pg-local, .dk-local, .dk-course-intro, .dk-note-empty p,
  .dk-work-cover p:not(.dk-kicker), .sg-route li p, .sg-lead, .sg-alumni p,
  .ls-goal, .ls-block p, .ls-example > p:last-child, .ls-notes > p,
  .ls-study-help p, .rt-main p:not(.kicker)) {
  font-family: var(--reading-face);
  font-weight: 370;
  line-height: 1.44;
}

main :is(.sch-lead, .sd-intro, .sd-about, .sg-summary, .pg-intro,
  .ls-goal, .hs-founder-bio, .rt-main header > p:not(.kicker)) {
  font-size: var(--reading-size);
}

/* Lesson prose has room for calculations and multi-line explanations. */
main .ls-block p,
main .ls-example > p:last-child {
  font-size: clamp(1rem, .98rem + .1vw, 1.0625rem);
  line-height: 1.52;
  max-width: 65ch;
}

.sc-card h3 { font-weight: 650; }
.sc-meta { font-weight: 450; }
.sc-card-content .sc-summary { margin-bottom: 6px; }
.dk-course-intro { margin-bottom: 12px; }
