/* A complete school document grounds the parent-reviewed Family workflow. */
.family-review :is(h1, h2, h3) { text-wrap: balance; }
.family-opening { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; gap: 72px; padding-block: 28px 64px; }
.family-purpose h1 { font-size: 66px; line-height: 1.05; max-width: 16ch; }
.family-intro { font-size: 18px; margin-block: 24px; max-width: 42ch; }
.family-purpose .button { max-width: 100%; text-align: center; }
.family-caption, .family-small { font-size: 14px; color: var(--muted); margin-top: 14px; }
.family-available { margin-top: 28px; font-size: 16px; }
.family-text-link { display: flex; align-items: center; min-height: 48px; margin-top: 8px; font-size: 14px; }
.family-document { margin: 0; }
.family-document figcaption { font-size: 13px; margin-bottom: 14px; color: var(--muted); }
.family-document img { width: 100%; height: auto; border: 1px solid var(--ink); }
.family-workflow, .family-course-example { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; padding-block: 48px; border-top: 1px solid var(--ink); }
.family-review h2 { font-size: 44px; max-width: 20ch; }
.family-workflow h2 + p, .family-course-example h2 + p { font-size: 16px; margin-top: 20px; }
.family-workflow img { margin-top: 28px; width: 100%; max-width: 360px; height: auto; }
.family-workflow ol { padding-left: 24px; margin: 0; }
.family-workflow li { padding-left: 12px; }
.family-workflow li + li { margin-top: 32px; }
.family-workflow h3 { font-size: 30px; }
.family-workflow li p { font-size: 16px; margin-top: 14px; }
.family-course-sheet { padding: 28px; border: 1px solid var(--ink); background: var(--surface); }
.family-course-sheet header { padding-bottom: 20px; border-bottom: 1px solid var(--ink); }
.family-course-sheet h3 { font-size: 34px; }
.family-course-sheet header p { font-size: 14px; margin-top: 12px; }
.family-course-sheet dl { display: flex; gap: 36px; margin-block: 24px; }
.family-course-sheet dt { font-size: 13px; }
.family-course-sheet dd { font: 500 32px/1.2 var(--display); margin: 8px 0 0; }
.family-course-sheet h4 { font: 400 14px/1.5 var(--body); margin-block: 0 12px; }
.family-course-sheet section p { font-size: 14px; }
.family-course-sheet cite { font: 500 28px/1.2 var(--display); }
.family-course-disclosure { border-top: 1px solid var(--field-rule); margin-top: 24px; }
.family-review summary { cursor: pointer; min-height: 48px; padding-block: 14px; font-size: 15px; }
.family-course-disclosure p { font-size: 15px; margin-top: 14px; }
.family-offer { display: grid; grid-template-columns: 1.15fr 1fr; gap: 64px; padding: 36px; margin-block: 16px 64px; background: var(--surface); }
.family-offer h2 { font-size: 42px; }
.family-offer h2 + p { margin-top: 24px; }
.family-offer p { font-size: 16px; }
.family-offer .family-price { font-size: 21px; border-top: 1px solid var(--field-rule); padding-top: 20px; margin-top: 24px; }
.family-offer .button { margin-top: 24px; text-align: center; }
.family-terms h3 { font-size: 34px; margin-bottom: 24px; }
.family-terms p { font-size: 15px; }
.family-ownership { border-block: 1px solid var(--field-rule); margin-top: 24px; }
.marketing-page:has(.family-review) .public-nav a[aria-current] { border-bottom: 2px solid var(--accent); text-decoration: none; }
.marketing-page:has(.family-review) .public-nav a:hover { background: var(--surface); text-decoration: underline; box-shadow: none; }
@media (max-width: 1000px) { .family-opening, .family-workflow, .family-course-example, .family-offer { gap: 32px; } .family-purpose h1 { font-size: 56px; } }
@media (max-width: 900px) {
  .marketing-page:has(.family-review) .public-header { position: relative; flex-wrap: wrap; }
  .marketing-page:has(.family-review) .public-header:has(.public-menu[open]) { background: var(--surface); border-bottom: 1px solid var(--ink); }
  .marketing-page:has(.family-review) .public-menu[open] { width: 100%; margin-left: 0; border-bottom: 0; padding-bottom: 12px; }
  .marketing-page:has(.family-review) .public-menu[open] > summary { position: absolute; top: 20px; right: 28px; }
  .marketing-page:has(.family-review) .public-menu[open] nav { position: static; margin-top: 20px; padding: 10px 0 24px; border-block: 1px solid var(--rule); background: transparent; gap: 0; }
  .marketing-page:has(.family-review) .public-menu nav > a:not(.button) { font: 400 18px/1.4 var(--body); padding-block: 12px; }
  .marketing-page:has(.family-review) .public-menu[open] .button { width: 100%; justify-self: stretch; margin-top: 16px; }
}
@media (max-width: 700px) {
  .family-opening, .family-workflow, .family-course-example, .family-offer { display: flex; flex-direction: column; gap: 28px; padding-block: 24px 36px; }
  .family-purpose h1 { font-size: 46px; max-width: 16ch; }
  .family-intro { font-size: 17px; margin-block: 20px; }
  .family-review .button { width: 100%; font-size: 14px; padding-inline: 16px; }
  .family-document { width: 100%; }
  .family-review h2 { font-size: 36px; }
  .family-workflow li + li { margin-top: 24px; }
  .family-workflow h3 { font-size: 28px; }
  .family-course-sheet { width: 100%; padding: 20px; }
  .family-course-sheet dl { gap: 24px; }
  .family-offer { padding: 24px 16px; margin-inline: -12px; }
  .family-offer .family-price { font-size: 19px; }
  .family-terms { width: 100%; border-top: 1px solid var(--field-rule); padding-top: 24px; }
}

/* Revision 2: the two documents show their connection before the long explanation. */
.family-opening { grid-template-rows: auto 1fr; gap: 28px 64px; }
.family-purpose { grid-column: 1; grid-row: 1; }
.family-purpose h1 { max-width: none; font-size: 60px; }
.family-purpose h1 span { display: block; }
.family-purpose .family-available { margin-block: 20px; font-size: 15px; }
.family-two-documents { grid-column: 2; grid-row: 1 / span 2; margin: 0; }
.family-two-documents figcaption { font-size: 13px; color: var(--muted); margin-bottom: 14px; }
.family-transcript-excerpt, .family-supplement-excerpt { border: 1px solid var(--ink); padding: 24px; }
.family-transcript-excerpt > header { background: var(--accent); color: var(--bg); margin: -24px -24px 20px; padding: 24px; }
.family-review .family-two-documents h2 { font-size: 32px; max-width: none; }
.family-two-documents header p { font-size: 13px; margin-top: 10px; }
.family-two-documents table { font-size: 14px; border-collapse: collapse; width: 100%; font-variant-numeric: tabular-nums; }
.family-two-documents :is(th, td) { text-align: right; padding-block: 14px; border-bottom: 1px solid var(--rule); font-weight: 400; }
.family-two-documents :is(th, td):first-child { text-align: left; }
.family-supplement-excerpt { margin-top: 24px; background: var(--surface); }
.family-supplement-excerpt > header { border-bottom: 1px solid var(--field-rule); padding-bottom: 20px; }
.family-supplement-excerpt h3 { font-size: 29px; margin-top: 20px; }
.family-supplement-excerpt h3 + p { font-size: 14px; margin-top: 14px; }
.family-supplement-excerpt cite { font: italic 500 27px/1.2 var(--display); }
.family-two-documents .family-course-disclosure img { width: 100%; height: auto; margin-top: 16px; }
.family-free-start { grid-column: 1; grid-row: 2; display: grid; grid-template-columns: .85fr 1fr; gap: 24px; align-items: center; }
.family-free-start img { width: 100%; height: auto; }
.family-review .family-free-start h2 { font-size: 32px; }
.family-free-start p { margin-top: 14px; font-size: 14px; }
.family-free-start .family-small { font-size: 13px; }
.family-workflow { padding-block: 48px; }
.family-import-example { font-size: 14px; margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--rule); }
.family-offer { margin-top: 0; }
.family-offer .family-price { border-top: 0; padding-top: 0; margin-top: 24px; font-size: 25px; font-family: var(--display); }
.family-payment-terms { border-block: 1px solid var(--field-rule); margin-top: 28px; padding-block: 4px; }
.family-payment-terms p { margin-bottom: 16px; }
.family-ownership { border-top: 0; margin-top: 0; }
@media (max-width: 1000px) { .family-opening { gap: 24px 32px; } .family-purpose h1 { font-size: 52px; } .family-free-start { grid-template-columns: 1fr; } .family-free-start img { max-width: 300px; } }
@media (max-width: 700px) {
  .family-purpose { order: 1; }
  .family-two-documents { order: 2; width: 100%; }
  .family-free-start { order: 3; display: flex; flex-direction: column; align-items: stretch; gap: 20px; }
  .family-free-start img { max-width: none; }
  .family-purpose h1 { font-size: 42px; }
  .family-intro { font-size: 16px; margin-block: 18px; }
  .family-transcript-excerpt, .family-supplement-excerpt { padding: 20px; }
  .family-transcript-excerpt > header { padding: 20px; margin: -20px -20px 12px; }
  .family-review .family-two-documents h2 { font-size: 28px; }
  .family-two-documents table { font-size: 13px; }
  .family-supplement-excerpt { margin-top: 20px; }
  .family-supplement-excerpt h3 { font-size: 27px; }
  .family-two-documents .family-caption { font-size: 13px; }
  .family-offer .family-price { font-size: 24px; }
}

/* Revision 3: one course carries from reading through both documents. */
.family-opening { grid-template-rows: auto; align-items: center; padding-bottom: 48px; }
.family-two-documents { grid-row: 1; }
.family-purpose h1 { font-size: 58px; }
.family-early-start { margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--field-rule); }
.family-early-start > p { font-size: 14px; margin-top: 8px; }
.family-early-start .family-text-link { font-size: 16px; }
.family-workflow { align-items: center; }
.family-workflow img { max-width: none; aspect-ratio: 3 / 2; object-fit: cover; }
.family-offer .family-price { display: flex; align-items: baseline; gap: 16px; font: 400 16px/1.4 var(--body); }
.family-price > span { font: 500 64px/1 var(--display); }
.family-offer .family-monthly { font-size: 14px; margin-block: 12px 24px; }
@media (max-width: 1000px) { .family-purpose h1 { font-size: 50px; } }
@media (max-width: 700px) {
  .family-opening { gap: 28px; padding-bottom: 36px; }
  .family-purpose h1 { font-size: 42px; }
  .family-early-start { margin-top: 16px; padding-top: 12px; }
  .family-transcript-excerpt, .family-supplement-excerpt { padding: 18px; }
  .family-transcript-excerpt > header { margin: -18px -18px 8px; padding: 18px; }
  .family-two-documents :is(th, td) { padding-block: 10px; }
  .family-supplement-excerpt > header { padding-bottom: 14px; }
  .family-supplement-excerpt h3 { margin-top: 14px; }
  .family-workflow { padding-block: 36px; }
  .family-workflow img { margin-top: 20px; }
  .family-review h2 { font-size: 34px; }
  .family-price > span { font-size: 60px; }
}
