/* EDULIBRARY — PASS 3: the families the first two passes never saw.
 *
 * Found by sweeping every route for classes that appear in the DOM but match
 * no rule in any loaded sheet. Deleting the twenty-five page stylesheets took
 * these with them, and passes 1 and 2 only covered the classes sampled from a
 * stale build — which is why the article, the course profile and the college
 * directory rendered as unstyled markup.
 *
 * Two of these are not cosmetic. `.edu-visually-hidden` left screen-reader-only
 * text VISIBLE on 1,655 elements, and `.is-beyond-page` left all 1,654 course
 * shelves rendered at once with the pagination doing nothing.
 *
 * Every value is a kit token.
 */

.edu-visually-hidden, .visually-hidden {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.is-beyond-page { display: none; }

/* ══ ARTICLE ═════════════════════════════════════════════════════════════ */

.pf-panel { display: grid; gap: var(--s4); min-width: 0; }
.ans-crumb { display: none; }
.ans-lede { font: 400 20px/1.5 var(--font); color: var(--ink); max-width: 62ch; }
.ans-reading-meta { font: 400 13px/1.45 var(--font); color: var(--slate); }

/* ⚠️ surface, not surface-alt: action-blue on #EDF3F8 is 4.36:1, under the AA
   floor. On white it is 4.62:1. The pair, not the token, was the problem. */
.ans-toc {
  background: var(--surface); border: 1px solid var(--rule);
  border-radius: var(--r-card); padding: 0 var(--s4);
}
.ans-toc > summary {
  display: flex; align-items: center; justify-content: space-between; gap: var(--s3);
  min-height: var(--target); cursor: pointer; list-style: none;
  font: 700 14px/1 var(--font); color: var(--action-blue);
}
.ans-toc > summary::-webkit-details-marker { display: none; }
.ans-toc > summary::after { content: '\25BE'; transition: transform var(--t-disclosure); }
.ans-toc[open] > summary::after { transform: rotate(180deg); }
.ans-toc ol { display: grid; padding-bottom: var(--s3); }
.ans-toc a {
  display: flex; align-items: center; gap: var(--s2);
  min-height: var(--target); font: 400 14px/1.4 var(--font); text-decoration: none;
  border-top: 1px solid var(--rule-soft);
}

.ans-body { display: grid; gap: var(--s4); max-width: 66ch; }
.ans-body h2 { font: 700 26px/1.2 var(--font); letter-spacing: -.02em; padding-top: var(--s4); }
.ans-body h3 { font: 700 21px/1.25 var(--font); }
.ans-body p { font: 400 17px/1.65 var(--font); }
.ans-body ul, .ans-body ol { display: grid; gap: var(--s2); }
.ans-body li { font: 400 17px/1.6 var(--font); padding-left: var(--s4); position: relative; }
.ans-body li::before { content: '\00B7'; position: absolute; left: var(--s2); color: var(--slate); }
.ans-body a { text-decoration: underline; }

/* Contained horizontal scroll with a visible cue — never document overflow. */
.ans-tablewrap { overflow-x: auto; border: 1px solid var(--rule); border-radius: var(--r-card); background: var(--surface); }
.ans-tablewrap:focus-visible { outline: 2px solid var(--action-blue); outline-offset: 2px; }
.ans-tablewrap__hint { font: 400 13px/1.4 var(--font); color: var(--slate); padding-top: var(--s2); }
.ans-table { width: 100%; border-collapse: collapse; }
.ans-table th, .ans-table td {
  padding: var(--s3) var(--s4); border-bottom: 1px solid var(--rule-soft);
  text-align: left; font: 400 15px/1.45 var(--font); white-space: nowrap;
}
.ans-table thead th {
  font: 700 11px/1 var(--font); letter-spacing: .14em; text-transform: uppercase;
  color: var(--slate); background: var(--surface-alt);
}

.ans-figure { display: grid; gap: var(--s2); margin: 0; }
.ans-figure img { width: 100%; height: auto; border: 1px solid var(--rule); border-radius: var(--r-card); display: block; }
.ans-figure figcaption { font: 400 13px/1.45 var(--font); color: var(--slate); }

.ans-srcs { display: grid; gap: var(--s3); padding-top: var(--s4); border-top: 1px solid var(--rule); }
.ans-srcs__head { font: 700 21px/1.22 var(--font); letter-spacing: -.02em; }

/* A source row: a document glyph, the title in italic, the read note beneath. */
.intro { display: grid; }
.intro__row {
  display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--s3);
  padding: var(--s3) 0; border-bottom: 1px solid var(--rule-soft); align-items: start;
}
.intro__icon { width: 20px; height: 20px; fill: none; stroke: var(--slate); stroke-width: 1.6; }
.intro__text { display: grid; gap: 2px; min-width: 0; }
.intro__t { font: 400 15px/1.45 var(--font); font-style: italic; text-decoration: none; min-height: var(--target); display: flex; align-items: center; }
.intro__t:hover { text-decoration: underline; }
.intro__s { font: 400 13px/1.4 var(--font); color: var(--slate); }

.ans-share, .pf-btnrow { display: flex; flex-wrap: wrap; gap: var(--s3); padding-top: var(--s3); }
.ans-share__act, .pf-btn {
  display: inline-flex; align-items: center; gap: var(--s2);
  min-height: var(--target); padding: 0 var(--s4);
  background: var(--surface); color: var(--action-blue);
  border: 1px solid var(--rule); border-radius: var(--r-control);
  font: 700 14px/1 var(--font); text-decoration: none;
}
.ans-share__act:hover, .pf-btn:hover { background: var(--surface-alt); }
.ans-share__act svg, .pf-btn svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; }
.pf-fine { font: 400 13px/1.45 var(--font); color: var(--slate); max-width: 66ch; }

.answer-section-head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--s3); flex-wrap: wrap; }
.answer-section-head__meta { font: 400 13px/1.4 var(--font); color: var(--slate); }

/* Related answers */
.pcards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s3); }
.pcard {
  display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--s3);
  align-items: start; padding: var(--s3);
  background: var(--surface); border: 1px solid var(--rule); border-radius: var(--r-card);
  position: relative; transition: background-color var(--t-action);
}
.pcard:hover { background: var(--surface-alt); }
.pcard__thumb { width: 44px; height: 44px; border-radius: var(--r-control); overflow: hidden; background: var(--surface-alt); }
.pcard__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pcard__text { display: grid; gap: 2px; min-width: 0; }
.pcard__q { font: 700 15px/1.35 var(--font); color: var(--ink); text-decoration: none; }
.pcard__q::after { content: ''; position: absolute; inset: 0; }
.pcard:hover .pcard__q { color: var(--action-blue); }
.pcard__a, .pcard__meta { font: 400 13px/1.45 var(--font); color: var(--slate); }

/* ══ COURSE PROFILE ══════════════════════════════════════════════════════ */

.course-hero__copy { display: grid; gap: var(--s3); }
.course-field-map__content { display: grid; gap: var(--s2); }
.offering__media {
  flex: 0 0 auto; position: relative; width: 44px; height: 44px;
  border-radius: var(--r-card); overflow: hidden; background: var(--surface-alt);
  display: grid; place-items: center;
}
.offering__placeholder { position: absolute; inset: 0; background: repeating-linear-gradient(135deg, #F5F8FB 0 10px, #E7EFF6 10px 20px); }
.offering__logo { position: relative; width: 100%; height: 100%; display: grid; place-items: center; }
.offering__logo img { max-width: 80%; max-height: 80%; object-fit: contain; }
.offering__monogram { position: relative; font: 700 13px/1 var(--font); color: var(--field-navy); }
.offering__body { flex: 1 1 auto; min-width: 0; display: grid; gap: 2px; }
.offering__name { font: 700 16px/1.3 var(--font); color: var(--ink); text-decoration: none; }
.offering:hover .offering__name { color: var(--action-blue); }
.offering__meta, .offering__read { font: 400 13px/1.4 var(--font); color: var(--slate); }
.offering__facts { display: flex; flex-wrap: wrap; gap: var(--s2); padding-top: var(--s1); }

.course-sources > summary {
  display: flex; align-items: baseline; justify-content: space-between; gap: var(--s3);
  min-height: var(--target); cursor: pointer; list-style: none;
  font: 700 16px/1 var(--font); color: var(--action-blue);
}
.course-sources > summary::-webkit-details-marker { display: none; }
.course-sources > summary small { font: 400 13px/1.4 var(--font); color: var(--slate); }
.course-sources__body { padding-top: var(--s3); }
.course-sources__body ol { display: grid; }
.course-sources__body li { padding: var(--s3) 0; border-bottom: 1px solid var(--rule-soft); font: 400 15px/1.45 var(--font); }
.course-answer-link { display: grid; gap: var(--s3); }

/* ══ COLLEGES DIRECTORY ══════════════════════════════════════════════════ */

.cdir { display: grid; gap: var(--s4); }
.cdir__rule { border: 0; border-top: 1px solid var(--rule-soft); margin: 0; }
.cdir-filter__foot { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3); padding-top: var(--s2); }
.cdir-filter__reset { font: 700 14px/1 var(--font); min-height: var(--target); display: inline-flex; align-items: center; }
.cdir-bar {
  display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3);
  padding: var(--s3) var(--s4); background: var(--surface-alt);
  border: 1px solid var(--rule); border-radius: var(--r-card);
}
.cdir-bar__state { font: 700 16px/1 var(--font); }
.cdir-bar__actions { margin-left: auto; display: flex; flex-wrap: wrap; gap: var(--s3); }
.cdir-bar__link, .cdir-bar__clear {
  min-height: var(--target); display: inline-flex; align-items: center;
  font: 700 14px/1 var(--font); text-decoration: none;
  background: none; border: 0; cursor: pointer; color: var(--action-blue);
}
.cdir__empty {
  display: grid; gap: var(--s3); justify-items: start; padding: var(--s6);
  background: var(--surface); border: 1px solid var(--rule); border-radius: var(--r-card);
}
.cdir__empty-head { font: 700 21px/1.22 var(--font); }
.cdir__empty-filters, .cdir__empty-help { font: 400 15px/1.5 var(--font); color: var(--slate); }
/* The reset is the primary action, not a suggestion list. */
.cdir__empty-reset {
  display: inline-flex; align-items: center; min-height: var(--target); padding: 0 var(--s5);
  background: var(--action-blue); color: #fff; border: 0; border-radius: var(--r-control);
  font: 700 16px/1 var(--font); text-decoration: none; cursor: pointer;
}
.cdir__empty-reset:hover { background: var(--action-blue-hover); color: #fff; }

.cshort {
  display: grid; gap: var(--s3); padding: var(--s4);
  background: var(--surface); border: 1px solid var(--rule); border-radius: var(--r-card);
}
.cshort__text { display: grid; gap: var(--s1); }
.cshort__title { font: 700 17px/1.3 var(--font); }
.cshort__note { font: 400 13px/1.45 var(--font); color: var(--slate); }
.cshort__list { display: grid; }
.cshort__list li { padding: var(--s2) 0; border-bottom: 1px solid var(--rule-soft); font: 400 15px/1.4 var(--font); }
.cshort__actions { display: flex; flex-wrap: wrap; gap: var(--s3); }
.cshort__go {
  display: inline-flex; align-items: center; min-height: var(--target); padding: 0 var(--s5);
  background: var(--action-blue); color: #fff; border-radius: var(--r-control);
  font: 700 16px/1 var(--font); text-decoration: none;
}
.cshort__go:hover { background: var(--action-blue-hover); color: #fff; }
.cshort__clear { background: none; border: 0; cursor: pointer; color: var(--action-blue); font: 700 14px/1 var(--font); min-height: var(--target); }

.col-disclosure > summary {
  display: flex; align-items: center; gap: var(--s2); min-height: var(--target);
  cursor: pointer; font: 700 14px/1 var(--font); color: var(--action-blue); list-style: none;
}
.col-disclosure > summary::-webkit-details-marker { display: none; }
.col-disclosure > summary::after { content: '\25BE'; }

/* ══ COURSES DIRECTORY ═══════════════════════════════════════════════════ */

.course-v2-card__body { display: grid; gap: var(--s1); min-width: 0; }
.course-v2-empty {
  display: grid; gap: var(--s3); justify-items: start; padding: var(--s6);
  background: var(--surface); border: 1px solid var(--rule); border-radius: var(--r-card);
}
.course-v2-pagination { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2); padding-top: var(--s4); }
.course-v2-pagination__pages { display: flex; flex-wrap: wrap; gap: var(--s2); }
.course-v2-pagination a, .course-v2-pagination button, .course-v2-pagination span {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: var(--target); min-height: var(--target); padding: 0 var(--s3);
  border: 1px solid var(--rule); border-radius: var(--r-control);
  background: var(--surface); color: var(--action-blue);
  font: 700 14px/1 var(--font); text-decoration: none; cursor: pointer;
}
.course-v2-pagination .is-current, .course-v2-pagination [aria-current="page"] {
  background: var(--field-navy); color: var(--on-navy); border-color: var(--field-navy);
}
.course-v2-method { display: grid; gap: var(--s2); }
.course-v2-method__legend, .course-v2-updated { font: 400 13px/1.45 var(--font); color: var(--slate); max-width: 66ch; }
/* Evidence state, carried quietly — the owner direction of 2026-09-11. */
.is-pending, .is-reviewed { font: 400 13px/1.4 var(--font); color: var(--slate); }

/* ══ ANSWER SHELVES ══════════════════════════════════════════════════════ */

.answer-directory { display: grid; gap: var(--s4); }
.answer-directory__intro { font: 400 16px/1.55 var(--font); color: var(--slate); max-width: 66ch; }
.answer-shelf { display: grid; gap: var(--s5); }
.answer-shelf__body { display: grid; gap: var(--s3); }
.answer-shelf__next { font: 700 14px/1 var(--font); min-height: var(--target); display: inline-flex; align-items: center; }
.answer-course-list { display: grid; }
.answer-course-more, .search-more {
  justify-self: start; min-height: var(--target); padding: 0 var(--s5);
  background: var(--surface); color: var(--action-blue);
  border: 1px solid var(--rule); border-radius: var(--r-control);
  font: 700 14px/1 var(--font); cursor: pointer;
}

/* ══ SEARCH ══════════════════════════════════════════════════════════════ */

.search-empty, .search-fallback { display: grid; gap: var(--s3); font: 400 15px/1.5 var(--font); color: var(--slate); }

/* ══ DISCOVERY ═══════════════════════════════════════════════════════════ */

.discovery-actions { display: flex; flex-wrap: wrap; gap: var(--s3); }
.discovery-actions a {
  display: inline-flex; align-items: center; gap: var(--s1);
  min-height: var(--target); padding: 0 var(--s4);
  background: var(--surface); color: var(--action-blue);
  border: 1px solid var(--rule); border-radius: var(--r-chip);
  font: 700 14px/1 var(--font); text-decoration: none;
}
.discovery-actions a:hover { background: var(--surface-alt); }
.discovery-card__title { font: 700 17px/1.3 var(--font); color: var(--ink); }
.discovery-course-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--s5); }
.discovery-course-links a {
  display: flex; align-items: center; min-height: var(--target-row);
  border-bottom: 1px solid var(--rule-soft); text-decoration: none; font: 400 15px/1.4 var(--font);
}

@media (max-width: 760px) {
  .pcards, .answer-published-groups, .discovery-course-links { grid-template-columns: minmax(0, 1fr); }
  .ans-body p, .ans-body li { font-size: 16px; }
  .ans-lede { font-size: 18px; }
}

/* Wrapper containers whose children are styled above. */
.college-research__programmes { display: grid; }
.col-sources { display: grid; gap: var(--s2); }
