:root {
  color-scheme: light;
  --ink: #243a31;
  --muted: #536056;
  --green: #234f3e;
  --rust: #99432f;
  --paper: #f6f4ed;
  --white: #fffef9;
  --sage: #e5e9d6;
  --peach: #f3e1d2;
  --line: #bbc3b2;
  --serif: Georgia, 'Times New Roman', serif;
}

* { box-sizing: border-box; }
html { scroll-padding-top: 1rem; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 1.125rem/1.62 var(--serif); }
body, button { font-family: var(--serif); }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: var(--green); text-underline-offset: .2em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
a:focus-visible, button:focus-visible { outline: 3px solid var(--rust); outline-offset: 4px; }
button { font-size: 1rem; }
p { margin: 0 0 1rem; }
em { color: var(--green); font-weight: 400; }
h1, h2, h3 { font-weight: 400; line-height: 1.12; margin: 0; text-wrap: balance; }
h1 { font-size: clamp(2.65rem, 11.2vw, 5.25rem); letter-spacing: -.045em; }
h2 { font-size: 2rem; letter-spacing: -.025em; }
h3 { font-size: 1.55rem; letter-spacing: -.015em; }
img { max-width: 100%; height: auto; display: block; }
[hidden] { display: none !important; }
main, .masthead, .breadcrumb, .closing-note { width: min(calc(100% - 2rem), 75rem); margin-inline: auto; }

.skip-link { position: absolute; z-index: 5; top: .5rem; left: 1rem; padding: .75rem 1rem; min-height: 44px; background: var(--white); transform: translateY(-200%); }
.skip-link:focus { transform: translateY(0); }
.masthead { display: flex; flex-wrap: wrap; gap: .125rem 1.5rem; padding-block: 1.3rem 1rem; border-bottom: 2px solid var(--green); }
.masthead p { font-size: 1rem; margin: 0; }
.site-name { letter-spacing: -.015em; }
.edition-label { color: var(--muted); font-style: italic; }
.breadcrumb { font-size: 1rem; padding-block: .35rem .8rem; }
.breadcrumb ol { display: flex; flex-wrap: wrap; align-items: center; gap: 0; list-style: none; margin: 0; padding: 0; }
.breadcrumb li { display: flex; align-items: center; min-height: 44px; }
.breadcrumb li + li::before { content: '/'; color: var(--muted); margin-inline: .65rem; }
.breadcrumb a { display: inline-flex; align-items: center; min-height: 44px; padding-inline: .25rem; }
.breadcrumb span { color: var(--muted); }
.eyebrow { font-size: 1rem; line-height: 1.4; letter-spacing: .065em; text-transform: uppercase; margin-bottom: 1.15rem; color: var(--muted); }
.chapter-opening { display: grid; gap: 1rem; }
.chapter-heading { background: var(--sage); border: 1px solid var(--line); border-radius: .5rem; padding: 1.75rem 1.5rem 1.5rem; }
.chapter-heading .eyebrow { color: var(--green); }
.chapter-heading h1 { max-width: 16ch; margin-bottom: 1.5rem; }
.lead { font-size: 1.125rem; line-height: 1.6; max-width: 53ch; margin: 0; }
.search-sequence { border: 1px solid var(--line); border-radius: .5rem; background: var(--white); padding: 1.5rem; }
.search-sequence h2 { font-size: 2.55rem; margin-bottom: 1.6rem; }
.search-sequence > p:last-child { color: var(--muted); margin-top: 1.4rem; margin-bottom: 0; font-size: 1rem; }
.check-sequence { list-style: none; padding: 0; margin: 0; }
.check-sequence li { display: flex; gap: .8rem; position: relative; padding: .6rem 0; }
.check-sequence li:not(:last-child)::after { content: ''; position: absolute; left: .3rem; top: 1.45rem; bottom: -.7rem; border-left: 1px solid var(--line); }
.check-dot { width: .65rem; height: .65rem; border: 2px solid var(--green); border-radius: 50%; background: var(--white); margin-top: .5rem; flex-shrink: 0; z-index: 1; }
.check-sequence small { display: block; font-size: 1rem; color: var(--muted); }
.opening-action { display: grid; gap: 1rem; margin-block: 1.5rem 0; }
.opening-action p { margin: 0; align-self: center; color: var(--muted); font-size: 1rem; }
.primary-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 56px; padding: .85rem 1.2rem; border: 1px solid var(--green); border-radius: .3rem; background: var(--green); color: var(--white); text-decoration: none; font-size: 1.125rem; }
.primary-link:hover { background: var(--ink); }
.primary-link > span { font-size: 1.6rem; line-height: 1; }
.first-answer { border-block: 1px solid var(--line); padding-block: 1.75rem; margin-block: 1.5rem 3rem; }
.first-answer h2 { margin-bottom: 1.2rem; }
.first-answer p { max-width: 66ch; }
.first-answer p:last-child { margin-bottom: 0; }
.section-opening { margin-bottom: 1.5rem; }
.section-opening .eyebrow { margin-bottom: .65rem; }
.section-opening h2 { max-width: 23ch; }
.chapter-cards { display: grid; gap: .8rem; }
.chapter-card { display: flex; flex-direction: column; align-items: flex-start; position: relative; min-height: 15rem; border: 1px solid var(--line); border-radius: .5rem; background: var(--white); padding: 1.5rem; text-decoration: none; }
.chapter-card .eyebrow { color: var(--rust); margin-bottom: 1.2rem; }
.chapter-card h3 { color: var(--ink); max-width: 20ch; }
.chapter-card p { color: var(--muted); max-width: 36ch; margin: .9rem 0 1.1rem; font-size: 1.0625rem; line-height: 1.6; }
.chapter-card:hover { border-color: var(--green); background: #eef0e3; }
.card-arrow { font-size: 1.7rem; margin-top: auto; align-self: flex-end; line-height: 1; }
.workbook-margin { background: var(--peach); border-radius: .5rem; padding: 1.75rem 1.5rem; margin-top: 2rem; }
.workbook-margin h2 { margin-bottom: 1.2rem; }
.workbook-margin p { max-width: 66ch; }
.workbook-margin p:last-child { margin-bottom: 0; }

.chapter-reading { max-width: 68ch; margin: 2.5rem auto 0; }
.reading-section { margin-bottom: 2.6rem; }
.reading-section :is(h2, h3) { font-size: 2rem; letter-spacing: -.025em; margin-bottom: 1.15rem; max-width: 29ch; }
.reading-group > .group-title { font-size: 1rem; line-height: 1.4; letter-spacing: .065em; text-transform: uppercase; color: var(--muted); margin-bottom: 1.15rem; }
.reading-section p:last-child { margin-bottom: 0; }
.source-link { display: inline-flex; align-items: center; gap: .8rem; font-size: 1rem; min-height: 48px; padding-block: .55rem; max-width: 100%; }
.source-link span { font-size: 1.4rem; line-height: 1; flex-shrink: 0; }
.question-sheet { background: var(--peach); border: 1px solid #c8a990; border-radius: .5rem; padding: 1.5rem; margin-block: 2.5rem; }
.question-sheet h2 { margin-bottom: 1.25rem; color: #71301f; }
.question-sheet p:last-child { margin-bottom: 0; }
.write-line { border-bottom: 1px solid #a78970; padding-bottom: 2.25rem; font-size: 1rem; font-style: italic; color: #634b3b; }
.write-prompts { margin: 0; }
.write-prompts div { border-bottom: 1px solid #bfa78f; padding-block: .85rem 1.6rem; }
.write-prompts div:first-child { padding-top: 0; }
.write-prompts div:last-child { border-bottom: 0; padding-bottom: 0; }
dt { font-weight: 700; }
dd { margin: .3rem 0 0; }
.write-prompts dt, .write-prompts dd { font-size: 1rem; }
.plain-terms { display: grid; gap: .75rem; margin-block: 2rem 0; }
.plain-terms div { padding: 1.4rem 1.5rem; border: 1px solid var(--line); border-radius: .4rem; background: var(--white); }
.plain-terms dt { font-size: 1.3rem; color: var(--green); }
.plain-terms dd { font-size: 1.0625rem; }
main > .reading-section:has(.plain-terms) { margin-top: 2.5rem; }
main > .reading-section:has(.plain-terms) > h2 { margin-left: .1rem; }
.continue-reading { border-top: 2px solid var(--green); padding-block: 1.65rem 1rem; margin-block: 3rem 1rem; }
.continue-reading .eyebrow { margin-bottom: .3rem; }
.continue-reading a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; font-size: 1.6rem; text-decoration: none; min-height: 56px; padding-block: .55rem; line-height: 1.3; }
.continue-reading a:hover { text-decoration: underline; }
.continue-reading a > span:last-child { font-size: 2rem; }
.continue-reading > p:last-child { font-size: 1rem; color: var(--muted); max-width: 62ch; margin-top: .55rem; margin-bottom: 0; }
.closing-note { display: flex; flex-wrap: wrap; gap: .5rem 2.5rem; justify-content: space-between; border-top: 1px solid var(--line); padding-block: 1.5rem 2rem; margin-top: 2.5rem; font-size: 1rem; }
.closing-note p { color: var(--muted); max-width: 60ch; margin-bottom: 0; }
.closing-note a { min-height: 48px; display: inline-flex; align-items: center; gap: .8rem; }

.visit-comparison { margin-top: 2.5rem; }
.comparison-switch { margin-bottom: 1.5rem; }
.comparison-buttons { display: flex; flex-wrap: wrap; gap: .5rem; }
.comparison-buttons button { border: 1px solid var(--green); border-radius: .3rem; background: var(--white); color: var(--green); padding: .7rem 1rem; cursor: pointer; min-height: 48px; }
.comparison-buttons button[aria-pressed='true'] { background: var(--green); color: var(--white); }
.comparison-buttons button:hover { border-color: var(--rust); }
.comparison-status { color: var(--muted); font-size: 1rem; margin: .6rem 0 0; }
.comparison-settings { display: grid; gap: 1rem; }
.setting-notes { border: 1px solid var(--line); border-radius: .5rem; padding: 1.5rem; background: var(--white); }
.setting-notes:nth-child(2) { background: var(--sage); }
.setting-notes .eyebrow { color: var(--rust); margin-bottom: .9rem; }
.setting-notes h3 { margin-bottom: 1.5rem; }
.setting-notes dl { margin: 0; }
.setting-notes dl div { border-top: 1px solid var(--line); padding-block: 1rem; }
.setting-notes dl div:last-child { padding-bottom: 0; }
.setting-notes dt { font-size: 1rem; }
.setting-notes dd { font-size: 1.0625rem; max-width: 47ch; }
.take-along { border: 1px solid var(--line); border-radius: .5rem; background: var(--white); padding: 1.5rem; margin-block: 2.25rem; }
.take-along h2 { margin-bottom: 1.6rem; }
.workbook-question { padding-top: 1.4rem; margin-top: 1.4rem; border-top: 1px solid var(--line); }
.workbook-question h3 { margin-bottom: .85rem; }
.answer-space { font-size: 1rem; color: var(--muted); font-style: italic; padding-bottom: 2.4rem; margin-bottom: 0; border-bottom: 1px solid var(--line); }
.cash-price-figure { margin: 2rem 0 2.75rem; border: 1px solid var(--line); border-radius: .5rem; padding: 1.5rem 1rem; background: var(--white); }
.cash-price-figure > .eyebrow { margin-inline: .5rem; }
.cash-price-figure img { border-radius: .25rem; }
.cash-price-figure figcaption { padding: 1.25rem .5rem 0; }
.cash-price-figure figcaption p { font-size: 1rem; }
.cash-price-figure figcaption p:last-child { margin-bottom: 0; }
.annotated-readings { margin-block: 2rem; display: grid; gap: 1rem; }
.reading-note { border: 1px solid var(--line); border-radius: .5rem; background: var(--white); padding: 1.5rem; }
.reading-note h2 { margin-bottom: .9rem; font-size: 1.65rem; }
.reading-note .eyebrow { color: var(--rust); margin-bottom: .3rem; }
.reading-note .source-link { margin-bottom: .8rem; }
.reading-note p:not(.eyebrow) { font-size: 1.0625rem; max-width: 52ch; }
.reading-note p:last-child { margin-bottom: 0; }

@media (min-width: 42rem) {
  main, .masthead, .breadcrumb, .closing-note { width: min(calc(100% - 4rem), 75rem); }
  .masthead { justify-content: space-between; padding-block: 1.7rem 1.2rem; }
  .chapter-heading { padding: 2.75rem 2.75rem 2.5rem; }
  .chapter-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .chapter-card { padding: 1.75rem; min-height: 17rem; }
  .opening-action { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.75rem; }
  .plain-terms { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .comparison-settings { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .comparison-settings:has([hidden]) { grid-template-columns: minmax(0, 1fr); max-width: 68ch; }
  .annotated-readings { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .take-along, .question-sheet, .cash-price-figure { padding: 2rem; }
  .continue-reading { padding-inline: 1rem; }
}

@media (min-width: 64rem) {
  .chapter-opening:has(.search-sequence) { grid-template-columns: minmax(0, 2.05fr) minmax(0, 1fr); }
  .chapter-heading { min-height: 26rem; }
  .chapter-heading h1 { margin-bottom: 1.75rem; }
  .chapter-opening:has(.search-sequence) .chapter-heading { padding-bottom: 3rem; }
  .search-sequence { padding: 2.25rem 2rem; }
  .search-sequence h2 { font-size: 3.1rem; }
  .search-sequence .check-sequence { margin-top: 2rem; }
  .chapter-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
  .chapter-card:nth-child(5) { background: var(--peach); border-color: #c8a990; }
  .chapter-card:nth-child(9) { background: var(--sage); }
  .first-answer { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); column-gap: 3rem; }
  .first-answer h2 { grid-row: span 3; max-width: 12ch; }
  .workbook-margin { padding: 2.25rem 2.75rem; }
  .chapter-reading { margin-top: 3.5rem; }
  .setting-notes { padding: 2rem; }
  .reading-note { padding: 2rem; }
  .closing-note { align-items: center; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

@media print {
  body { font-size: 12pt; background: white; color: black; }
  main, .masthead, .breadcrumb, .closing-note { width: 100%; }
  h1 { font-size: 32pt; }
  h2 { font-size: 20pt; }
  h3 { font-size: 16pt; }
  .reading-section :is(h2, h3) { font-size: 20pt; }
  .reading-group > .group-title { font-size: 12pt; }
  .skip-link, .breadcrumb, .comparison-switch, .continue-reading, .closing-note a, .opening-action { display: none !important; }
  .chapter-heading, .question-sheet, .take-along, .setting-notes, .plain-terms div, .reading-note { background: white; border-color: #888; }
  .chapter-heading { min-height: auto; padding: 1rem 0; border: 0; }
  .chapter-reading { max-width: none; margin-top: 1.25rem; }
  .workbook-question { break-inside: avoid; }
  .comparison-settings { display: block; }
  .setting-notes[hidden] { display: block !important; }
  .setting-notes { margin-bottom: 1rem; }
  .take-along { break-before: page; }
  .source-link { color: black; }
}
