/* Reading layer only. Brand tokens and Newsreader are supplied by editorial-tokens.css. */
.editorial-reader {
  --reader-font-ui: var(--font-technical, system-ui, -apple-system, "Segoe UI", sans-serif);
  --reader-ink: #2d3748;
  --reader-width: 720px;
  --reader-header-offset: 92px;
  background: #fff;
}
.editorial-reader .reader-main { max-width: 1180px; margin-inline: auto; }
.editorial-reader .reader-layout {
  display: grid;
  grid-template-columns: minmax(210px, 250px) minmax(0, 720px);
  align-items: start;
  gap: clamp(30px, 4vw, 64px);
  margin-block-start: 38px;
}
.editorial-reader .reader-layout > .reader-toc { grid-column: 1; grid-row: 1; order: 0; }
.editorial-reader .reader-layout > .article-body { grid-column: 2; grid-row: 1; order: 1; }
.editorial-reader .article-body { min-width: 0; width: 100%; max-width: var(--reader-width); }
.editorial-reader .article-body p,
.editorial-reader .hist-intro > .hist-lead,
.editorial-reader .reader-main > .lead {
  font-family: "Newsreader", Georgia, serif;
  font-size: 18.5px;
  font-weight: 400;
  line-height: 1.75;
  color: var(--reader-ink);
  max-width: var(--reader-width);
  margin-block: 0 1.35em;
  overflow-wrap: break-word;
}
.editorial-reader .article-body h2,
.editorial-reader .article-body h3,
.editorial-reader .reader-main h1 {
  font-family: var(--reader-font-ui);
  color: var(--color-brand-primary, #0b2d3e);
  text-wrap: balance;
}
.editorial-reader .article-body h2 { font-size: clamp(25px, 2.3vw, 31px); line-height: 1.3; margin-block: 2em .75em; }
.editorial-reader .article-body h3 { font-size: clamp(21px, 1.8vw, 24px); line-height: 1.4; margin-block: 1.6em .65em; }
.editorial-reader .article-body > h2:first-child,
.editorial-reader .article-body > section:first-child > h2:first-child { margin-top: 0; }
.editorial-reader .article-body :is(h2, h3, section[id]) { scroll-margin-top: 0 !important; }
.editorial-reader .article-body :is(table, th, td, figcaption, .meta, .citation, .refs, .references, .hist-refs, .reading-meta) {
  font-family: var(--reader-font-ui);
}
.editorial-reader .article-body :is(.refs, .references, .hist-refs) p {
  font-family: var(--reader-font-ui); font-size: 15px; line-height: 1.7;
}
.editorial-reader .article-body :is(figcaption, td, th, .meta, .reading-meta) p {
  font-family: var(--reader-font-ui); font-size: 14px; line-height: 1.65; margin-block: 0 .7em;
}
.editorial-reader .article-body :is(.callout-key-concept, .citation) p {
  font-family: var(--reader-font-ui); font-size: 16px; line-height: 1.75;
}
.editorial-reader .article-body :is(ul, ol) { color: var(--reader-ink); line-height: 1.75; }
.editorial-reader .article-body :is(table) { font-size: 15px; line-height: 1.65; }
.editorial-reader .article-body :is(table) th { background: var(--color-brand-primary, #0b2d3e); color: #fff; }
.editorial-reader .article-body :is(.table-scroll, .table-wrap, .hist-table, .efb-table) { max-width: 100%; overflow-x: auto; }
.editorial-reader .article-body figure { max-width: 100%; margin-inline: 0; }
.editorial-reader .article-body :is(img, video, iframe) { max-width: 100%; }
.editorial-reader .article-body figcaption { font-size: 14px; line-height: 1.65; color: #526876; }
.editorial-reader .reader-toc {
  position: sticky;
  top: var(--reader-header-offset);
  align-self: start;
  min-width: 0;
  max-height: calc(100dvh - var(--reader-header-offset) - 24px);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  padding: 0 10px 12px 0;
  background: transparent;
  font: 14px/1.5 var(--reader-font-ui);
}
.editorial-reader .reader-toc summary {
  display: block; padding: 0 0 16px; list-style: none; font-size: 15px; font-weight: 750;
  color: var(--color-brand-primary, #0b2d3e);
}
.editorial-reader .reader-toc summary::-webkit-details-marker { display: none; }
.editorial-reader .reader-toc nav { display: block; width: 100%; margin: 0; }
.editorial-reader .reader-toc :is(ol, ul) { margin: 0; padding: 0; list-style: none; }
.editorial-reader .reader-toc .reader-toc-link {
  display: block;
  margin: 0;
  padding: 8px 10px 8px 13px;
  border-left: 2px solid transparent;
  text-decoration: none;
  color: #526876;
  font-weight: 450;
  overflow-wrap: break-word;
}
.editorial-reader .reader-toc .reader-toc-link[data-level="3"] { padding-left: 25px; font-size: 13px; }
.editorial-reader .reader-toc .reader-toc-link:hover { color: var(--color-brand-primary, #0b2d3e); background: var(--color-bg-subtle, #f4f8fa); }
.editorial-reader .reader-toc .reader-toc-link[aria-current="location"] {
  border-left-color: var(--color-brand-primary, #0b2d3e);
  color: var(--color-brand-primary, #0b2d3e);
  font-weight: 750;
  background: var(--color-bg-subtle, #f4f8fa);
}
.editorial-reader .reader-toc details:not([open]) > nav { display: none; }
.editorial-reader .reader-toc .hist-search { display: inline-block; margin-top: 18px; font-size: 13px; }
.editorial-reader .reader-progress {
  position: fixed;
  inset: 0 auto auto 0;
  width: 100%;
  height: 3px;
  z-index: 1000;
  pointer-events: none;
  background: var(--color-brand-secondary, #087c88);
  transform: scaleX(0);
  transform-origin: left center;
  will-change: transform;
}
.editorial-reader a.reader-header-link,
.editorial-reader .hist-actions a.reader-header-link {
  display: inline;
  padding: 0;
  margin: 0;
  min-height: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--color-brand-secondary, #087c88);
  font: 600 14px/1.65 var(--reader-font-ui);
  text-decoration: underline;
  text-underline-offset: 4px;
}
.editorial-reader a.reader-header-link::after { content: " ↓"; }
.editorial-reader a.reader-header-link:hover { color: var(--color-brand-primary, #0b2d3e); transform: none; }
.editorial-reader .callout-key-concept {
  background: var(--color-bg-subtle, #f4f8fa);
  border: 0;
  border-left: 4px solid var(--color-brand-primary, #0b2d3e);
  border-radius: 0 10px 10px 0;
  margin-block: 28px;
  padding: 22px 25px;
}
.editorial-reader .callout-key-concept :is(h2, h3) { margin-top: 0; font-size: 21px; font-weight: 750; }
.editorial-reader .callout-key-concept p { font-family: var(--reader-font-ui); font-size: 16px; line-height: 1.75; }
.editorial-reader .pull-quote {
  font-family: "Newsreader", Georgia, serif;
  font-size: 24px;
  font-style: italic;
  line-height: 1.55;
  text-align: center;
  margin: 38px 0;
  padding: 25px 18px;
  border: 0;
  border-block: 1px solid #d2e1e5;
  background: transparent;
  color: var(--color-brand-primary, #0b2d3e);
}
.editorial-reader .pull-quote p { font-size: inherit; line-height: inherit; margin: 0 0 .6em; }
.editorial-reader .pull-quote cite { font: normal 14px/1.65 var(--reader-font-ui); }
.editorial-reader [data-reader-citation] { text-decoration-style: dotted; text-underline-offset: 3px; }
.editorial-reader .reader-citation-popover {
  position: fixed;
  z-index: 1100;
  width: min(440px, calc(100vw - 32px));
  max-height: min(360px, calc(100dvh - 32px));
  overflow-y: auto;
  padding: 17px 20px;
  border: 1px solid #cddde3;
  border-top: 3px solid var(--color-brand-secondary, #087c88);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 8px 30px rgba(11, 45, 62, .14);
  color: var(--reader-ink);
  font: 14px/1.65 var(--reader-font-ui);
  overflow-wrap: anywhere;
}
.editorial-reader .reader-citation-popover[hidden] { display: none; }
.editorial-reader .reader-citation-popover strong { display: block; color: var(--color-brand-primary, #0b2d3e); margin-bottom: 7px; }
.editorial-reader .reader-citation-popover p { margin: 0; font: inherit; }
.editorial-reader .reader-citation-popover .reader-citation-url { margin-top: 8px; color: #526876; font-size: 12px; }
.editorial-reader .reader-citation-popover .reader-citation-touch { margin-top: 10px; font-size: 12px; color: #526876; }
.editorial-reader :is(.reader-toc-link, .reader-header-link, [data-reader-citation], .reader-toc summary):focus-visible { outline: 3px solid var(--color-brand-accent, #ff6b17); outline-offset: 3px; }
@media (max-width: 940px) {
  .editorial-reader .reader-layout { display: block; }
  .editorial-reader .reader-layout > .reader-toc { grid-column: 1; grid-row: 1; order: 0; }
  .editorial-reader .reader-layout > .article-body { grid-column: 1; grid-row: 2; order: 1; }
  .editorial-reader .article-body { margin-inline: auto; }
  .editorial-reader .reader-toc {
    position: static; max-height: none; padding: 0; margin: 0 auto 32px; max-width: var(--reader-width);
    border: 1px solid #d2e1e5; border-radius: 10px; background: var(--color-bg-subtle, #f4f8fa);
  }
  .editorial-reader .reader-toc summary { padding: 15px 18px; cursor: pointer; display: flex; align-items: center; justify-content: space-between; }
  .editorial-reader .reader-toc summary::after { content: "+"; font-size: 23px; font-weight: 400; }
  .editorial-reader .reader-toc details[open] summary::after { content: "−"; }
  .editorial-reader .reader-toc nav { max-height: min(55dvh, 420px); overflow-y: auto; padding: 0 10px 15px; }
  .editorial-reader .reader-toc .hist-search { margin: 0 18px 16px; }
}
@media (max-width: 600px) {
  .editorial-reader .reader-main { padding-inline: 20px; }
  .editorial-reader .article-body p, .editorial-reader .hist-intro > .hist-lead, .editorial-reader .reader-main > .lead { font-size: 18.5px; }
  .editorial-reader .article-body table { font-size: 14px; }
  .editorial-reader .callout-key-concept { padding: 18px 19px; }
}
@media (prefers-reduced-motion: reduce) {
  .editorial-reader :is(.reader-progress, .reader-toc-link, .reader-header-link) { transition: none !important; animation: none !important; }
}
@media print {
  .editorial-reader .reader-layout { display: block; }
  .editorial-reader :is(.reader-progress, .reader-toc, .reader-citation-popover) { display: none !important; }
  .editorial-reader .article-body { max-width: none; }
}

/* Text on existing dark teaching resources must retain its own contrast. */
.editorial-reader .article-body .download-box {
  color: #f2f8fa;
}
.editorial-reader .article-body .download-box :is(h2, h3, h4) {
  color: #fff;
  margin-top: .6em;
}
.editorial-reader .article-body .download-box :is(p, ul, ol, li, strong, em, cite) {
  color: #e2eef2;
}
.editorial-reader .article-body .download-box .eyebrow {
  color: #ffd4b6;
  margin-bottom: 1rem;
}
.editorial-reader .article-body .download-box a:not(.button) {
  color: #a9e8ed;
  text-decoration: underline;
  text-underline-offset: .2em;
}
.editorial-reader .article-body .download-box .button {
  color: #092333;
}
.editorial-reader .article-body .download-box a:focus-visible {
  outline: 3px solid #a9e8ed;
  outline-offset: 4px;
}
/* The outer physiological map is light; only its inner cells are dark. */
.editorial-reader .article-body .phys-map li,
.editorial-reader .article-body .phys-map li :is(p, strong, em, cite, span) {
  color: #f2f8fa;
}
.editorial-reader .article-body .phys-map li a {
  color: #a9e8ed;
}
.editorial-reader .article-body th :is(p, h2, h3, h4, ul, ol, li, a) {
  color: inherit;
}
@media print {
  .editorial-reader .article-body .download-box {
    background: #fff;
    color: #0b2d3e;
    border: 1px solid #b9cdd4;
  }
  .editorial-reader .article-body .download-box :is(h2, h3, h4, p, ul, ol, li, strong, em, cite, .eyebrow),
  .editorial-reader .article-body .download-box a:not(.button),
  .editorial-reader .article-body .phys-map li,
  .editorial-reader .article-body .phys-map li :is(p, strong, em, cite, span, a) {
    color: #0b2d3e;
  }
}
