/*
 * EduLibrary course surfaces — P-03/04/05/07/08/09/10,
 * D-01/03/04/05/06/09-20 and T-01-05/07-16.
 *
 * THESIS: an evidence runway, not a generic text catalogue. Subject imagery
 * opens the task, then gives way to compact, source-aware provider decisions.
 */

.course-page {
  width: min(100%, 1360px);
  margin: 0 auto;
  padding: 18px 0 72px;
  color: var(--edu-ink);
}

.course-page *, .course-page *::before, .course-page *::after { box-sizing: border-box; }

.course-crumb { margin: 0 0 16px; }
.course-crumb ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
  margin: 0;
  padding: 0;
  list-style: none;
  color: var(--edu-muted);
  font-size: 13px;
}
.course-crumb li + li::before { content: '/'; margin-right: 7px; color: var(--edu-line-strong, #9bb5c8); }
.course-crumb a { text-underline-offset: 3px; }

.course-hero__classification {
  margin: 10px 0 0;
  color: var(--edu-accent);
  font-size: 13px;
  font-weight: 720;
  line-height: 1.45;
}

.course-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 42fr) minmax(420px, 58fr);
  min-height: 570px;
  overflow: hidden;
  border: 0;
  border-top: 2px solid #7fc9ee;
  border-radius: 0;
  background: #eaf6fd;
  box-shadow: none;
}

.course-hero__copy {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: clamp(30px, 4.2vw, 58px);
  background: linear-gradient(110deg, #eef8fe 0%, #e8f5fd 82%, rgb(232 245 253 / 70%) 100%);
}

.course-hero h1 {
  max-width: 15ch;
  margin: 0;
  color: #0c2c55;
  font-size: clamp(40px, 4.8vw, 68px);
  font-weight: 780;
  letter-spacing: -.055em;
  line-height: .99;
  text-wrap: balance;
}

.course-hero__lede {
  max-width: 60ch;
  margin: 18px 0 0;
  color: #31526f;
  font-size: clamp(16px, 1.3vw, 18px);
  line-height: 1.65;
}

.course-field-map {
  position: relative;
  isolation: isolate;
  min-width: 0;
  min-height: 100%;
  margin: 0;
  overflow: hidden;
  background: #0c315b;
  color: #fff;
}
.course-field-map__drawing { position:absolute; inset:0; z-index:-1; width:100%; height:100%; }
.course-field-map__paper { fill:#0c315b; }
.course-field-map__grid { opacity:.11; }
.course-field-map__grid-line { stroke:#8ed7ff; stroke-width:1; }
.course-field-map__contour { fill:none; stroke:#74b9dc; stroke-width:44; stroke-linecap:round; opacity:.12; }
.course-field-map__contour--soft { stroke-width:22; opacity:.09; }
.course-field-map__route { fill:none; stroke:#ef866d; stroke-width:4; stroke-linecap:round; stroke-linejoin:round; }
.course-field-map__node { fill:#0c315b; stroke:#fff; stroke-width:3; }
.course-field-map__content {
  position: absolute;
  inset:clamp(24px,4vw,54px);
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  max-width:430px;
}
.course-field-map__eyebrow {
  margin:0 0 14px;
  color: #a8ddf7;
  font-size: 13px;
  font-weight: 780;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.course-field-map ol { display:grid; gap:0; margin:0; padding:0; list-style:none; border-top:1px solid rgb(255 255 255 / 34%); }
.course-field-map li {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: center;
  min-height: 51px;
  border-bottom: 1px solid rgb(255 255 255 / 26%);
}
.course-field-map li span { color:#90d9fb; font-size:13px; font-variant-numeric:tabular-nums; }
.course-field-map li strong { font-size:clamp(18px,2vw,24px); font-weight:680; letter-spacing:-.02em; }
.course-field-map__note { margin:14px 0 0; color:#d9ebf8; font-size:13px; line-height:1.5; }

.course-search { margin-top: 28px; }
.course-search label {
  display: block;
  margin-bottom: 7px;
  color: #163d67;
  font-size: 13px;
  font-weight: 720;
}
.course-search__input { position: relative; }
.course-search__input svg {
  position: absolute;
  top: 50%;
  left: 15px;
  width: 22px;
  height: 22px;
  fill: none;
  stroke: #315f87;
  stroke-width: 1.8;
  transform: translateY(-50%);
  pointer-events: none;
}
.course-search input, .course-search select {
  width: 100%;
  min-height: 48px;
  border: 1px solid #aecbdf;
  border-radius: 8px;
  background: #fff;
  color: #102f51;
  font: inherit;
  font-size: 16px;
}
.course-search input { padding: 11px 14px 11px 48px; }
.course-search select { padding: 10px 36px 10px 12px; }
.course-search input:focus-visible, .course-search select:focus-visible,
.course-search button:focus-visible, .course-card__open:focus-visible,
.course-empty button:focus-visible, .offering a:focus-visible {
  outline: 3px solid #f08b72;
  outline-offset: 3px;
}
.course-search__facets { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.course-search__more { margin-top:14px; border-top:1px solid #bcd6e7; border-bottom:1px solid #bcd6e7; }
.course-search__more > summary { display:flex; align-items:center; min-height:44px; cursor:pointer; color:#163d67; font-size:14px; font-weight:720; }
.course-search__more > summary span { margin-left:6px; color:#31526f; }
.course-search__state {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 15px;
  color: #31526f;
  font-size: 13px;
}
.course-search__state p { margin: 0; }
.course-search__state button, .course-empty button {
  min-height: 44px;
  border: 0;
  border-bottom: 1px solid currentColor;
  background: transparent;
  color: #0f5f96;
  font: inherit;
  font-weight: 720;
  cursor: pointer;
}
.course-search__state button:active, .course-empty button:active { transform: translateY(1px); }
.course-noscript { margin: 12px 0 0; color: #6b3e2d; font-size: 13px; }

.course-trust {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  margin-top: 22px;
  padding-top: 17px;
  border-top: 1px solid #bcd6e7;
  color: #31526f;
  font-size: 13px;
}
.course-trust svg { width: 22px; height: 22px; fill: none; stroke: #0f679e; stroke-width: 1.7; }
.course-trust p { margin: 0; }
.course-trust strong { color: #10395f; }

.course-directory { padding: clamp(34px, 5vw, 68px) 0 10px; }
.course-directory__heading, .course-section__heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 28px;
  margin-bottom: 22px;
}
.course-directory__heading > div, .course-section__heading { min-width: 0; }
.course-directory__heading h2, .course-section__heading h2, .course-method h2, .course-fact-note h2 {
  margin: 0;
  color: var(--edu-ink);
  font-size: clamp(27px, 3vw, 42px);
  font-weight: 760;
  letter-spacing: -.035em;
  line-height: 1.08;
}
.course-directory__heading p:last-child, .course-section__heading > p:last-child {
  max-width: 68ch;
  margin: 8px 0 0;
  color: var(--edu-muted);
  font-size: 15px;
}
.course-directory__heading > a {
  flex: none;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  border-bottom: 1px solid currentColor;
  font-weight: 720;
  text-decoration: none;
}

.course-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); column-gap:30px; }
.course-card {
  position: relative;
  min-width: 0;
  border-top:1px solid var(--edu-line);
  background:transparent;
  content-visibility: auto;
  contain-intrinsic-size:auto 205px;
}
.course-card__frame { height:100%; color:inherit; }
.course-card__body { display:flex; flex-direction:column; min-width:0; min-height:205px; padding:18px 0 20px; }
.course-card__subject { margin:0 0 7px; color:var(--edu-accent); font-size:13px; font-weight:700; line-height:1.4; }
.course-card__title { margin:0; color:var(--edu-ink); font-size:18px; font-weight:720; letter-spacing:-.02em; line-height:1.32; }
.course-card dl { display:flex; flex-wrap:wrap; gap:8px 18px; margin:16px 0 0; }
.course-card dl div { display:flex; gap:6px; min-width:0; }
.course-card dt { color:var(--edu-muted); font-size:13px; line-height:1.4; }
.course-card dd { margin:0; color:var(--edu-ink); font-size:13px; font-weight:760; }
.course-card__source { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 14px; margin:auto 0 0; padding-top:14px; color:var(--edu-muted); font-size:13px; }
.course-card__source span:first-child::before { content: ''; display: inline-block; width: 7px; height: 7px; margin: 0 7px 1px 0; border-radius: 50%; background: #3c8a73; }
.course-card__source--lead span:first-child::before { background: #d1795f; }
.course-card__open { display:inline-flex; align-items:center; min-height:44px; color:var(--edu-accent); font-weight:720; text-decoration:none; }
.course-card__open::after { content: ''; position: absolute; z-index: 2; inset: 0; }
.course-card__open:focus-visible { outline: 3px solid #f08b72; outline-offset: -4px; }
.course-card[hidden] { display: none !important; }

.course-empty { margin-top: 18px; padding: 34px; border: 1px dashed #93b6cc; background: #eef8fd; text-align: left; }
.course-empty h2 { margin: 0; font-size: 24px; }
.course-empty p { margin: 8px 0 10px; color: var(--edu-muted); }

.course-method, .course-fact-note {
  display: grid;
  grid-template-columns: minmax(0, 42fr) minmax(0, 58fr);
  gap: clamp(24px, 6vw, 90px);
  align-items: start;
  margin-top: 54px;
  padding: clamp(28px, 5vw, 60px);
  border-top: 2px solid #7fc9ee;
  background: #0c315b;
  color: #d9ebf8;
}
.course-method h2 { color: #fff; }
.course-method > p { margin: 0; max-width: 66ch; font-size: 17px; line-height: 1.75; }
.course-method > a { grid-column: 2; justify-self: start; color: #fff !important; font-weight: 720; text-underline-offset: 4px; }

/* Course profile */
.course-hero--profile { min-height: 580px; }
.course-hero--profile .course-hero__copy { justify-content: flex-start; padding-top: clamp(38px, 5vw, 72px); }
.course-hero--profile h1 { max-width: 17ch; font-size: clamp(38px, 4.4vw, 62px); }
.course-hero__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 28px 0 0; border-top: 1px solid #b8d3e4; border-bottom: 1px solid #b8d3e4; }
.course-hero__facts div { min-width: 0; padding: 14px 10px 14px 0; }
.course-hero__facts div + div { padding-left: 13px; border-left: 1px solid #b8d3e4; }
.course-hero__facts dt { color: #526f87; font-size: 13px; line-height: 1.35; }
.course-hero__facts dd { margin: 5px 0 0; color: #0c315b; font-size: 23px; font-weight: 780; }
.course-state { display: grid; gap: 3px; margin-top: 22px; padding: 14px 15px; border: 1px solid rgb(49 82 111 / 18%); border-top:2px solid #ef866d; background: rgb(255 255 255 / 62%); color: #31526f; font-size: 13px; }
.course-state strong { color: #123d67; font-size: 13px; }

.course-section { scroll-margin-top: 84px; padding: clamp(40px, 6vw, 78px) 0 0; }
.course-section__heading { display: block; max-width: 850px; }

.offering-list { border-top: 1px solid var(--edu-line); }
.offering {
  display: grid;
  grid-template-columns: minmax(250px, 34fr) minmax(0, 66fr);
  min-height: 250px;
  padding: 22px 0;
  border-bottom: 1px solid var(--edu-line);
}
.offering__media { position: relative; display: block; min-height: 220px; overflow: hidden; background: #dceef8; color: inherit; }
.offering__media picture, .offering__media > img { display: block; width: 100%; height: 100%; }
.offering__media > picture img, .offering__media > img { width: 100%; height: 100%; object-fit: cover; }
.offering__media--editorial > img { filter: saturate(.7) contrast(.94); }
.offering__placeholder { display:grid; place-items:center; height:100%; padding:24px; color:#31526f; background:linear-gradient(135deg,#d9edf8,#eef8fd); font-size:14px; font-weight:650; line-height:1.5; text-align:center; }
.offering__placeholder::before { content:'Campus photograph not published'; }
.offering--lead .offering__placeholder::before { content:'College relationship awaiting confirmation'; }
.offering__logo {
  position: absolute;
  right: 14px;
  bottom: 14px;
  display: grid;
  place-items: center;
  width: 72px;
  height: 72px;
  overflow: hidden;
  border: 1px solid rgb(19 57 91 / 12%);
  border-radius: 10px;
  background: #fff;
  color: #174e78;
  font-size: 19px;
  font-weight: 800;
  box-shadow: 0 10px 26px rgb(10 40 68 / 18%);
}
.offering__logo img { position: absolute; inset: 0; width: 100%; height: 100%; padding: 7px; object-fit: contain; background: #fff; }
.offering__logo--type { color: #fff; background: #0c315b; font-size: 13px; font-weight: 780; letter-spacing: .04em; }
.offering__logo--type::before { content: attr(data-monogram); }
.offering--lead .offering__body { background: color-mix(in srgb, #ef866d 7%, transparent); }
.offering__monogram::before { content: attr(data-monogram); }
.offering__body { align-self: center; min-width: 0; padding: 8px 0 8px clamp(24px, 4vw, 54px); }
.offering__meta, .offering__read, .offering__name { color: var(--edu-muted); }
.offering__meta { margin: 0 0 6px; font-size: 13px; }
.offering h3, .offering__title { margin: 0; font-size: clamp(22px, 2.2vw, 31px); font-weight: 700; letter-spacing: -.03em; line-height: 1.16; }
.offering h3 a, .offering__title a { color: var(--edu-ink); text-decoration: none; }
.offering h3 a:hover, .offering__title a:hover { color: var(--edu-accent); text-decoration: underline; text-underline-offset: 4px; }
.offering__name { margin: 10px 0 0; font-size: 14px; }
.offering__name strong { color: var(--edu-ink); }
.offering__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 19px 0 0; border-top: 1px solid var(--edu-line); }
.offering__facts div { padding: 12px 10px 0 0; }
.offering__facts dt { color: var(--edu-muted); font-size: 13px; text-transform: uppercase; letter-spacing: .07em; }
.offering__facts dd { margin: 4px 0 0; color: var(--edu-ink); font-size: 14px; font-weight: 700; }
.offering__facts a { font-size: 13px; font-weight: 650; }
.offering__read { margin: 13px 0 0; font-size: 13px; }

.course-fact-note { padding-top: clamp(28px, 5vw, 60px); }
.course-fact-note h2 { color: #fff; }
.course-fact-note p { max-width: 66ch; margin: 0 0 14px; font-size: 16px; line-height: 1.72; }

.course-sources ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--edu-line); }
.course-sources li { min-width: 0; padding: 20px 24px 20px 0; border-bottom: 1px solid var(--edu-line); }
.course-sources li:nth-child(even) { padding-left: 24px; border-left: 1px solid var(--edu-line); }
.course-sources p { margin: 0; overflow-wrap: anywhere; }
.course-sources p:first-child { font-weight: 720; }
.course-sources p + p { margin-top: 5px; color: var(--edu-muted); font-size: 13px; }
.course-lead-empty { padding: clamp(22px, 4vw, 38px); border: 1px solid var(--edu-line); background: var(--edu-paper); }
.course-lead-empty h3 { margin: 0; color: var(--edu-ink); font-size: clamp(20px, 2vw, 26px); }
.course-lead-empty p { max-width: 68ch; margin: 8px 0 0; color: var(--edu-muted); line-height: 1.65; }

html[data-theme="dark"] .course-hero { border-color: var(--ice-color-border); background: var(--ice-color-surface); box-shadow: 0 20px 46px rgb(0 0 0 / 28%); }
html[data-theme="dark"] .course-hero__copy { background: linear-gradient(110deg, var(--ice-color-surface) 0%, var(--ice-color-surface-muted) 100%); }
html[data-theme="dark"] .course-hero h1, html[data-theme="dark"] .course-search label,
html[data-theme="dark"] .course-trust strong, html[data-theme="dark"] .course-hero__facts dd,
html[data-theme="dark"] .course-state strong { color: var(--ice-color-text); }
html[data-theme="dark"] .course-hero__lede, html[data-theme="dark"] .course-search__state,
html[data-theme="dark"] .course-trust, html[data-theme="dark"] .course-state { color: var(--ice-color-text-muted); }
html[data-theme="dark"] .course-search input, html[data-theme="dark"] .course-search select { border-color: var(--ice-color-border); background: var(--ice-color-surface-field); color: var(--ice-color-text); }
html[data-theme="dark"] .course-trust, html[data-theme="dark"] .course-hero__facts { border-color: var(--ice-color-border); }
html[data-theme="dark"] .course-search__more { border-color:var(--ice-color-border); }
html[data-theme="dark"] .course-search__more > summary { color:var(--edu-ink); }
html[data-theme="dark"] .course-hero__facts div + div { border-color: var(--ice-color-border); }
html[data-theme="dark"] .course-state { background: var(--ice-color-surface-field); }
html[data-theme="dark"] .course-empty { border-color: var(--ice-color-border); background: var(--ice-color-surface-muted); }
html[data-theme="dark"] .offering__placeholder { color:var(--edu-muted); background:var(--edu-paper); }

@media (max-width: 980px) {
  .course-hero { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .course-hero__copy { padding: 34px clamp(20px, 5vw, 48px) 30px; }
  .course-field-map { min-height:clamp(240px,46vw,420px); }
  .course-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 760px) {
  .course-page { padding-top: 10px; }
  .course-hero { border-radius:0; }
  .course-hero h1, .course-hero--profile h1 { max-width: 18ch; font-size: clamp(32px, 9.3vw, 42px); line-height: 1.04; }
  .course-hero__lede { margin-top: 14px; font-size: 16px; line-height: 1.55; }
  .course-field-map { min-height:168px; }
  .course-field-map__content { inset:14px 20px; max-width:none; }
  .course-field-map__eyebrow { margin-bottom:8px; font-size:13px; }
  .course-field-map ol { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .course-field-map li { grid-template-columns:28px minmax(0,1fr); min-height:34px; padding-right:8px; }
  .course-field-map li strong { font-size:15px; }
  .course-field-map__note { display:none; }
  .course-search { margin-top: 22px; }
  .course-search__facets { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .course-search__state { align-items: flex-start; }
  .course-trust { margin-top: 17px; }
  .course-directory { padding-top: 18px; }
  .course-directory__heading { display: block; }
  .course-directory__heading > a { margin-top: 12px; }
  .course-grid { grid-template-columns:minmax(0,1fr); }
  .course-card__body { min-height:0; }
  .course-method, .course-fact-note { grid-template-columns: minmax(0, 1fr); gap: 20px; margin-top: 38px; padding: 28px 20px; }
  .course-method > a { grid-column: auto; }
  .course-hero__facts { grid-template-columns: minmax(0, 1fr); }
  .course-hero__facts div { display: flex; justify-content: space-between; gap: 16px; align-items: baseline; padding: 10px 0; }
  .course-hero__facts div + div { padding-left: 0; border-left: 0; border-top: 1px solid #b8d3e4; }
  .course-hero__facts dd { font-size: 19px; }
  .offering { grid-template-columns: minmax(0, 1fr); padding: 18px 0; }
  .offering__media { min-height: 230px; }
  .offering__body { padding: 20px 0 4px; }
  .offering__facts { grid-template-columns: minmax(0, 1fr); }
  .offering__facts div { display: flex; justify-content: space-between; gap: 16px; align-items: baseline; padding: 10px 0; border-bottom: 1px solid var(--edu-line); }
  .course-sources ol { grid-template-columns: minmax(0, 1fr); }
  .course-sources li, .course-sources li:nth-child(even) { padding: 18px 0; border-left: 0; }
}

@media (max-width: 360px) {
  .course-page { padding-inline: 0; }
  .course-hero__copy { padding-inline: 17px; }
  .course-field-map ol { grid-template-columns:minmax(0,1fr); }
  .course-field-map { min-height:270px; }
}

@media (prefers-reduced-motion: reduce) {
  .course-card { transition:none; }
}

/*
 * Course directory 2.0 — owner-provided 2026-09-09 course composition.
 * This block is intentionally scoped to /courses; course profiles retain the
 * evidence-runway layout above.
 */
body.page-course-directory .course-directory-v2 {
  width: min(100%, 1360px);
  padding: 14px 0 18px;
  color: #0c2c55;
}

.course-directory-v2 *,
.course-directory-v2 *::before,
.course-directory-v2 *::after { box-sizing: border-box; }

.course-v2-crumb { margin: 0 0 14px; }
.course-v2-crumb ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 0;
  color: #4d6377;
  font-size: 12px;
  font-weight: 650;
  letter-spacing: .04em;
  list-style: none;
}
.course-v2-crumb li + li::before { content: '/'; margin-right: 8px; }
.course-v2-crumb li[aria-current='page'] { color: #0c2c55; }
.course-v2-crumb a { color: inherit; text-underline-offset: 3px; }

.course-v2-hero {
  position: relative;
  isolation: isolate;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  overflow: hidden;
  color: #fff;
  background: #0c315b;
  border-bottom: 1px solid rgb(255 255 255 / 14%);
}
.course-v2-hero__media,
.course-v2-hero__wash { position: absolute; inset: 0; }
.course-v2-hero__media { z-index: -2; }
.course-v2-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 70% 42%;
  filter: saturate(.5) contrast(1.02);
}
.course-v2-hero__wash {
  z-index: -1;
  background: linear-gradient(100deg, rgb(9 33 60 / 97%) 0%, rgb(10 40 72 / 93%) 52%, rgb(10 42 78 / 72%) 100%);
}
.course-v2-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(300px, .95fr);
  gap: clamp(20px, 4vw, 56px);
  align-items: center;
  width: min(100%, calc(1360px + 2 * clamp(14px, 3vw, 48px)));
  margin: 0 auto;
  padding: clamp(22px, 2.6vw, 34px) clamp(14px, 3vw, 48px);
}
.course-v2-hero__copy { min-width: 0; max-width: 40rem; }
.course-v2-hero__label {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 10px;
  color: #8ed7ff;
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.course-v2-hero__label span {
  width: 6px;
  height: 6px;
  background: #ef866d;
  border-radius: 50%;
}
.course-v2-hero h1 {
  max-width: none;
  margin: 0;
  color: #fff;
  font-family: 'Instrument Serif', Georgia, serif;
  font-size: clamp(30px, 3.4vw, 46px);
  font-weight: 400;
  letter-spacing: -.02em;
  line-height: 1.04;
  text-wrap: balance;
}
.course-v2-hero h1 em { color: #8ed7ff; font-style: italic; }
.course-v2-hero__copy > p:last-child {
  max-width: 56ch;
  margin: 10px 0 0;
  color: #d6e9f7;
  font-size: 15px;
  line-height: 1.55;
  text-wrap: pretty;
}
.course-v2-hero__search { min-width: 0; }
.course-v2-hero__search form {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 16px;
  background: #fff;
  box-shadow: 0 14px 30px -20px rgb(4 18 34 / 90%);
}
.course-v2-hero__search svg {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  fill: none;
  stroke: #0c315b;
  stroke-width: 2;
  stroke-linecap: round;
}
.course-v2-hero__search input {
  flex: 1 1 auto;
  min-width: 0;
  height: 52px;
  padding: 0;
  color: #0c2c55;
  background: transparent;
  border: 0;
  outline: 0;
  font: inherit;
  font-size: 16px;
  font-weight: 600;
}
.course-v2-hero__search input::placeholder { color: #66798b; opacity: 1; }
.course-v2-hero__search form:focus-within { outline: 3px solid #ef866d; outline-offset: 3px; }
.course-v2-hero__search dl {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 22px;
  margin: 14px 0 0;
  color: #bcdcf1;
  font-size: 12.5px;
}
.course-v2-hero__search dl div { display: flex; align-items: baseline; gap: 7px; }
.course-v2-hero__search dt { order: 2; }
.course-v2-hero__search dd {
  margin: 0;
  color: #fff;
  font-size: 17px;
  font-weight: 800;
  letter-spacing: -.02em;
  font-variant-numeric: tabular-nums;
}

.course-v2-subjects { padding: clamp(28px, 3.4vw, 44px) 0 0; }
.course-v2-subjects > h2,
.course-v2-filters label {
  display: block;
  margin: 0 0 7px;
  color: #4d6377;
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.course-v2-subjects > h2 { margin-bottom: 14px; letter-spacing: .16em; }
.course-v2-subject-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(232px, 1fr));
  gap: 8px;
}
.course-v2-subject-grid button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  min-height: 48px;
  padding: 8px 14px;
  color: #0c2c55;
  background: #fff;
  border: 1px solid #dbe7f0;
  border-radius: 0;
  cursor: pointer;
  font: inherit;
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: .005em;
  text-align: left;
}
.course-v2-subject-grid button:hover { border-color: #0c315b; background: #f2f9ff; }
.course-v2-subject-grid button:focus-visible,
.course-v2-filters select:focus-visible,
.course-v2-filters button:focus-visible,
.course-v2-pagination button:focus-visible,
.course-v2-card a:focus-visible,
.course-v2-empty button:focus-visible { outline: 3px solid #ef866d; outline-offset: 3px; }
.course-v2-subject-grid button.is-active,
.course-v2-subject-grid button[aria-pressed='true'] { color: #fff; background: #0c315b; border-color: #0c315b; }
.course-v2-subject-grid button span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.course-v2-subject-grid button strong { flex: 0 0 auto; color: #6b8199; font-size: 12px; font-weight: 600; font-variant-numeric: tabular-nums; }
.course-v2-subject-grid button[aria-pressed='true'] strong { color: rgb(255 255 255 / 72%); }

.course-v2-results { padding: clamp(30px, 3.6vw, 50px) 0 0; scroll-margin-top: 96px; }
.course-v2-results__heading {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  padding-bottom: 20px;
  border-bottom: 2px solid #0c315b;
}
.course-v2-results__heading > div { min-width: 0; }
.course-v2-results__heading h2 {
  margin: 0;
  color: #0c2c55;
  font-family: 'Instrument Serif', Georgia, serif;
  font-size: clamp(30px, 3.2vw, 44px);
  font-weight: 400;
  letter-spacing: -.01em;
  line-height: 1.04;
}
.course-v2-results__heading p { max-width: 64ch; margin: 9px 0 0; color: #4d6377; font-size: 15px; line-height: 1.55; }
.course-v2-results__heading > a {
  display: inline-flex;
  flex: none;
  align-items: center;
  gap: 9px;
  min-height: 44px;
  color: #0c2c55;
  border-bottom: 2px solid #ef866d;
  font-size: 15px;
  font-weight: 750;
  text-decoration: none;
}
.course-v2-results__heading > a:hover { color: #0b6ea8; }

.course-v2-filters {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin-top: 20px;
}
.course-v2-filters > div { min-width: 0; }
.course-v2-filters select {
  width: 100%;
  min-height: 50px;
  padding: 0 34px 0 14px;
  color: #0c2c55;
  background: #fff;
  border: 1px solid #dbe7f0;
  border-radius: 0;
  font: inherit;
  font-size: 15px;
  font-weight: 600;
}
.course-v2-filters__reset { display: flex; align-items: end; grid-column: 1 / -1; }
.course-v2-filters__reset button,
.course-v2-empty button {
  min-height: 50px;
  padding: 0 18px;
  color: #0b6ea8;
  background: #fff;
  border: 1px solid #dbe7f0;
  cursor: pointer;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
}
.course-v2-filters__reset button:hover { border-color: #0b6ea8; }
.course-v2-noscript { margin: 18px 0 0; color: #6b3e2d; font-size: 13px; }

.course-v2-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: 1fr;
  gap: 10px;
  margin-top: 26px;
}
.course-v2-card {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 88px;
  background: #fff;
  border: 1px solid #dbe7f0;
  content-visibility: auto;
  contain-intrinsic-size: auto 88px;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.course-v2-card[hidden] { display: none !important; }
.course-v2-card:hover,
.course-v2-card:focus-within { border-color: #0c315b; transform: translateY(-2px); box-shadow: 0 12px 22px -16px rgb(12 49 91 / 50%); }
.course-v2-card__rule {
  position: absolute;
  inset: -1px auto -1px -1px;
  z-index: 2;
  width: 3px;
  background: #ef866d;
  transform: scaleY(0);
  transform-origin: top;
  transition: transform .26s ease;
}
.course-v2-card:hover .course-v2-card__rule,
.course-v2-card:focus-within .course-v2-card__rule { transform: scaleY(1); }
.course-v2-card__icon {
  display: grid;
  flex: 0 0 72px;
  place-items: center;
  border-right: 1px solid #dbe7f0;
  background: #eef3f7;
}
.course-v2-card__icon--engineering { background: #e3edf7; }
.course-v2-card__icon--computing { background: #dbeaf6; }
.course-v2-card__icon--management { background: #eae7f4; }
.course-v2-card__icon--education { background: #e6f0ea; }
.course-v2-card__icon--health { background: #f6e6e2; }
.course-v2-card__icon--science { background: #dfeef1; }
.course-v2-card__icon--humanities { background: #f2ecdf; }
.course-v2-card__icon--law { background: #e8e9ef; }
.course-v2-card__icon--agriculture { background: #e7f1e2; }
.course-v2-card__icon--hospitality { background: #f6ebdf; }
.course-v2-card__icon img { display: block; width: 30px; height: 30px; transition: transform .26s ease; }
.course-v2-card:hover .course-v2-card__icon img,
.course-v2-card:focus-within .course-v2-card__icon img { transform: scale(1.05); }
.course-v2-card__body { display: flex; flex: 1 1 auto; flex-direction: column; min-width: 0; padding: 9px 11px 7px; }
.course-v2-card__eyebrow {
  margin: 0 0 4px;
  overflow: hidden;
  color: #5d7488;
  font-size: 9.5px;
  font-weight: 750;
  letter-spacing: .11em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}
.course-v2-card__title {
  display: -webkit-box;
  min-height: 35px;
  margin: 0;
  overflow: hidden;
  color: #0c2c55;
  font-size: 14px;
  font-weight: 750;
  letter-spacing: -.005em;
  line-height: 1.25;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.course-v2-card__meta { display: flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 7px; }
.course-v2-card__meta p {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  color: #4d6377;
  font-size: 10.5px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.course-v2-card__dot { flex: none; width: 6px; height: 6px; border-radius: 50%; }
.course-v2-card__dot.is-reviewed,
.course-v2-method__legend i.is-reviewed { background: #3c8a73; }
.course-v2-card__dot.is-pending,
.course-v2-method__legend i.is-pending { background: #d1795f; }
.course-v2-card__meta a {
  display: inline-flex;
  flex: none;
  align-items: center;
  gap: 4px;
  min-height: 32px;
  margin-left: auto;
  color: #0b6ea8;
  font-size: 11px;
  font-weight: 750;
  text-decoration: none;
  white-space: nowrap;
}
.course-v2-card__meta a::after { content: ''; position: absolute; inset: 0; }
.course-v2-card__meta a:hover { color: #0c2c55; }
.course-v2-card__meta a:focus-visible { outline-offset: -4px; }

.course-v2-empty { margin-top: 26px; padding: 38px; background: #f1f9fe; border: 1px dashed #93b6cc; }
.course-v2-empty h3 { margin: 0; color: #0c2c55; font-family: 'Instrument Serif', Georgia, serif; font-size: 28px; font-weight: 400; }
.course-v2-empty p { margin: 8px 0 16px; color: #4d6377; font-size: 15px; }
.course-v2-empty button { color: #fff; background: #0c315b; border-color: #0c315b; }

.course-v2-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px 24px;
  margin-top: 40px;
  padding-top: 22px;
  border-top: 2px solid #0c315b;
}
.course-v2-pagination > p { margin: 0; color: #4d6377; font-size: 13px; font-weight: 650; font-variant-numeric: tabular-nums; }
.course-v2-pagination > div,
.course-v2-pagination__pages { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
.course-v2-pagination button,
.course-v2-pagination__pages > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 46px;
  height: 46px;
  padding: 0 10px;
  color: #0c2c55;
  background: #fff;
  border: 1px solid #dbe7f0;
  cursor: pointer;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.course-v2-pagination > div > button { gap: 8px; padding-inline: 16px; }
.course-v2-pagination button:hover:not(:disabled) { border-color: #0c315b; background: #f2f9ff; }
.course-v2-pagination button.is-current,
.course-v2-pagination__pages > span.is-current { color: #fff; background: #0c315b; border: 1px solid #0c315b; font-weight: 800; }
.course-v2-pagination button:disabled { cursor: not-allowed; opacity: .48; }
.course-v2-pagination__pages > span { min-width: 26px; padding: 0; color: #4d6377; background: transparent; border: 0; }

.course-v2-method {
  width: 100vw;
  margin-top: 44px;
  margin-left: calc(50% - 50vw);
  color: #3b2503;
  background: #f2b53c;
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 55%), inset 0 -1px 0 rgb(59 37 3 / 22%);
}
.course-v2-method > div {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px clamp(20px, 3vw, 34px);
  max-width: 1360px;
  margin-inline: auto;
  padding: 16px clamp(18px, 5vw, 64px);
}
.course-v2-method h2 {
  flex: 0 1 auto;
  margin: 0;
  color: #2c1b02;
  font-family: 'Instrument Serif', Georgia, serif;
  font-size: 23px;
  font-style: italic;
  font-weight: 400;
  letter-spacing: -.015em;
  line-height: 1.14;
}
.course-v2-method p {
  flex: 1 1 300px;
  min-width: 0;
  margin: 0;
  padding-left: clamp(20px, 3vw, 34px);
  color: #4a3007;
  border-left: 1px solid rgb(59 37 3 / 22%);
  font-size: 13.5px;
  letter-spacing: .004em;
  line-height: 1.6;
  text-wrap: pretty;
}
.course-v2-method__legend { display: flex; flex: 0 0 auto; align-items: center; gap: 18px; }
.course-v2-method__legend span,
.course-v2-method a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #3b2503;
  font-family: ui-monospace, 'SFMono-Regular', Menlo, monospace;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.course-v2-method__legend i { width: 7px; height: 7px; border-radius: 50%; }
.course-v2-method a {
  justify-content: center;
  height: 36px;
  padding: 0 17px;
  color: #f7d78a;
  background: #0c315b;
  text-decoration: none;
}
.course-v2-method a:hover { color: #fff; background: #0a2545; }
.course-v2-updated { margin: 20px 0 0; color: #4d6377; font-size: 12.5px; line-height: 1.55; }
.course-v2-updated time { color: #0c2c55; font-weight: 700; }

html[data-theme='dark'] .course-v2-crumb ol,
html[data-theme='dark'] .course-v2-results__heading p,
html[data-theme='dark'] .course-v2-updated { color: var(--edu-muted); }
html[data-theme='dark'] .course-v2-crumb li[aria-current='page'],
html[data-theme='dark'] .course-v2-results__heading h2,
html[data-theme='dark'] .course-v2-results__heading > a,
html[data-theme='dark'] .course-v2-updated time { color: var(--edu-ink); }
html[data-theme='dark'] .course-v2-results__heading,
html[data-theme='dark'] .course-v2-pagination { border-color: var(--edu-line-strong); }
html[data-theme='dark'] .course-v2-subject-grid button:not([aria-pressed='true']),
html[data-theme='dark'] .course-v2-filters select,
html[data-theme='dark'] .course-v2-filters__reset button,
html[data-theme='dark'] .course-v2-card,
html[data-theme='dark'] .course-v2-pagination button:not(.is-current) {
  color: var(--edu-ink);
  background: var(--edu-surface);
  border-color: var(--edu-line);
}
html[data-theme='dark'] .course-v2-card__title { color: var(--edu-ink); }
html[data-theme='dark'] .course-v2-card__eyebrow,
html[data-theme='dark'] .course-v2-card__meta p { color: var(--edu-muted); }
html[data-theme='dark'] .course-v2-empty { background: var(--edu-surface); border-color: var(--edu-line-strong); }
html[data-theme='dark'] .course-v2-empty h3 { color: var(--edu-ink); }

@media (max-width: 1080px) {
  .course-v2-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .course-v2-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  body.page-course-directory .course-directory-v2 { padding-top: 10px; }
  .course-v2-hero__inner { grid-template-columns: minmax(0, 1fr); gap: 22px; padding-block: 26px 28px; }
  .course-v2-hero__wash { background: linear-gradient(110deg, rgb(9 33 60 / 97%) 0%, rgb(10 40 72 / 91%) 100%); }
  .course-v2-hero__search dl { gap: 8px 16px; }
  .course-v2-subject-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .course-v2-results__heading { display: block; }
  .course-v2-results__heading > a { margin-top: 12px; }
  .course-v2-filters { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .course-v2-pagination { align-items: flex-start; }
  .course-v2-pagination > div { width: 100%; }
  .course-v2-pagination__pages { order: 2; width: 100%; }
  .course-v2-method > div { align-items: flex-start; }
  .course-v2-method h2,
  .course-v2-method p { flex-basis: 100%; }
  .course-v2-method p { padding: 12px 0 0; border-top: 1px solid rgb(59 37 3 / 22%); border-left: 0; }
}

@media (max-width: 560px) {
  .course-v2-grid { grid-template-columns: minmax(0, 1fr); }
  .course-v2-subject-grid { grid-template-columns: minmax(0, 1fr); }
  .course-v2-hero__copy > p:last-child,
  .course-v2-results__heading p,
  .course-v2-empty p,
  .course-v2-method p { font-size: 16px; }
  .course-v2-subject-grid button,
  .course-v2-results__heading > a,
  .course-v2-filters select,
  .course-v2-filters__reset button,
  .course-v2-empty button,
  .course-v2-card__meta a,
  .course-v2-pagination button,
  .course-v2-method a { font-size: 16px; }
  .course-v2-filters label,
  .course-v2-card__eyebrow,
  .course-v2-card__meta p,
  .course-v2-method__legend span { font-size: 13px; }
  .course-v2-card__title { display: block; min-height: 0; overflow: visible; font-size: 16px; }
  .course-v2-pagination > p,
  .course-v2-noscript,
  .course-v2-updated { font-size: 14px; }
  .course-v2-pagination > div > button { flex: 1 1 0; }
  .course-v2-pagination__pages { justify-content: flex-start; }
}

@media (max-width: 360px) {
  .course-v2-hero__inner { padding-inline: 12px; }
  .course-v2-hero__search dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
  .course-v2-hero__search dl div { display: grid; gap: 1px; }
  .course-v2-hero__search dt { font-size: 10.5px; }
}

@media (prefers-reduced-motion: reduce) {
  .course-v2-card,
  .course-v2-card__rule,
  .course-v2-card__icon img { transition: none; }
  .course-v2-card:hover,
  .course-v2-card:focus-within { transform: none; }
}
