.ecosystem {
  padding: clamp(2.4rem, 4.8vw, 4.25rem) var(--ledger-gutter);
  background: var(--ledger-paper);
  color: var(--ledger-ink);
  line-height: 1.65;
}
.ecosystem > * { max-width: 68rem; margin-inline: auto; }
.ecosystem :is(h1, h2, h3) { margin: 0; font-family: var(--ledger-display); font-weight: 510; letter-spacing: -.028em; line-height: 1.05; }
.ecosystem h1 { max-width: 19ch; font-size: clamp(2.75rem, 6.1vw, 5.25rem); text-wrap: balance; }
.ecosystem h2 { font-size: clamp(2rem, 4vw, 3.25rem); text-wrap: balance; }
.ecosystem h3 { font-size: clamp(1.38rem, 2.7vw, 1.85rem); }
.ecosystem p { max-width: 68ch; }
.ecosystem-heading > p, .ecosystem-service-copy > h1 + p { margin-block: 1.15rem 1.45rem; font-size: clamp(1.03rem, 1.7vw, 1.23rem); color: var(--ledger-muted); }
.ecosystem-service-hero { display: grid; grid-template-columns: minmax(0, 1.06fr) minmax(0, .94fr); align-items: center; gap: clamp(1.5rem, 4vw, 3.25rem); }
.ecosystem-service-hero h1 { font-size: clamp(2.75rem, 5.2vw, 4.75rem); }
.ecosystem-service-terms { margin-block: .65rem 0; color: var(--ledger-muted); font-size: .95rem; }
.ecosystem-service-photo { margin: 0; }
.ecosystem-service-photo img { display: block; width: 100%; height: auto; }
.ecosystem-service-photo figcaption { margin-top: .45rem; color: var(--ledger-muted); font-size: .85rem; }
.ecosystem :is(#school-comparison, #implementation-example) { scroll-margin-top: 6rem; }
.ecosystem-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem 1.25rem; }
.ecosystem .text-link { display: inline-flex; align-items: center; min-height: 44px; color: var(--ledger-copper); margin: 0; }
.ecosystem-heading + :is(section, div), .ecosystem > :is(section, div) + section { margin-top: clamp(2.4rem, 4.8vw, 4.3rem); }
.ecosystem-heading + .ecosystem-tracks { margin-top: 1.65rem; }
.ecosystem-track-choices, .ecosystem-track-photos > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1rem, 3vw, 2.3rem); }
.ecosystem-track-choices article { display: flex; flex-direction: column; align-items: flex-start; border-top: 1px solid var(--ledger-rule); padding: .85rem 0 .5rem; }
.ecosystem-track-choices p { margin: .4rem 0 .1rem; }
.ecosystem-track-choices .text-link { margin-top: auto; }
.ecosystem-track-photos { margin: .65rem 0 0; }
.ecosystem-track-photos img { display: block; width: 100%; aspect-ratio: 2 / 1; height: auto; object-fit: cover; object-position: center 36%; }
.ecosystem-track-photos figcaption { margin-top: .5rem; color: var(--ledger-muted); font-size: .85rem; }
.ecosystem-index a:hover { background: var(--ledger-surface); }
.ecosystem-index, .ecosystem-resources { margin: 1.3rem 0 0; padding: 0; list-style: none; border-top: 1px solid var(--ledger-rule); }
.ecosystem-index a {
  display: grid; grid-template-columns: minmax(10rem, .7fr) minmax(0, 1fr) auto;
  align-items: baseline; gap: .25rem 1rem; min-height: 44px;
  padding: .9rem .3rem; border-bottom: 1px solid var(--ledger-rule); text-decoration: none;
}
.ecosystem-index a span { color: var(--ledger-muted); }
.ecosystem-index a .ecosystem-arrow { color: var(--ledger-copper); }
.ecosystem-ledger { margin: 1.25rem 0; border-top: 1px solid var(--ledger-rule); }
.ecosystem-ledger > div { display: grid; grid-template-columns: minmax(10rem, .6fr) minmax(0, 1fr); gap: .25rem 1.3rem; padding: 1rem 0; border-bottom: 1px solid var(--ledger-rule); }
.ecosystem-ledger dt { font-weight: 760; }
.ecosystem-ledger dd { margin: 0; }
.ecosystem-ledger a { color: var(--ledger-copper); }
.ecosystem-note, .ecosystem-next { background: #e7eadd; padding: clamp(1.35rem, 4vw, 2.65rem); }
.ecosystem-note .text-link + .text-link { margin-inline-start: 1.2rem; }
.ecosystem-boundary, .ecosystem-limit { color: var(--ledger-muted); }
.ecosystem-workflow { padding: clamp(1.25rem, 4vw, 2.65rem); border: 1px solid var(--ledger-rule); background: var(--ledger-surface); }
.ecosystem-workflow > p { margin: .85rem 0 1.5rem; color: var(--ledger-muted); }
.ecosystem-workflow ol { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.1rem; margin: 0; padding: 0; list-style: none; }
.ecosystem-workflow li { border-top: 1px solid var(--ledger-rule); padding: .75rem 0 0; }
.ecosystem-workflow li > span { display: block; margin-bottom: .55rem; color: var(--ledger-copper); font-size: .85rem; font-weight: 740; font-variant-numeric: tabular-nums; }
.ecosystem-workflow li p { margin: .4rem 0 0; color: var(--ledger-muted); }
.ecosystem-resources > li { padding-block: 1.15rem 1.35rem; border-bottom: 1px solid var(--ledger-rule); }
.ecosystem-resources .ecosystem-meta { font-size: .88rem; color: var(--ledger-muted); margin: 0 0 .45rem; }
.ecosystem-meta:first-letter { text-transform: uppercase; }
.ecosystem-resources > li > p:not(.ecosystem-meta) { margin: .55rem 0; }
@media (max-width: 900px) {
  .ecosystem-workflow ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 800px) {
  .ecosystem-service-hero { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .ecosystem-track-choices, .ecosystem-ledger > div { grid-template-columns: minmax(0, 1fr); }
  .ecosystem-heading + .ecosystem-tracks { margin-top: 1rem; }
  .ecosystem-track-choices { gap: .35rem; }
  .ecosystem-track-choices p { line-height: 1.5; }
  .ecosystem-track-photos > div { gap: .55rem; }
  .ecosystem-track-photos img { aspect-ratio: 4 / 3; }
  .ecosystem-index a { grid-template-columns: minmax(0, 1fr) auto; }
  .ecosystem-index a span:not(.ecosystem-arrow) { grid-column: 1; grid-row: 2; }
  .ecosystem-index .ecosystem-arrow { grid-column: 2; grid-row: 1; }
  .ecosystem-note .text-link { display: flex; }
  .ecosystem-note .text-link + .text-link { margin-inline-start: 0; }
}
@media (max-width: 510px) {
  .ecosystem-workflow ol { grid-template-columns: minmax(0, 1fr); gap: .8rem; }
  .ecosystem-workflow li { display: grid; grid-template-columns: 1.5rem minmax(0, 1fr); gap: .55rem; align-items: baseline; }
}
.authority-page .ecosystem-heading h1 { max-width: 18ch; }
.authority-byline, .authority-limit, .authority-worksheet figcaption { color: #4c5e54; font-size: .88rem; }
.authority-sample { padding: clamp(1.6rem, 4vw, 3rem) 0; border-top: 1px solid #c8c3b3; }
.authority-reading { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: clamp(2rem, 6vw, 5rem); align-items: start; }
.authority-prose > section + section { margin-top: 2rem; }
.authority-prose p { max-width: 68ch; }
.authority-worksheet { background: #fcf8ee; border: 1px solid #c8c3b3; padding: clamp(1rem, 3vw, 1.8rem); }
.authority-worksheet figure { margin: 0 0 1.35rem; }
.authority-worksheet img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.authority-worksheet figcaption { padding-top: .4rem; }
.authority-notes { margin: 1rem 0; }
.authority-notes div { padding-block: .7rem; border-top: 1px solid #c8c3b3; }
.authority-notes dt { font-weight: 720; }
.authority-notes dd { margin: .25rem 0 0; max-width: 68ch; }
.authority-sources { margin-top: 2rem; padding-block: 1rem; border-top: 1px solid #c8c3b3; }
.authority-sources a { color: #963e29; }
@media (max-width: 720px) { .authority-reading { grid-template-columns: minmax(0, 1fr); } }
