/* Course-scoped styles. Shared brand tokens, local fonts, no remote images. */
.rth-page { --rth-ink:#132d48; --rth-hero-text:#fff; --rth-hero-muted:#d8e3ed; --rth-hero-accent:#ffcbb1; }
.rth-page #course-page { max-width:1240px; margin-inline:auto; }
.rth-header { margin:20px 0 24px; }
.rth-title-row { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:16px 0 26px; }
.rth-title-row h1 { margin:6px 0 0; font-family:var(--font-serif); font-size:clamp(2rem,3.4vw,3.2rem); letter-spacing:-.035em; line-height:1.13; }
.rth-subtitle { margin:8px 0 0; color:var(--text-secondary); font-size:1.08rem; }
.rth-header-meta { display:flex; gap:9px; flex-direction:column; align-items:flex-end; max-width:360px; }
.rth-pill { display:inline-block; border:1px solid var(--border-default); background:var(--surface-card); padding:9px 13px; border-radius:999px; font-size:.8rem; color:var(--text-primary); text-align:center; }
.rth-tabs { display:flex; flex-wrap:wrap; gap:6px; padding:9px; border:1px solid var(--border-default); border-radius:16px; background:var(--surface-card); }
.rth-tab { padding:10px 13px; border-radius:10px; color:var(--text-secondary); font-weight:600; font-size:.83rem; text-decoration:none; }
.rth-tab:hover { background:var(--surface-warm); color:var(--text-heading); }
.rth-tab[aria-current] { background:var(--action-navy); color:var(--text-on-navy); }
.rth-page .rth-panel { padding:0; border:none; background:transparent; box-shadow:none; }
.rth-panel h2,.rth-panel h3,.rth-panel h4,.rth-panel h5 { color:var(--text-heading); }
.rth-panel p { line-height:1.75; }
.rth-eyebrow { font:700 .68rem/1.5 var(--font-sans); letter-spacing:.14em; text-transform:uppercase; color:var(--color-brand-text); margin:0 0 12px; }
.rth-panel .rth-eyebrow { line-height:1.5; }
.rth-meta { font-size:.8rem; color:var(--text-secondary); line-height:1.65; }
.rth-lead { color:var(--text-secondary); max-width:78ch; font-size:1rem; }
.rth-hero { display:grid; grid-template-columns:1.3fr 1fr; overflow:hidden; position:relative; background:var(--rth-ink); color:var(--rth-hero-text); border-radius:24px; padding:clamp(26px,4vw,54px); gap:48px; }
.rth-hero::after { content:""; position:absolute; width:430px; height:430px; border:1px solid #53677b; border-radius:50%; right:-230px; top:-225px; box-shadow:0 0 0 45px #203b552b,0 0 0 90px #203b5526; pointer-events:none; }
.rth-hero-copy,.rth-lenses { position:relative; z-index:1; }
.rth-hero .rth-eyebrow { color:var(--rth-hero-accent); }
.rth-hero h2 { font-family:var(--font-serif); font-size:clamp(2.1rem,3.6vw,3.8rem); line-height:1.15; letter-spacing:-.04em; margin:12px 0 24px; color:var(--rth-hero-text); }
.rth-hero h2 span { display:block; color:var(--rth-hero-accent); }
.rth-hero-copy>p:not(.rth-eyebrow) { color:var(--rth-hero-muted); max-width:48ch; }
.rth-hero .button-row { align-items:center; margin-top:27px; gap:18px; }
.rth-hero .button { background:#c0562f; color:#fff; border-color:#c0562f; }
.rth-hero .button:hover { background:#a9472d; border-color:#a9472d; }
.rth-hero-link { color:var(--rth-hero-text); font-weight:600; font-size:.9rem; text-underline-offset:5px; }
.rth-lenses { display:grid; align-content:center; gap:11px; }
.rth-lens { display:flex; align-items:center; gap:18px; padding:17px 19px; border:1px solid #53677b; border-radius:14px; background:#19364f; }
.rth-lens-number { color:var(--rth-hero-accent); font-family:var(--font-serif); font-size:1.45rem; }
.rth-lens strong { display:block; font-size:.9rem; font-weight:600; color:#fff; }
.rth-lens div>span { display:block; font-size:.76rem; color:var(--rth-hero-muted); margin-top:4px; }
.rth-stats { display:grid; grid-template-columns:repeat(4,1fr); margin:18px 0 34px; padding:24px 12px; border:1px solid var(--border-default); border-radius:17px; background:var(--surface-card); }
.rth-stats>div { display:flex; flex-direction:column; align-items:center; gap:6px; border-right:1px solid var(--border-default); }
.rth-stats>div:last-child { border-right:none; }
.rth-stats strong { font:600 2rem/1.2 var(--font-serif); color:var(--text-heading); }
.rth-stats span { font-size:.8rem; color:var(--text-secondary); }
.rth-section { margin:30px 0; }
.rth-section>h2 { font-family:var(--font-serif); font-size:clamp(1.65rem,2.5vw,2.2rem); letter-spacing:-.02em; margin:5px 0 13px; }
.rth-overview-row { display:grid; grid-template-columns:1.7fr 1fr; gap:24px; }
.rth-overview-row>.rth-section { margin:0; padding:25px; border:1px solid var(--border-default); border-radius:18px; background:var(--surface-card); }
.rth-overview-row>.rth-section:last-child { background:var(--surface-warm); }
.rth-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:25px; }
.rth-steps p { font-size:.86rem; margin:8px 0 0; color:var(--text-secondary); }
.rth-step-link { font-weight:700; }
.rth-panel progress { width:100%; height:12px; accent-color:var(--color-brand-action); border:none; border-radius:10px; margin:15px 0; }
.rth-guide-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.rth-guide-card { display:flex; flex-direction:column; align-items:flex-start; padding:25px; border:1px solid var(--border-default); border-radius:18px; background:var(--surface-card); transition:box-shadow .18s ease,border-color .18s ease; }
.rth-guide-card:hover { border-color:var(--color-brand); box-shadow:0 5px 20px #14263d0c; }
.rth-guide-card h3 { margin:4px 0 12px; font:600 1.24rem/1.4 var(--font-serif); }
.rth-guide-card>p:not(.rth-eyebrow) { color:var(--text-secondary); font-size:.88rem; margin:0 0 16px; }
.rth-guide-card>.rth-meta { margin-top:auto!important; padding-top:10px; }
.rth-guide-card>.button { min-height:40px; font-size:.84rem; }
.rth-notice { background:var(--surface-warm); border:1px solid var(--border-default); border-left:3px solid var(--color-brand); padding:17px 20px; border-radius:10px; font-size:.87rem; margin:24px 0; color:var(--text-secondary); }
.rth-sources { margin:16px 0; padding:14px 16px; border:1px solid var(--border-default); border-radius:10px; background:var(--surface-subtle); font-size:.84rem; }
.rth-sources>summary { cursor:pointer; font-weight:600; padding:3px 0; color:var(--text-heading); }
.rth-source { margin-top:15px; padding-top:14px; border-top:1px solid var(--border-default); }
.rth-source p { margin:5px 0; }
.rth-source-link { overflow-wrap:anywhere; text-underline-offset:3px; }
.rth-organisation { margin-top:14px; }
.rth-reader-layout { display:grid; grid-template-columns:245px minmax(0,1fr); gap:26px; align-items:start; }
.rth-toc { position:sticky; top:95px; padding:17px 12px; border:1px solid var(--border-default); background:var(--surface-card); border-radius:16px; }
.rth-toc .rth-eyebrow { padding:0 10px; }
.rth-toc-link { display:block; padding:12px 10px; border-radius:9px; font-size:.79rem; line-height:1.55; text-decoration:none; color:var(--text-secondary); }
.rth-toc-link:hover { background:var(--surface-warm); }
.rth-toc-link[aria-current] { color:var(--color-brand-text); background:var(--color-brand-soft); font-weight:700; }
.rth-reading { background:var(--surface-card); border:1px solid var(--border-default); border-radius:20px; padding:clamp(22px,4vw,46px); }
.rth-reading>h2 { font:600 clamp(1.8rem,3vw,2.6rem)/1.22 var(--font-serif); letter-spacing:-.03em; margin:12px 0 18px; }
.rth-review { background:var(--surface-warm); border:1px solid var(--border-default); border-radius:12px; padding:19px 21px; margin:27px 0; }
.rth-review summary { cursor:pointer; font-weight:700; color:var(--text-heading); }
.rth-review ul { padding-left:23px; font-size:.9rem; margin:18px 0 0; }
.rth-review li { line-height:1.75; margin:9px 0; }
.rth-reading-section { padding-top:13px; margin-bottom:30px; }
.rth-reading-section h3 { font-size:1.2rem; line-height:1.45; margin-bottom:17px; }
.rth-reading-section>p { font-size:.97rem; line-height:1.9; margin:15px 0; }
.rth-study-actions { display:flex; flex-wrap:wrap; gap:10px; margin:24px 0; padding:20px 0; border-top:1px solid var(--border-default); border-bottom:1px solid var(--border-default); }
.rth-study-actions>p { flex-basis:100%; margin:0 0 7px; }
.rth-pager { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.rth-controls { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin:20px 0; }
.rth-field { display:flex; flex-direction:column; gap:10px; color:var(--text-heading); font-size:.88rem; font-weight:600; min-width:0; margin:18px 0; }
.rth-field>span { font-weight:400; }
.rth-field input,.rth-field select,.rth-field textarea { display:block; width:100%; min-width:0; max-width:100%; padding:12px 14px; border:1px solid var(--border-input); border-radius:10px; background:var(--surface-card); color:var(--text-primary); font:400 .95rem/1.5 var(--font-sans); }
.rth-field textarea { resize:vertical; }
.rth-field input::placeholder,.rth-field textarea::placeholder { color:var(--text-muted); opacity:1; }
.rth-compare-grid,.rth-glossary-grid,.rth-source-grid,.rth-workshop-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.rth-glossary-card,.rth-source-card,.rth-compare-card { border:1px solid var(--border-default); border-radius:16px; padding:23px; background:var(--surface-card); min-width:0; }
.rth-glossary-card h3,.rth-source-card h3 { font-size:1rem; margin:0 0 14px; line-height:1.5; }
.rth-source-card p,.rth-glossary-card p { font-size:.88rem; }
.rth-tool { background:var(--surface-card); padding:clamp(20px,3vw,36px); border:1px solid var(--border-default); border-radius:19px; margin-top:22px; }
.rth-tool>h3 { font:600 clamp(1.4rem,2vw,1.8rem)/1.3 var(--font-serif); margin:0 0 16px; }
.rth-compare-card { background:var(--surface-warm); }
.rth-compare-card h4 { font:600 1.7rem/1.3 var(--font-serif); margin:10px 0 24px; }
.rth-compare-card h5 { font-size:.85rem; margin:20px 0 8px; }
.rth-compare-card p { font-size:.86rem; margin:0 0 10px; }
.rth-case { background:var(--surface-warm); padding:16px 22px; border:1px solid var(--border-default); border-radius:12px; margin:15px 0; }
.rth-case>p { margin:3px 0; }
.rth-case .rth-field { margin:12px 0; }
.rth-output { background:var(--surface-warm); border:1px solid var(--border-default); border-radius:14px; padding:23px; margin:20px 0; }
.rth-output h4 { font-size:1.1rem; margin:4px 0 15px; }
.rth-number { display:block; font:600 clamp(2rem,4vw,3.2rem)/1.2 var(--font-serif); color:var(--text-heading); margin:15px 0; }
.rth-feedback { color:var(--text-heading); font-size:.87rem; font-weight:600; min-height:1.4em; }
.rth-prep { border:1px solid var(--border-default); border-radius:16px; background:var(--surface-card); padding:24px; }
.rth-prep h3 { margin-top:0; }
.rth-workshop-grid .rth-field { background:var(--surface-card); border:1px solid var(--border-default); padding:23px; border-radius:16px; margin:0; }
.rth-workshop-grid { margin:24px 0; }
.rth-panel .practice-section { background:var(--surface-card); border:1px solid var(--border-default); border-radius:18px; padding:clamp(20px,3vw,32px); margin:22px 0; }
.rth-panel .practice-section h3 { font-family:var(--font-serif); font-size:1.6rem; }
.rth-panel .practice-section select { max-width:100%; }
.rth-panel .button { white-space:normal; }
.rth-page :is(a,button,input,select,textarea,summary):focus-visible { outline:3px solid var(--color-focus); outline-offset:4px; }
.rth-hero :is(a,button):focus-visible { outline-color:#ffcbb1; }
@media (max-width:1000px) {
 .rth-hero { gap:26px; grid-template-columns:1.2fr 1fr; }
 .rth-reader-layout { grid-template-columns:200px minmax(0,1fr); gap:16px; }
 .rth-overview-row { grid-template-columns:1fr; }
}
@media (max-width:760px) {
 .rth-title-row { flex-direction:column; align-items:flex-start; gap:16px; }
 .rth-header-meta { align-items:flex-start; max-width:100%; }
 .rth-hero { grid-template-columns:1fr; gap:26px; border-radius:18px; }
 .rth-lenses { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .rth-lens { padding:14px; gap:10px; }
 .rth-lens div>span { line-height:1.6; }
 .rth-reader-layout { grid-template-columns:1fr; }
 .rth-toc { position:static; display:flex; overflow-x:auto; gap:8px; padding:11px; }
 .rth-toc .rth-eyebrow { display:none; }
 .rth-toc-link { min-width:180px; flex:0 0 180px; }
 .rth-tabs { gap:4px; padding:7px; }
 .rth-tab { padding:9px 10px; }
 .rth-compare-grid,.rth-glossary-grid,.rth-source-grid,.rth-workshop-grid { grid-template-columns:1fr; }
}
@media (max-width:540px) {
 .rth-guide-grid { grid-template-columns:1fr; }
 .rth-stats { grid-template-columns:repeat(2,1fr); gap:23px 0; }
 .rth-stats>div:nth-child(2) { border-right:0; }
 .rth-lenses { grid-template-columns:1fr; }
 .rth-steps { grid-template-columns:1fr; gap:20px; }
 .rth-steps p { margin:3px 0 0; }
 .rth-controls { grid-template-columns:1fr; gap:0; }
 .rth-reading,.rth-guide-card { padding:22px; }
 .rth-hero h2 { font-size:2.2rem; }
 .rth-tabs { justify-content:flex-start; }
}
@media (prefers-reduced-motion:reduce) { .rth-guide-card { transition:none; } }
@media print {
 .rth-page .site-header,.rth-page .site-footer,.rth-tabs,.rth-header-meta,.rth-toc,.rth-study-actions,.rth-pager { display:none!important; }
 .rth-reader-layout,.rth-compare-grid { display:block; }
 .rth-reading,.rth-panel { border:0; padding:0; background:white; color:black; }
 .rth-reading-section { break-inside:avoid; }
}

.rth-panel progress::-webkit-progress-bar { background:var(--border-default); border-radius:10px; }
.rth-panel progress::-webkit-progress-value { background:var(--color-brand-action); border-radius:10px; }
.rth-panel progress::-moz-progress-bar { background:var(--color-brand-action); border-radius:10px; }

/* Expanded edition: seven-section readers and a keyboard-accessible casebook. */
.rth-locator { color:var(--text-secondary); font-size:.8rem; border-left:3px solid var(--border-default); padding-left:12px; }
.rth-reading-section h3,.rth-casebook-detail h3 { scroll-margin-top:100px; }
.rth-section-jump { max-width:100%; margin:12px 0 30px; }
.rth-related-cases,.rth-casebook-banner { padding:24px; border:1px solid var(--border-default); border-radius:16px; background:var(--surface-warm); }
.rth-casebook-banner h2 { max-width:30ch; }
.rth-casebook-filters { display:flex; align-items:end; gap:24px; margin:20px 0; }
.rth-casebook-filters .rth-field { flex:1; max-width:540px; }
.rth-casebook-layout { display:grid; grid-template-columns:minmax(220px,.8fr) minmax(0,2fr); align-items:start; gap:24px; }
.rth-casebook-list { display:grid; gap:9px; min-width:0; }
.rth-case-select { display:block; width:100%; text-align:left; padding:16px 18px; border:1px solid var(--border-default); background:var(--surface-card); border-radius:12px; color:var(--text-primary); font:inherit; cursor:pointer; }
.rth-case-select strong,.rth-case-select span { display:block; }
.rth-case-select strong { font-size:.92rem; line-height:1.5; margin-bottom:7px; }
.rth-case-select .rth-eyebrow { margin-bottom:6px; }
.rth-case-select[aria-current="true"] { border-color:var(--color-brand-action); box-shadow:inset 4px 0 var(--color-brand-action); background:var(--surface-warm); }
.rth-case-select:hover,.rth-case-choice:hover { background:var(--surface-warm); }
.rth-casebook-detail { min-width:0; padding:clamp(20px,3vw,38px); background:var(--surface-card); border:1px solid var(--border-default); border-radius:18px; }
.rth-casebook-detail>h3 { font:600 clamp(1.5rem,2.5vw,2.1rem)/1.25 var(--font-serif); margin:8px 0 20px; letter-spacing:-.02em; }
.rth-case-scenario { font-size:1.03rem; }
.rth-case-question { min-width:0; border:1px solid var(--border-default); border-radius:14px; margin:28px 0; padding:18px; }
.rth-case-question legend { color:var(--text-heading); font-weight:650; padding:0 7px; }
.rth-case-question>p:first-of-type { margin-top:0; }
.rth-case-choices { display:grid; gap:9px; }
.rth-case-choice { width:100%; min-height:48px; padding:12px 15px; border:1px solid var(--border-default); border-radius:9px; text-align:left; font:500 .92rem/1.5 var(--font-sans); color:var(--text-primary); background:var(--surface-card); cursor:pointer; }
.rth-case-choice[aria-pressed="true"] { background:var(--action-navy); color:var(--text-on-navy); border-color:var(--action-navy); }
.rth-case-reasoning { margin:28px 0; border-top:1px solid var(--border-default); padding-top:18px; }
.rth-case-reasoning>h4 { font-size:1.2rem; margin-bottom:7px; }
.rth-case-step { position:relative; padding:18px 20px 18px 58px; margin:12px 0; border:1px solid var(--border-default); border-radius:12px; background:var(--surface-warm); }
.rth-case-step-number { position:absolute; top:20px; left:17px; color:var(--color-brand-text); font:600 1.2rem/1.2 var(--font-serif); }
.rth-case-step h5,.rth-case-conclusion h5 { font-size:1rem; margin:0 0 7px; }
.rth-case-step p { margin:0; }
.rth-case-conclusion { padding:22px; border:1px solid var(--border-default); border-left:4px solid var(--color-brand-action); border-radius:12px; margin-top:18px; }
.rth-casebook-detail .rth-field>textarea { min-height:130px; }
.rth-casebook-detail [hidden] { display:none!important; }
.rth-page :is(.rth-case-select,.rth-case-choice):focus-visible { outline:3px solid var(--color-brand-action); outline-offset:3px; }
@media (max-width:760px) {
 .rth-casebook-layout { grid-template-columns:1fr; }
 .rth-casebook-list { display:flex; overflow-x:auto; padding:4px 4px 12px; gap:10px; max-width:100%; }
 .rth-case-select { flex:0 0 220px; }
 .rth-casebook-filters { display:block; }
 .rth-casebook-detail { padding:20px; }
 .rth-case-step { padding:18px 16px 18px 49px; }
 .rth-case-step-number { left:13px; }
}
@media print {
 .rth-casebook-list,.rth-casebook-filters,.rth-casebook-detail button,.rth-casebook-detail textarea,.rth-section-jump { display:none!important; }
 .rth-casebook-layout { display:block; }
 .rth-casebook-detail { border:0; padding:0; }
}

.rth-case-step h5 { scroll-margin-top:100px; }
.rth-casebook-hint { display:none; }
@media (max-width:760px) { .rth-casebook-hint { display:block; } }
