/* Academy components use the same brand typography and quiet paper reading surface. */
.course--reader .rd-hero { padding-bottom: 56px; }
.course--reader .rd-hero__grid { gap: clamp(32px, 5vw, 80px); }
.course--reader .rd-cover { border: 1px solid #39352b; }
.course--reader .rd-grid { grid-template-columns: minmax(210px, 260px) minmax(0, 780px); gap: clamp(32px, 6vw, 88px); justify-content: center; }
.course--reader .rd-rail { max-height: calc(100vh - 120px); overflow-y: auto; scrollbar-width: thin; padding-right: 12px; }
.academy-progress { padding-bottom: 24px; margin-bottom: 24px; border-bottom: 1px solid var(--rd-line); }
.academy-progress__value { font: 600 1rem/1.5 var(--sans); margin: 8px 0; }
.academy-progress progress { display: block; width: 100%; height: 6px; margin: 16px 0; accent-color: #7f6714; }
.course--reader .academy-resume { display: inline-block; font-weight: 600; padding: 8px 0; color: #695313; }
.academy-note { font: 400 .78rem/1.6 var(--sans) !important; color: var(--rd-muted); margin-top: 12px !important; }
.academy-text-button { padding: 8px 0; background: transparent; border: 0; text-decoration: underline; cursor: pointer; font: 500 .8rem var(--sans); color: inherit; }
.course--reader .rd-rail a[aria-current] { border-left: 3px solid #7f6714; background: #e9e5d8; font-weight: 600; padding-left: 12px; }
.course--reader .rd-rail a.is-reviewed::after { content: ' ✓'; color: #685218; }
.academy-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--rd-line); margin-bottom: 36px; }
.academy-toolbar p { margin: 0 !important; font: 500 .75rem/1.4 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.academy-button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 46px; padding: 12px 18px; border: 1px solid #786228; border-radius: 2px; background: #161616; color: #f4f2ec !important; font: 600 .85rem/1.4 var(--sans); text-decoration: none; cursor: pointer; }
.academy-button:hover { background: #302a1b; }
.academy-button:focus-visible, .academy-text-button:focus-visible, .academy-option:focus-within { outline: 2px solid #7f6714; outline-offset: 4px; }
.course--reader .rd-lesson { scroll-margin-top: 110px; }
.course--reader .academy-option span { min-width: 0; overflow-wrap: anywhere; }
.academy-chapter-end { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 24px 0; border-top: 1px solid #bdb8a8; margin-top: 40px !important; }
.academy-chapter-end label { display: flex; align-items: flex-start; gap: 10px; font-size: .84rem; }
.academy-chapter-end input, .academy-lab input { width: 18px; height: 18px; accent-color: #7f6714; flex-shrink: 0; }
.academy-next { font: 600 .82rem/1.5 var(--sans); }
.academy-check, .academy-lab { padding: clamp(20px, 4vw, 32px); border: 1px solid #c8bfaa; border-top: 3px solid #9a7d1e; background: #efece4; margin: 32px 0; }
.academy-check fieldset { border: 0; padding: 0; min-width: 0; }
.academy-check legend { font: 600 1.15rem/1.5 var(--sans); margin-bottom: 20px; }
.academy-option { display: flex; gap: 12px; padding: 14px 16px; margin-bottom: 10px; border: 1px solid #c8bfaa; background: #faf9f6; cursor: pointer; font-size: .93rem; line-height: 1.5; }
.academy-option:has(input:checked) { border: 2px solid #7f6714; padding: 13px 15px; background: #f5eedb; }
.academy-option input { margin-top: 4px; accent-color: #7f6714; flex-shrink: 0; }
.academy-check [data-practice-feedback]:empty { display: none; }
.academy-check [data-practice-feedback] { font-weight: 600; padding-top: 16px; }
.academy-explanation { margin-top: 20px; }
.academy-explanation summary { cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }
.academy-explanation p { margin-top: 16px; }
.academy-lab h3 { margin-top: 0 !important; }
.academy-lab { scroll-margin-top: 110px; }
.academy-flow-mobile { display: none; }
.academy-lab__controls { display: grid; gap: 18px; margin: 24px 0; }
.academy-lab__controls label { display: block; font-size: .88rem; line-height: 1.7; }
.academy-lab select { display: block; width: 100%; padding: 12px; background: #faf9f6; border: 1px solid #8b8068; color: #14140f; font: inherit; margin-top: 8px; }
.academy-flow { width: 100%; height: auto; color: #7f6714; overflow: visible; }
.academy-flow rect { fill: #faf9f6; stroke: #8b8068; stroke-width: 1; }
.academy-flow text { fill: #14140f; font: 500 14px Inter, sans-serif; text-anchor: middle; }
.academy-flow .flow-small { font-size: 11px; }
.academy-decision { padding: 20px; background: #161616; color: #f4f2ec; border-left: 3px solid #d4af37; }
.academy-decision strong { font: 600 .8rem var(--mono); letter-spacing: .06em; color: #e6c04a; }
.academy-decision p { margin: 12px 0 0 !important; font-size: .9rem !important; }
.academy-lab figcaption { font-size: .88rem; line-height: 1.7; }
.academy-assessment { padding: clamp(24px, 4vw, 40px) !important; background: #e9e4d6; border: 1px solid #b1a481; }
.academy-assessment .academy-button { margin-top: 24px; }
.academy-check[hidden], .academy-button[hidden], .academy-chapter-end [hidden], .academy-progress[hidden], .course--reader .rd-lesson[hidden] { display: none !important; }
@media (max-width: 900px) {
 .course--reader .rd-grid { grid-template-columns: minmax(0, 1fr); }
 .course--reader .rd-rail { position: static; max-height: none; padding: 0; }
 .course--reader .rd-rail nav { max-height: 260px; overflow-y: auto; border: 1px solid #d9d6cc; padding: 12px; }
 .academy-toolbar, .academy-chapter-end { flex-wrap: wrap; }
 .academy-flow text { font-size: 15px; }
}
@media print {
 .course--reader .rd-lesson[hidden] { display: block !important; }
 .academy-toolbar, .academy-chapter-end, .academy-progress, [data-check-answer], .academy-lab__controls { display: none !important; }
}
@media screen and (max-width: 520px) {
 .academy-flow { display: none; }
 .academy-flow-mobile { display: grid; gap: 10px; padding-left: 24px; margin: 24px 0; }
 .academy-flow-mobile li { padding: 8px; border-bottom: 1px solid #c8bfaa; font-size: .88rem; line-height: 1.6; }
 .academy-flow-mobile small { display: block; font-size: .8rem; }
}
/* The native download form remains available with scripts disabled or unsupported. */
.download-form { margin-top: 2rem; padding: clamp(1rem, 3vw, 1.75rem); border: 1px solid currentColor; border-radius: 14px; scroll-margin-top: 7rem; }
.download-form .ta-gate__field { max-width: 34rem; }
.download-form .ta-gate__field label { color: var(--rd-ink); }
.download-form .ta-gate__field input { display: block; box-sizing: border-box; width: 100%; padding: .85rem 1rem; border: 1px solid var(--rd-muted); background: var(--rd-paper); color: var(--rd-ink); font: inherit; border-radius: 8px; }
.academy-written { padding: 1.25rem 0; border-bottom: 1px solid var(--rd-line); }
.academy-written summary { padding: .6rem 0; cursor: pointer; font-weight: 600; }
.download-form:target { outline: 3px solid #b89245; outline-offset: 5px; }
.academy-study-context { margin: 2rem 0; padding: clamp(1rem, 3vw, 2rem); border: 1px solid #b1a481; }
.academy-study-context select { display: block; padding: .8rem; margin: 1rem 0; max-width: 100%; background: #f6f5f1; color: #171812; border: 1px solid #817449; font: inherit; }
.academy-study-context select:focus-visible { outline: 3px solid #9a7d1e; outline-offset: 4px; }
.academy-diagram { overflow-wrap: anywhere; }
/* Course registration is a progressive enhancement of the public lessons. */
.course-start{scroll-margin-top:7rem;padding:1.5rem;border:1px solid #b99b5966;border-radius:1rem;background:linear-gradient(135deg,#fffaf0,#f1e8d4);color:#24211b}
.course-start details{margin-top:1rem}
.course-start summary{cursor:pointer;font-weight:700;padding:.75rem 0;min-height:44px}
.course-start__fields{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.course-start input:not([type=checkbox]){width:100%;background:#fffdf7!important;color:#24211b!important;border:1px solid #85734f!important;box-sizing:border-box}
.course-start label,.course-start .rd-dl-note{color:#464035}
.course-start a{color:#58401b;text-decoration:underline;text-underline-offset:.2em}
.course-start .consent-choice{display:flex;align-items:flex-start;gap:.75rem;margin:1rem 0;line-height:1.6}
.course-start .consent-choice input{flex:0 0 auto;width:20px;height:20px;margin-top:.2rem;accent-color:#70551f}
.course-start :focus-visible{outline:3px solid #70551f;outline-offset:4px}
.course-start__status{min-height:1.6em;font-weight:600}
.course-start [aria-busy=true]{opacity:.85}
@media(max-width:540px){.course-start{padding:1rem}.course-start__fields{grid-template-columns:1fr}.course-start button{max-width:100%;white-space:normal}}
