@import url("/styles-core.css?v=20260830-unified-surfaces-2");

/* Brand loader: a central stroke branches twice into the source mark's five signal pillars. */
html[data-brand-loading="true"],
html[data-brand-loading="true"] body {
  overflow: hidden;
}

html[data-brand-loading="true"] body > :not(.brand-loader) {
  visibility: hidden;
}

.brand-loader {
  width: 100%;
  min-height: 100vh;
  min-height: 100dvh;
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-items: center;
  overflow: hidden;
  background:
    linear-gradient(90deg, transparent calc(50% - .5px), color-mix(in srgb, var(--grid) 45%, transparent) 50%, transparent calc(50% + .5px)),
    var(--paper);
  color: var(--text);
  isolation: isolate;
  opacity: 0;
  visibility: hidden;
}

html[data-brand-loading="true"] .brand-loader {
  opacity: 1;
  visibility: visible;
}

.brand-loader:not([data-initialised="true"]) .brand-loader__mark-slice {
  visibility: hidden;
}

.brand-loader:not([data-initialised="true"]) .brand-loader__mark-solid {
  visibility: visible;
  animation: degree-brand-loader-warmup .8s ease-in-out infinite alternate;
  will-change: transform, opacity;
}

@keyframes degree-brand-loader-warmup {
  from { transform: scale(.96); opacity: .72; }
  to { transform: scale(1.02); opacity: 1; }
}

.brand-loader::before {
  content: "";
  position: absolute;
  z-index: -1;
  pointer-events: none;
}

.brand-loader::before {
  width: min(70vw, 940px);
  height: min(70vw, 940px);
  border: 1px solid color-mix(in srgb, var(--grid) 62%, transparent);
  border-radius: 50%;
  opacity: .48;
}

.brand-loader__inner {
  width: min(1040px, calc(100% - 48px));
  display: grid;
  grid-template-columns: minmax(220px, 320px) minmax(0, 1fr);
  align-items: center;
  gap: clamp(28px, 4vw, 48px);
}

.brand-loader__mark {
  width: 100%;
  aspect-ratio: 1;
  position: relative;
}

.brand-loader__mark img {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  display: block;
  object-fit: contain;
}

.brand-loader__mark-solid { visibility: hidden; }
.brand-loader__origin {
  width: 6px;
  height: 6px;
  position: absolute;
  left: 50%;
  top: 50%;
  border-radius: 50%;
  background: var(--hero-text);
}
.brand-loader__frame-nw { clip-path: inset(16% 66% 66% 16%); }
.brand-loader__frame-ne { clip-path: inset(16% 16% 66% 66%); }
.brand-loader__frame-sw { clip-path: inset(65% 66% 18% 16%); }
.brand-loader__frame-se { clip-path: inset(65% 16% 18% 66%); }
.brand-loader__signal-core { clip-path: inset(34.8% 48.2% 39.1% 46.6%); }
.brand-loader__signal-inner-left { clip-path: inset(40.6% 64% 42.9% 31.1%); }
.brand-loader__signal-inner-right { clip-path: inset(40.6% 31.1% 42.9% 64%); }
.brand-loader__signal-outer-left { clip-path: inset(42.1% 79.3% 43.1% 16.2%); }
.brand-loader__signal-outer-right { clip-path: inset(42.1% 16.2% 43.1% 79.3%); }

.brand-loader__copy {
  min-width: 0;
  padding-bottom: 5px;
}

.brand-loader__eyebrow {
  margin: 0 0 22px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 780;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.brand-loader__brand-name {
  display: inline-block;
  color: var(--hero-text);
  font-family: var(--display-serif);
  font-size: 1.14em;
  font-weight: 700;
  letter-spacing: -.035em;
  line-height: 1;
  text-transform: none;
  vertical-align: baseline;
}

.brand-loader__title {
  margin: 0;
  font-family: var(--display-serif);
  font-size: clamp(44px, 6.4vw, 76px);
  font-weight: 600;
  letter-spacing: -.055em;
  line-height: .98;
}

.brand-loader__title-accent { color: var(--hero-text); }

.brand-loader__title > [data-brand-loader-title-main],
.brand-loader__title > [data-brand-loader-title-accent] {
  display: inline-block;
  max-width: 100%;
  overflow: hidden;
  vertical-align: bottom;
  white-space: nowrap;
}

.brand-loader__glyph {
  display: inline-block;
  will-change: transform, opacity;
}

.brand-loader__status {
  margin: 30px 0 0;
  color: var(--muted);
  font-size: 13px;
  letter-spacing: .04em;
}

.brand-loader__index {
  position: absolute;
  right: clamp(20px, 3.5vw, 56px);
  bottom: clamp(18px, 3vw, 42px);
  margin: 0;
  color: var(--faint);
  font-size: 10px;
  font-weight: 760;
  letter-spacing: .18em;
}

:root[data-theme="dark"] .brand-loader__mark img {
  border-radius: 0;
  background: transparent;
  padding: 0;
  filter: invert(1) hue-rotate(180deg);
}

@media (max-width: 720px) {
  .brand-loader__inner {
    width: min(430px, calc(100% - 40px));
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .brand-loader__mark {
    width: min(54vw, 228px);
    justify-self: center;
  }

  .brand-loader__copy { text-align: center; }
  .brand-loader__eyebrow { margin-bottom: 14px; }
  .brand-loader__title { font-size: clamp(38px, 11.8vw, 52px); }
  .brand-loader__title > br { display: none; }
  .brand-loader__title > [data-brand-loader-title-main],
  .brand-loader__title > [data-brand-loader-title-accent] {
    display: block;
    width: 100%;
  }
  .brand-loader__glyph--punctuation { display: none; }
  .brand-loader__status { margin-top: 20px; }
}

@media (max-height: 650px) and (min-width: 721px) {
  .brand-loader__inner { width: min(780px, calc(100% - 48px)); }
  .brand-loader__mark { max-height: 54vh; }
  .brand-loader__title { font-size: clamp(42px, 8.4vh, 64px); }
}

@media (prefers-reduced-motion: reduce) {
  .brand-loader::before { opacity: .22; }
  .brand-loader__mark-slice { display: none; }
  .brand-loader__mark-solid {
    visibility: visible;
    animation: none;
    transform: none;
    opacity: 1;
    will-change: auto;
  }
}

html:not(.ds-truth-decision-ready) .scatter-conclusion strong,
html:not(.ds-truth-manifest-ready) [data-copy="coverageConclusion"] {
  visibility: hidden;
}

.ds-course-expanded,
.ds-analytics-panel {
  border-top: 1px solid var(--quiet);
  margin-top: 1.25rem;
  padding-top: 1.1rem;
}

.ds-course-expanded h3,
.ds-analytics-panel h3 {
  margin: 0;
}

.ds-course-expanded dl {
  display: grid;
  gap: 0.8rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 1rem 0 0;
}

.ds-course-expanded dl > div {
  border-bottom: 1px solid var(--quiet);
  display: grid;
  gap: 0.25rem;
  min-width: 0;
  padding-bottom: 0.7rem;
}

.ds-course-expanded dt,
.ds-course-expanded p,
.ds-analysis-boundary,
.ds-forecast-readiness span,
.ds-stat-grid span,
.ds-analysis-table small {
  color: var(--muted);
}

.ds-course-expanded dd {
  margin: 0;
  overflow-wrap: anywhere;
}

.ds-data-badge {
  border: 1px solid var(--grid);
  border-radius: 999px;
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.03em;
  margin-inline-start: 0.35rem;
  padding: 0.14rem 0.42rem;
  vertical-align: middle;
}

.ds-data-badge-derived,
.ds-data-badge-projection {
  border-color: var(--hero-text);
  color: var(--hero-text);
}

.ds-analytics-panel {
  margin-bottom: 2rem;
}

.ds-analytics-panel > header {
  align-items: start;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
}

.ds-analysis-boundary {
  line-height: 1.55;
  margin: 0.65rem 0 1.1rem;
  max-width: 78ch;
}

.ds-forecast-readiness {
  border: 1px solid var(--grid);
  display: grid;
  gap: 0.12rem;
  max-width: 18rem;
  padding: 0.55rem 0.7rem;
}

.ds-forecast-readiness strong {
  font-size: 0.9rem;
}

.ds-series-block {
  border-top: 1px solid var(--quiet);
  margin-top: 1.1rem;
  padding-top: 1rem;
}

.ds-series-block h4 {
  margin: 0 0 0.6rem;
}

.ds-stat-grid {
  display: grid;
  gap: 0.6rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: 0.8rem;
}

.ds-stat-grid > div {
  display: grid;
  gap: 0.2rem;
}

.ds-line-chart {
  margin-top: 0.75rem;
}

.ds-line-chart svg {
  display: block;
  height: auto;
  max-width: 100%;
  overflow: visible;
  width: 100%;
}

.ds-axis {
  stroke: var(--grid);
  stroke-width: 1;
}

.ds-line-chart text {
  fill: var(--muted);
  font-size: 10px;
}

.ds-series polyline {
  fill: none;
  stroke: var(--data);
  stroke-width: 2;
  vector-effect: non-scaling-stroke;
}

.ds-series circle {
  fill: var(--surface-strong);
  stroke: var(--data);
  stroke-width: 1.5;
  vector-effect: non-scaling-stroke;
}

.ds-series-2 polyline,
.ds-series-2 circle {
  stroke: var(--data-2);
}

.ds-series-3 polyline,
.ds-series-3 circle {
  stroke: var(--hero-text);
}

.ds-line-legend-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-bottom: 0.45rem;
}

.ds-line-legend {
  align-items: center;
  display: inline-flex;
  font-size: 0.85rem;
  gap: 0.35rem;
}

.ds-line-legend::before {
  border-top: 2px solid var(--data);
  content: "";
  display: inline-block;
  width: 1.5rem;
}

.ds-line-legend-2::before {
  border-color: var(--data-2);
  border-top-style: dashed;
}

.ds-line-legend-3::before {
  border-color: var(--hero-text);
  border-top-style: dotted;
}

.ds-table-scroll {
  margin-top: 0.8rem;
  max-width: 100%;
  overflow-x: auto;
}

.ds-analysis-table {
  border-collapse: collapse;
  font-size: 0.88rem;
  width: max-content;
  min-width: 100%;
}

.ds-analysis-table th,
.ds-analysis-table td {
  border-bottom: 1px solid var(--quiet);
  padding: 0.62rem 0.7rem;
  text-align: left;
  vertical-align: top;
  white-space: nowrap;
}

.ds-analysis-table th {
  font-weight: 650;
}

.ds-analysis-table tbody th {
  max-width: 18rem;
  white-space: normal;
}

.ds-analysis-table small {
  display: block;
  font-weight: 400;
  margin-top: 0.18rem;
}

.ds-analysis-details {
  margin-top: 0.8rem;
}

.ds-analysis-details summary {
  cursor: pointer;
  font-weight: 650;
}

.ds-inline-bar {
  display: grid;
  gap: 0.35rem;
  margin: 0.75rem 0;
}

.ds-inline-bar > div {
  display: flex;
  gap: 1rem;
  justify-content: space-between;
}

.ds-inline-track {
  background: var(--track);
  display: block;
  height: 10px;
  overflow: hidden;
}

.ds-inline-track i {
  background: var(--data);
  display: block;
  height: 100%;
}

.ds-width-0 { width: 0; }
.ds-width-1 { width: 10%; }
.ds-width-2 { width: 20%; }
.ds-width-3 { width: 30%; }
.ds-width-4 { width: 40%; }
.ds-width-5 { width: 50%; }
.ds-width-6 { width: 60%; }
.ds-width-7 { width: 70%; }
.ds-width-8 { width: 80%; }
.ds-width-9 { width: 90%; }
.ds-width-10 { width: 100%; }

@media (max-width: 760px) {
  .ds-analytics-panel > header {
    align-items: stretch;
    flex-direction: column;
  }

  .ds-course-expanded dl,
  .ds-stat-grid {
    grid-template-columns: 1fr;
  }

  .ds-forecast-readiness {
    max-width: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ds-inline-track i {
    transition: none;
  }
}

/* Product surface architecture: stable entity routes and source-scoped pages. */
html,
body {
  max-width: 100%;
}

.app-header {
  grid-template-columns: minmax(170px, 220px) minmax(0, 1fr) auto;
  gap: clamp(10px, 1.5vw, 24px);
  padding-inline: var(--gutter);
}

.app-header .brand,
.app-header .brand img {
  width: min(100%, 220px);
  height: 52px;
  min-width: 0;
  max-width: 220px;
}

.primary-nav {
  min-width: 0;
  height: auto;
  justify-content: center;
  gap: clamp(2px, .45vw, 8px);
}

.nav-link,
.product-nav-link {
  position: relative;
  min-width: 0;
  min-height: 52px;
  border: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  color: var(--muted);
  font-size: clamp(10px, .82vw, 13px);
  font-weight: 700;
  line-height: 1;
  padding: 0 clamp(7px, .75vw, 13px);
  text-decoration: none;
  white-space: nowrap;
}

.nav-link::after,
.product-nav-link::after {
  position: absolute;
  right: 8px;
  bottom: -1px;
  left: 8px;
  height: 2px;
  background: var(--hero);
  content: "";
  transform: scaleX(0);
  transform-origin: center;
}

.product-nav-link:hover,
.product-nav-link.is-active {
  color: var(--text);
}

.product-nav-link.is-active::after {
  transform: scaleX(1);
}

html[data-product-route-bootstrap="true"] .primary-nav .nav-link::after,
html[data-product-route-bootstrap="true"] .primary-nav .product-nav-link::after {
  transition: none;
}

.app-main,
.product-route-view,
#product-route-content,
.product-page-header > *,
.product-detail-grid > *,
.entity-card,
.product-section {
  min-width: 0;
}

.product-route-view {
  width: min(100%, var(--content));
  min-height: calc(100vh - 68px);
  margin: 0 auto;
  padding: clamp(28px, 3.6vw, 54px) var(--gutter) clamp(64px, 7vw, 104px);
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-content: start;
}

.product-route-loading,
#product-route-content { grid-area: 1 / 1; }

.product-route-loading {
  position: relative;
  z-index: 4;
  min-height: min(720px, calc(100vh - 148px));
  background: transparent;
}

.product-route-loading[hidden] {
  display: none;
}

.product-page-header {
  border-bottom: 1px solid var(--grid);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 28px;
  align-items: end;
  padding-bottom: clamp(20px, 2.6vw, 36px);
}

.product-page-header h1 {
  max-width: 920px;
  margin: 7px 0 12px;
  font-family: var(--display-serif);
  font-size: clamp(34px, 4.5vw, 64px);
  font-weight: 600;
  line-height: .98;
  letter-spacing: -.045em;
  overflow-wrap: anywhere;
}

.product-page-header > div > p:last-child {
  max-width: 760px;
  margin: 0;
  color: var(--muted);
  font-size: clamp(13px, 1.2vw, 17px);
  line-height: 1.55;
}

.product-data-badge {
  border: 1px solid var(--grid);
  border-radius: 999px;
  color: var(--label);
  display: inline-flex;
  align-items: center;
  padding: 6px 9px;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .07em;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
}

.product-breadcrumb,
.product-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  margin: 22px 0;
}

.product-actions a,
.evidence-block > a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

/* Provenance remains available to the API and audit tooling, not the decision UI. */
.evidence-block,
.evidence-card,
.product-evidence-disclosure,
.uk-publication-evidence,
.entity-evidence-mini,
.source-evidence-details,
.source-contract,
.chart-source,
#evidence-view {
  display: none !important;
}

.explore-hub {
  display: grid;
  gap: clamp(28px, 3.5vw, 48px);
}

.explore-hub-hero {
  max-width: 900px;
  margin-inline: auto;
  padding: clamp(14px, 2vw, 28px) 0 0;
  text-align: center;
}

.explore-hub-hero h1 {
  margin: 8px auto 18px;
  font-family: var(--display-serif);
  font-size: clamp(42px, 5.2vw, 72px);
  font-weight: 600;
  letter-spacing: -.05em;
  line-height: .96;
}

.explore-hub-hero > p:last-child {
  max-width: 640px;
  margin: 0 auto;
  color: var(--muted);
  font-size: clamp(14px, 1.3vw, 18px);
}

.explore-entry-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-block: 1px solid var(--grid);
}

.explore-entry {
  min-width: 0;
  min-height: 270px;
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: 24px;
  padding: clamp(24px, 2.3vw, 32px);
}

.explore-entry + .explore-entry {
  border-left: 1px solid var(--grid);
}

.explore-entry-index,
.priority-entry > span {
  color: var(--hero-text);
  font-family: var(--display-serif);
  font-size: 18px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.explore-entry h2,
.priority-entry h2,
.explore-resume h2 {
  font-family: var(--display-serif);
  font-weight: 600;
}

.explore-entry h2 {
  font-size: clamp(28px, 3vw, 42px);
}

.explore-entry p,
.priority-entry p {
  max-width: 42ch;
  margin: 12px 0 0;
  color: var(--muted);
}

.explore-entry .primary-button,
.explore-entry .secondary-button,
.priority-entry .primary-button,
.priority-entry .secondary-button {
  width: fit-content;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.explore-journey {
  border-block: 1px solid var(--grid);
  padding: clamp(26px, 4vw, 46px) 0;
}

.explore-journey > header {
  display: grid;
  grid-template-columns: minmax(160px, .55fr) minmax(0, 1.45fr);
  gap: 24px;
  align-items: start;
  margin-bottom: 30px;
}

.explore-journey > header h2 {
  max-width: 820px;
  font-family: var(--display-serif);
  font-size: clamp(26px, 3vw, 42px);
  font-weight: 600;
}

.explore-journey ol {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin: 0;
  padding: 0;
}

.explore-journey li {
  position: relative;
  min-width: 0;
  min-height: 144px;
  border-top: 1px solid var(--grid);
  padding: 22px 20px 0 0;
}

.explore-journey li + li {
  padding-left: 20px;
}

.explore-journey li > span {
  display: block;
  margin-bottom: 8px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
}

.explore-journey li > strong {
  font-size: 15px;
}

.explore-journey li > p {
  margin: 7px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

.explore-resume {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  padding-bottom: 10px;
}

.explore-resume h2 {
  font-size: clamp(24px, 2.4vw, 34px);
}

.text-action {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--text);
  font-weight: 760;
  text-decoration-color: var(--hero);
  text-underline-offset: 5px;
}

.priority-hub .product-page-header {
  margin-bottom: clamp(30px, 4vw, 56px);
}

.priority-entry-list {
  border-top: 1px solid var(--grid);
}

.priority-entry {
  min-height: 170px;
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr) auto;
  gap: clamp(20px, 3vw, 46px);
  align-items: center;
  border-bottom: 1px solid var(--grid);
  padding: clamp(22px, 3vw, 36px) 0;
}

.priority-entry h2 {
  font-size: clamp(27px, 3vw, 40px);
}

.route-section-nav {
  display: flex;
  width: 100%;
  gap: clamp(20px, 3vw, 38px);
  align-items: center;
  border-bottom: 1px solid var(--grid);
  margin: clamp(12px, 2vw, 20px) 0 clamp(34px, 5vw, 68px);
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: none;
}

.route-section-nav::-webkit-scrollbar {
  display: none;
}

.route-section-nav a {
  position: relative;
  min-height: 46px;
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  color: var(--muted);
  font-size: 12px;
  font-weight: 760;
  letter-spacing: .02em;
  text-decoration: none;
}

.route-section-nav a::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 2px;
  background: var(--hero);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 180ms ease;
}

.route-section-nav a:hover,
.route-section-nav a:focus-visible,
.route-section-nav a.is-active {
  color: var(--ink);
}

.route-section-nav a.is-active::after {
  transform: scaleX(1);
}

.route-section-nav:focus-visible,
.route-section-nav a:focus-visible {
  outline: 2px solid var(--hero);
  outline-offset: 3px;
}

.product-pagination {
  width: 100%;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  margin: 24px 0;
}

.product-pagination__range {
  color: var(--muted);
  font-size: 10px;
  font-variant-numeric: tabular-nums;
  text-align: center;
}

.product-breadcrumb a,
.entity-link,
.entity-sub-link,
.decision-course-link,
.decision-provider-link,
.evidence-block a {
  color: inherit;
  text-decoration-color: color-mix(in srgb, currentColor 35%, transparent);
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

.entity-link,
.decision-course-link {
  text-decoration-color: var(--hero);
}

.product-button-link {
  text-decoration: none;
}

.product-fact-hero {
  border-block: 1px solid var(--grid);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: clamp(24px, 3.5vw, 46px) 0;
}

.product-fact-hero > div {
  min-width: 0;
  min-height: 108px;
  border-right: 1px solid var(--grid);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 18px;
  padding: 22px clamp(16px, 2.3vw, 34px);
}

.product-fact-hero > div:last-child {
  border-right: 0;
}

.product-fact-hero:has(> :nth-child(4):last-child) {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.product-fact-hero span,
.product-facts dt,
.entity-card dt {
  color: var(--muted);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.product-fact-hero strong {
  font-family: var(--display-serif);
  font-size: clamp(25px, 3vw, 43px);
  font-weight: 600;
  line-height: 1;
  overflow-wrap: anywhere;
}

.product-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(20px, 3vw, 44px);
}

.product-section,
.map-readiness {
  border-top: 1px solid var(--grid);
  margin-top: clamp(30px, 4vw, 52px);
  padding-top: 22px;
}

.product-section h2,
.map-readiness strong {
  margin: 0 0 18px;
  font-family: var(--display-serif);
  font-size: clamp(23px, 2.4vw, 34px);
  font-weight: 600;
  line-height: 1.1;
}

.product-facts,
.entity-card dl,
.review-aggregate {
  display: grid;
  gap: 0;
  margin: 0;
}

.product-facts > div,
.entity-card dl > div,
.review-aggregate > div {
  border-bottom: 1px solid var(--grid);
  display: grid;
  grid-template-columns: minmax(120px, .8fr) minmax(0, 1.2fr);
  gap: 16px;
  padding: 13px 0;
}

.product-facts dd,
.entity-card dd,
.review-aggregate dd {
  margin: 0;
  overflow-wrap: anywhere;
}

.product-boundary,
.map-readiness p {
  max-width: 920px;
  border-left: 2px solid var(--hero);
  margin: 18px 0 0;
  padding: 8px 0 8px 14px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.55;
}

.entity-card-grid,
.location-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin-top: 26px;
  background: var(--grid);
  border: 1px solid var(--grid);
}

.entity-card-grid.is-sparse {
  background: transparent;
  border: 0;
}

.entity-card-grid.is-sparse > .entity-card {
  border: 1px solid var(--grid);
}

.entity-card-grid.is-sparse:has(> :only-child) {
  grid-template-columns: minmax(0, 1fr);
}

.entity-card-grid.is-sparse:has(> :nth-child(2):last-child) {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.product-page-header:has(+ .community-intro) h1 {
  font-size: clamp(38px, 5vw, 68px);
}

.product-page-header:has(+ .product-back-link) h1 {
  max-width: 980px;
  font-size: clamp(36px, 4.6vw, 62px);
}

.community-targets {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 28px;
  border: 1px solid var(--grid);
}

.community-target-tab {
  display: grid;
  min-width: 0;
  min-height: 76px;
  align-content: center;
  gap: 5px;
  border-right: 1px solid var(--grid);
  padding: 14px 18px;
  color: inherit;
  text-decoration: none;
}

.community-target-tab:last-child { border-right: 0; }

.community-target-tab span {
  font-family: var(--display-serif);
  font-size: clamp(18px, 2vw, 25px);
  font-weight: 600;
}

.community-target-tab small {
  color: var(--muted);
  font-size: 9px;
  font-weight: 750;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.community-target-tab[aria-current="page"] {
  background: var(--text);
  color: var(--paper);
}

.community-target-tab[aria-current="page"] small { color: currentColor; }

.community-search { max-width: 100%; }

.community-scope,
.community-search-prompt {
  max-width: 760px;
  margin: 14px 0 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.5;
}

.community-search-prompt {
  border-block: 1px solid var(--grid);
  margin-top: 30px;
  padding: 24px 0;
}

.community-finder-heading,
.community-blocked {
  margin-top: 34px;
  border-block: 1px solid var(--grid);
  padding: 26px 0;
}

.community-finder-heading h2,
.community-blocked h2,
.community-results-heading h2,
.approved-review-section h2 {
  margin: 6px 0 0;
  font-family: var(--display-serif);
  font-size: clamp(25px, 3vw, 40px);
  font-weight: 600;
  line-height: 1.08;
}

.community-blocked p:last-child {
  max-width: 740px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
}

.community-results { margin-top: 34px; }

.community-results-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 20px;
  align-items: end;
  border-bottom: 1px solid var(--grid);
  padding-bottom: 18px;
}

.community-results-heading > span {
  max-width: 320px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.45;
  text-align: right;
}

.community-result-list { display: grid; }

.community-source-result {
  border-top: 1px solid var(--grid);
  margin-top: 26px;
}

.community-source-result > header {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: baseline;
  padding: 18px 0 4px;
}

.community-source-result > header h3 {
  margin: 0;
  font-family: var(--display-serif);
  font-size: clamp(21px, 2.2vw, 30px);
  font-weight: 600;
}

.community-source-result > header span {
  color: var(--muted);
  font-size: 10px;
}

.community-result {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(220px, .75fr) auto;
  gap: clamp(20px, 3vw, 42px);
  align-items: center;
  border-bottom: 1px solid var(--grid);
  padding: 22px 0;
}

.community-result h3 {
  margin: 5px 0 8px;
  font-family: var(--display-serif);
  font-size: clamp(19px, 2vw, 27px);
  font-weight: 600;
  line-height: 1.08;
}

.community-result p:not(.kicker) {
  margin: 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.5;
}

.community-result dl { margin: 0; }

.community-result dl > div {
  display: grid;
  grid-template-columns: 90px minmax(0, 1fr);
  gap: 10px;
  padding: 5px 0;
  font-size: 10px;
}

.community-result dt { color: var(--muted); }
.community-result dd { margin: 0; overflow-wrap: anywhere; }

.community-moderation { margin-top: 40px; }

.community-identity {
  border-block: 1px solid var(--grid);
  margin-top: 24px;
  padding: 0;
}

.community-identity summary {
  min-height: 52px;
  display: flex;
  align-items: center;
  cursor: pointer;
  font-size: 11px;
  font-weight: 750;
}

.community-identity > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 20px;
  align-items: end;
  border-top: 1px solid var(--grid);
  padding: 20px 0;
}

.community-identity .kicker { grid-column: 1 / -1; }
.community-identity .product-facts { min-width: 0; }

.approved-review-section { margin-top: 42px; }
.approved-review-section > div { display: grid; margin-top: 18px; border-top: 1px solid var(--grid); }

.approved-review {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(260px, .8fr) auto;
  gap: 24px;
  border-bottom: 1px solid var(--grid);
  padding: 22px 0;
}

.approved-review > p { margin: 0; font-size: 13px; line-height: 1.6; }
.approved-review dl { margin: 0; }
.approved-review dl > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; font-size: 10px; }
.approved-review dd { margin: 0; }
.approved-review time { color: var(--muted); font-size: 10px; white-space: nowrap; }

.entity-card,
.location-list article {
  min-height: 210px;
  padding: clamp(18px, 2.2vw, 30px);
  background: var(--paper);
}

.entity-card h2,
.location-list h3 {
  margin: 8px 0 12px;
  font-family: var(--display-serif);
  font-size: clamp(20px, 2vw, 29px);
  font-weight: 600;
  line-height: 1.08;
  overflow-wrap: anywhere;
}

.entity-card p,
.location-list p {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.5;
}

.product-search {
  max-width: 920px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: end;
  margin: 24px 0 0;
}

.global-course-search {
  max-width: 1040px;
  grid-template-columns: minmax(0, 1fr) auto auto;
}

.course-search-hint {
  max-width: 760px;
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.55;
}

.course-source-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.course-source-card {
  min-height: 250px;
}

.course-source-card .primary-button {
  align-self: end;
  justify-self: start;
}

.global-programme-search {
  max-width: 1180px;
  grid-template-columns: minmax(0, 1.45fr) repeat(2, minmax(150px, .72fr));
}

.global-programme-search label:nth-of-type(n + 4) {
  grid-column: span 1;
}

.global-programme-search .primary-button {
  min-width: 150px;
}

.global-programme-identity,
.global-programme-coverage,
.global-programme-groups,
.global-programme-source-page,
.global-programme-dimensions {
  margin-top: clamp(48px, 7vw, 96px);
}

.global-programme-identity {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: end;
  border-block: 1px solid var(--grid);
  padding: 24px 0;
}

.global-programme-identity h2,
.global-programme-coverage h2,
.global-programme-dimensions h2 {
  max-width: 760px;
  margin: 7px 0 0;
  font-family: var(--display-serif);
  font-size: clamp(25px, 3.2vw, 44px);
  font-weight: 600;
  line-height: 1.08;
  overflow-wrap: anywhere;
}

.global-programme-coverage > header,
.global-programme-results-heading,
.global-programme-source-results > header,
.global-programme-dimensions > header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, .72fr);
  gap: clamp(20px, 4vw, 56px);
  align-items: end;
}

.global-programme-coverage > header {
  border-block: 1px solid var(--grid);
  padding: 22px 0;
}

.global-programme-coverage > header > div:last-child {
  justify-self: end;
  text-align: right;
}

.global-programme-coverage > header > div:last-child strong,
.global-programme-coverage > header > div:last-child small {
  display: block;
}

.global-programme-coverage > header > div:last-child strong {
  color: var(--text);
  font-family: var(--display-serif);
  font-size: 22px;
  font-weight: 620;
}

.global-programme-coverage > header > div:last-child small,
.global-programme-results-heading > p,
.global-programme-source-results > header > span {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.55;
}

.global-programme-source-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 22px;
}

.global-programme-source-card {
  min-height: 272px;
  border-top: 3px solid var(--text);
}

.global-programme-source-card[data-state="supporting_only"] {
  border-top-color: var(--muted);
}

.global-programme-source-card[data-state="unavailable"] {
  border-top-color: var(--grid-strong);
  background: color-mix(in srgb, var(--paper) 86%, var(--surface));
}

.global-programme-source-card.is-selected {
  box-shadow: inset 0 0 0 1px var(--hero-text);
}

.global-programme-source-card h3,
.global-programme-card h3 {
  margin: 8px 0 12px;
  font-family: var(--display-serif);
  font-size: clamp(20px, 2vw, 29px);
  font-weight: 600;
  line-height: 1.08;
  overflow-wrap: anywhere;
}

.global-programme-source-card > p:not(.kicker) {
  min-height: 48px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.5;
}

.global-programme-source-card dl,
.global-programme-card dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: auto;
}

.global-programme-source-card dl > div,
.global-programme-card dl > div {
  display: block;
  min-width: 0;
  border-top: 1px solid var(--grid);
  padding-top: 8px;
}

.global-programme-source-card dl dd,
.global-programme-card dl dd {
  margin-top: 7px;
}

.global-programme-source-state {
  display: block;
  align-self: end;
  margin-top: 20px;
  color: var(--muted);
  font-size: 11px;
}

.global-programme-source-results {
  border-bottom: 1px solid var(--grid);
  padding: clamp(30px, 5vw, 58px) 0;
}

.global-programme-source-results > header {
  margin-bottom: 22px;
}

.global-programme-source-results > header h3 {
  margin: 6px 0 0;
  font-family: var(--display-serif);
  font-size: clamp(24px, 3vw, 39px);
  font-weight: 600;
  line-height: 1.06;
  overflow-wrap: anywhere;
}

.global-programme-source-results > header > span {
  justify-self: end;
  text-align: right;
}

.global-programme-result-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.global-programme-card {
  min-width: 0;
  min-height: 270px;
}

.global-programme-card h3,
.global-programme-title {
  display: block;
  font-size: clamp(19px, 1.8vw, 27px);
}

.global-programme-card h3 a {
  color: var(--text);
  text-decoration: none;
}

.global-programme-card h3 a:hover,
.global-programme-card h3 a:focus-visible {
  color: var(--hero-text);
}

.global-programme-card > p:not(.kicker) {
  min-height: 36px;
  margin: 0;
  font-size: 11px;
  line-height: 1.45;
}

.global-programme-card dl {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 18px;
}

.global-programme-card-actions {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  gap: 12px 16px;
  align-items: baseline;
  margin-top: auto;
  padding-top: 18px;
}

.global-programme-source-link {
  color: var(--hero-text);
  font-size: 11px;
  font-weight: 720;
  text-decoration: none;
}

.global-programme-card-actions small {
  max-width: 100%;
  overflow: hidden;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.global-programme-dimensions > header {
  border-top: 1px solid var(--grid);
  padding-top: 22px;
}

.global-programme-dimensions > header h2 {
  font-family: var(--sans);
  font-size: clamp(16px, 1.7vw, 22px);
  font-weight: 560;
  line-height: 1.35;
}

.global-programme-dimensions nav {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin-top: 24px;
  border-top: 1px solid var(--grid);
  border-bottom: 1px solid var(--grid);
}

.global-programme-dimensions nav a {
  display: grid;
  min-height: 138px;
  align-content: space-between;
  gap: 14px;
  padding: 16px;
  border-right: 1px solid var(--grid);
  color: var(--text);
  text-decoration: none;
}

.global-programme-dimensions nav a:last-child { border-right: 0; }
.global-programme-dimensions nav a:hover,
.global-programme-dimensions nav a:focus-visible { background: var(--paper); }
.global-programme-dimensions nav a span { color: var(--muted); font-family: var(--mono); font-size: 10px; }
.global-programme-dimensions nav a strong { font-size: 13px; line-height: 1.25; }
.global-programme-dimensions nav a small { color: var(--hero-text); font-size: 10px; font-weight: 720; }

.course-source-unavailable {
  align-self: end;
  margin-top: auto;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.55;
}

.course-source-unavailable strong {
  display: block;
  color: var(--text);
  font-size: 12px;
  margin-bottom: 6px;
}

.course-source-unavailable p { margin: 0; }

.course-source-results {
  margin-top: clamp(42px, 6vw, 76px);
}

.course-source-results-heading,
.course-source-result > header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(250px, .72fr);
  gap: clamp(20px, 4vw, 56px);
  align-items: end;
}

.course-source-results-heading {
  border-block: 1px solid var(--grid);
  padding: 22px 0;
}

.course-source-results-heading h2,
.course-source-result h3 {
  margin: 5px 0 0;
  font-family: var(--display-serif);
  font-size: clamp(26px, 3.6vw, 48px);
  font-weight: 600;
  line-height: 1.05;
  overflow-wrap: anywhere;
}

.course-source-results-heading > p,
.course-source-result > header > span {
  margin: 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.55;
}

.course-source-result {
  border-bottom: 1px solid var(--grid);
  padding: clamp(34px, 5vw, 62px) 0;
}

.course-source-result > header > span {
  justify-self: end;
  text-align: right;
}

.course-source-result > .secondary-button {
  margin-top: 22px;
}

.course-coverage-chart {
  margin-top: clamp(54px, 7vw, 96px);
}

.course-feature-facts dd small {
  display: block;
  margin-top: 4px;
}

.product-search label,
.review-text {
  display: grid;
  min-width: 0;
  gap: 7px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 750;
}

.product-search input,
.product-search select,
.review-text textarea {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  min-height: 48px;
  border: 1px solid var(--grid);
  border-radius: 8px;
  background: transparent;
  padding: 10px 13px;
  color: var(--text);
  font: inherit;
}

.product-result-count {
  margin: 18px 0 0;
  color: var(--muted);
  font-size: 11px;
}

.global-directory-entry {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(260px, .75fr);
  gap: clamp(24px, 4vw, 56px);
  align-items: end;
  border-block: 1px solid var(--grid);
  margin-top: clamp(28px, 4vw, 46px);
  padding: clamp(24px, 3.5vw, 42px) 0;
}

.global-directory-entry > dl {
  margin: 0;
}

.global-directory-entry > .primary-button {
  justify-self: start;
}

.product-section-heading {
  margin: clamp(34px, 4.5vw, 58px) 0 0;
  font-family: var(--display-serif);
  font-size: clamp(25px, 3.3vw, 45px);
  font-weight: 600;
}

.route-empty {
  min-height: 120px;
  border-block: 1px solid var(--grid);
  display: grid;
  place-items: center;
  margin: 26px 0 0;
  color: var(--muted);
  font-size: 12px;
  text-align: center;
}

.product-chart,
.product-map {
  border-top: 1px solid var(--grid);
  margin: clamp(40px, 6vw, 82px) 0 0;
  padding-top: 24px;
}

.product-chart figcaption,
.product-map figcaption {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, .7fr);
  gap: 24px;
}

.product-chart figcaption h2,
.product-map figcaption h2 {
  grid-column: 1;
  grid-row: 2;
  margin: 6px 0 0;
  font-family: var(--display-serif);
  font-size: clamp(25px, 3.3vw, 45px);
  font-weight: 600;
}

.product-chart figcaption > p:last-child,
.product-map figcaption > p:last-child {
  grid-column: 2;
  grid-row: 1 / 3;
  align-self: end;
  color: var(--muted);
  line-height: 1.5;
}

.product-chart figcaption > .kicker,
.product-map figcaption > .kicker {
  grid-column: 1;
  grid-row: 1;
}

.career-chart-scroll {
  width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  padding-top: clamp(22px, 3vw, 36px);
}

.cricos-location-chart-scroll {
  width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
}

.cricos-location-chart-scroll .lieflat-chart {
  min-width: 700px;
}

.career-chart-scroll:focus-visible,
.cricos-location-chart-scroll:focus-visible,
.job-market-chart-scroll:focus-visible {
  outline: 2px solid var(--hero);
  outline-offset: 4px;
}

.career-overview figcaption,
.job-market-history figcaption,
.job-market-distribution figcaption,
.job-market-map figcaption {
  display: block;
}

.career-overview figcaption h2,
.job-market-history figcaption h2,
.job-market-distribution figcaption h2,
.job-market-map figcaption h2 {
  margin-top: 0;
}

.job-market-chart-scroll {
  width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  padding-top: clamp(18px, 2.4vw, 28px);
}

.job-market-chart-scroll-hint {
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 10px;
  letter-spacing: .035em;
  line-height: 1.45;
}

.job-market-history-chart {
  min-width: 720px;
}

.job-market-distribution-chart {
  min-width: 860px;
}

.housing-chart-scroll {
  width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  padding-top: clamp(22px, 3vw, 36px);
}

.housing-chart-scroll:focus-visible {
  outline: 2px solid var(--hero);
  outline-offset: 4px;
}

.housing-matrix-chart {
  min-width: 860px;
}

.lieflat-chart .housing-matrix-mark,
.lieflat-chart .housing-matrix-mark.is-faint {
  fill: var(--data-2);
}

.lieflat-chart .housing-matrix-mark.is-mid {
  fill: var(--data-2);
}

.lieflat-chart .housing-matrix-mark.is-strong {
  fill: var(--data-2);
}

.lieflat-chart .housing-matrix-mark.is-hero {
  fill: var(--hero);
}

.lieflat-chart .housing-matrix-city,
.lieflat-chart .housing-matrix-type {
  font-size: 13px;
  font-weight: 700;
}

.lieflat-chart .housing-matrix-value {
  fill: var(--muted);
  font-size: 10px;
  font-weight: 650;
}

.housing-matrix-table {
  min-width: 1120px;
}

.housing-exact-matrix > summary {
  cursor: pointer;
  font-family: var(--display-serif);
  font-size: clamp(22px, 2.6vw, 34px);
  font-weight: 600;
}

.housing-exact-matrix > [data-disclosure-content] {
  padding-top: 18px;
}

.housing-city-search {
  grid-template-columns: minmax(240px, 1fr) auto;
  max-width: 760px;
}

.career-overview-chart {
  min-width: 820px;
}

.product-map-wire,
.product-chart-wire {
  padding-top: clamp(22px, 3vw, 36px);
}

.global-map-hero,
.global-country-map-panel,
.global-country-detail {
  --map-font-meta: 10px;
  --map-font-legend-label: 10px;
  --map-font-legend: 10px;
  --map-font-country-code: 14.5px;
  --map-font-country-body: 13px;
  --map-font-country-count: clamp(18px, 1.45vw, 21px);
  --map-font-country-name: clamp(31.5px, calc(2.7vw + 1.5px), 39.5px);
  --map-font-control: 12px;
  --map-font-body: 13px;
  --map-font-item: clamp(18px, 1.4vw, 22px);
  --map-font-section: clamp(26px, 2.7vw, 36px);
  --map-font-display: clamp(40px, 5vw, 68px);
}

.global-map-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr);
  gap: clamp(36px, 6vw, 96px);
  align-items: end;
  padding-bottom: clamp(26px, 3.4vw, 48px);
  border-bottom: 1px solid var(--grid);
}

.global-map-hero-copy h1 {
  max-width: 900px;
  margin: 0;
  font-family: var(--display-serif);
  font-size: var(--map-font-display);
  font-weight: 560;
  letter-spacing: -.045em;
  line-height: .98;
}

.global-map-hero-copy p {
  max-width: 66ch;
  margin: 20px 0 0;
  color: var(--muted);
  font-size: var(--map-font-body);
  line-height: 1.6;
}

.global-country-search {
  position: relative;
  min-width: 0;
  margin: 0;
}

.global-country-search > label {
  display: block;
  margin-bottom: 10px;
  color: var(--label);
  font-size: var(--map-font-meta);
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.global-country-search-field { position: relative; }
.global-country-search-field input {
  width: 100%;
  min-height: 48px;
  padding: 8px 44px 8px 0;
  border: 0;
  border-bottom: 1px solid var(--text);
  border-radius: 0;
  outline: 0;
  background: transparent;
  color: var(--text);
  font: 600 var(--map-font-body)/1.35 var(--sans);
  appearance: none;
}

.global-country-search-field input::-webkit-search-cancel-button { display: none; }
.global-country-search-field input::placeholder { color: var(--muted); font-weight: 450; }
.global-country-search-field input:focus { border-bottom-color: var(--hero); box-shadow: 0 2px 0 -1px var(--hero); }

.global-country-search-clear {
  position: absolute;
  top: 2px;
  right: -10px;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.global-country-search-clear img { width: 17px; height: 17px; filter: var(--icon-filter, none); }

.global-country-search-list {
  position: absolute;
  z-index: 12;
  top: calc(100% + 8px);
  left: 0;
  right: 0;
  max-height: min(356px, 48vh);
  margin: 0;
  padding: 6px;
  overflow: auto;
  border: 1px solid var(--grid);
  background: var(--surface-strong);
  box-shadow: 0 16px 34px color-mix(in srgb, var(--text) 12%, transparent);
  list-style: none;
}

.global-country-search-list li { margin: 0; }
.global-country-search-list button {
  width: 100%;
  min-height: 50px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 8px 10px;
  border: 0;
  background: transparent;
  color: var(--text);
  font: 600 var(--map-font-control)/1.35 var(--sans);
  text-align: left;
  cursor: pointer;
}
.global-country-search-list button:hover,
.global-country-search-list [aria-selected="true"] button { background: color-mix(in srgb, var(--hero) 11%, transparent); }
.global-country-search-list small { color: var(--muted); font-size: var(--map-font-meta); white-space: nowrap; }
.global-country-search-empty { padding: 16px 10px; color: var(--muted); font-size: var(--map-font-control); }

.global-country-detail {
  display: block;
  min-height: 0;
  margin-top: clamp(24px, 3vw, 38px);
  padding: clamp(24px, 3vw, 38px) 0 0;
  border-top: 1px solid var(--grid);
  border-bottom: 1px solid var(--grid);
}

.global-country-detail[hidden] { display: none; }
.global-country-context {
  display: grid;
  grid-template-columns: minmax(190px, .8fr) minmax(220px, 1.2fr);
  gap: clamp(22px, 3vw, 48px);
  align-items: end;
  scroll-margin-top: clamp(18px, 3vw, 34px);
}

.map-school-results { padding: clamp(30px, 4vw, 54px) 0 clamp(32px, 4vw, 50px); scroll-margin-top: clamp(86px, 7vw, 112px); }
.map-school-results.is-page-loading { opacity: 1; pointer-events: none; }
.global-country-context + .map-school-results {
  border-top: 1px solid var(--grid);
  padding-top: clamp(16px, 2vw, 24px);
}
.map-school-results > header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: end;
}
.map-school-view-switch {
  min-height: 24px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  margin: 0 0 10px;
  font: 750 var(--map-font-meta)/1.2 var(--sans);
  letter-spacing: .08em;
  text-transform: uppercase;
}
.map-school-view-switch span,
.map-school-view-switch a { padding-bottom: 4px; border-bottom: 1px solid var(--grid); }
.map-school-view-switch span[aria-current="page"] { border-bottom-color: var(--hero); color: var(--text); }
.map-school-view-switch a { color: var(--muted); text-decoration: none; }
.map-school-view-switch a:hover,
.map-school-view-switch a:focus-visible { border-bottom-color: var(--hero); color: var(--hero); }
.map-school-results > header h2 {
  max-width: 22ch;
  margin: 0;
  font-family: var(--display-serif);
  font-size: var(--map-font-section);
  font-weight: 560;
  line-height: 1.02;
}
.map-school-results > header > strong {
  color: var(--hero);
  font-size: clamp(22px, 2.1vw, 30px);
  font-weight: 650;
  line-height: 1;
}
.map-school-results-context,
.map-school-results-boundary {
  max-width: 78ch;
  margin: 14px 0 0;
  color: var(--muted);
  font-size: var(--map-font-control);
  line-height: 1.55;
}
.map-school-results-context { color: var(--text); font-weight: 650; }
.map-school-list { margin-top: 22px; border-top: 1px solid var(--text); scroll-margin-top: clamp(18px, 3vw, 34px); }
.map-school-row {
  display: grid;
  grid-template-columns: 42px minmax(220px, 1.35fr) minmax(180px, .8fr) auto;
  gap: clamp(14px, 2.4vw, 34px);
  align-items: center;
  min-height: 92px;
  padding: 15px 0;
  border-bottom: 1px solid var(--grid);
}
.map-school-row-index {
  align-self: start;
  padding-top: 4px;
  color: var(--label);
  font: 700 var(--map-font-meta)/1 var(--sans);
  letter-spacing: .1em;
}
.map-school-row-identity { min-width: 0; }
.map-school-row-identity .kicker { margin: 0 0 5px; font-size: var(--map-font-meta); }
.map-school-row-identity h3 {
  margin: 0;
  font-family: var(--display-serif);
  font-size: var(--map-font-item);
  font-weight: 560;
  line-height: 1.12;
  overflow-wrap: anywhere;
}
.map-school-row-identity > p:last-child { margin: 7px 0 0; color: var(--muted); font-size: var(--map-font-control); line-height: 1.45; }
.map-school-row-location { min-width: 0; }
.map-school-row-location span { display: block; margin-bottom: 5px; color: var(--label); font-size: var(--map-font-meta); font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.map-school-row-location strong { display: block; font-size: var(--map-font-control); font-weight: 650; line-height: 1.45; overflow-wrap: anywhere; }
.map-school-detail-link {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  color: var(--text);
  font-size: var(--map-font-control);
  font-weight: 750;
  text-decoration: none;
  white-space: nowrap;
}
.map-school-detail-link img { width: 17px; height: 17px; filter: var(--icon-filter, none); transition: transform .2s ease; }
.map-school-detail-link:hover { color: var(--hero); }
.map-school-detail-link:hover img { transform: translateX(3px); }
.map-school-results-footer {
  display: block;
  padding: 0;
}
.map-school-results-footer a,
.map-school-results-error button {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 12px;
  border: 1px solid var(--grid);
  background: transparent;
  color: var(--text);
  font: 750 var(--map-font-control)/1 var(--sans);
  text-decoration: none;
  cursor: pointer;
}
.map-school-results-footer a:hover,
.map-school-results-error button:hover { border-color: var(--hero); color: var(--hero); }
.map-school-results-loading,
.map-school-results-error { margin: 0; padding: 32px 0; color: var(--muted); font-size: var(--map-font-body); }
.map-school-results-error p { margin: 0 0 14px; }
.global-country-summary-name span {
  display: block;
  margin-bottom: 6px;
  color: var(--label);
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.global-country-summary-name span {
  margin-bottom: 6px;
  color: var(--hero);
  font-size: var(--map-font-country-code);
  letter-spacing: .12em;
}
.global-country-summary-name h2 {
  margin: 0;
  font-family: var(--display-serif);
  font-size: var(--map-font-country-name);
  font-style: normal;
  font-weight: 560;
  line-height: 1.05;
}
.global-country-summary-count { padding-bottom: 2px; }
.global-country-summary-count strong { font-size: var(--map-font-country-count); line-height: 1.25; }
.global-country-summary-link {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--text);
  font-size: var(--map-font-control);
  font-weight: 750;
  text-decoration: none;
  white-space: nowrap;
}
.global-country-summary-link img { width: 17px; height: 17px; filter: var(--icon-filter, none); transition: transform .2s ease; }
.global-country-summary-link:hover { color: var(--hero); }
.global-country-summary-link:hover img { transform: translateX(3px); }
.global-country-summary-empty { color: var(--muted); font-size: var(--map-font-control); line-height: 1.45; }

.global-country-summary-actions {
  grid-column: 1 / -1;
  display: block;
  padding: 0;
  border-top: 1px solid var(--grid);
}

.global-country-summary-actions > div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 22px;
  justify-content: flex-start;
}

.global-country-summary-actions .global-country-summary-link {
  min-height: 42px;
  padding: 0 0 0 14px;
  border-left: 1px solid var(--grid);
}

.global-country-summary-actions .global-country-summary-link.is-primary {
  color: var(--text);
  border-left-color: var(--hero);
}

.global-country-summary-actions .global-country-summary-link.is-evidence {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 10px;
  align-content: center;
  color: var(--text);
}

.global-country-summary-link.is-evidence span {
  grid-column: 1;
  color: var(--label);
  font-size: var(--map-font-meta);
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.global-country-summary-link.is-evidence strong {
  grid-column: 1;
  max-width: 30ch;
  font-size: var(--map-font-control);
  line-height: 1.35;
  white-space: normal;
}

.global-country-summary-link.is-evidence img {
  grid-column: 2;
  grid-row: 1 / 3;
  align-self: center;
}

.country-context-rail {
  display: grid;
  grid-template-columns: minmax(170px, .62fr) minmax(0, 1.38fr);
  gap: clamp(24px, 4vw, 64px);
  align-items: center;
  margin: -24px 0 clamp(28px, 4vw, 48px);
  padding: 16px 0;
  border-block: 1px solid var(--grid);
}

.country-context-rail > div:first-child {
  min-width: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 4px 12px;
  align-items: baseline;
}

.country-context-rail span {
  color: var(--label);
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.country-context-rail strong { font-family: var(--display-serif); font-size: 22px; font-weight: 600; }
.country-context-rail small { grid-column: 2; color: var(--muted); font-size: 10px; }
.country-context-rail > div:last-child { display: flex; flex-wrap: wrap; gap: 8px 24px; justify-content: flex-end; }
.country-context-rail a {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  color: var(--text);
  font-size: 11px;
  font-weight: 750;
  text-decoration-color: color-mix(in srgb, currentColor 28%, transparent);
  text-underline-offset: 4px;
}
.country-context-rail a:hover,
.country-context-rail a:focus-visible { color: var(--hero); }

.country-evidence-continuation {
  min-height: 48px;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2px 12px;
  align-content: center;
  margin-left: auto;
  padding: 8px 0 8px 18px;
  border-left: 1px solid var(--hero);
  color: var(--text);
  text-decoration: none;
}
.country-evidence-continuation span { color: var(--label); font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.country-evidence-continuation strong { font-size: 11px; line-height: 1.35; }
.country-evidence-continuation img { grid-column: 2; grid-row: 1 / 3; width: 17px; height: 17px; align-self: center; filter: var(--icon-filter, none); transition: transform .2s ease; }
.country-evidence-continuation:hover { color: var(--hero); }
.country-evidence-continuation:hover img { transform: translateX(3px); }

.global-country-map-panel,
.global-decision-panel { width: 100%; }
.global-country-map-panel {
  margin-top: clamp(26px, 3.4vw, 48px);
}

.world-map-toolbar {
  display: grid !important;
  grid-template-columns: auto minmax(240px, 1fr) auto minmax(180px, .55fr) auto;
  grid-template-areas: "title subtitle status slider reset";
  align-items: center;
  gap: clamp(12px, 1.8vw, 26px);
  padding: 0 0 12px;
  font-family: var(--sans);
}
.world-map-toolbar-title {
  grid-area: title;
  margin: 0;
  font-family: var(--display-serif);
  font-size: clamp(28px, 2.35vw, 34px);
  font-weight: 560;
  letter-spacing: -.03em;
  line-height: 1;
}
.world-map-zoom-status { grid-area: status; display: grid; justify-items: end; gap: 3px; }
.world-map-zoom-status span { color: var(--label); font-size: var(--map-font-meta); font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.world-map-zoom-status output { min-width: 44px; color: var(--text); font-size: 20px; font-weight: 760; line-height: 1; text-align: right; font-variant-numeric: tabular-nums; }
.world-map-toolbar-subrow {
  display: contents;
}
.world-map-toolbar-subrow > button {
  grid-area: reset;
  flex: 0 0 auto;
  min-height: 36px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--text);
  font: 750 var(--map-font-control)/1 var(--sans);
  text-decoration: underline;
  text-underline-offset: 5px;
  cursor: pointer;
}
.world-map-toolbar-subrow > button:hover { color: var(--hero); }
.world-map-zoom-range { grid-area: slider; display: flex; align-items: center; }
.world-map-zoom-range.is-mobile { display: none; }
.world-map-zoom-range input {
  width: 100%;
  height: 40px;
  margin: 0;
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  cursor: ew-resize;
}
.world-map-zoom-range input::-webkit-slider-runnable-track { height: 2px; border: 0; border-radius: 0; background: var(--map-slider-track, var(--muted)); }
.world-map-zoom-range input::-webkit-slider-thumb { width: 14px; height: 14px; margin-top: -6px; border: 2px solid var(--surface-strong); border-radius: 50%; appearance: none; -webkit-appearance: none; background: var(--hero); box-shadow: 0 0 0 1px var(--text); }
.world-map-zoom-range input::-moz-range-track { height: 2px; border: 0; border-radius: 0; background: var(--map-slider-track, var(--muted)); }
.world-map-zoom-range input::-moz-range-thumb { width: 12px; height: 12px; border: 2px solid var(--surface-strong); border-radius: 50%; background: var(--hero); box-shadow: 0 0 0 1px var(--text); }
.world-map-zoom-range input:focus-visible { outline: none; }
.world-map-zoom-range input:focus-visible::-webkit-slider-thumb { box-shadow: 0 0 0 2px var(--surface-strong), 0 0 0 4px var(--hero); }
.world-map-zoom-range input:focus-visible::-moz-range-thumb { box-shadow: 0 0 0 2px var(--surface-strong), 0 0 0 4px var(--hero); }
.world-map-threshold { grid-area: subtitle; min-width: 0; margin: 0; color: var(--muted); font-size: var(--map-font-control); line-height: 1.45; }

.global-city-search {
  max-width: none;
  margin-top: clamp(28px, 4vw, 46px);
}

.global-city-page-header h1 {
  max-width: 780px;
  font-size: clamp(38px, 4.6vw, 68px);
}

.global-city-facts {
  margin-block: clamp(24px, 3.5vw, 42px);
}

.global-city-facts .product-data-badge {
  margin-inline-start: 6px;
  font-style: normal;
  vertical-align: middle;
}

.global-city-analysis {
  margin-top: clamp(24px, 3.5vw, 44px);
}

.global-city-chart:focus-visible {
  outline: 2px solid var(--hero);
  outline-offset: 4px;
}

.visual-annotation {
  max-width: 62ch;
  margin: 16px 0 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.55;
}

.global-city-results {
  margin-top: clamp(36px, 5vw, 64px);
}

.global-city-card {
  display: flex;
  flex-direction: column;
}

.global-city-card-count {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px;
  align-items: baseline;
  border-top: 1px solid var(--grid);
  margin: 20px 0 0;
  padding-top: 18px;
}

.global-city-card-count strong {
  color: var(--ink);
  font-family: var(--display-serif);
  font-size: clamp(28px, 3vw, 42px);
  font-weight: 600;
  line-height: 1;
}

.global-city-card-count span {
  color: var(--muted);
  font-size: 10px;
  font-weight: 750;
  line-height: 1.35;
}

.entity-evidence-mini {
  margin-top: auto;
  padding-top: 18px;
}

.entity-evidence-mini summary {
  width: max-content;
  color: var(--label);
  cursor: pointer;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.entity-evidence-mini dl {
  margin-top: 12px;
}

.global-decision-matrix {
  margin-top: clamp(18px, 2.4vw, 28px);
  min-width: 760px;
}

.global-decision-scroll {
  width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
}

.global-decision-scroll:focus-visible {
  outline: 2px solid var(--hero);
  outline-offset: 4px;
}

.global-decision-matrix .lf-matrix-column,
.global-decision-matrix .lf-matrix-country {
  font-size: 14px;
  font-weight: 650;
}

.global-decision-matrix .lf-matrix-arc {
  fill: none;
  stroke: var(--grid);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.global-decision-matrix .lf-matrix-cell.is-unavailable {
  fill: var(--surface);
  stroke: var(--muted);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.global-decision-matrix .lf-matrix-total {
  fill: var(--muted);
  font-size: 13px;
}

@media (max-width: 520px) {
  .product-chart-wire {
    overflow-x: auto;
  }

  .global-city-chart .lieflat-chart {
    min-width: 620px;
  }

  .global-decision-matrix { min-width: 760px; }
}

@media (max-width: 760px) {
  .global-directory-entry {
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
  }
}

.product-map.global-country-map-panel {
  margin-top: clamp(26px, 3.4vw, 48px);
  padding-top: 0;
  border-top: 0;
}

.product-map-wire figcaption,
.product-chart-wire figcaption {
  display: block;
}

.product-map-wire figcaption h2,
.product-chart-wire figcaption h2 {
  margin: 0;
}

.product-map-wire .world-country-map {
  margin-top: clamp(14px, 2vw, 24px);
}

.product-evidence-disclosure {
  border-block: 1px solid var(--grid);
  margin-top: clamp(42px, 6vw, 78px);
}

.product-evidence-disclosure summary {
  min-height: 64px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  cursor: pointer;
  font-family: var(--display-serif);
  font-size: clamp(21px, 2.2vw, 31px);
  font-weight: 600;
  list-style: none;
}

.product-evidence-disclosure summary::-webkit-details-marker { display: none; }

.product-evidence-disclosure summary::after {
  content: "+";
  font-family: var(--sans);
  font-size: 24px;
  font-weight: 400;
}

.product-evidence-disclosure[open] summary::after { content: "−"; }

.product-evidence-disclosure [data-disclosure-content] {
  border-top: 1px solid var(--grid);
  padding: 22px 0 28px;
}

.product-evidence-disclosure:not([open]) > [data-disclosure-content] {
  display: none;
}

.product-evidence-disclosure [data-disclosure-content] > p {
  max-width: 900px;
  margin: 0 0 12px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.65;
}

.forecast-status-panel {
  border-block: 1px solid var(--grid);
  display: grid;
  grid-template-columns: minmax(130px, .4fr) minmax(240px, .9fr) minmax(280px, 1.3fr);
  gap: clamp(18px, 3vw, 42px);
  align-items: center;
  margin-top: clamp(38px, 5vw, 64px);
  padding: clamp(22px, 3vw, 34px) 0;
}

.forecast-status-panel > span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 750;
}

.forecast-status-panel > strong {
  font-family: var(--display-serif);
  font-size: clamp(22px, 2.5vw, 34px);
  font-weight: 600;
  line-height: 1.08;
}

.forecast-status-panel > p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.6;
}

.lieflat-chart {
  width: 100%;
  height: auto;
  display: block;
  margin-top: 22px;
  overflow: visible;
}

.lieflat-chart .lf-grid,
.lieflat-chart .lf-axis {
  fill: none;
  stroke: var(--grid);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.lieflat-chart .lf-mark {
  fill: var(--hero);
  stroke: var(--text);
  stroke-width: 1.4;
  vector-effect: non-scaling-stroke;
}

.lieflat-chart line.lf-mark {
  fill: none;
  stroke: var(--data, #a2cf28);
  stroke-width: 3;
}

.lieflat-chart .lf-hollow {
  fill: var(--paper);
}

.lieflat-chart .lf-label {
  fill: var(--text);
  font-family: var(--sans);
  font-size: 11px;
  font-variant-numeric: tabular-nums;
}

.sg-outcome-search {
  max-width: none;
  grid-template-columns: minmax(220px, 1.4fr) repeat(3, minmax(150px, .72fr)) auto;
}

.job-market-search {
  max-width: none;
  grid-template-columns: minmax(240px, 1.2fr) minmax(260px, 1fr) auto;
}

.job-market-facts strong {
  overflow-wrap: anywhere;
}

.lieflat-chart .job-market-matrix-bubble.is-low {
  fill: color-mix(in srgb, var(--text) 34%, var(--paper));
  stroke: var(--label);
}

.lieflat-chart .job-market-matrix-bubble.is-mid {
  fill: color-mix(in srgb, var(--text) 62%, var(--paper));
  stroke: var(--text);
}

.lieflat-chart .job-market-matrix-bubble.is-high {
  fill: var(--text);
  stroke: var(--text);
}

.lieflat-chart .lf-matrix-zero {
  fill: var(--grid);
}

.lieflat-chart .job-market-selected-ring {
  fill: none;
  stroke: var(--hero);
  stroke-width: 2.4;
}

.job-market-region-label {
  font-size: 9px !important;
  font-weight: 700;
}

.job-market-band-label {
  fill: var(--muted) !important;
  font-size: 9px !important;
  font-weight: 700;
}

.job-market-world-point {
  fill: var(--muted);
  stroke: var(--paper);
  stroke-width: 1;
  opacity: .56;
  vector-effect: non-scaling-stroke;
}

.job-market-world-point.is-missing {
  fill: var(--paper);
  stroke: var(--muted);
  opacity: .7;
}

.job-market-world-point.is-selected {
  fill: var(--hero);
  stroke: var(--text);
  stroke-width: 2;
  opacity: 1;
}

.world-country-point {
  cursor: pointer;
}

.world-country-point:focus .job-market-world-point,
.world-country-point:hover .job-market-world-point {
  fill: var(--text);
  stroke: var(--hero);
  stroke-width: 2.6;
  opacity: 1;
}

.job-market-selected-line {
  stroke: var(--text) !important;
  stroke-dasharray: 3 4;
}

.job-market-selected-label {
  font-weight: 750;
}

.job-market-history-line {
  stroke-width: 2.2 !important;
}

.job-market-exact-table summary {
  min-height: 48px;
  display: flex;
  align-items: center;
  cursor: pointer;
  font-family: var(--display-serif);
  font-size: clamp(22px, 2.5vw, 34px);
  font-weight: 600;
}

.job-market-exact-table[open] summary {
  margin-bottom: 18px;
}

.sg-outcome-card dl {
  margin-top: 18px;
}

.sg-trend-line,
.sg-range-line {
  fill: none !important;
  stroke: var(--hero) !important;
}

.sg-trend-line { stroke-width: 2.2 !important; }
.sg-range-line { stroke-width: 4 !important; }
.sg-median-mark { fill: var(--hero) !important; }
.sg-mean-mark { fill: var(--text) !important; stroke: var(--text) !important; }

@media (max-width: 1180px) {
  .sg-outcome-search { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sg-outcome-search .primary-button { grid-column: 1 / -1; }
  .job-market-search { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .job-market-search .primary-button { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
  .sg-outcome-search { grid-template-columns: minmax(0, 1fr); }
  .sg-outcome-search .primary-button { grid-column: 1; }
  .sg-trend-chart .lf-label,
  .sg-salary-chart .lf-label { font-size: 9px; }
}

.geo-map {
  width: 100%;
  height: auto;
  display: block;
  margin-top: 22px;
  border-block: 1px solid var(--grid);
  background:
    linear-gradient(var(--grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid) 1px, transparent 1px);
  background-size: 52px 52px;
}

.world-country-map {
  min-width: 0;
  background: var(--paper);
}

.world-map-viewport {
  --map-paper: #efeee8;
  --map-water: #e5e4de;
  --map-ink: #292825;
  --map-muted: #aaa89f;
  --map-grid: rgba(41,40,37,.12);
  --map-hero: var(--hero);
  --map-point-single: #b9b7ae;
  --map-point-small: #7d7b73;
  --map-point-large: #262522;
  --map-point-stroke: #efeee8;
  position: relative;
  width: 100%;
  aspect-ratio: 844 / 441;
  margin-top: 0;
  overflow: hidden;
  border-bottom: 1px solid var(--grid);
  border-radius: 0;
  background: var(--map-water);
  cursor: grab;
  touch-action: none;
  user-select: none;
}

:root[data-theme="dark"] .world-map-viewport {
  --map-paper: #282620;
  --map-water: #1c1b18;
  --map-ink: #d8d2c6;
  --map-muted: #716d65;
  --map-grid: rgba(229,222,209,.11);
  --map-point-single: #88847b;
  --map-point-small: #b2aca1;
  --map-point-large: #ece5d9;
  --map-point-stroke: #1c1b18;
}

.world-map-viewport.is-dragging { cursor: grabbing; }
.world-map-viewport.is-point-mode:not(.is-dragging) { cursor: crosshair; }

.world-map-viewport .world-country-map,
.world-map-viewport .world-school-layer {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0 !important;
}

.world-map-viewport .world-country-map {
  border: 0;
  background: var(--map-water);
}

.world-school-layer {
  z-index: 2;
  pointer-events: none;
}

.world-map-grid { pointer-events: none; }

.world-country-shape {
  fill: var(--map-paper);
  fill-rule: evenodd;
  stroke: var(--map-ink);
  stroke-width: .55;
  vector-effect: non-scaling-stroke;
  transition: fill 180ms ease, stroke 140ms ease, stroke-width 140ms ease;
}

.world-country-shape.no-institutions { fill: url(#no-ror-country-hatch); }
.world-country-link { cursor: pointer; outline: none; }
.world-map-viewport.is-point-mode .world-country-link { pointer-events: none; cursor: crosshair; }
[data-map-country].is-hovered.world-country-shape,
[data-map-country].is-hovered .world-country-shape { fill: var(--map-paper); stroke: var(--map-hero); stroke-width: 1.9; }
[data-map-country].is-hovered.world-country-shape.no-institutions,
[data-map-country].is-hovered .world-country-shape.no-institutions { fill: url(#no-ror-country-hatch); }
.world-country-link:focus-visible .world-country-shape { stroke: var(--map-hero); stroke-width: 1.8; }
.world-country-link.is-selected .world-country-shape,
.world-country-shape.is-selected { fill: color-mix(in srgb, var(--map-hero) 18%, var(--map-paper)); stroke: color-mix(in srgb, var(--map-hero) 72%, var(--map-ink)); stroke-width: 1.15; }
.world-country-link.is-selected.is-hovered .world-country-shape,
.world-country-link.is-selected .world-country-shape.is-hovered,
.world-country-shape.is-selected.is-hovered { fill: color-mix(in srgb, var(--map-hero) 18%, var(--map-paper)); stroke: var(--map-hero); stroke-width: 2.35; }

.world-map-tooltip {
  position: absolute;
  z-index: 3;
  width: min(250px, calc(100% - 20px));
  padding: 10px 12px;
  border: 0;
  border: 1px solid color-mix(in srgb, var(--surface-strong) 85%, white);
  border-radius: 0;
  background: var(--text);
  color: var(--bg);
  font: 600 11px/1.45 var(--sans);
  pointer-events: none;
}

.geo-grid-line {
  fill: none;
  stroke: var(--map-grid);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.world-point {
  vector-effect: non-scaling-stroke;
}

.world-land {
  fill: color-mix(in srgb, var(--paper) 90%, var(--hero));
  stroke: color-mix(in srgb, var(--text) 52%, transparent);
  stroke-width: .75;
  fill-rule: evenodd;
}

.world-point.is-activated {
  fill: var(--hero);
  opacity: 1;
  stroke: var(--text);
  stroke-width: 1.1;
}

.world-point.is-covered {
  fill: var(--hero);
  opacity: 1;
  stroke: var(--text);
  stroke-width: 1.1;
}

.world-point.is-identity-only {
  fill: var(--data-2);
  opacity: .68;
  stroke: var(--paper);
  stroke-width: .7;
}

.world-point.is-context {
  fill: var(--paper);
  opacity: .72;
  stroke: var(--muted);
  stroke-width: .8;
}

.world-country-point:focus .world-point,
.world-country-point:hover .world-point,
.world-country-point.is-selected .world-point {
  fill: var(--text);
  stroke: var(--hero);
  stroke-width: 3;
}

.world-country-point { cursor: pointer; outline: none; text-decoration: none; }
.world-point-hit { fill: transparent; stroke: none; }

.world-map-legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px clamp(16px, 2vw, 24px);
  margin-top: 6px;
  color: var(--muted);
  font: 450 var(--map-font-legend)/1.35 var(--sans);
}
.world-map-legend section { min-width: 0; display: flex; align-items: center; gap: 7px; }
.world-map-legend h2 { margin: 0; color: var(--text); font: 550 var(--map-font-legend-label)/1.35 var(--sans); letter-spacing: 0; white-space: nowrap; }
.world-map-legend section > div { min-width: 0; display: flex; flex-wrap: wrap; gap: 4px 10px; }
.world-map-legend span { min-width: 0; max-width: 100%; display: inline-flex; align-items: center; gap: 4px; overflow-wrap: anywhere; white-space: normal; }
.world-map-legend i { width: 9px; height: 9px; border-radius: 50%; flex: 0 0 auto; }
.world-map-legend i.is-size { width: 13px; height: 13px; background: var(--data-2); box-shadow: -9px 4px 0 -4px var(--data-2); opacity: .68; }
.world-map-legend i.is-activated { background: var(--hero); border: 1px solid var(--text); }
.world-map-legend i.is-identity { background: var(--data-2); opacity: .68; }
.world-map-legend i.is-context { background: var(--paper); border: 1px solid var(--muted); opacity: .72; }
.world-map-legend i.is-point-single { width: 5px; height: 5px; background: #b9b7ae; }
.world-map-legend i.is-point-small { width: 8px; height: 8px; background: #7d7b73; }
.world-map-legend i.is-point-large { width: 10px; height: 10px; background: var(--text); }
.world-map-legend i.is-point-active { width: 8px; height: 8px; background: var(--hero); }
.world-map-legend i.is-missing-country { width: 15px; height: 9px; border: 1px solid var(--text); border-radius: 0; background: repeating-linear-gradient(45deg, var(--bg) 0 4px, var(--muted) 4px 5px); }
.world-map-legend i.is-selected-country { width: 15px; height: 9px; border: 1px solid color-mix(in srgb, var(--hero) 72%, var(--text)); border-radius: 0; background: color-mix(in srgb, var(--hero) 18%, var(--paper)); }
.world-map-legend i.is-hovered-country { width: 15px; height: 9px; border: 1.5px solid var(--hero); border-radius: 0; background: transparent; }
.map-drag-hint { max-width: 92ch; margin: 9px 0 0; color: var(--muted); font: 450 var(--map-font-legend)/1.35 var(--sans); }
.map-select-hint { margin: 8px 0 0; color: var(--muted); font-size: 11px; }
.global-map-evidence { margin-top: clamp(28px, 4vw, 52px); }

:root[data-theme="dark"] .global-country-search-clear img,
:root[data-theme="dark"] .global-country-summary-link img,
:root[data-theme="dark"] .map-school-detail-link img,
:root[data-theme="dark"] .map-school-results-footer img,
:root[data-theme="dark"] .country-evidence-continuation img { filter: invert(1); }

@media (max-width: 1000px) {
  .global-country-search { width: min(520px, 100%); }

  .global-country-detail {
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
  }

  .global-country-context { grid-template-columns: minmax(0, 1fr); gap: 18px; }

  .map-school-row { grid-template-columns: 36px minmax(0, 1fr) auto; }
  .map-school-row-location { grid-column: 2; }
  .map-school-detail-link { grid-column: 3; grid-row: 1 / span 2; }

  .global-country-summary-link { justify-self: start; }
  .global-country-summary-actions > div { justify-content: flex-start; }
  .country-context-rail { margin-top: -18px; }

  .product-map figcaption.world-map-toolbar {
    grid-template-columns: auto minmax(210px, 1fr) auto minmax(150px, .55fr) auto;
  }

}

@media (max-width: 760px) {
  .global-map-hero {
    grid-template-columns: 1fr;
    gap: 20px;
    align-items: start;
  }

  .global-country-search { max-width: none; }
  .global-country-detail { grid-template-columns: 1fr; gap: 20px; margin-top: 24px; padding: 24px 0 20px; }
  .global-country-context { grid-template-columns: 1fr; gap: 20px; }
  .global-country-summary-actions { padding-bottom: 0; }
  .global-country-summary-actions > div { display: grid; grid-template-columns: 1fr; }
  .global-country-summary-actions .global-country-summary-link { padding: 9px 0 9px 14px; }
  .country-context-rail { grid-template-columns: 1fr; gap: 12px; margin-top: -18px; }
  .country-context-rail > div:last-child { justify-content: flex-start; }
  .country-evidence-continuation { width: 100%; margin-left: 0; }
  .product-map figcaption.world-map-toolbar {
    grid-template-columns: 1fr auto;
    grid-template-areas:
      "title status"
      "subtitle reset";
    gap: 4px 18px;
    padding: 0 0 14px;
  }
  .world-map-toolbar-title { font-size: clamp(26px, 7.4vw, 32px); }
  .world-map-threshold { padding-top: 4px; }
  .product-map figcaption.world-map-toolbar .world-map-zoom-range.is-desktop { display: none; }
  .product-map .world-map-zoom-range.is-mobile { display: flex; margin-top: 10px; padding-inline: 2px; }
  .map-drag-hint { font-size: var(--map-font-legend); }
  .map-school-row { grid-template-columns: 32px minmax(0, 1fr); gap: 12px 14px; }
  .map-school-row-location { grid-column: 2; }
  .map-school-detail-link { grid-column: 2; grid-row: auto; justify-content: flex-start; }
  .map-school-results { scroll-margin-top: 124px; }
}

@media (max-width: 420px) {
  .global-map-hero-copy p { margin-top: 12px; }
  .world-map-zoom-status output { font-size: 18px; }
  .map-school-results > header { gap: 14px; }
  .map-school-results > header h2 { font-size: var(--map-font-section); }
  .map-school-row { grid-template-columns: 1fr; }
  .map-school-row-index { display: none; }
  .map-school-row-identity,
  .map-school-row-location,
  .map-school-detail-link { grid-column: 1; }
}

/* Subject atlas: discipline first, institutions only after the field is defined. */
.subject-atlas-home,
.subject-level-page {
  display: grid;
  gap: clamp(56px, 7vw, 96px);
}

.subject-atlas-home {
  row-gap: clamp(22px, 2.8vw, 38px);
}

.subject-atlas-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(28px, 4.5vw, 68px);
  align-items: end;
  border-bottom: 1px solid var(--grid);
  padding: clamp(42px, 5vw, 72px) 0 clamp(20px, 2.6vw, 30px);
}

.subject-atlas-hero > div:first-child {
  max-width: 760px;
}

.subject-atlas-hero h1 {
  max-width: 13ch;
  margin: 7px 0 10px;
  font-size: clamp(42px, 4.5vw, 60px);
  letter-spacing: -.055em;
  line-height: .94;
}

.subject-atlas-hero > div:first-child > p:last-child {
  max-width: 72ch;
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
}

.subject-atlas-hero__aside {
  display: grid;
  min-width: min(280px, 32vw);
  gap: 16px;
  align-content: end;
}

.subject-atlas-hero__aside nav {
  display: grid;
  border-top: 1px solid var(--grid);
}

.subject-atlas-hero__aside nav a {
  display: flex;
  min-height: 44px;
  justify-content: space-between;
  gap: 18px;
  align-items: center;
  border-bottom: 1px solid var(--grid);
  color: var(--text);
  font-size: 10px;
  font-weight: 720;
  text-decoration: none;
}

.subject-atlas-hero__aside nav a span { color: var(--hero-text); }

.subject-atlas-hero__aside nav a:hover,
.subject-atlas-hero__aside nav a:focus-visible {
  color: var(--hero-text);
  text-decoration: underline;
  text-underline-offset: 4px;
}

.subject-atlas-hero__aside > p {
  display: flex;
  gap: 8px;
  align-items: baseline;
  margin: 0;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.4;
}

.subject-atlas-hero__aside > p span {
  color: var(--hero-text);
  font-weight: 760;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.subject-atlas-tools {
  border-block: 1px solid var(--grid);
  padding: 12px 0;
}

.subject-atlas-tools .subject-catalogue-search-tools { max-width: none; }

.subject-atlas-tools .subject-search {
  grid-template-columns: minmax(160px, .48fr) minmax(0, 1.52fr);
  gap: 12px 24px;
  align-items: center;
  padding: 0;
}

.subject-atlas-tools .subject-search > label { font-size: 9px; }

.subject-atlas-tools .subject-search > div {
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 8px;
}

.subject-atlas-tools .subject-search input {
  min-height: 44px;
  border: 1px solid var(--grid);
  padding: 10px 12px;
  font-size: 13px;
}

.subject-atlas-tools .subject-search input:focus {
  border-color: var(--hero-text);
  box-shadow: inset 0 0 0 1px var(--hero-text);
}

.subject-atlas-tools .subject-search .primary-button { min-height: 44px; }

.subject-atlas-tools .subject-search-clear {
  grid-column: auto;
  align-self: stretch;
  border: 1px solid var(--grid);
  padding: 0 16px;
  text-decoration: none;
}

.subject-atlas-tools .subject-search > p {
  grid-column: 2;
  min-height: 0;
  margin-top: -6px;
  font-size: 9px;
}

.subject-search {
  align-self: end;
  display: grid;
  gap: 10px;
  padding-bottom: 8px;
}

.subject-search > label {
  color: var(--label);
  font-size: 13px;
  font-weight: 760;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.subject-search > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
}

.subject-search input {
  min-width: 0;
  min-height: 52px;
  border: 0;
  border-bottom: 1px solid var(--text);
  outline: 0;
  background: transparent;
  padding: 12px 2px;
  font-size: 16px;
}

.subject-search input:focus {
  border-bottom-color: var(--hero);
  box-shadow: 0 2px 0 var(--hero);
}

.subject-search-clear {
  grid-column: 1 / -1;
  justify-self: start;
  border: 0;
  background: transparent;
  color: var(--muted);
  padding: 2px 0;
  font-size: 13px;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.subject-atlas-scope {
  border-block: 1px solid var(--grid);
  display: grid;
  grid-template-columns: minmax(260px, .78fr) minmax(0, 1.22fr);
  gap: clamp(28px, 6vw, 90px);
  align-items: end;
  padding: 28px 0;
}

.subject-atlas-scope > header {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  align-items: end;
}

.subject-atlas-scope > header h2 { max-width: 15ch; font-family: var(--display-serif); font-size: clamp(27px, 3vw, 42px); font-weight: 600; line-height: 1.05; }
.subject-atlas-scope > header p:last-child { max-width: 48ch; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
.subject-atlas-scope > dl {
  margin: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-left: 1px solid var(--grid);
}

.subject-atlas-scope > dl > div { min-height: 112px; border-right: 1px solid var(--grid); display: grid; align-content: space-between; padding: 16px; }
.subject-atlas-scope dt { color: var(--muted); font-size: 12px; letter-spacing: .04em; }
.subject-atlas-scope dd { margin: 0; color: var(--hero-text); font-family: var(--display-serif); font-size: clamp(34px, 4vw, 54px); font-weight: 700; line-height: 1; }

.subject-system-section { border-top: 1px solid var(--grid); padding-top: 34px; }
.subject-system-section > header { display: grid; grid-template-columns: minmax(260px, .8fr) minmax(0, 1.2fr); gap: clamp(28px, 6vw, 88px); align-items: end; margin-bottom: 24px; }
.subject-system-section > header h2 { max-width: 18ch; font-family: var(--display-serif); font-size: clamp(34px, 4vw, 56px); font-weight: 600; line-height: 1.03; }
.subject-system-section > header p:last-child { max-width: 58ch; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.65; }
.subject-system-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--grid); border-left: 1px solid var(--grid); }
.subject-system-section--home .subject-system-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.subject-system-section--home .subject-system-card { min-height: 330px; padding: 22px; }
.subject-system-section--home .subject-system-card h3 { font-size: clamp(23px, 2vw, 30px); }
.subject-system-card { min-height: 360px; border-right: 1px solid var(--grid); border-bottom: 1px solid var(--grid); display: grid; grid-template-rows: auto auto auto 1fr auto; gap: 20px; padding: clamp(22px, 3vw, 34px); }
.subject-system-card > header { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.subject-system-card > header strong { color: var(--hero-text); font-family: var(--display-serif); font-size: 25px; }
.subject-system-card > header span { font-size: 13px; font-weight: 750; }
.subject-system-card h3 { max-width: 24ch; font-family: var(--display-serif); font-size: clamp(27px, 3vw, 39px); font-weight: 600; line-height: 1.06; }
.subject-system-card dl { margin: 0; display: flex; flex-wrap: wrap; gap: 16px 30px; }
.subject-system-card dl > div { min-width: 105px; }
.subject-system-card dd { margin: 0; color: var(--hero-text); font-family: var(--display-serif); font-size: 32px; font-weight: 700; line-height: 1; }
.subject-system-card dt { margin-top: 7px; color: var(--muted); font-size: 12px; line-height: 1.35; }
.subject-system-use { align-self: end; border-top: 1px solid var(--grid); padding-top: 15px; }
.subject-system-use strong { font-size: 12px; }
.subject-system-use p { max-width: 60ch; margin: 7px 0 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
.subject-system-card > a,
.subject-system-method-link { width: fit-content; color: var(--text); font-size: 12px; font-weight: 740; text-underline-offset: 3px; }
.subject-system-method-link { display: block; margin-top: 18px; }
.subject-system-section--method { border-top: 0; padding-top: 0; }
.subject-handling-note { margin-top: 22px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--grid); border-left: 1px solid var(--grid); }
.subject-handling-note article { border-right: 1px solid var(--grid); border-bottom: 1px solid var(--grid); padding: 22px; }
.subject-handling-note h3 { font-family: var(--display-serif); font-size: 25px; font-weight: 600; }
.subject-handling-note p { max-width: 62ch; margin: 10px 0 0; color: var(--muted); font-size: 12px; line-height: 1.65; }

.subject-family-section > header,
.subject-branch-section > header,
.subject-direction-section > header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 28px;
  margin-bottom: 22px;
}

.subject-family-section > header > div,
.subject-branch-section > header,
.subject-direction-section > header {
  max-width: 860px;
}

.subject-family-section > header h2,
.subject-branch-section > header h2,
.subject-direction-section > header h2 {
  max-width: 26ch;
  font-family: var(--display-serif);
  font-weight: 600;
}

.subject-family-section > header > p {
  max-width: 320px;
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  text-align: right;
}

.subject-family-grid {
  display: grid;
  grid-template-columns: 1fr;
  border-top: 1px solid var(--grid);
  border-left: 1px solid var(--grid);
}

.subject-family-card {
  min-width: 0;
  min-height: 224px;
  border-right: 1px solid var(--grid);
  border-bottom: 1px solid var(--grid);
  display: grid;
  grid-template-columns: minmax(170px, .48fr) minmax(250px, 1fr) minmax(270px, .95fr) minmax(88px, .24fr);
  align-items: stretch;
  text-decoration: none;
  transition: background-color 180ms ease, border-color 180ms ease;
}

.subject-family-card:hover,
.subject-family-card:focus-visible {
  outline: 0;
  background: color-mix(in srgb, var(--text) 5%, transparent);
  border-color: color-mix(in srgb, var(--hero-text) 45%, var(--grid));
}

.subject-family-card[hidden] { display: none; }
.subject-family-card > header,
.subject-family-intro,
.subject-family-structure,
.subject-family-card > footer { min-width: 0; padding: clamp(20px, 2.6vw, 34px); }
.subject-family-card > header { border-right: 1px solid var(--grid); display: grid; align-content: space-between; gap: 24px; }
.subject-family-code { color: var(--hero-text); font-family: var(--display-serif); font-size: clamp(24px, 2.3vw, 34px); font-weight: 700; letter-spacing: -.02em; }
.subject-family-count { color: var(--muted); font-size: 12px; line-height: 1.5; }
.subject-family-intro { border-right: 1px solid var(--grid); display: grid; align-content: center; }
.subject-family-card h2 { max-width: 15ch; font-family: var(--display-serif); font-size: clamp(32px, 3.4vw, 50px); font-weight: 600; line-height: 1.02; }
.subject-family-card p { max-width: 52ch; margin: 13px 0 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.subject-family-structure { border-right: 1px solid var(--grid); display: grid; align-content: center; gap: 10px; }
.subject-family-structure ol { margin: 0; padding: 0; list-style: none; }
.subject-family-structure li { border-top: 1px solid var(--grid); display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 10px; align-items: baseline; padding: 8px 0; }
.subject-family-structure b { color: var(--hero-text); font-family: var(--display-serif); font-size: 13px; }
.subject-family-structure strong { overflow: hidden; font-size: 13px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.subject-family-structure small { color: var(--muted); font-size: 12px; }
.subject-family-card > footer { display: grid; align-content: center; justify-items: center; color: var(--muted); }
.subject-family-arrow { color: var(--hero-text); font-family: var(--display-serif); font-size: 30px; line-height: 1; }

.subject-source-map {
  border-top: 1px solid var(--grid);
  display: grid;
  grid-template-columns: minmax(260px, .8fr) minmax(0, 1.8fr);
  gap: clamp(30px, 5vw, 80px);
  padding-top: 34px;
}

.subject-source-map > header h2 { max-width: 16ch; font-family: var(--display-serif); font-size: clamp(34px, 4vw, 56px); font-weight: 600; }
.subject-source-map > header > p:last-child { max-width: 48ch; margin: 18px 0 0; color: var(--muted); }
.subject-source-map > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--grid); border-left: 1px solid var(--grid); }
.subject-source-card { min-width: 0; min-height: 170px; border-right: 1px solid var(--grid); border-bottom: 1px solid var(--grid); padding: 18px; }
.subject-source-card > header { display: flex; align-items: start; justify-content: space-between; gap: 10px; color: var(--muted); font-size: 12px; }
.subject-source-card > header strong { color: var(--text); font-size: 11px; letter-spacing: .04em; }
.subject-source-card[data-source-status="available"] > header strong { color: var(--ok); }
.subject-source-card[data-source-status="planned"] > header strong { color: var(--hero-text); }
.subject-source-card h3 { margin-top: 30px; font-size: 15px; }
.subject-source-card p { margin: 8px 0 0; color: var(--muted); font-size: 12px; }
.subject-source-map > .product-boundary { grid-column: 1 / -1; margin: 0; }
.subject-source-map--compact { grid-template-columns: 1fr; }
.subject-source-map--compact > header { display: grid; grid-template-columns: .7fr 1.3fr; gap: 24px; }

.subject-coverage-overview,
.subject-methodology-coverage { border-top: 1px solid var(--grid); padding-top: 32px; }
.subject-coverage-overview > header { display: grid; grid-template-columns: minmax(260px, .8fr) minmax(0, 1.2fr); gap: clamp(28px, 6vw, 88px); margin-bottom: 24px; }
.subject-coverage-overview > header h2,
.subject-methodology-coverage > header h2 { max-width: 18ch; font-family: var(--display-serif); font-size: clamp(32px, 4vw, 54px); font-weight: 600; line-height: 1.02; }
.subject-coverage-overview > header > div:last-child { display: grid; align-content: end; gap: 14px; }
.subject-coverage-overview > header p,
.subject-methodology-coverage > header p { max-width: 62ch; margin: 0; color: var(--muted); }
.subject-coverage-overview > header a,
.subject-methodology-links a { font-size: 11px; font-weight: 740; text-underline-offset: 3px; }
.subject-coverage-scroll { max-width: 100%; overflow-x: auto; border: 1px solid var(--grid); scrollbar-width: thin; }
.subject-coverage-scroll:focus-visible { outline: 2px solid var(--hero); outline-offset: 4px; }
.subject-coverage-matrix { width: 100%; min-width: 760px; border-collapse: collapse; font-size: 12px; }
.subject-coverage-matrix th,
.subject-coverage-matrix td { border-right: 1px solid var(--grid); border-bottom: 1px solid var(--grid); padding: 13px 14px; text-align: left; vertical-align: middle; }
.subject-coverage-matrix tr:last-child > * { border-bottom: 0; }
.subject-coverage-matrix tr > *:last-child { border-right: 0; }
.subject-coverage-matrix thead th { background: color-mix(in srgb, var(--text) 3%, transparent); color: var(--muted); font-size: 11px; letter-spacing: .04em; }
.subject-coverage-matrix tbody th { min-width: 190px; }
.subject-coverage-matrix tbody th strong,
.subject-coverage-matrix tbody th small { display: block; }
.subject-coverage-matrix tbody th small { margin-top: 4px; color: var(--muted); font-size: 11px; font-weight: 500; }
.subject-coverage-matrix td { color: var(--muted); white-space: nowrap; }
.subject-coverage-matrix td span { width: 7px; height: 7px; border: 1px solid currentColor; border-radius: 50%; display: inline-block; margin-right: 7px; }
.subject-coverage-matrix td[data-coverage-status="available"] { color: var(--ok); }
.subject-coverage-matrix td[data-coverage-status="available"] span { background: currentColor; }
.subject-coverage-matrix td[data-coverage-status="partial"] { color: var(--hero-text); }
.subject-coverage-matrix td[data-coverage-status="partial"] span { background: color-mix(in srgb, currentColor 45%, transparent); }
.subject-coverage-matrix td[data-coverage-status="link_only"] { color: var(--text); }
.subject-coverage-matrix td[data-coverage-status="planned"] { color: var(--hero-text); }
.subject-coverage-overview > .product-boundary,
.subject-methodology-coverage > .product-boundary { margin: 12px 0 0; }

.subject-methodology-page { gap: clamp(42px, 6vw, 76px); }
.subject-methodology-hero { min-height: min(440px, 58vh); align-items: end; border-bottom: 1px solid var(--grid); }
.subject-methodology-hero h1 { max-width: 16ch; }
.subject-taxonomy-ledger { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--grid); border-left: 1px solid var(--grid); }
.subject-taxonomy-ledger article { min-height: 240px; border-right: 1px solid var(--grid); border-bottom: 1px solid var(--grid); display: grid; align-content: start; gap: 15px; padding: clamp(20px, 3vw, 34px); }
.subject-taxonomy-ledger article > span { color: var(--hero-text); font-family: var(--display-serif); font-size: clamp(28px, 4vw, 48px); font-weight: 700; }
.subject-taxonomy-ledger h2 { font-family: var(--display-serif); font-size: clamp(24px, 2.6vw, 36px); font-weight: 600; }
.subject-taxonomy-ledger p { max-width: 55ch; margin: 0; color: var(--muted); font-size: 12px; }
.subject-methodology-coverage > header { display: grid; grid-template-columns: minmax(260px, .7fr) minmax(0, 1.3fr); gap: 28px; align-items: end; margin-bottom: 24px; }
.subject-methodology-links { border-block: 1px solid var(--grid); display: grid; }
.subject-methodology-links a { display: flex; justify-content: space-between; gap: 16px; padding: 14px 2px; text-decoration: none; }
.subject-methodology-links a + a { border-top: 1px solid var(--grid); }

.finder-cross-nav {
  border-block: 1px solid var(--grid);
  display: grid;
  grid-template-columns: minmax(260px, .92fr) minmax(0, 1.08fr);
  gap: clamp(32px, 5vw, 80px);
  margin-top: clamp(28px, 4vw, 52px);
  padding: clamp(18px, 2.2vw, 28px) 0;
}
.product-route-view:has(.finder-cross-nav) { padding-bottom: clamp(34px, 4vw, 54px); }
.finder-cross-nav__copy { align-content: start; display: grid; gap: 10px; }
.finder-cross-nav__copy .kicker { margin: 0; }
.finder-cross-nav h2 { max-width: 18ch; margin: 0; font-family: var(--display-serif); font-size: clamp(26px, 2.25vw, 38px); font-weight: 540; line-height: 1.08; }
.finder-cross-nav nav { display: grid; align-content: center; }
.finder-cross-nav nav a { min-width: 0; min-height: 52px; border-top: 1px solid var(--grid); display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: clamp(11px, 1.2vw, 15px) 4px; color: inherit; font-size: clamp(16px, 1.3vw, 21px); font-weight: 720; line-height: 1.25; text-decoration: none; }
.finder-cross-nav nav a:last-child { border-bottom: 1px solid var(--grid); }
.finder-cross-nav nav a .home-link-arrow { width: 20px; height: 20px; }
.finder-cross-nav nav a:hover,
.finder-cross-nav nav a:focus-visible { color: var(--hero-text); }
.finder-cross-nav nav a:hover .home-link-arrow,
.finder-cross-nav nav a:focus-visible .home-link-arrow { transform: translateX(5px); }
.finder-cross-nav nav a:hover .home-link-arrow img,
.finder-cross-nav nav a:focus-visible .home-link-arrow img { filter: invert(42%) sepia(99%) saturate(2937%) hue-rotate(349deg) brightness(100%) contrast(89%); }
:root[data-theme="dark"] .finder-cross-nav .home-link-arrow img { filter: invert(1); }
:root[data-theme="dark"] .finder-cross-nav nav a:hover .home-link-arrow img,
:root[data-theme="dark"] .finder-cross-nav nav a:focus-visible .home-link-arrow img { filter: invert(42%) sepia(99%) saturate(2937%) hue-rotate(349deg) brightness(100%) contrast(89%); }

.subject-breadcrumb {
  max-width: 100%;
  overflow-x: auto;
  display: flex;
  gap: 9px;
  padding-top: 6px;
  color: var(--muted);
  font-size: 11px;
  white-space: nowrap;
  scrollbar-width: none;
}
.subject-breadcrumb a { text-underline-offset: 3px; }
.subject-breadcrumb strong { color: var(--text); }

.subject-level-page { gap: clamp(44px, 6vw, 78px); }
.subject-level-hero { min-height: 330px; border-bottom: 1px solid var(--grid); display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 32px; padding: 40px 0 34px; }
.subject-level-hero h1 { max-width: 14ch; font-size: clamp(54px, 7vw, 94px); line-height: .94; }
.subject-level-hero p:last-child { max-width: 700px; margin: 20px 0 0; color: var(--muted); font-size: 18px; }
.subject-level-hero > strong { color: color-mix(in srgb, var(--text) 8%, transparent); font-family: var(--display-serif); font-size: clamp(150px, 20vw, 280px); font-weight: 700; line-height: .68; letter-spacing: -.08em; }

.subject-level-summary {
  display: grid;
  grid-template-columns: minmax(260px, .8fr) minmax(0, 1.2fr);
  gap: 42px;
}
.subject-level-summary > div { display: flex; flex-wrap: wrap; gap: 8px 28px; font-size: 13px; }
.subject-level-summary > div strong { color: var(--hero-text); }
.subject-level-summary > p { max-width: 680px; margin: 0; color: var(--muted); font-size: 17px; }

.subject-branch-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--grid); border-left: 1px solid var(--grid); }
.subject-branch-card { min-height: 250px; border-right: 1px solid var(--grid); border-bottom: 1px solid var(--grid); display: grid; grid-template-rows: auto auto 1fr auto; gap: 11px; padding: 26px; text-decoration: none; }
.subject-branch-card > span { color: var(--hero-text); font-family: var(--display-serif); font-size: 20px; font-weight: 700; }
.subject-branch-card h3 { max-width: 20ch; font-family: var(--display-serif); font-size: clamp(28px, 3vw, 40px); font-weight: 600; line-height: 1.05; }
.subject-branch-card p { margin: 0; color: var(--muted); font-size: 12px; }
.subject-branch-card footer { border-top: 1px solid var(--grid); display: flex; justify-content: space-between; padding-top: 12px; color: var(--muted); font-size: 12px; }
.subject-branch-card:hover,
.subject-branch-card:focus-visible { outline: 0; background: color-mix(in srgb, var(--text) 5%, transparent); }

.subject-classification-band,
.subject-direction-brief { border-block: 1px solid var(--grid); display: grid; grid-template-columns: minmax(280px, .9fr) minmax(0, 1.1fr); gap: clamp(30px, 6vw, 86px); align-items: end; padding: 28px 0; }
.subject-classification-band h2 { max-width: 24ch; font-family: var(--display-serif); font-size: clamp(27px, 3.5vw, 45px); font-weight: 600; line-height: 1.05; }
.subject-classification-band > p { max-width: 62ch; margin: 0; color: var(--muted); }
.subject-direction-brief h2 { max-width: 30ch; font-family: var(--display-serif); font-size: clamp(22px, 2.6vw, 34px); font-weight: 600; line-height: 1.25; }
.subject-direction-brief h2 span { color: var(--hero-text); margin-right: 7px; font-size: .55em; vertical-align: .14em; }
.subject-direction-brief h2 i { margin-inline: 6px; color: var(--muted); font-style: normal; }
.subject-direction-brief > div:last-child p:not(.kicker) { max-width: 58ch; margin: 0 0 14px; color: var(--muted); }
.subject-direction-brief a { font-size: 11px; font-weight: 740; text-underline-offset: 3px; }

.subject-direction-list { border-top: 1px solid var(--grid); }
.subject-direction-list a { display: grid; grid-template-columns: minmax(0, 1fr) minmax(180px, auto) 28px; align-items: center; gap: 18px; border-bottom: 1px solid var(--grid); padding: 19px 4px; text-decoration: none; }
.subject-direction-list a:hover { background: color-mix(in srgb, var(--text) 4%, transparent); }
.subject-direction-list span { color: var(--hero-text); font-family: var(--display-serif); font-size: 23px; font-weight: 700; }
.subject-direction-list strong { min-width: 0; font-size: 16px; }
.subject-direction-list small { color: var(--muted); text-align: right; }
.subject-direction-list i { font-size: 19px; font-style: normal; }

.subject-direction-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--grid); border-left: 1px solid var(--grid); }
.subject-direction-actions article { min-height: 260px; border-right: 1px solid var(--grid); border-bottom: 1px solid var(--grid); display: grid; align-content: start; gap: 14px; padding: 24px; }
.subject-direction-actions h2 { font-family: var(--display-serif); font-size: clamp(25px, 2.6vw, 36px); font-weight: 600; }
.subject-direction-actions article > a,
.subject-direction-actions article > div { align-self: end; margin-top: auto; }
.subject-direction-actions article > a,
.subject-direction-actions article > div a { display: block; padding-top: 9px; font-size: 12px; font-weight: 720; text-underline-offset: 3px; }

.subject-career-panel { min-height: 260px; }
.subject-career-chart { margin: 0; }
.subject-career-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-left: 1px solid var(--grid); border-top: 1px solid var(--grid); }
.subject-career-links a { border-right: 1px solid var(--grid); border-bottom: 1px solid var(--grid); display: grid; gap: 5px; padding: 14px; text-decoration: none; }
.subject-career-links a:hover { background: color-mix(in srgb, var(--text) 4%, transparent); }
.subject-career-links strong { font-size: 12px; }
.subject-career-links span { color: var(--muted); font-size: 10px; }
.subject-signal-empty { border-block: 1px solid var(--grid); display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 28px 0; }
.subject-signal-empty p { max-width: 720px; margin: 0; color: var(--muted); }

.research-evidence-chain { display: grid; grid-template-columns: minmax(300px, 1fr) minmax(0, 1fr); gap: clamp(36px, 7vw, 100px); }
.research-evidence-chain article h2 { max-width: 24ch; font-family: var(--display-serif); font-weight: 600; }
.research-evidence-chain ol { margin: 0; border-top: 1px solid var(--grid); padding: 0; list-style: none; }
.research-evidence-chain li { border-bottom: 1px solid var(--grid); display: grid; grid-template-columns: 44px 1fr auto; gap: 12px; align-items: center; padding: 15px 4px; }
.research-evidence-chain li span { color: var(--hero-text); font-family: var(--display-serif); font-size: 18px; font-weight: 700; }
.research-evidence-chain li strong { font-size: 12px; }
.research-evidence-chain li small { color: var(--ok); font-size: 9px; font-weight: 760; letter-spacing: .08em; text-transform: uppercase; }
.research-evidence-chain li[data-state="missing"] { color: var(--muted); }
.research-evidence-chain li[data-state="missing"] small { color: var(--hero-text); }

.research-signal-grid { border-top: 1px solid var(--grid); padding-top: 28px; }
.research-signal-grid > header { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.research-signal-grid > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-left: 1px solid var(--grid); border-top: 1px solid var(--grid); }
.research-signal-grid article { min-height: 140px; border-right: 1px solid var(--grid); border-bottom: 1px solid var(--grid); display: grid; align-content: space-between; gap: 8px; padding: 18px; }
.research-signal-grid article span { color: var(--hero-text); font-family: var(--display-serif); font-size: 18px; font-weight: 700; }
.research-signal-grid article small { color: var(--muted); font-size: 9px; text-transform: uppercase; }

.subject-ranking-policy-entry {
  border-block: 1px solid var(--grid);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 13px 2px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.5;
}

.subject-ranking-policy-entry > span { max-width: 68ch; }
.subject-ranking-policy-entry a,
.subject-ranking-inline-policy a {
  color: var(--hero-text);
  font-size: 9px;
  font-weight: 760;
  letter-spacing: .06em;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
}
.subject-ranking-policy-entry a:hover,
.subject-ranking-inline-policy a:hover { text-decoration: underline; text-underline-offset: 4px; }

.subject-programme-paths { border-block: 1px solid var(--grid); display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 30px; padding: 28px 0; }
.subject-programme-paths h2 { max-width: 26ch; font-family: var(--display-serif); font-weight: 600; }
.subject-programme-paths nav { display: flex; gap: 10px; }

.subject-ranking-live {
  border-block: 1px solid var(--grid);
  display: grid;
  grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr);
  gap: clamp(30px, 6vw, 90px);
  padding: 34px 0;
}

.subject-ranking-live > header h2 {
  max-width: 14ch;
  font-family: var(--display-serif);
  font-size: clamp(34px, 4vw, 58px);
  font-weight: 600;
  line-height: 1.02;
}

.subject-ranking-live > header > p:last-child {
  max-width: 52ch;
  margin: 16px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.65;
}

.subject-ranking-live > form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-content: start;
  gap: 9px 12px;
}

.subject-ranking-live > form label {
  grid-column: 1 / -1;
  color: var(--label);
  font-size: 10px;
  font-weight: 760;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.subject-ranking-live select {
  width: 100%;
  min-width: 0;
  min-height: 50px;
  border: 1px solid var(--grid);
  background: var(--paper);
  padding: 10px 13px;
  color: var(--text);
}

.subject-ranking-live button:disabled {
  cursor: not-allowed;
  opacity: .45;
}

.subject-ranking-live > #subject-ranking-output {
  grid-column: 1 / -1;
}

.subject-ranking-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 22px;
  border-bottom: 1px solid var(--grid);
  padding: 0 0 14px;
  color: var(--muted);
  font-size: 11px;
}

.subject-ranking-run-ledger { margin-top: 20px; border: 1px solid var(--grid); padding: 20px; }
.subject-ranking-run-ledger > header { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--grid); padding-bottom: 12px; }
.subject-ranking-run-ledger h3 { font-family: var(--display-serif); font-size: 25px; font-weight: 600; }
.subject-ranking-run-ledger > header span { color: var(--hero-text); font-size: 12px; font-weight: 720; }
.subject-ranking-run-ledger > dl { margin: 0; }
.subject-ranking-run-ledger > dl > div { border-bottom: 1px solid var(--grid); display: grid; grid-template-columns: minmax(130px, .35fr) minmax(0, 1fr); gap: 18px; padding: 11px 0; }
.subject-ranking-run-ledger dt { color: var(--muted); font-size: 12px; }
.subject-ranking-run-ledger dd { margin: 0; overflow-wrap: anywhere; font-size: 13px; line-height: 1.55; }
.subject-ranking-run-ledger details { margin-top: 16px; }
.subject-ranking-run-ledger summary { cursor: pointer; font-size: 12px; font-weight: 730; }
.subject-ranking-run-ledger ul { margin: 12px 0 0; padding: 0; list-style: none; }
.subject-ranking-run-ledger li { border-top: 1px solid var(--grid); display: flex; justify-content: space-between; gap: 18px; padding: 10px 0; font-size: 12px; }
.subject-ranking-run-ledger li strong { color: var(--hero-text); }

.subject-ranking-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.subject-ranking-list > li {
  border-bottom: 1px solid var(--grid);
  display: grid;
  grid-template-columns: 54px minmax(190px, 1.15fr) minmax(290px, 1fr);
  gap: 18px;
  padding: 19px 2px;
}

.subject-ranking-position {
  display: grid;
  align-content: start;
  gap: 6px;
}
.subject-ranking-position span { color: var(--hero-text); font-family: var(--display-serif); font-size: 30px; font-weight: 700; line-height: 1; }
.subject-ranking-position small { color: var(--muted); font-size: 8px; line-height: 1.25; text-transform: uppercase; }

.subject-ranking-provider { display: grid; align-content: start; gap: 7px; }
.subject-ranking-provider h3 { font-size: 14px; }
.subject-ranking-provider h3 a { color: inherit; text-decoration: none; }
.subject-ranking-provider h3 a:hover { color: var(--hero-text); }
.subject-ranking-provider p { margin: 0; color: var(--muted); font-size: 12px; }
.subject-ranking-score { font-family: var(--display-serif); font-size: 18px; }
.subject-ranking-community { border-top: 1px solid var(--grid); display: grid; gap: 4px; padding-top: 8px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.subject-ranking-community[data-state="applied"] { color: var(--hero-text); }
.subject-ranking-community strong { font-size: 10px; letter-spacing: .04em; text-transform: uppercase; }
.subject-ranking-detail-link { width: fit-content; color: var(--hero-text); font-size: 12px; font-weight: 760; letter-spacing: .03em; text-decoration: none; }
.subject-ranking-metrics { margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.subject-ranking-metrics > div { min-width: 0; }
.subject-ranking-metrics dt { color: var(--muted); font-size: 12px; line-height: 1.35; }
.subject-ranking-metrics dd { margin: 5px 0 0; font-size: 12px; font-weight: 730; }
.subject-ranking-inline-policy { margin: 18px 0 0; text-align: right; }

.ranking-policy-page { gap: clamp(40px, 5vw, 66px); }
.ranking-policy-hero {
  border-bottom: 1px solid var(--grid);
  display: grid;
  gap: 16px;
  padding: 8px 0 clamp(26px, 4vw, 44px);
}
.ranking-policy-hero .subject-breadcrumb { margin-bottom: clamp(12px, 2vw, 24px); }
.ranking-policy-hero h1 { max-width: 17ch; font-family: var(--display-serif); font-size: clamp(46px, 6vw, 76px); font-weight: 600; letter-spacing: -.035em; line-height: .96; }
.ranking-policy-hero > p:last-child { max-width: 68ch; margin: 2px 0 0; color: var(--muted); font-size: 15px; line-height: 1.65; }

.ranking-policy-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--grid); border-left: 1px solid var(--grid); }
.ranking-policy-summary article { min-height: 220px; border-right: 1px solid var(--grid); border-bottom: 1px solid var(--grid); display: grid; align-content: space-between; gap: 24px; padding: 24px; }
.ranking-policy-summary h2 { max-width: 18ch; font-family: var(--display-serif); font-size: clamp(24px, 2.8vw, 36px); font-weight: 600; }
.ranking-policy-summary p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.65; }

.ranking-policy-toc {
  border-block: 1px solid var(--grid);
  display: grid;
  grid-template-columns: minmax(110px, .7fr) repeat(4, minmax(120px, 1fr));
  align-items: stretch;
}
.ranking-policy-toc > span,
.ranking-policy-toc a { padding: 13px 12px; font-size: 12px; }
.ranking-policy-toc > span { padding-left: 2px; color: var(--muted); font-weight: 760; letter-spacing: .08em; text-transform: uppercase; }
.ranking-policy-toc a { border-left: 1px solid var(--grid); color: var(--text); text-decoration: none; }
.ranking-policy-toc a:hover,
.ranking-policy-toc a:focus-visible { outline: 0; background: color-mix(in srgb, var(--text) 5%, transparent); color: var(--hero-text); }

.ranking-policy-comparison,
.ranking-policy-calculation,
.ranking-policy-gates,
.ranking-policy-publishers { scroll-margin-top: 90px; }
.ranking-policy-comparison > header,
.ranking-policy-calculation > header,
.ranking-policy-gates > header,
.ranking-policy-publishers > header { max-width: 790px; margin-bottom: 24px; }
.ranking-policy-comparison h2,
.ranking-policy-calculation h2,
.ranking-policy-gates h2,
.ranking-policy-publishers h2 { max-width: 17ch; font-family: var(--display-serif); font-size: clamp(34px, 4vw, 56px); font-weight: 600; line-height: 1.02; }
.ranking-policy-comparison header > p:last-child,
.ranking-policy-calculation header > p:last-child,
.ranking-policy-gates header > p:last-child,
.ranking-policy-publishers header > p:last-child { max-width: 68ch; color: var(--muted); font-size: 13px; line-height: 1.65; }

.ranking-policy-comparison > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-left: 1px solid var(--grid); border-top: 1px solid var(--grid); }
.ranking-policy-comparison article { min-height: 240px; border-right: 1px solid var(--grid); border-bottom: 1px solid var(--grid); display: grid; grid-template-rows: auto auto 1fr; gap: 14px; padding: 24px; }
.ranking-policy-comparison article > span { color: var(--hero-text); font-size: 11px; font-weight: 780; letter-spacing: .05em; }
.ranking-policy-comparison h3 { max-width: 18ch; font-family: var(--display-serif); font-size: clamp(28px, 3vw, 40px); font-weight: 600; line-height: 1.04; }
.ranking-policy-comparison article p { align-self: end; max-width: 58ch; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.65; }

.ranking-weight-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-left: 1px solid var(--grid); border-top: 1px solid var(--grid); }
.ranking-weight-grid article { min-height: 180px; border-right: 1px solid var(--grid); border-bottom: 1px solid var(--grid); display: grid; align-content: space-between; gap: 18px; padding: 22px; }
.ranking-weight-grid strong { color: var(--hero-text); font-family: var(--display-serif); font-size: clamp(46px, 6vw, 76px); font-weight: 600; line-height: .9; }
.ranking-weight-grid span { max-width: 26ch; font-size: 12px; font-weight: 720; }
.ranking-metric-ledger { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--grid); border-left: 1px solid var(--grid); }
.ranking-metric-ledger article { min-height: 330px; border-right: 1px solid var(--grid); border-bottom: 1px solid var(--grid); display: grid; grid-template-rows: auto 1fr; gap: 24px; padding: 24px; }
.ranking-metric-ledger article > header { display: grid; gap: 8px; }
.ranking-metric-ledger article > header strong { color: var(--hero-text); font-family: var(--display-serif); font-size: clamp(44px, 5vw, 66px); line-height: .9; }
.ranking-metric-ledger h3 { font-family: var(--display-serif); font-size: 28px; font-weight: 600; }
.ranking-metric-ledger dl { align-self: end; margin: 0; }
.ranking-metric-ledger dl > div { border-top: 1px solid var(--grid); display: grid; gap: 5px; padding: 10px 0; }
.ranking-metric-ledger dt { color: var(--muted); font-size: 12px; }
.ranking-metric-ledger dd { margin: 0; font-size: 13px; line-height: 1.55; }
.ranking-policy-formula { border-block: 1px solid var(--grid); margin: 22px 0 0; padding: 18px 2px; color: var(--text); font-family: var(--display-serif); font-size: clamp(20px, 2.3vw, 31px); line-height: 1.35; }
.ranking-transform { display: grid; grid-template-columns: minmax(240px, .65fr) minmax(0, 1.35fr); gap: clamp(28px, 6vw, 80px); padding-top: 28px; }
.ranking-transform > h3 { font-family: var(--display-serif); font-size: clamp(28px, 3vw, 42px); font-weight: 600; }
.ranking-transform ol { margin: 0; border-top: 1px solid var(--grid); padding: 0; list-style: none; }
.ranking-transform li { border-bottom: 1px solid var(--grid); display: grid; grid-template-columns: 34px 1fr; gap: 12px; align-items: start; padding: 12px 2px; }
.ranking-transform li span { color: var(--hero-text); font-family: var(--display-serif); font-size: 18px; font-weight: 700; }
.ranking-transform li p { margin: 0; font-size: 12px; line-height: 1.6; }
.ranking-transform > p { grid-column: 2; margin: 0; border-left: 2px solid var(--hero-text); padding-left: 16px; color: var(--muted); font-size: 12px; line-height: 1.65; }

.ranking-policy-gates { display: grid; grid-template-columns: minmax(280px, .8fr) minmax(0, 1.2fr); gap: clamp(36px, 7vw, 100px); }
.ranking-policy-gates > header { margin: 0; }
.ranking-policy-gates ul,
.ranking-policy-publishers ul { margin: 0; border-top: 1px solid var(--grid); padding: 0; list-style: none; }
.ranking-policy-gates li,
.ranking-policy-publishers li { border-bottom: 1px solid var(--grid); padding: 14px 2px; font-size: 13px; line-height: 1.55; }
.ranking-policy-gates aside,
.ranking-policy-publishers aside { grid-column: 2; border-left: 2px solid var(--hero-text); padding: 2px 0 2px 18px; }
.ranking-policy-gates aside strong,
.ranking-policy-publishers aside strong { font-size: 13px; }
.ranking-policy-gates aside p,
.ranking-policy-publishers aside p { max-width: 70ch; margin: 7px 0 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.ranking-policy-gates .ranking-missing-rule { margin-top: 18px; border-left-color: var(--ok); }

.ranking-policy-publishers { border-top: 1px solid var(--grid); display: grid; grid-template-columns: minmax(280px, .8fr) minmax(0, 1.2fr); gap: clamp(36px, 7vw, 100px); padding-top: 34px; }
.ranking-policy-publishers > header { margin: 0; }
.ranking-policy-return { width: fit-content; }

.publisher-ranking-section { border-top: 1px solid var(--grid); padding-top: 34px; }
.publisher-ranking-section > header { max-width: 760px; margin-bottom: 24px; }
.publisher-ranking-section > header h2 { max-width: 15ch; font-family: var(--display-serif); font-size: clamp(34px, 4vw, 58px); font-weight: 600; }
.publisher-ranking-section > header > p:last-child { color: var(--muted); font-size: 13px; line-height: 1.65; }
.publisher-ranking-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-left: 1px solid var(--grid); border-top: 1px solid var(--grid); }
.publisher-ranking-grid > article { min-height: 390px; border-right: 1px solid var(--grid); border-bottom: 1px solid var(--grid); display: grid; grid-template-rows: auto auto auto auto 1fr auto; gap: 15px; padding: 22px; }
.publisher-ranking-grid article > header { display: flex; justify-content: space-between; gap: 12px; color: var(--hero-text); font-size: 10px; font-weight: 780; letter-spacing: .08em; text-transform: uppercase; }
.publisher-ranking-grid h3 { font-family: var(--display-serif); font-size: 28px; font-weight: 600; line-height: 1.04; }
.publisher-ranking-grid p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
.publisher-ranking-grid dl { margin: 0; }
.publisher-ranking-grid dl > div { border-top: 1px solid var(--grid); display: grid; gap: 5px; padding-top: 10px; }
.publisher-ranking-grid dt { color: var(--muted); font-size: 8px; letter-spacing: .08em; text-transform: uppercase; }
.publisher-ranking-grid dd { margin: 0; font-size: 10px; line-height: 1.5; }
.publisher-rank-state { border-block: 1px solid var(--grid); display: grid; grid-template-columns: 42px 1fr; gap: 10px; align-items: start; padding: 13px 0; }
.publisher-rank-state strong { color: var(--muted); font-family: var(--display-serif); font-size: 32px; line-height: 1; }
.publisher-rank-state span { color: var(--muted); font-size: 9px; line-height: 1.45; }
.publisher-ranking-grid nav { display: flex; flex-wrap: wrap; gap: 10px 16px; }
.publisher-ranking-grid nav a { color: var(--hero-text); font-size: 9px; font-weight: 760; letter-spacing: .05em; text-decoration: none; text-transform: uppercase; }

.subject-provider-detail { gap: 54px; }
.subject-provider-hero { border-block: 1px solid var(--grid); display: grid; grid-template-columns: minmax(0, 1fr) minmax(180px, .28fr); gap: clamp(30px, 7vw, 110px); align-items: end; padding: clamp(30px, 6vw, 74px) 0; }
.subject-provider-hero h1 { max-width: 17ch; font-family: var(--display-serif); font-size: clamp(48px, 7vw, 96px); font-weight: 600; letter-spacing: -.035em; line-height: .94; }
.subject-provider-hero > div:first-child > p:last-child { max-width: 62ch; color: var(--muted); font-size: 13px; line-height: 1.65; }
.subject-provider-rank { border-left: 1px solid var(--grid); display: grid; gap: 8px; padding-left: 24px; }
.subject-provider-rank span { color: var(--hero-text); font-family: var(--display-serif); font-size: clamp(58px, 8vw, 102px); font-weight: 700; line-height: .85; }
.subject-provider-rank strong { font-family: var(--display-serif); font-size: 32px; }
.subject-provider-rank small { color: var(--muted); font-size: 9px; line-height: 1.5; text-transform: uppercase; }
.subject-provider-evidence > header { max-width: 700px; margin-bottom: 22px; }
.subject-provider-evidence > header h2 { font-family: var(--display-serif); font-size: clamp(32px, 4vw, 52px); font-weight: 600; }
.subject-provider-evidence > header p:last-child { color: var(--muted); }
.subject-provider-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-left: 1px solid var(--grid); border-top: 1px solid var(--grid); }
.subject-provider-metrics article { min-height: 270px; border-right: 1px solid var(--grid); border-bottom: 1px solid var(--grid); display: grid; grid-template-rows: auto auto 1fr auto; gap: 14px; padding: 22px; }
.subject-provider-metrics article[data-state="insufficient"] { background: color-mix(in srgb, var(--grid) 12%, transparent); }
.subject-provider-metrics article[data-state="unavailable"] { background: color-mix(in srgb, var(--grid) 6%, transparent); }
.subject-provider-metrics article > p { align-self: end; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.subject-provider-metrics article > span { color: var(--hero-text); font-family: var(--display-serif); font-size: 20px; font-weight: 700; }
.subject-provider-metrics h3 { font-size: 12px; }
.subject-provider-metrics article > strong { align-self: center; font-family: var(--display-serif); font-size: clamp(31px, 4vw, 48px); font-weight: 600; }
.subject-provider-metrics dl { margin: 0; display: grid; gap: 8px; }
.subject-provider-metrics dl > div { border-top: 1px solid var(--grid); display: flex; justify-content: space-between; gap: 14px; padding-top: 8px; }
.subject-provider-metrics dt { color: var(--muted); font-size: 9px; }
.subject-provider-metrics dd { margin: 0; font-size: 10px; font-weight: 730; }
.subject-provider-method { border-block: 1px solid var(--grid); display: grid; grid-template-columns: minmax(240px, .8fr) minmax(0, 1.2fr); gap: clamp(30px, 7vw, 100px); padding: 32px 0; }
.subject-provider-method h2 { max-width: 24ch; font-family: var(--display-serif); font-size: clamp(25px, 3vw, 40px); font-weight: 600; }
.subject-provider-method > dl { margin: 0; }
.subject-provider-method > dl > div { border-top: 1px solid var(--grid); display: grid; grid-template-columns: minmax(120px, .35fr) 1fr; gap: 18px; padding: 11px 0; }
.subject-provider-method dt { color: var(--muted); font-size: 9px; text-transform: uppercase; }
.subject-provider-method dd { margin: 0; overflow-wrap: anywhere; font-size: 10px; line-height: 1.55; }

/* Editorial navigation families over the four source-native catalogues. */
.subject-aggregate-home { display: grid; gap: 18px; }
.subject-aggregate-home > header { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .62fr); gap: clamp(28px, 5vw, 72px); align-items: end; border-bottom: 1px solid var(--text); padding-bottom: 18px; }
.subject-aggregate-home > header h2 { max-width: none; font-family: var(--display-serif); font-size: clamp(32px, 3.2vw, 46px); font-weight: 600; letter-spacing: -.035em; line-height: .98; }
.subject-aggregate-home > header h2 span { display: block; }
.subject-aggregate-home > header > div:last-child { max-width: 68ch; }
.subject-aggregate-home > header p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.subject-aggregate-home > header small { display: block; margin-top: 11px; color: var(--muted); font-size: 10px; line-height: 1.55; }
.subject-aggregate-grid { display: grid; grid-template-columns: 1fr; }
.subject-aggregate-card { min-height: 112px; border-bottom: 1px solid var(--grid); display: grid; grid-template-columns: 42px minmax(190px, .9fr) minmax(260px, 1.25fr) minmax(190px, .72fr); gap: clamp(16px, 2.4vw, 34px); align-items: center; overflow: hidden; padding: 16px 0; color: var(--text); text-decoration: none; transition: background-color .2s ease, box-shadow .2s ease; }
.subject-aggregate-card:hover,
.subject-aggregate-card:focus-visible { background: color-mix(in srgb, var(--hero-text) 4%, var(--bg)); box-shadow: inset 3px 0 0 var(--hero-text); }
.subject-aggregate-card__index { align-self: start; padding-top: 2px; color: var(--hero-text); font-family: var(--display-serif); font-size: 18px; font-weight: 650; font-variant-numeric: tabular-nums; }
.subject-aggregate-card > header { display: block; }
.subject-aggregate-card h3 { max-width: 15ch; margin: 0; font-family: var(--display-serif); font-size: clamp(22px, 2vw, 29px); font-weight: 600; letter-spacing: -.025em; line-height: 1.02; }
.subject-aggregate-examples { align-self: stretch; border-left: 1px solid var(--grid); display: grid; grid-template-columns: minmax(70px, auto) 1fr; gap: 14px; align-items: center; padding-left: clamp(16px, 2vw, 28px); }
.subject-aggregate-examples > strong { color: var(--muted); font-size: 8px; font-weight: 760; letter-spacing: .08em; text-transform: uppercase; }
.subject-aggregate-examples ul { min-width: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 5px 14px; list-style: none; }
.subject-aggregate-examples li { position: relative; font-size: 11px; font-weight: 620; line-height: 1.35; }
.subject-aggregate-examples li + li::before { content: "·"; position: absolute; left: -9px; color: var(--muted); }
.subject-aggregate-card > footer { align-self: stretch; border-left: 1px solid var(--grid); display: grid; gap: 9px; align-content: center; padding-left: clamp(16px, 2vw, 28px); font-size: 10px; }
.subject-aggregate-card > footer span { color: var(--muted); }
.subject-aggregate-card > footer strong { display: flex; justify-content: space-between; gap: 12px; color: var(--text); font-size: 10px; }
.subject-aggregate-card > footer i { color: var(--hero-text); font-style: normal; }

.subject-source-home { border-top: 1px solid var(--grid); display: grid; gap: 24px; padding-top: 30px; }
.subject-source-home > header { display: grid; grid-template-columns: minmax(500px, 1.15fr) minmax(320px, .85fr); gap: clamp(36px, 5vw, 72px); align-items: end; }
.subject-source-home > header h2 { max-width: none; font-family: var(--display-serif); font-size: clamp(38px, 3.4vw, 52px); font-weight: 600; line-height: 1; letter-spacing: -.025em; white-space: nowrap; }
.subject-source-home > header > div:last-child { width: 100%; max-width: none; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px; align-items: end; }
.subject-source-home > header p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.65; }
.subject-source-home > header a { display: inline-flex; align-items: center; justify-self: end; gap: 8px; margin: 0; color: var(--hero-text); font-size: 12px; font-weight: 740; text-decoration: none; white-space: nowrap; }
.subject-source-gateway-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 1px solid var(--grid); border-left: 1px solid var(--grid); }
.subject-source-gateway { min-height: 180px; border-right: 1px solid var(--grid); border-bottom: 1px solid var(--grid); display: grid; grid-template-rows: auto 1fr auto; gap: 14px; overflow: hidden; padding: 18px; color: var(--text); text-decoration: none; transition: background-color .2s ease, color .2s ease; }
.subject-source-gateway:hover,
.subject-source-gateway:focus-visible { background: var(--hero-text); color: var(--bg); }
.subject-source-gateway > header { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.subject-source-gateway > header span { font-family: var(--display-serif); font-size: 22px; font-weight: 700; }
.subject-source-gateway > header strong { color: var(--muted); font-size: 9px; letter-spacing: .06em; text-transform: uppercase; }
.subject-source-gateway h3 { font-family: var(--display-serif); font-size: clamp(22px, 2.1vw, 31px); font-weight: 600; line-height: 1.05; }
.subject-source-gateway footer { align-self: end; border-top: 1px solid var(--grid); display: flex; justify-content: space-between; gap: 12px; padding-top: 12px; font-size: 10px; font-weight: 760; }
.subject-source-gateway footer i { color: var(--hero-text); font-style: normal; }
.subject-source-gateway:hover > header strong,
.subject-source-gateway:focus-visible > header strong { color: inherit; opacity: .7; }
.subject-source-gateway:hover footer i,
.subject-source-gateway:focus-visible footer i { color: inherit; }

.subject-family-page { display: grid; gap: clamp(42px, 6vw, 78px); padding-top: 30px; }
.subject-family-hero { min-height: 330px; border-block: 1px solid var(--grid); display: grid; grid-template-columns: minmax(0, 1fr) minmax(190px, .3fr); gap: clamp(36px, 7vw, 110px); align-items: end; padding: clamp(36px, 6vw, 72px) 0; }
.subject-family-hero h1 { max-width: 15ch; font-family: var(--display-serif); font-size: clamp(52px, 7vw, 94px); font-weight: 600; letter-spacing: -.035em; line-height: .92; }
.subject-family-hero > div:first-child > p:last-child { max-width: 55ch; margin: 18px 0 0; color: var(--muted); font-size: 14px; line-height: 1.6; }
.subject-family-hero > div:last-child { border-left: 1px solid var(--grid); display: grid; gap: 10px; padding-left: 24px; }
.subject-family-hero > div:last-child span { color: var(--text); font-family: var(--display-serif); font-size: clamp(24px, 3vw, 38px); font-weight: 650; line-height: 1.1; }
.subject-family-hero > div:last-child a { width: fit-content; color: var(--hero-text); font-size: 12px; font-weight: 740; text-decoration: none; }
.subject-family-hero > div:last-child a i { font-style: normal; }
.subject-family-boundary { border-left: 2px solid var(--hero-text); display: grid; grid-template-columns: minmax(220px, .65fr) minmax(0, 1.35fr); gap: clamp(28px, 5vw, 74px); padding: 4px 0 4px 20px; }
.subject-family-boundary strong { font-family: var(--display-serif); font-size: 23px; font-weight: 600; line-height: 1.25; }
.subject-family-boundary p { max-width: 70ch; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.subject-label-directory { display: grid; gap: 22px; }
.subject-label-directory > header { display: grid; grid-template-columns: minmax(250px, .72fr) minmax(0, 1.28fr); gap: clamp(28px, 6vw, 88px); align-items: end; }
.subject-label-directory > header h2 { max-width: 15ch; font-family: var(--display-serif); font-size: clamp(34px, 4vw, 56px); font-weight: 600; line-height: 1; }
.subject-label-directory > header label { display: grid; gap: 8px; }
.subject-label-directory > header label > span { color: var(--label); font-size: 10px; font-weight: 760; letter-spacing: .08em; text-transform: uppercase; }
.subject-label-directory > header input { width: 100%; border: 0; border-bottom: 1px solid var(--text); border-radius: 0; outline: 0; background: transparent; color: var(--text); font: 600 17px/1.4 var(--sans); padding: 9px 0; }
.subject-label-directory > header small { min-height: 16px; color: var(--muted); font-size: 10px; }
.subject-label-directory > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--grid); border-left: 1px solid var(--grid); }
.subject-label-card { min-height: 118px; border-right: 1px solid var(--grid); border-bottom: 1px solid var(--grid); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 14px; align-content: space-between; padding: 17px; color: var(--text); text-decoration: none; }
.subject-label-card[hidden] { display: none; }
.subject-label-card strong { overflow-wrap: anywhere; font-family: var(--display-serif); font-size: 20px; font-weight: 600; line-height: 1.12; }
.subject-label-card span { grid-column: 1; color: var(--muted); font-size: 9px; }
.subject-label-card i { grid-column: 2; grid-row: 1 / 3; align-self: center; color: var(--hero-text); font-style: normal; }
.subject-label-card:hover,
.subject-label-card:focus-visible { background: color-mix(in srgb, var(--hero-text) 7%, transparent); }
.subject-cluster-records { display: grid; gap: 22px; }
.subject-cluster-records > header h2 { max-width: 16ch; font-family: var(--display-serif); font-size: clamp(34px, 4vw, 56px); font-weight: 600; line-height: 1; }
.subject-cluster-records > div { border-top: 1px solid var(--grid); }
.subject-cluster-records > div > article { border-bottom: 1px solid var(--grid); display: grid; grid-template-columns: minmax(150px, .35fr) minmax(0, 1fr) auto; gap: 18px; align-items: center; min-height: 82px; padding: 14px 0; color: var(--text); }
.subject-cluster-records article > span { color: var(--muted); font-size: 10px; }
.subject-cluster-records article > strong { font-family: var(--display-serif); font-size: 22px; font-weight: 600; }
.subject-cluster-records article > code { color: var(--hero-text); font-size: 11px; }
.subject-family-sources { display: grid; gap: 24px; }
.subject-family-sources > header h2 { max-width: 17ch; font-family: var(--display-serif); font-size: clamp(34px, 4vw, 58px); font-weight: 600; line-height: 1.02; }
.subject-family-sources > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--grid); border-left: 1px solid var(--grid); }
.subject-family-sources article { min-height: 360px; border-right: 1px solid var(--grid); border-bottom: 1px solid var(--grid); display: grid; grid-template-rows: auto auto 1fr auto; gap: 16px; padding: clamp(22px, 3vw, 32px); }
.subject-family-sources article > header { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; }
.subject-family-sources article > header span { color: var(--hero-text); font-family: var(--display-serif); font-size: 22px; font-weight: 700; }
.subject-family-sources article h3 { max-width: 30ch; margin-top: 5px; font-size: 12px; line-height: 1.4; }
.subject-family-sources article > header > strong { color: var(--hero-text); font-family: var(--display-serif); font-size: 48px; line-height: .9; }
.subject-family-sources article > p { margin: 0; color: var(--muted); font-size: 10px; }
.subject-family-sources nav { align-self: end; border-top: 1px solid var(--grid); }
.subject-family-sources nav a { border-bottom: 1px solid var(--grid); display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 14px; align-items: baseline; padding: 10px 0; color: var(--text); font-size: 11px; text-decoration: none; }
.subject-family-sources nav code { color: var(--hero-text); font-size: 10px; font-weight: 760; }
.subject-family-sources nav i,
.subject-family-sources footer i { color: var(--hero-text); font-style: normal; }
.subject-family-sources article > footer a { color: var(--text); font-size: 11px; font-weight: 760; text-decoration: none; }

/* Source-native national major catalogues. */
.subject-catalogue-home,
.subject-catalogue-groups { display: grid; gap: 24px; }
.subject-catalogue-home > header,
.subject-catalogue-groups > header { display: grid; grid-template-columns: minmax(240px, .72fr) minmax(0, 1.28fr); gap: clamp(28px, 6vw, 88px); align-items: end; }
.subject-catalogue-groups > header { grid-template-columns: 1fr; }
.subject-catalogue-home > header h2,
.subject-catalogue-groups > header h2 { max-width: 17ch; font-family: var(--display-serif); font-size: clamp(34px, 4vw, 58px); font-weight: 600; line-height: 1.02; }
.subject-catalogue-home > header > p:last-child { max-width: 62ch; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.65; }
.subject-catalogue-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--grid); border-left: 1px solid var(--grid); }
.subject-catalogue-card { min-height: 430px; border-right: 1px solid var(--grid); border-bottom: 1px solid var(--grid); display: grid; grid-template-rows: auto auto auto auto 1fr auto; gap: 18px; padding: clamp(22px, 3vw, 34px); }
.subject-catalogue-card > header { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.subject-catalogue-card > header span { color: var(--hero-text); font-family: var(--display-serif); font-size: 25px; font-weight: 700; }
.subject-catalogue-card > header strong { color: var(--muted); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.subject-catalogue-card h2 { max-width: 25ch; font-family: var(--display-serif); font-size: clamp(28px, 3vw, 42px); font-weight: 600; line-height: 1.04; }
.subject-catalogue-card dl { margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-block: 1px solid var(--grid); }
.subject-catalogue-card dl > div { min-width: 0; border-right: 1px solid var(--grid); padding: 16px 12px 16px 0; }
.subject-catalogue-card dl > div + div { padding-left: 12px; }
.subject-catalogue-card dl > div:last-child { border-right: 0; }
.subject-catalogue-card dd { margin: 0; color: var(--hero-text); font-family: var(--display-serif); font-size: clamp(30px, 3.4vw, 48px); font-weight: 700; line-height: 1; }
.subject-catalogue-card dt { margin-top: 7px; color: var(--muted); font-size: 11px; line-height: 1.35; }
.subject-catalogue-card > p { max-width: 62ch; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.subject-catalogue-card .subject-catalogue-related { color: var(--text); }
.subject-catalogue-card > footer { align-self: end; border-top: 1px solid var(--grid); display: flex; justify-content: space-between; gap: 20px; padding-top: 16px; font-size: 12px; }
.subject-catalogue-card > footer span { color: var(--muted); }
.subject-catalogue-card > footer a { color: var(--text); font-weight: 760; text-decoration: none; }
.subject-catalogue-card > footer i { color: var(--hero-text); font-style: normal; }

.subject-catalogue-results { border-top: 1px solid var(--grid); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.subject-catalogue-results[hidden] { display: none; }
.subject-catalogue-result { position: relative; min-width: 0; border-right: 1px solid var(--grid); border-bottom: 1px solid var(--grid); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px 16px; padding: 18px 42px 18px 0; color: var(--text); text-decoration: none; }
.subject-catalogue-result:nth-child(even) { padding-left: 22px; }
.subject-catalogue-result > span,
.subject-catalogue-result > small { grid-column: 1 / -1; color: var(--muted); font-size: 10px; line-height: 1.4; }
.subject-catalogue-result > strong { overflow-wrap: anywhere; font-family: var(--display-serif); font-size: 21px; font-weight: 600; }
.subject-catalogue-result > code { align-self: center; color: var(--hero-text); font-size: 11px; }
.subject-catalogue-result > i { position: absolute; right: 16px; top: 50%; color: var(--hero-text); font-style: normal; transform: translateY(-50%); }
.subject-catalogue-search-tools { display: block; }
.catalogue-label { min-width: 0; display: grid; gap: 4px; }
.catalogue-label > strong { min-width: 0; overflow-wrap: anywhere; font-family: var(--display-serif); font-size: inherit; font-weight: 600; line-height: 1.15; }
.catalogue-label > small { min-width: 0; overflow-wrap: anywhere; color: var(--muted); font-size: 10px; line-height: 1.4; }
.subject-catalogue-group .catalogue-label > strong { font-size: clamp(24px, 2.6vw, 36px); }
.subject-catalogue-group li .catalogue-label > strong { font-family: var(--sans); font-size: 11px; font-weight: 500; }
.subject-catalogue-result .catalogue-label { grid-column: 1; }
.subject-catalogue-result .catalogue-label > strong { font-size: 21px; }
.subject-label-card .catalogue-label { grid-column: 1; }
.subject-label-card > .catalogue-label { color: var(--text); font-size: inherit; }
.subject-label-card .catalogue-label > strong { font-size: 20px; }
.subject-cluster-records article > .catalogue-label { min-width: 0; }
.subject-cluster-records article > .catalogue-label > strong { font-family: var(--display-serif); font-size: 22px; font-weight: 600; }
.subject-family-label-hero-copy { display: inline-grid; }
.subject-family-label-hero-copy > strong { font-size: inherit; }
.subject-catalogue-result > span:not(.catalogue-label),
.subject-catalogue-result > small { color: var(--label); }
.subject-catalogue-result > .catalogue-label { color: var(--text); }
.subject-catalogue-result .catalogue-label > strong { color: var(--text); font-size: 23px; line-height: 1.18; }
.subject-catalogue-result .catalogue-label > small { color: var(--label); font-size: 12px; line-height: 1.45; }
.subject-catalogue-result > code { font-weight: 760; letter-spacing: .02em; }
.subject-search > p { min-height: 18px; margin: 0; color: var(--label); font-size: 11px; font-weight: 600; }
.subject-family-section--comparison { border-top: 1px solid var(--grid); padding-top: 32px; }
.subject-family-section--comparison > header > a { color: var(--muted); font-size: 12px; text-underline-offset: 3px; }

.subject-catalogue-page { display: grid; gap: clamp(42px, 6vw, 78px); row-gap: clamp(36px, 4vw, 58px); padding-top: 30px; }
.subject-catalogue-hero,
.subject-catalogue-entry-hero { min-height: 300px; border-block: 1px solid var(--grid); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 36px; align-items: center; padding: 34px 0; }
.subject-catalogue-hero h1,
.subject-catalogue-entry-hero h1 { max-width: 18ch; font-family: var(--display-serif); font-size: clamp(45px, 6vw, 82px); font-weight: 600; line-height: .98; }
.subject-catalogue-hero p:last-child,
.subject-catalogue-entry-hero p:last-child { max-width: 65ch; margin: 18px 0 0; color: var(--muted); line-height: 1.6; }
.subject-catalogue-hero > strong { color: var(--hero-text); font-family: var(--display-serif); font-size: clamp(84px, 13vw, 178px); font-weight: 600; line-height: .8; }
.subject-catalogue-entry-hero > code { max-width: 9ch; overflow-wrap: anywhere; color: var(--hero-text); font-family: var(--display-serif); font-size: clamp(40px, 7vw, 90px); font-weight: 700; line-height: .9; text-align: right; }
.subject-catalogue-source { border-block: 1px solid var(--grid); display: flex; justify-content: space-between; gap: 36px; align-items: center; padding: 20px 0; }
.subject-catalogue-source > div { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 24px; align-items: baseline; }
.subject-catalogue-source span { color: var(--label); font-size: 10px; font-weight: 760; letter-spacing: .08em; text-transform: uppercase; }
.subject-catalogue-source p { max-width: 72ch; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.subject-catalogue-source a { flex: 0 0 auto; color: var(--text); font-size: 12px; font-weight: 760; text-underline-offset: 3px; }
.subject-catalogue-group-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--grid); border-left: 1px solid var(--grid); }
.subject-catalogue-group { min-height: 310px; border-right: 1px solid var(--grid); border-bottom: 1px solid var(--grid); display: grid; grid-template-rows: auto auto 1fr auto; gap: 18px; padding: 22px; color: var(--text); text-decoration: none; }
.subject-catalogue-group > header { display: flex; justify-content: space-between; gap: 18px; color: var(--muted); font-size: 10px; }
.subject-catalogue-group code { color: var(--hero-text); font-weight: 760; }
.subject-catalogue-group h2 { max-width: 20ch; font-family: var(--display-serif); font-size: clamp(24px, 2.6vw, 36px); font-weight: 600; line-height: 1.05; }
.subject-catalogue-group ol { margin: 0; padding: 0; list-style: none; }
.subject-catalogue-group li { border-top: 1px solid var(--grid); padding: 7px 0; color: var(--muted); font-size: 11px; }
.subject-catalogue-group > footer { align-self: end; display: flex; justify-content: space-between; gap: 18px; color: var(--muted); font-size: 11px; }
.subject-catalogue-group > footer i { color: var(--hero-text); font-style: normal; }
.subject-catalogue-leaf { border-block: 1px solid var(--grid); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 30px; align-items: center; padding: 28px 0; }
.subject-catalogue-leaf p { margin: 0; color: var(--muted); }
.subject-catalogue-leaf > div { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; }
.subject-catalogue-leaf > div > a:last-child { color: var(--muted); font-size: 12px; }

@media (max-width: 980px) {
  .subject-atlas-hero { grid-template-columns: 1fr; }
  .subject-atlas-hero__aside { width: 100%; min-width: 0; }
  .subject-atlas-tools .subject-search { grid-template-columns: 1fr; }
  .subject-atlas-tools .subject-search > p { grid-column: 1; }
  .subject-source-home > header { grid-template-columns: 1fr; gap: 22px; }
  .subject-source-home > header h2 { white-space: normal; }
  .subject-search { max-width: none; }
  .subject-aggregate-card { grid-template-columns: 36px minmax(180px, .8fr) minmax(0, 1.2fr); }
  .subject-aggregate-card > footer { grid-column: 3; border-left: 0; border-top: 1px solid var(--grid); padding: 10px 0 0; }
  .subject-atlas-scope { grid-template-columns: 1fr; }
  .subject-system-section > header { grid-template-columns: 1fr; }
  .subject-system-section--home .subject-system-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .subject-family-card { grid-template-columns: minmax(150px, .45fr) minmax(0, 1fr); }
  .subject-family-card > header { border-bottom: 1px solid var(--grid); }
  .subject-family-intro { border-right: 0; border-bottom: 1px solid var(--grid); }
  .subject-family-structure { grid-column: 1 / -1; border-right: 0; border-bottom: 1px solid var(--grid); }
  .subject-family-card > footer { grid-column: 1 / -1; display: flex; align-items: center; justify-content: flex-end; padding-block: 16px; }
  .subject-source-map { grid-template-columns: 1fr; }
  .subject-source-map--compact > header { grid-template-columns: 1fr; }
  .subject-coverage-overview > header,
  .subject-methodology-coverage > header { grid-template-columns: 1fr; }
  .subject-direction-actions { grid-template-columns: 1fr; }
  .subject-direction-actions article { min-height: 210px; }
  .subject-ranking-live { grid-template-columns: 1fr; }
  .publisher-ranking-grid { grid-template-columns: 1fr; }
  .publisher-ranking-grid > article { min-height: auto; }
  .ranking-policy-toc { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .ranking-policy-toc > span { grid-column: 1 / -1; border-bottom: 1px solid var(--grid); }
  .ranking-policy-toc a:first-of-type { border-left: 0; }
  .ranking-policy-summary,
  .ranking-metric-ledger { grid-template-columns: 1fr; }
  .ranking-policy-summary article,
  .ranking-metric-ledger article { min-height: 0; }
  .subject-provider-hero,
  .subject-provider-method { grid-template-columns: 1fr; }
  .subject-provider-rank { border-left: 0; border-top: 1px solid var(--grid); padding: 22px 0 0; }
  .subject-family-hero { grid-template-columns: 1fr; }
  .subject-family-hero > div:last-child { border-left: 0; border-top: 1px solid var(--grid); padding: 22px 0 0; }
  .subject-source-gateway-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .subject-source-gateway { min-height: 250px; }
  .subject-catalogue-group-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .subject-atlas-home,
  .subject-level-page,
  .subject-methodology-page { gap: 46px; }
  .subject-atlas-hero { padding-top: 30px; }
  .subject-atlas-hero h1 { font-size: clamp(38px, 11vw, 52px); }
  .subject-atlas-tools .subject-search > div { grid-template-columns: minmax(0, 1fr) auto; }
  .subject-atlas-tools .subject-search-clear { grid-column: 1 / -1; min-height: 44px; }
  .subject-atlas-scope > header { grid-template-columns: 1fr; }
  .subject-atlas-scope > dl > div { min-height: 96px; }
  .subject-aggregate-home > header,
  .subject-family-boundary,
  .subject-source-home > header,
  .subject-label-directory > header { grid-template-columns: 1fr; }
  .subject-source-home > header > div:last-child { grid-template-columns: 1fr; gap: 12px; }
  .subject-source-home > header a { justify-self: start; }
  .subject-family-sources > div,
  .subject-source-gateway-grid,
  .subject-label-directory > div { grid-template-columns: 1fr; }
  .subject-aggregate-card {
    min-height: 0;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 12px 14px;
    padding: 18px 0;
  }
  .subject-aggregate-card__index { grid-column: 1; grid-row: 1 / span 3; }
  .subject-aggregate-card > header,
  .subject-aggregate-examples,
  .subject-aggregate-card > footer { grid-column: 2; }
  .subject-aggregate-examples { border-left: 0; border-top: 1px solid var(--grid); grid-template-columns: 1fr; gap: 8px; padding: 12px 0 0; }
  .subject-aggregate-card > footer { border-left: 0; padding-left: 0; }
  .subject-aggregate-card,
  .subject-family-sources article,
  .subject-source-gateway { min-height: 0; }
  .subject-cluster-records > div > article { grid-template-columns: minmax(0, 1fr) auto; }
  .subject-cluster-records article > span,
  .subject-cluster-records article > strong { grid-column: 1; }
  .subject-cluster-records article > code { grid-column: 2; }
  .subject-family-section > header,
  .subject-branch-section > header,
  .subject-direction-section > header { align-items: start; flex-direction: column; }
  .subject-family-section > header > p { text-align: left; }
  .subject-family-grid,
  .subject-branch-grid,
  .subject-system-grid,
  .subject-handling-note { grid-template-columns: 1fr; }
  .subject-catalogue-home > header,
  .subject-catalogue-groups > header { grid-template-columns: 1fr; }
  .subject-catalogue-grid,
  .subject-catalogue-results,
  .subject-catalogue-group-grid { grid-template-columns: 1fr; }
  .subject-catalogue-card { min-height: 0; }
  .subject-catalogue-result,
  .subject-catalogue-result:nth-child(even) { border-right: 0; padding-left: 0; }
  .subject-catalogue-hero,
  .subject-catalogue-entry-hero { min-height: 230px; grid-template-columns: 1fr; align-items: end; }
  .subject-catalogue-hero > strong,
  .subject-catalogue-entry-hero > code { text-align: left; }
  .subject-catalogue-source,
  .subject-catalogue-source > div,
  .subject-catalogue-leaf { grid-template-columns: 1fr; display: grid; align-items: start; }
  .subject-system-section--home .subject-system-grid { grid-template-columns: 1fr; }
  .subject-family-card { min-height: 0; grid-template-columns: 1fr; }
  .subject-family-card > header,
  .subject-family-intro,
  .subject-family-structure { grid-column: 1; border-right: 0; border-bottom: 1px solid var(--grid); }
  .subject-family-card > header { min-height: 112px; }
  .subject-family-card > footer { grid-column: 1; }
  .subject-source-map > div { grid-template-columns: 1fr; }
  .subject-taxonomy-ledger { grid-template-columns: 1fr; }
  .subject-taxonomy-ledger article { min-height: 190px; }
  .finder-cross-nav { grid-template-columns: 1fr; gap: 18px; margin-top: 24px; padding-block: 18px; }
  .finder-cross-nav h2 { max-width: 20ch; font-size: clamp(26px, 6vw, 32px); }
  .finder-cross-nav nav a { min-height: 52px; font-size: clamp(17px, 4vw, 20px); }
  .subject-level-hero { min-height: 250px; grid-template-columns: minmax(0, 1fr) auto; }
  .subject-level-hero h1 { font-size: clamp(45px, 12vw, 68px); }
  .subject-level-hero p:last-child { font-size: 14px; }
  .subject-level-hero > strong { font-size: clamp(92px, 25vw, 150px); }
  .subject-level-summary,
  .subject-classification-band,
  .subject-direction-brief,
  .research-evidence-chain { grid-template-columns: 1fr; }
  .subject-direction-list a { grid-template-columns: minmax(0, 1fr) 22px; gap: 10px; }
  .subject-direction-list small { grid-column: 1; grid-row: 2; text-align: left; }
  .subject-direction-list i { grid-column: 2; grid-row: 1 / 3; }
  .subject-career-links { grid-template-columns: 1fr; }
  .research-signal-grid > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .subject-programme-paths { grid-template-columns: 1fr; }
  .subject-programme-paths nav { align-items: stretch; flex-direction: column; }
  .subject-signal-empty { align-items: start; flex-direction: column; }
  .subject-ranking-list > li { grid-template-columns: 48px minmax(0, 1fr); }
  .subject-ranking-metrics { grid-column: 2; }
  .subject-ranking-policy-entry { align-items: flex-start; flex-direction: column; gap: 8px; }
  .ranking-policy-toc { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ranking-policy-toc a:nth-of-type(3) { border-left: 0; }
  .ranking-policy-comparison > div,
  .ranking-weight-grid { grid-template-columns: 1fr; }
  .ranking-policy-comparison article,
  .ranking-weight-grid article { min-height: 160px; }
  .ranking-policy-gates,
  .ranking-policy-publishers { grid-template-columns: 1fr; }
  .ranking-transform { grid-template-columns: 1fr; }
  .ranking-transform > p { grid-column: 1; }
  .ranking-policy-gates aside,
  .ranking-policy-publishers aside { grid-column: 1; }
  .subject-provider-metrics { grid-template-columns: 1fr; }
  .subject-provider-metrics article { min-height: 220px; }
}

@media (max-width: 420px) {
  .subject-breadcrumb {
    flex-wrap: wrap;
    row-gap: 6px;
    overflow-x: visible;
    white-space: normal;
  }

  .subject-breadcrumb a,
  .subject-breadcrumb strong {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .subject-search > div { grid-template-columns: 1fr; }
  .subject-search-clear { grid-column: 1; }
  .subject-level-hero { grid-template-columns: 1fr; }
  .subject-level-hero > strong { display: none; }
  .subject-branch-card,
  .subject-direction-actions article { padding: 20px; }
  .subject-family-card > header,
  .subject-family-intro,
  .subject-family-structure,
  .subject-family-card > footer { padding: 20px; }
  .research-signal-grid > div { grid-template-columns: 1fr; }
  .subject-ranking-live > form { grid-template-columns: 1fr; }
  .subject-ranking-live > form label { grid-column: 1; }
  .subject-ranking-list > li { grid-template-columns: 38px minmax(0, 1fr); gap: 11px; }
  .subject-ranking-metrics { grid-template-columns: 1fr; }
}

.ror-directory-search {
  max-width: none;
  grid-template-columns: minmax(240px, 1.5fr) minmax(150px, .7fr) minmax(190px, .9fr) auto;
}

.ror-directory-search select {
  width: 100%;
  min-width: 0;
  min-height: 48px;
  border: 1px solid var(--grid);
  border-radius: 8px;
  background: var(--paper);
  padding: 10px 13px;
  color: var(--text);
  font: inherit;
}

.ror-entity-card {
  min-width: 0;
}

.ror-entity-card .entity-link {
  overflow-wrap: anywhere;
}

.world-city-marker .world-point {
  fill: color-mix(in srgb, var(--hero) 72%, transparent);
  stroke: var(--text);
  stroke-width: 1.2;
}

.world-city-marker:focus-visible .world-point,
.world-city-marker:hover .world-point {
  fill: var(--hero);
  stroke-width: 2.2;
}

.global-city-actions {
  margin-top: 26px;
}

.ror-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 clamp(24px, 4vw, 64px);
}

.ror-detail-list {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ror-detail-list li {
  min-width: 0;
  border-bottom: 1px solid var(--grid);
  display: grid;
  grid-template-columns: minmax(120px, .8fr) minmax(0, 1.2fr);
  gap: 16px;
  padding: 13px 0;
}

.ror-detail-list :is(span, a) {
  min-width: 0;
  overflow-wrap: anywhere;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.5;
}

.ror-organisation-point .geo-marker {
  transition: none;
}

.geo-land {
  fill: color-mix(in srgb, var(--paper) 82%, var(--hero));
  stroke: var(--text);
  stroke-width: 1.1;
  vector-effect: non-scaling-stroke;
}

.geo-marker-halo {
  fill: color-mix(in srgb, var(--hero) 22%, transparent);
  stroke: var(--hero);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.geo-marker {
  fill: var(--hero);
  stroke: var(--text);
  stroke-width: 1.5;
  vector-effect: non-scaling-stroke;
}

.geo-label,
.geo-value {
  fill: var(--text);
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 750;
  paint-order: stroke;
  stroke: var(--paper);
  stroke-width: 3px;
  stroke-linejoin: round;
}

.geo-value {
  fill: var(--muted);
  font-size: 11px;
  font-variant-numeric: tabular-nums;
}

.geo-marker-link:is(:hover, :focus-visible) .geo-marker,
.geo-marker-link.is-selected .geo-marker {
  fill: var(--text);
  stroke: var(--hero);
  stroke-width: 3;
}

.geo-marker-link:focus-visible {
  outline: none;
}

.geo-city-links {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid var(--grid);
  border-top: 0;
}

.geo-city-links a {
  min-width: 0;
  min-height: 48px;
  border-right: 1px solid var(--grid);
  border-bottom: 1px solid var(--grid);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 9px 12px;
  color: inherit;
  font-size: 10px;
  text-decoration: none;
}

.geo-city-links a:nth-child(4n) {
  border-right: 0;
}

.geo-city-links a:nth-last-child(-n + 4) {
  border-bottom: 0;
}

.geo-city-links a:is(:hover, :focus-visible, [aria-current="location"]) {
  background: var(--text);
  color: var(--paper);
}

.geo-city-links strong {
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
  text-align: right;
}

.table-scroll {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
}

.product-table {
  width: 100%;
  min-width: 560px;
  border-collapse: collapse;
  font-size: 12px;
}

.product-table th,
.product-table td {
  border-bottom: 1px solid var(--grid);
  padding: 13px 12px;
  text-align: left;
}

.community-review-header {
  max-width: 980px;
  margin-top: clamp(24px, 4vw, 52px);
  padding-bottom: clamp(24px, 3vw, 38px);
  border-bottom: 1px solid var(--grid);
}

.community-review-header h1 {
  margin: 7px 0 12px;
  font-family: var(--display-serif);
  font-size: clamp(34px, 4.4vw, 62px);
  font-weight: 500;
  line-height: .96;
  letter-spacing: -.04em;
  overflow-wrap: anywhere;
}

.community-review-header > p:last-child {
  max-width: 680px;
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
}

.community-review-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 340px);
  gap: clamp(36px, 6vw, 86px);
  align-items: start;
  margin-top: clamp(34px, 5vw, 64px);
}

.community-review-layout > * { min-width: 0; }

.community-submit-section h2,
.community-aggregate-section h2 {
  margin: 6px 0 0;
  font-family: var(--display-serif);
  font-size: clamp(27px, 3vw, 42px);
  font-weight: 500;
  line-height: 1;
}

.community-aggregate-section {
  margin-top: clamp(48px, 7vw, 80px);
  padding-top: 28px;
  border-top: 1px solid var(--grid);
}

.community-review-evidence {
  position: sticky;
  top: 96px;
}

.community-review-evidence .product-boundary { margin-top: 0; }

.review-page-form {
  display: grid;
  gap: 24px;
  max-width: 980px;
  margin-top: 28px;
}

.review-slider-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px 34px;
}

.review-slider-grid label {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  font-size: 12px;
  font-weight: 750;
}

.review-slider-grid output {
  color: var(--hero-text);
  font-variant-numeric: tabular-nums;
}

.review-slider-grid input[type="range"] {
  grid-column: 1 / -1;
  width: 100%;
  min-height: 32px;
  accent-color: var(--hero);
}

.review-consent {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.5;
}

.disabled-action {
  color: var(--muted);
  font-size: 11px;
}

.decision-result-row {
  cursor: default;
}

.decision-result-row.is-selected {
  background: rgba(239, 79, 34, .055);
}

.result-radio {
  padding: 0;
  background: transparent;
  cursor: pointer;
}

.decision-result-row.is-selected .result-radio {
  border: 4px solid var(--hero);
}

.decision-course-link,
.decision-provider-link {
  display: inline;
  overflow-wrap: anywhere;
}

@media (max-width: 1180px) {
  .app-header {
    grid-template-columns: minmax(150px, 190px) minmax(0, 1fr) auto;
  }

  .app-header .brand,
  .app-header .brand img {
    max-width: 190px;
  }

  .nav-link,
  .product-nav-link {
    padding-inline: 6px;
    font-size: 10px;
  }

  .entity-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

}

@media (max-width: 860px) {
  .app-header {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 5px 12px;
    padding-block: 7px 0;
  }

  .app-header .brand,
  .app-header .brand img {
    width: 186px;
    height: 42px;
  }

  .primary-nav {
    grid-column: 1 / -1;
    grid-row: 2;
    display: flex;
    width: 100%;
    gap: 0;
    justify-content: flex-start;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: inline proximity;
    scrollbar-width: none;
  }

  .primary-nav::-webkit-scrollbar { display: none; }

  .nav-link,
  .product-nav-link {
    flex: 0 0 auto;
    min-width: 72px;
    min-height: 42px;
    padding: 0 8px;
    scroll-snap-align: start;
    white-space: nowrap;
    text-align: center;
  }

  .product-detail-grid,
  .ror-detail-grid,
  .course-source-results-heading,
  .course-source-result > header,
  .product-chart figcaption,
  .product-map figcaption {
    grid-template-columns: 1fr;
  }

  .forecast-status-panel {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .global-country-entry {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .global-country-detail .global-country-primary-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .community-result {
    grid-template-columns: minmax(0, 1fr) minmax(210px, .7fr);
  }

  .community-result .primary-button { grid-column: 1 / -1; justify-self: start; }

  .approved-review {
    grid-template-columns: minmax(0, 1fr) minmax(230px, .8fr);
  }

  .approved-review time { grid-column: 1 / -1; }

  .community-review-layout { grid-template-columns: 1fr; }
  .community-review-evidence { position: static; }

  .product-chart figcaption > .kicker,
  .product-chart figcaption h2,
  .product-chart figcaption > p:last-child,
  .product-map figcaption > .kicker,
  .product-map figcaption h2,
  .product-map figcaption > p:last-child {
    grid-column: 1;
    grid-row: auto;
  }

  .course-source-result > header > span {
    justify-self: start;
    text-align: left;
  }

  .ror-directory-search {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .explore-entry-grid {
    grid-template-columns: 1fr;
  }

  .explore-entry {
    min-height: 0;
    grid-template-columns: 58px minmax(0, 1fr) auto;
    grid-template-rows: auto;
    align-items: center;
  }

  .explore-entry + .explore-entry {
    border-top: 1px solid var(--grid);
    border-left: 0;
  }

  .explore-journey ol {
    grid-template-columns: 1fr;
  }

  .explore-journey li,
  .explore-journey li + li {
    display: grid;
    grid-template-columns: 48px minmax(112px, .42fr) minmax(0, 1fr);
    align-items: baseline;
    column-gap: 18px;
    min-height: 0;
    border-top: 1px solid var(--grid);
    border-left: 0;
    padding: 18px 0;
  }

  .explore-journey li > span {
    grid-column: 1;
    margin: 0;
    color: var(--hero-text);
  }

  .explore-journey li > strong {
    grid-column: 2;
  }

  .explore-journey li > p {
    grid-column: 3;
    margin: 0;
  }

  .priority-entry {
    grid-template-columns: 50px minmax(0, 1fr);
  }

  .priority-entry > a {
    grid-column: 2;
  }
}

@media (max-width: 860px) and (min-width: 761px) {
  .product-map figcaption.world-map-toolbar {
    grid-template-columns: auto minmax(210px, 1fr) auto minmax(150px, .55fr) auto;
  }
}

@media (max-width: 760px) {
  .product-map figcaption.world-map-toolbar {
    grid-template-columns: 1fr auto;
  }

  .world-map-zoom-range { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
  :root {
    --gutter: 18px;
  }

  .app-header {
    padding-inline: var(--gutter);
  }

  .explore-journey > header {
    grid-template-columns: 1fr;
    gap: 10px;
    margin-bottom: 20px;
  }

  .explore-journey > header h2 {
    font-size: clamp(24px, 8vw, 32px);
  }

  .explore-journey li,
  .explore-journey li + li {
    grid-template-columns: 34px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 12px;
    row-gap: 5px;
    padding: 16px 0;
  }

  .explore-journey li > span {
    grid-column: 1;
    grid-row: 1 / 3;
  }

  .explore-journey li > strong,
  .explore-journey li > p {
    grid-column: 2;
  }

  .explore-journey li > strong {
    grid-row: 1;
  }

  .explore-journey li > p {
    grid-row: 2;
  }

  .app-header .brand,
  .app-header .brand img {
    width: 174px;
    max-width: 174px;
  }

  .nav-link,
  .product-nav-link {
    min-width: 76px;
    min-height: 44px;
    font-size: 9px;
  }

  .product-route-view {
    padding-top: 34px;
  }

  .product-route-loading {
    grid-template-columns: 1fr;
    gap: 9px;
    min-height: 68px;
    padding-block: 11px;
  }

  .product-page-header {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .product-page-header h1 {
    font-size: clamp(32px, 11vw, 48px);
  }

  .explore-hub {
    gap: 36px;
  }

  .explore-hub-hero {
    padding-top: 4px;
    text-align: left;
  }

  .explore-hub-hero h1 {
    margin-inline: 0;
    font-size: clamp(40px, 13vw, 58px);
  }

  .explore-hub-hero > p:last-child {
    margin-inline: 0;
  }

  .explore-entry {
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 25px 0;
  }

  .explore-entry .primary-button,
  .explore-entry .secondary-button,
  .priority-entry .primary-button,
  .priority-entry .secondary-button {
    width: 100%;
  }

  .explore-entry h2 {
    font-size: 32px;
  }

  .explore-resume {
    align-items: start;
    flex-direction: column;
  }

  .priority-entry {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .priority-entry > a {
    grid-column: 1;
  }

  .product-fact-hero {
    grid-template-columns: 1fr;
  }

  .product-fact-hero:has(> :nth-child(4):last-child),
  .ror-directory-search,
  .ror-detail-grid {
    grid-template-columns: 1fr;
  }

  .product-fact-hero > div {
    min-height: 92px;
    border-right: 0;
    border-bottom: 1px solid var(--grid);
  }

  .product-fact-hero > div:last-child {
    border-bottom: 0;
  }

  .global-city-facts > div {
    min-height: 104px;
    border-right: 0;
    border-bottom: 1px solid var(--grid);
  }

  .global-city-facts > div:last-child {
    border-bottom: 0;
  }

  .entity-card-grid,
  .location-list,
  .review-slider-grid {
    grid-template-columns: 1fr;
  }

  .course-source-grid,
  .global-course-search,
  .global-programme-search,
  .global-programme-identity,
  .global-programme-coverage > header,
  .global-programme-results-heading,
  .global-programme-source-results > header,
  .global-programme-dimensions > header {
    grid-template-columns: 1fr;
  }

  .global-programme-coverage > header > div:last-child,
  .global-programme-source-results > header > span {
    justify-self: start;
    text-align: left;
  }

  .global-programme-source-grid,
  .global-programme-result-grid {
    grid-template-columns: 1fr;
  }

  .global-programme-source-card,
  .global-programme-card {
    min-height: 0;
  }

  .global-programme-source-card dl {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .global-programme-dimensions nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .global-programme-dimensions nav a:nth-child(2n) { border-right: 0; }
  .global-programme-dimensions nav a:nth-last-child(-n + 2) { border-bottom: 0; }

  .course-source-card {
    min-height: 0;
  }

  .global-course-search .primary-button,
  .global-course-search .secondary-button,
  .course-source-result > .secondary-button {
    width: 100%;
  }

  .community-targets { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .community-target-tab {
    min-height: 68px;
    border-bottom: 1px solid var(--grid);
  }

  .community-target-tab:nth-child(2n) { border-right: 0; }
  .community-target-tab:nth-last-child(-n + 2) { border-bottom: 0; }

  .community-results-heading,
  .community-result,
  .community-identity,
  .approved-review {
    grid-template-columns: 1fr;
  }

  .community-results-heading > span { text-align: left; }
  .community-result .primary-button { grid-column: 1; width: 100%; }
  .community-identity > div { grid-template-columns: 1fr; }
  .community-identity .kicker { grid-column: 1; }
  .approved-review time { grid-column: 1; }

  .community-review-layout { grid-template-columns: 1fr; }
  .community-review-evidence { position: static; }
  .review-slider-grid { grid-template-columns: 1fr; }

  .entity-card,
  .location-list article {
    min-height: 0;
  }

  .product-search {
    grid-template-columns: 1fr;
  }

  .job-market-distribution-chart .lf-label,
  .job-market-history-chart .lf-label {
    font-size: 18px;
  }

  .job-market-distribution-chart .job-market-selected-label {
    font-size: 20px;
  }

  .product-pagination {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .product-pagination__range {
    grid-column: 1 / -1;
    grid-row: 1;
  }

  .product-facts > div,
  .entity-card dl > div,
  .review-aggregate > div,
  .ror-detail-list li {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .product-chart,
  .product-map {
    margin-inline: 0;
  }

  .geo-label {
    font-size: 17px;
  }

  .geo-value {
    font-size: 15px;
  }

  .geo-city-links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .geo-city-links a:nth-child(4n) {
    border-right: 1px solid var(--grid);
  }

  .geo-city-links a:nth-last-child(-n + 4) {
    border-bottom: 1px solid var(--grid);
  }

  .geo-city-links a:nth-child(2n) {
    border-right: 0;
  }

  .geo-city-links a:nth-last-child(-n + 2) {
    border-bottom: 0;
  }
}

/* DegreeSignal home: a distinct product gateway at `/`. */
.product-route-view.is-home-route {
  padding-top: 0;
  padding-bottom: 0;
}

.home-page {
  --home-rule: color-mix(in srgb, var(--grid) 76%, transparent);
}

.home-page h1,
.home-page h2,
.home-page h3,
.home-page p {
  text-wrap: pretty;
}

.home-hero {
  min-height: clamp(570px, 57vw, 720px);
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr);
  align-items: center;
  gap: clamp(52px, 8vw, 128px);
  border-bottom: 1px solid var(--home-rule);
  padding: clamp(70px, 8vw, 118px) 0 clamp(58px, 7vw, 96px);
}

.home-hero__copy {
  position: relative;
  z-index: 1;
  min-width: 0;
}

.home-hero h1 {
  max-width: 10.8ch;
  margin: 0;
  font-family: var(--display-serif);
  font-size: clamp(54px, 6.6vw, 92px);
  font-weight: 600;
  letter-spacing: -.055em;
  line-height: .98;
}

.home-hero__intro {
  max-width: 38ch;
  margin: clamp(24px, 3vw, 38px) 0 0;
  color: var(--muted);
  font-size: clamp(14px, 1.25vw, 17px);
  line-height: 1.75;
}

.home-hero__adjust {
  margin: clamp(26px, 3vw, 40px) 0 0;
  color: var(--label);
  font-size: 13px;
  line-height: 1.6;
}

.home-hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px clamp(20px, 3vw, 38px);
  margin-top: 18px;
}

.home-hero__actions .primary-button {
  min-height: 52px;
  border-radius: 7px;
  padding-inline: 24px;
  cursor: pointer;
}

.home-hero__actions > a,
.home-factor-action,
.home-trust > a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--text);
  font-size: 13px;
  font-weight: 720;
  text-decoration: none;
}

.home-link-arrow {
  width: 21px;
  height: 21px;
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  transition: transform .22s ease;
}

.home-link-arrow img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  transition: filter .22s ease;
}

.home-hero__actions > a:hover .home-link-arrow,
.home-hero__actions > a:focus-visible .home-link-arrow,
.home-factor-action:hover .home-link-arrow,
.home-factor-action:focus-visible .home-link-arrow,
.home-trust > a:hover .home-link-arrow,
.home-trust > a:focus-visible .home-link-arrow {
  transform: translateX(4px);
}

.home-hero__mark {
  position: relative;
  width: min(100%, 430px);
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  justify-self: end;
  border: 1px solid color-mix(in srgb, var(--grid) 36%, transparent);
  border-radius: 50%;
}

.home-hero__mark::before {
  position: absolute;
  inset: -1px 50%;
  width: 1px;
  background: color-mix(in srgb, var(--grid) 30%, transparent);
  content: "";
}

.home-hero__mark img {
  position: relative;
  z-index: 1;
  width: 48%;
  height: 48%;
  display: block;
  object-fit: contain;
}

:root[data-theme="dark"] .home-hero__mark {
  background: #f7f6f1;
  border-color: color-mix(in srgb, #f7f6f1 38%, transparent);
}

.home-start,
.home-factor-section {
  scroll-margin-top: 96px;
  border-bottom: 1px solid var(--home-rule);
  padding: clamp(58px, 7vw, 100px) 0;
}

.home-factor-section {
  border-bottom: 0;
  padding-bottom: clamp(36px, 4vw, 56px);
}

.home-start > header {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr);
  gap: clamp(30px, 7vw, 110px);
  align-items: end;
  margin-bottom: clamp(32px, 4vw, 54px);
}

.home-start > header h2,
.home-factor-heading h2 {
  max-width: 17ch;
  margin: 0;
  font-family: var(--display-serif);
  font-size: clamp(38px, 4.8vw, 68px);
  font-weight: 600;
  letter-spacing: -.045em;
  line-height: 1.02;
}

.home-start > header p,
.home-factor-heading > p:last-child {
  max-width: 48ch;
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.7;
}

.home-start__list {
  border-top: 1px solid var(--home-rule);
}

.home-start-row {
  min-height: clamp(126px, 11vw, 162px);
  display: grid;
  grid-template-columns: clamp(96px, 11vw, 158px) minmax(0, 1fr) 42px;
  gap: clamp(20px, 3.5vw, 54px);
  align-items: center;
  border-bottom: 1px solid var(--home-rule);
  color: inherit;
  padding: 16px 10px;
  text-decoration: none;
  transition: background-color .22s ease;
}

.home-start-row:hover,
.home-start-row:focus-visible {
  background: color-mix(in srgb, var(--surface-strong) 28%, transparent);
}

.home-start-row__number {
  font-family: var(--display-serif);
  font-size: clamp(55px, 6.6vw, 92px);
  font-variant-numeric: tabular-nums;
  letter-spacing: -.055em;
  line-height: 1;
}

.home-start-row__copy {
  min-width: 0;
  display: grid;
  gap: 9px;
}

.home-start-row__copy strong {
  font-family: var(--display-serif);
  font-size: clamp(27px, 2.8vw, 40px);
  font-weight: 600;
  letter-spacing: -.03em;
  line-height: 1.05;
}

.home-start-row__copy small {
  max-width: 58ch;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.65;
}

.home-start-row > .home-link-arrow {
  position: relative;
  justify-self: end;
  width: 30px;
  height: 30px;
}

.home-start-row > .home-link-arrow::after {
  position: absolute;
  right: 0;
  bottom: -11px;
  left: 0;
  height: 1px;
  background: var(--hero);
  content: "";
  opacity: 0;
  transform: scaleX(.3);
  transform-origin: right;
  transition: opacity .22s ease, transform .22s ease;
}

.home-start-row:hover > .home-link-arrow,
.home-start-row:focus-visible > .home-link-arrow {
  transform: translateX(5px);
}

.home-start-row:hover > .home-link-arrow img,
.home-start-row:focus-visible > .home-link-arrow img {
  filter: invert(42%) sepia(99%) saturate(2937%) hue-rotate(349deg) brightness(100%) contrast(89%);
}

.home-start-row:hover > .home-link-arrow::after,
.home-start-row:focus-visible > .home-link-arrow::after {
  opacity: 1;
  transform: scaleX(1);
}

.home-factor-heading {
  max-width: 900px;
}

.home-factor-heading .kicker {
  margin: 0 0 14px;
  color: var(--hero-text);
}

.home-factor-heading h2 {
  max-width: 21ch;
}

.home-factor-heading > p:last-child {
  max-width: 70ch;
  margin-top: 22px;
}

.home-factor-map {
  position: relative;
  width: min(100%, 1180px);
  display: grid;
  grid-template-columns: minmax(250px, 1fr) minmax(250px, 300px) minmax(250px, 1fr);
  grid-template-areas:
    "learning center admission"
    "place center affordability"
    "outcomes outcomes outcomes";
  gap: 22px clamp(54px, 5vw, 76px);
  align-items: stretch;
  margin: clamp(38px, 4vw, 56px) auto 0;
  padding: 10px 0 0;
}

.home-factor-branch {
  position: relative;
  min-width: 0;
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: 14px;
  align-content: start;
  border-block: 1px solid var(--home-rule);
  padding: 20px 0 18px;
}

.home-factor-branch--learning { grid-area: learning; }
.home-factor-branch--admission { grid-area: admission; }
.home-factor-branch--place { grid-area: place; }
.home-factor-branch--affordability { grid-area: affordability; }
.home-factor-branch--outcomes { grid-area: outcomes; }

.home-factor-branch--learning,
.home-factor-branch--place {
  text-align: right;
}

.home-factor-copy h3 {
  position: relative;
  width: fit-content;
  margin: 0;
  font-family: var(--display-serif);
  font-size: clamp(27px, 2.4vw, 36px);
  font-weight: 600;
  letter-spacing: -.035em;
  line-height: 1.05;
}

.home-factor-branch--learning .home-factor-copy h3,
.home-factor-branch--place .home-factor-copy h3 { margin-left: auto; }

.home-factor-copy p {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

.home-factor-branch ul {
  margin: 0;
  padding: 0;
  color: var(--label);
  display: flex;
  flex-wrap: wrap;
  align-content: start;
  gap: 7px 14px;
  font-size: 11px;
  line-height: 1.4;
  list-style: none;
}

.home-factor-branch li {
  position: relative;
  padding-left: 12px;
}

.home-factor-branch li::before {
  position: absolute;
  top: .68em;
  left: 0;
  width: 6px;
  height: 1px;
  background: var(--faint);
  content: "";
}

.home-factor-branch--learning ul,
.home-factor-branch--place ul { justify-content: flex-end; }

.home-factor-action {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  gap: 9px;
  color: var(--text);
  font-size: 12px;
  font-weight: 720;
  text-decoration: none;
}

.home-factor-branch--learning .home-factor-action,
.home-factor-branch--place .home-factor-action { justify-self: end; }

.home-factor-branch::after {
  position: absolute;
  top: 50%;
  width: clamp(30px, 4vw, 62px);
  height: 1px;
  background: var(--home-rule);
  content: "";
}

.home-factor-branch--learning::after,
.home-factor-branch--place::after { right: calc(clamp(30px, 4vw, 62px) * -1); }
.home-factor-branch--admission::after,
.home-factor-branch--affordability::after { left: calc(clamp(30px, 4vw, 62px) * -1); }

.home-factor-center {
  grid-area: center;
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 300px;
  aspect-ratio: 1;
  display: grid;
  place-content: center;
  align-self: center;
  justify-self: center;
  gap: 9px;
  border: 1px solid var(--home-rule);
  border-radius: 50%;
  padding: clamp(28px, 3vw, 42px);
  text-align: center;
}

.home-factor-center__label {
  color: var(--hero-text) !important;
  font-size: 10px !important;
  font-weight: 780;
  letter-spacing: .12em;
}

.home-factor-center strong {
  font-family: var(--display-serif);
  font-size: clamp(28px, 3vw, 43px);
  font-weight: 600;
  letter-spacing: -.04em;
  line-height: 1.02;
}

.home-factor-center span,
.home-factor-center p {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.5;
}

.home-factor-center p {
  max-width: 25ch;
  margin: 3px auto 0;
}

.home-factor-branch--outcomes {
  position: relative;
  width: min(100%, 520px);
  justify-self: center;
  gap: 18px;
  border: 0;
  border-block: 1px solid var(--home-rule);
  border-radius: 0;
  background: transparent;
  padding: 25px 20px 23px;
  text-align: center;
}

.home-factor-branch--outcomes::before {
  position: absolute;
  bottom: 100%;
  left: 50%;
  width: 1px;
  height: 23px;
  background: var(--home-rule);
  content: "";
}

.home-factor-branch--outcomes::after { display: none; }
.home-factor-branch--outcomes .home-factor-copy {
  display: grid;
  gap: 14px;
  justify-items: center;
}

.home-factor-branch--outcomes .home-factor-copy p {
  margin-top: 0;
  line-height: 1.6;
}

.home-factor-branch--outcomes .home-factor-copy h3::after {
  position: absolute;
  right: 0;
  bottom: -8px;
  left: 0;
  width: auto;
  height: 1px;
  background: color-mix(in srgb, var(--hero) 78%, transparent);
  content: "";
}

.home-factor-branch--outcomes ul {
  width: min(100%, 430px);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 28px;
  justify-content: initial;
  justify-self: center;
  font-size: 11.5px;
  line-height: 1.55;
  text-align: left;
}

.home-factor-branch--outcomes li::before {
  width: 5px;
  background: color-mix(in srgb, var(--hero) 46%, var(--faint));
}

.home-factor-branch--outcomes .home-factor-action {
  min-height: 36px;
  justify-self: center;
}

.home-trust {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr) auto;
  gap: clamp(18px, 2.8vw, 34px);
  align-items: center;
  border-top: 1px solid var(--home-rule);
  padding: clamp(28px, 3.5vw, 44px) 0 clamp(34px, 4.5vw, 58px);
}

.home-trust > img {
  width: 58px;
  height: 58px;
  display: block;
  object-fit: contain;
}

:root[data-theme="dark"] .home-trust > img {
  box-sizing: border-box;
  border-radius: 12px;
  background: #f7f6f1;
  padding: 8px;
}

.home-trust h2 {
  margin: 0;
  font-family: var(--display-serif);
  font-size: clamp(27px, 3.1vw, 44px);
  font-weight: 600;
  letter-spacing: -.035em;
}

.home-trust p {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
}

@media (max-width: 980px) {
  .home-hero {
    min-height: 610px;
    grid-template-columns: minmax(0, 1fr) minmax(240px, .62fr);
    gap: 40px;
  }

  .home-hero h1 { font-size: clamp(50px, 7.5vw, 74px); }
  .home-hero__mark { width: min(100%, 320px); }

  .home-factor-map {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas:
      "center center"
      "learning admission"
      "place affordability"
      "outcomes outcomes";
    gap: 18px 28px;
    margin-top: 36px;
    padding-top: 0;
  }

  .home-factor-center {
    width: 100%;
    max-width: none;
    aspect-ratio: auto;
    grid-template-columns: minmax(190px, .75fr) minmax(0, 1fr);
    place-content: initial;
    align-items: center;
    gap: 5px 28px;
    border-radius: 24px;
    padding: 22px 26px;
    text-align: left;
  }

  .home-factor-center__label,
  .home-factor-center strong { grid-column: 1; }
  .home-factor-center > span:not(.home-factor-center__label),
  .home-factor-center p { grid-column: 2; }
  .home-factor-center p { max-width: 42ch; margin: 0; }

  .home-factor-branch,
  .home-factor-branch--learning,
  .home-factor-branch--place { text-align: left; }
  .home-factor-branch--learning .home-factor-copy h3,
  .home-factor-branch--place .home-factor-copy h3 { margin-left: 0; }
  .home-factor-branch--learning ul,
  .home-factor-branch--place ul { justify-content: flex-start; }
  .home-factor-branch--learning .home-factor-action,
  .home-factor-branch--place .home-factor-action { justify-self: start; }
  .home-factor-branch::after,
  .home-factor-branch--outcomes::before { display: none; }
  .home-factor-branch--outcomes { width: min(100%, 620px); justify-self: center; }
}

@media (max-width: 700px) {
  .product-route-view.is-home-route { padding-inline: clamp(16px, 4.6vw, 22px); }

  .home-hero {
    position: relative;
    min-height: auto;
    grid-template-columns: 1fr;
    gap: 0;
    padding: clamp(40px, 9vw, 54px) 0 52px;
    overflow: hidden;
  }

  .home-hero h1 {
    max-width: 9.5ch;
    font-size: clamp(46px, 13vw, 60px);
    letter-spacing: -.045em;
  }
  .home-hero__intro { max-width: 32ch; font-size: 13px; line-height: 1.7; }
  .home-hero__adjust { margin-top: 24px; font-size: 12px; }
  .home-hero__actions { gap: 14px 22px; }
  .home-hero__mark {
    position: absolute;
    top: 28px;
    right: -62px;
    width: 218px;
    opacity: .1;
  }
  .home-hero__mark img { width: 54%; height: 54%; }

  .home-start,
  .home-factor-section { padding: 48px 0; }

  .home-factor-section { padding-bottom: 32px; }

  .home-start > header {
    grid-template-columns: 1fr;
    gap: 18px;
    margin-bottom: 28px;
  }

  .home-start > header h2,
  .home-factor-heading h2 { font-size: clamp(36px, 10.5vw, 48px); }

  html[lang^="en"] .home-hero h1 {
    max-width: 12ch;
    font-size: clamp(40px, 11vw, 48px);
    line-height: .98;
  }

  html[lang^="en"] .home-start > header h2,
  html[lang^="en"] .home-factor-heading h2 {
    max-width: 18ch;
    font-size: clamp(34px, 9vw, 42px);
  }

  .home-start > header p,
  .home-factor-heading > p:last-child { font-size: 13px; line-height: 1.65; }

  .home-start-row {
    min-height: clamp(118px, 34vw, 132px);
    grid-template-columns: clamp(54px, 15vw, 66px) minmax(0, 1fr) 26px;
    gap: 16px;
    padding-inline: 0;
  }

  .home-start-row__number { font-size: 52px; }
  .home-start-row__copy strong { font-size: 27px; }
  .home-start-row__copy small { font-size: 12px; }
  .home-start-row > .home-link-arrow { width: 24px; height: 24px; }

  .home-factor-map {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas:
      "center center"
      "learning admission"
      "place affordability"
      "outcomes outcomes";
    gap: 14px 12px;
    margin-top: 28px;
  }

  .home-factor-center {
    grid-template-columns: 1fr;
    gap: 6px;
    border-radius: 18px;
    padding: 18px;
  }

  .home-factor-center__label,
  .home-factor-center strong,
  .home-factor-center > span:not(.home-factor-center__label),
  .home-factor-center p { grid-column: 1; }
  .home-factor-center strong { font-size: clamp(28px, 8vw, 36px); }
  .home-factor-center p { margin-top: 2px; }

  .home-factor-branch,
  .home-factor-branch--learning,
  .home-factor-branch--place {
    min-height: 180px;
    gap: 12px;
    border-block: 0;
    border-top: 1px solid var(--home-rule);
    padding: 16px 0 14px;
    text-align: left;
  }

  .home-factor-branch--admission,
  .home-factor-branch--affordability {
    border-left: 1px solid var(--home-rule);
    padding-left: 14px;
  }

  .home-factor-copy h3 { font-size: clamp(22px, 6.2vw, 27px); }
  html[lang^="en"] .home-factor-copy h3 {
    overflow-wrap: normal;
    word-break: normal;
    font-size: clamp(18px, 5vw, 22px);
    letter-spacing: -.025em;
  }
  .home-factor-copy p { font-size: 11.25px; line-height: 1.48; }
  .home-factor-branch ul { display: grid; gap: 4px; font-size: 11px; line-height: 1.45; }
  .home-factor-branch li { padding-left: 10px; }
  .home-factor-action { min-height: 32px; gap: 5px; font-size: 11.5px; }
  .home-factor-action .home-link-arrow { width: 17px; height: 17px; }

  .home-factor-branch--outcomes {
    min-height: 0;
    gap: 16px;
    margin-top: 8px;
    border-top: 1px solid var(--home-rule);
    border-bottom: 1px solid var(--home-rule);
    padding: 22px 14px 20px;
  }

  .home-factor-branch--outcomes .home-factor-copy { gap: 13px; }
  .home-factor-branch--outcomes .home-factor-copy p { line-height: 1.58; }
  .home-factor-branch--outcomes ul {
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 18px;
    font-size: 11px;
    line-height: 1.5;
  }
  .home-factor-branch--outcomes li {
    border: 0;
    padding: 0 0 0 10px;
    text-align: left;
  }
  .home-factor-branch--outcomes li::before { display: block; }

  .home-trust {
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 12px 16px;
    align-items: start;
    padding: 26px 0 36px;
  }
  .home-trust > img { width: 44px; height: 44px; margin-top: 3px; }
  .home-trust > a { grid-column: 2; justify-self: start; }
}

@media (max-width: 420px) {
  .home-hero__actions { align-items: flex-start; flex-direction: column; }
  .home-hero__actions .primary-button { min-width: 150px; }
  .home-start-row { grid-template-columns: 50px minmax(0, 1fr) 22px; gap: 11px; }
  .home-start-row__number { font-size: 44px; }
  .home-start-row__copy strong { font-size: 24px; }
  .home-factor-map { gap-inline: 9px; }
  .home-factor-branch--admission,
  .home-factor-branch--affordability { padding-left: 9px; }
  .home-trust h2 { font-size: clamp(25px, 8vw, 31px); }
}

@media (max-width: 360px) {
  .home-hero h1 { max-width: 100%; font-size: clamp(43px, 14vw, 48px); }
  .home-start-row__copy small { font-size: 11.5px; line-height: 1.55; }
  .home-factor-center { padding: 16px; }
  .home-factor-center strong { font-size: 27px; }
  .home-factor-copy h3 { font-size: 21px; }
  .home-factor-copy p { font-size: 11px; }
  .home-factor-branch ul { font-size: 11px; }
  .home-factor-action { font-size: 11px; }
  .home-factor-branch--outcomes { padding-inline: 8px; }
  html[lang^="en"] .home-factor-branch--outcomes ul { grid-template-columns: 1fr; }
  html[lang^="en"] .home-factor-copy h3 { font-size: 17px; }
}

@media (prefers-reduced-motion: reduce) {
  .home-link-arrow,
  .home-link-arrow img,
  .home-start-row,
  .home-start-row > .home-link-arrow::after { transition: none; }
}

/* Rating centre: an experience layer that sits beside, never on top of, source facts. */
.community-page-header {
  padding-bottom: clamp(26px, 3.6vw, 48px);
}

.community-page-header__aside {
  display: grid;
  justify-items: end;
  gap: 18px;
  align-content: end;
}

.community-page-header__aside strong {
  color: var(--hero-text);
  font-family: var(--display-serif);
  font-size: 18px;
  font-variant-numeric: tabular-nums;
}

.community-intro-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(250px, .65fr);
  gap: clamp(26px, 5vw, 90px);
  align-items: stretch;
  margin: clamp(26px, 3.5vw, 48px) 0 0;
}

.community-intro-grid .community-intro {
  max-width: none;
  margin: 0;
  align-self: stretch;
  padding-block: 15px;
  font-size: clamp(13px, 1.2vw, 17px);
  line-height: 1.7;
}

.community-intro-note {
  display: grid;
  align-content: center;
  gap: 9px;
  border-block: 1px solid var(--grid);
  padding: 17px 0;
}

.community-intro-note span,
.community-review-header__source span,
.community-review-header__source small,
.community-review-trust span {
  color: var(--muted);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.community-intro-note strong {
  max-width: 29ch;
  font-size: 13px;
  line-height: 1.5;
}

.community-workflow {
  margin-top: clamp(40px, 6vw, 82px);
  border-block: 1px solid var(--grid);
  padding: clamp(28px, 4vw, 52px) 0 0;
}

.community-workflow > header,
.community-site-connection {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(250px, .9fr);
  gap: clamp(26px, 5vw, 90px);
  align-items: start;
}

.community-workflow > header h2,
.community-site-connection h2 {
  max-width: 13ch;
  margin: 8px 0 0;
  font-family: var(--display-serif);
  font-size: clamp(28px, 3.5vw, 50px);
  font-weight: 600;
  letter-spacing: -.04em;
  line-height: 1;
}

.community-workflow > header > p,
.community-site-connection__intro > p:last-child {
  max-width: 38ch;
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.65;
}

.community-workflow ol {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: clamp(28px, 4vw, 48px) 0 0;
  padding: 0;
  border-top: 1px solid var(--grid);
  list-style: none;
}

.community-workflow li {
  min-height: 190px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 18px;
  align-content: start;
  padding: 22px 22px 28px 0;
}

.community-workflow li + li {
  border-left: 1px solid var(--grid);
  padding-left: 22px;
}

.community-workflow li > span,
.community-site-connection__links a > span {
  color: var(--hero-text);
  font-family: var(--display-serif);
  font-size: 18px;
  font-variant-numeric: tabular-nums;
}

.community-workflow h3 {
  margin: 0;
  font-family: var(--display-serif);
  font-size: clamp(22px, 2.3vw, 32px);
  font-weight: 600;
  line-height: 1.08;
}

.community-workflow li p {
  max-width: 28ch;
  margin: 12px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.6;
}

.community-targets {
  margin-top: clamp(34px, 5vw, 68px);
  border: 0;
  border-block: 1px solid var(--grid);
}

.community-target-tab {
  position: relative;
  min-height: 126px;
  grid-template-columns: auto 1fr auto;
  grid-template-rows: auto auto;
  align-content: space-between;
  gap: 8px 14px;
  border-right: 1px solid var(--grid);
  padding: 18px 18px 20px;
  transition: background-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.community-target-tab:hover,
.community-target-tab:focus-visible {
  background: color-mix(in srgb, var(--hero) 10%, transparent);
  color: var(--text);
}

.community-target-tab__index {
  color: var(--hero-text);
  font-family: var(--display-serif);
  font-size: 17px;
  font-variant-numeric: tabular-nums;
}

.community-target-tab strong {
  align-self: end;
  font-family: var(--display-serif);
  font-size: clamp(22px, 2.3vw, 34px);
  font-weight: 600;
  line-height: 1;
}

.community-target-tab small {
  grid-column: 2 / 3;
  align-self: end;
  font-size: 9px;
}

.community-target-tab__arrow {
  grid-column: 3;
  grid-row: 1 / -1;
  align-self: center;
  color: var(--hero-text);
  font-size: 24px;
  line-height: 1;
}

.community-target-tab[aria-current="page"] {
  background: var(--text);
  color: var(--paper);
}

.community-target-tab[aria-current="page"] .community-target-tab__index,
.community-target-tab[aria-current="page"] .community-target-tab__arrow {
  color: var(--hero);
}

.community-finder-panel {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  gap: 24px clamp(26px, 5vw, 90px);
  align-items: end;
  margin-top: clamp(30px, 4vw, 54px);
  border-bottom: 1px solid var(--grid);
  padding: 0 0 clamp(26px, 3.6vw, 44px);
}

.community-finder-panel header h2,
.community-blocked h2 {
  max-width: 14ch;
  margin: 7px 0 0;
  font-family: var(--display-serif);
  font-size: clamp(28px, 3.2vw, 45px);
  font-weight: 600;
  letter-spacing: -.035em;
  line-height: 1.02;
}

.community-finder-panel header > p:last-child {
  max-width: 34ch;
  margin: 15px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
}

.community-finder-panel .community-search {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  max-width: none;
  margin: 0;
}

.community-finder-panel .community-search label {
  min-width: 0;
}

.community-search-help,
.community-scope {
  grid-column: 2;
  margin: -8px 0 0;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.5;
}

.community-scope {
  grid-row: 3;
}

.community-blocked {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 26px;
  align-items: end;
  margin-top: clamp(30px, 4vw, 54px);
  border-block: 1px solid var(--grid);
  padding: 30px 0 34px;
}

.community-blocked p:last-child {
  max-width: 50ch;
  margin: 16px 0 0;
}

.community-blocked__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}

.community-results {
  margin-top: clamp(34px, 5vw, 62px);
}

.community-results-heading {
  padding-bottom: 20px;
}

.community-result {
  grid-template-columns: minmax(0, 1.35fr) minmax(150px, .55fr) auto;
  gap: clamp(20px, 3vw, 48px);
  min-height: 108px;
  padding: 22px 0;
}

.community-result__main {
  min-width: 0;
}

.community-result__context {
  display: grid;
  gap: 6px;
  align-content: center;
}

.community-result__context span {
  color: var(--muted);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.community-result__context strong {
  font-size: 12px;
}

.community-result .primary-button {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  white-space: nowrap;
}

.community-result .primary-button span {
  color: currentColor;
  font-size: 17px;
  line-height: 1;
}

.community-site-connection {
  margin-top: clamp(48px, 7vw, 96px);
  border-block: 1px solid var(--grid);
  padding: clamp(28px, 4vw, 54px) 0;
}

.community-site-connection h2 {
  max-width: 15ch;
}

.community-site-connection__intro > p:last-child {
  margin-top: 18px;
}

.community-site-connection__links {
  display: grid;
  border-top: 1px solid var(--grid);
}

.community-site-connection__links a {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 15px;
  align-items: center;
  min-height: 72px;
  border-bottom: 1px solid var(--grid);
  color: inherit;
  text-decoration: none;
}

.community-site-connection__links a:hover strong,
.community-site-connection__links a:focus-visible strong {
  text-decoration: underline;
  text-decoration-color: var(--hero);
  text-underline-offset: 4px;
}

.community-site-connection__links a div {
  display: grid;
  gap: 4px;
}

.community-site-connection__links strong {
  font-size: 13px;
}

.community-site-connection__links small {
  color: var(--muted);
  font-size: 10px;
}

.community-site-connection__links img {
  width: 16px;
  height: 16px;
}

.community-moderation {
  margin-top: 36px;
}

.community-review-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(180px, .32fr);
  gap: 28px clamp(30px, 6vw, 96px);
  align-items: end;
  max-width: none;
  margin-top: clamp(28px, 4vw, 54px);
  padding-bottom: clamp(26px, 3.4vw, 46px);
}

.community-review-header h1 {
  max-width: 100%;
  margin: 8px 0 14px;
  text-wrap: balance;
}

.community-review-header__source {
  display: grid;
  gap: 8px;
  align-content: end;
  border-top: 2px solid var(--hero);
  padding-top: 14px;
}

.community-review-header__source strong {
  font-family: var(--display-serif);
  font-size: clamp(23px, 2.4vw, 34px);
  font-weight: 600;
}

.community-review-layout {
  grid-template-columns: minmax(0, 1fr) minmax(280px, 350px);
  gap: clamp(34px, 6vw, 94px);
  margin-top: clamp(34px, 5vw, 64px);
}

.community-review-rail {
  position: sticky;
  top: 104px;
  display: grid;
  align-content: start;
  gap: 26px;
}

.community-section-heading {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: end;
}

.community-section-heading h2 {
  margin: 8px 0 0;
  font-family: var(--display-serif);
  font-size: clamp(27px, 3vw, 42px);
  font-weight: 600;
  line-height: 1.02;
}

.community-section-heading > p,
.community-section-heading > span {
  max-width: 30ch;
  margin: 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.5;
  text-align: right;
}

.review-page-form {
  max-width: none;
  margin-top: 30px;
  border-top: 1px solid var(--grid);
  padding-top: 2px;
}

.review-slider-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 30px;
}

.review-dimension {
  position: relative;
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 9px 12px;
  align-content: start;
  border-bottom: 1px solid var(--grid);
  padding: 20px 0 22px;
  font-size: 12px;
  font-weight: 750;
}

.review-dimension__index {
  color: var(--hero-text);
  font-family: var(--display-serif);
  font-size: 16px;
  font-variant-numeric: tabular-nums;
}

.review-dimension__label {
  align-self: center;
}

.review-dimension output {
  color: var(--hero-text);
  font-variant-numeric: tabular-nums;
}

.review-dimension input[type="range"] {
  grid-column: 1 / -1;
  width: 100%;
  min-height: 32px;
  accent-color: var(--hero);
}

.review-dimension__hint {
  grid-column: 1 / 3;
  color: var(--muted);
  font-size: 9px;
  font-weight: 500;
  letter-spacing: .02em;
}

.review-dimension__scale {
  grid-column: 1 / -1;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: var(--muted);
  font-size: 9px;
  font-weight: 500;
}

.review-text {
  gap: 8px;
  margin-top: 24px;
}

.review-text textarea {
  min-height: 132px;
  border: 1px solid var(--grid);
  border-radius: var(--control-radius);
  background: transparent;
}

.review-consent {
  margin-top: 2px;
}

.community-form-boundary {
  max-width: 760px;
  margin: 18px 0 0;
  border-left: 2px solid var(--hero);
  padding: 8px 0 8px 14px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.55;
}

#review-page-status {
  max-width: 70ch;
  margin: 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.5;
}

#review-page-status[data-state="pending"] {
  color: var(--hero-text);
}

#review-page-status[data-state="error"] {
  color: var(--danger, #d4492b);
}

.community-review-summary,
.community-review-trust {
  border-top: 2px solid var(--hero);
  padding-top: 16px;
}

.community-review-summary h2 {
  margin: 8px 0 24px;
  font-family: var(--display-serif);
  font-size: clamp(26px, 2.8vw, 39px);
  font-weight: 600;
  line-height: 1.05;
}

.community-empty-copy,
.community-review-trust p {
  margin: 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.6;
}

.community-dimension-list {
  display: grid;
  gap: 18px;
}

.community-dimension-row {
  display: grid;
  gap: 8px;
}

.community-dimension-row__head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: var(--muted);
  font-size: 10px;
}

.community-dimension-row__head strong {
  color: var(--text);
  font-variant-numeric: tabular-nums;
}

.community-dimension-meter {
  height: 5px;
  overflow: hidden;
  background: color-mix(in srgb, var(--grid) 70%, transparent);
}

.community-dimension-meter i {
  display: block;
  width: var(--rating-fill);
  height: 100%;
  background: var(--hero);
}

.community-dimension-row.is-empty .community-dimension-meter i {
  width: 0;
}

.community-review-trust {
  display: grid;
  gap: 10px;
  border-top-color: var(--grid);
  padding: 22px 0 0;
}

.community-review-trust strong {
  font-family: var(--display-serif);
  font-size: 21px;
  font-weight: 600;
  line-height: 1.12;
}

.community-identity {
  margin-top: 32px;
}

.community-identity summary {
  justify-content: space-between;
  gap: 12px;
  font-size: 11px;
}

.community-identity summary span {
  color: var(--hero-text);
  font-family: var(--display-serif);
  font-size: 20px;
}

.community-identity > div {
  align-items: start;
}

.community-identity .secondary-button {
  align-self: end;
}

.approved-review-section {
  margin-top: 58px;
}

.approved-review-section > div:not(.community-section-heading) {
  display: grid;
  margin-top: 22px;
  border-top: 1px solid var(--grid);
}

.approved-review {
  grid-template-columns: minmax(0, 1.1fr) minmax(220px, .9fr);
  gap: 30px;
  padding: 25px 0;
}

.approved-review__copy {
  display: grid;
  align-content: start;
  gap: 15px;
}

.approved-review__copy > p {
  margin: 0;
  font-size: 13px;
  line-height: 1.65;
}

.approved-review__copy time {
  color: var(--muted);
  font-size: 10px;
}

.approved-review__scores {
  display: grid;
  gap: 12px;
  align-content: start;
}

.community-dimension-row.is-compact {
  gap: 5px;
}

.community-dimension-row.is-compact .community-dimension-row__head {
  font-size: 9px;
}

.route-error.community-route-error {
  max-width: 1040px;
}

.community-error-boundary {
  max-width: 780px;
  margin-top: 32px;
}

.community-error-actions {
  align-items: center;
  margin-top: 32px;
}

@media (max-width: 900px) {
  .community-intro-grid,
  .community-workflow > header,
  .community-site-connection,
  .community-finder-panel,
  .community-review-header,
  .community-review-layout {
    grid-template-columns: 1fr;
  }

  .community-intro-note {
    border-top: 0;
  }

  .community-workflow > header h2,
  .community-site-connection h2,
  .community-finder-panel header h2 {
    max-width: none;
  }

  .community-workflow ol {
    grid-template-columns: 1fr;
  }

  .community-workflow li {
    min-height: 0;
    padding-right: 0;
  }

  .community-workflow li + li {
    border-top: 1px solid var(--grid);
    border-left: 0;
    padding-left: 0;
  }

  .community-finder-panel .community-search {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .community-search-help,
  .community-scope {
    grid-column: 1 / -1;
  }

  .community-blocked {
    grid-template-columns: 1fr;
  }

  .community-blocked__actions {
    justify-content: flex-start;
  }

  .community-review-rail {
    position: static;
    grid-row: 1;
  }

.community-review-layout > .community-review-main {
    grid-row: 2;
  }
}

@media (max-width: 640px) {
  .community-page-header__aside {
    justify-items: start;
  }

  .community-targets {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .community-target-tab:nth-child(2n) {
    border-right: 0;
  }

  .community-target-tab:nth-last-child(-n + 2) {
    border-bottom: 0;
  }

  .community-finder-panel .community-search {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .community-finder-panel .community-search .primary-button {
    width: 100%;
  }

  .community-section-heading {
    display: grid;
    gap: 14px;
  }

  .community-section-heading > p,
  .community-section-heading > span {
    max-width: none;
    text-align: left;
  }

  .review-slider-grid {
    grid-template-columns: 1fr;
  }

  .review-dimension {
    padding-block: 18px 20px;
  }

  .approved-review {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .community-site-connection__links a {
    min-height: 66px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .community-target-tab {
    transition: none;
  }
}

/* Centred product chrome and modal language selection. */
.app-header {
  grid-template-columns: minmax(240px, 288px) minmax(0, 700px) minmax(240px, 288px);
  justify-content: center;
  gap: clamp(14px, 1.7vw, 24px);
  padding-inline: max(var(--gutter), calc((100vw - var(--content)) / 2 + var(--gutter)));
}

.app-header .brand {
  justify-self: start;
  width: clamp(244px, 20vw, 288px);
  max-width: 288px;
}

.primary-nav {
  justify-self: center;
  justify-content: center;
  width: 100%;
}

.locale-button {
  justify-self: end;
  min-width: 86px;
  min-height: 44px;
  border-color: color-mix(in srgb, var(--text) 78%, transparent);
  border-radius: 999px;
  padding-inline: 18px;
  letter-spacing: 0;
}

.language-dialog {
  width: min(calc(100% - 36px), 560px);
  max-width: 560px;
  margin: auto;
  padding: 0;
  border: 1px solid color-mix(in srgb, var(--text) 22%, transparent);
  border-radius: 18px;
  background: var(--paper);
  color: var(--text);
  box-shadow: 0 24px 80px rgba(20, 20, 18, .22);
}

.language-dialog::backdrop {
  background: rgba(20, 20, 18, .42);
  backdrop-filter: blur(3px);
}

.language-dialog__panel {
  display: grid;
  gap: 24px;
  padding: clamp(24px, 4vw, 36px);
}

.language-dialog__header {
  display: flex;
  gap: 24px;
  align-items: flex-start;
  justify-content: space-between;
}

.language-dialog__header h2 {
  margin: 4px 0 0;
  font-family: var(--display-serif);
  font-size: clamp(34px, 5vw, 48px);
  font-weight: 600;
  line-height: 1;
  letter-spacing: -.035em;
}

.language-dialog__close {
  min-width: 64px;
  min-height: 40px;
  border: 1px solid var(--grid);
  border-radius: 999px;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: 12px;
  font-weight: 750;
  cursor: pointer;
}

.language-dialog__copy {
  max-width: 440px;
  margin: -8px 0 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.65;
}

.language-options {
  display: grid;
  gap: 10px;
}

.language-option {
  display: flex;
  width: 100%;
  min-height: 76px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border: 1px solid var(--grid);
  border-radius: 12px;
  background: transparent;
  color: var(--text);
  padding: 15px 18px;
  text-align: left;
  cursor: pointer;
}

.language-option > span:first-child {
  display: grid;
  gap: 5px;
}

.language-option strong {
  font-size: 16px;
  line-height: 1.2;
}

.language-option small,
.language-option__state {
  color: var(--muted);
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .06em;
}

.language-option__state {
  border: 1px solid currentColor;
  border-radius: 999px;
  padding: 5px 9px;
}

.language-option:hover,
.language-option:focus-visible,
.language-option.is-current {
  border-color: var(--text);
  background: color-mix(in srgb, var(--text) 5%, transparent);
}

.language-dialog__close:hover,
.language-dialog__close:focus-visible {
  border-color: var(--text);
  color: var(--text);
}

@media (max-width: 1100px) {
  .app-header {
    min-height: 122px;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: 68px 52px;
    gap: 0 16px;
    padding-block: 0;
  }

  .app-header .brand {
    grid-column: 1;
    grid-row: 1;
    width: 232px;
    max-width: 232px;
    height: 64px;
  }

  .locale-button {
    grid-column: 2;
    grid-row: 1;
  }

  .primary-nav {
    grid-column: 1 / -1;
    grid-row: 2;
    width: min(100%, 760px);
    height: 52px;
    justify-content: center;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
  }

  .primary-nav::-webkit-scrollbar {
    display: none;
  }
}

@media (max-width: 640px) {
  .app-header {
    min-height: 114px;
    grid-template-rows: 64px 50px;
    gap: 0 10px;
    padding-inline: 16px;
  }

  .app-header .brand {
    width: clamp(180px, 54vw, 208px);
    max-width: 208px;
    height: 60px;
  }

  .locale-button {
    min-width: 76px;
    min-height: 40px;
    padding-inline: 14px;
  }

  .primary-nav {
    width: 100%;
    height: 50px;
    justify-content: flex-start;
  }

  .product-route-view {
    min-height: calc(100vh - 114px);
  }

  .language-dialog {
    width: calc(100% - 24px);
    max-height: calc(100dvh - 24px);
    border-radius: 16px;
  }

  .language-dialog__panel {
    gap: 20px;
    padding: 24px 20px 20px;
  }

  .language-dialog__header {
    gap: 16px;
  }

  .language-dialog__header h2 {
    font-size: 38px;
  }

  .language-option {
    min-height: 70px;
    padding: 14px 15px;
  }
}

@media (max-width: 360px) {
  .app-header .brand {
    width: 180px;
  }

  .locale-button {
    min-width: 72px;
    padding-inline: 12px;
  }
}

/* DegreeSignal language and appearance dialog — Lumina interaction, native identity. */
.language-dialog {
  width: min(700px, calc(100% - 32px));
  max-width: none;
  max-height: min(720px, calc(100dvh - 32px));
  margin: auto;
  padding: 0;
  border: 0;
  overflow: visible;
  background: transparent;
  color: var(--text);
}

.language-dialog::backdrop {
  background: rgba(20, 18, 15, 0.5);
  backdrop-filter: blur(8px);
}

.language-dialog:focus { outline: none; }

.language-dialog__panel {
  position: relative;
  z-index: 1;
  display: block;
  gap: 0;
  overflow: hidden;
  padding: 0;
  border: 1px solid var(--grid);
  border-radius: 20px;
  background: var(--surface-strong);
  box-shadow: 0 30px 90px rgba(24, 21, 17, 0.22);
  color: var(--text);
  transition: background-color 420ms ease, border-color 320ms ease, color 320ms ease;
}

.language-dialog__content {
  max-height: min(720px, calc(100dvh - 32px));
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 23px 26px 24px;
  scrollbar-gutter: stable;
}

.language-dialog__header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 16px;
}

.language-dialog__intro { min-width: 0; }

.language-dialog__brand {
  width: 193px;
  height: 46px;
  display: block;
  object-fit: contain;
  object-position: left center;
}

.language-dialog__header h2 {
  margin: 9px 0 0;
  font-family: var(--display-serif);
  font-size: clamp(35px, 4.2vw, 43px);
  font-weight: 600;
  letter-spacing: -0.05em;
  line-height: 1.02;
}

.language-dialog__copy {
  max-width: 520px;
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}

.language-dialog__close {
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  position: relative;
  padding: 0;
  border: 0;
  border-radius: 8px;
  display: grid;
  place-items: center;
  background: transparent;
  color: var(--text);
  cursor: pointer;
  isolation: isolate;
  transition: background-color 180ms ease, transform 220ms ease;
}

.language-dialog__close-frame,
.language-dialog__close-x {
  grid-area: 1 / 1;
}

.language-dialog__close-frame {
  width: 40px;
  height: 40px;
  position: relative;
  display: block;
  color: var(--text);
  opacity: .76;
}

.language-dialog__close-corner {
  width: 9px;
  height: 9px;
  position: absolute;
  border-color: currentColor;
  border-style: solid;
}

.language-dialog__close-corner--top-left { top: 1px; left: 1px; border-width: 2px 0 0 2px; }
.language-dialog__close-corner--top-right { top: 1px; right: 1px; border-width: 2px 2px 0 0; }
.language-dialog__close-corner--bottom-left { bottom: 1px; left: 1px; border-width: 0 0 2px 2px; }
.language-dialog__close-corner--bottom-right { right: 1px; bottom: 1px; border-width: 0 2px 2px 0; }

.language-dialog__close-x {
  width: 17px;
  height: 17px;
  position: relative;
  z-index: 1;
  transform-origin: center;
  transition: transform 320ms cubic-bezier(.22, 1, .36, 1);
}

.language-dialog__close-x::before,
.language-dialog__close-x::after {
  content: "";
  width: 18px;
  height: 1.7px;
  position: absolute;
  top: 50%;
  left: 50%;
  border-radius: 999px;
  background: currentColor;
  transform-origin: center;
}

.language-dialog__close-x::before {
  background: var(--hero);
  transform: translate(-50%, -50%) rotate(45deg);
}

.language-dialog__close-x::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.language-dialog__close:hover,
.language-dialog__close:focus-visible {
  background: transparent;
}

.language-dialog__close:hover .language-dialog__close-x,
.language-dialog__close:focus-visible .language-dialog__close-x {
  transform: rotate(90deg) scale(.9);
}

.language-settings-section { margin-top: 18px; }

.language-settings-section + .language-settings-section {
  margin-top: 17px;
  padding-top: 15px;
  border-top: 1px solid var(--grid);
}

.language-settings-section h3 {
  margin: 0 0 8px;
  color: var(--label);
  font-size: 12px;
  font-weight: 780;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.language-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.language-option,
.theme-option {
  border: 1px solid var(--grid);
  background: transparent;
  color: var(--text);
  transition: transform 180ms ease, background-color 280ms ease, border-color 280ms ease, box-shadow 280ms ease;
}

.language-option:disabled {
  cursor: not-allowed;
  opacity: .5;
}

.language-option:disabled:hover {
  transform: none;
  border-color: var(--grid);
  background: transparent;
}

.language-option[dir="rtl"] { text-align: right; }
.language-option[dir="rtl"] .language-option__check { order: -1; }

.language-option {
  min-width: 0;
  min-height: 62px;
  padding: 10px 12px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  text-align: left;
}

.language-option:hover,
.theme-option:hover {
  transform: translateY(-1px);
  border-color: var(--faint);
  background: var(--surface);
}

.language-option.is-current,
.theme-option.is-current {
  border-color: color-mix(in srgb, var(--hero-text) 72%, var(--grid));
  background: color-mix(in srgb, var(--hero) 9%, var(--surface-strong));
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--hero) 16%, transparent);
}

.language-option__copy {
  min-width: 0;
  display: grid;
  gap: 4px;
}

.language-option strong { font-size: 15px; font-weight: 720; }
.language-option small { color: var(--muted); font-size: 11px; }

.language-option__check {
  width: 26px;
  height: 26px;
  border: 1px solid var(--faint);
  border-radius: 50%;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  color: transparent;
  transition: background-color 220ms ease, border-color 220ms ease, color 220ms ease, transform 220ms ease;
}

.language-option.is-current .language-option__check {
  border-color: var(--hero-text);
  background: var(--hero-text);
  color: #fff;
  transform: scale(1.04);
}

.language-confirm {
  min-height: 62px;
  padding: 10px 14px;
  border: 1px solid color-mix(in srgb, var(--hero-text) 78%, #1a1714);
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  background: var(--hero-text);
  color: #fff;
  text-align: left;
  box-shadow: 0 18px 38px color-mix(in srgb, var(--hero) 20%, transparent);
}

.language-confirm:hover,
.language-confirm:focus-visible { background: color-mix(in srgb, var(--hero-text) 88%, #151310); }

.language-confirm__copy { display: grid; gap: 3px; }
.language-confirm strong { font-size: 17px; font-weight: 780; }
.language-confirm small { color: rgba(255, 255, 255, 0.76); font-size: 11px; }

.theme-options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.theme-option {
  min-width: 0;
  min-height: 52px;
  padding: 9px 10px;
  border-radius: 12px;
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr) 15px;
  align-items: center;
  gap: 10px;
  text-align: left;
}

.theme-option > span:nth-child(2) { min-width: 0; font-size: 13px; font-weight: 680; }

.theme-option__check {
  opacity: 0;
  color: var(--hero-text);
  transform: scale(.72);
  transition: opacity 180ms ease, transform 180ms ease;
}

.theme-option.is-current .theme-option__check { opacity: 1; transform: scale(1); }

.ds-icon {
  width: 1em;
  height: 1em;
  display: block;
  flex: 0 0 auto;
  background: currentColor;
  -webkit-mask: center / contain no-repeat;
  mask: center / contain no-repeat;
}

.ds-icon-x { width: 22px; height: 22px; -webkit-mask-image: url("/icons/phosphor-x.svg"); mask-image: url("/icons/phosphor-x.svg"); }
.ds-icon-check { width: 15px; height: 15px; -webkit-mask-image: url("/icons/phosphor-check.svg"); mask-image: url("/icons/phosphor-check.svg"); }
.ds-icon-arrow { width: 21px; height: 21px; -webkit-mask-image: url("/icons/phosphor-arrow-right.svg"); mask-image: url("/icons/phosphor-arrow-right.svg"); }
.ds-icon-desktop { width: 19px; height: 19px; -webkit-mask-image: url("/icons/phosphor-desktop.svg"); mask-image: url("/icons/phosphor-desktop.svg"); }
.ds-icon-sun { width: 19px; height: 19px; -webkit-mask-image: url("/icons/phosphor-sun.svg"); mask-image: url("/icons/phosphor-sun.svg"); }
.ds-icon-moon { width: 19px; height: 19px; -webkit-mask-image: url("/icons/phosphor-moon.svg"); mask-image: url("/icons/phosphor-moon.svg"); }
.ds-icon-bookmark { width: 18px; height: 18px; -webkit-mask-image: url("/icons/phosphor-bookmark.svg"); mask-image: url("/icons/phosphor-bookmark.svg"); }

.dust-text {
  width: 100%;
  min-height: 1.25em;
  position: relative;
  display: block;
  overflow: clip;
  line-height: inherit;
}

.dust-text__value { display: block; }
.dust-text.is-dusting .dust-text__value { opacity: 0; }

.dust-text__canvas {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  display: block;
  pointer-events: none;
}

.theme-transition-veil {
  width: 36px;
  height: 36px;
  position: fixed;
  z-index: 0;
  border-radius: 50%;
  pointer-events: none;
  opacity: 0;
}

html[data-theme-motion="dissolve"]::view-transition-old(root),
html[data-theme-motion="dissolve"]::view-transition-new(root) {
  animation-duration: 520ms;
  animation-fill-mode: both;
  mix-blend-mode: normal;
}

html[data-theme-motion="dissolve"]::view-transition-old(root) { animation-name: ds-theme-old-dissolve; }
html[data-theme-motion="dissolve"]::view-transition-new(root) { animation-name: ds-theme-new-dissolve; }

@keyframes ds-theme-old-dissolve { to { opacity: 0; } }
@keyframes ds-theme-new-dissolve { from { opacity: 0; } }

html[data-theme="dark"] .brand img,
html[data-theme="dark"] .language-dialog__brand,
html[data-theme="dark"] .footer-wordmark {
  border-radius: 0;
  background: transparent;
  padding: 0;
  filter: invert(1) hue-rotate(180deg);
}

html[data-theme="dark"] .comparison-workspace,
html[data-theme="dark"] .explore-workspace,
html[data-theme="dark"] .product-route-card,
html[data-theme="dark"] .route-card,
html[data-theme="dark"] .course-card {
  background-color: color-mix(in srgb, var(--surface-strong) 86%, transparent);
}

@media (max-width: 640px) {
  .language-dialog { width: calc(100% - 24px); max-height: calc(100dvh - 20px); }
  .language-dialog__panel { border-radius: 15px; }
  .language-dialog__content { max-height: calc(100dvh - 20px); padding: 16px 15px 15px; scrollbar-gutter: auto; }
  .language-dialog__header { gap: 10px; }
  .language-dialog__brand { width: 161px; height: 39px; }
  .language-dialog__header h2 { margin-top: 8px; font-size: clamp(28px, 7.8vw, 33px); }
  .language-dialog__copy { margin-top: 8px; font-size: 11.5px; line-height: 1.45; }
  .language-dialog__close { width: 39px; height: 39px; }
  .language-dialog__close { min-width: 39px; min-height: 39px; }
  .language-dialog__close-frame { width: 36px; height: 36px; }
  .language-settings-section { margin-top: 15px; }
  .language-settings-section + .language-settings-section { margin-top: 14px; padding-top: 12px; }
  .language-settings-section h3 { margin-bottom: 8px; }
  .language-options { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .theme-options { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .language-option,
  .language-confirm { min-height: 55px; padding: 9px 10px; }
  .language-option strong { font-size: 14px; }
  .language-option small { font-size: 10px; }
  .language-option__check { width: 24px; height: 24px; }
  .theme-option { min-height: 47px; grid-template-columns: 17px minmax(0, 1fr) 13px; gap: 6px; padding: 7px 8px; }
  .theme-option > span:nth-child(2) { font-size: 11px; }
}

@media (max-width: 420px) {
  .language-dialog { width: calc(100% - 20px); max-height: calc(100dvh - 16px); }
  .language-dialog__content { max-height: calc(100dvh - 16px); padding: 15px 13px 14px; }
  .language-dialog__brand { width: 156px; height: 38px; }
  .language-dialog__header h2 { font-size: 28px; }
  .language-dialog__copy { max-width: 30em; }
  .language-option,
  .language-confirm { min-height: 53px; }
}

@media (max-height: 820px) and (min-width: 641px) {
  .language-dialog__content { padding: 18px 26px 19px; }
  .language-dialog__brand { width: 184px; height: 44px; }
  .language-dialog__header h2 { margin-top: 8px; font-size: 37px; }
  .language-dialog__copy { margin-top: 8px; line-height: 1.45; }
  .language-settings-section { margin-top: 16px; }
  .language-settings-section + .language-settings-section { margin-top: 16px; padding-top: 14px; }
  .language-settings-section h3 { margin-bottom: 8px; }
  .language-options,
  .theme-options { gap: 8px; }
  .language-option { min-height: 58px; padding: 9px 12px; }
  .language-confirm { min-height: 58px; padding: 9px 12px; }
  .theme-option { min-height: 48px; padding-block: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  .language-dialog__panel,
  .language-option,
  .theme-option,
  .language-option__check,
  .theme-option__check,
  body { transition-duration: 0.001ms !important; }
}

body:has(.language-dialog[open]) {
  overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
  .locale-button,
  .language-option,
  .language-dialog__close {
    transition: none;
  }
}

@media (max-width: 640px) {
  .primary-nav {
    gap: 0;
    justify-content: space-between;
  }

  .nav-link,
  .product-nav-link {
    flex: 0 0 auto;
    min-width: 0;
    padding-inline: 4px;
    font-size: 9px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .nav-link::after,
  .product-nav-link::after {
    transition: none;
  }
}

/* Full-site visual system closure: one editorial shell across product and legacy routes. */
:root {
  --content: 1480px;
  --gutter: clamp(24px, 3.5vw, 56px);
  --control-radius: 6px;
}

.app-header {
  min-height: 82px;
  grid-template-columns: minmax(270px, 310px) minmax(0, 1fr) auto;
  gap: clamp(18px, 2vw, 32px);
  border-bottom-color: color-mix(in srgb, var(--grid) 86%, transparent);
  padding-inline: var(--gutter);
}

.app-header .brand {
  width: clamp(250px, 20vw, 300px);
  max-width: 300px;
  height: 70px;
}

.app-header .brand img {
  width: 100%;
  max-width: 100%;
  height: auto;
}

.primary-nav {
  height: 82px;
  justify-content: flex-end;
  gap: 0;
}

.nav-link,
.product-nav-link {
  min-height: 82px;
  padding-inline: clamp(10px, 1.05vw, 18px);
  font-size: 12px;
  letter-spacing: .015em;
}

.locale-button {
  min-width: 58px;
  min-height: 40px;
  border: 1px solid var(--text);
  border-radius: var(--control-radius);
  background: transparent;
  color: var(--text);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .06em;
  padding: 0 13px;
  transition: background-color 160ms ease, color 160ms ease;
}

.locale-button:hover,
.locale-button:focus-visible {
  background: var(--text);
  color: var(--paper);
}

.product-route-view {
  min-height: calc(100vh - 82px);
  padding: clamp(38px, 4.4vw, 66px) var(--gutter) clamp(72px, 8vw, 118px);
}

.product-route-view.is-global-map-route {
  padding-bottom: clamp(72px, 8vw, 118px);
}

.product-page-header {
  gap: clamp(24px, 4vw, 58px);
  padding: 6px 0 clamp(24px, 3vw, 40px);
}

.product-page-header h1 {
  max-width: 980px;
  font-size: clamp(42px, 5vw, 72px);
  line-height: 1.01;
}

.product-page-header > div > p:last-child {
  max-width: 780px;
  font-size: clamp(14px, 1.25vw, 18px);
  line-height: 1.65;
}

.explore-hub {
  gap: clamp(36px, 4.5vw, 64px);
}

.explore-hub-hero {
  max-width: 960px;
  padding-top: clamp(24px, 3vw, 44px);
}

.explore-hub-hero h1 {
  max-width: 900px;
  font-size: clamp(48px, 6vw, 82px);
  line-height: .98;
}

.explore-hub-hero > p:last-child {
  max-width: 680px;
  line-height: 1.65;
}

.explore-entry {
  min-height: 250px;
  gap: 22px;
  padding: clamp(26px, 2.7vw, 38px);
}

.explore-entry h2,
.priority-entry h2 {
  line-height: 1.08;
}

.explore-entry p,
.priority-entry p {
  font-size: 14px;
  line-height: 1.65;
}

.primary-button,
.secondary-button,
.add-course-button {
  min-height: 48px;
  border-radius: var(--control-radius);
  padding-inline: 19px;
}

.route-section-nav {
  min-height: 58px;
  margin-bottom: clamp(32px, 4vw, 54px);
}

.route-section-nav a {
  min-height: 58px;
  font-size: 12px;
}

.product-search {
  max-width: 1080px;
  gap: 14px;
}

.product-search input,
.product-search select,
.review-text textarea {
  min-height: 50px;
  border-radius: var(--control-radius);
  padding-inline: 14px;
}

.entity-card,
.location-list article {
  min-height: 228px;
  padding: clamp(22px, 2.5vw, 34px);
}

.entity-card h2,
.location-list h3 {
  font-size: clamp(23px, 2.3vw, 34px);
}

.product-chart,
.product-map {
  margin-top: clamp(48px, 6vw, 88px);
  padding-top: clamp(26px, 3vw, 40px);
}

.product-chart figcaption h2,
.product-map figcaption h2,
.product-section-heading {
  font-size: clamp(30px, 3.6vw, 50px);
}

.view-panel {
  padding-block: clamp(40px, 5vw, 72px) clamp(72px, 8vw, 112px);
}

.page-intro {
  min-height: 180px;
  padding: 12px 0 36px;
}

.page-intro h1 {
  max-width: 980px;
  font-size: clamp(44px, 5vw, 70px);
}

.section-brand-mark {
  display: none;
}

.comparison-workspace,
.explore-workspace {
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.workspace-toolbar {
  min-height: 72px;
  padding: 14px clamp(18px, 2vw, 28px);
}

.comparison-figure {
  padding: clamp(24px, 3vw, 38px);
}

.route-error {
  max-width: 980px;
}

.route-error-header h1 {
  max-width: 760px;
}

.route-error-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  padding-top: 28px;
}

.route-error-actions .product-button-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.route-error.is-service-state {
  width: 100%;
  max-width: none;
  padding: clamp(44px, 8vw, 108px) 0 clamp(64px, 11vw, 148px);
}

.route-error-service-copy {
  max-width: 800px;
  border-left: 3px solid var(--accent);
  padding-left: clamp(20px, 3vw, 42px);
}
.route-error-service-copy .kicker {
  margin: 0 0 14px;
  color: var(--accent);
  letter-spacing: .08em;
}
.route-error-service-copy h1 {
  max-width: 760px;
  margin: 0 0 18px;
  font-family: var(--display-serif);
  font-size: clamp(42px, 5.6vw, 76px);
  font-weight: 520;
  letter-spacing: -.035em;
  line-height: 1.02;
}
.route-error-service-copy > p:not(.kicker) {
  max-width: 56ch;
  margin: 0;
  color: var(--label);
  font-size: var(--type-body);
  line-height: var(--leading-readable);
}
.route-error.is-service-state .route-error-actions {
  display: flex;
  width: fit-content;
  gap: 12px;
  padding-top: 30px;
}
.route-error.is-service-state #route-error-retry[aria-busy="true"] { cursor: wait; opacity: .72; }

@media (max-width: 480px) {
  .route-error.is-service-state { padding-top: 34px; }
  .route-error-service-copy { padding-left: 18px; }
  .route-error-service-copy h1 { font-size: clamp(38px, 11vw, 50px); }
  .route-error.is-service-state .route-error-actions { width: 100%; flex-direction: column; }
  .route-error.is-service-state .route-error-actions > * { width: 100%; }
}

@media (max-width: 1120px) {
  .app-header {
    grid-template-columns: minmax(230px, 270px) minmax(0, 1fr) auto;
    gap: 14px;
  }

  .app-header .brand {
    width: 250px;
    max-width: 250px;
  }

  .nav-link,
  .product-nav-link {
    padding-inline: 9px;
    font-size: 11px;
  }
}

@media (max-width: 900px) {
  .app-header {
    min-height: 122px;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: 68px 52px;
    gap: 0 16px;
    padding-block: 0;
  }

  .app-header .brand {
    width: 246px;
    max-width: 246px;
    height: 64px;
  }

  .primary-nav {
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
    height: 52px;
    justify-content: flex-start;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: inline proximity;
    scrollbar-width: none;
  }

  .primary-nav::-webkit-scrollbar {
    display: none;
  }

  .nav-link,
  .product-nav-link {
    flex: 0 0 auto;
    min-width: 78px;
    min-height: 52px;
    padding-inline: 12px;
    font-size: 11px;
    scroll-snap-align: start;
  }

  .product-route-view {
    min-height: calc(100vh - 122px);
  }

  .explore-entry {
    grid-template-columns: 52px minmax(0, 1fr) auto;
  }
}

@media (max-width: 640px) {
  :root {
    --gutter: 18px;
  }

  .app-header {
    min-height: 116px;
    grid-template-rows: 64px 50px;
  }

  .app-header .brand {
    width: 212px;
    max-width: 212px;
    height: 60px;
  }

  .locale-button {
    min-width: 52px;
    min-height: 38px;
    padding-inline: 11px;
  }

  .primary-nav {
    height: 50px;
  }

  .nav-link,
  .product-nav-link {
    min-width: 72px;
    min-height: 50px;
    padding-inline: 10px;
    font-size: 11px;
  }

  .product-route-view {
    min-height: calc(100vh - 116px);
    padding-top: 38px;
  }

  .product-page-header h1 {
    font-size: clamp(38px, 12vw, 52px);
  }

  .explore-hub {
    gap: 34px;
  }

  .explore-hub-hero {
    padding-top: 8px;
  }

  .explore-hub-hero h1 {
    font-size: clamp(44px, 14vw, 60px);
    line-height: .98;
  }

  .explore-entry {
    grid-template-columns: 1fr;
    gap: 15px;
    padding: 27px 0;
  }

  .explore-entry p,
  .priority-entry p {
    font-size: 14px;
  }

  .page-intro {
    min-height: 0;
    padding-bottom: 28px;
  }

  .page-intro h1 {
    font-size: clamp(38px, 12vw, 52px);
  }

  .comparison-workspace {
    border-inline: 0;
  }

  .route-error-actions,
  .route-error-actions > * {
    width: 100%;
  }
}

/* Final-priority responsive header geometry and user utilities. */
.app-header {
  min-height: 82px;
  grid-template-columns: minmax(220px, 260px) minmax(0, 700px) auto;
  grid-template-rows: 82px;
  justify-content: center;
  align-items: center;
  gap: clamp(14px, 1.7vw, 24px);
  padding-inline: max(var(--gutter), calc((100vw - var(--content)) / 2 + var(--gutter)));
}

.app-header .brand {
  grid-column: 1;
  grid-row: 1;
  justify-self: start;
  width: clamp(220px, 18vw, 260px);
  max-width: 260px;
  height: 70px;
  display: grid;
  place-items: center start;
  overflow: hidden;
}

.app-header .brand img {
  grid-area: 1 / 1;
  display: block;
  object-fit: contain;
  object-position: left center;
}

.app-header .brand .brand-wordmark {
  width: 100%;
  height: auto;
}

.app-header .brand .brand-mark {
  display: none;
  width: 44px;
  height: 44px;
}

.primary-nav {
  grid-column: 2;
  grid-row: 1;
  justify-self: center;
  justify-content: center;
  width: 100%;
  min-width: 0;
}

.header-actions {
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
  display: flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
}

.shortlist-button,
.locale-button {
  min-width: 86px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid color-mix(in srgb, var(--text) 78%, transparent);
  border-radius: 999px;
  background: transparent;
  color: var(--text);
  padding-inline: 18px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0;
  text-decoration: none;
  transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease;
}

.shortlist-button:hover,
.shortlist-button:focus-visible,
.locale-button:hover,
.locale-button:focus-visible {
  border-color: var(--text);
  background: var(--text);
  color: var(--paper);
}

.shortlist-button__count {
  min-width: 20px;
  min-height: 20px;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  background: var(--quiet);
  font-size: 10px;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.shortlist-button:hover .shortlist-button__count,
.shortlist-button:focus-visible .shortlist-button__count {
  background: color-mix(in srgb, var(--paper) 20%, transparent);
}

.locale-button {
  min-width: 132px;
  padding-inline: 14px;
}

.locale-button__language {
  line-height: 1;
}

.locale-button__compact-code {
  display: none;
  font-size: 12px;
  font-weight: 850;
  line-height: 1;
}

.locale-button__divider {
  width: 1px;
  height: 16px;
  background: var(--grid);
}

.locale-button__appearance {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--muted);
}

.locale-button:hover .locale-button__appearance,
.locale-button:focus-visible .locale-button__appearance {
  color: inherit;
}

.locale-button__theme-icon {
  width: 17px;
  height: 17px;
}

.locale-button__theme-label {
  font-size: 11px;
  font-weight: 760;
}

@media (max-width: 1359px) {
  .app-header {
    min-height: 76px;
    grid-template-columns: 64px minmax(0, 1fr) auto;
    grid-template-rows: 76px;
    gap: 12px;
    padding-block: 0;
  }

  .app-header .brand {
    grid-column: 1;
    grid-row: 1;
    width: 52px;
    max-width: 52px;
    height: 64px;
  }

  .app-header .brand .brand-wordmark {
    display: none;
  }

  .app-header .brand .brand-mark {
    display: block;
  }

  .nav-link,
  .product-nav-link {
    padding-inline: clamp(7px, .85vw, 12px);
    font-size: 11px;
  }

  .primary-nav {
    grid-column: 2;
    grid-row: 1;
    width: 100%;
    height: 76px;
    overflow: visible;
  }

  .header-actions {
    grid-column: 3;
    grid-row: 1;
  }

  .shortlist-button,
  .locale-button {
    min-height: 44px;
    position: relative;
    border-color: color-mix(in srgb, var(--text) 48%, transparent);
    background: color-mix(in srgb, var(--surface-strong) 36%, transparent);
    padding-inline: 10px;
  }

  .shortlist-button {
    width: 60px;
    min-width: 60px;
    gap: 7px;
  }

  .locale-button {
    width: 76px;
    min-width: 76px;
    gap: 7px;
  }

  .shortlist-button:hover,
  .shortlist-button:focus-visible,
  .locale-button:hover,
  .locale-button:focus-visible {
    border-color: var(--text);
    background: color-mix(in srgb, var(--text) 6%, transparent);
    color: var(--text);
  }

  .shortlist-button__label,
  .locale-button__language,
  .locale-button__theme-label {
    display: none;
  }

  .shortlist-button__count {
    min-width: 18px;
    min-height: 18px;
    position: static;
    padding-inline: 4px;
    font-size: 9.5px;
  }

  .shortlist-button:hover .shortlist-button__count,
  .shortlist-button:focus-visible .shortlist-button__count {
    background: var(--quiet);
  }

  .locale-button__compact-code {
    display: inline-grid;
    place-items: center;
    width: 18px;
  }

  .locale-button__divider {
    width: 1px;
    height: 18px;
    display: block;
    flex: 0 0 1px;
    background: var(--hero);
    transform: rotate(18deg);
  }

  .locale-button__appearance {
    position: static;
    color: var(--text);
  }

  .locale-button__theme-icon {
    width: 16px;
    height: 16px;
  }
}

@media (min-width: 1080px) and (max-width: 1359px) {
  .app-header {
    grid-template-columns: minmax(180px, 220px) minmax(0, 1fr) auto;
  }

  .app-header .brand {
    width: clamp(180px, 16vw, 220px);
    max-width: 220px;
  }

  .app-header .brand .brand-wordmark {
    display: block;
  }

  .app-header .brand .brand-mark {
    display: none;
  }
}

@media (max-width: 900px) {
  .explore-entry-grid {
    grid-template-columns: 1fr;
  }

  .explore-entry {
    min-height: 0;
    grid-template-columns: 58px minmax(0, 1fr) auto;
    grid-template-rows: auto;
    align-items: center;
    padding-block: 28px;
  }

  .explore-entry + .explore-entry {
    border-top: 1px solid var(--grid);
    border-left: 0;
  }
}

@media (max-width: 860px) {
  .app-header {
    position: relative;
    top: auto;
    min-height: 112px;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: 64px 48px;
    gap: 0 16px;
    padding-block: 0;
  }

  .app-header .brand {
    grid-column: 1;
    grid-row: 1;
    width: 52px;
    max-width: 52px;
    height: 60px;
  }

  .header-actions {
    grid-column: 2;
    grid-row: 1;
  }

  .primary-nav {
    grid-column: 1 / -1;
    grid-row: 2;
    width: min(100%, 760px);
    height: 48px;
    justify-content: flex-start;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
  }
}

@media (min-width: 641px) and (max-width: 860px) {
  .app-header .brand {
    width: clamp(184px, 28vw, 220px);
    max-width: 220px;
    height: 60px;
  }

  .app-header .brand .brand-wordmark {
    display: block;
  }

  .app-header .brand .brand-mark {
    display: none;
  }
}

@media (max-width: 640px) {
  .app-header {
    min-height: 104px;
    grid-template-rows: 58px 46px;
    gap: 0 10px;
    padding-inline: 16px;
  }

  .app-header .brand {
    width: 48px;
    max-width: 48px;
    height: 54px;
  }

  .explore-entry {
    min-height: 0;
    padding-block: 25px;
  }

  .explore-hub-hero h1 {
    max-width: 6em;
    font-size: clamp(40px, 12vw, 52px);
    text-wrap: balance;
  }

  .shortlist-button {
    width: 56px;
    min-width: 56px;
    min-height: 44px;
    padding-inline: 9px;
  }

  .locale-button {
    width: 72px;
    min-width: 72px;
    min-height: 44px;
    padding-inline: 9px;
  }

  .locale-button__theme-label {
    display: none;
  }

  .primary-nav {
    width: 100%;
    height: 46px;
    justify-content: flex-start;
  }

  .primary-nav .nav-link,
  .primary-nav .product-nav-link {
    min-height: 46px;
  }

  .product-route-view {
    min-height: calc(100vh - 104px);
  }
}

@media (max-width: 360px) {
  .shortlist-button {
    width: 56px;
    min-width: 56px;
    padding-inline: 8px;
  }

  .locale-button {
    width: 72px;
    min-width: 72px;
    padding-inline: 8px;
  }

  .shortlist-button__label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
  }

  .primary-nav {
    scroll-snap-type: none;
  }

  .primary-nav .nav-link,
  .primary-nav .product-nav-link {
    flex: 1 1 0;
    min-width: 0;
    padding-inline: 3px;
    font-size: 11px;
  }

}

/* Country journey continuity and final responsive tuning for the global explorer. */
.product-map figcaption.world-map-toolbar .world-map-toolbar-title {
  grid-area: title;
  margin: 0;
  font-size: clamp(28px, 2.35vw, 34px);
}

/* Keep legend copy on the same small-type scale as the map interaction note. */
.product-map.global-country-map-panel .world-map-legend,
.product-map.global-country-map-panel .world-map-legend span,
.product-map.global-country-map-panel .map-drag-hint {
  font-family: var(--sans);
  font-size: var(--map-font-legend);
  font-weight: 450;
  line-height: 1.35;
}

.product-map.global-country-map-panel .world-map-legend h2 {
  font-family: var(--sans);
  font-size: var(--map-font-legend-label);
  font-weight: 550;
  line-height: 1.35;
}

.global-country-summary-actions > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
}

.global-country-summary-actions .global-country-summary-link {
  min-width: 0;
  padding-inline: 14px;
  justify-content: space-between;
  justify-self: stretch;
  white-space: normal;
  border-right: 1px solid var(--grid);
}

.global-country-summary-actions .global-country-summary-link.is-evidence {
  grid-column: 1 / -1;
  border-top: 1px solid var(--grid);
}

@media (min-width: 761px) and (max-width: 1000px) {
  .global-map-hero {
    grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr);
    gap: clamp(24px, 3vw, 30px);
    align-items: end;
  }

  .global-country-search {
    width: 100%;
  }
}

@media (max-width: 760px) {
  .route-section-nav {
    gap: 6px;
    margin-top: 0;
    margin-bottom: 30px;
    scroll-padding-inline: 2px;
  }

  .route-section-nav a {
    min-height: 50px;
    padding-inline: 10px;
  }

  .global-map-hero {
    gap: 20px;
    padding-bottom: 24px;
  }

  .global-country-detail {
    gap: 16px;
    min-height: 0;
    margin-top: 24px;
    padding: 24px 0 0;
  }

  .global-country-summary-actions {
    gap: 0;
    padding: 0;
  }

  .global-country-summary-actions > div {
    gap: 0;
  }

  .global-country-summary-actions .global-country-summary-link {
    width: auto;
    min-width: 0;
    justify-content: space-between;
    white-space: normal;
  }

  .country-context-rail {
    gap: 14px;
    margin-top: 0;
    padding-block: 14px;
  }

  .country-context-rail > div:last-child {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 18px;
  }

  .country-context-rail a {
    min-width: 0;
    padding-block: 4px;
    overflow-wrap: anywhere;
  }

  .ror-directory-search .primary-button,
  .global-city-search .primary-button {
    width: 100%;
  }
}

@media (max-width: 360px) {
  .global-country-summary-actions > div { grid-template-columns: 1fr; }
  .global-country-summary-actions .global-country-summary-link.is-evidence { grid-column: auto; }
}

@media (min-width: 641px) and (max-width: 760px) {
  .global-map-hero {
    grid-template-columns: minmax(0, 1fr) minmax(300px, .78fr);
    gap: clamp(20px, 3vw, 24px);
    align-items: end;
  }

  .global-map-hero-copy h1 {
    font-size: clamp(34px, 5vw, 40px);
    white-space: nowrap;
  }

  .global-country-search {
    width: 100%;
  }

  .product-map figcaption.world-map-toolbar {
    grid-template-columns: auto minmax(180px, 1fr) auto minmax(120px, .55fr) auto;
    grid-template-areas: "title subtitle status slider reset";
    gap: 12px;
    padding: 0 0 12px;
  }

  .product-map figcaption.world-map-toolbar .world-map-zoom-range.is-desktop {
    display: flex;
    grid-area: slider;
    grid-column: auto;
    grid-row: auto;
  }

  .product-map .world-map-zoom-range.is-mobile {
    display: none;
  }
}

@media (min-width: 641px) and (max-width: 860px) {
  .app-header {
    min-height: 76px;
    grid-template-columns: 64px minmax(0, 1fr) auto;
    grid-template-rows: 76px;
    gap: 12px;
  }

  .app-header .brand {
    grid-column: 1;
    grid-row: 1;
    width: 52px;
    max-width: 52px;
    height: 64px;
  }

  .app-header .brand .brand-wordmark {
    display: none;
  }

  .app-header .brand .brand-mark {
    display: block;
  }

  .primary-nav {
    grid-column: 2;
    grid-row: 1;
    width: 100%;
    height: 76px;
    overflow: visible;
  }

  .primary-nav .nav-link,
  .primary-nav .product-nav-link {
    min-width: 64px;
    padding-inline: 6px;
    font-size: 10px;
  }

  .header-actions {
    grid-column: 3;
    grid-row: 1;
  }
}

@media (max-width: 640px) {
  .product-map figcaption.world-map-toolbar .world-map-toolbar-title {
    font-size: clamp(26px, 7.4vw, 32px);
  }
}

@media (max-width: 640px) {
  .global-country-search-list {
    position: fixed;
    top: auto;
    right: var(--gutter);
    bottom: 18px;
    left: var(--gutter);
    max-height: min(420px, 62svh);
  }

  .world-map-viewport {
    width: calc(100% + 36px);
    margin-left: -18px;
  }

  .product-map figcaption.world-map-toolbar {
    gap: 8px 16px;
    padding-block: 12px;
  }

  .world-map-threshold {
    max-width: 58ch;
    font-size: var(--map-font-control);
  }

  .map-drag-hint {
    margin-top: 12px;
    font-size: var(--map-font-legend);
  }

  .global-map-hero-copy h1 {
    font-size: clamp(34px, 9.4vw, 40px);
    line-height: 1.04;
    white-space: nowrap;
  }

  .world-map-legend {
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
    margin-top: 6px;
  }

  .world-map-legend section {
    width: 100%;
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 8px;
  }

  .world-map-legend section > div {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    gap: 4px 10px;
  }

  .world-map-legend span { gap: 4px; }

  .entity-card-grid.global-city-results,
  .entity-card-grid:has(> .ror-entity-card) {
    gap: 0;
  }

  .global-city-results .entity-card,
  .ror-entity-card {
    padding: 24px 0;
    border-inline: 0;
    border-top: 1px solid var(--grid);
  }
}

@media (max-width: 420px) {
  .route-section-nav {
    margin-inline: -2px;
  }

  .route-section-nav a {
    padding-inline: 8px;
    font-size: 11px;
  }

  .country-context-rail > div:first-child {
    grid-template-columns: 1fr;
  }

  .country-context-rail small {
    grid-column: 1;
  }

  .country-context-rail > div:last-child {
    grid-template-columns: 1fr;
  }

  .country-context-rail a + a {
    border-top: 1px solid var(--grid);
  }

  .world-map-viewport {
    width: calc(100% + 32px);
    margin-left: -16px;
  }
}

/* Shortlist workspace: one quiet place to save courses and compare only when useful. */
.view-panel#compare-view {
  padding-top: clamp(20px, 2.5vw, 36px);
}

.shortlist-page-intro {
  min-height: 0;
  padding-block: clamp(18px, 2vw, 28px) clamp(24px, 3vw, 36px);
}

.shortlist-page-intro > div {
  max-width: 820px;
}

.shortlist-page-intro h1 {
  max-width: none;
  font-size: clamp(44px, 5.5vw, 68px);
  line-height: .96;
}

.shortlist-page-intro .boundary-line {
  max-width: 700px;
  margin-top: 18px;
  color: var(--muted);
  font-size: clamp(13px, 1.25vw, 16px);
  font-weight: 520;
  letter-spacing: 0;
  line-height: 1.65;
}

.shortlist-workspace {
  border-inline: 0;
  border-radius: 0;
}

.shortlist-workspace .workspace-toolbar {
  min-height: 76px;
  padding-inline: 0;
}

.shortlist-workspace .section-label {
  grid-template-columns: auto auto;
  align-items: baseline;
  gap: 10px;
}

.shortlist-workspace .section-label strong {
  font-size: 16px;
}

.shortlist-workspace .section-label span {
  font-variant-numeric: tabular-nums;
}

.shortlist-workspace .add-course-button {
  min-width: 112px;
  border-radius: 0;
  padding-inline: 18px;
}

.shortlist-workspace .course-token-list {
  align-items: stretch;
  border-bottom: 1px solid var(--grid);
}

.shortlist-workspace .course-token-list[data-count="0"] {
  display: block;
  grid-template-columns: minmax(0, 1fr);
  border-bottom: 0;
}

.shortlist-workspace:has(.course-token-list[data-count="0"]) {
  border-bottom: 0;
  min-height: clamp(320px, calc(100svh - 330px), 540px);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
}

.shortlist-workspace:has(.course-token-list[data-count="0"]) .course-token-list {
  min-height: 0;
  display: grid;
}

.shortlist-workspace .course-token-list[data-count="1"] {
  grid-template-columns: minmax(0, 1fr) minmax(280px, .72fr);
}

.shortlist-workspace .course-token-list[data-count="2"] {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.shortlist-workspace .course-token-list[data-count="3"] {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.shortlist-workspace .course-token {
  min-height: 220px;
  border-top: 3px solid transparent;
  padding: clamp(18px, 2.2vw, 28px);
  transition: border-color 160ms ease, background-color 160ms ease;
}

.shortlist-workspace .course-token:hover {
  border-top-color: color-mix(in srgb, var(--hero) 55%, transparent);
}

.shortlist-workspace .course-token.is-active {
  border-top-color: var(--hero);
  background: color-mix(in srgb, var(--hero) 5%, transparent);
  box-shadow: none;
}

.shortlist-workspace .token-select {
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 14px;
  min-height: 74px;
  padding: 0;
  color: inherit;
}

.shortlist-workspace .token-index {
  width: auto;
  height: auto;
  border-radius: 0;
  background: transparent;
  color: var(--hero-text);
  display: block;
  font-family: var(--display-serif);
  font-size: 28px;
  font-weight: 600;
  line-height: 1;
}

.shortlist-workspace .course-token.is-active .token-index {
  background: transparent;
}

.shortlist-workspace .token-copy {
  gap: 7px;
}

.shortlist-workspace .token-copy strong {
  font-family: var(--display-serif);
  font-size: clamp(18px, 1.8vw, 25px);
  font-weight: 600;
  line-height: 1.18;
}

.shortlist-workspace .token-copy small {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
  white-space: normal;
}

.shortlist-workspace .remove-course {
  align-self: start;
  border-bottom: 1px solid transparent;
  padding-inline: 8px;
}

.shortlist-workspace .remove-course:hover,
.shortlist-workspace .remove-course:focus-visible {
  border-bottom-color: currentColor;
  background: transparent;
}

.shortlist-workspace .token-metrics {
  gap: 16px;
  margin-top: 22px;
  border-top: 1px solid var(--grid);
  padding-top: 16px;
}

.shortlist-workspace .token-metrics span {
  gap: 5px;
  font-size: 10px;
  letter-spacing: .02em;
}

.shortlist-workspace .token-metrics strong {
  font-size: 13px;
  font-variant-numeric: tabular-nums;
  line-height: 1.35;
}

.shortlist-workspace .comparison-empty-state {
  min-width: 0;
  min-height: 260px;
  grid-template-columns: 52px minmax(0, 1fr) auto;
  align-content: center;
  align-items: center;
  justify-items: stretch;
  gap: clamp(18px, 3vw, 42px);
  padding: clamp(30px, 5vw, 70px) clamp(20px, 4vw, 56px);
}

.shortlist-workspace .comparison-empty-state__index {
  align-self: start;
  color: var(--hero-text);
  font-family: var(--display-serif);
  font-size: clamp(28px, 3.5vw, 46px);
  line-height: 1;
}

.shortlist-workspace .comparison-empty-state h2 {
  font-size: clamp(28px, 3vw, 42px);
}

.shortlist-workspace .comparison-empty-state p {
  max-width: 540px;
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.65;
}

.shortlist-workspace .comparison-empty-state .product-button-link {
  min-width: 118px;
  min-height: 46px;
  margin: 0;
}

.shortlist-workspace .comparison-empty-state.is-next {
  min-height: 220px;
  grid-template-columns: 38px minmax(0, 1fr);
  align-content: start;
  align-items: start;
  border-left: 1px solid var(--grid);
  padding: clamp(22px, 2.8vw, 34px);
}

.shortlist-workspace .comparison-empty-state.is-next h2 {
  font-size: clamp(22px, 2.3vw, 30px);
}

.shortlist-workspace .comparison-empty-state.is-next .product-button-link {
  grid-column: 2;
  justify-self: start;
  margin-top: 10px;
}

.shortlist-workspace .comparison-empty-state.is-empty {
  min-height: 0;
  grid-template-columns: minmax(0, 1fr);
  align-content: center;
  align-items: start;
  gap: 20px;
  padding: clamp(32px, 4vw, 56px) 0;
}

.shortlist-workspace .comparison-empty-state.is-empty h2 {
  font-size: clamp(30px, 3vw, 42px);
}

.shortlist-workspace .comparison-empty-state.is-empty p {
  max-width: 620px;
}

.shortlist-workspace .comparison-empty-state.is-empty .product-button-link {
  justify-self: start;
}

html[data-theme="dark"] .shortlist-workspace {
  background: transparent;
}

@media (max-width: 780px) {
  .shortlist-page-intro {
    padding-block: 28px 24px;
  }

  .shortlist-page-intro h1 {
    font-size: clamp(42px, 12vw, 58px);
  }

  .shortlist-workspace .course-token-list[data-count="0"] {
    display: grid;
    overflow: visible;
  }

  .shortlist-workspace .course-token-list[data-count="1"],
  .shortlist-workspace .course-token-list[data-count="2"],
  .shortlist-workspace .course-token-list[data-count="3"] {
    display: flex;
    gap: 0;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-padding-inline: 0;
    scroll-snap-type: x mandatory;
  }

  .shortlist-workspace .course-token,
  .shortlist-workspace .comparison-empty-state.is-next {
    flex: 0 0 min(86vw, 390px);
    scroll-snap-align: start;
  }

  .shortlist-workspace .comparison-empty-state.is-empty {
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
    align-content: center;
    align-items: start;
    padding: 32px 0;
  }

  .shortlist-workspace .comparison-empty-state.is-empty .product-button-link {
    justify-self: start;
  }
}

@media (min-width: 640px) and (max-width: 780px) {
  .shortlist-workspace .course-token-list[data-count="1"],
  .shortlist-workspace .course-token-list[data-count="2"] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: visible;
  }

  .shortlist-workspace .course-token-list[data-count="3"] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: visible;
  }

  .shortlist-workspace .course-token,
  .shortlist-workspace .comparison-empty-state.is-next {
    min-width: 0;
    scroll-snap-align: none;
  }

  .shortlist-workspace .course-token-list[data-count="3"] .course-token:nth-child(3) {
    border-top: 1px solid var(--grid);
  }
}

@media (max-width: 520px) {
  .shortlist-workspace .workspace-toolbar {
    min-height: 70px;
    gap: 12px;
  }

  .shortlist-workspace .section-label {
    grid-template-columns: 1fr;
    gap: 2px;
  }

  .shortlist-workspace .add-course-button {
    min-width: 0;
    padding-inline: 13px;
  }

  .shortlist-workspace .course-token,
  .shortlist-workspace .comparison-empty-state.is-next {
    flex-basis: min(88vw, 350px);
  }

  .shortlist-workspace .course-token {
    min-height: 236px;
    padding: 22px 16px;
  }

  .shortlist-workspace .token-select {
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 10px;
  }

  .shortlist-workspace .token-metrics {
    gap: 10px;
  }

  .shortlist-workspace .comparison-empty-state.is-empty {
    grid-template-columns: 1fr;
    gap: 22px;
    padding-block: 32px;
  }

  .shortlist-workspace .comparison-empty-state.is-empty .product-button-link {
    justify-self: start;
  }

  .shortlist-workspace .comparison-empty-state h2 {
    font-size: 28px;
  }
}

/* Reserved matching surface and the final primary-navigation geometry. */
.match-hub .product-page-header {
  margin-bottom: clamp(30px, 4vw, 56px);
}

.match-reserved-brief {
  border-top: 1px solid var(--grid);
}

.match-reserved-brief__copy {
  max-width: 760px;
  padding: clamp(28px, 4vw, 52px) 0 clamp(30px, 4vw, 48px);
}

.match-reserved-brief__copy h2 {
  margin: 8px 0 0;
  font-family: var(--display-serif);
  font-size: clamp(34px, 4.8vw, 66px);
  font-weight: 600;
  letter-spacing: -.04em;
  line-height: 1;
}

.match-reserved-brief__copy p:last-child {
  max-width: 58ch;
  margin: 20px 0 0;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.7;
}

.match-step-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--grid);
  list-style: none;
}

.match-step-grid li {
  min-height: 230px;
  display: grid;
  align-content: start;
  gap: 14px;
  border-bottom: 1px solid var(--grid);
  padding: 22px clamp(18px, 2.5vw, 32px) 28px 0;
}

.match-step-grid li + li {
  border-left: 1px solid var(--grid);
  padding-left: clamp(18px, 2.5vw, 32px);
}

.match-step-grid li > span {
  color: var(--hero-text);
  font-family: var(--display-serif);
  font-size: 18px;
  font-variant-numeric: tabular-nums;
}

.match-step-grid h3 {
  margin: 0;
  font-family: var(--display-serif);
  font-size: clamp(24px, 2.4vw, 36px);
  font-weight: 600;
  line-height: 1.08;
}

.match-step-grid p {
  max-width: 31ch;
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.65;
}

/* Keep the five primary destinations centered against the page, not an asymmetric middle track. */
.app-header {
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  grid-template-rows: 82px;
  justify-content: stretch;
  gap: clamp(14px, 1.7vw, 24px);
}

.app-header .brand {
  grid-column: 1;
  grid-row: 1;
  justify-self: start;
}

.primary-nav {
  grid-column: 2;
  grid-row: 1;
  justify-self: center;
  width: max-content;
  max-width: 100%;
  justify-content: center;
  gap: 0;
  overflow: visible;
}

.primary-nav .product-nav-link {
  flex: 0 0 auto;
  min-width: 0;
  white-space: nowrap;
}

.header-actions {
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
}

@media (max-width: 1359px) {
  .app-header {
    min-height: 76px;
    grid-template-rows: 76px;
    padding-block: 0;
  }

  .app-header .brand {
    width: 52px;
    max-width: 52px;
    height: 64px;
  }

  .app-header .brand .brand-wordmark { display: none; }
  .app-header .brand .brand-mark { display: block; }
  .primary-nav { height: 76px; }
  .primary-nav .product-nav-link { min-height: 76px; }
}

@media (min-width: 1080px) and (max-width: 1359px) {
  .app-header .brand {
    width: clamp(180px, 16vw, 220px);
    max-width: 220px;
  }

  .app-header .brand .brand-wordmark { display: block; }
  .app-header .brand .brand-mark { display: none; }
}

@media (max-width: 640px) {
  .app-header {
    min-height: 104px;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: 58px 46px;
    gap: 0 10px;
    padding-inline: 16px;
  }

  .app-header .brand {
    grid-column: 1;
    grid-row: 1;
    width: 48px;
    max-width: 48px;
    height: 54px;
  }

  .header-actions {
    grid-column: 2;
    grid-row: 1;
  }

  .primary-nav {
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
    max-width: none;
    height: 46px;
    justify-self: stretch;
    justify-content: stretch;
    overflow: visible;
  }

  .primary-nav .product-nav-link {
    flex: 1 1 0;
    min-width: 0;
    min-height: 46px;
    padding-inline: 3px;
    font-size: 11px;
  }

  .match-step-grid {
    grid-template-columns: 1fr;
  }

  .match-step-grid li {
    min-height: 0;
    padding-right: 0;
  }

  .match-step-grid li + li {
    border-top: 0;
    border-left: 0;
    padding-left: 0;
  }
}

/* Match workspace: source-backed multi-signal matching */
.match-hub,
.match-hub > * {
  min-width: 0;
}

.match-hub .product-page-header {
  align-items: end;
}

.match-start-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(0, .75fr);
  gap: 1px;
  margin-top: 28px;
  border: 1px solid var(--grid);
  background: var(--grid);
}

.match-start-panel,
.match-start-aside {
  min-width: 0;
  padding: clamp(22px, 3vw, 42px);
  background: color-mix(in srgb, var(--surface-strong) 76%, transparent);
}

.match-start-panel__intro {
  max-width: 660px;
}

.match-start-panel__intro h2,
.match-start-aside h2,
.match-results-header h2,
.match-empty-state h2 {
  margin: 0;
  font-family: var(--display-serif);
  font-size: clamp(25px, 3vw, 42px);
  font-weight: 600;
  letter-spacing: -.035em;
  line-height: 1.08;
}

.match-start-panel__intro p:last-child,
.match-start-aside > p:not(.kicker),
.match-results-header p:last-child,
.match-empty-state > p:not(.kicker) {
  max-width: 650px;
  margin: 12px 0 0;
  color: var(--muted);
  line-height: 1.65;
}

.match-start-aside {
  display: grid;
  align-content: start;
  gap: 12px;
  background: var(--paper);
  color: var(--surface-strong);
}

.match-start-aside .kicker,
.match-start-aside .match-fact-label {
  color: color-mix(in srgb, currentColor 62%, transparent);
}

.match-start-aside h2 {
  color: inherit;
  font-size: clamp(22px, 2.4vw, 32px);
}

.match-start-aside > p {
  margin: 0;
  color: color-mix(in srgb, currentColor 72%, transparent);
}

.match-profile-form {
  margin-top: 28px;
  border-top: 1px solid var(--grid);
}

.match-profile-form--compact {
  margin: 0;
  border-top: 0;
}

.match-progress {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: 0 0 22px;
  padding: 0;
  border-bottom: 1px solid var(--grid);
  list-style: none;
}

.match-progress li {
  min-width: 0;
}

.match-progress button {
  width: 100%;
  min-height: 54px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: var(--muted);
  text-align: left;
  font-size: 11px;
  font-weight: 760;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.match-progress button span {
  margin-left: 7px;
  letter-spacing: .02em;
}

.match-progress button.is-active {
  border-bottom-color: var(--hero-text);
  color: var(--text);
}

.match-step {
  min-width: 0;
}

.match-step-heading {
  display: flex;
  align-items: start;
  gap: 13px;
  margin-bottom: 18px;
}

.match-step-heading > span {
  display: grid;
  place-items: center;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  border: 1px solid var(--grid);
  border-radius: 50%;
  color: var(--hero-text);
  font-size: 10px;
  font-weight: 800;
}

.match-step-heading .kicker {
  margin-bottom: 3px;
}

.match-step-heading h3 {
  margin: 0;
  font-family: var(--display-serif);
  font-size: clamp(20px, 2vw, 28px);
  font-weight: 600;
  letter-spacing: -.02em;
  line-height: 1.1;
}

.match-field-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.match-field {
  display: grid;
  min-width: 0;
  align-content: start;
  gap: 7px;
}

.match-field--wide {
  grid-column: 1 / -1;
}

.match-field > span {
  color: var(--label);
  font-size: 11px;
  font-weight: 760;
  letter-spacing: .04em;
}

.match-field input,
.match-field select {
  width: 100%;
  min-width: 0;
  min-height: 46px;
  border: 1px solid var(--grid);
  border-radius: 9px;
  background: color-mix(in srgb, var(--surface-strong) 84%, transparent);
  padding: 9px 12px;
}

.match-field input:focus,
.match-field select:focus,
.match-progress button:focus-visible,
.match-entry-links__grid a:focus-visible,
.match-location:focus-visible {
  outline: 2px solid var(--hero-text);
  outline-offset: 3px;
}

.match-field-hint {
  min-height: 34px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.45;
}

.match-form-status {
  min-height: 22px;
  margin: 16px 0 0;
  color: var(--muted);
  font-size: 12px;
}

.match-form-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 12px;
}

.match-form-actions button {
  min-height: 44px;
}

.match-entry-links {
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid color-mix(in srgb, currentColor 22%, transparent);
}

.match-entry-links__grid {
  display: grid;
  gap: 0;
  margin-top: 8px;
}

.match-entry-links__grid a {
  display: grid;
  gap: 3px;
  padding: 13px 0;
  border-bottom: 1px solid color-mix(in srgb, currentColor 19%, transparent);
  color: inherit;
  text-decoration: none;
}

.match-entry-links__grid a span {
  color: color-mix(in srgb, currentColor 64%, transparent);
  font-size: 11px;
  line-height: 1.45;
}

.match-profile-bar {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  margin-top: 28px;
  padding: 17px 19px;
  border: 1px solid var(--grid);
  background: color-mix(in srgb, var(--surface-strong) 76%, transparent);
}

.match-profile-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 8px;
}

.match-profile-chip,
.match-source-badge {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  border: 1px solid var(--grid);
  border-radius: 999px;
  padding: 4px 9px;
  color: var(--label);
  font-size: 10px;
  font-weight: 760;
}

.match-profile-count {
  flex: 0 0 auto;
  color: var(--muted);
  font-size: 11px;
  white-space: nowrap;
}

.match-adjust-panel {
  margin-top: 14px;
  border: 1px solid var(--grid);
  background: color-mix(in srgb, var(--surface-strong) 52%, transparent);
}

.match-adjust-panel summary {
  cursor: pointer;
  padding: 14px 17px;
  color: var(--label);
  font-size: 12px;
  font-weight: 760;
}

.match-adjust-panel > div {
  padding: 0 17px 17px;
}

.match-adjust-panel .match-field-hint,
.match-adjust-panel .match-step-heading {
  display: none;
}

.match-adjust-panel .match-field-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.match-adjust-panel .match-field--wide {
  grid-column: span 2;
}

.match-adjust-panel .match-form-actions {
  margin-top: 14px;
}

.match-results {
  margin-top: 38px;
}

.match-results-header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 22px;
}

.match-results-count {
  display: grid;
  flex: 0 0 auto;
  gap: 3px;
  text-align: right;
}

.match-results-count strong {
  font-family: var(--display-serif);
  font-size: 24px;
  font-weight: 600;
}

.match-results-count span {
  color: var(--muted);
  font-size: 11px;
}

.match-course-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 330px), 1fr));
  gap: 14px;
}

.match-course-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  padding: 20px;
  border: 1px solid var(--grid);
  background: color-mix(in srgb, var(--surface-strong) 76%, transparent);
}

.match-course-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  color: var(--muted);
  font-size: 10px;
  text-transform: uppercase;
}

.match-source-badge {
  border-color: color-mix(in srgb, var(--ok) 42%, var(--grid));
  color: var(--ok);
  text-transform: none;
}

.match-course-card h3 {
  margin: 17px 0 7px;
  font-family: var(--display-serif);
  font-size: clamp(20px, 2vw, 27px);
  font-weight: 600;
  letter-spacing: -.025em;
  line-height: 1.12;
}

.match-course-card h3 a,
.match-course-card__institution a {
  color: inherit;
  text-decoration: none;
}

.match-course-card h3 a:hover,
.match-course-card__institution a:hover {
  color: var(--hero-text);
}

.match-course-card__institution {
  min-height: 38px;
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}

.match-course-card__locations {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 18px;
  padding-top: 13px;
  border-top: 1px solid var(--grid);
}

.match-fact-label {
  display: block;
  width: 100%;
  color: var(--muted);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.match-location {
  display: inline-flex;
  max-width: 100%;
  overflow-wrap: anywhere;
  color: var(--label);
  font-size: 11px;
  text-decoration: none;
}

a.match-location:hover {
  color: var(--hero-text);
}

.match-course-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 18px 0 0;
}

.match-course-facts > div {
  min-width: 0;
}

.match-course-facts dt {
  color: var(--muted);
  font-size: 9px;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.match-course-facts dd {
  margin: 3px 0 0;
  overflow-wrap: anywhere;
  color: var(--text);
  font-size: 12px;
  font-weight: 740;
}

.match-course-reasons {
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid var(--grid);
}

.match-course-reasons h4 {
  margin: 0 0 7px;
  color: var(--muted);
  font-size: 9px;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.match-course-reasons ul {
  display: grid;
  gap: 4px;
  margin: 0;
  padding-left: 16px;
  color: var(--label);
  font-size: 11px;
}

.match-course-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: auto;
  padding-top: 20px;
}

.match-course-actions .primary-button {
  min-height: 42px;
}

.match-course-actions .text-action {
  color: var(--label);
  font-size: 11px;
}

.match-empty-state {
  margin-top: 28px;
  padding: clamp(26px, 5vw, 62px);
  border: 1px solid var(--grid);
  background: color-mix(in srgb, var(--surface-strong) 72%, transparent);
}

.match-empty-state .secondary-button {
  margin-top: 18px;
}

.match-evidence-note {
  margin: 18px 0 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.6;
}

.match-evidence-note strong {
  color: var(--label);
}

@media (max-width: 980px) {
  .match-start-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .match-start-aside {
    padding-top: 28px;
  }

  .match-entry-links__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
  }

  .match-entry-links__grid a {
    border-bottom: 0;
    border-right: 1px solid color-mix(in srgb, currentColor 19%, transparent);
    padding-right: 12px;
  }

  .match-entry-links__grid a:last-child {
    border-right: 0;
  }

  .match-course-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .match-adjust-panel .match-field-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .match-start-grid {
    margin-top: 20px;
  }

  .match-start-panel,
  .match-start-aside {
    padding: 22px 18px;
  }

  .match-progress button {
    min-height: 48px;
    font-size: 9px;
  }

  .match-progress button span {
    display: block;
    margin: 2px 0 0;
    font-size: 9px;
  }

  .match-field-grid,
  .match-adjust-panel .match-field-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .match-field--wide,
  .match-adjust-panel .match-field--wide {
    grid-column: auto;
  }

  .match-form-actions {
    justify-content: stretch;
  }

  .match-form-actions > button {
    flex: 1 1 160px;
  }

  .match-entry-links__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
  }

  .match-entry-links__grid a,
  .match-entry-links__grid a:last-child {
    border-right: 0;
    border-bottom: 1px solid color-mix(in srgb, currentColor 19%, transparent);
    padding: 12px 0;
  }

  .match-profile-bar,
  .match-results-header {
    align-items: start;
    flex-direction: column;
    gap: 12px;
  }

  .match-profile-count,
  .match-results-count {
    text-align: left;
  }

  .match-course-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 420px) {
  .match-progress button span {
    font-size: 8px;
    letter-spacing: 0;
  }

  .match-course-card {
    padding: 16px;
  }
}

/* Decision entry points: rankings, school evidence and the review form share one visible rail. */
.community-decision-paths {
  margin-top: clamp(34px, 5vw, 68px);
  border-block: 1px solid var(--grid);
  padding: clamp(28px, 4vw, 50px) 0 0;
}

.community-decision-paths > header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(250px, .9fr);
  gap: clamp(24px, 5vw, 90px);
  align-items: end;
}

.community-decision-paths h2 {
  max-width: 13ch;
  margin: 8px 0 0;
  font-family: var(--display-serif);
  font-size: clamp(29px, 3.6vw, 52px);
  font-weight: 600;
  letter-spacing: -.04em;
  line-height: 1;
}

.community-decision-paths > header > p {
  max-width: 38ch;
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.65;
}

.community-decision-paths__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: clamp(28px, 4vw, 48px);
  border-top: 1px solid var(--grid);
  border-left: 1px solid var(--grid);
}

.community-decision-card {
  min-height: 178px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  grid-template-rows: auto 1fr;
  gap: 18px 14px;
  border-right: 1px solid var(--grid);
  border-bottom: 1px solid var(--grid);
  padding: 20px;
  color: inherit;
  text-decoration: none;
  transition: background-color 160ms ease, color 160ms ease;
}

.community-decision-card:hover,
.community-decision-card:focus-visible {
  background: color-mix(in srgb, var(--hero) 10%, transparent);
}

.community-decision-card.is-primary {
  background: var(--text);
  color: var(--paper);
}

.community-decision-card > span {
  color: var(--hero-text);
  font-family: var(--display-serif);
  font-size: 19px;
  font-variant-numeric: tabular-nums;
}

.community-decision-card > div {
  display: grid;
  align-content: start;
  gap: 10px;
}

.community-decision-card strong {
  font-family: var(--display-serif);
  font-size: clamp(19px, 2vw, 27px);
  font-weight: 600;
  line-height: 1.05;
}

.community-decision-card small {
  color: var(--muted);
  font-size: 10px;
  line-height: 1.5;
}

.community-decision-card.is-primary small { color: color-mix(in srgb, var(--paper) 68%, transparent); }
.community-decision-card > i { align-self: start; color: var(--hero-text); font-size: 20px; font-style: normal; }

.community-review-back-links {
  display: flex;
  flex-wrap: wrap;
  gap: 18px 28px;
  align-items: center;
}

.community-review-back-links .product-back-link { margin: 0; }
.community-review-back-links .product-back-link + .product-back-link { color: var(--hero-text); }

.subject-ranking-gateway {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
  border-block: 1px solid var(--grid);
  padding: clamp(28px, 4vw, 48px) 0;
}

.subject-ranking-gateway h2 {
  max-width: 17ch;
  margin: 8px 0 12px;
  font-family: var(--display-serif);
  font-size: clamp(29px, 3.6vw, 52px);
  font-weight: 600;
  letter-spacing: -.04em;
  line-height: 1;
}

.subject-ranking-gateway p:last-child { max-width: 62ch; margin: 0; color: var(--muted); line-height: 1.6; }

.subject-career-discovery {
  display: grid;
  gap: clamp(24px, 3vw, 40px);
  border-top: 1px solid var(--text);
  padding-top: clamp(28px, 3.4vw, 44px);
}

.subject-career-discovery > header {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(270px, .6fr);
  gap: clamp(32px, 6vw, 92px);
  align-items: start;
}

.subject-career-discovery > header h2 {
  max-width: 18ch;
  margin: 9px 0 0;
  font-family: var(--display-serif);
  font-size: clamp(34px, 4.2vw, 56px);
  font-weight: 520;
  letter-spacing: -.05em;
  line-height: .96;
}

.subject-career-discovery > header > div > p:last-child {
  max-width: 66ch;
  margin: 18px 0 0;
  color: var(--label);
  font-size: var(--type-body-sm);
  line-height: 1.68;
}

.subject-career-journey {
  display: grid;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--text);
  list-style: none;
}

.subject-career-journey li {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 12px;
  align-items: baseline;
  border-bottom: 1px solid var(--grid);
  padding: 13px 0;
}

.subject-career-journey span { color: var(--hero-text); font-size: 10px; font-weight: 780; }
.subject-career-journey strong { font-size: 12px; font-weight: 680; }

.subject-career-paths {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--text);
  border-left: 1px solid var(--grid);
}

.subject-career-path {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  grid-template-rows: auto 1fr auto;
  gap: 18px 16px;
  min-width: 0;
  min-height: 310px;
  border-right: 1px solid var(--grid);
  border-bottom: 1px solid var(--text);
  padding: clamp(22px, 2.8vw, 34px);
  color: inherit;
  text-decoration: none;
  transition: background-color var(--motion-base) ease;
}

.subject-career-path__number { color: var(--hero-text); font-size: 13px; font-weight: 780; }
.subject-career-path__copy { min-width: 0; }
.subject-career-path h3 { max-width: 15ch; margin: 8px 0 13px; font-family: var(--display-serif); font-size: clamp(27px, 3vw, 40px); font-weight: 540; letter-spacing: -.045em; line-height: .98; }
.subject-career-path__copy > p:last-child { max-width: 58ch; margin: 0; color: var(--label); font-size: 11px; line-height: 1.62; }
.subject-career-path dl { grid-column: 2; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-self: end; margin: 0; border-top: 1px solid var(--grid); }
.subject-career-path dl > div { min-width: 0; padding: 13px 9px 0 0; }
.subject-career-path dt { color: var(--label); font-size: 8px; font-weight: 720; letter-spacing: .04em; }
.subject-career-path dd { margin: 6px 0 0; font-size: clamp(16px, 1.8vw, 24px); font-weight: 710; font-variant-numeric: tabular-nums; letter-spacing: -.035em; }
.subject-career-path > strong { grid-column: 2; align-self: end; color: var(--hero-text); font-size: 11px; }
.subject-career-path > strong i, .subject-career-signal-row > i { display: inline-block; font-style: normal; transition: transform var(--motion-fast) var(--ease-out); }
.subject-career-path:hover, .subject-career-path:focus-visible { background: color-mix(in srgb, var(--hero-text) 5%, transparent); outline-offset: 5px; }
.subject-career-path:hover h3, .subject-career-path:focus-visible h3 { color: var(--hero-text); }
.subject-career-path:hover > strong i, .subject-career-path:focus-visible > strong i { transform: translateX(6px); }

.subject-career-signals { display: grid; gap: 20px; }
.subject-career-signals > header { display: grid; grid-template-columns: minmax(0, .95fr) minmax(280px, .65fr); gap: clamp(30px, 6vw, 90px); align-items: end; }
.subject-career-signals > header h3 { max-width: 18ch; margin: 8px 0 0; font-family: var(--display-serif); font-size: clamp(27px, 3.2vw, 42px); font-weight: 540; letter-spacing: -.04em; line-height: 1; }
.subject-career-signals > header > p { margin: 0; color: var(--label); font-size: 11px; line-height: 1.62; }
.subject-career-signal-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--text); border-left: 1px solid var(--grid); }
.subject-career-signal-grid > section { min-width: 0; border-right: 1px solid var(--grid); border-bottom: 1px solid var(--text); }
.subject-career-signal-grid > section > header { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 14px; min-height: 96px; align-items: start; padding: 20px 22px; }
.subject-career-signal-grid > section > header > span { color: var(--hero-text); font-size: 11px; font-weight: 780; }
.subject-career-signal-grid h4 { margin: 0; font-family: var(--display-serif); font-size: clamp(23px, 2.6vw, 34px); font-weight: 540; line-height: 1; }
.subject-career-signal-grid header p { margin: 7px 0 0; color: var(--label); font-size: 9px; line-height: 1.5; }
.subject-career-signal-list { border-top: 1px solid var(--grid); }
.subject-career-signal-row { display: grid; grid-template-columns: 30px minmax(0, 1fr) minmax(98px, auto) 16px; gap: 12px; align-items: center; min-height: 58px; border-bottom: 1px solid var(--grid); padding: 10px 20px; color: inherit; text-decoration: none; transition: background-color var(--motion-fast) ease; }
.subject-career-signal-row:last-child { border-bottom: 0; }
.subject-career-signal-row > span { color: var(--label); font-size: 8px; font-variant-numeric: tabular-nums; }
.subject-career-signal-row > strong { min-width: 0; overflow: hidden; font-family: var(--display-serif); font-size: 16px; font-weight: 590; letter-spacing: -.02em; text-overflow: ellipsis; white-space: nowrap; }
.subject-career-signal-row > small { display: grid; gap: 3px; justify-items: end; font-size: 11px; font-variant-numeric: tabular-nums; font-weight: 690; white-space: nowrap; }
.subject-career-signal-row > small em { color: var(--label); font-size: 7px; font-style: normal; font-weight: 540; letter-spacing: .04em; }
.subject-career-signal-row > i { color: var(--hero-text); }
.subject-career-signal-row:hover, .subject-career-signal-row:focus-visible { background: color-mix(in srgb, var(--hero-text) 5%, transparent); outline-offset: -3px; }
.subject-career-signal-row:hover > strong, .subject-career-signal-row:focus-visible > strong { color: var(--hero-text); }
.subject-career-signal-row:hover > i, .subject-career-signal-row:focus-visible > i { transform: translateX(4px); }

.subject-ranking-index-header { align-items: end; }
.subject-ranking-index-note {
  display: grid;
  grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr);
  gap: clamp(24px, 5vw, 90px);
  border-block: 1px solid var(--grid);
  padding: 28px 0;
}

.subject-ranking-index-note h2 {
  max-width: 20ch;
  margin: 8px 0 0;
  font-family: var(--display-serif);
  font-size: clamp(25px, 3vw, 40px);
  font-weight: 600;
  line-height: 1.05;
}

.subject-ranking-index-note > p { max-width: 68ch; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.65; }
.subject-ranking-index-directory > header { display: flex; justify-content: space-between; gap: 20px; align-items: end; border-bottom: 1px solid var(--grid); padding-bottom: 18px; }
.subject-ranking-index-directory h2 { margin: 8px 0 0; font-family: var(--display-serif); font-size: clamp(26px, 3vw, 42px); font-weight: 600; }
.subject-ranking-index-directory > header > strong { color: var(--hero-text); font-family: var(--display-serif); font-size: clamp(48px, 7vw, 86px); line-height: .8; }
.subject-ranking-index-directory > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-left: 1px solid var(--grid); border-top: 1px solid var(--grid); }
.subject-ranking-index-card { min-height: 190px; display: grid; grid-template-rows: auto 1fr auto; gap: 18px; border-right: 1px solid var(--grid); border-bottom: 1px solid var(--grid); padding: 20px; color: inherit; text-decoration: none; }
.subject-ranking-index-card:hover h3, .subject-ranking-index-card:focus-visible h3 { color: var(--hero-text); text-decoration: underline; text-underline-offset: 4px; }
.subject-ranking-index-card > header, .subject-ranking-index-card > footer { display: flex; justify-content: space-between; gap: 14px; align-items: baseline; }
.subject-ranking-index-card > header span, .subject-ranking-index-card > footer span { color: var(--muted); font-size: 10px; }
.subject-ranking-index-card code { color: var(--hero-text); font-size: 10px; }
.subject-ranking-index-card h3 { margin: 0; font-family: var(--display-serif); font-size: clamp(21px, 2.2vw, 31px); font-weight: 600; line-height: 1.05; }
.subject-ranking-index-card p { margin: 9px 0 0; color: var(--muted); font-size: 11px; line-height: 1.45; }
.subject-ranking-index-card > footer { border-top: 1px solid var(--grid); padding-top: 12px; }
.subject-ranking-index-card > footer strong { color: var(--hero-text); font-size: 11px; }
.subject-ranking-index-card > footer i { font-style: normal; }
.subject-ranking-actions { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: baseline; }
.subject-ranking-review-link { color: var(--hero-text); font-size: 11px; font-weight: 760; text-decoration: none; }
.subject-ranking-review-link:hover, .subject-ranking-review-link:focus-visible { text-decoration: underline; text-underline-offset: 4px; }

@media (min-width: 761px) and (max-width: 900px) {
  .community-decision-paths > header,
  .subject-ranking-index-note { grid-template-columns: 1fr; }
  .community-decision-paths h2 { max-width: none; }
  .community-decision-paths__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .subject-ranking-index-directory > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .community-decision-paths__grid,
  .subject-ranking-index-directory > div { grid-template-columns: 1fr; }
  .community-decision-card { min-height: 145px; }
  .subject-ranking-gateway { grid-template-columns: 1fr; align-items: start; }
  .subject-ranking-gateway .primary-button { justify-self: start; }
  .subject-ranking-index-directory > header { align-items: start; }
  .subject-career-discovery > header { grid-template-columns: 1fr; gap: 18px; }
  .subject-career-journey { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .subject-career-journey li { grid-template-columns: 1fr; gap: 5px; border-right: 1px solid var(--grid); padding: 11px 10px; }
  .subject-career-journey li:last-child { border-right: 0; }
  .subject-career-paths, .subject-career-signal-grid { grid-template-columns: 1fr; }
  .subject-career-path { min-height: 0; }
  .subject-career-path dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .subject-career-signals > header { grid-template-columns: 1fr; gap: 14px; }
  .subject-career-signal-row { grid-template-columns: 24px minmax(0, 1fr) auto; padding-inline: 14px; }
  .subject-career-signal-row > small { grid-column: 2; grid-row: 2; justify-items: start; }
  .subject-career-signal-row > i { grid-column: 3; grid-row: 1 / span 2; }
}

@media (min-width: 641px) and (max-width: 980px) {
  .subject-career-discovery > header { grid-template-columns: 1fr; }
  .subject-career-journey { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .subject-career-journey li { border-right: 1px solid var(--grid); padding-inline: 12px; }
  .subject-career-journey li:last-child { border-right: 0; }
  .subject-career-signals > header { grid-template-columns: 1fr; gap: 14px; }
}

@media (min-width: 641px) and (max-width: 760px) {
  .subject-career-paths, .subject-career-signal-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .subject-career-path, .subject-career-path > strong i, .subject-career-signal-row, .subject-career-signal-row > i { transition: none; }
  .subject-career-path:hover > strong i, .subject-career-path:focus-visible > strong i, .subject-career-signal-row:hover > i, .subject-career-signal-row:focus-visible > i { transform: none; }
}

/* City directories reuse the compact evidence-row rhythm of the school ranking. */
.global-map-page .map-city-row,
.global-city-directory-board .map-city-row {
  grid-template-columns: 42px minmax(210px, .78fr) minmax(360px, 1.5fr) minmax(170px, .52fr);
  gap: clamp(16px, 1.8vw, 26px);
  min-height: 0;
  align-items: center;
  padding: 18px 0;
}

.map-city-row .map-school-row-index { align-self: center; padding-top: 0; }
.map-city-row .map-school-row-identity h3 { font-size: clamp(21px, 2.1vw, 29px); }
.map-city-row .map-school-row-identity h3 a { color: inherit; text-decoration: none; }
.map-city-row .map-school-row-identity h3 a:hover,
.map-city-row .map-school-row-identity h3 a:focus-visible { color: var(--hero-text); text-decoration: underline; text-underline-offset: 4px; }
.map-city-row .map-school-row-identity > p:last-child { margin-top: 5px; }

.map-city-row-institutions {
  min-width: 0;
  display: grid;
  align-content: center;
  gap: 7px;
}
.map-city-row-institutions > span,
.map-city-row-count > span {
  display: block;
  margin: 0;
  color: var(--label);
  font-size: var(--map-font-meta);
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.map-city-row-institutions ul { display: grid; min-width: 0; gap: 5px; margin: 0; padding: 0; list-style: none; }
.map-city-row-institutions li { min-width: 0; max-width: 100%; }
.map-city-row-institutions li:not(:last-child)::after { content: none; }
.map-city-row-institutions a { color: var(--text); font-size: 13px; font-weight: 650; line-height: 1.45; overflow-wrap: break-word; text-decoration: none; }
.map-city-row-institutions a:hover,
.map-city-row-institutions a:focus-visible { color: var(--hero-text); text-decoration: underline; text-underline-offset: 3px; }
.map-city-row-institutions p,
.map-city-row-institutions small { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.4; }

.map-city-row-actions {
  min-width: 0;
  display: grid;
  align-content: center;
  gap: 11px;
  border-left: 1px solid var(--grid);
  padding-left: 18px;
}
.map-city-row-count { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; align-items: end; }
.map-city-row-count strong { display: block; color: var(--hero-text); font-family: var(--display-serif); font-size: 34px; font-weight: 620; line-height: .86; }
.map-city-row-count > span { padding-bottom: 2px; line-height: 1.25; }
.map-city-row .map-city-row-link {
  width: 100%;
  min-height: 38px;
  grid-column: auto;
  grid-row: auto;
  justify-content: space-between;
  border-top: 1px solid var(--grid);
  padding-top: 8px;
  white-space: normal;
}

.global-city-directory-board { margin-top: clamp(22px, 3vw, 38px); }
.global-city-directory-board > header { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px; align-items: end; border-bottom: 1px solid var(--grid); padding-bottom: 13px; }
.global-city-directory-board > header p { margin: 0; }
.global-city-directory-board > header strong { color: var(--hero-text); font-size: 20px; font-weight: 720; }
.global-city-directory-board > p { max-width: 78ch; margin: 12px 0 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.global-city-directory-board .map-school-list { margin-top: 17px; }

@media (max-width: 1100px) {
  .global-map-page .map-city-row,
  .global-city-directory-board .map-city-row { grid-template-columns: 36px minmax(190px, .8fr) minmax(280px, 1.35fr) minmax(155px, .55fr); gap: 14px 18px; }
  .map-city-row-institutions li:nth-child(n + 3) { display: none; }
}

@media (max-width: 860px) {
  .global-map-page .map-city-row,
  .global-city-directory-board .map-city-row { grid-template-columns: 34px minmax(0, 1fr) minmax(150px, .44fr); gap: 12px 16px; padding: 16px 0; }
  .map-city-row .map-school-row-index { grid-column: 1; grid-row: 1; align-self: start; padding-top: 5px; }
  .map-city-row .map-school-row-identity { grid-column: 2; grid-row: 1; }
  .map-city-row-actions { grid-column: 3; grid-row: 1; }
  .map-city-row-institutions { grid-column: 2 / -1; grid-row: 2; border-top: 1px solid var(--grid); padding-top: 12px; }
}

@media (max-width: 620px) {
  .global-map-page .map-city-row,
  .global-city-directory-board .map-city-row { grid-template-columns: minmax(0, 1fr) auto; }
  .map-city-row .map-school-row-index { display: none; }
  .map-city-row .map-school-row-identity { grid-column: 1; }
  .map-city-row-actions { grid-column: 2; min-width: 138px; }
  .map-city-row-institutions { grid-column: 1 / -1; }
}

@media (max-width: 460px) {
  .global-map-page .map-city-row,
  .global-city-directory-board .map-city-row { grid-template-columns: minmax(0, 1fr); }
  .map-city-row .map-school-row-identity,
  .map-city-row-institutions,
  .map-city-row-actions { grid-column: 1; }
  .map-city-row-institutions { grid-row: 2; }
  .map-city-row-actions { grid-row: 3; grid-template-columns: auto minmax(0, 1fr); align-items: center; border-left: 0; border-top: 1px solid var(--grid); padding: 11px 0 0; }
  .map-city-row .map-city-row-link { border-top: 0; padding-top: 0; }
}

/* 2026-08 information-architecture consolidation: source-native data, shared editorial shell. */
.subject-entry-map,
.subject-taxonomy-overview,
.subject-name-directory,
.outcome-source-map {
  scroll-margin-top: 92px;
}

.subject-entry-map {
  border-block: 1px solid var(--grid);
  display: grid;
  grid-template-columns: minmax(240px, .72fr) minmax(0, 1.28fr);
  gap: clamp(30px, 6vw, 88px);
  padding: clamp(30px, 5vw, 58px) 0;
}
.subject-entry-map > header h2,
.subject-taxonomy-overview > header h2,
.subject-section-heading h2,
.outcome-source-map > header h2,
.course-source-navigation h2 {
  margin: 0;
  font-family: var(--display-serif);
  font-size: clamp(30px, 4vw, 52px);
  font-weight: 600;
  letter-spacing: -.025em;
  line-height: 1;
}
.subject-entry-map > header > p:last-child,
.subject-taxonomy-overview > header > p,
.subject-section-heading > p:last-child,
.outcome-source-map > header > p,
.course-source-navigation > div > p:last-child {
  max-width: 62ch;
  color: var(--muted);
  line-height: 1.7;
}
.subject-entry-map > div {
  border-top: 1px solid var(--grid);
}
.subject-entry-map > div > a {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 8px 20px;
  border-bottom: 1px solid var(--grid);
  padding: 22px 4px;
  color: inherit;
  text-decoration: none;
}
.subject-entry-map > div > a > span,
.subject-taxonomy-grid > a > span,
.outcome-source-map article > span,
.outcome-source-map a > span,
.subject-research-status article > span {
  color: var(--hero-text);
  font-family: var(--display-serif);
  font-size: 18px;
  font-weight: 700;
}
.subject-entry-map h3 { margin: 0; font-size: 18px; }
.subject-entry-map a > p { grid-column: 2; margin: 0; color: var(--muted); line-height: 1.6; }
.subject-entry-map a > strong { grid-column: 2; margin-top: 7px; font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.subject-entry-map i,
.subject-taxonomy-grid i,
.outcome-source-map i,
.subject-research-status i { font-style: normal; }

.subject-name-directory {
  display: grid;
  gap: 20px;
}
.subject-section-heading {
  display: grid;
  grid-template-columns: minmax(240px, .8fr) minmax(0, 1.2fr);
  gap: 20px 70px;
  align-items: end;
}
.subject-section-heading .kicker { grid-column: 1 / -1; }
.subject-section-heading > p:last-child { margin: 0; }

.subject-taxonomy-overview {
  display: grid;
  gap: 26px;
}
.subject-taxonomy-overview > header {
  display: grid;
  grid-template-columns: minmax(260px, .9fr) minmax(0, 1.1fr);
  gap: 32px 70px;
  align-items: end;
  border-bottom: 1px solid var(--grid);
  padding-bottom: 24px;
}
.subject-taxonomy-overview > header .kicker { grid-column: 1 / -1; }
.subject-taxonomy-overview > header > p { margin: 0; }
.subject-taxonomy-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--grid);
  border-left: 1px solid var(--grid);
}
.subject-taxonomy-grid > a {
  min-height: 220px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-content: start;
  gap: 8px 18px;
  border-right: 1px solid var(--grid);
  border-bottom: 1px solid var(--grid);
  padding: 22px;
  color: inherit;
  text-decoration: none;
}
.subject-taxonomy-grid small { color: var(--muted); font-size: 9px; letter-spacing: .1em; }
.subject-taxonomy-grid h3 { margin: 5px 0 0; font-family: var(--display-serif); font-size: clamp(24px, 2.4vw, 34px); font-weight: 600; }
.subject-taxonomy-grid p { margin: 10px 0 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.subject-taxonomy-grid > a > strong { grid-column: 2; align-self: end; margin-top: auto; padding-top: 20px; font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }

.subject-profile-nav {
  position: sticky;
  top: 72px;
  z-index: 8;
  display: flex;
  overflow-x: auto;
  border-block: 1px solid var(--grid);
  background: color-mix(in srgb, var(--bg) 94%, transparent);
  backdrop-filter: blur(16px);
  scrollbar-width: none;
}
.subject-profile-nav::-webkit-scrollbar { display: none; }
.subject-profile-nav a {
  min-height: 54px;
  display: inline-flex;
  flex: 1 0 max-content;
  align-items: center;
  justify-content: center;
  border-right: 1px solid var(--grid);
  padding: 0 22px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 720;
  letter-spacing: .08em;
  text-decoration: none;
  text-transform: uppercase;
}
.subject-profile-nav a.is-active {
  background: var(--text);
  color: var(--surface);
}
.subject-direction-actions { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.subject-direction-actions article { min-height: 250px; }

.subject-research-status,
.outcome-source-map > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--grid);
  border-left: 1px solid var(--grid);
}
.subject-research-status article,
.outcome-source-map article,
.outcome-source-map > div > a {
  min-height: 260px;
  display: grid;
  align-content: start;
  gap: 16px;
  border-right: 1px solid var(--grid);
  border-bottom: 1px solid var(--grid);
  padding: clamp(22px, 3vw, 34px);
}
.subject-research-status article[data-state="missing"],
.outcome-source-map > div > a { background: color-mix(in srgb, var(--grid) 9%, transparent); }
.subject-research-status h2,
.outcome-source-map h3 { margin: 0; font-family: var(--display-serif); font-size: clamp(26px, 3vw, 40px); font-weight: 600; line-height: 1.08; }
.subject-research-status p,
.outcome-source-map article p,
.outcome-source-map a p { margin: 0; color: var(--muted); line-height: 1.65; }
.subject-research-status a,
.outcome-source-map a { color: inherit; }
.subject-research-status article > a,
.outcome-source-map a > strong { align-self: end; margin-top: auto; font-size: 10px; font-weight: 740; letter-spacing: .06em; text-transform: uppercase; }

.course-source-navigation,
.outcome-source-map > header {
  display: grid;
  grid-template-columns: minmax(260px, .9fr) minmax(0, 1.1fr);
  gap: 30px 70px;
  align-items: end;
  border-block: 1px solid var(--grid);
  padding: 28px 0;
}
.course-source-navigation nav {
  display: flex;
  justify-content: flex-end;
  overflow-x: auto;
}
.course-source-navigation nav a {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--grid);
  padding: 0 18px;
  color: inherit;
  font-size: 10px;
  font-weight: 720;
  letter-spacing: .07em;
  text-decoration: none;
  text-transform: uppercase;
}
.course-source-navigation nav a + a { border-left: 0; }
.course-source-navigation nav a.is-active { background: var(--text); color: var(--surface); }
.outcome-source-map { display: grid; gap: 22px; }
.outcome-source-map > header { border-top: 0; }
.outcome-source-map > div > a { text-decoration: none; }

@media (max-width: 1040px) {
  .subject-direction-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 780px) {
  .subject-entry-map,
  .subject-section-heading,
  .subject-taxonomy-overview > header,
  .course-source-navigation,
  .outcome-source-map > header { grid-template-columns: 1fr; gap: 20px; }
  .subject-taxonomy-grid,
  .subject-research-status,
  .outcome-source-map > div { grid-template-columns: 1fr; }
  .subject-profile-nav { top: 60px; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); }
  .subject-profile-nav a { justify-content: flex-start; padding-inline: 16px; }
  .course-source-navigation nav { justify-content: flex-start; }
}

@media (max-width: 560px) {
  .subject-direction-actions { grid-template-columns: 1fr; }
  .subject-entry-map > div > a,
  .subject-taxonomy-grid > a { grid-template-columns: 34px minmax(0, 1fr); padding-inline: 14px; }
}

/* Accommodation profiles: school identity, real mapped facilities and official room-type prices. */
.housing-school-grid { display: grid; grid-template-columns: 1fr; }
.housing-school-card {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(300px, .8fr);
  gap: clamp(26px, 4vw, 64px);
  min-height: 0;
  padding: clamp(28px, 4vw, 52px) 0;
  border-right: 0;
  border-bottom: 1px solid var(--grid);
}
.housing-school-card__identity { display: grid; align-content: start; gap: 12px; min-width: 0; }
.housing-school-card__identity > .kicker { margin: 0; }
.housing-school-card h2 { max-width: 18ch; font-size: clamp(31px, 3.5vw, 52px); line-height: .98; }
.housing-school-card__identity > p[lang="en"] { margin: -5px 0 6px; color: var(--label); font-size: 11px; }
.housing-school-card__counts { display: flex; flex-wrap: wrap; gap: 7px 18px; color: var(--label); font-size: 10px; }
.housing-school-card__counts span { border-bottom: 1px solid var(--grid); padding-bottom: 5px; }
.housing-school-card__prices { display: grid; gap: 9px; margin-top: 8px; }
.housing-school-card__prices > strong { color: var(--label); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.housing-school-card__action { margin-top: 4px; width: fit-content; }
.housing-local-map { min-width: 0; margin: 0; border: 1px solid var(--grid); background: color-mix(in srgb, var(--surface) 97%, var(--text)); padding: 14px; }
.housing-local-map figcaption { display: grid; gap: 4px; }
.housing-local-map figcaption strong { font-size: 10px; letter-spacing: .05em; text-transform: uppercase; }
.housing-local-map figcaption span,
.housing-local-map > p { color: var(--label); font-size: 8px; line-height: 1.5; }
.housing-local-map > p { margin: 7px 0 0; }
.housing-local-map .lieflat-chart { display: block; width: 100%; height: auto; margin-top: 8px; }
.housing-local-map.is-missing { display: grid; min-height: 220px; align-content: center; gap: 10px; border-top: 1px solid var(--text); border-bottom: 1px solid var(--grid); padding: 24px; }
.housing-local-map.is-missing strong { font-size: 15px; }
.housing-local-map.is-missing p { max-width: 48ch; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.housing-local-map-legend { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 18px; margin: 13px 0 0; padding: 0; list-style: none; }
.housing-local-map-legend li { display: grid; grid-template-columns: 10px minmax(0, 1fr); gap: 0 8px; min-width: 0; align-items: start; }
.housing-local-map-legend li strong { overflow: hidden; font-size: 10px; font-weight: 680; text-overflow: ellipsis; white-space: nowrap; }
.housing-local-map-legend li small { grid-column: 2; margin-top: 3px; color: var(--muted); font-size: 8px; line-height: 1.35; }
.housing-map-key { width: 8px; height: 8px; margin-top: 3px; border: 1px solid var(--paper); border-radius: 50%; background: var(--text); box-shadow: 0 0 0 1px var(--text); }
.housing-map-key.is-property { background: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.housing-map-radius { fill: color-mix(in srgb, var(--accent) 4%, transparent); stroke: color-mix(in srgb, var(--accent) 32%, var(--grid)); stroke-dasharray: 3 4; }
.housing-map-place { fill: var(--text); opacity: .52; }
.housing-map-school-halo { fill: color-mix(in srgb, var(--accent) 18%, transparent); stroke: var(--accent); }
.housing-map-school { fill: var(--accent); }
.housing-room-prices { display: grid; gap: 8px; }
.housing-price-row { display: grid; grid-template-columns: minmax(112px, .72fr) minmax(70px, 1fr) auto; gap: 12px; align-items: center; min-width: 0; }
.housing-price-row > div { display: grid; gap: 2px; min-width: 0; }
.housing-price-row strong { overflow: hidden; font-size: 10px; font-weight: 690; text-overflow: ellipsis; white-space: nowrap; }
.housing-price-row small { color: var(--label); font-size: 7px; font-weight: 500; }
.housing-price-track { height: 1px; background: var(--grid); }
.housing-price-track i { display: block; width: var(--housing-price-width); height: 3px; background: var(--accent); transform: translateY(-1px); }
.housing-price-row b { font-size: 10px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.housing-price-empty { margin: 0; color: var(--label); font-size: 10px; }
.housing-detail-overview { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(310px, .9fr); gap: clamp(34px, 6vw, 92px); align-items: start; margin: clamp(32px, 5vw, 70px) 0; }
.housing-detail-overview > div:first-child { display: grid; gap: 14px; }
.housing-detail-overview .product-actions { margin-top: 0; }
.housing-detail-price-stack { display: grid; gap: 30px; }
.housing-detail-price-stack .housing-detail-price-panel + .housing-detail-price-panel { padding-top: 28px; border-top: 1px solid var(--grid); }
.housing-detail-price-panel { display: grid; gap: 20px; padding-top: 8px; }
.housing-detail-price-panel h2,
.housing-detail-lists h2 { margin: 4px 0 8px; font-family: var(--display-serif); font-size: clamp(32px, 4vw, 52px); font-weight: 540; letter-spacing: -.045em; line-height: 1; }
.housing-detail-price-panel .housing-price-row { grid-template-columns: minmax(128px, .8fr) minmax(80px, 1fr) auto; min-height: 42px; border-bottom: 1px solid var(--grid); }
.housing-detail-lists { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-block: 1px solid var(--text); }
.housing-detail-source-lists { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.housing-detail-lists > section { min-width: 0; padding: clamp(28px, 4vw, 52px) clamp(22px, 4vw, 54px) clamp(34px, 5vw, 66px) 0; }
.housing-detail-lists > section + section { border-left: 1px solid var(--grid); padding-right: 0; padding-left: clamp(22px, 4vw, 54px); }
.housing-detail-lists ul { margin: 22px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--grid); }
.housing-detail-lists li { border-bottom: 1px solid var(--grid); }
.housing-detail-lists li a { display: grid; gap: 4px; padding: 13px 0; color: var(--text); text-decoration: none; }
.housing-detail-lists li a:hover { color: var(--accent); }
.housing-detail-lists li strong { font-size: 13px; line-height: 1.35; }
.housing-detail-lists li span { overflow: hidden; color: var(--label); font-size: 10px; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }

@media (max-width: 820px) {
  .housing-school-card,
  .housing-detail-overview,
  .housing-detail-lists { grid-template-columns: 1fr; }
  .housing-school-card { gap: 22px; }
  .housing-local-map { max-width: 560px; }
  .housing-detail-lists > section { padding-right: 0; }
  .housing-detail-lists > section + section { border-top: 1px solid var(--grid); border-left: 0; padding-left: 0; }
}

@media (max-width: 480px) {
  .housing-price-row { grid-template-columns: minmax(106px, 1fr) auto; }
  .housing-price-track { display: none; }
  .housing-local-map { padding: 10px; }
  .housing-local-map-legend { grid-template-columns: 1fr; }
}

/* Primary navigation readability: keep the five destinations legible at every width. */
.primary-nav .product-nav-link { font-size: 14.4px; }

@media (max-width: 1359px) {
  .primary-nav .product-nav-link { font-size: 13.2px; }
}

/* Connected ranking surfaces: subject directory → school comparison → evidence detail. */
.subject-ranking-index-header-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}

.subject-ranking-index-filters,
.institution-ranking-filters,
.subject-ranking-result-filters {
  display: grid;
  grid-template-columns: minmax(190px, 1.35fr) repeat(2, minmax(170px, .8fr)) auto;
  gap: 14px;
  align-items: end;
  border-block: 1px solid var(--grid);
  margin: 28px 0 34px;
  padding: 18px 0;
}

.subject-ranking-index-filters > div,
.institution-ranking-filters > div { grid-column: 1 / -1; }
.subject-ranking-index-filters h2,
.institution-ranking-filters h2 { margin: 7px 0 0; font-family: var(--display-serif); font-size: clamp(24px, 3vw, 38px); font-weight: 600; line-height: 1; }
.subject-ranking-index-filters label,
.institution-ranking-filters label,
.subject-ranking-result-filters label { display: grid; gap: 7px; }
.subject-ranking-index-filters label > span,
.institution-ranking-filters label > span,
.subject-ranking-result-filters label > span { color: var(--muted); font-size: 10px; font-weight: 760; letter-spacing: .08em; text-transform: uppercase; }
.subject-ranking-index-filters input,
.subject-ranking-index-filters select,
.institution-ranking-filters input,
.institution-ranking-filters select,
.subject-ranking-result-filters select { min-height: 42px; border: 1px solid var(--grid); border-radius: 0; background: transparent; color: var(--text); padding: 0 12px; font: inherit; font-size: 12px; }
.subject-ranking-index-filters option,
.institution-ranking-filters option,
.subject-ranking-result-filters option { background: var(--ink); color: var(--paper); }
.subject-ranking-filter-status,
.institution-ranking-filters + .product-boundary,
.subject-ranking-result-filters > p:last-child { grid-column: 1 / -1; margin: 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.subject-ranking-index-card[hidden],
.subject-ranking-list [hidden] { display: none; }
.subject-ranking-result-filters { grid-template-columns: minmax(190px, 1fr) minmax(180px, .75fr) minmax(180px, .75fr); margin: 22px 0; padding: 16px 0; }
.subject-ranking-result-filters > .kicker { margin: 0; align-self: center; }
.subject-ranking-result-filters > p:last-child { grid-column: auto; align-self: end; }
.subject-ranking-direction-status { margin: 14px 0 0; font-size: 11px; font-weight: 760; line-height: 1.5; }
.subject-ranking-direction-status[data-state="mapped"] { color: var(--hero-text); }
.subject-ranking-direction-status[data-state="unmapped"] { color: var(--muted); }

.institution-decision-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 28px;
  align-items: end;
  border-block: 1px solid var(--grid);
  padding: clamp(30px, 5vw, 68px) 0;
}
.institution-decision-hero h2 { max-width: 18ch; margin: 8px 0 12px; font-family: var(--display-serif); font-size: clamp(34px, 4.8vw, 68px); font-weight: 600; letter-spacing: -.04em; line-height: .96; }
.institution-decision-hero p:last-child { max-width: 66ch; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.65; }
.institution-publisher-strip { border-top: 1px solid var(--grid); padding-top: 36px; }
.institution-publisher-strip > header { max-width: 760px; margin-bottom: 24px; }
.institution-publisher-strip h2 { max-width: 18ch; margin: 8px 0 12px; font-family: var(--display-serif); font-size: clamp(30px, 4vw, 56px); font-weight: 600; line-height: 1; }
.institution-publisher-strip > header > p:last-child { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.65; }
.institution-publisher-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-left: 1px solid var(--grid); border-top: 1px solid var(--grid); }
.institution-publisher-card { min-height: 250px; display: grid; grid-template-rows: auto auto auto 1fr auto; gap: 14px; border-right: 1px solid var(--grid); border-bottom: 1px solid var(--grid); padding: 20px; }
.institution-publisher-card > header { display: flex; justify-content: space-between; gap: 12px; color: var(--hero-text); font-size: 10px; font-weight: 780; letter-spacing: .08em; text-transform: uppercase; }
.institution-publisher-card h3 { margin: 0; font-family: var(--display-serif); font-size: 27px; font-weight: 600; line-height: 1.03; }
.institution-publisher-card p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.institution-publisher-card dl { margin: 0; }
.institution-publisher-card dl > div { border-top: 1px solid var(--grid); padding-top: 10px; }
.institution-publisher-card dt { color: var(--muted); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.institution-publisher-card dd { margin: 5px 0 0; font-size: 11px; }
.institution-publisher-card .entity-link { color: var(--hero-text); font-size: 10px; font-weight: 760; text-decoration: none; }
.institution-publisher-card .entity-link:hover, .institution-publisher-card .entity-link:focus-visible { text-decoration: underline; text-underline-offset: 4px; }

.institution-ranking-page { gap: 50px; }
.institution-ranking-header { align-items: end; }
.institution-ranking-own { border-top: 1px solid var(--grid); padding-top: 36px; }
.institution-ranking-own > header { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: end; }
.institution-ranking-own > header h2 { max-width: 18ch; margin: 8px 0 12px; font-family: var(--display-serif); font-size: clamp(32px, 4.3vw, 60px); font-weight: 600; line-height: .98; }
.institution-ranking-own > header p:last-child { max-width: 67ch; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.65; }
.institution-ranking-own > header > strong { color: var(--hero-text); font-family: var(--display-serif); font-size: clamp(52px, 8vw, 104px); line-height: .78; }
.institution-ranking-filters { grid-template-columns: repeat(5, minmax(118px, 1fr)) auto; }
.institution-ranking-filters > div { grid-column: 1 / -1; }
.institution-ranking-filters + .product-boundary { margin-top: -12px; }
.institution-ranking-cohort-pending { grid-column: 1 / -1; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.institution-directory-entry,
.institution-directory-ranking-entry {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: end;
  border-block: 1px solid var(--grid);
  padding: clamp(26px, 4vw, 48px) 0;
}
.institution-directory-entry h2,
.institution-directory-ranking-entry h2 { max-width: 22ch; margin: 8px 0 10px; font-family: var(--display-serif); font-size: clamp(28px, 4vw, 52px); font-weight: 600; letter-spacing: -.035em; line-height: .98; }
.institution-directory-entry p:last-child,
.institution-directory-ranking-entry p:last-child { max-width: 72ch; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.institution-directory-ranking-entry { border-top: 0; }
.institution-ranking-coverage { border-block: 1px solid var(--grid); padding: 28px 0; }
.institution-ranking-coverage > header { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 18px 28px; margin-bottom: 20px; }
.institution-ranking-coverage h2 { margin: 7px 0 10px; font-family: var(--display-serif); font-size: clamp(25px, 3vw, 42px); font-weight: 600; line-height: 1; }
.institution-ranking-coverage > header p:not(.kicker) { max-width: 72ch; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.institution-ranking-coverage__identity { max-width: 26ch; color: var(--hero-text); font-size: 10px; font-weight: 760; line-height: 1.45; text-align: right; }
.institution-ranking-coverage__grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-left: 1px solid var(--grid); border-top: 1px solid var(--grid); }
.institution-ranking-coverage__grid article { min-height: 110px; display: grid; align-content: space-between; gap: 18px; border-right: 1px solid var(--grid); border-bottom: 1px solid var(--grid); padding: 16px; }
.institution-ranking-coverage__grid article strong { font-family: var(--display-serif); font-size: 17px; font-weight: 600; line-height: 1.08; }
.institution-ranking-coverage__grid article span { color: var(--muted); font-size: 10px; line-height: 1.45; }
.institution-ranking-coverage__grid article p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.institution-ranking-coverage__grid article .institution-ranking-coverage__status { color: var(--hero-text); font-size: 10px; font-weight: 760; }
.institution-ranking-coverage__grid article .institution-ranking-coverage__status[data-state="coverage-only"] { color: var(--muted); }
.institution-ranking-coverage__grid article a { color: var(--hero-text); font-size: 10px; font-weight: 760; text-decoration: none; }
.institution-ranking-coverage__grid article a:hover, .institution-ranking-coverage__grid article a:focus-visible { text-decoration: underline; text-underline-offset: 4px; }
.institution-ranking-empty { display: grid; gap: 12px; border: 1px solid var(--grid); padding: clamp(28px, 5vw, 64px); }
.institution-ranking-empty strong { max-width: 20ch; font-family: var(--display-serif); font-size: clamp(28px, 4vw, 52px); font-weight: 600; line-height: 1; }
.institution-ranking-empty p { max-width: 70ch; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.65; }
.institution-ranking-empty[data-state="published-empty"] { background: color-mix(in srgb, var(--grid) 8%, transparent); }
.institution-ranking-list { border-left: 1px solid var(--grid); border-top: 1px solid var(--grid); }
.institution-ranking-row { display: grid; grid-template-columns: 105px minmax(0, 1fr) 140px minmax(220px, .8fr); gap: 24px; border-right: 1px solid var(--grid); border-bottom: 1px solid var(--grid); padding: 24px; }
.institution-ranking-row__rank { display: grid; align-content: start; gap: 8px; }
.institution-ranking-row__rank span { color: var(--hero-text); font-family: var(--display-serif); font-size: clamp(42px, 5vw, 70px); font-weight: 700; line-height: .82; }
.institution-ranking-row__rank small { color: var(--muted); font-size: 9px; line-height: 1.45; text-transform: uppercase; }
.institution-ranking-row__identity h3 { margin: 7px 0 8px; font-family: var(--display-serif); font-size: clamp(25px, 3vw, 38px); font-weight: 600; line-height: 1; }
.institution-ranking-row__identity h3 a { color: inherit; text-decoration: none; }
.institution-ranking-row__identity h3 a:hover, .institution-ranking-row__identity h3 a:focus-visible { color: var(--hero-text); text-decoration: underline; text-underline-offset: 4px; }
.institution-ranking-row__identity > p:not(.kicker) { margin: 0; color: var(--muted); font-size: 11px; }
.institution-ranking-row__links { display: flex; flex-wrap: wrap; gap: 10px 18px; margin-top: 18px; }
.institution-ranking-row__links a { color: var(--hero-text); font-size: 10px; font-weight: 760; text-decoration: none; }
.institution-ranking-row__links a:hover, .institution-ranking-row__links a:focus-visible { text-decoration: underline; text-underline-offset: 4px; }
.institution-ranking-row__score { display: grid; align-content: start; gap: 7px; border-left: 1px solid var(--grid); padding-left: 20px; }
.institution-ranking-row__score strong { font-family: var(--display-serif); font-size: 42px; font-weight: 600; line-height: .85; }
.institution-ranking-row__score span, .institution-ranking-row__score small { color: var(--muted); font-size: 9px; line-height: 1.45; }
.institution-ranking-row__metrics { margin: 0; }
.institution-ranking-row__metrics > div { display: grid; grid-template-columns: 1fr auto; gap: 12px; border-top: 1px solid var(--grid); padding: 8px 0; }
.institution-ranking-row__metrics dt { color: var(--muted); font-size: 9px; }
.institution-ranking-row__metrics dd { margin: 0; font-size: 10px; font-weight: 740; }
.institution-ranking-continue { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: end; border-block: 1px solid var(--grid); padding: 30px 0; }
.institution-ranking-continue h2 { max-width: 28ch; margin: 8px 0 0; font-family: var(--display-serif); font-size: clamp(25px, 3vw, 40px); font-weight: 600; line-height: 1.05; }
.institution-ranking-continue nav { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }

.institution-detail-ranking-callout { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: end; border-block: 1px solid var(--grid); padding: 28px 0; }
.institution-detail-ranking-callout h2 { max-width: 22ch; margin: 8px 0 10px; font-family: var(--display-serif); font-size: clamp(26px, 3.4vw, 48px); font-weight: 600; line-height: 1; }
.institution-detail-ranking-callout p:last-child { max-width: 68ch; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.institution-detail-ranking-callout[data-state="unavailable"] { background: color-mix(in srgb, var(--grid) 7%, transparent); }
.institution-detail-continuation { border-top: 1px solid var(--grid); padding-top: 34px; }
.institution-detail-continuation > header { max-width: 760px; margin-bottom: 24px; }
.institution-detail-continuation h2 { max-width: 26ch; margin: 8px 0 0; font-family: var(--display-serif); font-size: clamp(27px, 3.6vw, 48px); font-weight: 600; line-height: 1.02; }
.institution-detail-continuation-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-left: 1px solid var(--grid); border-top: 1px solid var(--grid); }
.institution-detail-continuation-grid article { min-height: 230px; display: grid; grid-template-rows: auto auto 1fr auto; gap: 12px; border-right: 1px solid var(--grid); border-bottom: 1px solid var(--grid); padding: 20px; }
.institution-detail-continuation-grid article > span { color: var(--hero-text); font-family: var(--display-serif); font-size: 20px; font-weight: 700; }
.institution-detail-continuation-grid h3 { margin: 0; font-family: var(--display-serif); font-size: 25px; font-weight: 600; line-height: 1.05; }
.institution-detail-continuation-grid p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.institution-detail-continuation-grid nav { display: flex; flex-wrap: wrap; gap: 8px 16px; }
.institution-detail-continuation-grid nav a { color: var(--hero-text); font-size: 10px; font-weight: 760; text-decoration: none; }
.institution-detail-continuation-grid nav a:hover, .institution-detail-continuation-grid nav a:focus-visible { text-decoration: underline; text-underline-offset: 4px; }

/* Readable global school profile: user-facing fields first, technical identity stays in the data layer. */
.institution-profile-page { display: grid; min-width: 0; }
.institution-profile-page > .route-section-nav { display: none; }
.institution-profile-breadcrumb { margin: 0 0 18px; }
.institution-profile-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
  gap: clamp(34px, 7vw, 104px);
  align-items: end;
  border-block: 1px solid var(--grid);
  padding: clamp(30px, 5vw, 70px) 0 clamp(28px, 4vw, 54px);
}
.institution-profile-identity { display: grid; min-width: 0; gap: 10px; }
.institution-profile-identity h1 { max-width: 18ch; margin: 0; font-family: var(--display-serif); font-size: clamp(46px, 7.2vw, 94px); font-weight: 520; letter-spacing: -.055em; line-height: .94; overflow-wrap: anywhere; }
.institution-profile-english-name { max-width: 48ch; margin: 3px 0 0; color: var(--label); font-size: clamp(15px, 1.55vw, 22px); font-weight: 620; line-height: 1.28; }
.institution-profile-location { margin: 5px 0 0; color: var(--muted); font-size: var(--type-body); line-height: var(--leading-readable); }
.institution-profile-chips { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 8px; }
.institution-profile-chips span { border: 1px solid var(--grid); border-radius: 999px; padding: 6px 10px; color: var(--label); font-size: var(--type-meta); font-weight: 720; }
.institution-profile-hero > aside { display: grid; align-content: end; gap: 18px; }
.institution-profile-hero > aside > p { max-width: 48ch; margin: 0; color: var(--label); font-size: var(--type-body-sm); line-height: var(--leading-readable); }
.institution-profile-hero > aside nav { display: flex; flex-wrap: wrap; gap: 8px; }

.institution-profile-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid var(--grid); }
.institution-profile-facts > div { display: grid; min-width: 0; min-height: 112px; align-content: center; gap: 10px; border-left: 1px solid var(--grid); padding: 18px clamp(14px, 2.2vw, 30px); }
.institution-profile-facts > div:first-child { border-left: 0; padding-left: 0; }
.institution-profile-facts span { color: var(--muted); font-size: var(--type-meta); font-weight: 740; letter-spacing: .055em; text-transform: uppercase; }
.institution-profile-facts strong { font-size: clamp(15px, 1.55vw, 21px); font-weight: 680; line-height: 1.25; }

.institution-profile-source-boundary { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px clamp(28px, 5vw, 72px); align-items: end; border-bottom: 1px solid var(--grid); padding: 20px 0; }
.institution-profile-source-boundary > div { display: grid; gap: 7px; }
.institution-profile-source-boundary h2 { margin: 0; font-family: var(--display-serif); font-size: clamp(25px, 3vw, 40px); font-weight: 560; letter-spacing: -.035em; line-height: 1; }
.institution-profile-source-boundary p:last-child { max-width: 76ch; margin: 0; color: var(--muted); font-size: var(--type-body-sm); line-height: var(--leading-readable); }
.institution-profile-source-boundary > span { max-width: 24ch; color: var(--label); font-size: var(--type-meta); font-weight: 740; text-align: right; overflow-wrap: anywhere; }

.institution-profile-decisions { margin-top: clamp(46px, 7vw, 92px); }
.institution-profile-decisions > header { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .72fr); gap: 28px clamp(34px, 7vw, 104px); align-items: end; margin-bottom: 24px; }
.institution-profile-decisions > header h2,
.institution-profile-housing h2 { max-width: 16ch; margin: 0; font-family: var(--display-serif); font-size: clamp(34px, 4.8vw, 62px); font-weight: 540; letter-spacing: -.045em; line-height: .98; }
.institution-profile-decisions > header > p:last-child,
.institution-profile-housing header > p:last-child { max-width: 58ch; margin: 0; color: var(--muted); font-size: var(--type-body-sm); line-height: var(--leading-readable); }
.institution-profile-decisions > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-block: 1px solid var(--grid); }
.institution-profile-decision-card { position: relative; display: grid; min-width: 0; min-height: 258px; grid-template-rows: auto auto auto 1fr auto; align-content: start; gap: 10px; border-left: 1px solid var(--grid); padding: 22px clamp(18px, 2.2vw, 30px); }
.institution-profile-decision-card:first-child { border-left: 0; padding-left: 0; }
.institution-profile-decision-card > span { position: absolute; top: 20px; right: 22px; color: var(--hero-text); font-family: var(--display-serif); font-size: 22px; font-weight: 680; }
.institution-profile-decision-card h3 { max-width: 16ch; margin: 0; padding-right: 38px; font-family: var(--display-serif); font-size: clamp(25px, 2.7vw, 38px); font-weight: 560; letter-spacing: -.035em; line-height: 1; }
.institution-profile-decision-card > strong { max-width: 32ch; font-size: var(--type-body-sm); line-height: 1.45; }
.institution-profile-decision-card > p:not(.kicker) { max-width: 38ch; margin: 0; color: var(--muted); font-size: var(--type-body-sm); line-height: var(--leading-readable); }
.institution-profile-decision-card > a { align-self: end; width: fit-content; color: var(--hero-text); font-size: var(--type-meta); font-weight: 760; text-decoration: none; }
.institution-profile-decision-card > a i { display: inline-block; margin-left: 4px; font-size: 17px; font-style: normal; transition: transform var(--motion-fast) var(--ease-out); }
.institution-profile-decision-card > a:hover,
.institution-profile-decision-card > a:focus-visible { text-decoration: underline; text-underline-offset: 4px; }
.institution-profile-decision-card > a:hover i,
.institution-profile-decision-card > a:focus-visible i { transform: translateX(4px); }
.institution-profile-decision-card[data-state="unavailable"] > strong { color: var(--label); }

.institution-profile-housing { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(340px, .92fr); gap: clamp(36px, 7vw, 104px); align-items: stretch; margin-top: clamp(58px, 9vw, 116px); border-top: 1px solid var(--text); padding-top: clamp(24px, 3.4vw, 44px); }
.institution-profile-housing-copy { display: grid; min-width: 0; align-content: start; gap: 20px; }
.institution-profile-housing-copy > header { display: grid; gap: 9px; }
.institution-profile-housing-status { max-width: 34ch; font-size: clamp(18px, 2vw, 28px); line-height: 1.25; }
.institution-profile-housing-copy > p { max-width: 60ch; margin: -8px 0 0; color: var(--muted); font-size: var(--type-body-sm); line-height: var(--leading-readable); }
.institution-profile-housing-copy > nav { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 2px; }
.institution-profile-housing-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 2px 0 0; border-block: 1px solid var(--grid); }
.institution-profile-housing-stats > div { display: grid; min-width: 0; gap: 8px; border-left: 1px solid var(--grid); padding: 16px clamp(12px, 1.8vw, 22px); }
.institution-profile-housing-stats > div:first-child { border-left: 0; padding-left: 0; }
.institution-profile-housing-stats dt,
.institution-profile-housing-facilities > span { color: var(--muted); font-size: var(--type-meta); font-weight: 740; letter-spacing: .04em; }
.institution-profile-housing-stats dd { margin: 0; font-family: var(--display-serif); font-size: clamp(20px, 2.3vw, 32px); font-weight: 620; line-height: 1; }
.institution-profile-housing-facilities { display: grid; gap: 10px; }
.institution-profile-housing-facilities ul { display: flex; flex-wrap: wrap; gap: 7px; margin: 0; padding: 0; list-style: none; }
.institution-profile-housing-facilities li { border: 1px solid var(--grid); border-radius: 999px; padding: 6px 10px; color: var(--label); font-size: var(--type-meta); font-weight: 680; }
.institution-profile-location-card { display: grid; min-width: 0; align-content: start; gap: 16px; margin: 0; border-radius: 24px; background: color-mix(in srgb, var(--grid) 32%, var(--paper)); padding: clamp(20px, 2.7vw, 32px); }
.institution-profile-location-card figcaption { display: grid; gap: 7px; }
.institution-profile-location-card h3 { margin: 0; font-family: var(--display-serif); font-size: clamp(27px, 3.2vw, 42px); font-weight: 560; letter-spacing: -.04em; line-height: 1; }
.institution-profile-location-card figcaption > p:last-child { max-width: 48ch; margin: 0; color: var(--muted); font-size: var(--type-meta); line-height: 1.55; }
.institution-profile-map-stage { position: relative; overflow: hidden; min-height: 238px; border-radius: 18px; background: var(--paper); }
.institution-profile-map-stage .ror-institution-map,
.institution-profile-map-stage .us-institution-map { display: block; width: 100%; height: 238px; }
.institution-profile-map-stage .world-map-frame { fill: var(--paper); stroke: color-mix(in srgb, var(--text) 14%, transparent); stroke-width: 1; }
.institution-profile-map-stage .world-land { fill: color-mix(in srgb, var(--text) 19%, var(--paper)); stroke: none; }
.institution-profile-map-stage .world-point { fill: var(--hero-text); stroke: var(--paper); stroke-width: 4; transform-box: fill-box; transform-origin: center; transition: transform var(--motion-fast) var(--ease-out); }
.institution-profile-map-stage .ror-organisation-point:hover .world-point,
.institution-profile-map-stage .ror-organisation-point:focus-visible .world-point { transform: scale(1.45); }
.institution-profile-map-stage > div { position: absolute; top: 14px; left: 14px; display: grid; gap: 3px; max-width: calc(100% - 28px); border: 1px solid var(--grid); border-radius: 14px; background: var(--paper); padding: 10px 13px; }
.institution-profile-map-stage > div span,
.institution-profile-map-stage > div small { color: var(--muted); font-size: 10px; font-weight: 700; }
.institution-profile-map-stage > div strong { overflow-wrap: anywhere; font-size: 13px; line-height: 1.3; }
.institution-profile-location-card > nav { display: flex; flex-wrap: wrap; gap: 10px 20px; }
.institution-profile-location-card > nav a { color: var(--hero-text); font-size: var(--type-meta); font-weight: 760; text-decoration: none; }
.institution-profile-location-card > nav a:hover,
.institution-profile-location-card > nav a:focus-visible { text-decoration: underline; text-underline-offset: 4px; }

.institution-profile-overview { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr); gap: clamp(34px, 6vw, 88px); margin-top: clamp(44px, 7vw, 94px); }
.institution-profile-overview figure { min-width: 0; margin: 0; }
.institution-profile-overview figcaption,
.institution-profile-overview > article > header,
.institution-profile-panel > header,
.institution-profile-continue > header { display: grid; gap: 8px; margin-bottom: 20px; }
.institution-profile-overview h2,
.institution-profile-panel h2,
.institution-profile-continue h2,
.institution-profile-ranking h2 { margin: 0; font-family: var(--display-serif); font-size: clamp(30px, 4.2vw, 54px); font-weight: 540; letter-spacing: -.045em; line-height: .98; }
.institution-profile-overview figcaption p:not(.kicker),
.institution-profile-overview > article > header p:not(.kicker),
.institution-profile-panel > header p:not(.kicker),
.institution-profile-continue > header p:not(.kicker) { max-width: 64ch; margin: 0; color: var(--muted); font-size: var(--type-body-sm); line-height: var(--leading-readable); }
.institution-profile-overview .ror-institution-map { display: block; width: 100%; height: clamp(260px, 32vw, 390px); border-block: 1px solid var(--grid); }
.institution-profile-map-links { display: flex; flex-wrap: wrap; gap: 10px 22px; border-bottom: 1px solid var(--grid); padding: 13px 0; }
.institution-profile-map-links a,
.institution-profile-overview > article nav a,
.institution-profile-ranking > a,
.institution-profile-source nav a { color: var(--hero-text); font-size: var(--type-meta); font-weight: 760; text-decoration: none; }
.institution-profile-map-links a:hover,
.institution-profile-overview > article nav a:hover,
.institution-profile-ranking > a:hover,
.institution-profile-source nav a:hover { text-decoration: underline; text-underline-offset: 4px; }
.institution-profile-overview > article { min-width: 0; border-top: 1px solid var(--text); padding-top: 18px; }
.institution-profile-overview > article dl { margin: 0; }
.institution-profile-overview > article dl > div { display: grid; grid-template-columns: minmax(110px, .6fr) minmax(0, 1.4fr); gap: 18px; border-bottom: 1px solid var(--grid); padding: 13px 0; }
.institution-profile-overview dt { color: var(--muted); font-size: var(--type-meta); font-weight: 720; }
.institution-profile-overview dd { margin: 0; overflow-wrap: anywhere; font-size: var(--type-body-sm); font-weight: 650; line-height: 1.5; }
.institution-profile-overview > article nav { display: flex; flex-wrap: wrap; gap: 10px 22px; padding-top: 17px; }

.institution-profile-ranking { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 30px; align-items: end; margin-top: clamp(44px, 6vw, 82px); border-block: 1px solid var(--grid); padding: 24px 0; }
.institution-profile-ranking > div { display: grid; gap: 7px; }
.institution-profile-ranking h2 { font-size: clamp(28px, 3.4vw, 44px); }
.institution-profile-ranking strong { font-size: var(--type-body); line-height: 1.4; }
.institution-profile-ranking p:last-child { max-width: 72ch; margin: 0; color: var(--muted); font-size: var(--type-body-sm); line-height: var(--leading-readable); }
.institution-profile-ranking[data-state="unavailable"] strong { color: var(--label); }

.institution-profile-continue { margin-top: clamp(52px, 8vw, 104px); }
.institution-profile-continue > header { max-width: 760px; }
.institution-profile-continue > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-block: 1px solid var(--grid); }
.institution-profile-continue > div > a { position: relative; display: grid; min-width: 0; min-height: 210px; grid-template-rows: auto auto 1fr auto; gap: 12px; border-left: 1px solid var(--grid); padding: 22px clamp(16px, 2vw, 28px); color: var(--text); text-decoration: none; transition: background-color var(--motion-fast) ease; }
.institution-profile-continue > div > a:first-child { border-left: 0; padding-left: 0; }
.institution-profile-continue > div > a:hover,
.institution-profile-continue > div > a:focus-visible { background: color-mix(in srgb, var(--hero-text) 5%, transparent); outline: 0; }
.institution-profile-continue a > span { color: var(--hero-text); font-family: var(--display-serif); font-size: 20px; font-weight: 680; }
.institution-profile-continue a > strong { font-family: var(--display-serif); font-size: clamp(23px, 2.6vw, 34px); font-weight: 560; line-height: 1; }
.institution-profile-continue a > small { max-width: 34ch; color: var(--muted); font-size: var(--type-body-sm); line-height: var(--leading-readable); }
.institution-profile-continue a > i { color: var(--hero-text); font-size: 20px; font-style: normal; transition: transform var(--motion-fast) var(--ease-out); }
.institution-profile-continue a:hover > i,
.institution-profile-continue a:focus-visible > i { transform: translateX(5px); }

.institution-profile-information { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(34px, 6vw, 86px); margin-top: clamp(54px, 8vw, 108px); border-top: 1px solid var(--text); padding-top: 24px; }
.institution-profile-panel { min-width: 0; }
.institution-profile-panel:nth-child(3) { grid-column: 1 / -1; }
.institution-profile-readable-list { margin: 0; padding: 0; list-style: none; }
.institution-profile-readable-list li { display: grid; grid-template-columns: minmax(110px, .55fr) minmax(0, 1.45fr); gap: 16px; min-width: 0; border-bottom: 1px solid var(--grid); padding: 12px 0; }
.institution-profile-readable-list li > span { color: var(--muted); font-size: var(--type-meta); font-weight: 720; }
.institution-profile-readable-list strong { overflow-wrap: anywhere; font-size: var(--type-body-sm); font-weight: 650; line-height: 1.45; }
.institution-profile-readable-list a { display: grid; gap: 4px; color: var(--text); text-decoration: none; }
.institution-profile-readable-list a small { color: var(--hero-text); font-size: var(--type-meta); }
.institution-profile-readable-list a:hover strong { color: var(--hero-text); }

.institution-profile-source { margin-top: clamp(52px, 8vw, 104px); border-block: 1px solid var(--grid); }
.institution-profile-source summary { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 18px 0; cursor: pointer; list-style: none; }
.institution-profile-source summary::-webkit-details-marker { display: none; }
.institution-profile-source summary span { font-size: var(--type-body); font-weight: 720; }
.institution-profile-source summary small { color: var(--muted); font-size: var(--type-meta); }
.institution-profile-source > div { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr); gap: 24px 50px; border-top: 1px solid var(--grid); padding: 20px 0 26px; }
.institution-profile-source > div > p { max-width: 74ch; margin: 0; color: var(--label); font-size: var(--type-body-sm); line-height: var(--leading-readable); }
.institution-profile-source dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-column: 1 / -1; margin: 0; }
.institution-profile-source dl > div { border-top: 1px solid var(--grid); padding: 11px 14px 0 0; }
.institution-profile-source dt { color: var(--muted); font-size: var(--type-meta); }
.institution-profile-source dd { margin: 5px 0 0; overflow-wrap: anywhere; font-size: var(--type-body-sm); font-weight: 650; }
.institution-profile-source nav { display: flex; flex-wrap: wrap; gap: 10px 22px; }

@media (max-width: 900px) {
  .institution-profile-hero,
  .institution-profile-overview { grid-template-columns: 1fr; }
  .institution-profile-decisions > header,
  .institution-profile-housing { grid-template-columns: 1fr; }
  .institution-profile-decisions > header { align-items: start; }
  .institution-profile-decisions > div { grid-template-columns: 1fr; }
  .institution-profile-decision-card,
  .institution-profile-decision-card:first-child { min-height: 196px; border-top: 1px solid var(--grid); border-left: 0; padding-inline: 0; }
  .institution-profile-decision-card:first-child { border-top: 0; }
  .institution-profile-location-card { max-width: 720px; }
  .institution-profile-hero > aside { max-width: 660px; }
  .institution-profile-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .institution-profile-facts > div:nth-child(3) { border-left: 0; padding-left: 0; }
  .institution-profile-facts > div:nth-child(n + 3) { border-top: 1px solid var(--grid); }
}

@media (max-width: 620px) {
  .institution-profile-identity h1 { font-size: clamp(42px, 13vw, 62px); }
  .institution-profile-hero > aside nav .product-button-link { width: 100%; }
  .institution-profile-continue > div,
  .institution-profile-information,
  .institution-profile-source-boundary,
  .institution-profile-source > div,
  .institution-profile-source dl { grid-template-columns: 1fr; }
  .institution-profile-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .institution-profile-facts > div { min-height: 94px; padding: 14px 12px; }
  .institution-profile-facts > div:nth-child(odd) { border-left: 0; padding-left: 0; }
  .institution-profile-facts > div:nth-child(even) { border-left: 1px solid var(--grid); }
  .institution-profile-facts > div:nth-child(n + 3) { border-top: 1px solid var(--grid); }
  .institution-profile-ranking { grid-template-columns: 1fr; align-items: start; }
  .institution-profile-continue > div > a,
  .institution-profile-continue > div > a:first-child { min-height: 176px; border-top: 1px solid var(--grid); border-left: 0; padding-inline: 0; }
  .institution-profile-continue > div > a:first-child { border-top: 0; }
  .institution-profile-panel:nth-child(3) { grid-column: auto; }
  .institution-profile-readable-list li { grid-template-columns: 1fr; gap: 5px; }
  .institution-profile-housing-stats { grid-template-columns: 1fr; }
  .institution-profile-housing-stats > div,
  .institution-profile-housing-stats > div:first-child { border-top: 1px solid var(--grid); border-left: 0; padding-inline: 0; }
  .institution-profile-housing-stats > div:first-child { border-top: 0; }
  .institution-profile-location-card { border-radius: 20px; padding: 18px; }
  .institution-profile-map-stage,
  .institution-profile-map-stage .ror-institution-map,
  .institution-profile-map-stage .us-institution-map { height: 210px; min-height: 210px; }
  .institution-profile-source-boundary { align-items: start; }
  .institution-profile-source-boundary > span { max-width: none; text-align: left; }
  .institution-profile-housing-copy > nav .product-button-link { width: 100%; }
  .institution-profile-source summary { align-items: flex-start; }
  .institution-profile-source summary small { max-width: 18ch; text-align: right; }
}

@media (prefers-reduced-motion: reduce) {
  .institution-profile-continue > div > a,
  .institution-profile-continue a > i,
  .institution-profile-decision-card > a i,
  .institution-profile-map-stage .world-point { transition: none; }
  .institution-profile-continue a:hover > i,
  .institution-profile-continue a:focus-visible > i,
  .institution-profile-decision-card > a:hover i,
  .institution-profile-decision-card > a:focus-visible i,
  .institution-profile-map-stage .ror-organisation-point:hover .world-point,
  .institution-profile-map-stage .ror-organisation-point:focus-visible .world-point { transform: none; }
}

@media (max-width: 1100px) {
  .institution-ranking-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .institution-ranking-filters > div { grid-column: 1 / -1; }
  .institution-ranking-row { grid-template-columns: 90px minmax(0, 1fr) 130px; }
  .institution-ranking-row__metrics { grid-column: 2 / -1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
  .institution-ranking-row__metrics > div { display: grid; gap: 6px; }
}

@media (max-width: 760px) {
  .subject-ranking-index-header-actions,
  .institution-ranking-continue nav { justify-content: flex-start; }
  .subject-ranking-index-filters,
  .institution-ranking-filters,
  .subject-ranking-result-filters { grid-template-columns: 1fr; }
  .subject-ranking-filter-status,
  .institution-ranking-filters + .product-boundary,
  .subject-ranking-result-filters > p:last-child { grid-column: auto; }
  .institution-decision-hero,
  .institution-ranking-own > header,
  .institution-ranking-continue,
  .institution-detail-ranking-callout { grid-template-columns: 1fr; align-items: start; }
  .institution-publisher-grid,
  .institution-detail-continuation-grid,
  .institution-ranking-coverage__grid { grid-template-columns: 1fr; }
  .institution-publisher-card { min-height: auto; }
  .institution-ranking-row { grid-template-columns: 72px minmax(0, 1fr); gap: 18px; padding: 18px; }
  .institution-ranking-row__score { grid-column: 2; border-left: 0; border-top: 1px solid var(--grid); padding: 16px 0 0; }
  .institution-ranking-row__metrics { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .institution-ranking-coverage__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 480px) {
  .institution-ranking-row__metrics { grid-template-columns: 1fr; }
  .institution-ranking-row__rank span { font-size: 40px; }
}

/* Rating centre v2: two understandable entry paths, with the source boundary kept close to the action. */
.rating-gateway,
.rating-route,
.rating-search-route {
  display: grid;
  gap: clamp(28px, 4vw, 48px);
}

.rating-gateway-header,
.rating-route-header {
  align-items: end;
}

.rating-gateway-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 28px clamp(28px, 5vw, 80px);
  border-bottom: 1px solid var(--grid);
  padding-bottom: clamp(20px, 2.5vw, 34px);
}

.rating-gateway-entries {
  border-top: 0;
  padding-top: 0;
}

.rating-gateway-entries .rating-gateway-grid {
  margin-top: 0;
}

.rating-gateway-header h1 {
  max-width: 920px;
  margin: 8px 0 12px;
  font-family: var(--display-serif);
  font-size: clamp(42px, 5vw, 72px);
  font-weight: 600;
  letter-spacing: -.05em;
  line-height: 1;
}

.rating-gateway-header > div > p:last-child {
  max-width: 780px;
  margin: 0;
  color: var(--muted);
  font-size: clamp(14px, 1.25vw, 18px);
  line-height: 1.65;
}

.rating-gateway-boundary,
.rating-route-boundary {
  max-width: 820px;
  margin: 0;
  font-size: 13px;
  line-height: 1.7;
}

.rating-gateway-entries,
.rating-selector-panel,
.rating-ranking-panel,
.rating-institution-finder,
.rating-programmes-panel,
.rating-school-summary {
  border-top: 1px solid var(--grid);
  padding-top: clamp(26px, 3vw, 42px);
}

.rating-gateway > .rating-gateway-entries {
  border-top: 0;
  padding-top: 0;
}

.rating-gateway-entries > header,
.rating-selector-panel > header,
.rating-ranking-panel > header,
.rating-institution-finder > header,
.rating-programmes-panel > header,
.rating-school-summary > header {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(250px, .95fr);
  gap: clamp(24px, 5vw, 84px);
  align-items: start;
}

.rating-gateway-entries h2,
.rating-selector-panel h2,
.rating-ranking-panel h2,
.rating-institution-finder h2,
.rating-programmes-panel h2,
.rating-school-summary h2,
.rating-next-action h2 {
  max-width: 18ch;
  margin: 8px 0 0;
  font-family: var(--display-serif);
  font-size: clamp(29px, 4vw, 58px);
  font-weight: 600;
  letter-spacing: -.045em;
  line-height: 1;
}

.rating-gateway-entries > header > p,
.rating-selector-panel > header > p,
.rating-ranking-panel > header > p,
.rating-institution-finder > header > p,
.rating-programmes-panel > header > p,
.rating-school-summary > header > span {
  max-width: 42ch;
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.7;
}

.rating-gateway-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: clamp(28px, 4vw, 48px);
  border-left: 1px solid var(--grid);
  border-top: 1px solid var(--grid);
}

.rating-gateway-card {
  min-height: 260px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-rows: auto 1fr auto;
  gap: 18px 22px;
  border-right: 1px solid var(--grid);
  border-bottom: 1px solid var(--grid);
  padding: clamp(22px, 3vw, 36px);
  color: var(--text);
  text-decoration: none;
  transition: background-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.rating-gateway-card:hover,
.rating-gateway-card:focus-visible {
  background: color-mix(in srgb, var(--hero) 10%, transparent);
  color: var(--text);
  transform: translateY(-3px);
}

.rating-gateway-card__index {
  color: var(--hero-text);
  font-family: var(--display-serif);
  font-size: 18px;
  font-variant-numeric: tabular-nums;
}

.rating-gateway-card h3 {
  max-width: 14ch;
  margin: 0;
  font-family: var(--display-serif);
  font-size: clamp(27px, 3.2vw, 48px);
  font-weight: 600;
  letter-spacing: -.04em;
  line-height: 1;
}

.rating-gateway-card p {
  max-width: 33ch;
  margin: 16px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.65;
}

.rating-gateway-card > strong {
  grid-column: 2;
  color: var(--hero-text);
  font-size: 11px;
  letter-spacing: .04em;
}

.rating-gateway-rate,
.rating-next-action {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 28px;
  align-items: end;
  border-block: 1px solid var(--grid);
  padding: clamp(25px, 3.3vw, 42px) 0;
}

.rating-route-header-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}

.rating-ranking-bridge {
  border-top: 1px solid var(--grid);
  padding-top: clamp(26px, 3vw, 42px);
}

.rating-ranking-bridge > header {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(250px, .95fr);
  gap: clamp(24px, 5vw, 84px);
  align-items: start;
}

.rating-ranking-bridge h2 {
  max-width: 18ch;
  margin: 8px 0 0;
  font-family: var(--display-serif);
  font-size: clamp(29px, 4vw, 58px);
  font-weight: 600;
  letter-spacing: -.045em;
  line-height: 1;
}

.rating-ranking-bridge > header > p {
  max-width: 42ch;
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.7;
}

.rating-ranking-bridge-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: clamp(24px, 3vw, 36px);
  border-left: 1px solid var(--grid);
  border-top: 1px solid var(--grid);
}

.rating-ranking-bridge-grid > a {
  min-height: 128px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 14px;
  align-content: start;
  border-right: 1px solid var(--grid);
  border-bottom: 1px solid var(--grid);
  padding: 20px;
  color: var(--text);
  text-decoration: none;
  transition: background-color 160ms ease, color 160ms ease;
}

.rating-ranking-bridge-grid > a:hover,
.rating-ranking-bridge-grid > a:focus-visible {
  background: color-mix(in srgb, var(--hero) 9%, transparent);
  color: var(--text);
}

.rating-ranking-bridge-grid > a > span {
  color: var(--hero-text);
  font-family: var(--display-serif);
  font-size: 18px;
  font-variant-numeric: tabular-nums;
}

.rating-ranking-bridge-grid strong {
  display: block;
  font-family: var(--display-serif);
  font-size: 22px;
  font-weight: 600;
  line-height: 1.05;
}

.rating-ranking-bridge-grid small {
  display: block;
  margin-top: 8px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.45;
}

.rating-ranking-bridge-grid i {
  color: var(--hero-text);
  font-size: 18px;
  font-style: normal;
}

.rating-gateway-rate h2,
.rating-next-action h2 {
  max-width: 25ch;
  font-size: clamp(27px, 3.4vw, 48px);
}

.rating-gateway-rate p:last-child,
.rating-next-action p:last-child {
  max-width: 54ch;
  margin: 13px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.65;
}

.rating-gateway-rate__actions,
.rating-next-action > a {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}

.rating-route-back {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 24px;
  margin-bottom: -30px;
}

.rating-selected-subject,
.rating-selected-institution {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 28px;
  align-items: end;
  border-block: 1px solid var(--grid);
  padding: 25px 0;
}

.rating-selected-subject h2,
.rating-selected-institution h2 {
  max-width: 24ch;
  margin: 8px 0 8px;
  font-family: var(--display-serif);
  font-size: clamp(30px, 4.2vw, 60px);
  font-weight: 600;
  letter-spacing: -.045em;
  line-height: .98;
}

.rating-selected-subject p:last-child,
.rating-selected-institution p:last-child {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}

.rating-selected-institution nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}

.rating-selector-panel {
  display: grid;
  gap: 24px;
}

.rating-subject-search,
.rating-institution-finder .product-search {
  max-width: none;
  margin: 18px 0 0;
}

.rating-selector-status {
  min-height: 16px;
  margin: -8px 0 0;
  color: var(--muted);
  font-size: 11px;
}

.rating-subject-quick-grid,
.rating-subject-directory > div {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-left: 1px solid var(--grid);
  border-top: 1px solid var(--grid);
}

.rating-subject-quick-grid {
  margin-top: 3px;
}

.rating-subject-card {
  min-height: 122px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 14px;
  align-content: start;
  border-right: 1px solid var(--grid);
  border-bottom: 1px solid var(--grid);
  padding: 18px;
  color: var(--text);
  text-decoration: none;
  transition: background-color 160ms ease, color 160ms ease;
}

.rating-subject-card:hover,
.rating-subject-card:focus-visible {
  background: color-mix(in srgb, var(--hero) 9%, transparent);
  color: var(--text);
}

.rating-subject-card__code {
  color: var(--hero-text);
  font-family: var(--display-serif);
  font-size: 17px;
  font-variant-numeric: tabular-nums;
}

.rating-subject-card strong {
  display: block;
  font-family: var(--display-serif);
  font-size: 21px;
  font-weight: 600;
  line-height: 1.05;
}

.rating-subject-card small {
  display: block;
  margin-top: 9px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.45;
}

.rating-subject-card > img {
  width: 18px;
  height: 18px;
  color: var(--hero-text);
  filter: brightness(0) saturate(100%) invert(32%) sepia(96%) saturate(1538%) hue-rotate(353deg) brightness(87%) contrast(87%);
}

.student-rating-subject-group a > img {
  width: 16px;
  height: 16px;
  margin-left: auto;
  flex: 0 0 auto;
  filter: brightness(0) saturate(100%) invert(32%) sepia(96%) saturate(1538%) hue-rotate(353deg) brightness(87%) contrast(87%);
}

.rating-subject-directory {
  border-top: 1px solid var(--grid);
  padding-top: 16px;
}

.rating-subject-directory summary {
  display: flex;
  justify-content: space-between;
  gap: 15px;
  cursor: pointer;
  color: var(--text);
  font-family: var(--display-serif);
  font-size: 24px;
  font-weight: 600;
}

.rating-subject-directory summary span {
  color: var(--muted);
  font-family: var(--body-sans);
  font-size: 10px;
  font-weight: 750;
  letter-spacing: .08em;
}

.rating-subject-directory > div {
  margin-top: 18px;
}

.rating-ranking-panel {
  display: grid;
  gap: 18px;
}

.rating-ranking-boundary {
  max-width: 900px;
  margin: 0;
}

.rating-data-empty {
  display: grid;
  gap: 12px;
  border: 1px solid var(--grid);
  padding: clamp(26px, 4vw, 54px);
  background: color-mix(in srgb, var(--grid) 8%, transparent);
}

.rating-data-empty strong {
  max-width: 25ch;
  font-family: var(--display-serif);
  font-size: clamp(26px, 3.3vw, 46px);
  font-weight: 600;
  letter-spacing: -.04em;
  line-height: 1;
}

.rating-data-empty p {
  max-width: 68ch;
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.65;
}

.rating-data-empty .secondary-button {
  justify-self: start;
  margin-top: 4px;
}

.rating-school-summary {
  display: grid;
  gap: 20px;
}

.rating-school-summary .community-dimension-list {
  max-width: 820px;
  border-top: 1px solid var(--grid);
}

.rating-programmes-panel {
  display: grid;
  gap: 24px;
}

.rating-programme-list {
  display: grid;
  border-top: 1px solid var(--grid);
}

.rating-programme-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 22px;
  align-items: end;
  border-bottom: 1px solid var(--grid);
  padding: 22px 0;
}

.rating-programme-card h3 {
  max-width: 30ch;
  margin: 7px 0 8px;
  font-family: var(--display-serif);
  font-size: clamp(23px, 2.8vw, 36px);
  font-weight: 600;
  line-height: 1.03;
}

.rating-programme-card p:last-child {
  margin: 0;
  color: var(--muted);
  font-size: 11px;
}

@media (max-width: 900px) {
  .rating-gateway-header {
    grid-template-columns: 1fr;
  }

  .community-review-rail {
    position: static;
    grid-row: 2;
  }

  .community-review-layout > .community-review-main {
    grid-row: 1;
  }

  .rating-gateway-entries > header,
  .rating-selector-panel > header,
  .rating-ranking-panel > header,
  .rating-institution-finder > header,
  .rating-programmes-panel > header,
  .rating-school-summary > header {
    grid-template-columns: 1fr;
  }

  .rating-gateway-entries h2,
  .rating-selector-panel h2,
  .rating-ranking-panel h2,
  .rating-institution-finder h2,
  .rating-programmes-panel h2,
  .rating-school-summary h2 {
    max-width: none;
  }

  .rating-gateway-rate,
  .rating-next-action,
  .rating-selected-subject,
  .rating-selected-institution {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .rating-gateway-rate__actions,
  .rating-next-action > a,
  .rating-selected-institution nav,
  .rating-route-header-actions {
    justify-content: flex-start;
  }

  .rating-ranking-bridge > header {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .rating-gateway-grid,
  .rating-ranking-bridge-grid,
  .rating-subject-quick-grid,
  .rating-subject-directory > div {
    grid-template-columns: 1fr;
  }

  .rating-gateway-card {
    min-height: 210px;
  }

  .rating-subject-card {
    min-height: 94px;
  }

  .rating-programme-card {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .rating-programme-card .secondary-button {
    justify-self: start;
  }

  .rating-route-back {
    margin-bottom: -18px;
  }
}

/* Rating ranking workbench: one clear ranking surface followed by one full-width rating form. */
.rating-ranking-page {
  display: grid;
  gap: clamp(30px, 3.4vw, 46px);
  min-width: 0;
}

.rating-ranking-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 28px;
  align-items: end;
  border-bottom: 1px solid var(--grid);
  padding-bottom: clamp(28px, 4vw, 46px);
}

.rating-ranking-hero h1 {
  max-width: 11ch;
  margin: 10px 0 14px;
  font-family: var(--display-serif);
  font-size: clamp(44px, 5.2vw, 72px);
  font-weight: 600;
  letter-spacing: -.055em;
  line-height: .92;
}

.rating-ranking-hero p:last-child {
  max-width: 58ch;
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.65;
}

.rating-school-ranking-page .rating-ranking-hero h1 { max-width: none; }
.rating-school-ranking-page .rating-ranking-hero h1 > span { display: block; }

.rating-ranking-hero > a {
  display: inline-flex;
  gap: 14px;
  align-items: center;
  color: var(--hero-text);
  font-size: 13px;
  font-weight: 760;
  text-decoration: none;
}

.rating-ranking-hero > a:hover,
.rating-ranking-hero > a:focus-visible { text-decoration: underline; text-underline-offset: 5px; }

.rating-ranking-layout {
  display: grid;
  gap: clamp(30px, 3.4vw, 46px);
  align-items: start;
}

.rating-ranking-layout > main { min-width: 0; }

.rating-subject-explorer {
  display: grid;
  gap: 24px;
  min-width: 0;
}

.rating-subject-explorer > header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(250px, .55fr);
  gap: clamp(28px, 5vw, 72px);
  align-items: end;
}

.rating-subject-explorer > header h2 {
  margin: 7px 0 9px;
  font-family: var(--display-serif);
  font-size: clamp(28px, 3vw, 42px);
  font-weight: 600;
  letter-spacing: -.035em;
  line-height: 1;
}

.rating-subject-explorer > header p:last-child {
  max-width: 58ch;
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.6;
}

.rating-subject-explorer > header > label { display: grid; gap: 8px; }
.rating-subject-explorer > header > label > span { color: var(--muted); font-size: 9px; font-weight: 760; letter-spacing: .12em; text-transform: uppercase; }
.rating-subject-explorer > header input { width: 100%; min-height: 44px; border: 0; border-bottom: 1px solid var(--text); border-radius: 0; background: transparent; padding: 9px 0; color: var(--text); font: inherit; font-size: 12px; }
.rating-subject-explorer > header label small { min-height: 16px; color: var(--hero-text); font-size: 9px; }

.rating-subject-category-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  border-top: 1px solid var(--grid);
  border-left: 1px solid var(--grid);
}

.rating-subject-category {
  display: grid;
  min-width: 0;
  min-height: 152px;
  align-content: space-between;
  gap: 20px;
  border: 0;
  border-right: 1px solid var(--grid);
  border-bottom: 1px solid var(--grid);
  border-radius: 0;
  background: transparent;
  padding: 18px;
  color: var(--text);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: background-color 180ms ease, color 180ms ease;
}

.rating-subject-category > span { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; }
.rating-subject-category > span small { color: var(--muted); font-size: 8px; font-weight: 740; letter-spacing: .1em; }
.rating-subject-category > span code { color: var(--hero-text); font-family: var(--display-serif); font-size: 20px; font-weight: 680; }
.rating-subject-category > strong { max-width: 13ch; font-family: var(--display-serif); font-size: clamp(18px, 1.65vw, 24px); font-weight: 600; line-height: 1.05; }
.rating-subject-category > small { color: var(--muted); font-size: 8px; line-height: 1.45; }
.rating-subject-category:hover,
.rating-subject-category:focus-visible { outline: 0; background: color-mix(in srgb, var(--text) 5%, transparent); }
.rating-subject-category:focus-visible { box-shadow: inset 0 0 0 2px var(--hero-text); }
.rating-subject-category.is-active { background: var(--text); color: var(--paper); }
.rating-subject-category.is-active > span small,
.rating-subject-category.is-active > span code,
.rating-subject-category.is-active > small { color: color-mix(in srgb, var(--paper) 72%, transparent); }

.rating-subject-field-panels[hidden],
.rating-subject-search-results[hidden],
.rating-subject-field-panel[hidden],
.rating-subject-search-results a[hidden] { display: none; }

.rating-subject-field-panel,
.rating-subject-search-results {
  border: 1px solid var(--grid);
  animation: rating-subject-panel-in 220ms ease-out both;
}

@keyframes rating-subject-panel-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

.rating-subject-field-panel > header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 28px;
  align-items: end;
  border-bottom: 1px solid var(--grid);
  padding: clamp(22px, 2.6vw, 32px);
}

.rating-subject-field-panel > header h3,
.rating-subject-search-results > header h3 {
  margin: 7px 0 10px;
  font-family: var(--display-serif);
  font-size: clamp(28px, 3.2vw, 44px);
  font-weight: 600;
  letter-spacing: -.04em;
  line-height: 1;
}

.rating-subject-field-panel > header p:last-child { max-width: 66ch; margin: 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
.rating-subject-field-panel > header > strong { color: var(--muted); font-size: 10px; font-weight: 650; }
.rating-subject-branch-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.rating-subject-branch { min-width: 0; border-right: 1px solid var(--grid); padding: clamp(20px, 2.4vw, 28px); }
.rating-subject-branch:last-child { border-right: 0; }
.rating-subject-branch > header { min-height: 126px; }
.rating-subject-branch > header code { color: var(--hero-text); font-family: var(--display-serif); font-size: 15px; font-weight: 680; }
.rating-subject-branch h4 { margin: 8px 0 9px; font-family: var(--display-serif); font-size: 21px; font-weight: 600; line-height: 1.08; }
.rating-subject-branch > header p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.rating-subject-branch nav { display: grid; margin-top: 16px; border-top: 1px solid var(--grid); }
.rating-subject-branch nav a { display: grid; min-height: 44px; grid-template-columns: minmax(0, 1fr) auto auto; gap: 10px; align-items: center; border-bottom: 1px solid var(--grid); padding: 8px 0; color: var(--text); font-size: 10px; text-decoration: none; }
.rating-subject-branch nav a code { color: var(--muted); font-size: 8px; }
.rating-subject-branch nav a i { color: var(--hero-text); font-style: normal; }
.rating-subject-branch nav a:hover,
.rating-subject-branch nav a:focus-visible { color: var(--hero-text); }
.rating-subject-branch nav a.is-active { border-left: 2px solid var(--hero-text); padding-left: 10px; color: var(--hero-text); font-weight: 760; }

@media (min-width: 981px) {
  .rating-subject-field-panel.is-single-branch .rating-subject-branch {
    display: grid;
    grid-template-columns: minmax(210px, .42fr) minmax(0, 1fr);
    gap: clamp(30px, 4vw, 58px);
    align-items: center;
    padding: clamp(26px, 3vw, 38px);
  }
  .rating-subject-field-panel.is-single-branch .rating-subject-branch > header { min-height: 0; }
  .rating-subject-field-panel.is-single-branch .rating-subject-branch nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 0;
    border-left: 1px solid var(--grid);
  }
  .rating-subject-field-panel.is-single-branch .rating-subject-branch nav a {
    min-height: 64px;
    border-right: 1px solid var(--grid);
    padding: 12px 14px;
  }
  .rating-subject-field-panel.is-single-branch .rating-subject-branch nav a.is-active { padding-left: 14px; }
}

.rating-subject-search-results > header { border-bottom: 1px solid var(--grid); padding: 22px 26px; }
.rating-subject-search-results > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rating-subject-search-results a { display: grid; min-height: 112px; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 16px; align-content: center; border-right: 1px solid var(--grid); border-bottom: 1px solid var(--grid); padding: 20px 22px; color: var(--text); text-decoration: none; }
.rating-subject-search-results a > span { grid-column: 1 / -1; color: var(--muted); font-size: 8px; }
.rating-subject-search-results a > strong { font-family: var(--display-serif); font-size: 19px; font-weight: 600; }
.rating-subject-search-results a > code { align-self: center; color: var(--hero-text); font-size: 9px; }
.rating-subject-search-results a > i { grid-column: 2; grid-row: 2 / span 2; align-self: center; color: var(--hero-text); font-style: normal; }
.rating-subject-search-results a:hover,
.rating-subject-search-results a:focus-visible { outline: 0; background: color-mix(in srgb, var(--hero-text) 6%, transparent); }

.rating-ranking-board { min-width: 0; }
.rating-ranking-board > header { display: flex; justify-content: space-between; gap: 24px; align-items: end; border-bottom: 1px solid var(--text); padding-bottom: 18px; }
.rating-ranking-board > header h2 { margin: 7px 0 0; font-family: var(--display-serif); font-size: clamp(27px, 3vw, 42px); font-weight: 600; letter-spacing: -.035em; line-height: 1; }
.rating-ranking-board > header > strong { color: var(--muted); font-size: 10px; font-weight: 660; }
.rating-ranking-source-summary {
  display: grid;
  grid-template-columns: minmax(190px, .75fr) minmax(0, 2.25fr);
  gap: 22px 34px;
  border-bottom: 1px solid var(--grid);
  padding: 20px 0;
}
.rating-ranking-source-summary > header { display: grid; align-content: start; gap: 5px; }
.rating-ranking-source-summary > header .kicker { margin: 0 0 5px; }
.rating-ranking-source-summary > header strong { color: var(--muted); font-size: 9px; font-weight: 720; }
.rating-ranking-source-summary > header span { font-family: var(--display-serif); font-size: 18px; font-weight: 600; line-height: 1.08; }
.rating-ranking-source-summary dl { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 0; }
.rating-ranking-source-summary dl > div { min-width: 0; border-left: 1px solid var(--grid); padding: 0 14px; }
.rating-ranking-source-summary dt { min-height: 26px; color: var(--muted); font-size: 8px; line-height: 1.35; }
.rating-ranking-source-summary dd { margin: 8px 0 0; font-size: 10px; font-weight: 710; line-height: 1.35; overflow-wrap: anywhere; }
.rating-ranking-source-summary > p { grid-column: 1 / -1; max-width: 90ch; margin: 0; color: var(--muted); font-size: 9px; line-height: 1.55; }
.rating-ranking-context { display: grid; gap: 20px; border: 1px solid var(--grid); padding: clamp(18px, 2.5vw, 28px); }
.rating-ranking-context > header { display: flex; justify-content: space-between; gap: 20px; align-items: end; }
.rating-ranking-context > header h2 { margin: 7px 0 10px; font-family: var(--display-serif); font-size: clamp(24px, 3vw, 38px); font-weight: 600; line-height: 1; }
.rating-ranking-context > header p:not(.kicker) { max-width: 70ch; margin: 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
.rating-ranking-context > header > span { max-width: 24ch; color: var(--hero-text); font-size: 9px; font-weight: 780; line-height: 1.45; text-align: right; text-transform: uppercase; }
.rating-ranking-context dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; border-top: 1px solid var(--grid); }
.rating-ranking-context dl > div { min-width: 0; border-right: 1px solid var(--grid); padding: 14px 14px 0 0; }
.rating-ranking-context dl > div + div { padding-left: 14px; }
.rating-ranking-context dl > div:last-child { border-right: 0; }
.rating-ranking-context dt { color: var(--muted); font-size: 8px; letter-spacing: .08em; text-transform: uppercase; }
.rating-ranking-context dd { margin: 7px 0 0; overflow-wrap: anywhere; font-size: 10px; font-weight: 700; line-height: 1.45; }
.rating-ranking-context code { color: var(--hero-text); font-size: 9px; }
.rating-ranking-table-frame { width: 100%; }
.rating-ranking-table { width: 100%; min-width: 840px; border-collapse: collapse; table-layout: fixed; }
.rating-ranking-table.is-school { min-width: 960px; }
.rating-ranking-table.is-global { min-width: 820px; }
.rating-ranking-table thead th { border-bottom: 1px solid var(--grid); padding: 12px 10px; color: var(--muted); font-size: 8px; font-weight: 760; letter-spacing: .08em; text-align: left; text-transform: uppercase; }
.rating-ranking-table thead th { position: sticky; top: 0; z-index: 1; background: var(--paper); }
.rating-ranking-table thead th:first-child { width: 52px; padding-left: 0; }
.rating-ranking-table thead th:nth-child(2) { width: 28%; }
.rating-ranking-table thead th:nth-child(3) { width: 120px; }
.rating-ranking-table tbody tr { border-bottom: 1px solid var(--grid); }
.rating-ranking-table tbody td,
.rating-ranking-table tbody th { padding: 19px 10px; vertical-align: middle; font-size: 11px; font-weight: 540; text-align: left; }
.rating-ranking-table tbody th a { color: var(--text); font-family: var(--display-serif); font-size: 17px; font-weight: 600; line-height: 1.08; text-decoration: none; }
.rating-ranking-table tbody th a:hover,
.rating-ranking-table tbody th a:focus-visible { color: var(--hero-text); text-decoration: underline; text-underline-offset: 4px; }
.rating-ranking-table tbody th small,
.rating-ranking-table tbody td small { display: block; margin-top: 6px; color: var(--muted); font-size: 8px; font-weight: 520; line-height: 1.35; }
.rating-ranking-table tbody tr[data-ranking-status="coverage-only"] { background: color-mix(in srgb, var(--grid) 7%, transparent); }
.rating-ranking-table tbody tr[data-ranking-status="coverage-only"] .rating-table-rank,
.rating-ranking-table tbody tr[data-ranking-status="coverage-only"] .rating-table-score { color: var(--muted); }
.rating-table-rank { padding-left: 0 !important; color: var(--hero-text); font-family: var(--display-serif); font-size: 19px !important; font-weight: 650 !important; }
.rating-table-score strong { display: block; font-family: var(--display-serif); font-size: 24px; font-weight: 650; line-height: 1; }
.rating-table-score i { display: block; width: 74px; height: 2px; margin-top: 9px; overflow: hidden; background: color-mix(in srgb, var(--grid) 70%, transparent); }
.rating-table-score i::after { content: ""; display: block; width: var(--score-pct); height: 100%; background: var(--hero-text); }
.rating-ranking-empty { display: grid; gap: 10px; min-height: 156px; align-content: center; border-bottom: 1px solid var(--grid); padding: 28px 20px; }
.rating-ranking-empty strong { max-width: 19ch; font-family: var(--display-serif); font-size: clamp(26px, 3vw, 40px); font-weight: 600; line-height: 1; }
.rating-ranking-empty p { max-width: 66ch; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.rating-ranking-empty small { color: var(--muted); font-size: 8px; }

.rating-ranking-school-tools { border-block: 1px solid var(--grid); padding: 17px 0; }
.rating-ranking-school-tools .institution-ranking-filters { margin: 0; border: 0; padding: 0; }
.rating-ranking-school-tools .institution-ranking-filters > div { display: none; }
.rating-ranking-school-tools .institution-ranking-filters input,
.rating-ranking-school-tools .institution-ranking-filters select { min-height: 44px; }

.rating-school-ranking-page { gap: clamp(28px, 3vw, 40px); }
.rating-ranking-page > .route-section-nav { margin-bottom: 0; }
.rating-school-ranking-page .institution-ranking-filters { grid-template-columns: minmax(150px, 1.05fr) repeat(5, minmax(112px, .78fr)) auto; column-gap: 12px; }
.rating-school-ranking-page .rating-ranking-board.has-results .rating-ranking-table-frame { max-height: none; }
.rating-school-ranking-page .rating-ranking-board.is-empty > header { border-bottom-color: var(--grid); }
.rating-school-ranking-page .rating-ranking-board.is-empty .rating-ranking-empty { min-height: 148px; border-top: 0; padding: 26px 0; }
.rating-school-ranking-page > .product-pagination { margin: -12px 0 0; }

.rating-workbench {
  min-width: 0;
  border: 1px solid var(--grid);
  padding: clamp(20px, 2.4vw, 30px);
}

.rating-workbench form { min-width: 0; }

.rating-workbench > header { display: grid; grid-template-columns: minmax(180px, .55fr) minmax(0, 1.45fr); gap: 28px; align-items: end; margin-bottom: 24px; }
.rating-workbench > header h2 { margin: 6px 0 0; font-family: var(--display-serif); font-size: clamp(28px, 2.6vw, 38px); font-weight: 600; letter-spacing: -.045em; line-height: .95; }
.rating-workbench > header > p:last-child { max-width: 56ch; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.rating-workbench fieldset { min-width: 0; margin: 0; border: 0; padding: 0; }
.rating-workbench legend { width: 100%; border-bottom: 1px solid var(--grid); padding: 0 0 13px; color: var(--muted); font-size: 9px; font-weight: 780; letter-spacing: .1em; text-transform: uppercase; }
.rating-workbench-grid { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.02fr) minmax(0, 1.06fr); }
.rating-workbench-grid > fieldset { padding: 0 clamp(20px, 2.5vw, 36px); }
.rating-workbench-grid > fieldset:first-child { padding-left: 0; }
.rating-workbench-grid > fieldset:last-child { padding-right: 0; }
.rating-workbench-grid > fieldset + fieldset { border-left: 1px solid var(--grid); }
.rating-workbench-targets { display: grid; align-content: start; gap: 14px; }
.rating-workbench-targets > label { display: grid; gap: 7px; }
.rating-workbench-targets > label > span:first-child { font-family: var(--display-serif); font-size: 17px; font-weight: 600; }
.rating-workbench-search { display: grid; grid-template-columns: minmax(0, 1fr) auto; border-bottom: 1px solid var(--text); }
.rating-workbench-search input { min-width: 0; min-height: 44px; border: 0; border-radius: 0; background: transparent; padding: 11px 0; color: var(--text); font: inherit; font-size: 11px; }
.rating-workbench-search button { min-width: 44px; min-height: 44px; border: 0; background: transparent; padding: 8px 0 8px 12px; color: var(--hero-text); font: inherit; font-size: 10px; font-weight: 760; cursor: pointer; }
.rating-workbench-results { display: grid; max-height: 210px; overflow: auto; border: 1px solid var(--grid); }
.rating-workbench-results:empty { display: none; }
.rating-workbench-results > p { margin: 0; padding: 12px; color: var(--muted); font-size: 10px; }
.rating-workbench-results > button { display: grid; min-height: 44px; grid-template-columns: minmax(0, 1fr) auto; gap: 3px 12px; border: 0; border-bottom: 1px solid var(--grid); background: transparent; padding: 10px 12px; color: var(--text); font: inherit; text-align: left; cursor: pointer; }
.rating-workbench-results > button:last-child { border-bottom: 0; }
.rating-workbench-results > button:hover,
.rating-workbench-results > button:focus-visible { background: color-mix(in srgb, var(--hero-text) 6%, transparent); }
.rating-workbench-results > button span { overflow: hidden; font-size: 10px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.rating-workbench-results > button small { grid-column: 1; color: var(--muted); font-size: 8px; }
.rating-workbench-results > button i { grid-column: 2; grid-row: 1 / span 2; align-self: center; color: var(--hero-text); font-style: normal; }
.rating-workbench-selected { display: flex; justify-content: space-between; gap: 14px; align-items: center; border-left: 2px solid var(--hero-text); background: color-mix(in srgb, var(--hero-text) 5%, transparent); padding: 9px 11px; }
.rating-workbench-selected[hidden] { display: none; }
.rating-workbench-selected span { display: grid; gap: 3px; min-width: 0; }
.rating-workbench-selected small { color: var(--muted); font-size: 8px; }
.rating-workbench-selected strong { overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.rating-workbench-selected button { min-width: 44px; min-height: 44px; border: 0; background: transparent; color: var(--hero-text); font: inherit; font-size: 9px; font-weight: 760; cursor: pointer; }
.rating-workbench-required { margin: 2px 0 0; color: var(--hero-text); font-size: 9px; font-weight: 720; }
.rating-workbench-context { min-height: 24px; margin: -5px 0 0; color: var(--muted); font-size: 8px; line-height: 1.45; }

.rating-workbench-scores > div { display: grid; }
.rating-workbench-dimension { display: grid; grid-template-columns: minmax(110px, 1fr) auto; gap: 16px; align-items: center; border-bottom: 1px solid var(--grid); padding: 12px 0; }
.rating-workbench-dimension > span { font-size: 10px; font-weight: 680; }
.rating-workbench-dimension > div { display: grid; grid-template-columns: repeat(5, 30px); }
.rating-workbench-dimension label { position: relative; }
.rating-workbench-dimension input { position: absolute; opacity: 0; pointer-events: none; }
.rating-workbench-dimension label span { display: grid; width: 30px; height: 30px; place-items: center; border: 1px solid var(--grid); border-left: 0; color: var(--muted); font-size: 9px; cursor: pointer; }
.rating-workbench-dimension label:first-child span { border-left: 1px solid var(--grid); }
.rating-workbench-dimension input:checked + span { border-color: var(--text); background: var(--text); color: var(--paper); }
.rating-workbench-dimension input:focus-visible + span { outline: 2px solid var(--hero-text); outline-offset: 2px; }
.rating-workbench-scores > small { display: block; margin-top: 12px; color: var(--muted); font-size: 8px; }

.rating-workbench-comment { display: grid; align-content: start; gap: 14px; }
.rating-workbench-comment textarea { width: 100%; min-height: 148px; resize: vertical; border: 1px solid var(--grid); border-radius: 0; background: transparent; padding: 14px; color: var(--text); font: inherit; font-size: 11px; line-height: 1.55; }
.rating-workbench-consent { display: grid; min-height: 44px; grid-template-columns: auto minmax(0, 1fr); gap: 9px; align-items: center; color: var(--muted); font-size: 8px; line-height: 1.45; cursor: pointer; }
.rating-workbench-consent input { width: 18px; height: 18px; margin: 0; accent-color: var(--hero-text); }
.rating-workbench-submit { display: flex; min-height: 44px; justify-content: space-between; gap: 16px; align-items: center; width: 100%; border: 1px solid var(--text); background: var(--text); padding: 13px 15px; color: var(--paper); font: inherit; font-size: 10px; font-weight: 780; cursor: pointer; }
.rating-workbench-submit:hover,
.rating-workbench-submit:focus-visible { background: var(--hero-text); border-color: var(--hero-text); }
.rating-workbench-submit:disabled { cursor: wait; opacity: .55; }
#rating-workbench-status { min-height: 20px; margin: 0; color: var(--muted); font-size: 9px; line-height: 1.45; }
#rating-workbench-status[data-state="error"] { color: var(--hero-text); }
#rating-workbench-status[data-state="pending"] { color: var(--text); font-weight: 720; }

@media (max-width: 980px) {
  .rating-subject-branch-grid,
  .rating-subject-search-results > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rating-workbench-grid { grid-template-columns: 1fr 1fr; }
  .rating-workbench-grid > fieldset { padding: 0 24px; }
  .rating-workbench-grid > fieldset:first-child { padding-left: 0; }
  .rating-workbench-grid > fieldset:nth-child(2) { padding-right: 0; }
  .rating-workbench-grid > fieldset:last-child { grid-column: 1 / -1; border-left: 0; border-top: 1px solid var(--grid); margin-top: 28px; padding: 28px 0 0; }
  .rating-ranking-source-summary { grid-template-columns: 1fr; }
  .rating-ranking-source-summary dl { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 18px; }
}

@media (max-width: 860px) {
  .rating-subject-category-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 1024px) {
  .rating-ranking-table-frame { max-height: none; overflow: visible; }
  .rating-ranking-table,
  .rating-ranking-table.is-school,
  .rating-ranking-table.is-global { display: block; min-width: 0; }
  .rating-ranking-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
  .rating-ranking-table tbody { display: grid; }
  .rating-ranking-table tbody tr { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; gap: 8px 12px; padding: 18px 0; }
  .rating-ranking-table tbody td,
  .rating-ranking-table tbody th { padding: 0; }
  .rating-ranking-table tbody .rating-table-rank { grid-column: 1; grid-row: 1 / span 2; }
  .rating-ranking-table tbody th { grid-column: 2; grid-row: 1; }
  .rating-ranking-table tbody .rating-table-score { grid-column: 3; grid-row: 1; min-width: 68px; text-align: right; }
.rating-ranking-table tbody .rating-table-score i { margin-left: auto; }
  .rating-ranking-table tbody td:nth-child(n + 4) { display: grid; grid-column: 2 / -1; grid-template-columns: minmax(118px, .8fr) minmax(0, 1fr); gap: 12px; border-top: 1px solid color-mix(in srgb, var(--grid) 65%, transparent); padding-top: 8px; text-align: right; }
  .rating-ranking-table tbody td:nth-child(n + 4)::before { content: attr(data-label); color: var(--muted); font-size: 9px; font-weight: 720; letter-spacing: .04em; text-align: left; }
  .rating-ranking-table tbody td:nth-child(n + 4) small { margin-top: 0; }
  .rating-ranking-empty { min-height: 184px; padding-inline: 0; }

}

@media (min-width: 701px) and (max-width: 1024px) {
  .rating-ranking-table tbody tr { grid-template-columns: 42px repeat(2, minmax(0, 1fr)); }
  .rating-ranking-table tbody td:nth-child(n + 4) { grid-column: auto; grid-template-columns: minmax(0, 1fr) auto; }
  .rating-ranking-table tbody td:nth-child(4),
  .rating-ranking-table tbody td:nth-child(6) { grid-column: 2; }
  .rating-ranking-table tbody td:nth-child(5),
  .rating-ranking-table tbody td:nth-child(7) { grid-column: 3; }
  .rating-ranking-table tbody td:nth-child(n + 4) small { display: none; }
}

@media (max-width: 700px) {
  .rating-ranking-page { gap: 26px; }
  .institution-directory-entry,
  .institution-directory-ranking-entry { grid-template-columns: 1fr; align-items: start; gap: 18px; }
  .institution-directory-entry .product-button-link,
  .institution-directory-ranking-entry .product-button-link { justify-self: start; }
  .rating-ranking-context > header { display: grid; align-items: start; }
  .rating-ranking-context > header > span { max-width: none; text-align: left; }
  .rating-ranking-context dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rating-ranking-context dl > div { min-height: 62px; border-top: 1px solid var(--grid); border-right: 0; padding: 12px 0 0; }
  .rating-ranking-context dl > div + div { padding-left: 12px; border-left: 1px solid var(--grid); }
  .rating-ranking-context dl > div:nth-child(odd) { padding-left: 0; border-left: 0; }
  .rating-ranking-hero { grid-template-columns: 1fr; align-items: start; }
  .rating-ranking-hero h1 { margin-bottom: 11px; font-size: clamp(40px, 13vw, 54px); line-height: .96; }
  .rating-ranking-hero > a { min-height: 44px; align-self: start; }
  .rating-ranking-hero h1 { max-width: none; }
  .rating-subject-explorer > header,
  .rating-subject-field-panel > header { grid-template-columns: 1fr; align-items: start; }
  .rating-subject-explorer { gap: 18px; }
  .rating-subject-explorer > header { gap: 18px; }
  .rating-subject-explorer > header input { font-size: 16px; }
  .rating-subject-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rating-subject-category { min-height: 104px; gap: 9px; padding: 14px; }
  .rating-subject-category > strong { font-size: 17px; }
  .rating-subject-category > small { display: none; }
  .rating-subject-branch-grid { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
  .rating-subject-search-results > div { grid-template-columns: 1fr; }
  .rating-subject-branch { border-bottom: 1px solid var(--grid); }
  .rating-subject-branch:nth-child(2n) { border-right: 0; }
  .rating-subject-branch:last-child { border-bottom: 0; }
  .rating-subject-branch > header { min-height: 0; }
  .rating-ranking-board > header { align-items: start; }
  .rating-ranking-board > header > strong { max-width: 11ch; text-align: right; }
  .rating-ranking-source-summary { gap: 16px; padding: 18px 0; }
  .rating-ranking-source-summary dl { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; row-gap: 16px; }
  .rating-ranking-source-summary dl > div { min-height: 54px; padding: 0 10px; }
  .rating-ranking-source-summary dl > div:nth-child(odd) { border-left: 0; padding-left: 0; }
  .rating-ranking-source-summary dl > div:last-child { grid-column: 1 / -1; border-left: 0; border-top: 1px solid var(--grid); padding: 12px 0 0; }
  .rating-ranking-source-summary dt { min-height: 0; }
  .rating-ranking-empty { min-height: 150px; }
  .rating-workbench > header { grid-template-columns: 1fr; align-items: start; }
  .rating-workbench { padding: 18px; }
  .rating-workbench > header { gap: 12px; margin-bottom: 20px; }
  .rating-workbench-grid { grid-template-columns: 1fr; }
  .rating-workbench-grid > fieldset,
  .rating-workbench-grid > fieldset:first-child,
  .rating-workbench-grid > fieldset:nth-child(2),
  .rating-workbench-grid > fieldset:last-child { grid-column: auto; border-left: 0; padding: 0; }
  .rating-workbench-grid > fieldset + fieldset { border-top: 1px solid var(--grid); margin-top: 26px; padding-top: 26px; }
  .rating-workbench-dimension { grid-template-columns: 1fr; gap: 9px; }
  .rating-workbench-dimension > div { grid-template-columns: repeat(5, minmax(44px, 1fr)); }
  .rating-workbench-dimension label span { width: auto; height: 44px; }
  .rating-workbench legend { font-size: 10px; }
  .rating-workbench-targets > label > span:first-child { font-size: 18px; }
  .rating-workbench-required,
  #rating-workbench-status { font-size: 10px; }
  .rating-workbench-context,
  .rating-workbench-scores > small,
  .rating-workbench-consent { font-size: 9px; }
  .rating-workbench-comment textarea { min-height: 118px; font-size: 16px; }
  .rating-ranking-school-tools .institution-ranking-filters { grid-template-columns: 1fr; }
  .rating-school-ranking-page > .product-pagination { margin-top: -8px; }
}

@media (min-width: 701px) and (max-width: 1100px) {
  .rating-ranking-school-tools .institution-ranking-filters { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 13px 12px; }
  .rating-ranking-school-tools .institution-ranking-filters > label:nth-of-type(1) { grid-column: 1 / 3; }
  .rating-ranking-school-tools .institution-ranking-filters > label:nth-of-type(2) { grid-column: 3 / 5; }
  .rating-ranking-school-tools .institution-ranking-filters > label:nth-of-type(3) { grid-column: 5 / 7; }
  .rating-ranking-school-tools .institution-ranking-filters > label:nth-of-type(4) { grid-column: 1 / 3; }
  .rating-ranking-school-tools .institution-ranking-filters > label:nth-of-type(5) { grid-column: 3 / 5; }
  .rating-ranking-school-tools .institution-ranking-filters > label:nth-of-type(6) { grid-column: 5 / 7; }
  .rating-ranking-school-tools .institution-ranking-filters > button { grid-column: 1 / -1; min-height: 44px; }
}

@media (max-width: 360px) {
  .rating-subject-category { min-height: 96px; padding: 12px; }
  .rating-subject-category > span small { display: none; }
  .rating-subject-category > strong { font-size: 16px; }
  .rating-subject-branch { border-right: 0; }
  .rating-ranking-board > header { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; }
  .rating-ranking-source-summary dl { grid-template-columns: 1fr; }
  .rating-ranking-source-summary dl > div,
  .rating-ranking-source-summary dl > div:nth-child(odd),
  .rating-ranking-source-summary dl > div:last-child { grid-column: auto; min-height: 0; border: 0; border-top: 1px solid var(--grid); padding: 10px 0 0; }
  .rating-ranking-source-summary dl > div:first-child { border-top: 0; padding-top: 0; }
  .rating-ranking-source-summary dd { margin-top: 4px; }
  .rating-workbench { border-inline: 0; padding-inline: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .rating-subject-field-panel,
  .rating-subject-search-results { animation: none; }
}

/* Global institution ranking: keep the controls compact and the bilingual identity readable. */
.rating-ranking-page.rating-school-ranking-page { gap: clamp(18px, 2.4vw, 30px); }
.rating-ranking-page .rating-ranking-hero { padding-bottom: clamp(18px, 2.4vw, 28px); }
.rating-ranking-hero__aside {
  --hero-aside-icon-filter: brightness(0) saturate(100%);
  --hero-aside-icon-accent-filter: brightness(0) saturate(100%) invert(32%) sepia(96%) saturate(1538%) hue-rotate(353deg) brightness(87%) contrast(87%);
  display: grid;
  min-width: min(280px, 32vw);
  gap: 16px;
  align-content: end;
  justify-items: stretch;
}
:root[data-theme="dark"] .rating-ranking-hero__aside {
  --hero-aside-icon-filter: brightness(0) saturate(100%) invert(94%) sepia(8%) saturate(232%) hue-rotate(341deg) brightness(103%) contrast(91%);
}
.rating-ranking-hero__aside { display: grid; min-width: min(280px, 32vw); gap: 16px; align-content: end; justify-items: stretch; }
.rating-ranking-hero__aside nav { display: grid; border-top: 1px solid var(--grid); }
.rating-ranking-hero__aside nav a { display: flex; min-height: 42px; justify-content: space-between; gap: 18px; align-items: center; border-bottom: 1px solid var(--grid); color: var(--text); font-size: 10px; font-weight: 720; text-decoration: none; }
.rating-ranking-hero__aside nav a span { color: inherit; }
.rating-ranking-hero__aside nav a:hover,
.rating-ranking-hero__aside nav a:focus-visible { color: var(--hero-text); text-decoration: underline; text-underline-offset: 4px; }
.rating-ranking-page .rating-ranking-school-tools { padding-block: 12px; }
.rating-ranking-page .rating-ranking-school-tools .institution-ranking-filters { grid-template-columns: repeat(3, minmax(0, 1fr)) auto; gap: 12px; }
.rating-ranking-page[data-ranking-view="school"] .rating-ranking-school-tools .institution-ranking-filters { grid-template-columns: repeat(2, minmax(180px, 1fr)); }
.rating-ranking-page[data-ranking-view="global"] .rating-ranking-school-tools .institution-ranking-filters { grid-template-columns: repeat(2, minmax(0, 1fr)) auto; }
.rating-ranking-page .rating-ranking-school-tools .institution-ranking-filters > label { grid-column: auto; }
.rating-ranking-page .rating-ranking-school-tools .institution-ranking-filters > button { grid-column: auto; min-height: 44px; }
.institution-ranking-filters__auto { grid-column: 1 / -1; margin: -2px 0 0; color: var(--muted); font-size: 9px; line-height: 1.45; }
.rating-ranking-table tbody th a { display: block; }
.rating-institution-name-primary,
.rating-institution-name-secondary { display: block; }
.rating-institution-name-secondary { margin-top: 4px !important; color: var(--muted); font-family: var(--sans); font-size: 10px !important; font-weight: 520 !important; line-height: 1.25 !important; }

@media (min-width: 701px) {
  .rating-ranking-page .rating-ranking-table tbody td,
  .rating-ranking-page .rating-ranking-table tbody th { padding-block: 15px; }
}

@media (max-width: 700px) {
  .rating-ranking-hero__aside { width: 100%; min-width: 0; }
  .rating-ranking-page .rating-ranking-school-tools .institution-ranking-filters { grid-template-columns: 1fr; }
  .rating-school-ranking-page .rating-ranking-hero h1 { font-size: clamp(34px, 10.5vw, 54px); }
}

@media (max-width: 700px) {
  /* Keep the ranking surface inside the content column on narrow viewports. */
  .rating-ranking-page > *,
  .rating-ranking-page .rating-ranking-hero,
  .rating-ranking-page .rating-ranking-context,
  .rating-ranking-page .rating-ranking-school-tools,
  .rating-ranking-page .rating-ranking-board,
  .rating-ranking-page .rating-workbench {
    min-width: 0;
    max-width: 100%;
  }

  .rating-ranking-page .rating-ranking-school-tools .institution-ranking-filters,
  .rating-ranking-page .rating-workbench form {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  .rating-ranking-page .rating-ranking-school-tools .institution-ranking-filters > *,
  .rating-ranking-page .rating-ranking-school-tools .institution-ranking-filters label,
  .rating-ranking-page .rating-workbench form > * {
    min-width: 0;
    max-width: 100%;
  }

  .rating-ranking-page .rating-ranking-school-tools .institution-ranking-filters input,
  .rating-ranking-page .rating-ranking-school-tools .institution-ranking-filters select {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  .rating-ranking-page .rating-ranking-table thead tr {
    display: block;
    width: 1px;
    max-width: 1px;
    overflow: hidden;
  }

  .rating-ranking-page .rating-ranking-table thead th {
    display: block;
    width: 1px !important;
    max-width: 1px;
    min-width: 0;
    height: 1px;
    overflow: hidden;
    padding: 0 !important;
  }

  .rating-ranking-page .rating-ranking-hero > * {
    min-width: 0;
    max-width: 100%;
  }
}

/* Global fused ranking: keep the evidence dense without hiding its boundaries. */
.rating-ranking-page.rating-school-ranking-page { gap: clamp(14px, 1.8vw, 22px); }
.rating-school-ranking-page .rating-ranking-hero h1 { margin: 7px 0 9px; font-size: clamp(42px, 4.5vw, 60px); line-height: .94; }
.rating-school-ranking-page .rating-ranking-hero > div > p:last-child { max-width: 72ch; font-size: 12px; line-height: 1.55; }
.rating-ranking-page .rating-ranking-board > header { padding-bottom: 12px; }
.rating-ranking-page .rating-ranking-board > .rating-ranking-board__summary { min-height: 34px; align-items: center; padding-bottom: 9px; }
.rating-ranking-page .rating-ranking-board > .rating-ranking-board__summary .kicker { margin: 0; }
.rating-ranking-page .rating-ranking-board > header h2 { margin-top: 5px; font-size: clamp(26px, 2.6vw, 38px); }
.rating-ranking-page .rating-ranking-board > header > strong { max-width: 34ch; text-align: right; }
.rating-ranking-page .rating-ranking-board > header p:not(.kicker) { max-width: 78ch; margin: 7px 0 0; font-size: 11px; line-height: 1.5; }
.rating-ranking-page .rating-ranking-table tbody th a { font-size: 16px; }
.rating-ranking-page .institution-ranking-coverage__grid article { align-content: start; gap: 10px; }
.institution-publisher-card { min-height: 214px; gap: 11px; }

@media (min-width: 701px) {
  .rating-ranking-page .rating-ranking-table tbody td,
  .rating-ranking-page .rating-ranking-table tbody th { padding-block: 11px; }
}

@media (min-width: 1101px) {
  .rating-ranking-page .rating-ranking-hero { gap: 20px; padding-bottom: 24px; }
  .rating-ranking-page .rating-ranking-hero h1 { margin-top: 7px; margin-bottom: 10px; font-size: clamp(46px, 4.2vw, 58px); }
  .rating-ranking-page .rating-ranking-school-tools .institution-ranking-filters { grid-template-columns: minmax(220px, 1.25fr) repeat(3, minmax(145px, .85fr)) auto; }
  .rating-ranking-page[data-ranking-view="school"] .rating-ranking-school-tools .institution-ranking-filters { grid-template-columns: repeat(2, minmax(220px, 1fr)); }
  .rating-ranking-page .rating-ranking-table.is-school thead th:nth-child(2) { width: 31%; }
}

@media (max-width: 700px) {
  .rating-ranking-page .rating-ranking-board > header > strong { max-width: 26ch; text-align: right; }
  .rating-ranking-page .rating-ranking-table tbody tr { padding-block: 14px; }
  .rating-ranking-page .institution-ranking-coverage__grid article { min-height: 0; }
}

/* Student-experience ranking: component sorting keeps the overall rank fixed. */
.student-rating-tools { border-block: 1px solid var(--grid); padding: 14px 0; }
.student-rating-filters { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(210px, .55fr) auto; gap: 12px; align-items: end; }
.student-rating-filters.is-subject { grid-template-columns: minmax(180px, .55fr) minmax(220px, 1fr) minmax(190px, .55fr) auto; }
.student-rating-filters label { display: grid; min-width: 0; gap: 7px; }
.student-rating-filters label > span { color: var(--muted); font-size: 9px; font-weight: 760; letter-spacing: .08em; text-transform: uppercase; }
.student-rating-filters input,
.student-rating-filters select { width: 100%; min-width: 0; min-height: 44px; border: 1px solid var(--grid); border-radius: 0; background: transparent; padding: 0 12px; color: var(--text); font: inherit; font-size: 12px; }
.student-rating-filters option { background: var(--ink); color: var(--paper); }
.student-rating-filters .primary-button { min-height: 44px; }
.student-rating-cohort-boundary { max-width: 72ch; margin: 8px 0 0; color: var(--accent); font-size: 10px; font-weight: 700; letter-spacing: .02em; }

@media (max-width: 980px) and (min-width: 701px) {
  .student-rating-filters.is-subject { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .student-rating-filters.is-subject .primary-button { width: 100%; }
}
.student-rating-board > header { align-items: end; }
.student-rating-board > header > div { min-width: 0; }
.student-rating-board > header > div > p:not(.kicker) { max-width: 76ch; margin: 8px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.student-rating-model-note { color: var(--text) !important; font-weight: 690; }
.student-rating-fixed-rank-note { border-left: 2px solid var(--hero-text); padding-left: 10px; color: var(--hero-text) !important; font-weight: 690; }
.student-rating-board-meta { display: grid; flex: 0 0 auto; gap: 5px; justify-items: end; text-align: right; }
.student-rating-board-meta strong { font-family: var(--display-serif); font-size: 17px; font-weight: 620; }
.student-rating-board-meta small { color: var(--muted); font-size: 8px; }
.rating-ranking-table.is-student-experience { min-width: 900px; }
.rating-ranking-table.is-student-experience .rating-table-rank { font-variant-numeric: tabular-nums; }
.rating-ranking-table.is-student-experience .rating-table-score small { max-width: 16ch; }

/* School and subject rating rankings reuse the same global-ranking shell one-for-one. */
.rating-school-rating-page .student-rating-tools {
  border-block: 0;
  padding: 8px 0 10px;
}
.student-rating-model-summary {
  display: grid;
  grid-template-columns: minmax(250px, .62fr) minmax(0, 1.38fr);
  gap: clamp(18px, 3vw, 48px);
  align-items: start;
  border-block: 1px solid var(--grid);
  padding: clamp(16px, 2vw, 24px) 0;
}
.student-rating-model-summary strong {
  color: var(--hero-text);
  font-family: var(--display-serif);
  font-size: clamp(20px, 2vw, 28px);
  font-weight: 620;
  line-height: 1.12;
}
.student-rating-model-summary p {
  max-width: 80ch;
  margin: 0;
  color: var(--muted);
  font-size: var(--type-body-sm);
  line-height: 1.65;
}
.rating-school-rating-page .student-rating-filters.institution-ranking-filters {
  position: relative;
  grid-template-columns: repeat(2, minmax(220px, 1fr));
  align-items: start;
}
.rating-school-rating-page .student-rating-filters .institution-ranking-filter { gap: 8px; }
.rating-school-rating-page .student-rating-filters .institution-ranking-filter > span {
  color: var(--label);
  font-size: var(--type-label);
  font-weight: 760;
  letter-spacing: .04em;
  text-transform: none;
}
.rating-school-rating-page .student-rating-filters input,
.rating-school-rating-page .student-rating-filters select {
  min-height: 50px;
  border-color: color-mix(in srgb, var(--text) 20%, var(--grid));
  border-radius: 10px;
  background: color-mix(in srgb, var(--paper) 82%, transparent);
  padding-inline: 14px;
  color: var(--text);
  font-size: var(--type-body-sm);
}
.rating-school-rating-page .student-rating-submit {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}
.rating-school-rating-page .student-rating-filters .institution-ranking-filters__auto {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--label);
  font-size: var(--type-meta);
}
.rating-school-rating-page .rating-ranking-table.is-student-experience.is-school { min-width: 960px; }
.rating-school-rating-page .rating-ranking-table.is-school .rating-table-score progress {
  display: block;
  margin-top: 8px;
}

@media (min-width: 701px) and (max-width: 1024px) {
  .rating-school-rating-page .rating-ranking-table.is-student-experience.is-school {
    min-width: 0;
  }
  .rating-school-rating-page .rating-ranking-table.is-school .rating-table-score progress {
    width: 60px;
    margin: 3px auto 0;
  }
}

@media (max-width: 700px) {
  .student-rating-model-summary { grid-template-columns: 1fr; gap: 10px; }
  .rating-school-rating-page .student-rating-filters.institution-ranking-filters { grid-template-columns: 1fr; }
  .rating-school-rating-page .rating-ranking-table.is-student-experience.is-school { min-width: 0; }
}

/* Major career-outlook ranking: majors are the ranked entity; raw evidence lives on detail pages. */
.major-career-page { gap: clamp(20px, 2.5vw, 34px); }
.major-career-page .rating-ranking-hero { align-items: end; }
.major-career-page .rating-ranking-hero > div { max-width: 860px; }
.major-career-page .rating-ranking-hero > a,
.major-career-detail-back a { color: var(--text); font-size: 12px; font-weight: 680; letter-spacing: .04em; text-decoration: none; }
.major-career-page .rating-ranking-hero > a:hover,
.major-career-detail-back a:hover { color: var(--accent); }
.major-career-tools { border-block: 1px solid var(--grid); padding: 14px 0; }
.major-career-filters { display: grid; grid-template-columns: minmax(260px, 1fr) minmax(190px, .42fr) auto; gap: 12px; align-items: end; }
.major-career-filters label { display: grid; gap: 7px; color: var(--muted); font-size: 10px; font-weight: 680; letter-spacing: .08em; text-transform: uppercase; }
.major-career-filters input,
.major-career-filters select { width: 100%; min-height: 44px; border: 1px solid var(--grid); border-radius: 0; background: transparent; color: var(--text); padding: 0 13px; font: inherit; }
.major-career-filters input:focus,
.major-career-filters select:focus { border-color: var(--accent); outline: 2px solid color-mix(in srgb, var(--accent) 18%, transparent); outline-offset: 1px; }
.major-career-board { min-width: 0; }
.major-career-board > header { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: end; border-bottom: 1px solid var(--text); padding-bottom: 14px; }
.major-career-board > header h2 { margin: 5px 0 0; font-family: var(--display-serif); font-size: clamp(30px, 3.5vw, 46px); font-weight: 600; letter-spacing: -.04em; line-height: 1; }
.major-career-board > header p:not(.kicker) { max-width: 70ch; margin: 8px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.major-career-board > header > strong { max-width: 24ch; color: var(--muted); font-size: 11px; text-align: right; }
.major-career-fixed-rank { color: var(--accent) !important; }
.major-career-list { list-style: none; margin: 0; padding: 0; }
.major-career-row { border-bottom: 1px solid var(--grid); }
.major-career-row > a { display: grid; grid-template-columns: 70px minmax(210px, 1.15fr) 92px minmax(490px, 2.6fr); gap: clamp(14px, 2vw, 28px); align-items: center; min-height: 116px; padding: 18px 8px 18px 0; color: var(--text); text-decoration: none; transition: background-color .25s ease, color .25s ease, transform .25s ease; }
.major-career-row > a:hover { background: color-mix(in srgb, var(--surface-raised, #fff) 70%, transparent); color: var(--accent); transform: translateX(4px); }
.major-career-rank,
.major-career-overall { display: grid; gap: 5px; align-content: center; }
.major-career-rank small,
.major-career-overall small,
.major-career-identity > small,
.major-career-score small { color: var(--muted); font-size: 9px; font-style: normal; font-weight: 690; letter-spacing: .08em; line-height: 1.25; text-transform: uppercase; }
.major-career-rank strong { font-family: var(--display-serif); font-size: 31px; font-weight: 500; letter-spacing: -.04em; }
.major-career-identity { display: grid; gap: 6px; min-width: 0; }
.major-career-identity > strong { overflow-wrap: anywhere; font-family: var(--display-serif); font-size: clamp(22px, 2vw, 30px); font-weight: 560; letter-spacing: -.025em; line-height: 1.08; }
.major-career-identity > em { color: var(--accent); font-size: 10px; font-style: normal; font-weight: 680; opacity: 0; transform: translateY(4px); transition: opacity .2s ease, transform .2s ease; }
.major-career-row > a:hover .major-career-identity > em,
.major-career-row > a:focus-visible .major-career-identity > em { opacity: 1; transform: none; }
.major-career-overall strong { font-family: var(--display-serif); font-size: 35px; font-weight: 560; letter-spacing: -.04em; line-height: 1; }
.major-career-overall > i,
.major-career-score > i { display: block; position: relative; overflow: hidden; height: 2px; background: var(--grid); }
.major-career-overall > i::after,
.major-career-score > i::after { content: ""; position: absolute; inset: 0 auto 0 0; width: var(--score-pct); background: currentColor; }
.major-career-components { display: grid; grid-template-columns: repeat(7, minmax(62px, 1fr)); gap: 8px; min-width: 0; }
.major-career-score { display: grid; gap: 7px; min-width: 0; padding: 10px 8px; border-left: 1px solid var(--grid); color: var(--text); }
.major-career-score.is-active { background: color-mix(in srgb, var(--accent) 7%, transparent); color: var(--accent); }
.major-career-score strong { font-size: 15px; font-weight: 720; font-variant-numeric: tabular-nums; }

.major-career-detail { display: grid; gap: clamp(24px, 3vw, 44px); }
.major-career-detail-back { border-bottom: 1px solid var(--grid); padding-bottom: 14px; }
.major-career-detail-hero { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 32px; align-items: end; padding: clamp(24px, 4vw, 54px) 0 clamp(28px, 4vw, 52px); border-bottom: 1px solid var(--text); }
.major-career-detail-hero > div:first-child > small { display: block; margin-top: 16px; color: var(--muted); font-size: 11px; font-weight: 680; letter-spacing: .08em; text-transform: uppercase; }
.major-career-detail-hero h1 { max-width: 14ch; margin: 9px 0 12px; font-family: var(--display-serif); font-size: clamp(54px, 8vw, 112px); font-weight: 520; letter-spacing: -.065em; line-height: .9; }
.major-career-detail-hero p { margin: 0; color: var(--muted); font-size: 12px; }
.major-career-detail-overall { display: grid; min-width: 146px; padding-left: 24px; border-left: 1px solid var(--grid); text-align: right; }
.major-career-detail-overall small { color: var(--muted); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.major-career-detail-overall strong { font-family: var(--display-serif); font-size: clamp(70px, 9vw, 118px); font-weight: 500; letter-spacing: -.07em; line-height: .9; }
.major-career-detail-overall span { margin-top: 8px; color: var(--accent); font-size: 12px; font-weight: 720; }
.major-career-detail-scores { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-block: 1px solid var(--grid); }
.major-career-detail-scores .major-career-score { min-height: 92px; padding: 18px 14px; align-content: space-between; }
.major-career-detail-scores .major-career-score:first-child { border-left: 0; }
.major-career-detail-scores .major-career-score strong { font-family: var(--display-serif); font-size: 27px; font-weight: 560; }
.major-career-evidence,
.major-career-occupations,
.major-career-sources { display: grid; gap: 22px; }
.major-career-evidence > header,
.major-career-occupations > header,
.major-career-sources > header { display: grid; grid-template-columns: minmax(0, 1fr); max-width: 850px; }
.major-career-evidence h2,
.major-career-occupations h2,
.major-career-sources h2,
.major-career-rating-intro h2 { margin: 6px 0 8px; font-family: var(--display-serif); font-size: clamp(30px, 4vw, 48px); font-weight: 560; letter-spacing: -.04em; line-height: 1; }
.major-career-evidence header p:not(.kicker),
.major-career-sources header p:not(.kicker),
.major-career-rating-intro p:not(.kicker) { max-width: 74ch; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.major-career-evidence-groups { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--grid); }
.major-career-evidence-groups > section { padding: clamp(20px, 3vw, 34px); }
.major-career-evidence-groups > section + section { border-left: 1px solid var(--grid); }
.major-career-evidence-groups h3 { margin: 0 0 18px; font-family: var(--display-serif); font-size: 24px; font-weight: 560; }
.major-career-evidence-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.major-career-evidence-grid article { display: grid; align-content: start; min-height: 112px; padding: 16px 14px 14px 0; border-top: 1px solid var(--grid); }
.major-career-evidence-grid article:nth-child(even) { padding-left: 16px; border-left: 1px solid var(--grid); }
.major-career-evidence-grid small { color: var(--muted); font-size: 9px; font-weight: 690; letter-spacing: .08em; text-transform: uppercase; }
.major-career-evidence-grid strong { margin-top: 10px; font-family: var(--display-serif); font-size: 28px; font-weight: 560; letter-spacing: -.03em; }
.major-career-evidence-grid p { margin: 8px 0 0; color: var(--muted); font-size: 9px; line-height: 1.45; }
.major-career-occupations > div { overflow-x: auto; border-top: 1px solid var(--text); }
.major-career-occupations table { width: 100%; min-width: 1080px; border-collapse: collapse; table-layout: fixed; }
.major-career-occupations th,
.major-career-occupations td { padding: 15px 12px; border-bottom: 1px solid var(--grid); text-align: left; vertical-align: middle; }
.major-career-occupations thead th { color: var(--muted); font-size: 9px; font-weight: 690; letter-spacing: .08em; text-transform: uppercase; }
.major-career-occupations thead th:first-child { width: 25%; }
.major-career-occupations thead th:nth-child(2) { width: 17%; }
.major-career-occupations thead th:nth-child(3) { width: 24%; }
.major-career-occupations tbody th strong,
.major-career-occupations tbody th small { display: block; }
.major-career-occupations tbody th strong { font-size: 14px; font-weight: 650; }
.major-career-occupations tbody th small { margin-top: 4px; color: var(--muted); font-size: 9px; }
.major-career-occupations td { font-size: 12px; font-variant-numeric: tabular-nums; }
.major-career-sources > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--grid); }
.major-career-sources a { display: grid; min-height: 128px; padding: 18px; border-right: 1px solid var(--grid); border-bottom: 1px solid var(--grid); color: var(--text); text-decoration: none; }
.major-career-sources a:nth-child(3n) { border-right: 0; }
.major-career-sources a:hover { background: color-mix(in srgb, var(--accent) 6%, transparent); color: var(--accent); }
.major-career-sources a span,
.major-career-sources a small { color: var(--muted); font-size: 9px; }
.major-career-sources a strong { margin: 8px 0 auto; font-size: 13px; line-height: 1.35; }
.major-career-rating-intro { padding-top: 8px; border-top: 1px solid var(--text); }

@media (max-width: 1120px) {
  .major-career-row > a { grid-template-columns: 62px minmax(190px, 1fr) 80px minmax(300px, 1.65fr); gap: 14px; }
  .major-career-components { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .major-career-score { padding-block: 7px; }
  .major-career-detail-scores { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .major-career-detail-scores .major-career-score:nth-child(4) { border-left: 0; }
  .major-career-detail-scores .major-career-score:nth-child(n+4) { border-top: 1px solid var(--grid); }
}

@media (max-width: 780px) {
  .major-career-page .rating-ranking-hero { align-items: start; }
  .major-career-filters { grid-template-columns: 1fr; }
  .major-career-filters > button { width: 100%; }
  .major-career-board > header { grid-template-columns: 1fr; }
  .major-career-board > header > strong { max-width: none; text-align: left; }
  .major-career-row > a { grid-template-columns: 52px minmax(0, 1fr) 70px; min-height: 0; padding: 20px 0; transform: none !important; }
  .major-career-components { grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .major-career-identity > em { display: none; }
  .major-career-rank strong { font-size: 26px; }
  .major-career-identity > strong { font-size: 24px; }
  .major-career-overall strong { font-size: 30px; }
  .major-career-detail-hero { grid-template-columns: 1fr; align-items: start; }
  .major-career-detail-hero h1 { font-size: clamp(50px, 15vw, 82px); }
  .major-career-detail-overall { grid-template-columns: auto auto; align-items: end; min-width: 0; padding: 18px 0 0; border-top: 1px solid var(--grid); border-left: 0; text-align: left; }
  .major-career-detail-overall small { grid-column: 1 / -1; }
  .major-career-detail-overall strong { font-size: 72px; }
  .major-career-detail-overall span { justify-self: end; margin-bottom: 7px; }
  .major-career-evidence-groups { grid-template-columns: 1fr; }
  .major-career-evidence-groups > section + section { border-top: 1px solid var(--grid); border-left: 0; }
  .major-career-sources > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .major-career-sources a:nth-child(3n) { border-right: 1px solid var(--grid); }
  .major-career-sources a:nth-child(2n) { border-right: 0; }
}

@media (max-width: 520px) {
  .major-career-components { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .major-career-detail-scores { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .major-career-detail-scores .major-career-score:nth-child(3),
  .major-career-detail-scores .major-career-score:nth-child(5) { border-left: 0; }
  .major-career-detail-scores .major-career-score:nth-child(n+3) { border-top: 1px solid var(--grid); }
  .major-career-detail-scores .major-career-score:nth-child(4) { border-left: 1px solid var(--grid); }
  .major-career-evidence-grid { grid-template-columns: 1fr; }
  .major-career-evidence-grid article:nth-child(even) { padding-left: 0; border-left: 0; }
  .major-career-occupations thead { display: none; }
  .major-career-occupations table { min-width: 0; }
  .major-career-occupations tbody,
  .major-career-occupations tr,
  .major-career-occupations th,
  .major-career-occupations td { display: block; width: 100%; }
  .major-career-occupations tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 14px 0; border-bottom: 1px solid var(--grid); }
  .major-career-occupations tbody th { grid-column: 1 / -1; border-bottom: 0; }
  .major-career-occupations td { padding-top: 5px; border-bottom: 0; }
  .major-career-occupations td::before { content: attr(data-label); display: block; margin-bottom: 4px; color: var(--muted); font-size: 8px; font-weight: 690; letter-spacing: .06em; text-transform: uppercase; }
  .major-career-sources > div { grid-template-columns: 1fr; }
  .major-career-sources a,
  .major-career-sources a:nth-child(2n),
  .major-career-sources a:nth-child(3n) { min-height: 110px; border-right: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .major-career-row > a,
  .major-career-identity > em { transition: none; }
}

@media (max-width: 1024px) {
  .rating-ranking-table.is-student-experience { min-width: 0; }
}

@media (max-width: 700px) {
  .student-rating-filters,
  .student-rating-filters.is-subject { grid-template-columns: minmax(0, 1fr); }
  .student-rating-filters .primary-button { width: 100%; }
  .student-rating-board > header { display: grid; grid-template-columns: 1fr; align-items: start; }
  .student-rating-board-meta { justify-items: start; text-align: left; }
  .student-rating-fixed-rank-note { padding-block: 2px; }
  .rating-ranking-table.is-student-experience tbody tr { grid-template-columns: 48px minmax(0, 1fr) auto; }
}

/* School Top 500: clearer selects, bilingual names, and denser score rows. */
.rating-school-ranking-page .rating-ranking-hero { border-bottom: 0; }
.rating-school-ranking-page .rating-ranking-school-tools { position: relative; z-index: 4; overflow: visible; border-block: 0; padding-block: 4px 8px; }
.rating-school-ranking-page .institution-ranking-filters { gap: 10px 14px; }
.rating-school-ranking-page .rating-ranking-school-tools .institution-ranking-filters > .institution-ranking-filter { display: grid; grid-column: auto; }
.rating-school-ranking-page .institution-ranking-filter { position: relative; display: grid; min-width: 0; gap: 8px; }
.rating-school-ranking-page .institution-ranking-filter > span { color: var(--text); font-size: 10px; font-weight: 760; letter-spacing: .06em; }
.rating-school-ranking-page .institution-ranking-dropdown { position: relative; min-width: 0; }
.rating-school-ranking-page .institution-ranking-dropdown summary {
  position: relative;
  display: flex;
  min-height: 52px;
  align-items: center;
  border: 1px solid color-mix(in srgb, var(--text) 24%, var(--grid));
  background: color-mix(in srgb, var(--text) 1.5%, transparent);
  padding: 0 48px 0 16px;
  font-size: 13px;
  cursor: pointer;
  list-style: none;
  transition: border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
}
.rating-school-ranking-page .institution-ranking-dropdown summary::-webkit-details-marker { display: none; }
.rating-school-ranking-page .institution-ranking-dropdown summary::after {
  position: absolute;
  right: 17px;
  top: 50%;
  width: 14px;
  height: 14px;
  background: url("/icons/phosphor-arrow-right.svg") center / contain no-repeat;
  content: "";
  opacity: .68;
  pointer-events: none;
  transform: translateY(-50%) rotate(90deg);
  transform-origin: center;
  transition: opacity 180ms ease, transform 240ms cubic-bezier(.22, 1, .36, 1);
}
.rating-school-ranking-page .institution-ranking-dropdown summary strong {
  overflow: hidden;
  font-weight: 620;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.rating-school-ranking-page .institution-ranking-dropdown summary:hover { border-color: color-mix(in srgb, var(--hero-text) 62%, var(--grid)); }
.rating-school-ranking-page .institution-ranking-dropdown summary:focus-visible { outline: 2px solid var(--hero-text); outline-offset: 3px; }
.rating-school-ranking-page .institution-ranking-dropdown[open] summary::after { transform: translateY(-50%) rotate(-90deg); }
.rating-school-ranking-page .institution-ranking-dropdown.is-closing summary::after { transform: translateY(-50%) rotate(90deg); }
.rating-school-ranking-page .institution-ranking-filter.is-active summary,
.rating-school-ranking-page .institution-ranking-dropdown[open] summary {
  border-color: color-mix(in srgb, var(--hero-text) 58%, var(--grid));
  background: color-mix(in srgb, var(--hero-text) 4%, transparent);
  box-shadow: inset 3px 0 0 var(--hero-text);
}
.rating-school-ranking-page .institution-ranking-dropdown__options {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 8;
  display: grid;
  width: 100%;
  max-height: min(360px, 52vh);
  overflow-y: auto;
  border: 1px solid color-mix(in srgb, var(--text) 30%, var(--grid));
  background: var(--paper);
  padding: 6px;
  box-shadow: 0 18px 38px color-mix(in srgb, var(--text) 14%, transparent);
  transform-origin: top center;
}
.rating-school-ranking-page .institution-ranking-dropdown.is-opening .institution-ranking-dropdown__options,
.rating-school-ranking-page .institution-ranking-dropdown.is-closing .institution-ranking-dropdown__options { overflow: hidden; }
.rating-school-ranking-page .institution-ranking-dropdown__options button {
  display: flex;
  min-height: 42px;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  width: 100%;
  border: 0;
  background: transparent;
  padding: 9px 11px;
  color: var(--text);
  font: inherit;
  font-size: 12px;
  font-weight: 580;
  text-align: left;
  cursor: pointer;
}
.rating-school-ranking-page .institution-ranking-dropdown__options button:hover,
.rating-school-ranking-page .institution-ranking-dropdown__options button:focus-visible { outline: 0; background: color-mix(in srgb, var(--hero-text) 8%, transparent); color: var(--hero-text); }
.rating-school-ranking-page .institution-ranking-dropdown__options button.is-selected { background: color-mix(in srgb, var(--text) 6%, transparent); font-weight: 760; }
.rating-school-ranking-page .institution-ranking-dropdown__options button small { color: var(--hero-text); font-size: 9px; font-weight: 760; }
.rating-school-ranking-page .institution-ranking-filters__auto { margin-top: 0; font-size: 10px; }
.rating-school-ranking-page .rating-ranking-table.is-school tbody th a { display: flex; flex-wrap: wrap; gap: 4px 9px; align-items: baseline; font-size: 18px; font-weight: 720; }
.rating-school-ranking-page .rating-institution-name-primary,
.rating-school-ranking-page .rating-institution-name-secondary { display: inline; }
.rating-school-ranking-page .rating-institution-name-secondary { margin: 0 !important; font-size: 12px !important; font-weight: 650 !important; line-height: 1.25 !important; }
.rating-school-ranking-page .rating-ranking-table.is-school tbody th > small { margin-top: 5px; font-size: 9px; }
.rating-school-ranking-page .rating-ranking-table.is-school tbody td:nth-child(n + 4) strong { font-size: 13px; font-weight: 760; }

@media (min-width: 701px) and (max-width: 1024px) {
  .rating-school-ranking-page .rating-ranking-table.is-school tbody tr {
    grid-template-columns: 42px minmax(230px, 1.75fr) 72px repeat(4, minmax(70px, .55fr));
    gap: 8px 11px;
    align-items: center;
    padding: 14px 0;
  }
  .rating-school-ranking-page .rating-ranking-table.is-school tbody .rating-table-rank { grid-column: 1; grid-row: 1; }
  .rating-school-ranking-page .rating-ranking-table.is-school tbody th { grid-column: 2; grid-row: 1; }
  .rating-school-ranking-page .rating-ranking-table.is-school tbody .rating-table-score { grid-column: 3; grid-row: 1; min-width: 0; }
  .rating-school-ranking-page .rating-ranking-table.is-school tbody td:nth-child(n + 4) {
    display: grid;
    grid-column: auto;
    grid-row: 1;
    grid-template-columns: 1fr;
    gap: 5px;
    border-top: 0;
    padding: 0;
    text-align: left;
  }
  .rating-school-ranking-page .rating-ranking-table.is-school tbody td:nth-child(n + 4)::before {
    color: var(--muted);
    font-size: 10px;
    font-weight: 680;
    letter-spacing: 0;
    line-height: 1.25;
    text-transform: none;
  }
  .rating-school-ranking-page .rating-ranking-table.is-school tbody td:nth-child(n + 4) strong { font-size: 14px; line-height: 1.1; }
  .rating-school-ranking-page .rating-ranking-table.is-school tbody td:nth-child(n + 4) small { display: none; }
}

@media (max-width: 700px) {
  .rating-school-ranking-page .institution-ranking-dropdown summary { min-height: 50px; font-size: 16px; }
  .rating-school-ranking-page .institution-ranking-dropdown__options { max-height: min(320px, 48vh); }
  .rating-school-ranking-page .rating-ranking-table.is-school tbody td:nth-child(n + 4) { padding-top: 6px; }
  .rating-school-ranking-page .rating-ranking-table.is-school tbody td:nth-child(n + 4)::before { font-size: 10px; }
  .rating-school-ranking-page .rating-ranking-table.is-school tbody td:nth-child(n + 4) strong { font-size: 14px; }
}

/* School Top 500 typography and interaction polish, aligned to the global type scale. */
.rating-school-ranking-page {
  --ranking-row-hover: color-mix(in srgb, var(--hero-text) 4.5%, transparent);
  --ranking-control-fill: color-mix(in srgb, var(--surface-strong) 58%, transparent);
}

.rating-school-ranking-page .rating-ranking-hero {
  position: relative;
  grid-template-columns: minmax(0, 1.45fr) minmax(250px, .55fr);
  gap: clamp(28px, 4.6vw, 72px);
  align-items: end;
  padding-top: clamp(8px, 1.4vw, 18px);
}

.rating-school-ranking-page .rating-ranking-hero > div { min-width: 0; }

.rating-school-ranking-page .rating-ranking-hero .kicker {
  margin-bottom: 10px;
  color: var(--label);
  font-size: var(--type-label);
  letter-spacing: .13em;
}

.rating-school-ranking-page .rating-ranking-hero h1 {
  position: relative;
  display: grid;
  width: fit-content;
  max-width: 16ch;
  gap: 2px;
  margin: 0 0 14px;
  padding-bottom: 12px;
  font-size: var(--type-display-xl);
  letter-spacing: var(--tracking-display);
  line-height: var(--leading-display);
  isolation: isolate;
}

.rating-school-ranking-page .rating-ranking-hero h1::after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: var(--hero);
  content: "";
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--motion-base) var(--ease-out);
}

.rating-school-ranking-page .rating-ranking-hero h1 > span {
  display: block;
  transition: color var(--motion-base) ease, transform var(--motion-base) var(--ease-out), letter-spacing var(--motion-base) var(--ease-out);
}

.rating-school-ranking-page .rating-ranking-hero h1 > span:first-child {
  color: var(--hero-text);
  font-size: .72em;
  letter-spacing: -.025em;
  line-height: 1;
}

.rating-school-ranking-page .rating-ranking-hero h1 > span:last-child { color: var(--text); }

@media (hover: hover) and (pointer: fine) {
  .rating-school-ranking-page .rating-ranking-hero h1:hover::after { transform: scaleX(1); }
  .rating-school-ranking-page .rating-ranking-hero h1:hover > span:first-child { transform: translateX(5px); letter-spacing: -.01em; }
  .rating-school-ranking-page .rating-ranking-hero h1:hover > span:last-child { color: var(--hero-text); transform: translateX(9px); }
}

.rating-school-ranking-page .rating-ranking-hero > div > p:last-child {
  max-width: 70ch;
  color: var(--label);
  font-size: var(--type-body-sm);
  line-height: var(--leading-readable);
}

.rating-school-ranking-page .rating-ranking-hero__aside { gap: 12px; }
.rating-school-ranking-page .rating-ranking-hero__aside nav { gap: 5px; border-top: 0; }
.rating-school-ranking-page .rating-ranking-hero__aside nav a {
  min-height: 44px;
  border: 0;
  border-radius: 10px;
  background: color-mix(in srgb, var(--surface-strong) 48%, transparent);
  padding: 0 12px;
  font-size: 12px;
  transition: background-color var(--motion-fast) ease, color var(--motion-fast) ease, transform var(--motion-fast) var(--ease-out);
}
.rating-school-ranking-page .rating-ranking-hero__aside nav a span { transition: transform var(--motion-fast) var(--ease-out); }
.rating-school-ranking-page .rating-ranking-hero__aside nav a:hover,
.rating-school-ranking-page .rating-ranking-hero__aside nav a:focus-visible {
  background: color-mix(in srgb, var(--hero-text) 7%, transparent);
  text-decoration: none;
  transform: translateX(3px);
}
.rating-school-ranking-page .rating-ranking-hero__aside nav a:hover span,
.rating-school-ranking-page .rating-ranking-hero__aside nav a:focus-visible span { transform: translateX(3px); }
.rating-school-ranking-page .rating-ranking-school-tools {
  border-radius: 0;
  background: transparent;
  padding: 8px 0 10px;
}

.rating-school-ranking-page .institution-ranking-filter > span {
  color: var(--label);
  font-size: var(--type-label);
  font-weight: 760;
  letter-spacing: .04em;
}

.rating-school-ranking-page .institution-ranking-dropdown summary {
  min-height: 50px;
  border-color: color-mix(in srgb, var(--text) 20%, var(--grid));
  border-radius: 10px;
  background: color-mix(in srgb, var(--paper) 82%, transparent);
  font-size: var(--type-body-sm);
}
.rating-school-ranking-page .institution-ranking-dropdown__options { border-radius: 10px; }
.rating-school-ranking-page .institution-ranking-dropdown__options button { font-size: var(--type-body-sm); }
.rating-school-ranking-page .institution-ranking-filters__auto { color: var(--label); font-size: var(--type-meta); }

.rating-school-ranking-page .rating-ranking-table.is-school {
  border-spacing: 0;
}

.rating-school-ranking-page .rating-ranking-table.is-school thead th {
  background: color-mix(in srgb, var(--surface-strong) 64%, var(--paper));
  color: var(--label);
  font-size: var(--type-meta);
  letter-spacing: .055em;
}

.rating-school-ranking-page .rating-ranking-table.is-school tbody tr {
  position: relative;
  transition: background-color var(--motion-fast) ease, box-shadow var(--motion-fast) ease;
}

.rating-school-ranking-page .rating-ranking-table.is-school tbody tr:hover,
.rating-school-ranking-page .rating-ranking-table.is-school tbody tr:focus-within {
  background: var(--ranking-row-hover);
  box-shadow: inset 3px 0 0 color-mix(in srgb, var(--hero-text) 72%, transparent);
}

.rating-school-ranking-page .rating-ranking-table.is-school .rating-table-rank {
  font-size: 21px !important;
  font-variant-numeric: tabular-nums;
}

.rating-school-ranking-page .rating-ranking-table.is-school tbody th a {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 2px;
  align-items: start;
  width: fit-content;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
  padding-bottom: 7px;
  font-size: 19px;
  font-weight: 720;
  letter-spacing: -.018em;
  line-height: 1.18;
  transition: color var(--motion-fast) ease;
}

.rating-school-ranking-page .rating-institution-name-line {
  display: flex;
  min-width: 0;
  align-items: flex-start;
  gap: 9px;
}

.rating-school-ranking-page .rating-institution-name-line > a { flex: 0 1 auto; }

.rating-school-ranking-page .rating-institution-country {
  flex: 0 0 auto;
  margin-top: 7px;
  color: var(--muted);
  font-family: var(--sans);
  font-size: var(--type-meta);
  font-weight: 780;
  letter-spacing: .08em;
  line-height: 1;
  text-decoration: none;
}

.rating-school-ranking-page .rating-ranking-table.is-school tbody th a::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 2px;
  background: var(--hero);
  content: "";
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--motion-base) var(--ease-out);
}

.rating-school-ranking-page .rating-ranking-table.is-school tbody th a:hover,
.rating-school-ranking-page .rating-ranking-table.is-school tbody th a:focus-visible {
  color: var(--hero-text);
  text-decoration: none;
}

.rating-school-ranking-page .rating-ranking-table.is-school tbody th a:hover::after,
.rating-school-ranking-page .rating-ranking-table.is-school tbody th a:focus-visible::after { transform: scaleX(1); }

.rating-school-ranking-page .rating-institution-name-primary {
  display: block;
  min-width: 0;
  overflow: hidden;
  color: inherit;
  line-height: 1.12;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition: color var(--motion-fast) ease;
}

.rating-school-ranking-page .rating-institution-name-secondary {
  display: block;
  width: fit-content;
  max-width: 100%;
  min-width: 0;
  margin: 0 !important;
  overflow: hidden;
  color: var(--label);
  font-size: 12.5px !important;
  font-weight: 650 !important;
  letter-spacing: -.005em;
  line-height: 1.22 !important;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition: color var(--motion-fast) ease;
}

.rating-school-ranking-page .rating-ranking-table.is-school tbody th a:hover .rating-institution-name-secondary,
.rating-school-ranking-page .rating-ranking-table.is-school tbody th a:focus-visible .rating-institution-name-secondary { color: var(--hero-text); }

.rating-school-ranking-page .rating-ranking-table.is-school tbody th > small {
  margin-top: 6px;
  color: var(--muted);
  font-size: var(--type-meta);
  line-height: 1.4;
}

.rating-school-ranking-page .rating-ranking-table.is-school .rating-table-score strong {
  font-size: 27px;
  font-variant-numeric: tabular-nums;
}
.rating-subject-rating-page .rating-ranking-table.is-school .rating-table-score {
  min-width: 0;
  overflow: hidden;
  box-sizing: border-box;
}
.rating-subject-rating-page .rating-ranking-table.is-school .rating-table-score strong,
.rating-subject-rating-page .rating-ranking-table.is-school .rating-table-score progress {
  max-width: 100%;
}
.rating-school-ranking-page .rating-ranking-table.is-school .rating-table-score i,
.rating-school-ranking-page .rating-ranking-table.is-school .rating-table-score progress {
  width: 82px;
  height: 3px;
  overflow: hidden;
  border: 0;
  border-radius: 999px;
  background: color-mix(in srgb, var(--grid) 70%, transparent);
}
.rating-school-ranking-page .rating-ranking-table.is-school .rating-table-score progress { appearance: none; }
.rating-school-ranking-page .rating-ranking-table.is-school .rating-table-score progress::-webkit-progress-bar {
  border-radius: inherit;
  background: color-mix(in srgb, var(--grid) 70%, transparent);
}
.rating-school-ranking-page .rating-ranking-table.is-school .rating-table-score progress::-webkit-progress-value {
  border-radius: inherit;
  background: var(--hero);
}
.rating-school-ranking-page .rating-ranking-table.is-school .rating-table-score progress::-moz-progress-bar {
  border-radius: inherit;
  background: var(--hero);
}
.rating-school-ranking-page .rating-ranking-table.is-school .rating-table-score i::after { border-radius: inherit; transition: width 420ms var(--ease-out); }
.rating-school-ranking-page .rating-school-overall-label,
.rating-school-ranking-page .rating-school-metric-label { display: none; }
.rating-school-ranking-page .rating-school-metric {
  position: relative;
  border-left: 1px solid color-mix(in srgb, var(--grid) 72%, transparent);
  padding-left: 16px;
}
.rating-school-ranking-page .rating-school-metric strong { display: block; }
.rating-school-ranking-page .rating-school-metric > i,
.rating-school-ranking-page .rating-school-metric > progress {
  display: block;
  width: min(64px, 100%);
  height: 2px;
  margin-top: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: color-mix(in srgb, var(--grid) 70%, transparent);
}
.rating-school-ranking-page .rating-school-metric > progress {
  appearance: none;
  border: 0;
}
.rating-school-ranking-page .rating-school-metric > progress::-webkit-progress-bar {
  border-radius: inherit;
  background: color-mix(in srgb, var(--grid) 70%, transparent);
}
.rating-school-ranking-page .rating-school-metric > progress::-webkit-progress-value {
  border-radius: inherit;
  background: color-mix(in srgb, var(--hero-text) 72%, var(--text));
}
.rating-school-ranking-page .rating-school-metric > progress::-moz-progress-bar {
  border-radius: inherit;
  background: color-mix(in srgb, var(--hero-text) 72%, var(--text));
}
.rating-school-ranking-page .rating-school-metric > i::after {
  display: block;
  width: var(--metric-pct, 0%);
  height: 100%;
  border-radius: inherit;
  background: color-mix(in srgb, var(--hero-text) 72%, var(--text));
  content: "";
}
.rating-school-ranking-page .rating-ranking-table.is-school tbody td:nth-child(n + 4) { color: var(--label); font-size: var(--type-label); }
.rating-school-ranking-page .rating-ranking-table.is-school tbody td:nth-child(n + 4) strong {
  color: var(--text);
  font-size: 15px;
  font-weight: 760;
  font-variant-numeric: tabular-nums;
}

.rating-school-ranking-page .rating-ranking-board {
  transition: opacity var(--motion-fast) ease;
}

.rating-school-ranking-page.is-ranking-updating .rating-ranking-board {
  opacity: 1;
  pointer-events: none;
}

.rating-school-ranking-page.is-ranking-updating .institution-ranking-dropdown summary,
.rating-school-ranking-page.is-ranking-updating .institution-ranking-dropdown__options button { cursor: wait; }

@media (min-width: 701px) and (max-width: 1024px) {
  .rating-school-ranking-page .rating-ranking-hero { grid-template-columns: minmax(0, 1.35fr) minmax(240px, .65fr); gap: 34px; }
  .rating-school-ranking-page .rating-ranking-hero h1 { max-width: 15ch; font-size: clamp(42px, 5.8vw, 56px); }
  .rating-school-ranking-page .rating-ranking-table.is-school tbody tr {
    grid-template-columns: 42px minmax(190px, 1.25fr) 100px repeat(2, minmax(92px, .68fr));
    grid-template-rows: repeat(2, minmax(46px, auto));
    gap: 8px 10px;
    align-items: stretch;
    padding: 16px 8px;
  }
  .rating-school-ranking-page .rating-ranking-table.is-school tbody .rating-table-rank {
    grid-column: 1;
    grid-row: 1 / 3;
    align-self: start;
    padding-top: 4px;
  }
  .rating-school-ranking-page .rating-ranking-table.is-school tbody th {
    grid-column: 2;
    grid-row: 1 / 3;
    align-self: center;
    padding: 0 8px 0 0;
  }
  .rating-school-ranking-page .rating-ranking-table.is-school tbody .rating-table-score,
  .rating-school-ranking-page .rating-ranking-table.is-school tbody .rating-school-metric {
    display: grid;
    min-width: 0;
    align-content: center;
    gap: 4px;
    text-align: left;
  }
  .rating-school-ranking-page .rating-ranking-table.is-school tbody .rating-table-score {
    min-height: 100px;
    grid-column: 3;
    grid-row: 1 / 3;
    justify-items: center;
    border: 1px solid color-mix(in srgb, var(--hero-text) 20%, var(--grid));
    border-radius: 12px;
    background: color-mix(in srgb, var(--hero-text) 6%, var(--surface-strong));
    padding: 12px 10px;
    text-align: center;
  }
  .rating-school-ranking-page .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(n + 4) {
    min-height: 46px;
    border: 0;
    border-left: 1px solid color-mix(in srgb, var(--text) 13%, var(--grid));
    background: transparent;
    padding: 5px 2px 5px 10px;
    text-align: left;
  }
  .rating-school-ranking-page .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(4) { grid-column: 4; grid-row: 1; }
  .rating-school-ranking-page .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(5) { grid-column: 5; grid-row: 1; }
  .rating-school-ranking-page .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(6) { grid-column: 4; grid-row: 2; }
  .rating-school-ranking-page .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(7) { grid-column: 5; grid-row: 2; }
  .rating-school-ranking-page .rating-school-overall-label,
  .rating-school-ranking-page .rating-school-metric-label {
    display: block;
    overflow: hidden;
    color: var(--label);
    font-size: var(--type-label);
    font-weight: 720;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .rating-school-ranking-page .rating-ranking-table.is-school tbody .rating-table-score strong { font-size: 28px; }
  .rating-school-ranking-page .rating-ranking-table.is-school tbody .rating-table-score i { width: 60px; margin: 3px auto 0; }
  .rating-school-ranking-page .rating-school-metric > i,
  .rating-school-ranking-page .rating-school-metric > progress { width: min(72px, 100%); margin-top: 2px; }
  .rating-school-ranking-page .rating-ranking-table.is-school tbody td:nth-child(n + 4)::before { display: none; }
  .rating-school-ranking-page .rating-ranking-table.is-school tbody td:nth-child(n + 4) strong { font-size: 16px; line-height: 1.1; }
}

@media (min-width: 1025px) and (max-width: 1180px) {
  .rating-subject-rating-page .rating-ranking-table.is-student-experience.is-school {
    display: block;
    min-width: 0;
  }
  .rating-subject-rating-page .rating-ranking-table.is-school thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
  }
  .rating-subject-rating-page .rating-ranking-table.is-school tbody { display: grid; }
  .rating-subject-rating-page .rating-ranking-table.is-school tbody tr {
    display: grid;
    grid-template-columns: 42px minmax(230px, 1.45fr) 100px repeat(2, minmax(92px, .68fr));
    grid-template-rows: repeat(2, minmax(46px, auto));
    gap: 8px 10px;
    align-items: stretch;
    padding: 16px 8px;
  }
  .rating-subject-rating-page .rating-ranking-table.is-school tbody td,
  .rating-subject-rating-page .rating-ranking-table.is-school tbody th { padding: 0; }
  .rating-subject-rating-page .rating-ranking-table.is-school tbody .rating-table-rank { grid-column: 1; grid-row: 1 / 3; align-self: start; padding-top: 4px; }
  .rating-subject-rating-page .rating-ranking-table.is-school tbody th { grid-column: 2; grid-row: 1 / 3; align-self: center; padding-right: 8px; }
  .rating-subject-rating-page .rating-ranking-table.is-school tbody .rating-table-score {
    display: grid;
    grid-column: 3;
    grid-row: 1 / 3;
    min-height: 100px;
    overflow: hidden;
    align-content: center;
    justify-items: center;
    gap: 4px;
    border: 1px solid color-mix(in srgb, var(--hero-text) 20%, var(--grid));
    border-radius: 12px;
    background: color-mix(in srgb, var(--hero-text) 6%, var(--surface-strong));
    padding: 12px 10px;
    text-align: center;
  }
  .rating-subject-rating-page .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(n + 4) {
    display: grid;
    min-height: 46px;
    grid-column: auto;
    grid-template-columns: 1fr;
    align-content: center;
    gap: 4px;
    border: 0;
    border-left: 1px solid color-mix(in srgb, var(--text) 13%, var(--grid));
    padding: 5px 4px 5px 14px;
    text-align: left;
  }
  .rating-subject-rating-page .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(4) { grid-column: 4; grid-row: 1; }
  .rating-subject-rating-page .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(5) { grid-column: 5; grid-row: 1; }
  .rating-subject-rating-page .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(6) { grid-column: 4; grid-row: 2; }
  .rating-subject-rating-page .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(7) { grid-column: 5; grid-row: 2; }
  .rating-subject-rating-page .rating-school-overall-label,
  .rating-subject-rating-page .rating-school-metric-label { display: block; overflow: hidden; color: var(--label); font-size: var(--type-label); font-weight: 720; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
  .rating-subject-rating-page .rating-school-metric > progress { width: min(72px, 100%); margin-top: 2px; }
}

@media (min-width: 1025px) and (max-width: 1100px) {
  .rating-school-rating-page .rating-ranking-table.is-student-experience.is-school {
    min-width: 0;
  }

  .rating-school-rating-page .rating-institution-name-primary,
  .rating-school-rating-page .rating-institution-name-secondary {
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
  }
}

@media (max-width: 700px) {
  .rating-school-ranking-page .rating-ranking-hero { grid-template-columns: 1fr; gap: 22px; }
  .rating-school-ranking-page .rating-ranking-hero h1 { max-width: none; padding-bottom: 10px; font-size: clamp(38px, 11vw, 52px); }
  .rating-school-ranking-page .rating-ranking-hero h1 > span:first-child { font-size: .68em; }
  .rating-school-ranking-page .rating-ranking-school-tools { border-radius: 0; padding: 8px 0 10px; }
  .rating-school-ranking-page .rating-ranking-table.is-school tbody tr { padding-inline: 6px; }
  .rating-school-ranking-page .rating-ranking-table.is-school tbody th a { font-size: 18px; }
  .rating-school-ranking-page .rating-school-metric > i,
  .rating-school-ranking-page .rating-school-metric > progress { width: 100%; }
}

/* Subject ratings: bilingual identity without catalogue/debug metadata. */
.rating-subject-rating-page .rating-ranking-table.is-school tbody th a {
  display: grid;
  width: 100%;
  gap: 3px;
  align-items: start;
  overflow: visible;
}
.rating-subject-rating-page .rating-institution-name-primary,
.rating-subject-rating-page .rating-institution-name-secondary {
  display: block;
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
}
.rating-subject-rating-page .rating-institution-name-primary {
  font-size: 18px;
  line-height: 1.18;
}
.rating-subject-rating-page .rating-institution-name-secondary {
  color: var(--label);
  font-size: 12.5px !important;
  line-height: 1.35 !important;
}

@media (min-width: 701px) and (max-width: 1024px) {
  .rating-subject-rating-page .rating-ranking-table.is-school tbody tr {
    grid-template-columns: 42px minmax(210px, 1.55fr) 86px repeat(2, minmax(88px, .7fr));
  }
}

@media (max-width: 700px) {
  .rating-subject-rating-page .rating-ranking-table.is-school tbody tr {
    grid-template-columns: 40px repeat(2, minmax(0, 1fr));
    gap: 10px 12px;
    padding: 18px 0;
  }
  .rating-subject-rating-page .rating-ranking-table.is-school tbody .rating-table-rank {
    grid-column: 1;
    grid-row: 1 / 5;
    padding-top: 2px;
  }
  .rating-subject-rating-page .rating-ranking-table.is-school tbody th {
    grid-column: 2 / -1;
    grid-row: 1;
    min-width: 0;
  }
  .rating-subject-rating-page .rating-ranking-table.is-school tbody .rating-table-score {
    display: grid;
    grid-column: 2 / -1;
    grid-row: 2;
    grid-template-columns: auto auto minmax(56px, 1fr);
    gap: 8px;
    align-items: center;
    min-width: 0;
    border-top: 1px solid color-mix(in srgb, var(--grid) 65%, transparent);
    padding-top: 10px;
    text-align: left;
  }
  .rating-subject-rating-page .rating-ranking-table.is-school tbody .rating-table-score .rating-school-overall-label {
    display: block;
    color: var(--label);
    font-size: 10px;
    font-weight: 720;
  }
  .rating-subject-rating-page .rating-ranking-table.is-school tbody .rating-table-score strong { font-size: 25px; }
  .rating-subject-rating-page .rating-ranking-table.is-school tbody .rating-table-score progress {
    width: 100%;
    margin: 0;
  }
  .rating-subject-rating-page .rating-ranking-table.is-school tbody td.rating-school-metric {
    grid-template-columns: 1fr auto;
    gap: 6px 10px;
    min-width: 0;
    border-top: 1px solid color-mix(in srgb, var(--grid) 65%, transparent);
    border-left: 0;
    padding: 9px 0 0;
    text-align: left;
  }
  .rating-subject-rating-page .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(4),
  .rating-subject-rating-page .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(6) { grid-column: 2; }
  .rating-subject-rating-page .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(5),
  .rating-subject-rating-page .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(7) { grid-column: 3; }
  .rating-subject-rating-page .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(4),
  .rating-subject-rating-page .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(5) { grid-row: 3; }
  .rating-subject-rating-page .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(6),
  .rating-subject-rating-page .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(7) { grid-row: 4; }
  .rating-subject-rating-page .rating-ranking-table.is-school tbody td.rating-school-metric::before {
    overflow: visible;
    font-size: 10px;
    line-height: 1.25;
    text-overflow: clip;
    white-space: normal;
  }
  .rating-subject-rating-page .rating-school-metric > progress {
    grid-column: 1 / -1;
    width: 100%;
    margin-top: 0;
  }
}

@media (max-width: 340px) {
  .rating-subject-rating-page .rating-ranking-table.is-school tbody tr {
    grid-template-columns: 40px minmax(0, 1fr);
  }
  .rating-subject-rating-page .rating-ranking-table.is-school tbody .rating-table-rank {
    grid-row: 1 / 7;
  }
  .rating-subject-rating-page .rating-ranking-table.is-school tbody th,
  .rating-subject-rating-page .rating-ranking-table.is-school tbody .rating-table-score,
  .rating-subject-rating-page .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(n + 4) {
    grid-column: 2;
  }
  .rating-subject-rating-page .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(4) { grid-row: 3; }
  .rating-subject-rating-page .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(5) { grid-row: 4; }
  .rating-subject-rating-page .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(6) { grid-row: 5; }
  .rating-subject-rating-page .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(7) { grid-row: 6; }
  .rating-subject-rating-page .rating-ranking-table.is-school tbody td.rating-school-metric::before {
    white-space: nowrap;
  }
}

@media (prefers-reduced-motion: reduce) {
  .rating-school-ranking-page .rating-ranking-hero h1::after,
  .rating-school-ranking-page .rating-ranking-hero h1 > span,
  .rating-school-ranking-page .rating-ranking-hero__aside nav a,
  .rating-school-ranking-page .rating-ranking-hero__aside nav a span,
  .rating-school-ranking-page .rating-ranking-table.is-school tbody th a,
  .rating-school-ranking-page .rating-ranking-table.is-school tbody th a::after,
  .rating-school-ranking-page .rating-institution-name-primary,
  .rating-school-ranking-page .rating-institution-name-secondary,
  .rating-school-ranking-page .rating-ranking-board,
  .rating-school-ranking-page .rating-ranking-table.is-school tbody tr,
  .rating-school-ranking-page .rating-ranking-table.is-school .rating-table-score i::after { transition: none; }
  .rating-school-ranking-page .rating-ranking-hero h1:hover > span,
  .rating-school-ranking-page .rating-ranking-hero__aside nav a:hover,
  .rating-school-ranking-page .rating-ranking-hero__aside nav a:focus-visible,
  .rating-school-ranking-page .rating-ranking-hero__aside nav a:hover span,
  .rating-school-ranking-page .rating-ranking-hero__aside nav a:focus-visible span { transform: none; }
}

/* Global school directory: same hierarchy as the school model, optimised for finding identities. */
.global-institution-directory {
  --directory-row-hover: color-mix(in srgb, var(--hero-text) 4.5%, transparent);
  display: grid;
  gap: clamp(14px, 1.8vw, 22px);
}

.global-institution-directory .global-directory-hero {
  grid-template-columns: minmax(0, 1.45fr) minmax(250px, .55fr);
  gap: clamp(28px, 4.6vw, 72px);
  align-items: end;
  border-bottom: 0;
  padding-top: clamp(8px, 1.4vw, 18px);
  padding-bottom: clamp(18px, 2.4vw, 28px);
}

.global-directory-tools {
  position: relative;
  z-index: 5;
  overflow: visible;
  border-block: 1px solid var(--grid);
  padding: 16px 0;
}

.global-directory-filters {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px 14px;
  align-items: end;
}

.global-directory-filters label {
  display: grid;
  min-width: 0;
  grid-column: span 1;
  gap: 7px;
}

.global-directory-filters label.is-search { grid-column: span 2; }
.global-directory-filters > .institution-ranking-filter { grid-column: span 1; }
.global-directory-filters label > span {
  color: var(--label);
  font-size: var(--type-label);
  font-weight: 760;
  letter-spacing: .055em;
}

.global-directory-filters input,
.global-directory-filters select {
  width: 100%;
  min-width: 0;
  min-height: 50px;
  border: 1px solid color-mix(in srgb, var(--text) 20%, var(--grid));
  border-radius: 10px;
  background: color-mix(in srgb, var(--paper) 82%, transparent);
  color: var(--text);
  padding: 0 16px;
  font: inherit;
  font-size: var(--type-body-sm);
  transition: border-color var(--motion-fast) ease, background-color var(--motion-fast) ease, box-shadow var(--motion-fast) ease;
}

.global-directory-filters input::placeholder { color: color-mix(in srgb, var(--muted) 76%, transparent); }
.global-directory-filters input:focus-visible,
.global-directory-filters select:focus-visible {
  border-color: var(--hero-text);
  box-shadow: none;
  outline: 2px solid var(--hero-text);
  outline-offset: 3px;
}

.global-directory-filter-actions {
  display: grid;
  min-height: 50px;
  grid-column: span 1;
  grid-template-columns: minmax(0, 1fr);
  align-self: end;
  align-items: end;
  gap: 5px;
}

.global-directory-filter-actions .primary-button { width: 100%; min-width: 0; min-height: 50px; border-radius: 10px; }
.global-directory-filter-actions.has-reset { grid-template-rows: var(--type-label) 50px; gap: 7px; }
.global-directory-filter-actions.has-reset .primary-button { grid-row: 2; }
.global-directory-filter-actions a {
  grid-row: 1;
  justify-self: end;
  color: var(--label);
  font-size: var(--type-meta);
  font-weight: 720;
  text-underline-offset: 4px;
}

.global-directory-board {
  min-width: 0;
  scroll-margin-top: 88px;
  outline: 0;
}

.global-directory-board > header {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: end;
  padding: 8px 0 14px;
}

.global-directory-board > header h2 {
  margin: 5px 0 0;
  font-family: var(--display-serif);
  font-size: clamp(27px, 2.6vw, 39px);
  font-weight: 600;
  line-height: 1;
}

.global-directory-board > header > div:last-child {
  display: grid;
  gap: 5px;
  justify-items: end;
  text-align: right;
}

.global-directory-board > header > div:last-child strong { font-family: var(--display-serif); font-size: 17px; font-weight: 620; }
.global-directory-board > header > div:last-child small { color: var(--muted); font-size: var(--type-meta); }

.global-directory-table-frame {
  min-width: 0;
  border-top: 1px solid var(--grid);
  border-bottom: 1px solid var(--grid);
}
.global-directory-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.global-directory-table thead th {
  border-bottom: 1px solid var(--grid);
  background: transparent;
  color: var(--label);
  padding: 11px 12px;
  font-size: var(--type-meta);
  font-weight: 760;
  letter-spacing: .055em;
  text-align: left;
}
.global-directory-table thead th:first-child { width: 6%; text-align: center; }
.global-directory-table thead th:nth-child(2) { width: 35%; }
.global-directory-table thead th:nth-child(3) { width: 20%; }
.global-directory-table thead th:nth-child(4) { width: 18%; }
.global-directory-table thead th:nth-child(5) { width: 10%; }
.global-directory-table thead th:last-child { width: 11%; text-align: right; }

.global-directory-table tbody tr {
  border-bottom: 1px solid var(--grid);
  transition: background-color var(--motion-fast) ease, box-shadow var(--motion-fast) ease, transform var(--motion-fast) var(--ease-out);
}
.global-directory-table tbody tr:last-child { border-bottom: 0; }

.global-directory-table tbody tr:hover,
.global-directory-table tbody tr:focus-within {
  background: var(--directory-row-hover);
}

.global-directory-table tbody th,
.global-directory-table tbody td {
  min-width: 0;
  padding: 15px 12px;
  vertical-align: middle;
  text-align: left;
}

.global-directory-index {
  color: var(--muted) !important;
  font-family: var(--display-serif);
  font-size: clamp(16px, 1.35vw, 20px) !important;
  font-weight: 520;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  text-align: center !important;
}

.global-directory-table tbody th a {
  display: block;
  color: var(--text);
  font-family: var(--display-serif);
  font-size: clamp(17px, 1.45vw, 21px);
  font-weight: 620;
  line-height: 1.14;
  text-decoration: none;
  transition: color var(--motion-fast) ease, transform var(--motion-fast) var(--ease-out);
}

.global-directory-table tbody th a:hover,
.global-directory-table tbody th a:focus-visible { color: var(--hero-text); transform: translateX(3px); }
.global-directory-table tbody th small,
.global-directory-table tbody td small { display: block; margin-top: 6px; color: var(--muted); font-size: var(--type-meta); }
.global-directory-table tbody td { color: var(--label); font-size: var(--type-body-sm); line-height: 1.35; }
.global-directory-table tbody td strong { color: var(--text); font-weight: 680; }
.global-directory-table .rating-institution-name-primary,
.global-directory-table .rating-institution-name-secondary {
  display: block;
  width: fit-content;
  max-width: 100%;
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: normal !important;
  overflow-wrap: anywhere;
}
.global-directory-table .rating-institution-name-secondary {
  margin-top: 5px !important;
  color: var(--label);
  font-family: var(--sans);
  font-size: 11px !important;
  font-weight: 620 !important;
  line-height: 1.25 !important;
}

@media (min-width: 761px) {
  .global-directory-table tbody th,
  .global-directory-table tbody td { min-height: 84px; }
}

.global-directory-location strong { display: block; font-size: clamp(12px, 1vw, 15px); line-height: 1.25; }
.global-directory-location small { line-height: 1.3; }
.global-directory-class strong,
.global-directory-established strong { display: block; color: var(--text); font-size: clamp(11px, .9vw, 13px); font-weight: 620; line-height: 1.35; overflow-wrap: anywhere; }
.global-directory-established { font-variant-numeric: tabular-nums; }
.global-directory-action { text-align: right !important; }
.global-directory-action a { display: inline-flex; min-height: 44px; align-items: center; justify-content: flex-end; gap: 7px; color: var(--hero-text); font-size: 12px; font-weight: 720; text-decoration: none; white-space: nowrap; }
.global-directory-action a img { width: 15px; height: 15px; transition: transform var(--motion-fast) var(--ease-out); }
.global-directory-action a:hover img,
.global-directory-action a:focus-visible img { transform: translateX(3px); }

.global-directory-source {
  border-block: 1px solid var(--grid);
  margin-top: 8px;
}

.global-directory-source summary {
  display: flex;
  min-height: 56px;
  justify-content: space-between;
  gap: 20px;
  align-items: center;
  color: var(--text);
  cursor: pointer;
  font-size: var(--type-body-sm);
  font-weight: 720;
  list-style: none;
}

.global-directory-source summary::-webkit-details-marker { display: none; }
.global-directory-source summary::after { color: var(--hero-text); content: "+"; font-family: var(--display-serif); font-size: 20px; }
.global-directory-source[open] summary::after { content: "−"; }
.global-directory-source summary small { margin-left: auto; color: var(--muted); font-size: var(--type-meta); font-weight: 560; }
.global-directory-source > div { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(260px, .8fr); gap: 24px 40px; border-top: 1px solid var(--grid); padding: 18px 0 22px; }
.global-directory-source > div > p { max-width: 72ch; margin: 0; color: var(--label); font-size: var(--type-body-sm); line-height: var(--leading-readable); }
.global-directory-source dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-column: 1 / -1; margin: 0; }
.global-directory-source dl > div { border-top: 1px solid var(--grid); padding: 10px 12px 0 0; }
.global-directory-source nav a { color: var(--text); font-size: var(--type-meta); text-underline-offset: 4px; }

@media (max-width: 1050px) {
  .global-directory-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .global-directory-filters label,
  .global-directory-filters > .institution-ranking-filter,
  .global-directory-filter-actions { grid-column: span 1; }
  .global-directory-filters label.is-search { grid-column: 1 / -1; }
  .global-directory-table thead th:first-child { width: 7%; }
  .global-directory-table thead th:nth-child(2) { width: 32%; }
  .global-directory-table thead th:nth-child(3) { width: 19%; }
  .global-directory-table thead th:nth-child(4) { width: 20%; }
  .global-directory-table thead th:nth-child(5) { width: 10%; }
  .global-directory-table thead th:last-child { width: 12%; }
  .global-directory-table tbody th,
  .global-directory-table tbody td { padding-inline: 10px; }
}

@media (max-width: 760px) {
  .global-institution-directory .global-directory-hero { grid-template-columns: 1fr; gap: 22px; }
  .global-directory-tools { padding-block: 12px; }
  .global-directory-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 10px; }
  .global-directory-filters label,
  .global-directory-filters > .institution-ranking-filter { grid-column: span 1; }
  .global-directory-filters label.is-search { grid-column: span 2; }
  .global-directory-filter-actions { grid-column: span 1; }
  .global-directory-board > header { display: grid; grid-template-columns: 1fr; align-items: start; }
  .global-directory-board > header > div:last-child { justify-items: start; text-align: left; }
  .global-directory-table-frame { border-top: 0; }
  .global-directory-table,
  .global-directory-table tbody { display: block; }
  .global-directory-table thead { display: none; }
  .global-directory-table tbody { display: block; }
  .global-directory-table tbody tr {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) auto;
    grid-template-rows: auto auto auto;
    border-bottom: 1px solid var(--grid);
    padding: 0;
  }
  .global-directory-table tbody th,
  .global-directory-table tbody td { display: block; padding: 10px 12px; }
  .global-directory-table tbody .global-directory-index {
    display: grid;
    grid-column: 1;
    grid-row: 1 / 4;
    align-items: start;
    justify-items: center;
    padding-inline: 8px;
    padding-top: 18px;
    font-size: 16px !important;
  }
  .global-directory-table tbody th {
    grid-column: 2 / 3;
    grid-row: 1;
    padding: 15px 12px 7px;
  }
  .global-directory-table tbody th a { font-size: clamp(17px, 4.3vw, 20px); }
  .global-directory-table tbody td::before { display: none; }
  .global-directory-table tbody .global-directory-location {
    grid-column: 2;
    grid-row: 2;
    padding-block: 6px 10px;
  }
  .global-directory-table tbody .global-directory-class { grid-column: 2; grid-row: 3; padding-block: 8px 14px; }
  .global-directory-table tbody .global-directory-established { grid-column: 3; grid-row: 3; padding-block: 8px 14px; text-align: right; }
  .global-directory-table tbody .global-directory-class::before,
  .global-directory-table tbody .global-directory-established::before { display: block; margin-bottom: 4px; color: var(--muted); content: attr(data-label); font-size: 9px; font-weight: 700; letter-spacing: .04em; }
  .global-directory-table tbody .global-directory-action { grid-column: 3; grid-row: 1 / 3; align-self: center; padding-right: 4px; }
  .global-directory-table tbody .global-directory-action a { min-width: 44px; justify-content: center; }
  .global-directory-action a span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .global-directory-action a img { width: 18px; height: 18px; }
  .global-directory-location strong { font-size: 12px; }
  .global-directory-location small { margin-top: 4px !important; font-size: 9px !important; }
  .global-directory-source summary { align-items: flex-start; padding-block: 14px; }
  .global-directory-source summary small { display: none; }
  .global-directory-source > div { grid-template-columns: 1fr; }
  .global-directory-source dl { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .global-directory-filters { grid-template-columns: 1fr; }
  .global-directory-filters label,
  .global-directory-filters label.is-search,
  .global-directory-filters > .institution-ranking-filter,
  .global-directory-filter-actions { grid-column: 1 / -1; }
}

@media (max-width: 350px) {
  .global-directory-filters label:nth-of-type(n) { grid-column: 1 / -1; }
  .global-directory-filter-actions { grid-column: 1 / -1; }
  .global-directory-table tbody tr { grid-template-columns: 40px minmax(0, 1fr) auto; }
  .global-directory-table tbody th,
  .global-directory-table tbody td { padding-inline: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  .rating-school-ranking-page .institution-ranking-dropdown summary,
  .rating-school-ranking-page .institution-ranking-dropdown summary::after,
  .rating-school-ranking-page .institution-ranking-dropdown__options,
  .rating-school-ranking-page .institution-ranking-dropdown__options button,
  .global-directory-table tbody tr,
  .global-directory-table tbody th a,
  .global-directory-filters input,
  .global-directory-filters select { transition: none; }
  .global-directory-table tbody th a:hover,
  .global-directory-table tbody th a:focus-visible,
  .global-directory-action a img { transform: none; }
}

/* Major career ranking: mirror the School Top 500 hierarchy, density and motion language. */
.major-career-page {
  --ranking-row-hover: color-mix(in srgb, var(--hero-text) 4.5%, transparent);
  --ranking-control-fill: color-mix(in srgb, var(--surface-strong) 58%, transparent);
  gap: clamp(14px, 1.8vw, 22px);
}

.major-career-page .rating-ranking-hero {
  position: relative;
  grid-template-columns: minmax(0, 1.45fr) minmax(250px, .55fr);
  gap: clamp(28px, 4.6vw, 72px);
  align-items: end;
  border-bottom: 0;
  padding-top: clamp(8px, 1.4vw, 18px);
  padding-bottom: clamp(18px, 2.4vw, 28px);
}

.major-career-page .rating-ranking-hero > div { min-width: 0; max-width: none; }
.major-career-page .rating-ranking-hero .kicker {
  margin-bottom: 10px;
  color: var(--label);
  font-size: var(--type-label);
  letter-spacing: .13em;
}

.major-career-page .rating-ranking-hero h1 {
  position: relative;
  display: grid;
  width: fit-content;
  max-width: 16ch;
  gap: 2px;
  margin: 0 0 14px;
  padding-bottom: 12px;
  font-size: var(--type-display-xl);
  letter-spacing: var(--tracking-display);
  line-height: var(--leading-display);
  isolation: isolate;
}

.major-career-page .rating-ranking-hero h1::after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: var(--hero);
  content: "";
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--motion-base) var(--ease-out);
}

.major-career-page .rating-ranking-hero h1 > span {
  display: block;
  transition: color var(--motion-base) ease, transform var(--motion-base) var(--ease-out), letter-spacing var(--motion-base) var(--ease-out);
}

.major-career-page .rating-ranking-hero h1 > span:first-child {
  color: var(--hero-text);
  font-size: .72em;
  letter-spacing: -.025em;
  line-height: 1;
}

.major-career-page .rating-ranking-hero h1 > span:last-child { color: var(--text); }
.major-career-page .rating-ranking-hero > div > p:last-child {
  max-width: 70ch;
  color: var(--label);
  font-size: var(--type-body-sm);
  line-height: var(--leading-readable);
}

.major-career-page .rating-ranking-hero__aside { gap: 12px; }
.major-career-page .rating-ranking-hero__aside nav { gap: 5px; border-top: 0; }
.major-career-page .rating-ranking-hero__aside nav a {
  min-height: 44px;
  border: 0;
  border-radius: 10px;
  background: color-mix(in srgb, var(--surface-strong) 48%, transparent);
  padding: 0 12px;
  font-size: 12px;
  transition: background-color var(--motion-fast) ease, color var(--motion-fast) ease, transform var(--motion-fast) var(--ease-out);
}
.major-career-page .rating-ranking-hero__aside nav a span { transition: transform var(--motion-fast) var(--ease-out); }
.major-career-page .rating-ranking-hero__aside nav a:hover,
.major-career-page .rating-ranking-hero__aside nav a:focus-visible {
  background: color-mix(in srgb, var(--hero-text) 7%, transparent);
  text-decoration: none;
  transform: translateX(3px);
}
.major-career-page .rating-ranking-hero__aside nav a:hover span,
.major-career-page .rating-ranking-hero__aside nav a:focus-visible span { transform: translateX(3px); }
.major-career-tools {
  border: 0;
  border-radius: 14px;
  background: var(--ranking-control-fill);
  padding: 14px;
}

.major-career-filters { grid-template-columns: minmax(240px, 1fr) minmax(190px, .45fr) auto; gap: 10px 14px; }
.major-career-filters label { color: var(--label); font-size: var(--type-label); font-weight: 760; letter-spacing: .04em; }
.major-career-filters input,
.major-career-filters select {
  min-height: 50px;
  border-color: color-mix(in srgb, var(--text) 20%, var(--grid));
  border-radius: 10px;
  background: color-mix(in srgb, var(--paper) 82%, transparent);
  padding-inline: 16px;
  font-size: var(--type-body-sm);
  transition: border-color var(--motion-fast) ease, background-color var(--motion-fast) ease, box-shadow var(--motion-fast) ease;
}
.major-career-filters input:hover,
.major-career-filters select:hover { border-color: color-mix(in srgb, var(--hero-text) 62%, var(--grid)); }
.major-career-filters input:focus,
.major-career-filters select:focus { border-color: var(--hero-text); outline: 2px solid color-mix(in srgb, var(--hero-text) 20%, transparent); outline-offset: 2px; }
.major-career-filters .primary-button { min-height: 50px; border-radius: 10px; padding-inline: 24px; }
.major-career-filters__hint { grid-column: 1 / -1; margin: 0; color: var(--label); font-size: var(--type-meta); line-height: 1.45; }

.major-career-board__meta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px 24px;
  align-items: end;
  border-bottom: 1px solid var(--grid);
  padding: 2px 8px 12px;
}
.major-career-board__meta > div { display: grid; gap: 5px; min-width: 0; }
.major-career-board__meta span,
.major-career-board__meta > strong { color: var(--label); font-size: var(--type-meta); font-weight: 690; line-height: 1.45; }
.major-career-board__meta > strong { text-align: right; }
.major-career-board__meta .major-career-fixed-rank { margin: 0; font-size: var(--type-meta); }

.major-career-list { display: grid; }
.major-career-row { border-bottom: 1px solid var(--grid); }
.major-career-row > a {
  position: relative;
  display: grid;
  grid-template-columns: 64px 112px repeat(7, minmax(0, 1fr));
  grid-template-rows: auto auto;
  gap: 10px 0;
  min-height: 0;
  padding: 17px 8px 18px;
  transition: background-color var(--motion-fast) ease, box-shadow var(--motion-fast) ease, color var(--motion-fast) ease;
}
.major-career-row > a:hover,
.major-career-row > a:focus-visible {
  background: var(--ranking-row-hover);
  box-shadow: inset 3px 0 0 color-mix(in srgb, var(--hero-text) 72%, transparent);
  color: var(--text);
  outline-offset: 3px;
  transform: none;
}
.major-career-rank { grid-column: 1; grid-row: 1 / span 2; align-content: start; padding-top: 4px; }
.major-career-rank small { display: none; }
.major-career-rank strong {
  color: var(--hero-text);
  font-size: 25px;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.major-career-identity {
  grid-column: 2 / -1;
  grid-row: 1;
  display: flex;
  gap: 10px 14px;
  align-items: baseline;
  min-width: 0;
  padding: 0 10px 0 0;
}
.major-career-identity > small { flex: 0 0 auto; color: var(--label); font-size: var(--type-meta); }
.major-career-identity > strong {
  min-width: 0;
  overflow: hidden;
  padding-bottom: 5px;
  font-size: 20px;
  font-weight: 720;
  letter-spacing: -.018em;
  line-height: 1.18;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.major-career-identity > em {
  flex: 0 0 auto;
  margin-left: auto;
  color: var(--hero-text);
  font-size: var(--type-meta);
  opacity: 1;
  transform: none;
}
.major-career-identity > em span { display: inline-block; transition: transform var(--motion-fast) var(--ease-out); }
.major-career-row > a:hover .major-career-identity > em span,
.major-career-row > a:focus-visible .major-career-identity > em span { transform: translateX(3px); }

.major-career-overall,
.major-career-score {
  display: grid;
  min-width: 0;
  min-height: 68px;
  align-content: center;
  gap: 6px;
  border: 1px solid color-mix(in srgb, var(--text) 10%, var(--grid));
  border-right: 0;
  background: color-mix(in srgb, var(--surface-strong) 52%, transparent);
  padding: 9px 12px;
}
.major-career-overall {
  grid-column: 2;
  grid-row: 2;
  border-radius: 10px 0 0 10px;
  background: color-mix(in srgb, var(--hero-text) 7%, var(--surface-strong));
}
.major-career-overall small,
.major-career-score small { color: var(--label); font-size: var(--type-label); font-weight: 720; letter-spacing: 0; text-transform: none; }
.major-career-overall strong { font-size: 27px; font-variant-numeric: tabular-nums; }
.major-career-components { display: contents; }
.major-career-score { grid-row: 2; }
.major-career-score:last-child { border-right: 1px solid color-mix(in srgb, var(--text) 10%, var(--grid)); border-radius: 0 10px 10px 0; }
.major-career-score.is-active { background: color-mix(in srgb, var(--hero-text) 8%, var(--surface-strong)); color: var(--hero-text); }
.major-career-score strong { color: var(--text); font-size: 16px; font-weight: 760; }
.major-career-overall > i,
.major-career-score > i { width: 100%; height: 2px; margin-top: 1px; border-radius: 999px; }
.major-career-overall > i::after,
.major-career-score > i::after { border-radius: inherit; }

@media (hover: hover) and (pointer: fine) {
  .major-career-page .rating-ranking-hero h1:hover::after { transform: scaleX(1); }
  .major-career-page .rating-ranking-hero h1:hover > span:first-child { transform: translateX(5px); letter-spacing: -.01em; }
  .major-career-page .rating-ranking-hero h1:hover > span:last-child { color: var(--hero-text); transform: translateX(9px); }
}

@media (max-width: 900px) {
  .major-career-row > a { grid-template-columns: 60px 102px repeat(7, minmax(0, 1fr)); padding-inline: 6px; }
  .major-career-overall,
  .major-career-score { min-height: 64px; padding-inline: 9px; }
  .major-career-overall small,
  .major-career-score small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .major-career-score strong { font-size: 15px; }
}

@media (max-width: 700px) {
  .major-career-page .rating-ranking-hero { grid-template-columns: 1fr; gap: 22px; }
  .major-career-page .rating-ranking-hero h1 { max-width: none; padding-bottom: 10px; font-size: clamp(38px, 11vw, 52px); }
  .major-career-page .rating-ranking-hero h1 > span:first-child { font-size: .68em; }
  .major-career-tools { border-radius: 12px; padding: 12px; }
  .major-career-filters { grid-template-columns: 1fr; }
  .major-career-filters .primary-button { width: 100%; }
  .major-career-board__meta { grid-template-columns: 1fr; padding-inline: 6px; }
  .major-career-board__meta > strong { text-align: left; }
  .major-career-row > a {
    grid-template-columns: 56px minmax(0, 1fr) 72px;
    grid-template-rows: auto auto auto;
    gap: 10px 12px;
    padding: 16px 6px;
  }
  .major-career-rank { grid-column: 1; grid-row: 1 / span 2; }
  .major-career-identity { grid-column: 2 / -1; grid-row: 1; padding-right: 0; }
  .major-career-identity > strong { font-size: 18px; }
  .major-career-identity > em { display: none; }
  .major-career-overall {
    grid-column: 2 / -1;
    grid-row: 2;
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: 54px;
    border-right: 1px solid color-mix(in srgb, var(--text) 10%, var(--grid));
    border-radius: 9px;
  }
  .major-career-overall > i { grid-column: 1 / -1; }
  .major-career-components { grid-column: 2 / -1; grid-row: 3; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .major-career-score { grid-row: auto; min-height: 62px; border: 1px solid color-mix(in srgb, var(--text) 10%, var(--grid)); border-radius: 9px; }
  .major-career-score:last-child { border-radius: 9px; }
}

@media (max-width: 420px) {
  .major-career-identity { flex-wrap: wrap; gap: 4px 8px; }
  .major-career-identity > small { flex-basis: 100%; }
  .major-career-components { grid-column: 1 / -1; }
  .major-career-overall { grid-column: 2 / -1; }
}

@media (prefers-reduced-motion: reduce) {
  .major-career-page .rating-ranking-hero h1::after,
  .major-career-page .rating-ranking-hero h1 > span,
  .major-career-page .rating-ranking-hero__aside nav a,
  .major-career-page .rating-ranking-hero__aside nav a span,
  .major-career-row > a,
  .major-career-identity > em span { transition: none; }
  .major-career-page .rating-ranking-hero h1:hover > span,
  .major-career-page .rating-ranking-hero__aside nav a:hover,
  .major-career-page .rating-ranking-hero__aside nav a:focus-visible,
  .major-career-page .rating-ranking-hero__aside nav a:hover span,
  .major-career-page .rating-ranking-hero__aside nav a:focus-visible span { transform: none; }
}

.subject-outlook-profile {
  display: grid;
  gap: 18px;
  border-block: 1px solid var(--grid);
  padding: clamp(22px, 3.5vw, 42px) 0;
}
.subject-outlook-profile > header { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, .85fr); gap: 24px 48px; align-items: end; }
.subject-outlook-profile > header h2 { margin: 4px 0 8px; font-size: clamp(28px, 3.2vw, 46px); letter-spacing: -.035em; }
.subject-outlook-profile > header p { max-width: 68ch; color: var(--label); line-height: 1.65; }
.subject-outlook-profile dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--grid); border-radius: 12px; }
.subject-outlook-profile dl > div { display: grid; gap: 5px; padding: 13px 14px; border-right: 1px solid var(--grid); }
.subject-outlook-profile dl > div:last-child { border-right: 0; }
.subject-outlook-profile dt { color: var(--label); font-size: var(--type-label); }
.subject-outlook-profile dd { margin: 0; color: var(--hero-text); font-size: 22px; font-weight: 760; font-variant-numeric: tabular-nums; }
.subject-outlook-profile__scores { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.subject-outlook-profile__scores .major-career-score { grid-row: auto; border-radius: 0; }
.subject-outlook-profile__scores .major-career-score:first-child { border-radius: 10px 0 0 10px; }
.subject-outlook-profile__scores .major-career-score:last-child { border-radius: 0 10px 10px 0; }
.subject-outlook-profile > a { justify-self: end; color: var(--hero-text); font-size: var(--type-meta); font-weight: 720; text-decoration: none; }

@media (max-width: 900px) {
  .subject-outlook-profile > header { grid-template-columns: 1fr; }
  .subject-outlook-profile__scores { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
  .subject-outlook-profile__scores .major-career-score { border: 1px solid var(--grid); border-radius: 9px !important; }
}

@media (max-width: 620px) {
  .subject-outlook-profile dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .subject-outlook-profile dl > div:nth-child(2) { border-right: 0; }
  .subject-outlook-profile dl > div:nth-child(-n+2) { border-bottom: 1px solid var(--grid); }
  .subject-outlook-profile__scores { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .subject-outlook-profile > a { justify-self: stretch; min-height: 44px; align-content: center; }
}

/* Global accommodation directory: source-grained Top 500 coverage. */
.housing-global-boundary { max-width: 90ch; }
.housing-coverage-hero { margin-top: clamp(24px, 4vw, 54px); }
.housing-directory-filters { display: grid; grid-template-columns: minmax(240px, 1.35fr) minmax(220px, .82fr) minmax(160px, .42fr); gap: 14px; align-items: end; margin: clamp(30px, 4vw, 54px) 0; padding: 18px 0; }
.rating-ranking-page.housing-directory-page { gap: clamp(12px, 1.4vw, 18px); }
.housing-directory-page .housing-directory-hero { padding-bottom: clamp(12px, 1.2vw, 18px); }
.housing-directory-page .housing-directory-hero > div > p:last-child { width: min(100%, 48ch); min-height: 3.2em; }
.housing-directory-page .housing-directory-filters { margin: 0 0 clamp(30px, 3.5vw, 48px); padding: clamp(8px, 1vw, 12px) 0 18px; }
.housing-directory-filters label { display: grid; min-width: 0; gap: 8px; }
.housing-directory-filters label > span { color: var(--muted); font-size: 9px; font-weight: 760; letter-spacing: .09em; text-transform: uppercase; }
.housing-directory-filters input,
.housing-directory-filters select { width: 100%; min-height: 52px; border: 1px solid color-mix(in srgb, var(--text) 24%, var(--grid)); border-radius: 10px; background: color-mix(in srgb, var(--text) 1.5%, transparent); padding: 0 16px; color: var(--text); font: inherit; font-size: 13px; transition: border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease; }
.housing-directory-filters input:hover { border-color: color-mix(in srgb, var(--hero-text) 62%, var(--grid)); }
.housing-directory-filters input:focus-visible { outline: 2px solid var(--hero-text); outline-offset: 3px; }
.housing-directory-filters > .primary-button { width: 100%; min-height: 52px; }
.housing-school-directory > header { display: flex; justify-content: space-between; gap: 24px; align-items: end; padding-bottom: 18px; border-bottom: 1px solid var(--text); }
.housing-school-directory > header h2 { margin: 5px 0 0; font-family: var(--display-serif); font-size: clamp(34px, 4vw, 54px); font-weight: 540; letter-spacing: -.045em; }
.housing-school-directory > header > strong { color: var(--muted); font-size: 11px; }
.housing-school-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.housing-school-card { display: grid; grid-template-rows: auto auto auto 1fr auto; gap: 13px; min-height: 282px; padding: 22px; border-right: 1px solid var(--grid); border-bottom: 1px solid var(--grid); }
.housing-school-card:nth-child(3n) { border-right: 0; }
.housing-school-card > header { display: flex; justify-content: space-between; gap: 12px; color: var(--muted); font-size: 9px; font-weight: 760; letter-spacing: .08em; text-transform: uppercase; }
.housing-school-card h2 { margin: 0; font-family: var(--display-serif); font-size: clamp(24px, 2.3vw, 34px); font-weight: 540; letter-spacing: -.035em; line-height: 1.02; }
.housing-school-card h2 a { color: var(--text); text-decoration: none; }
.housing-school-card h2 a:hover,
.housing-school-card__action:hover { color: var(--accent); }
.housing-school-card > p { margin: -5px 0 0; color: var(--muted); font-size: 10px; }
.housing-school-card dl { margin: 0; }
.housing-school-card .product-facts-row { grid-template-columns: minmax(90px, .4fr) minmax(0, 1fr); padding: 8px 0; }
.housing-school-card__action { align-self: end; color: var(--text); font-size: 10px; font-weight: 720; text-decoration: none; }
.housing-coverage-state { color: var(--muted); }
.housing-coverage-state[data-state="discovered"],
.housing-detail-status[data-state="discovered"] { color: var(--accent); }
.housing-australia-snapshot { margin-top: clamp(70px, 9vw, 130px); padding-top: clamp(32px, 5vw, 70px); border-top: 1px solid var(--text); }
.housing-australia-snapshot > header { max-width: 760px; margin-bottom: 26px; }
.housing-australia-snapshot > header h2 { margin: 8px 0 12px; font-family: var(--display-serif); font-size: clamp(38px, 5vw, 66px); font-weight: 540; letter-spacing: -.05em; line-height: .96; }
.housing-detail-breadcrumb {
  width: fit-content;
  min-height: 0;
  margin: 0;
  padding: 0;
}
.housing-detail-breadcrumb > a { display: inline-flex; align-items: center; gap: 11px; min-height: 44px; border: 1px solid var(--grid); border-radius: 10px; background: color-mix(in srgb, var(--surface-strong) 58%, transparent); padding: 4px 14px 4px 5px; color: var(--text); text-decoration: none; }
.housing-detail-breadcrumb > a strong { font-size: 12px; font-weight: 720; }
.housing-detail-breadcrumb__icon { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 8px; background: var(--text); transition: transform var(--motion-fast) var(--ease-out); }
.housing-detail-breadcrumb__icon img { width: 15px; height: 15px; filter: invert(1); }
:root[data-theme="dark"] .housing-detail-breadcrumb__icon img { filter: none; }
.housing-detail-breadcrumb > a:hover .housing-detail-breadcrumb__icon,
.housing-detail-breadcrumb > a:focus-visible .housing-detail-breadcrumb__icon { transform: translateX(-2px); }
.product-route-view:has(.housing-detail-hero) { padding-top: clamp(16px, 2vw, 26px); }
.housing-detail-source-name { margin: -24px 0 clamp(24px, 4vw, 48px); color: var(--muted); font-size: 12px; }
.housing-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: clamp(30px, 5vw, 66px); border-block: 1px solid var(--text); }
.housing-detail-panel { display: grid; align-content: start; gap: 16px; min-height: 430px; padding: clamp(24px, 3.5vw, 46px) clamp(20px, 3vw, 40px) clamp(30px, 4vw, 54px) 0; }
.housing-detail-panel + .housing-detail-panel { padding-right: 0; padding-left: clamp(20px, 3vw, 40px); border-left: 1px solid var(--grid); }
.housing-detail-panel h2,
.housing-checklist h2,
.housing-related h2 { margin: 5px 0 0; font-family: var(--display-serif); font-size: clamp(32px, 4vw, 52px); font-weight: 540; letter-spacing: -.045em; line-height: 1; }
.housing-detail-panel h3 { margin: 6px 0 0; font-size: 17px; line-height: 1.35; }
.housing-detail-panel > p:not(.kicker):not(.product-boundary) { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.65; }
.housing-detail-status { width: fit-content; border-bottom: 2px solid currentColor; padding-bottom: 4px; font-size: 10px; font-weight: 780; letter-spacing: .08em; text-transform: uppercase; }
.housing-checklist { display: grid; grid-template-columns: minmax(220px, .7fr) minmax(0, 1.3fr); gap: clamp(30px, 6vw, 90px); padding: clamp(54px, 8vw, 110px) 0; }
.housing-checklist > header { display: grid; align-content: start; gap: 14px; }
.housing-checklist > header h2 { margin-left: -.12em; }
.housing-checklist > header > span { width: fit-content; border-bottom: 1px solid var(--text); padding-bottom: 5px; color: var(--muted); font-size: 12px; font-weight: 720; }
.housing-checklist__items { border-top: 1px solid var(--text); }
.housing-checklist__item { border-bottom: 1px solid var(--grid); }
.housing-checklist__item summary { display: grid; grid-template-columns: 42px minmax(0, 1fr) 24px; gap: 18px; align-items: center; min-height: 72px; cursor: pointer; list-style: none; }
.housing-checklist__item summary::-webkit-details-marker { display: none; }
.housing-checklist__item summary > span { color: var(--accent); font-size: 10px; font-weight: 760; }
.housing-checklist__item summary strong { font-size: 14px; font-weight: 660; }
.housing-checklist__item summary i { color: var(--muted); font-size: 17px; font-style: normal; text-align: right; transition: color var(--motion-fast) ease; transform-origin: center; }
.housing-checklist__item[open] summary i { color: var(--text); transform: rotate(45deg); }
.housing-checklist__item > div { max-width: 66ch; padding: 0 42px 24px 60px; }
.housing-checklist__item > div p { margin: 0; color: var(--label); font-size: 13px; line-height: 1.72; }
.housing-checklist__item > div a { display: inline-flex; gap: 7px; margin-top: 14px; color: var(--text); font-size: 12px; font-weight: 720; text-underline-offset: 4px; }
.housing-checklist__item > div a:hover { color: var(--text); text-decoration-thickness: 2px; }
.housing-related { padding-bottom: clamp(50px, 7vw, 94px); }
.housing-related > header { margin-bottom: 20px; }
.housing-related-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--grid); }
.housing-related-grid a { display: grid; min-height: 120px; gap: 15px; padding: 18px; border-right: 1px solid var(--grid); border-bottom: 1px solid var(--grid); color: var(--text); text-decoration: none; }
.housing-related-grid a:hover { color: var(--accent); }
.housing-related-grid span { color: var(--muted); font-size: 9px; }
.housing-related-grid strong { font-family: var(--display-serif); font-size: 22px; font-weight: 560; }
.rating-institution-housing-link { flex: 0 0 auto; border: 1px solid var(--grid); border-radius: 999px; padding: 4px 7px; color: var(--muted) !important; font-size: 8px !important; font-weight: 760; letter-spacing: .06em; text-decoration: none; text-transform: uppercase; }
.rating-institution-housing-link:hover { border-color: var(--accent); color: var(--accent) !important; }

@media (max-width: 1000px) {
  .housing-directory-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .housing-directory-filters label:first-child { grid-column: 1 / -1; }
  .housing-school-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .housing-school-card:nth-child(3n) { border-right: 1px solid var(--grid); }
  .housing-school-card:nth-child(2n) { border-right: 0; }
}

@media (max-width: 680px) {
  .housing-coverage-hero { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .housing-coverage-hero > div { min-height: 108px; padding: 14px 8px; }
  .housing-coverage-hero > div span { font-size: 8px; line-height: 1.35; }
  .housing-coverage-hero > div strong { font-size: 34px; }
  .housing-directory-filters { grid-template-columns: 1fr; }
  .housing-directory-filters label:first-child { grid-column: auto; }
  .housing-directory-filters .primary-button,
  .housing-directory-filters .secondary-button { width: 100%; }
  .housing-school-directory > header { display: grid; }
  .housing-school-grid { grid-template-columns: 1fr; }
  .housing-school-card,
  .housing-school-card:nth-child(2n),
  .housing-school-card:nth-child(3n) { min-height: 0; border-right: 0; }
  .housing-detail-grid,
  .housing-checklist { grid-template-columns: 1fr; }
  .housing-detail-panel { min-height: 0; padding-right: 0; }
  .housing-detail-panel + .housing-detail-panel { padding-left: 0; border-top: 1px solid var(--grid); border-left: 0; }
  .housing-related-grid { grid-template-columns: 1fr; }
  .housing-related-grid a { border-right: 0; }
}

/* Career information architecture: one major-ranking entry, then evidence-led exploration. */
.career-hub { display: grid; gap: clamp(34px, 4.2vw, 56px); }
.career-hub-hero h1 > span:last-child { max-width: 11ch; }
.career-hub-hero > div > p:last-child { max-width: 66ch; }
.career-demand-map > header { display: grid; grid-template-columns: minmax(0, .9fr) minmax(280px, .5fr); gap: clamp(28px, 7vw, 100px); align-items: end; }
.career-demand-map h2 { max-width: 16ch; margin: 7px 0 0; font-family: var(--display-serif); font-size: clamp(30px, 3.4vw, 46px); font-weight: 600; letter-spacing: -.04em; line-height: 1; }
.career-demand-map > header > p { color: var(--label); font-size: var(--type-body-sm); line-height: 1.68; }

.career-demand-map { display: grid; gap: 22px; padding-bottom: clamp(42px, 7vw, 90px); }
.career-demand-table-frame { overflow-x: auto; border-top: 1px solid var(--grid); }
.career-demand-table { min-width: 900px; }
.career-demand-table thead th { background: color-mix(in srgb, var(--surface-strong) 64%, var(--paper)); }
.career-demand-table thead th:first-child { width: 54px; }
.career-demand-table thead th:nth-child(2) { width: 36%; }
.career-demand-table tbody tr { transition: background-color var(--motion-fast) ease, box-shadow var(--motion-fast) ease; }
.career-demand-table tbody tr:hover,
.career-demand-table tbody tr:focus-within { background: var(--ranking-row-hover); box-shadow: inset 3px 0 0 color-mix(in srgb, var(--hero-text) 72%, transparent); }
.career-demand-table tbody td,
.career-demand-table tbody th { padding-block: 17px; }
.career-demand-table .career-demand-rank { color: var(--hero-text); font-family: var(--display-serif); font-size: 20px; font-variant-numeric: tabular-nums; }
.career-demand-table tbody th a { font-size: 17px; }
.career-demand-table .career-demand-name { display: block; font-size: 17px; font-weight: 740; line-height: 1.2; }
.career-demand-table .rating-institution-name-primary,
.career-demand-table .rating-institution-name-secondary { overflow: visible; text-overflow: clip; white-space: normal; }
.career-demand-table tbody th > small { letter-spacing: .015em; }
.career-demand-table tbody td strong { font-variant-numeric: tabular-nums; }
.career-demand-table .rating-table-score,
.career-demand-table .rating-school-metric { border-left: 1px solid color-mix(in srgb, var(--grid) 72%, transparent); padding-left: 16px; }
.career-demand-table .rating-school-metric { min-width: 108px; }
.career-demand-table .rating-school-metric:last-child { min-width: 124px; }
.career-demand-map > footer { display: flex; justify-content: space-between; gap: 18px; color: var(--label); font-size: var(--type-meta); line-height: 1.5; }

.career-source-register { border-top: 1px solid var(--grid); }
.career-source-register summary { min-height: 54px; display: flex; justify-content: space-between; gap: 18px; align-items: center; color: var(--text); font-size: 11px; font-weight: 740; cursor: pointer; list-style: none; }
.career-source-register summary::-webkit-details-marker { display: none; }
.career-source-register summary::after { color: var(--hero-text); content: "+"; font-size: 17px; font-weight: 500; }
.career-source-register[open] summary::after { content: "−"; }
.career-source-register > div { padding: 0 0 24px; }
.career-source-register > div > p { max-width: 72ch; margin: 0 0 14px; color: var(--label); font-size: var(--type-meta); line-height: 1.6; }
.career-source-register ul { margin: 0; padding: 0; list-style: none; }
.career-source-register li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: center; border-top: 1px solid color-mix(in srgb, var(--grid) 70%, transparent); padding: 11px 0; }
.career-source-register li span { display: grid; gap: 4px; }
.career-source-register li strong { font-size: 11px; }
.career-source-register li small { color: var(--label); font-size: var(--type-meta); line-height: 1.45; }
.career-source-register li em { color: var(--label); font-size: 9px; font-style: normal; font-weight: 720; white-space: nowrap; }
.career-source-register li em[data-source-status^="operational"] { color: var(--hero-text); }

.major-career-visuals { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: clamp(34px, 5vw, 68px) 0; border-block: 1px solid var(--text); }
.major-career-visuals figure { min-width: 0; margin: 0; padding: clamp(24px, 3.5vw, 44px) clamp(18px, 3vw, 38px) clamp(20px, 3vw, 34px) 0; }
.major-career-visuals figure + figure { border-left: 1px solid var(--grid); padding-right: 0; padding-left: clamp(18px, 3vw, 38px); }
.major-career-visuals figcaption { min-height: 152px; }
.major-career-visuals h2 { margin: 7px 0 10px; font-family: var(--display-serif); font-size: clamp(28px, 3.2vw, 44px); font-weight: 540; letter-spacing: -.04em; line-height: 1; }
.major-career-visuals figcaption > p:last-child { max-width: 58ch; color: var(--label); font-size: var(--type-meta); line-height: 1.6; }
.major-career-visuals .lieflat-chart { display: block; width: 100%; height: auto; min-height: 260px; overflow: visible; }
.major-career-forecast-line { stroke-dasharray: 5 5; stroke-width: 1.2; }
.major-career-chart-value { fill: var(--text); font-size: 12px; font-weight: 780; }
.major-career-profile-label { fill: var(--label); font-size: 11px; font-weight: 700; }
.major-career-visuals .chart-source { margin: 8px 0 0; color: var(--label); font-size: 8px; letter-spacing: .08em; line-height: 1.45; }

@media (max-width: 900px) {
  .career-demand-map > header { grid-template-columns: 1fr; }
  .career-demand-table-frame { overflow: visible; }
  .career-demand-table { display: block; min-width: 0; }
  .career-demand-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
  .career-demand-table tbody { display: grid; }
  .career-demand-table tbody tr { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; align-items: stretch; padding: 18px 6px 20px; }
  .career-demand-table tbody td,
  .career-demand-table tbody th { min-width: 0; padding: 0; }
  .career-demand-table tbody .career-demand-rank { grid-column: 1; grid-row: 1; align-self: start; padding-top: 2px; }
  .career-demand-table tbody th { grid-column: 2 / 5; grid-row: 1; padding-bottom: 16px; }
  .career-demand-table tbody .rating-table-score { grid-column: 1; grid-row: 2; }
  .career-demand-table tbody td:nth-child(4) { grid-column: 2; grid-row: 2; }
  .career-demand-table tbody td:nth-child(5) { grid-column: 3; grid-row: 2; }
  .career-demand-table tbody td:nth-child(6) { grid-column: 4; grid-row: 2; }
  .career-demand-table tbody .rating-table-score,
  .career-demand-table tbody .rating-school-metric { display: grid; align-content: start; gap: 7px; min-height: 86px; border-top: 1px solid var(--grid); border-left: 0; padding: 13px 12px 0; text-align: left; }
  .career-demand-table tbody .rating-school-metric { border-left: 1px solid color-mix(in srgb, var(--grid) 72%, transparent); }
  .career-demand-table .rating-school-overall-label,
  .career-demand-table .rating-school-metric-label { display: block; color: var(--label); font-size: 10px; font-weight: 720; line-height: 1.3; white-space: normal; }
  .career-demand-table tbody .rating-table-score strong { color: var(--text); font-size: clamp(28px, 4.2vw, 36px); letter-spacing: -.035em; }
  .career-demand-table tbody .rating-table-score i { width: 100%; height: 3px; margin-top: 2px; background: color-mix(in srgb, var(--grid) 68%, transparent); }
  .career-demand-table tbody .rating-table-score i::after { background: var(--hero-text); }
  .career-demand-table tbody .rating-school-metric strong { font-size: clamp(14px, 2vw, 18px); line-height: 1.2; }
  .career-demand-table tbody td::before { display: none; }
  .career-market-supplement { grid-template-columns: 1fr; align-items: start; }
  .major-career-visuals { grid-template-columns: 1fr; }
  .major-career-visuals figure { padding-right: 0; }
  .major-career-visuals figure + figure { border-top: 1px solid var(--grid); border-left: 0; padding-left: 0; }
  .major-career-visuals figcaption { min-height: 0; margin-bottom: 18px; }
}

@media (max-width: 620px) {
  .career-hub { gap: 34px; }
  .career-demand-table tbody tr { gap: 0; padding: 18px 0; }
  .career-demand-table tbody .career-demand-rank { grid-column: 1; grid-row: 1; align-self: start; }
  .career-demand-table tbody th { grid-column: 2 / 5; grid-row: 1; }
  .career-demand-table tbody .rating-table-score { grid-column: 1; grid-row: 2; }
  .career-demand-table tbody td:nth-child(4) { grid-column: 2; grid-row: 2; }
  .career-demand-table tbody td:nth-child(5) { grid-column: 3; grid-row: 2; }
  .career-demand-table tbody td:nth-child(6) { grid-column: 4; grid-row: 2; }
  .career-demand-table tbody .rating-table-score,
  .career-demand-table tbody .rating-school-metric { min-height: 76px; padding: 10px 7px 0; }
  .career-demand-table tbody .rating-school-metric { border-left: 1px solid color-mix(in srgb, var(--grid) 72%, transparent); }
  .career-demand-table tbody .rating-table-score { border-left: 0; padding-left: 2px; }
  .career-demand-table .rating-school-overall-label,
  .career-demand-table .rating-school-metric-label { white-space: normal; }
  .career-demand-table tbody .rating-table-score strong { font-size: 22px; }
  .career-demand-table tbody .rating-school-metric strong { font-size: 13px; line-height: 1.2; }
  .career-demand-map > footer { display: grid; }
  .career-market-supplement dl { grid-template-columns: 1fr; }
  .career-market-supplement dl > div:nth-child(2n) { padding-left: 0; }
  .career-source-register li { align-items: start; }
  .major-career-visuals .lieflat-chart { min-height: 0; }
  .major-career-profile-label { font-size: 9px; }
}

@media (prefers-reduced-motion: reduce) {
  .career-demand-table tbody tr { transition: none; }
}

/* Detailed careers: school-ranking shell, filter workbench, and one truthful row per SOC occupation. */
.product-route-view:has(.career-directory-page),
.product-route-view:has(.career-occupation-detail) { width: 100%; max-width: 1760px; }
.career-directory-page { gap: clamp(28px, 4vw, 48px); }
.career-directory-page .career-hub-hero h1 > span:last-child { max-width: 13ch; }
.career-filter-workbench {
  border: 1px solid color-mix(in srgb, var(--grid) 76%, transparent);
  border-radius: 18px;
  background: color-mix(in srgb, var(--surface-strong) 48%, var(--paper));
  padding: clamp(18px, 2.4vw, 28px);
}
.career-filter-workbench form {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(240px, .72fr);
  grid-template-areas:
    "search sort"
    "family submit";
  gap: 18px 20px;
  align-items: end;
}
.career-filter-search { grid-area: search; }
.career-filter-sort { grid-area: sort; }
.career-filter-family { grid-area: family; }
.career-filter-submit { grid-area: submit; }
.career-filter-workbench label { display: grid; min-width: 0; gap: 8px; color: var(--label); font-size: var(--type-meta); font-weight: 740; }
.career-filter-workbench input,
.career-filter-workbench select { width: 100%; min-height: 46px; border: 1px solid var(--grid); border-radius: 10px; background: var(--paper); color: var(--text); padding: 0 13px; font: inherit; font-size: 12px; }
.career-filter-workbench input:focus,
.career-filter-workbench select:focus { border-color: var(--hero-text); outline: 3px solid color-mix(in srgb, var(--hero-text) 14%, transparent); }
.career-filter-workbench .primary-button { width: 100%; min-height: 46px; border-radius: 10px; white-space: nowrap; }

.career-directory-page .rating-ranking-hero__aside nav a img {
  width: 18px;
  height: 18px;
  margin-left: auto;
  filter: var(--hero-aside-icon-filter);
  transition: filter var(--motion-fast) ease, transform var(--motion-fast) var(--ease-out);
}
.career-directory-page .rating-ranking-hero__aside nav a:hover img,
.career-directory-page .rating-ranking-hero__aside nav a:focus-visible img {
  filter: var(--hero-aside-icon-accent-filter);
  transform: translateX(3px);
}

.career-directory-results { display: grid; gap: 18px; }
.career-directory-results > header,
.career-global-context > header { display: grid; grid-template-columns: minmax(0, .8fr) minmax(300px, .55fr); gap: clamp(24px, 6vw, 84px); align-items: end; }
.career-directory-results > header h2,
.career-global-context h2 { margin: 7px 0 0; font-family: var(--display-serif); font-size: clamp(30px, 3.4vw, 46px); font-weight: 600; letter-spacing: -.04em; line-height: 1; }
.career-directory-results > header > p,
.career-global-context > header > p { color: var(--label); font-size: var(--type-body-sm); line-height: 1.65; }
.career-occupation-table-frame { overflow-x: auto; border: 1px solid color-mix(in srgb, var(--grid) 82%, transparent); border-radius: 16px; background: var(--paper); }
.career-occupation-table { width: 100%; min-width: 1160px; border-collapse: separate; border-spacing: 0; }
.career-occupation-table thead th { position: sticky; top: 0; z-index: 1; background: color-mix(in srgb, var(--surface-strong) 70%, var(--paper)); color: var(--label); font-size: 9px; letter-spacing: .06em; text-transform: uppercase; }
.career-occupation-table th,
.career-occupation-table td { padding: 15px 14px; border-bottom: 1px solid color-mix(in srgb, var(--grid) 64%, transparent); text-align: left; vertical-align: middle; }
.career-occupation-table tbody tr:last-child > * { border-bottom: 0; }
.career-occupation-table tbody tr { transition: background-color var(--motion-fast) ease, transform var(--motion-fast) var(--ease-out); }
.career-occupation-table tbody tr:hover,
.career-occupation-table tbody tr:focus-within { background: var(--ranking-row-hover); }
.career-occupation-table thead th:first-child,
.career-occupation-table tbody td:first-child { width: 58px; text-align: center; }
.career-occupation-table thead th:nth-child(2) { width: 38%; }
.career-occupation-no { color: var(--hero-text); font-family: var(--display-serif); font-size: 18px; font-variant-numeric: tabular-nums; }
.career-occupation-link { display: grid; gap: 7px; color: var(--text); text-decoration: none; }
.career-occupation-link__primary { font-size: 15px; font-weight: 780; line-height: 1.25; }
.career-occupation-link__secondary { color: var(--label); font-size: 12px; font-weight: 560; line-height: 1.4; }
.career-occupation-link__meta { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; margin-top: 2px; }
.career-occupation-link__meta em,
.career-occupation-link__meta span { font-size: 12px; font-style: normal; font-weight: 720; line-height: 1.35; }
.career-occupation-link__meta em { color: var(--hero-text); letter-spacing: .04em; }
.career-occupation-link__meta span { color: var(--label); }
.career-occupation-link:hover .career-occupation-link__primary,
.career-occupation-link:focus-visible .career-occupation-link__primary { color: var(--hero-text); text-decoration: underline; text-underline-offset: 4px; }
.career-occupation-table td strong { font-size: 12px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.career-opportunity-score { display: inline-flex; gap: 7px; align-items: baseline; }
.career-opportunity-score strong { color: var(--hero-text); font-family: var(--display-serif); font-size: 22px !important; }
.career-opportunity-score small { color: var(--label); font-size: 8px; font-weight: 740; }
.career-score-missing { color: var(--label); font-size: 9px; font-weight: 680; }
.career-directory-empty { border-radius: 16px; background: var(--surface-strong); padding: 36px; }

.career-opportunity-method { display: grid; grid-template-columns: minmax(250px, .72fr) minmax(320px, 1.08fr) minmax(360px, .9fr); gap: clamp(24px, 4vw, 58px); align-items: center; border-radius: 20px; background: var(--text); color: var(--paper); padding: clamp(24px, 3vw, 40px); }
.career-opportunity-method h2 { margin: 6px 0 0; font-family: var(--display-serif); font-size: clamp(28px, 3vw, 40px); font-weight: 560; letter-spacing: -.04em; line-height: 1; }
.career-opportunity-method > p { margin: 0; color: color-mix(in srgb, var(--paper) 72%, transparent); font-size: var(--type-meta); line-height: 1.7; }
.career-opportunity-method dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; }
.career-opportunity-method dl > div { display: grid; gap: 5px; border-left: 1px solid color-mix(in srgb, var(--paper) 22%, transparent); padding-left: 14px; }
.career-opportunity-method dt { color: color-mix(in srgb, var(--paper) 64%, transparent); font-size: 8px; line-height: 1.3; }
.career-opportunity-method dd { margin: 0; font-family: var(--display-serif); font-size: 24px; }
.career-multifactor-readiness { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(220px, .7fr) minmax(300px, 1fr) minmax(360px, 1.4fr); gap: 24px; align-items: start; border-top: 1px solid color-mix(in srgb, var(--paper) 20%, transparent); padding-top: 24px; }
.career-multifactor-readiness h3 { margin: 5px 0 0; font-family: var(--display-serif); font-size: 24px; font-weight: 560; }
.career-multifactor-readiness > p { display: grid; gap: 7px; margin: 0; }
.career-multifactor-readiness > p span,
.career-multifactor-readiness > small { color: color-mix(in srgb, var(--paper) 68%, transparent); font-size: 10px; line-height: 1.65; }
.career-multifactor-detail { margin-top: 18px; border: 1px solid var(--grid); border-radius: 18px; background: var(--paper); padding: clamp(22px, 3vw, 36px); }
.career-multifactor-detail > header { display: flex; justify-content: space-between; gap: 24px; align-items: end; }
.career-multifactor-detail h2 { margin: 5px 0 0; font-family: var(--display-serif); font-size: clamp(28px, 3vw, 40px); font-weight: 560; }
.career-multifactor-detail > header > strong { font-family: var(--display-serif); font-size: 46px; line-height: .9; text-align: right; }
.career-multifactor-detail > header > strong small { display: block; margin-top: 8px; color: var(--label); font-family: var(--font-sans); font-size: 9px; }
.career-multifactor-detail dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 26px 0 0; border-top: 1px solid var(--grid); border-bottom: 1px solid var(--grid); }
.career-multifactor-detail dl > div { padding: 18px 14px; border-left: 1px solid var(--grid); }
.career-multifactor-detail dl > div:first-child { border-left: 0; }
.career-multifactor-detail dt { color: var(--label); font-size: 9px; }
.career-multifactor-detail dd { margin: 7px 0 0; font-size: 13px; font-weight: 720; }
.career-multifactor-detail > p { max-width: 920px; margin: 18px 0 0; color: var(--label); font-size: 11px; line-height: 1.7; }

.career-global-context { display: grid; gap: 22px; scroll-margin-top: 90px; border-radius: 20px; background: color-mix(in srgb, var(--surface-strong) 56%, var(--paper)); padding: clamp(24px, 4vw, 46px); }
.career-global-context dl { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; }
.career-global-context dl > div { display: grid; gap: 7px; padding: 4px clamp(12px, 2.5vw, 28px); border-left: 1px solid var(--grid); }
.career-global-context dl > div:first-child { border-left: 0; padding-left: 0; }
.career-global-context dt { color: var(--label); font-size: var(--type-meta); }
.career-global-context dd { margin: 0; font-family: var(--display-serif); font-size: clamp(25px, 3vw, 38px); font-variant-numeric: tabular-nums; }

.career-occupation-detail { display: grid; gap: clamp(28px, 4vw, 52px); }
.career-detail-breadcrumb { margin-bottom: -20px; }
.career-detail-breadcrumb a { display: inline-flex; gap: 10px; align-items: center; color: var(--text); font-size: 10px; text-decoration: none; }
.career-detail-breadcrumb a span { color: var(--hero-text); font-size: 18px; }
.career-detail-hero h1 > span:first-child { color: var(--text); font-size: 1em; }
.career-detail-hero h1 > span:last-child { max-width: 18ch; color: var(--label); font-family: var(--body-sans); font-size: clamp(15px, 1.4vw, 20px); font-weight: 600; letter-spacing: 0; line-height: 1.25; }
.career-detail-facts { grid-template-columns: repeat(6, minmax(0, 1fr)); margin: 0; border-radius: 18px; overflow: hidden; background: color-mix(in srgb, var(--surface-strong) 58%, var(--paper)); }
.career-detail-facts > div { min-width: 0; padding: clamp(18px, 2.4vw, 28px); }
.career-detail-facts strong { font-size: clamp(18px, 2.1vw, 28px); overflow-wrap: anywhere; }
.career-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); scroll-margin-top: 90px; }
.career-detail-grid .product-chart { min-width: 0; margin: 0; padding: clamp(22px, 3vw, 34px); border: 1px solid var(--grid); border-radius: 18px; }
.career-detail-grid .product-chart + .product-chart { margin-left: 18px; }
.career-detail-grid .lieflat-chart { display: block; width: 100%; height: auto; }
.career-detail-support { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: 18px; }
.career-detail-support > section { margin: 0; border-radius: 18px; background: color-mix(in srgb, var(--surface-strong) 50%, var(--paper)); padding: clamp(24px, 3vw, 38px); scroll-margin-top: 90px; }
.career-detail-support h2 { margin: 7px 0 12px; font-family: var(--display-serif); font-size: clamp(28px, 3vw, 40px); font-weight: 580; letter-spacing: -.04em; }
.career-detail-support > section > p:not(.kicker) { color: var(--label); font-size: var(--type-meta); line-height: 1.65; }
.career-preparation-panel .tag-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 20px; }
.career-preparation-panel .tag-list span { display: grid; gap: 4px; border: 1px solid var(--grid); border-radius: 10px; background: var(--paper); padding: 11px 12px; font-size: 10px; line-height: 1.4; }
.career-preparation-panel .tag-list small { color: var(--hero-text); font-size: 8px; font-weight: 780; letter-spacing: .06em; }

.career-opportunity-breakdown { display: grid; gap: 22px; scroll-margin-top: 90px; border-radius: 20px; background: color-mix(in srgb, var(--surface-strong) 54%, var(--paper)); padding: clamp(24px, 3.5vw, 44px); }
.career-opportunity-breakdown > header { display: flex; justify-content: space-between; gap: 24px; align-items: end; }
.career-opportunity-breakdown h2 { margin: 6px 0 0; font-family: var(--display-serif); font-size: clamp(28px, 3vw, 42px); font-weight: 560; letter-spacing: -.04em; }
.career-opportunity-breakdown > header > strong { display: grid; color: var(--hero-text); font-family: var(--display-serif); font-size: clamp(38px, 5vw, 64px); font-weight: 560; line-height: .8; text-align: right; }
.career-opportunity-breakdown > header > strong small { margin-top: 12px; color: var(--label); font-family: var(--body-sans); font-size: 9px; font-weight: 720; }
.career-opportunity-breakdown > div { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.career-opportunity-breakdown > div > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; border: 1px solid var(--grid); border-radius: 12px; background: var(--paper); padding: 14px; }
.career-opportunity-breakdown span { display: grid; gap: 4px; }
.career-opportunity-breakdown span b { font-size: 10px; }
.career-opportunity-breakdown span small { color: var(--label); font-size: 8px; }
.career-opportunity-breakdown i { grid-column: 1 / -1; width: 100%; height: 3px; overflow: hidden; border-radius: 2px; background: var(--grid); }
.career-opportunity-breakdown i::after { display: block; width: var(--career-component); height: 100%; background: var(--hero-text); content: ""; }
.career-opportunity-breakdown > div > div > strong { grid-column: 2; grid-row: 1; font-family: var(--display-serif); font-size: 22px; }
.career-opportunity-breakdown > p { max-width: 86ch; margin: 0; color: var(--label); font-size: var(--type-meta); line-height: 1.65; }

@media (max-width: 1100px) {
  .career-filter-workbench form { grid-template-columns: minmax(0, 1.35fr) minmax(210px, .65fr); }
  .career-occupation-table-frame { overflow: visible; border: 0; background: transparent; }
  .career-occupation-table { display: block; min-width: 0; }
  .career-occupation-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .career-occupation-table tbody { display: grid; gap: 10px; }
  .career-occupation-table tbody tr { display: grid; grid-template-columns: 48px minmax(0, 1fr) 104px 38px; gap: 12px 10px; align-items: center; border: 1px solid var(--grid); border-radius: 14px; background: var(--paper); padding: 14px; }
  .career-occupation-table th,
  .career-occupation-table td { padding: 0; border: 0; }
  .career-occupation-table tbody td:first-child { width: auto; }
  .career-occupation-table tbody th { grid-column: 2; grid-row: 1; }
  .career-occupation-table tbody td:nth-child(3) { grid-column: 3; grid-row: 1; }
  .career-occupation-table tbody td:last-child { display: block; min-width: 0; overflow: hidden; grid-column: 4; grid-row: 1; grid-template-columns: none; }
  .career-occupation-table tbody td:last-child::before { display: none; }
  .career-occupation-table tbody td:nth-child(n+4):nth-child(-n+7) { display: grid; grid-row: 2; gap: 5px; border-top: 1px solid var(--grid); padding-top: 10px; }
  .career-occupation-table tbody td:nth-child(4) { grid-column: 1; }
  .career-occupation-table tbody td:nth-child(5) { grid-column: 2; }
  .career-occupation-table tbody td:nth-child(6) { grid-column: 3; }
  .career-occupation-table tbody td:nth-child(7) { grid-column: 4; }
  .career-occupation-table tbody td[data-label]::before { content: attr(data-label); color: var(--label); font-size: 8px; font-weight: 720; line-height: 1.2; }
  .career-opportunity-method { grid-template-columns: 1fr 1fr; }
  .career-opportunity-method dl { grid-column: 1 / -1; }
  .career-multifactor-readiness { grid-template-columns: 1fr 1fr; }
  .career-multifactor-readiness > small { grid-column: 1 / -1; }
  .career-multifactor-detail dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .career-multifactor-detail dl > div:nth-child(3) { border-left: 0; border-top: 1px solid var(--grid); }
  .career-multifactor-detail dl > div:nth-child(4) { border-top: 1px solid var(--grid); }
  .career-detail-facts { grid-template-columns: repeat(3, 1fr); }
  .career-detail-facts > div:nth-child(n+4) { border-top: 1px solid var(--grid); }
  .career-detail-grid,
  .career-detail-support { grid-template-columns: 1fr; }
  .career-detail-grid .product-chart + .product-chart { margin: 14px 0 0; }
}

@media (max-width: 680px) {
  .career-directory-page .career-hub-hero { gap: 18px; }
  .career-directory-page .career-hub-hero h1 {
    width: 100%;
    max-width: 100%;
    font-size: clamp(34px, 9.5vw, 42px);
    overflow-wrap: anywhere;
  }
  .career-directory-page .career-hub-hero h1 > span:first-child { font-size: .6em; }
  .career-directory-page .career-hub-hero .kicker {
    max-width: 100%;
    font-size: 9px;
    letter-spacing: .1em;
    overflow-wrap: anywhere;
  }
  .career-directory-page .career-hub-hero > div > p:last-child {
    max-width: 100%;
    font-size: 12px;
    overflow-wrap: anywhere;
  }
  .career-directory-results > header,
  .career-global-context > header { grid-template-columns: 1fr; gap: 12px; }
  .career-filter-workbench form {
    grid-template-columns: 1fr;
    grid-template-areas: "search" "sort" "family" "submit";
    gap: 14px;
  }
  .career-occupation-table tbody tr { grid-template-columns: 38px minmax(0, 1fr) 34px; gap: 12px 8px; padding: 16px 12px; }
  .career-occupation-table tbody th { grid-column: 2; }
  .career-occupation-table tbody td:last-child { grid-column: 3; grid-row: 1; }
  .career-occupation-table tbody td:nth-child(3) { grid-column: 1 / 4; grid-row: 2; }
  .career-occupation-table tbody td:nth-child(4) { grid-column: 1 / -1; grid-row: 3; }
  .career-occupation-table tbody td:nth-child(5) { grid-column: 1 / -1; grid-row: 4; }
  .career-occupation-table tbody td:nth-child(6) { grid-column: 1 / -1; grid-row: 5; }
  .career-occupation-table tbody td:nth-child(7) { grid-column: 1 / -1; grid-row: 6; }
  .career-occupation-table tbody td:nth-child(n+4):nth-child(-n+7) { min-width: 0; overflow: hidden; }
  .career-occupation-table tbody td[data-label]::before { content: attr(data-label); color: var(--label); font-size: 8px; font-weight: 720; line-height: 1.2; }
  .career-global-context dl { grid-template-columns: 1fr; }
  .career-global-context dl > div,
  .career-global-context dl > div:first-child { padding: 14px 0; border-top: 1px solid var(--grid); border-left: 0; }
  .career-global-context dl > div:first-child { border-top: 0; }
  .career-opportunity-method { grid-template-columns: 1fr; }
  .career-opportunity-method dl { grid-column: auto; grid-template-columns: repeat(2, 1fr); gap: 16px 0; }
  .career-multifactor-readiness { grid-template-columns: 1fr; }
  .career-multifactor-readiness > small { grid-column: auto; }
  .career-multifactor-detail > header { align-items: start; }
  .career-multifactor-detail > header > strong { font-size: 34px; }
  .career-multifactor-detail dl { grid-template-columns: 1fr; }
  .career-multifactor-detail dl > div { border-left: 0; border-top: 1px solid var(--grid); }
  .career-multifactor-detail dl > div:first-child { border-top: 0; }
  .career-opportunity-breakdown > header { align-items: start; }
  .career-opportunity-breakdown > div { grid-template-columns: 1fr; }
  .career-detail-facts { grid-template-columns: repeat(2, 1fr); }
  .career-detail-facts > div { border-top: 1px solid var(--grid); }
  .career-detail-facts > div:first-child,
  .career-detail-facts > div:nth-child(2) { border-top: 0; }
  .career-preparation-panel .tag-list { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .career-occupation-table tbody tr { transition: none; }
}

/* Final accommodation cascade: calm two-zone directory, richer detail page. */
.product-route-view .housing-school-grid { display: grid; grid-template-columns: 1fr; }
.product-route-view .housing-school-card,
.product-route-view .housing-school-card:nth-child(2n),
.product-route-view .housing-school-card:nth-child(3n) {
  display: grid;
  grid-template-columns: minmax(260px, .86fr) minmax(420px, 1.14fr);
  grid-template-rows: auto;
  gap: clamp(28px, 4vw, 58px);
  align-items: center;
  min-height: 0;
  padding: clamp(20px, 2.2vw, 30px) 0;
  border-right: 0;
  border-bottom: 1px solid var(--grid);
}
.product-route-view .housing-school-card:hover { background: color-mix(in srgb, var(--text) 2.5%, transparent); }
.product-route-view .housing-school-card__identity { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 16px; min-width: 0; }
.product-route-view .housing-school-card__identity > .kicker,
.product-route-view .housing-school-card__identity > h2,
.product-route-view .housing-school-card__identity > p[lang="en"] { grid-column: 1 / -1; }
.product-route-view .housing-school-card__identity h2 { max-width: 22ch; margin: 0; font-size: clamp(27px, 2.4vw, 36px); line-height: 1; }
.product-route-view .housing-school-card__identity > p[lang="en"] { margin: -1px 0 3px; }
.product-route-view .housing-school-card__counts { display: flex; flex-wrap: wrap; align-self: center; gap: 5px 14px; margin-top: 3px; }
.product-route-view .housing-school-card__counts span { border: 0; padding: 0; }
.product-route-view .housing-school-card__counts span:first-child { color: var(--text); font-weight: 670; }
.housing-school-card__rooms { min-width: 0; padding-left: clamp(20px, 3vw, 42px); border-left: 1px solid var(--grid); }
.housing-school-card__rooms > p { margin: 0 0 10px; color: var(--label); font-size: 9px; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }
.housing-room-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; }
.housing-room-summary > div { min-width: 0; padding: 3px clamp(12px, 2vw, 24px); border-left: 1px solid var(--grid); }
.housing-room-summary > div:first-child { padding-left: 0; border-left: 0; }
.housing-room-summary dt { color: var(--label); font-size: 9px; font-weight: 710; letter-spacing: .05em; line-height: 1.2; text-transform: uppercase; }
.housing-room-summary dd { margin: 8px 0 0; font-family: var(--display-serif); font-size: clamp(18px, 1.7vw, 24px); line-height: 1; white-space: nowrap; }
.housing-room-summary dd small { color: var(--label); font-family: var(--sans); font-size: 9px; font-weight: 600; }
.housing-room-summary .is-missing dd { color: var(--muted); font-family: var(--sans); font-size: 12px; }
.product-route-view .housing-school-card__action {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  gap: 10px;
  align-self: center;
  justify-self: end;
  margin-top: 3px;
  color: var(--text);
  font-size: 9px;
  letter-spacing: .055em;
  text-transform: uppercase;
}
.housing-school-card__action i { color: var(--accent); font-size: 22px; font-style: normal; line-height: 1; transition: transform var(--motion-fast) var(--ease-out); }
.housing-school-card__action:hover i,
.housing-school-card__action:focus-visible i { transform: translateX(5px); }
.housing-nearby-map { display: block; width: 100%; height: 210px; margin-top: 10px; overflow: hidden; background: var(--paper); }
.housing-local-map.is-large .housing-nearby-map { height: clamp(300px, 38vw, 440px); }
.housing-map-paper { fill: var(--paper); }
.housing-map-grid { stroke: color-mix(in srgb, var(--text) 16%, transparent); stroke-width: .65; stroke-dasharray: 2 3; vector-effect: non-scaling-stroke; }
.housing-nearby-map .world-land { fill: color-mix(in srgb, var(--paper) 88%, var(--text)); stroke: color-mix(in srgb, var(--text) 62%, transparent); stroke-width: .7; }
.housing-nearby-map .housing-map-place { fill: var(--text); opacity: .66; stroke: var(--paper); stroke-width: .55; vector-effect: non-scaling-stroke; }
.housing-nearby-map .housing-map-school-halo { fill: none; stroke: var(--accent); stroke-width: 2.2; vector-effect: non-scaling-stroke; }
.housing-nearby-map .housing-map-school { fill: var(--accent); stroke: var(--paper); stroke-width: 1; vector-effect: non-scaling-stroke; }
.housing-market-inventory { margin: clamp(52px, 7vw, 96px) 0; border-top: 1px solid var(--text); }
.housing-market-inventory > header { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 28px; align-items: end; padding: 24px 0 20px; }
.housing-market-inventory > header .kicker,
.housing-market-inventory > header p { grid-column: 1; }
.housing-market-inventory > header h2 { grid-column: 1; margin: 0; font-family: var(--display-serif); font-size: clamp(34px, 4.5vw, 58px); font-weight: 540; letter-spacing: -.045em; line-height: 1; }
.housing-market-inventory > header p:not(.kicker) { max-width: 72ch; margin: 4px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.housing-market-inventory > header > strong { grid-column: 2; grid-row: 1 / 5; color: var(--accent); font-size: 11px; font-weight: 720; }
.housing-market-property-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--grid); }
.housing-market-property { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; min-width: 0; padding: 20px 22px 22px 0; border-bottom: 1px solid var(--grid); }
.housing-market-property > * { min-width: 0; }
.housing-market-property:nth-child(2n) { padding-right: 0; padding-left: 22px; border-left: 1px solid var(--grid); }
.housing-market-property h3 { margin: 0; font-size: 16px; line-height: 1.25; }
.housing-market-property__basis { display: inline-flex; margin-bottom: 7px; padding: 3px 7px; border: 1px solid var(--grid); border-radius: 999px; color: var(--muted); font-family: var(--font-mono); font-size: 7px; font-weight: 700; letter-spacing: .05em; line-height: 1.2; text-transform: uppercase; }
.housing-market-property > div > p { margin: 5px 0 0; overflow: hidden; color: var(--muted); font-size: 9px; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.housing-market-property dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 18px; margin: 0; }
.housing-market-property dl > div { min-width: 0; }
.housing-market-property dt { color: var(--label); font-size: 8px; font-weight: 720; letter-spacing: .05em; text-transform: uppercase; }
.housing-market-property dd { margin: 4px 0 0; overflow: hidden; font-size: 10px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }

@media (max-width: 1120px) {
  .housing-detail-lists { grid-template-columns: 1fr; }
  .housing-detail-lists > section { padding-right: 0; }
  .housing-detail-lists > section + section { border-top: 1px solid var(--grid); border-left: 0; padding-left: 0; }
}

@media (max-width: 980px) {
  .housing-directory-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .housing-directory-filters label:first-child { grid-column: 1 / -1; }
}

@media (max-width: 900px) {
  .housing-detail-overview { grid-template-columns: 1fr; }
  .housing-detail-overview > div:first-child { order: 0; }
  .housing-detail-price-panel { order: 1; padding-top: 0; }
  .housing-local-map.is-large .housing-nearby-map { height: clamp(290px, 56vw, 410px); }
}

@media (max-width: 640px) {
  .product-route-view .housing-school-card,
  .product-route-view .housing-school-card:nth-child(2n),
  .product-route-view .housing-school-card:nth-child(3n) { grid-template-columns: 1fr; gap: 14px; padding-block: 22px; }
  .product-route-view .housing-school-card__identity h2 { max-width: none; font-size: clamp(28px, 8vw, 36px); }
  .housing-school-card__rooms { padding: 14px 0 0; border-top: 1px solid var(--grid); border-left: 0; }
}

@media (max-width: 640px) {
  .housing-directory-filters { grid-template-columns: 1fr; margin-block: 0 34px; }
  .housing-directory-filters label:first-child { grid-column: auto; }
  .housing-directory-filters .primary-button,
  .housing-directory-filters .secondary-button { width: 100%; }
  .housing-school-directory > header { display: grid; gap: 9px; align-items: start; }
  .product-route-view .housing-school-card__identity h2 { max-width: none; }
  .housing-detail-lists { grid-template-columns: 1fr; }
  .housing-detail-lists > section { padding-right: 0; }
  .housing-detail-lists > section + section { border-top: 1px solid var(--grid); border-left: 0; padding-left: 0; }
  .housing-checklist { gap: 28px; padding-block: 54px; }
  .housing-market-inventory > header { grid-template-columns: 1fr; }
  .housing-market-inventory > header > strong { grid-column: 1; grid-row: auto; }
  .housing-market-property-list { grid-template-columns: 1fr; }
  .housing-market-property,
  .housing-market-property:nth-child(2n) { padding: 18px 0; border-left: 0; }
}

@media (max-width: 480px) {
  .product-route-view .housing-school-card__identity { gap: 5px 12px; }
  .product-route-view .housing-school-card__counts { gap: 4px 10px; }
  .housing-room-summary > div { padding-inline: 10px; }
  .housing-room-summary dd { font-size: 17px; }
  .housing-detail-price-panel .housing-price-row { grid-template-columns: minmax(0, 1fr) auto; }
  .housing-local-map.is-large { margin-inline: -10px; }
  .housing-local-map.is-large .housing-nearby-map { height: 280px; }
  .housing-market-property dl { grid-template-columns: 1fr; gap: 10px; }
  .housing-checklist__item summary { grid-template-columns: 30px minmax(0, 1fr) 20px; gap: 10px; min-height: 66px; }
  .housing-checklist__item > div { padding: 0 20px 22px 40px; }
}

@media (prefers-reduced-motion: reduce) {
  .housing-school-card__action i { transition: none; }
  .housing-school-card__action:hover i,
  .housing-school-card__action:focus-visible i { transform: none; }
}

/* Property dossier: one canonical property, complete room evidence, explicit limits. */
.housing-market-property__title { color: var(--text); text-decoration: none; }
.housing-market-property__title:hover,
.housing-market-property__title:focus-visible { color: var(--accent); }
.housing-market-property__open { display: inline-flex; width: fit-content; align-items: center; gap: 9px; color: var(--text); font-size: 9px; font-weight: 740; letter-spacing: .055em; text-decoration: none; text-transform: uppercase; }
.housing-market-property__open span { color: var(--accent); font-size: 18px; line-height: 1; transition: transform var(--motion-fast) var(--ease-out); }
.housing-market-property__open:hover span,
.housing-market-property__open:focus-visible span { transform: translateX(4px); }
.housing-property-page-header { align-items: end; }
.housing-property-page-header h1 { max-width: 18ch; }
.housing-property-status-chip { align-self: end; color: var(--accent); }
.housing-property-status-chip[data-state="unavailable"],
.housing-property-status-chip[data-state="full"],
.housing-property-status-chip[data-state="closed"],
.housing-property-status-chip[data-state="let"] { color: var(--muted); }
.housing-property-hero { display: grid; grid-template-columns: minmax(250px, .72fr) minmax(0, 1.28fr); gap: clamp(28px, 6vw, 92px); align-items: start; margin: clamp(34px, 5vw, 72px) 0 0; }
.housing-property-identity { display: grid; align-content: start; gap: 18px; min-width: 0; }
.housing-property-identity > .product-facts { margin: 0; border-top: 1px solid var(--text); }
.housing-property-identity > .product-facts > div { grid-template-columns: minmax(105px, .55fr) minmax(0, 1fr); padding: 11px 0; border-bottom: 1px solid var(--grid); }
.housing-property-identity > .product-boundary { margin: 0; }
.housing-property-map { min-width: 0; margin: 0; border-top: 1px solid var(--text); }
.housing-property-map figcaption { display: grid; gap: 7px; padding: 17px 0 14px; }
.housing-property-map figcaption h2 { margin: 0; font-family: var(--display-serif); font-size: clamp(28px, 3.5vw, 48px); font-weight: 540; letter-spacing: -.045em; line-height: 1; }
.housing-property-map figcaption p:not(.kicker) { max-width: 70ch; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.housing-property-map-svg { display: block; width: 100%; height: clamp(300px, 36vw, 470px); overflow: hidden; background: var(--paper); }
.housing-property-map .world-land { fill: color-mix(in srgb, var(--paper) 88%, var(--text)); stroke: color-mix(in srgb, var(--text) 62%, transparent); stroke-width: .7; }
.housing-property-map-grid { stroke: color-mix(in srgb, var(--text) 16%, transparent); stroke-width: .65; stroke-dasharray: 2 3; vector-effect: non-scaling-stroke; }
.housing-property-map-marker { stroke: var(--paper); stroke-width: 1.2; vector-effect: non-scaling-stroke; }
.housing-property-map-marker.is-property { fill: var(--text); }
.housing-property-map-marker.is-school { fill: var(--accent); }
.housing-property-map-school-halo { fill: none; stroke: var(--accent); stroke-width: 2; vector-effect: non-scaling-stroke; }
.housing-property-map-legend { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 18px; margin: 13px 0 0; padding: 0; list-style: none; }
.housing-property-map-legend li { display: grid; grid-template-columns: 10px minmax(0, 1fr); gap: 0 8px; min-width: 0; align-items: start; }
.housing-property-map-legend li strong { overflow: hidden; font-size: 10px; font-weight: 680; text-overflow: ellipsis; white-space: nowrap; }
.housing-property-map-legend li small { grid-column: 2; margin-top: 3px; color: var(--muted); font-size: 8px; line-height: 1.35; }
.housing-property-map-key { width: 8px; height: 8px; margin-top: 3px; border: 1px solid var(--paper); border-radius: 50%; background: var(--text); box-shadow: 0 0 0 1px var(--text); }
.housing-property-map-key.is-property { background: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.housing-property-map.is-missing { display: grid; min-height: 220px; align-content: center; gap: 10px; border-top: 1px solid var(--text); border-bottom: 1px solid var(--grid); padding: 24px; }
.housing-property-map.is-missing strong { font-size: 15px; }
.housing-property-map.is-missing p { max-width: 44ch; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.housing-property-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: clamp(42px, 6vw, 82px); border-block: 1px solid var(--text); }
.housing-property-summary > div { display: grid; gap: 12px; min-width: 0; min-height: 118px; align-content: center; padding: 18px clamp(13px, 2vw, 28px); border-left: 1px solid var(--grid); }
.housing-property-summary > div:first-child { border-left: 0; padding-left: 0; }
.housing-property-summary span { color: var(--muted); font-size: 9px; font-weight: 740; letter-spacing: .07em; line-height: 1.3; text-transform: uppercase; }
.housing-property-summary strong { font-family: var(--display-serif); font-size: clamp(29px, 3.4vw, 48px); font-weight: 540; line-height: .95; }
.housing-property-section { min-width: 0; }
.housing-property-section > header { display: grid; gap: 7px; margin-bottom: 21px; }
.housing-property-section > header h2 { margin: 0; font-family: var(--display-serif); font-size: clamp(35px, 4.4vw, 58px); font-weight: 540; letter-spacing: -.05em; line-height: .98; }
.housing-property-section > header p:not(.kicker) { max-width: 75ch; margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.housing-property-rooms { margin-top: clamp(54px, 8vw, 106px); padding-top: 27px; border-top: 1px solid var(--text); }
.housing-property-room-grid { display: grid; grid-template-columns: minmax(0, 1fr); border-top: 1px solid var(--grid); }
.housing-property-room { display: grid; width: 100%; max-width: 100%; align-content: start; gap: 17px; min-width: 0; padding: 22px 0 29px; border-bottom: 1px solid var(--grid); }
.housing-property-room:nth-child(2n) { padding: 22px 0 29px; border-left: 0; }
.housing-property-room > header { display: flex; align-items: start; justify-content: space-between; gap: 15px; }
.housing-property-room > * { min-width: 0; max-width: 100%; }
.housing-property-room h3 { margin: 3px 0 0; font-size: clamp(20px, 2.2vw, 30px); line-height: 1.15; }
.housing-property-status { flex: 0 0 auto; color: var(--accent); font-size: 8px; font-weight: 760; letter-spacing: .08em; text-transform: uppercase; }
.housing-property-status[data-state="unavailable"],
.housing-property-status[data-state="full"],
.housing-property-status[data-state="closed"],
.housing-property-status[data-state="let"],
.housing-property-status[data-state="unknown"] { color: var(--muted); }
.housing-property-room-features { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; border-top: 1px solid var(--grid); }
.housing-property-room-features > div { display: grid; gap: 4px; min-width: 0; padding: 9px 11px 9px 0; border-bottom: 1px solid var(--grid); }
.housing-property-room-features > div:nth-child(even) { padding-left: 11px; border-left: 1px solid var(--grid); }
.housing-property-room-features dt { overflow: hidden; color: var(--muted); font-size: 10px; font-weight: 740; letter-spacing: .04em; text-overflow: ellipsis; text-transform: uppercase; }
.housing-property-room-features dd { margin: 0; overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.housing-property-room-offers { display: grid; gap: 9px; min-width: 0; }
.housing-property-room-offers h4 { margin: 0; color: var(--muted); font-size: 11px; font-weight: 760; letter-spacing: .06em; text-transform: uppercase; }
.housing-property-offer-scroll { width: 100%; max-width: 100%; min-width: 0; margin: 0; }
.housing-property-offer-table { min-width: 620px; }
.housing-property-offer-scroll.is-compact { overflow: hidden; }
.housing-property-offer-table.is-compact { width: 100%; min-width: 0; table-layout: fixed; }
.housing-property-offer-table.is-compact th,
.housing-property-offer-table.is-compact td { overflow: hidden; padding-inline: 7px; text-overflow: ellipsis; white-space: nowrap; }
.housing-property-offer-table.is-compact th:first-child,
.housing-property-offer-table.is-compact tbody th { width: 42%; padding-left: 0; }
.housing-property-offer-table.is-compact th:nth-child(2),
.housing-property-offer-table.is-compact td:nth-child(2) { width: 36%; }
.housing-property-offer-table.is-compact th:last-child,
.housing-property-offer-table.is-compact td:last-child { width: 22%; padding-right: 0; }
.housing-property-room-evidence { border-top: 1px solid color-mix(in srgb, var(--text) 16%, transparent); padding-top: 8px; }
.housing-property-room-evidence summary { cursor: pointer; color: var(--muted); font-size: 11px; font-weight: 740; letter-spacing: .04em; }
.housing-property-room-evidence summary:hover,
.housing-property-room-evidence summary:focus-visible { color: var(--accent); }
.housing-property-room-evidence .housing-property-offer-scroll { margin-top: 10px; }
.housing-property-offer-table th,
.housing-property-offer-table td { vertical-align: top; }
.housing-property-offer-table tbody th { min-width: 130px; font-size: 12px; font-weight: 680; }
.housing-property-offer-table tbody td { font-size: 12px; }
.housing-property-offer-table a { color: var(--text); text-decoration: underline; text-decoration-color: var(--grid); text-underline-offset: 3px; }
.housing-property-offer-table a:hover { color: var(--accent); text-decoration-color: var(--accent); }
.housing-property-history { margin-top: clamp(48px, 7vw, 96px); padding-top: 27px; border-top: 1px solid var(--text); }
.housing-property-history .housing-property-offer-scroll { border-top: 1px solid var(--grid); }
.housing-property-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(28px, 6vw, 86px); margin-top: clamp(50px, 7vw, 94px); padding-top: 27px; border-top: 1px solid var(--text); }
.housing-property-columns .housing-property-section + .housing-property-section { padding-left: clamp(20px, 4vw, 50px); border-left: 1px solid var(--grid); }
.housing-property-facility-list,
.housing-property-school-list,
.housing-property-source-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--grid); }
.housing-property-facility-list li { display: flex; align-items: baseline; justify-content: space-between; gap: 15px; padding: 11px 0; border-bottom: 1px solid var(--grid); }
.housing-property-facility-list strong { font-size: 11px; font-weight: 650; }
.housing-property-facility-list span { color: var(--muted); font-size: 9px; text-align: right; }
.housing-property-school-list { display: grid; grid-template-columns: 1fr; gap: 0; }
.housing-property-school { display: grid; gap: 12px; padding: 17px 0 20px; border-bottom: 1px solid var(--grid); }
.housing-property-school h3 { margin: 3px 0 0; font-size: 17px; line-height: 1.2; }
.housing-property-school h3 a { color: var(--text); text-decoration: none; }
.housing-property-school h3 a:hover { color: var(--accent); }
.housing-property-school dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; }
.housing-property-school dl > div { min-width: 0; padding-right: 12px; }
.housing-property-school dl > div + div { padding-left: 12px; border-left: 1px solid var(--grid); }
.housing-property-school dt { overflow: hidden; color: var(--muted); font-size: 8px; font-weight: 740; letter-spacing: .04em; text-overflow: ellipsis; text-transform: uppercase; }
.housing-property-school dd { margin: 5px 0 0; overflow: hidden; font-size: 10px; line-height: 1.35; text-overflow: ellipsis; }
.housing-property-school footer a { color: var(--text); font-size: 9px; font-weight: 680; text-decoration: none; }
.housing-property-school footer a:hover { color: var(--accent); }
.housing-property-evidence { margin-top: clamp(50px, 7vw, 92px); }
.housing-property-evidence[open] { border-top: 1px solid var(--text); }
.housing-property-evidence > summary { padding-block: 16px; }
.housing-property-source-list li { padding: 15px 0 18px; border-bottom: 1px solid var(--grid); }
.housing-property-source-list li > a { display: grid; gap: 4px; color: var(--text); text-decoration: none; }
.housing-property-source-list li > a:hover { color: var(--accent); }
.housing-property-source-list li > a strong { font-size: 11px; }
.housing-property-source-list li > a span { overflow-wrap: anywhere; color: var(--muted); font-family: var(--font-mono); font-size: 8px; line-height: 1.45; }
.housing-property-source-list dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 13px 0 0; }
.housing-property-source-list dl > div { min-width: 0; }
.housing-property-source-list dt { color: var(--muted); font-size: 8px; font-weight: 740; letter-spacing: .04em; text-transform: uppercase; }
.housing-property-source-list dd { margin: 4px 0 0; overflow-wrap: anywhere; font-size: 9px; line-height: 1.35; }

@media (max-width: 900px) {
  .housing-property-hero { grid-template-columns: 1fr; gap: 34px; }
  .housing-property-identity { order: 0; }
  .housing-property-map { order: 1; }
}

@media (max-width: 700px) {
  .housing-property-page-header { align-items: start; }
  .housing-property-status-chip { align-self: start; margin-top: 14px; }
  .housing-property-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .housing-property-summary > div:nth-child(3) { border-left: 0; border-top: 1px solid var(--grid); }
  .housing-property-summary > div:nth-child(4) { border-top: 1px solid var(--grid); }
  .housing-property-room-grid,
  .housing-property-columns { grid-template-columns: 1fr; }
  .housing-property-room,
  .housing-property-room:nth-child(2n) { padding: 20px 0 25px; border-left: 0; }
  .housing-property-columns .housing-property-section + .housing-property-section { padding: 31px 0 0; border-top: 1px solid var(--grid); border-left: 0; }
  .housing-property-map-legend { grid-template-columns: 1fr; }
  .housing-property-school dl { grid-template-columns: 1fr; gap: 10px; }
  .housing-property-school dl > div,
  .housing-property-school dl > div + div { padding: 0; border-left: 0; }
  .housing-property-source-list dl { grid-template-columns: 1fr; gap: 10px; }
}

@media (max-width: 480px) {
  .housing-property-summary > div { min-height: 96px; padding-inline: 12px; }
  .housing-property-summary > div:first-child,
  .housing-property-summary > div:nth-child(3) { padding-left: 0; }
  .housing-property-summary strong { font-size: 31px; }
  .housing-property-room-features { grid-template-columns: 1fr; }
  .housing-property-room-features > div,
  .housing-property-room-features > div:nth-child(even) { padding-inline: 0; border-left: 0; }
  .housing-property-map-svg { height: 280px; }
}

/* Housing visual language: Lieflat Wire. Grey encodes context; orange marks one hero. */
.housing-lf-card {
  --lf-bg: color-mix(in srgb, var(--surface-strong) 98%, var(--text));
  --lf-text: var(--text);
  --lf-muted: var(--muted);
  --lf-grid: var(--grid);
  --lf-faint: var(--faint);
  --lf-hero: var(--hero);
  min-width: 0;
  border: 0;
  border-radius: 24px;
  background: var(--lf-bg);
  box-shadow: none;
}
.housing-lf-card figcaption { display: grid; gap: 7px; }
.housing-lf-card figcaption > strong,
.housing-lf-empty > strong { color: var(--lf-text); font-size: 18px; font-weight: 760; line-height: 1.18; }
.housing-lf-card figcaption > span:not(.housing-lf-badge),
.housing-lf-empty > p { margin: 0; color: var(--lf-muted); font-size: 9px; line-height: 1.5; }
.housing-lf-badge { width: fit-content; color: var(--lf-muted); font-family: var(--font-mono); font-size: 7px; font-weight: 760; letter-spacing: .14em; line-height: 1; text-transform: uppercase; }
.housing-lf-source { margin: 12px 0 0; color: var(--lf-muted); font-family: var(--font-mono); font-size: 7px; font-weight: 690; letter-spacing: .12em; line-height: 1.45; text-transform: uppercase; }
.housing-lf-empty { display: grid; min-height: 150px; align-content: center; gap: 8px; padding: 22px; }

.housing-room-prices { display: grid; gap: 8px; padding: 20px 20px 16px; }
.housing-lf-price-svg { display: block; width: 100%; height: auto; min-height: 164px; overflow: visible; }
.housing-lf-label { fill: var(--lf-muted); font-size: 8px; font-weight: 700; letter-spacing: .04em; }
.housing-lf-value { fill: var(--lf-text); stroke: none; font-size: 9px; font-weight: 800; }
.housing-lf-value.is-hero { fill: var(--lf-hero); }
.housing-lf-track { stroke: var(--lf-grid); stroke-width: .7; vector-effect: non-scaling-stroke; }
.housing-lf-tick { stroke: var(--lf-text); stroke-width: 1.1; opacity: .88; vector-effect: non-scaling-stroke; }
.housing-lf-tick.is-hero { stroke: var(--lf-hero); stroke-width: 1.45; }
.housing-lf-fifth { fill: var(--lf-faint); }

.housing-coordinate-frame { position: relative; margin-top: 15px; overflow: hidden; border-radius: 18px; background: color-mix(in srgb, var(--lf-bg) 88%, var(--lf-text)); }
.housing-coordinate-north { position: absolute; z-index: 1; top: 13px; right: 14px; padding: 4px 7px; border-radius: 999px; background: var(--lf-text); color: var(--lf-bg); font-family: var(--font-mono); font-size: 7px; font-weight: 800; letter-spacing: .09em; }
.housing-local-map.housing-lf-card { padding: clamp(18px, 2.6vw, 30px); }
.housing-local-map.housing-lf-card figcaption strong { color: var(--lf-text); font-family: var(--display-serif); font-size: clamp(27px, 3.6vw, 48px); font-weight: 540; letter-spacing: -.045em; line-height: 1; text-transform: none; }
.housing-local-map.housing-lf-card figcaption span:not(.housing-lf-badge) { max-width: 68ch; }
.housing-local-map.housing-lf-card > p:not(.housing-lf-source) { margin-top: 10px; }
.housing-map-link,
.housing-property-map-link { stroke: var(--lf-muted); stroke-width: .75; stroke-dasharray: 2 3; opacity: .82; vector-effect: non-scaling-stroke; }
.housing-map-grid,
.housing-property-map-grid { stroke: var(--lf-grid); stroke-width: .8; stroke-dasharray: 2 3; }
.housing-nearby-map .housing-map-place { fill: var(--lf-text); opacity: 1; stroke: var(--lf-bg); stroke-width: 1; }
.housing-nearby-map .housing-map-school,
.housing-nearby-map .housing-map-school-halo { stroke: var(--lf-hero); }
.housing-nearby-map .housing-map-school { fill: var(--lf-hero); }
.housing-map-key.is-school { background: var(--lf-hero); box-shadow: 0 0 0 1px var(--lf-hero); }

.housing-property-map.housing-lf-card { padding: clamp(18px, 2.6vw, 30px); }
.housing-property-map.housing-lf-card figcaption { padding: 0; }
.housing-property-map.housing-lf-card figcaption h2 { max-width: 17ch; color: var(--lf-text); }
.housing-property-map.housing-lf-card .housing-coordinate-frame {
  --lf-bg: #f0f0ee;
  --lf-text: #1f1e1c;
  --lf-muted: rgba(31, 30, 28, .6);
  --lf-grid: rgba(31, 30, 28, .16);
  --lf-faint: #c0bfb7;
  --lf-hero: #f5572f;
  background: #e5e4df;
}
.housing-property-map.housing-lf-card .housing-property-map-svg { margin: 0; border-radius: 18px; background: transparent; }
.housing-property-map .housing-map-tile { opacity: .72; filter: grayscale(1) contrast(.82) brightness(1.08); }
.housing-property-map .housing-property-map-marker { stroke: var(--lf-bg); }
.housing-property-map__badge { text-transform: none; }
.housing-property-map-marker.is-property { fill: var(--lf-text); }
.housing-property-map-marker.is-school { fill: var(--lf-hero); }
.housing-property-map-school-halo { stroke: var(--lf-hero); }
.housing-property-map-key,
.housing-property-map-key.is-property { background: #1f1e1c; box-shadow: 0 0 0 1px var(--lf-text); }
.housing-property-map-key.is-school { background: var(--lf-hero); box-shadow: 0 0 0 1px var(--lf-hero); }
.housing-property-map .housing-lf-source { font-family: var(--sans); font-size: 8px; letter-spacing: 0; line-height: 1.5; text-transform: none; }
.housing-property-map .housing-lf-source a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.housing-property-map .housing-lf-source a:hover,
.housing-property-map .housing-lf-source a:focus-visible { color: var(--lf-hero); }
.housing-property-preview-more { grid-column: 1 / -1; margin-top: 12px; border-top: 1px solid var(--grid); }
.housing-property-preview-more summary { cursor: pointer; padding: 12px 0 0; color: var(--text); font-size: 10px; font-weight: 720; }
.housing-property-preview-more summary:hover,
.housing-property-preview-more summary:focus-visible { color: var(--accent); }
.housing-property-preview-more > div { display: grid; margin-top: 12px; border-top: 1px solid var(--grid); border-left: 1px solid var(--grid); }

/* Institution housing dossier: identity first, source-backed map always in the hero. */
.housing-detail-hero {
  display: grid;
  grid-template-columns: minmax(300px, .82fr) minmax(460px, 1.18fr);
  gap: clamp(28px, 5vw, 78px);
  align-items: stretch;
  margin: clamp(22px, 2.8vw, 38px) 0 clamp(50px, 7vw, 94px);
  padding-top: 0;
  border-top: 0;
}
.housing-detail-hero__identity {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  padding-block: clamp(8px, 2vw, 24px);
}
.housing-detail-hero__identity h1 {
  max-width: 13ch;
  margin: clamp(14px, 2vw, 24px) 0 0;
  font-family: var(--display-serif);
  font-size: clamp(46px, 6.2vw, 88px);
  font-weight: 520;
  letter-spacing: -.055em;
  line-height: .92;
  text-wrap: balance;
}
.housing-detail-source-name,
.housing-detail-location {
  max-width: 52ch;
  margin: 16px 0 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.55;
}
.housing-detail-source-name + .housing-detail-location { margin-top: 5px; }
.housing-detail-hero__facts {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(var(--housing-hero-fact-count, 3), minmax(0, 1fr));
  margin: auto 0 0;
  padding: clamp(28px, 4vw, 52px) 0 0;
}
.housing-detail-hero__facts > div { min-width: 0; padding-right: 14px; }
.housing-detail-hero__facts > div + div { padding-left: 14px; border-left: 1px solid var(--grid); }
.housing-detail-hero__facts dt { color: var(--label); font-size: 8px; font-weight: 720; letter-spacing: .07em; text-transform: uppercase; }
.housing-detail-hero__facts dd { margin: 8px 0 0; font-family: var(--display-serif); font-size: clamp(28px, 3vw, 42px); line-height: 1; }
.housing-detail-hero__identity .product-actions { margin-top: clamp(24px, 3vw, 38px); }
.housing-detail-hero__map { min-width: 0; }
.housing-detail-hero__map:has(.housing-local-map.is-missing) { align-self: start; }
.housing-detail-hero__map .housing-local-map { height: 100%; margin: 0; }
.housing-detail-hero__map .housing-local-map.is-missing { height: auto; min-height: 0; align-content: start; padding: clamp(18px, 2.4vw, 28px); }
.housing-detail-hero__map .housing-local-map.is-missing strong { max-width: 24ch; font-family: var(--display-serif); font-size: clamp(25px, 3vw, 40px); font-weight: 540; letter-spacing: -.04em; line-height: 1; }
.housing-detail-hero__map .housing-local-map.is-missing p { max-width: 46ch; }
.housing-detail-hero__map .housing-local-map.housing-lf-card { display: grid; grid-template-rows: auto minmax(0, 1fr) auto auto; padding: clamp(18px, 2.4vw, 28px); }
.housing-detail-hero__map .housing-local-map.housing-lf-card figcaption strong { max-width: 19ch; font-size: clamp(25px, 2.7vw, 38px); }
.housing-detail-hero__map .housing-coordinate-frame { align-self: stretch; }
.housing-detail-hero__map .housing-nearby-map { height: clamp(300px, 31vw, 430px); }
.housing-detail-hero__map .housing-coordinate-frame {
  --lf-bg: #f0f0ee;
  --lf-text: #1f1e1c;
  --lf-muted: rgba(31, 30, 28, .6);
  --lf-grid: rgba(31, 30, 28, .16);
  --lf-faint: #c0bfb7;
  --lf-hero: #f5572f;
  background: #e5e4df;
}
.housing-detail-hero__map .housing-nearby-map { margin-top: 0; background: #e5e4df; }
.housing-detail-hero__map .housing-nearby-map .housing-map-paper { fill: #e5e4df; }
.housing-detail-hero__map .housing-map-tile { opacity: .72; filter: grayscale(1) contrast(.82) brightness(1.08); }
.housing-detail-hero__map .housing-nearby-map .housing-map-property { fill: #1f1e1c; stroke: #f0f0ee; stroke-width: 1.15; opacity: 1; vector-effect: non-scaling-stroke; }
.housing-map-school-marker { pointer-events: none; }
.housing-detail-hero__map .housing-nearby-map .housing-map-school { fill: #f5572f; stroke: #f0f0ee; stroke-width: 1.2; opacity: 1; vector-effect: non-scaling-stroke; }
.housing-map-point-link { cursor: pointer; outline: none; }
.housing-map-point-hit { fill: transparent; pointer-events: all; }
.housing-map-point-link .housing-map-property { transition: stroke-width var(--motion-fast) var(--ease-out); }
.housing-map-point-link:hover .housing-map-property,
.housing-map-point-link:focus-visible .housing-map-property { stroke: #f5572f; stroke-width: 2.4; }
.housing-map-active-property { fill: #1f1e1c; stroke: #f5572f; stroke-width: 2.4; pointer-events: none; vector-effect: non-scaling-stroke; }
.housing-map-active-property[hidden] { display: none; }
.housing-map-tooltip { position: absolute; z-index: 3; display: grid; width: min(260px, calc(100% - 20px)); gap: 3px; padding: 10px 12px; background: #1f1e1c; color: #f0f0ee; pointer-events: none; }
.housing-map-tooltip[hidden] { display: none; }
.housing-map-tooltip strong { overflow: hidden; font-size: 11px; font-weight: 760; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.housing-map-tooltip span { color: rgba(240, 240, 238, .72); font-size: 8px; line-height: 1.45; }
.housing-map-attribution { position: absolute; z-index: 2; right: 7px; bottom: 6px; padding: 3px 5px; background: rgba(240, 240, 238, .9); color: #1f1e1c; font-size: 7px; font-weight: 650; line-height: 1; text-decoration: none; }
.housing-map-attribution:hover,
.housing-map-attribution:focus-visible { color: #f5572f; }
.housing-detail-hero__map .housing-local-map-legend { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: 12px; }
.housing-detail-hero__map .housing-local-map-legend li { display: inline-grid; grid-template-columns: 10px auto; align-items: center; gap: 7px; }
.housing-detail-hero__map .housing-local-map-legend .housing-map-key { width: 6px; height: 6px; margin: 0; border: 0; background: var(--lf-text); box-shadow: none; }
.housing-detail-hero__map .housing-local-map-legend .housing-map-key.is-school { width: 10px; height: 10px; background: var(--lf-hero); }
.housing-detail-hero__map .housing-local-map-legend li strong { font-size: 8px; font-weight: 720; letter-spacing: .04em; text-transform: uppercase; }

.housing-detail-overview.housing-detail-price-workbench {
  --housing-panel-bg: color-mix(in srgb, var(--surface-strong) 98%, var(--text));
  --housing-panel-bg-alt: color-mix(in srgb, var(--surface) 92%, var(--text));
  --housing-panel-grid: color-mix(in srgb, var(--text) 18%, transparent);
  display: block;
  margin: 0;
  padding: clamp(34px, 5vw, 62px) 0 clamp(54px, 7vw, 92px);
  border-top: 1px solid var(--text);
}
.housing-detail-price-workbench > header { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr); gap: 28px; align-items: end; }
.housing-detail-price-workbench > header h2 { max-width: none; margin: 0; font-family: var(--display-serif); font-size: clamp(42px, 5.6vw, 72px); font-weight: 520; letter-spacing: -.055em; line-height: .94; }
.housing-detail-price-workbench > header > p { max-width: 52ch; margin: 0 0 4px; color: var(--muted); font-size: 13px; line-height: 1.65; }
.housing-detail-price-workbench .housing-detail-price-stack { grid-template-columns: 1fr; gap: clamp(18px, 2.4vw, 32px); margin-top: clamp(30px, 4vw, 50px); }
.housing-detail-price-workbench .housing-detail-price-panel { display: grid; grid-template-columns: minmax(230px, .36fr) minmax(0, .64fr); gap: clamp(24px, 4vw, 64px); min-width: 0; padding: clamp(26px, 3.4vw, 44px); border: 0; border-radius: 24px; background: var(--housing-panel-bg); color: var(--text); }
.housing-detail-price-workbench .housing-detail-price-panel.is-market { background: var(--housing-panel-bg-alt); }
.housing-detail-price-workbench .housing-detail-price-panel + .housing-detail-price-panel { padding-top: clamp(24px, 3vw, 36px); border-top: 0; }
.housing-detail-price-panel > header { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; }
.housing-detail-price-panel > header > div:first-child > p { max-width: 26ch; margin: 12px 0 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.housing-detail-price-workbench .housing-detail-price-panel h3 { max-width: 12ch; margin: 0; font-family: var(--display-serif); font-size: clamp(34px, 3.8vw, 52px); font-weight: 540; letter-spacing: -.045em; line-height: .98; }
.housing-layer-count { display: block; max-width: 24ch; margin-top: 10px; color: var(--muted); font-family: var(--sans); font-size: 11px; font-weight: 680; letter-spacing: .01em; line-height: 1.35; }
.housing-detail-price-panel > header > .housing-official-website-action { min-height: 48px; margin-top: auto; padding-inline: 20px; font-size: 15px; font-weight: 760; }
.housing-detail-price-panel > header > .housing-official-website-action:hover { border-color: var(--text); background: var(--text); color: var(--bg); }
.housing-detail-price-panel > header > .housing-official-website-action + .housing-price-headline { margin-top: 0; padding-top: 22px; }
.housing-price-headline { display: grid; justify-items: start; align-content: end; margin-top: auto; padding-top: 36px; }
.housing-price-headline span { color: var(--muted); font-size: 11px; font-weight: 700; }
.housing-price-headline strong { margin-top: 7px; color: var(--accent); font-family: var(--display-serif); font-size: clamp(27px, 3vw, 42px); font-weight: 560; letter-spacing: -.04em; line-height: .9; }
.housing-price-headline em { margin-top: 6px; color: var(--muted); font-size: 10px; font-style: normal; }
.housing-detail-price-workbench .housing-room-prices { height: auto; margin: 0; padding: 0 0 0 clamp(20px, 3vw, 44px); border-left: 1px solid var(--housing-panel-grid); border-radius: 0; background: transparent; }
.housing-detail-price-workbench .housing-lf-price-svg { min-height: 0; }
.housing-detail-price-workbench .housing-lf-label { font-size: 11px; font-weight: 720; }
.housing-detail-price-workbench .housing-lf-value { font-size: 13px; }
.housing-market-price-properties { grid-column: 1 / -1; padding-top: clamp(24px, 3vw, 38px); border-top: 1px solid var(--housing-panel-grid); }
.housing-market-price-properties > header { display: flex; justify-content: space-between; gap: 20px; align-items: baseline; }
.housing-market-price-properties h4 { margin: 0; font-size: 14px; font-weight: 760; }
.housing-market-price-properties > header a { color: var(--text); font-size: 12px; font-weight: 720; text-decoration: none; }
.housing-market-price-properties > header a:hover,
.housing-market-price-properties > header a:focus-visible { color: var(--accent); }
.housing-market-price-properties > header > span { color: var(--muted); font-size: 10px; font-weight: 680; }
.housing-market-price-properties > div { display: grid; margin-top: 16px; border-top: 1px solid var(--housing-panel-grid); border-left: 1px solid var(--housing-panel-grid); }
.housing-official-price-properties > div,
.housing-official-price-properties .housing-property-preview-more > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.housing-commercial-price-properties > div,
.housing-commercial-price-properties .housing-property-preview-more > div { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.housing-market-price-property { display: grid; min-width: 0; min-height: 122px; align-content: start; gap: 8px; padding: 15px 16px 14px; border-right: 1px solid var(--housing-panel-grid); border-bottom: 1px solid var(--housing-panel-grid); color: var(--text); text-decoration: none; transition: background-color var(--motion-fast) var(--ease-out), color var(--motion-fast) var(--ease-out); }
.housing-market-price-property__top { display: flex; min-width: 0; justify-content: space-between; gap: 14px; align-items: center; color: inherit; }
.housing-market-price-property__top strong { overflow: hidden; min-width: 0; font-size: 12px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.housing-market-price-property__top i { flex: 0 0 auto; font-style: normal; transition: transform var(--motion-fast) var(--ease-out); }
.housing-market-price-property .housing-market-price-property__address { overflow: hidden; color: var(--muted); font-size: 10px; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.housing-market-price-property__decision { display: flex; min-width: 0; justify-content: space-between; gap: 12px; align-items: baseline; margin-top: 2px; padding-top: 8px; border-top: 1px solid var(--housing-panel-grid); }
.housing-market-price-property__decision > span { overflow: hidden; min-width: 0; color: var(--muted); font-size: 9px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.housing-market-price-property__decision b { flex: 0 0 auto; color: var(--accent); font-size: 10px; line-height: 1.35; white-space: nowrap; }
.housing-market-price-property small { overflow: hidden; color: var(--muted); font-size: 9px; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.housing-market-price-property:hover,
.housing-market-price-property:focus-visible { background: var(--text); color: var(--surface); }
.housing-market-price-property:hover .housing-market-price-property__address,
.housing-market-price-property:hover .housing-market-price-property__decision > span,
.housing-market-price-property:hover small,
.housing-market-price-property:focus-visible .housing-market-price-property__address,
.housing-market-price-property:focus-visible .housing-market-price-property__decision > span,
.housing-market-price-property:focus-visible small { color: color-mix(in srgb, var(--surface) 72%, transparent); }
.housing-market-price-property:hover .housing-market-price-property__top i,
.housing-market-price-property:focus-visible .housing-market-price-property__top i { transform: translateX(4px); }

@media (max-width: 1040px) {
  .housing-detail-hero { grid-template-columns: minmax(260px, .72fr) minmax(380px, 1.28fr); gap: 28px; }
  .housing-detail-hero__identity h1 { font-size: clamp(42px, 6vw, 68px); }
  .housing-detail-price-workbench > header { grid-template-columns: 1fr; gap: 16px; }
  .housing-detail-price-workbench > header > p { max-width: 64ch; }
  .housing-market-price-properties > div,
  .housing-market-price-properties .housing-property-preview-more > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .housing-detail-hero { grid-template-columns: 1fr; margin-top: 10px; }
  .housing-detail-hero__identity { min-height: 0; padding-bottom: 0; }
  .housing-detail-hero__identity h1 { max-width: 15ch; font-size: clamp(40px, 12vw, 66px); }
  .housing-detail-hero__facts { margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--grid); }
  .housing-detail-hero__map .housing-nearby-map { height: clamp(280px, 72vw, 390px); }
  .housing-detail-price-workbench .housing-detail-price-stack { grid-template-columns: 1fr; gap: 34px; }
  .housing-detail-price-workbench .housing-detail-price-panel { grid-template-columns: 1fr; gap: 24px; }
  .housing-detail-price-workbench .housing-room-prices { padding: 24px 0 0; border-top: 1px solid var(--housing-panel-grid); border-left: 0; }
  .housing-detail-price-panel > header > .housing-official-website-action { margin-top: 24px; }
  .housing-price-headline { margin-top: 0; padding-top: 24px; }
  .housing-detail-price-workbench .housing-detail-price-panel + .housing-detail-price-panel { padding-top: clamp(24px, 3vw, 36px); border-top: 0; }
}

@media (max-width: 480px) {
  .housing-detail-breadcrumb > a { min-height: 42px; }
  .housing-detail-hero { gap: 24px; margin-bottom: 52px; }
  .housing-detail-hero__identity h1 { font-size: clamp(38px, 12vw, 54px); }
  .housing-detail-hero__facts dd { font-size: 27px; }
  .housing-detail-hero__map .housing-local-map.is-large { margin-inline: 0; }
  .housing-detail-hero__map .housing-nearby-map { height: 270px; }
  .housing-map-attribution { font-size: 6.5px; }
  .housing-detail-overview.housing-detail-price-workbench { padding-bottom: 48px; }
  .housing-detail-price-workbench > header h2 { font-size: 42px; }
  .housing-detail-price-workbench > header > p { font-size: 12px; }
  .housing-detail-price-workbench .housing-detail-price-panel { padding: 22px 18px; border-radius: 18px; }
  .housing-detail-price-panel > header { grid-template-columns: 1fr; }
  .housing-price-headline { justify-items: start; }
  .housing-market-price-properties > header { align-items: flex-start; }
  .housing-market-price-properties > div,
  .housing-market-price-properties .housing-property-preview-more > div { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .housing-map-point-link .housing-map-property { transition: none; }
  .housing-market-price-property,
  .housing-market-price-property__top i { transition: none; }
}

.housing-property-price-chart { display: grid; gap: 12px; margin-top: clamp(42px, 6vw, 82px); padding: clamp(20px, 3vw, 34px); }
.housing-property-price-chart figcaption h2 { max-width: 20ch; margin: 0; font-family: var(--display-serif); font-size: clamp(30px, 4vw, 52px); font-weight: 540; letter-spacing: -.045em; line-height: 1; }
.housing-property-price-chart figcaption p { max-width: 70ch; margin: 0; }
.housing-lf-rung-svg { display: block; width: 100%; height: auto; max-height: 390px; }
.housing-lf-rung { stroke: var(--lf-text); stroke-width: 1.15; opacity: .86; vector-effect: non-scaling-stroke; }
.housing-lf-rung.is-hero { stroke: var(--lf-hero); stroke-width: 1.55; }
.housing-lf-rung-floor { stroke: var(--lf-grid); stroke-width: .8; }
.housing-lf-rung-value { fill: var(--lf-text); stroke: none; font-size: 9px; font-weight: 800; }
.housing-lf-rung-value.is-hero { fill: var(--lf-hero); }
.housing-lf-rung-label { fill: var(--lf-muted); font-size: 7px; font-weight: 700; letter-spacing: .04em; }

.housing-property-room-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; border-top: 0; }
.housing-property-room,
.housing-property-room:nth-child(2n) { width: 100%; max-width: 100%; padding: 24px; border: 0; border-radius: 24px; background: color-mix(in srgb, var(--paper) 88%, var(--text)); }
.housing-property-room .housing-property-room-features { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.housing-property-room .housing-property-room-features { border-top-color: color-mix(in srgb, var(--text) 14%, transparent); }
.housing-property-room .housing-property-offer-scroll.is-compact { width: 100%; min-width: 0; overflow: hidden; }
.housing-property-room .housing-property-offer-table.is-compact th,
.housing-property-room .housing-property-offer-table.is-compact td { font-size: 13px; line-height: 1.45; }
.housing-property-room-evidence .housing-property-offer-scroll { width: 100%; min-width: 0; overflow: visible; }
.housing-property-room-evidence .housing-property-offer-table { display: block; width: 100%; min-width: 0; border-collapse: separate; }
.housing-property-room-evidence .housing-property-offer-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.housing-property-room-evidence .housing-property-offer-table tbody { display: grid; gap: 10px; }
.housing-property-room-evidence .housing-property-offer-table tr { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: hidden; border: 1px solid color-mix(in srgb, var(--text) 14%, transparent); border-radius: 14px; background: color-mix(in srgb, var(--paper) 94%, var(--text)); }
.housing-property-room-evidence .housing-property-offer-table th,
.housing-property-room-evidence .housing-property-offer-table td { display: grid; min-width: 0; min-height: 68px; align-content: start; gap: 7px; padding: 12px 14px !important; border: 0; border-left: 1px solid color-mix(in srgb, var(--text) 12%, transparent); border-top: 1px solid color-mix(in srgb, var(--text) 12%, transparent); overflow: visible; overflow-wrap: anywhere; font-size: 12px; line-height: 1.45; text-overflow: clip; white-space: normal; }
.housing-property-room-evidence .housing-property-offer-table th:nth-child(3n + 1),
.housing-property-room-evidence .housing-property-offer-table td:nth-child(3n + 1) { border-left: 0; }
.housing-property-room-evidence .housing-property-offer-table th:nth-child(-n + 3),
.housing-property-room-evidence .housing-property-offer-table td:nth-child(-n + 3) { border-top: 0; }
.housing-property-room-evidence .housing-property-offer-table th::before,
.housing-property-room-evidence .housing-property-offer-table td::before { content: attr(data-label); color: var(--muted); font-size: 9px; font-weight: 740; letter-spacing: .04em; line-height: 1.35; text-transform: uppercase; }
.housing-property-room-evidence .housing-property-offer-table tbody th { min-width: 0; font-weight: 680; }
.housing-property-room-evidence .housing-property-offer-table a { overflow-wrap: anywhere; }

@media (max-width: 900px) {
  .housing-property-room .housing-property-room-features { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
  .housing-lf-card { border-radius: 18px; }
  .housing-room-prices { padding: 17px 12px 13px; }
  .housing-lf-price-svg { min-height: 148px; }
  .housing-local-map.housing-lf-card,
  .housing-property-map.housing-lf-card,
  .housing-property-price-chart { padding: 17px; }
  .housing-coordinate-frame { border-radius: 13px; }
  .housing-property-room-grid { gap: 12px; }
  .housing-property-room,
  .housing-property-room:nth-child(2n) { padding: 18px; border-radius: 18px; }
  .housing-property-room-evidence .housing-property-offer-table tr { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .housing-property-room-evidence .housing-property-offer-table th,
  .housing-property-room-evidence .housing-property-offer-table td { min-height: 64px; border-top: 1px solid color-mix(in srgb, var(--text) 12%, transparent); border-left: 1px solid color-mix(in srgb, var(--text) 12%, transparent); }
  .housing-property-room-evidence .housing-property-offer-table th:nth-child(odd),
  .housing-property-room-evidence .housing-property-offer-table td:nth-child(odd) { border-left: 0; }
  .housing-property-room-evidence .housing-property-offer-table th:nth-child(-n + 2),
  .housing-property-room-evidence .housing-property-offer-table td:nth-child(-n + 2) { border-top: 0; }
  .housing-property-offer-scroll.is-compact { overflow: visible; }
  .housing-property-offer-table.is-compact { display: block; width: 100%; min-width: 0; border-collapse: separate; }
  .housing-property-offer-table.is-compact thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
  .housing-property-offer-table.is-compact tbody { display: grid; gap: 9px; }
  .housing-property-offer-table.is-compact tr { display: grid; gap: 0; padding: 9px 0; border-bottom: 1px solid var(--grid); }
  .housing-property-offer-table.is-compact th,
  .housing-property-offer-table.is-compact td { display: grid; grid-template-columns: minmax(82px, 34%) minmax(0, 1fr); gap: 8px; width: auto !important; min-width: 0; padding: 4px 0 !important; border: 0; overflow: visible; overflow-wrap: anywhere; text-overflow: clip; white-space: normal; }
  .housing-property-offer-table.is-compact th::before,
  .housing-property-offer-table.is-compact td::before { content: attr(data-label); color: var(--muted); font-size: 8px; font-weight: 740; letter-spacing: .04em; line-height: 1.35; text-transform: uppercase; }
  .housing-property-offer-table.is-compact th { font-weight: 680; }
  .housing-property-offer-table.is-compact a { overflow-wrap: anywhere; }
  .housing-property-preview-more > div { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  .housing-property-room-evidence .housing-property-offer-table tr { grid-template-columns: minmax(0, 1fr); }
  .housing-property-room-evidence .housing-property-offer-table th,
  .housing-property-room-evidence .housing-property-offer-table td { min-height: 0; border-left: 0; border-top: 1px solid color-mix(in srgb, var(--text) 12%, transparent); }
  .housing-property-room-evidence .housing-property-offer-table th:first-child,
  .housing-property-room-evidence .housing-property-offer-table td:first-child { border-top: 0; }
}

/* Housing directory rows: keep school identity and the elastic price matrix on one horizontal row until phone widths. */
.housing-directory-page .housing-school-grid {
  grid-template-columns: 1fr;
  border-bottom: 1px solid var(--grid);
}

.housing-directory-page #housing-directory-results:focus { outline: none; }

.housing-directory-page .housing-school-card.housing-directory-school-row {
  position: relative;
  display: grid;
  grid-template-columns: minmax(230px, .68fr) minmax(0, 2.1fr);
  gap: clamp(16px, 2vw, 32px);
  min-height: 0;
  padding: clamp(14px, 1.5vw, 20px) 0;
  border-right: 0;
  border-bottom: 1px solid var(--grid);
  transition: background-color var(--motion-fast) ease, box-shadow var(--motion-fast) ease;
}

.housing-directory-page .housing-school-card.housing-directory-school-row.has-no-accommodation-data {
  grid-template-columns: minmax(0, 1fr);
}

.housing-directory-page .housing-school-card.housing-directory-school-row:hover,
.housing-directory-page .housing-school-card.housing-directory-school-row:focus-within {
  background: var(--ranking-row-hover);
  box-shadow: inset 3px 0 0 color-mix(in srgb, var(--hero-text) 72%, transparent);
}

.housing-directory-page .housing-school-card__identity {
  display: grid;
  min-width: 0;
  align-content: center;
  gap: 5px;
  padding-left: clamp(12px, 1.3vw, 20px);
}

.housing-directory-page .housing-school-card__identity > .kicker {
  display: -webkit-box;
  overflow: hidden;
  max-width: 34ch;
  margin: 0;
  color: var(--label);
  font-size: var(--type-meta);
  letter-spacing: .09em;
  line-height: 1.4;
  white-space: normal;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.housing-directory-page .housing-directory-school-row h2 {
  max-width: 18ch;
  margin: 0;
  font-family: var(--display-serif);
  font-size: clamp(23px, 2vw, 31px);
  font-weight: 540;
  letter-spacing: -.035em;
  line-height: 1.04;
}

.housing-directory-page .housing-directory-school-row h2 a {
  color: var(--text);
  text-decoration: none;
  transition: color var(--motion-fast) ease, transform var(--motion-fast) var(--ease-out);
}

.housing-directory-page .housing-directory-school-row h2 a:hover,
.housing-directory-page .housing-directory-school-row h2 a:focus-visible { color: var(--hero-text); }

.housing-directory-page .housing-school-card__identity > p[lang="en"] {
  overflow: hidden;
  margin: 0;
  color: var(--label);
  font-size: 10px;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.housing-directory-page .housing-school-card__action {
  position: relative;
  display: inline-flex;
  width: fit-content;
  gap: 12px;
  align-items: center;
  justify-self: start;
  margin-top: 5px;
  color: var(--text);
  font-size: 11px;
  font-weight: 740;
  text-decoration: none;
  transition: color var(--motion-fast) var(--ease-out);
}

.housing-directory-page .housing-school-card__action span {
  position: relative;
}

.housing-directory-page .housing-school-card__action span::after {
  position: absolute;
  right: 0;
  bottom: -3px;
  left: 0;
  height: 1px;
  background: var(--hero-text);
  content: "";
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--motion-fast) var(--ease-out);
}

.housing-directory-page .housing-school-card__action i {
  font-style: normal;
  transition: transform var(--motion-fast) var(--ease-out);
}

.housing-directory-page .housing-school-card__action:hover,
.housing-directory-page .housing-school-card__action:focus-visible { color: var(--hero-text); }

.housing-directory-page .housing-school-card__action:hover span::after,
.housing-directory-page .housing-school-card__action:focus-visible span::after { transform: scaleX(1); }

.housing-directory-page .housing-school-card__action:hover i,
.housing-directory-page .housing-school-card__action:focus-visible i { transform: translateX(5px); }

.housing-directory-matrix { display: grid; min-width: 0; align-content: center; }
.housing-directory-layer {
  display: grid;
  grid-template-columns: minmax(112px, .42fr) minmax(0, 2.08fr);
  min-width: 0;
  height: 106px;
  border-top: 1px solid var(--grid);
}
.housing-directory-layer:last-child { border-bottom: 1px solid var(--grid); }
.housing-directory-layer > header {
  display: grid;
  min-width: 0;
  align-content: center;
  padding: 10px 13px;
  border-right: 1px solid var(--grid);
}
.housing-directory-layer > header strong { color: var(--text); font-size: 11px; font-weight: 760; line-height: 1.25; }
.housing-directory-layer[data-layer-state="pending"] { color: color-mix(in srgb, var(--text) 58%, transparent); }
.housing-directory-layer dl { display: grid; grid-template-columns: minmax(0, 1fr); min-width: 0; margin: 0; }
.housing-directory-layer[data-price-columns="2"] dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.housing-directory-layer[data-price-columns="3"] dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.housing-directory-layer[data-price-columns="4"] dl { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.housing-directory-layer dl > div {
  display: grid;
  min-width: 0;
  align-content: center;
  gap: 4px;
  min-height: 58px;
  padding: 9px clamp(10px, 1.2vw, 16px);
  border-right: 1px solid var(--grid);
  transition: background-color var(--motion-fast) ease, transform var(--motion-fast) var(--ease-out);
}
.housing-directory-layer dl > div:last-child { border-right: 0; }
.housing-directory-layer dt { display: grid; gap: 2px; color: var(--label); font-size: 8px; letter-spacing: .045em; }
.housing-directory-layer dt strong { color: inherit; font-size: 9px; font-weight: 760; }
.housing-directory-layer dt span { overflow: hidden; font-size: 7px; font-weight: 620; text-overflow: ellipsis; white-space: nowrap; }
.housing-directory-layer dd {
  overflow: hidden;
  margin: 0;
  font-family: var(--display-serif);
  font-size: clamp(17px, 1.45vw, 23px);
  font-variant-numeric: tabular-nums;
  font-weight: 620;
  letter-spacing: -.03em;
  line-height: 1;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.housing-directory-layer small { overflow: hidden; color: var(--label); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.housing-directory-layer-status {
  display: grid;
  min-width: 0;
  align-content: center;
  gap: 7px;
  padding: 14px clamp(14px, 1.8vw, 22px);
}
.housing-directory-layer-status strong {
  overflow: hidden;
  color: var(--text);
  font-size: 11px;
  font-weight: 720;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.housing-directory-layer-status span { color: var(--label); font-size: 9px; line-height: 1.4; }

@media (hover: hover) and (pointer: fine) {
  .housing-directory-page .housing-directory-school-row:hover .housing-directory-layer dl > div { transform: translateY(-1px); }
  .housing-directory-page .housing-directory-school-row:hover .housing-directory-layer dl > div:hover { background: color-mix(in srgb, var(--hero-text) 6%, transparent); }
}

@media (max-width: 720px) {
  .housing-directory-page .housing-school-card.housing-directory-school-row { grid-template-columns: 1fr; gap: 18px; padding-block: 24px; }
  .housing-directory-page .housing-school-card__identity { padding-right: 12px; }
  .housing-directory-page .housing-directory-school-row h2 { max-width: none; }
}

@media (max-width: 620px) {
  .housing-directory-page .housing-school-card.housing-directory-school-row { gap: 16px; padding-block: 22px; }
  .housing-directory-layer { grid-template-columns: 1fr; height: auto; min-height: 126px; }
  .housing-directory-layer > header { grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; padding: 10px 11px; border-right: 0; }
  .housing-directory-layer[data-price-columns="2"] dl,
  .housing-directory-layer[data-price-columns="3"] dl,
  .housing-directory-layer[data-price-columns="4"] dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .housing-directory-layer dl > div:nth-child(2n) { border-right: 0; }
  .housing-directory-layer dl > div:nth-child(n + 3) { border-top: 1px solid var(--grid); }
  .housing-directory-layer dl > div { min-height: 62px; padding: 10px; }
  .housing-directory-layer dd { font-size: clamp(18px, 6vw, 23px); }
  .housing-directory-layer-status { min-height: 74px; padding: 13px 11px; }
  .housing-directory-layer-status strong { white-space: normal; }
}

@media (prefers-reduced-motion: reduce) {
  .housing-directory-page .housing-directory-school-row,
  .housing-directory-page .housing-directory-school-row h2 a,
  .housing-directory-page .housing-school-card__action i,
  .housing-directory-layer dl > div { transition: none; transform: none; }
  .housing-directory-page .housing-school-card__action,
  .housing-directory-page .housing-school-card__action span::after { transition: none; }
}

/* Subject discovery landing page — matched to the institution ranking workbench. */
.subject-atlas-home {
  row-gap: 0;
}

.subject-atlas-hero {
  grid-template-columns: minmax(0, 1.45fr) minmax(250px, .55fr);
  gap: clamp(34px, 5vw, 76px);
  align-items: end;
  padding: 18px 0 clamp(34px, 4vw, 52px);
}

.subject-atlas-hero > div:first-child { max-width: 820px; }

.subject-atlas-hero .kicker {
  margin-bottom: 10px;
  color: var(--label);
  font-size: var(--type-label, 10px);
  letter-spacing: .13em;
}

.subject-atlas-hero h1 {
  display: grid;
  max-width: 16ch;
  gap: 3px;
  margin: 0 0 18px;
  font-size: clamp(46px, 4.7vw, 68px);
  letter-spacing: -.055em;
  line-height: .98;
}

.subject-atlas-hero h1 > span { display: block; }
.subject-atlas-hero h1 > span:first-child {
  color: var(--hero-text);
  font-size: .72em;
  letter-spacing: -.03em;
  line-height: 1;
}

.subject-atlas-hero > div:first-child > p:last-child {
  max-width: 58ch;
  color: var(--label);
  font-size: var(--type-body-sm, 13px);
  line-height: var(--leading-readable, 1.65);
}

.subject-atlas-hero__aside {
  min-width: 0;
  gap: 17px;
}

.subject-atlas-hero__aside nav {
  gap: 7px;
  border-top: 0;
}

.subject-atlas-hero__aside nav a {
  min-height: 54px;
  border: 0;
  border-radius: 10px;
  background: color-mix(in srgb, var(--surface-strong) 48%, transparent);
  padding: 0 14px;
  font-size: 12px;
  transition: background-color var(--motion-fast, 160ms) ease, color var(--motion-fast, 160ms) ease, transform var(--motion-fast, 160ms) var(--ease-out, ease-out);
}

.subject-atlas-hero__aside nav a:hover,
.subject-atlas-hero__aside nav a:focus-visible {
  background: color-mix(in srgb, var(--hero-text) 7%, transparent);
  text-decoration: none;
  transform: translateX(3px);
}

.subject-atlas-hero__aside > p {
  justify-self: end;
  justify-content: flex-end;
  padding-inline: 5px;
  font-size: var(--type-meta, 10px);
  text-align: right;
}

.subject-atlas-hero__aside > p span {
  color: var(--hero-text);
  letter-spacing: 0;
  text-transform: none;
}

.subject-atlas-hero__aside > p strong {
  color: var(--label);
  font-weight: 540;
}

.subject-atlas-tools {
  border-top: 0;
  border-bottom: 1px solid var(--grid);
  padding: 22px 0 24px;
}

.subject-atlas-tools .subject-search.subject-search--atlas {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  padding: 0;
}

.subject-atlas-tools .subject-search--atlas > .subject-atlas-filter-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(14px, 2vw, 24px);
}

.subject-atlas-filter-grid label,
.subject-atlas-query-row label {
  position: relative;
  display: grid;
  min-width: 0;
  gap: 8px;
  color: var(--label);
  font-size: var(--type-label, 10px);
  font-weight: 760;
  letter-spacing: .04em;
}

.subject-atlas-filter-grid label::after {
  position: absolute;
  right: 17px;
  bottom: 18px;
  width: 14px;
  height: 14px;
  background: url("/icons/phosphor-arrow-right.svg") center / contain no-repeat;
  content: "";
  opacity: .68;
  pointer-events: none;
  transform: translateY(50%) rotate(90deg);
}

.subject-atlas-filter-grid select,
.subject-atlas-query-row input {
  box-sizing: border-box;
  width: 100%;
  min-height: 50px;
  border: 1px solid color-mix(in srgb, var(--text) 20%, var(--grid));
  border-radius: 10px;
  outline: 0;
  background: color-mix(in srgb, var(--paper) 82%, transparent);
  padding: 0 16px;
  color: var(--text);
  font: inherit;
  font-size: var(--type-body-sm, 13px);
  font-weight: 620;
}

.subject-atlas-query-row input {
  background-image: url("/icons/phosphor-magnifying-glass.svg");
  background-position: 15px center;
  background-repeat: no-repeat;
  background-size: 18px 18px;
  padding-left: 46px;
}

.subject-atlas-filter-grid select {
  appearance: none;
  padding-right: 46px;
  cursor: pointer;
}

.subject-atlas-filter-grid select:hover,
.subject-atlas-query-row input:hover { border-color: color-mix(in srgb, var(--hero-text) 52%, var(--grid)); }

.subject-atlas-filter-grid select:focus-visible,
.subject-atlas-query-row input:focus-visible {
  border-color: var(--hero-text);
  outline: 2px solid var(--hero-text);
  outline-offset: 3px;
  box-shadow: none;
}

.subject-atlas-tools .subject-search--atlas > .subject-atlas-query-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(124px, 144px);
  gap: 16px;
  align-items: end;
}

.subject-atlas-query-row .primary-button {
  min-height: 50px;
  border-radius: 6px;
}

.subject-atlas-tools .subject-search--atlas > p {
  grid-column: 1;
  min-height: 15px;
  margin: 0;
  color: var(--label);
  font-size: var(--type-meta, 10px);
  font-weight: 540;
  line-height: 1.5;
}

.subject-catalogue-results--home {
  margin: 18px 0 8px;
}

.subject-atlas-start {
  border-bottom: 1px solid var(--grid);
  padding-top: 20px;
}

.subject-atlas-start > header h2 {
  margin: 0 0 12px;
  font-family: var(--ui-sans);
  font-size: 12px;
  font-weight: 720;
}

.subject-atlas-start > div {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.subject-atlas-start :is(a, button) {
  display: grid;
  min-width: 0;
  min-height: 92px;
  grid-template-columns: 34px minmax(0, 1fr) 18px;
  gap: 14px;
  align-items: center;
  border: 0;
  border-right: 1px solid var(--grid);
  background: transparent;
  padding: 15px clamp(14px, 2vw, 24px);
  color: var(--text);
  font: inherit;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  transition: background-color var(--motion-fast, 160ms) ease, transform var(--motion-fast, 160ms) var(--ease-out, ease-out);
}

.subject-atlas-start :is(a, button):first-child { padding-left: 0; }
.subject-atlas-start :is(a, button):last-child { border-right: 0; padding-right: 0; }
.subject-atlas-start :is(a, button):hover,
.subject-atlas-start :is(a, button):focus-visible { background: color-mix(in srgb, var(--hero-text) 5%, transparent); outline: 0; }
.subject-atlas-start :is(a, button):hover > .subject-atlas-start__arrow,
.subject-atlas-start :is(a, button):focus-visible > .subject-atlas-start__arrow { transform: translateX(3px); }

.subject-atlas-start__icon {
  width: 28px;
  height: 28px;
  opacity: .82;
}

.subject-atlas-start__copy { display: grid; gap: 5px; }
.subject-atlas-start :is(a, button) strong { font-size: 13px; }
.subject-atlas-start :is(a, button) small { color: var(--label); font-size: 10px; line-height: 1.45; }
.subject-atlas-start__arrow { width: 16px; height: 16px; transition: transform var(--motion-fast, 160ms) var(--ease-out, ease-out); }

.subject-aggregate-home {
  gap: 0;
  padding-top: 20px;
}

.subject-aggregate-home > header {
  display: block;
  border-bottom: 0;
  padding-bottom: 14px;
}

.subject-aggregate-home > header h2 {
  margin: 0 0 6px;
  font-size: clamp(20px, 2vw, 27px);
  letter-spacing: -.02em;
  line-height: 1.08;
}

.subject-aggregate-home > header p {
  max-width: 68ch;
  font-size: 11px;
}

.subject-aggregate-columns {
  display: grid;
  grid-template-columns: 52px minmax(220px, .9fr) minmax(300px, 1.25fr) minmax(190px, .72fr);
  border-bottom: 1px solid var(--grid);
  padding: 8px 0;
  color: var(--label);
  font-size: 9px;
  font-weight: 700;
}

.subject-aggregate-columns span:first-child { grid-column: 1 / 3; }
.subject-aggregate-card {
  min-height: 84px;
  grid-template-columns: 52px minmax(220px, .9fr) minmax(300px, 1.25fr) minmax(190px, .72fr);
  gap: 0;
  padding: 0;
}

.subject-aggregate-card__index {
  align-self: center;
  padding: 0;
  font-size: 22px;
}

.subject-aggregate-card > header {
  display: grid;
  align-self: stretch;
  align-content: center;
  gap: 6px;
  border-right: 1px solid var(--grid);
  padding: 13px 24px 13px 8px;
}

.subject-aggregate-card h3 {
  max-width: none;
  font-size: clamp(18px, 1.7vw, 23px);
  line-height: 1.05;
}

.subject-aggregate-card > header p {
  margin: 0;
  color: var(--label);
  font-size: 9px;
  line-height: 1.4;
}

.subject-aggregate-examples {
  align-self: stretch;
  border-left: 0;
  grid-template-columns: 1fr;
  padding: 0 clamp(18px, 2.3vw, 30px);
}

.subject-aggregate-examples ul { gap: 7px 10px; }
.subject-aggregate-examples li {
  border-radius: 7px;
  background: color-mix(in srgb, var(--surface-strong) 52%, transparent);
  padding: 8px 12px;
  font-size: 10px;
}
.subject-aggregate-examples li + li::before { content: none; }

.subject-aggregate-card > footer {
  align-self: stretch;
  border-left: 1px solid var(--grid);
  display: grid;
  align-content: center;
  padding: 0 0 0 clamp(18px, 2vw, 28px);
}

.subject-aggregate-card > footer strong {
  align-items: center;
  font-size: 10px;
}

@media (max-width: 980px) {
  .subject-atlas-hero { grid-template-columns: 1fr; align-items: start; }
  .subject-atlas-hero__aside { width: 100%; }
  .subject-atlas-hero__aside > p { justify-self: start; }
  .subject-atlas-start :is(a, button) { grid-template-columns: 30px minmax(0, 1fr); }
  .subject-atlas-start__arrow { display: none; }
  .subject-aggregate-columns { display: none; }
  .subject-aggregate-card { grid-template-columns: 44px minmax(180px, .8fr) minmax(0, 1.2fr); }
  .subject-aggregate-card > footer { grid-column: 3; border-left: 0; border-top: 1px solid var(--grid); padding: 10px 0 0 clamp(18px, 2.3vw, 30px); }
}

@media (max-width: 720px) {
  .subject-atlas-hero { padding: 24px 0 28px; }
  .subject-atlas-hero h1 { font-size: clamp(39px, 11vw, 54px); }
  .subject-atlas-hero__aside nav a { min-height: 50px; }
  .subject-atlas-tools .subject-search--atlas > .subject-atlas-filter-grid,
  .subject-atlas-tools .subject-search--atlas > .subject-atlas-query-row,
  .subject-atlas-start > div { grid-template-columns: 1fr; }
  .subject-atlas-query-row .primary-button { width: 100%; }
  .subject-atlas-start :is(a, button),
  .subject-atlas-start :is(a, button):first-child,
  .subject-atlas-start :is(a, button):last-child {
    min-height: 76px;
    grid-template-columns: 34px minmax(0, 1fr) 16px;
    border-right: 0;
    border-bottom: 1px solid var(--grid);
    padding: 13px 0;
  }
  .subject-atlas-start :is(a, button):last-child { border-bottom: 0; }
  .subject-atlas-start__arrow { display: block; }
  .subject-aggregate-card {
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 0 12px;
    padding: 17px 0;
  }
  .subject-aggregate-card__index { grid-column: 1; grid-row: 1 / span 3; align-self: start; }
  .subject-aggregate-card > header,
  .subject-aggregate-examples,
  .subject-aggregate-card > footer { grid-column: 2; }
  .subject-aggregate-card > header { border-right: 0; padding: 0 0 11px; }
  .subject-aggregate-examples { border-top: 1px solid var(--grid); padding: 11px 0; }
  .subject-aggregate-card > footer { border-top: 0; padding: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .subject-atlas-hero__aside nav a,
  .subject-atlas-start :is(a, button),
  .subject-atlas-start__arrow { transition: none; transform: none; }
}

/* Subject directory: reuse the School Top 500 workbench without changing subject data semantics. */
.subject-directory-ranking-page {
  gap: clamp(14px, 1.8vw, 22px);
}

.subject-directory-ranking-page .rating-ranking-hero h1 { max-width: none; }
.subject-directory-ranking-page .rating-ranking-hero h1 > span:last-child { white-space: nowrap; }
.subject-directory-ranking-page .rating-ranking-hero > div > p:last-child { max-width: 54ch; }
.subject-directory-ranking-page .rating-ranking-hero__aside { align-content: center; }
.subject-directory-ranking-page .rating-ranking-school-tools { z-index: 5; }
.subject-directory-ranking-page .subject-directory-filters { grid-template-columns: repeat(2, minmax(220px, 1fr)); }
.subject-directory-ranking-page .subject-directory-board { min-width: 0; scroll-margin-top: 88px; }
.subject-directory-ranking-page .subject-directory-table { width: 100%; min-width: 0; table-layout: fixed; }
.subject-directory-ranking-page .subject-directory-table thead th:first-child { width: 58px; }
.subject-directory-ranking-page .subject-directory-table thead th:nth-child(2) { width: 29%; }
.subject-directory-ranking-page .subject-directory-table thead th:nth-child(3) { width: auto; }
.subject-directory-ranking-page .rating-ranking-table.is-school.subject-directory-table tbody tr {
  grid-template-columns: 58px minmax(240px, .56fr) minmax(0, 1.44fr);
  grid-template-rows: minmax(70px, auto);
  gap: 0;
  align-items: stretch;
  padding-block: 0;
}
.subject-directory-ranking-page .rating-ranking-table.is-school.subject-directory-table tbody .rating-table-rank { grid-column: 1; grid-row: 1; align-self: center; }
.subject-directory-ranking-page .rating-ranking-table.is-school.subject-directory-table tbody th { grid-column: 2; grid-row: 1; align-self: center; }
.subject-directory-ranking-page .rating-ranking-table.is-school.subject-directory-table tbody td.subject-directory-examples { grid-column: 3; grid-row: 1; padding: 0; }
.subject-directory-ranking-page .rating-ranking-table.is-school.subject-directory-table tbody .rating-table-rank,
.subject-directory-ranking-page .rating-ranking-table.is-school.subject-directory-table tbody th { padding-block: 11px; }
.subject-directory-ranking-page .subject-directory-table tbody th { padding-right: clamp(18px, 2.5vw, 34px); }
.subject-directory-ranking-page .subject-directory-table tbody th a { width: 100%; }
.subject-directory-ranking-page .subject-directory-table .rating-institution-name-primary { font-size: 19px; }
.subject-directory-ranking-page .subject-directory-table .subject-directory-family-coverage {
  display: block;
  margin-top: 2px !important;
  color: var(--muted);
  font-family: var(--sans);
  font-size: 9px !important;
  font-weight: 650 !important;
  letter-spacing: .025em;
  line-height: 1.25 !important;
}

.subject-directory-ranking-page .subject-directory-examples {
  padding: 0;
  vertical-align: stretch;
}

.subject-directory-ranking-page .subject-directory-examples__grid {
  display: grid;
  min-height: 70px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: stretch;
}

.subject-directory-ranking-page .subject-directory-example {
  display: grid;
  min-width: 0;
  gap: 2px;
  align-content: center;
  border-left: 1px solid color-mix(in srgb, var(--grid) 72%, transparent);
  padding: 7px clamp(12px, 1.6vw, 20px);
  transition: background-color var(--motion-fast) ease;
}

.subject-directory-ranking-page .subject-directory-example:nth-child(n + 3) {
  border-top: 1px solid color-mix(in srgb, var(--grid) 72%, transparent);
}

.subject-directory-ranking-page .subject-directory-example span {
  color: var(--label);
  font-size: var(--type-meta);
  font-weight: 760;
  letter-spacing: .045em;
  line-height: 1.2;
}

.subject-directory-ranking-page .subject-directory-example strong {
  display: block;
  overflow: hidden;
  color: var(--text);
  font-size: 14px;
  font-weight: 760;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.subject-directory-ranking-page .subject-directory-example:hover {
  background: color-mix(in srgb, var(--hero-text) 8%, transparent);
}

@media (min-width: 701px) and (max-width: 1024px) {
  .subject-directory-ranking-page .subject-directory-table thead th:first-child { width: 50px; }
  .subject-directory-ranking-page .subject-directory-table thead th:nth-child(2) { width: 34%; }
  .subject-directory-ranking-page .rating-ranking-table.is-school.subject-directory-table tbody tr { grid-template-columns: 50px minmax(220px, .68fr) minmax(0, 1.32fr); }
  .subject-directory-ranking-page .subject-directory-example { padding-inline: 14px; }
}

@media (max-width: 700px) {
  .subject-directory-ranking-page .rating-ranking-hero h1 > span:last-child { white-space: normal; }
  .subject-directory-ranking-page[data-ranking-view="school"] .rating-ranking-school-tools .subject-directory-filters { grid-template-columns: 1fr; }
  .subject-directory-ranking-page .subject-directory-table { display: block; width: 100%; min-width: 0; }
  .subject-directory-ranking-page .rating-ranking-table.is-school.subject-directory-table tbody tr {
    grid-template-columns: 38px minmax(0, 1fr);
    grid-template-rows: auto auto;
    gap: 9px 10px;
    padding: 14px 4px 0;
  }
  .subject-directory-ranking-page .rating-ranking-table.is-school.subject-directory-table tbody .rating-table-rank { grid-column: 1; grid-row: 1 / span 2; padding-block: 0; }
  .subject-directory-ranking-page .rating-ranking-table.is-school.subject-directory-table tbody th { grid-column: 2; grid-row: 1; padding-block: 0; }
  .subject-directory-ranking-page .rating-ranking-table.is-school.subject-directory-table tbody td.subject-directory-examples {
    display: block;
    min-width: 0;
    grid-column: 2;
    grid-row: 2;
    border-left: 0;
    padding: 0;
  }
  .subject-directory-ranking-page .subject-directory-examples__grid {
    min-height: 0;
    border-top: 1px solid color-mix(in srgb, var(--grid) 65%, transparent);
  }
  .subject-directory-ranking-page .subject-directory-example { min-height: 54px; padding: 8px 10px; }
  .subject-directory-ranking-page .subject-directory-example:nth-child(odd) { border-left: 0; }
  .subject-directory-ranking-page .subject-directory-example strong { font-size: 13px; white-space: normal; }
  .subject-directory-ranking-page .subject-directory-table .rating-institution-name-primary { overflow: visible; font-size: 18px; text-overflow: clip; white-space: normal; }
}

@media (prefers-reduced-motion: reduce) {
  .subject-directory-ranking-page .subject-directory-example,
  .subject-directory-ranking-page .subject-directory-example strong { transition: none; transform: none; }
}

/* City map: share the editorial School page header and interaction language. */
.global-map-page {
  width: 100%;
  min-width: 0;
  gap: clamp(16px, 2vw, 26px);
}

.global-map-page .global-map-hero {
  grid-template-columns: minmax(0, 1.45fr) minmax(250px, .55fr);
  gap: clamp(28px, 4.6vw, 72px);
  align-items: end;
  padding-top: clamp(8px, 1.4vw, 18px);
  padding-bottom: clamp(18px, 2.4vw, 28px);
  border-bottom: 0;
}

.global-map-page .global-map-hero-copy h1 {
  display: grid;
  max-width: 18ch;
  margin: 0 0 14px;
  font-size: var(--type-display-xl);
  line-height: var(--leading-display);
  white-space: normal;
  overflow-wrap: anywhere;
}

.global-map-page .global-map-hero-copy > p:last-child {
  max-width: 70ch;
  margin: 0;
  color: var(--label);
  font-size: var(--type-body-sm);
  line-height: var(--leading-readable);
}

.global-map-page .global-country-search {
  position: relative;
  z-index: 14;
  width: 100%;
  max-width: none;
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  gap: 10px;
  align-items: center;
}

.global-map-page .global-country-search > label {
  margin: 0;
  padding: 0;
  color: var(--label);
  font-size: var(--type-label);
  letter-spacing: .1em;
}

.global-map-page .global-country-search-field input {
  min-height: 40px;
  border: 1px solid color-mix(in srgb, var(--text) 18%, var(--grid));
  border-radius: 9px;
  background: color-mix(in srgb, var(--surface-strong) 42%, transparent);
  padding: 7px 40px 7px 12px;
  font-size: 13px;
  transition: border-color var(--motion-fast) ease, background-color var(--motion-fast) ease, box-shadow var(--motion-fast) ease;
}

.global-map-page .global-country-search-field input:hover {
  border-color: color-mix(in srgb, var(--text) 34%, var(--grid));
  background: color-mix(in srgb, var(--surface-strong) 66%, transparent);
}

.global-map-page .global-country-search-field input:focus {
  border-color: color-mix(in srgb, var(--hero-text) 62%, var(--grid));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--hero-text) 10%, transparent);
}

.global-map-page .global-country-search-clear {
  top: -2px;
  right: 0;
}

.global-map-page .global-country-search-list {
  top: calc(100% + 9px);
  border-radius: 12px;
}

.global-map-page .global-country-map-panel {
  margin-top: clamp(8px, 1vw, 14px);
}

.global-map-page .product-map figcaption.world-map-toolbar {
  grid-template-columns: minmax(220px, 1fr) 320px;
  grid-template-areas:
    "title search"
    "subtitle .";
  align-items: start;
  gap: 6px 24px;
  padding-bottom: 9px;
}

.global-map-page .map-toolbar-country-search {
  grid-area: 1 / 2 / 3 / 3;
  justify-self: end;
  align-self: end;
  width: 320px;
}

.global-map-page .product-map figcaption.world-map-toolbar > .world-map-threshold {
  grid-area: subtitle;
  grid-column: auto;
  grid-row: auto;
  align-self: start;
  width: 100%;
}

.global-map-page .world-map-legend {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content 270px;
  align-items: center;
  gap: 6px clamp(16px, 2vw, 26px);
  margin-top: 3px;
}

.global-map-page .world-map-legend section {
  align-items: flex-start;
}

.global-map-page .world-map-legend section:nth-child(2),
.global-map-page .world-map-legend section:nth-child(2) > div {
  flex-wrap: nowrap;
  white-space: nowrap;
}

.global-map-page .world-map-zoom-legend {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  justify-self: end;
  width: 270px;
  gap: 6px;
}

.global-map-page .world-map-legend .world-map-zoom-legend-control {
  width: auto;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 6px;
}

.global-map-page .world-map-zoom-legend .world-map-zoom-status {
  display: flex;
  grid-area: auto;
  align-items: center;
  gap: 4px;
}

.global-map-page .world-map-zoom-legend .world-map-zoom-status output,
.global-map-page .world-map-zoom-legend .world-map-zoom-status span,
.global-map-page .world-map-zoom-legend > h2 {
  min-width: 0;
  font-size: 9px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
  text-transform: none;
  white-space: nowrap;
}

.global-map-page .world-map-zoom-legend .world-map-zoom-status output {
  text-align: left;
}

.global-map-page .world-map-zoom-legend .world-map-zoom-range {
  display: flex;
  grid-area: auto;
  width: 88px;
  min-width: 0;
}

.global-map-page .world-map-zoom-legend .world-map-zoom-range input {
  width: 88px;
  height: 24px;
}

.global-map-page .map-drag-hint { margin-top: 5px; }

.global-map-page .map-school-row {
  transition: background-color var(--motion-fast) ease;
}

.global-map-page .map-school-row:hover,
.global-map-page .map-school-row:focus-within {
  background: color-mix(in srgb, var(--hero-text) 4.5%, transparent);
}

.global-map-page .map-school-row-identity h3 {
  transition: color var(--motion-fast) ease, transform var(--motion-base) var(--ease-out);
}

.global-map-page .map-school-row:hover .map-school-row-identity h3,
.global-map-page .map-school-row:focus-within .map-school-row-identity h3 {
  color: var(--hero-text);
  transform: translateX(3px);
}

@media (min-width: 701px) and (max-width: 1024px) {
  .global-map-page .global-map-hero {
    grid-template-columns: minmax(0, 1.35fr) minmax(240px, .65fr);
    gap: 34px;
  }
  .global-map-page .global-map-hero-copy h1 {
    max-width: 15ch;
    font-size: clamp(42px, 5.8vw, 56px);
  }
  .global-map-page .product-map figcaption.world-map-toolbar {
    grid-template-columns: minmax(190px, 1fr) 300px;
    gap: 6px 18px;
  }
  .global-map-page .global-country-search {
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 9px;
  }
  .global-map-page .world-map-legend {
    grid-template-columns: minmax(0, 1fr) max-content 240px;
  }
  .global-map-page .map-toolbar-country-search { width: 300px; }
  .global-map-page .world-map-zoom-legend { width: 240px; }
  .global-map-page .world-map-zoom-legend .world-map-zoom-range,
  .global-map-page .world-map-zoom-legend .world-map-zoom-range input { width: 74px; }
}

@media (max-width: 700px) {
  .global-map-page .global-map-hero {
    grid-template-columns: 1fr;
    gap: 22px;
  }
  .global-map-page .global-map-hero-copy h1 {
    max-width: none;
    padding-bottom: 10px;
    font-size: clamp(38px, 11vw, 52px);
  }
  .global-map-page .product-map figcaption.world-map-toolbar {
    grid-template-columns: 1fr;
    grid-template-areas:
      "title"
      "search"
      "subtitle";
    gap: 12px;
    padding-block: 8px 14px;
  }
  .global-map-page .global-country-search {
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 9px;
  }
  .global-map-page .map-toolbar-country-search {
    grid-area: search;
    justify-self: stretch;
    align-self: start;
    width: 100%;
  }
  .global-map-page .global-country-search > label { padding-bottom: 0; }
  .global-map-page .global-country-search-field input { min-height: 40px; }
  .global-map-page .global-country-search-clear { top: -2px; }
  .global-map-page .world-map-legend {
    grid-template-columns: 1fr;
    gap: 9px;
  }
  .global-map-page .world-map-legend section,
  .global-map-page .world-map-zoom-legend {
    grid-column: auto;
  }
  .global-map-page .world-map-zoom-legend {
    justify-self: end;
    width: 248px;
  }
  .global-map-page .world-map-zoom-legend .world-map-zoom-range,
  .global-map-page .world-map-zoom-legend .world-map-zoom-range input { width: 78px; }
}

@media (prefers-reduced-motion: reduce) {
  .global-map-page .map-school-row,
  .global-map-page .map-school-row-identity h3,
  .global-map-page .global-country-search-field input { transition: none; }
  .global-map-page .map-school-row:hover .map-school-row-identity h3,
  .global-map-page .map-school-row:focus-within .map-school-row-identity h3 { transform: none; }
}

/* Subject profiles inherit the editorial rhythm and evidence-table grammar of the school ranking. */
.subject-level-page {
  gap: clamp(34px, 4.5vw, 62px);
}

.subject-level-hero {
  min-height: clamp(248px, 30vw, 340px);
  grid-template-columns: minmax(0, 1fr) minmax(190px, .28fr);
  align-items: end;
  gap: clamp(28px, 6vw, 94px);
  border-bottom: 1px solid var(--grid);
  padding: clamp(30px, 4vw, 48px) 0 clamp(28px, 3vw, 38px);
}

.subject-level-hero > div {
  display: grid;
  align-content: end;
}

.subject-level-hero h1 {
  max-width: 13ch;
  margin: 9px 0 16px;
  font-size: clamp(50px, 6.5vw, 88px);
  font-weight: 600;
  letter-spacing: -.055em;
  line-height: .92;
}

.subject-level-hero > div > p:last-child {
  max-width: 62ch;
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.7;
}

.subject-level-hero__code {
  min-height: 164px;
  display: grid;
  grid-template-rows: auto 1fr auto;
  align-content: end;
  border-left: 1px solid var(--grid);
  padding-left: clamp(22px, 3vw, 38px);
}

.subject-level-hero__code > span,
.subject-level-hero__code > small {
  color: var(--muted);
  font-size: 9px;
  font-weight: 760;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.subject-level-hero__code > strong {
  align-self: center;
  color: var(--hero-text);
  font-family: var(--display-serif);
  font-size: clamp(70px, 9vw, 122px);
  font-weight: 600;
  letter-spacing: -.07em;
  line-height: .82;
}

.subject-profile-nav {
  box-shadow: 0 1px 0 color-mix(in srgb, var(--grid) 80%, transparent);
}

.subject-direction-brief {
  align-items: start;
  padding: 32px 0;
}

.subject-direction-actions {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.subject-direction-actions article {
  min-height: 300px;
  grid-template-rows: auto auto 1fr auto;
  transition: background-color .2s ease, color .2s ease;
}

.subject-direction-actions article:hover,
.subject-direction-actions article:focus-within {
  background: color-mix(in srgb, var(--text) 4%, transparent);
}

.subject-direction-action-index {
  color: var(--hero-text);
  font-family: var(--display-serif);
  font-size: 22px;
  font-weight: 700;
}

.subject-direction-actions h2 {
  max-width: 15ch;
  font-size: clamp(24px, 2.35vw, 34px);
  line-height: 1.08;
}

.subject-research-page .subject-level-hero h1,
.subject-school-ranking-page .subject-level-hero h1 {
  max-width: 10ch;
}

.subject-research-status {
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
}

.subject-research-status article {
  min-height: 330px;
  grid-template-rows: auto auto 1fr auto;
  align-content: stretch;
}

.subject-research-status article[data-state="available"] {
  box-shadow: inset 3px 0 0 var(--hero-text);
}

.subject-research-status article[data-state="missing"] {
  background: color-mix(in srgb, var(--grid) 12%, transparent);
}

.subject-research-status h2 {
  max-width: 18ch;
  font-size: clamp(30px, 3.5vw, 48px);
  line-height: 1.02;
}

.research-evidence-chain {
  grid-template-columns: minmax(280px, .72fr) minmax(0, 1.28fr);
  border-block: 1px solid var(--grid);
  padding: clamp(28px, 4vw, 46px) 0;
}

.research-evidence-chain article h2 {
  margin: 8px 0 18px;
  font-size: clamp(30px, 3.5vw, 48px);
  line-height: 1.05;
}

.research-evidence-chain li {
  min-height: 66px;
  grid-template-columns: 54px minmax(0, 1fr) auto;
  padding: 13px 6px;
}

.research-evidence-chain li span {
  font-size: 24px;
}

.research-signal-grid > header h2 {
  font-family: var(--display-serif);
  font-size: clamp(34px, 4vw, 54px);
  font-weight: 600;
}

.research-signal-grid article {
  min-height: 170px;
  transition: background-color .2s ease;
}

.research-signal-grid article:hover {
  background: color-mix(in srgb, var(--text) 4%, transparent);
}

.subject-ranking-policy-entry {
  border: 0;
  border-block: 1px solid var(--grid);
  background: transparent;
  padding: 16px 2px;
}

.subject-ranking-live {
  grid-template-columns: 1fr;
  gap: 24px;
  border-top: 0;
  padding-top: 0;
}

.subject-ranking-live > header {
  display: grid;
  grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr);
  gap: clamp(30px, 6vw, 88px);
  align-items: end;
  border-bottom: 1px solid var(--grid);
  padding-bottom: 24px;
}

.subject-ranking-live > header .kicker {
  grid-column: 1 / -1;
}

.subject-ranking-live > header h2 {
  max-width: 13ch;
  margin: 0;
  font-size: clamp(38px, 4.8vw, 66px);
  line-height: .96;
}

.subject-ranking-live > header > p:not(.kicker) {
  grid-column: 2;
  margin: 0;
}

.subject-ranking-live > form {
  grid-template-columns: minmax(260px, 1fr) minmax(0, 2fr) auto;
  align-items: end;
  gap: 10px 12px;
  border-bottom: 1px solid var(--grid);
  padding: 0 0 22px;
}

.subject-ranking-live > form label {
  grid-column: 1;
  align-self: center;
  margin: 0;
}

.subject-ranking-live > form select {
  grid-column: 2;
}

.subject-ranking-live > form button {
  grid-column: 3;
  min-height: 50px;
}

.subject-ranking-live > #subject-ranking-output {
  min-width: 0;
}

.subject-ranking-summary {
  justify-content: space-between;
  padding: 4px 0 16px;
}

.subject-ranking-run-ledger {
  margin: 0 0 18px;
  border: 1px solid var(--grid);
  padding: 0;
}

.subject-ranking-run-ledger > summary {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  cursor: pointer;
  padding: 15px 17px;
  font-size: 11px;
  font-weight: 740;
}

.subject-ranking-run-ledger > summary::marker { color: var(--hero-text); }
.subject-ranking-run-ledger > summary strong { color: var(--hero-text); }
.subject-ranking-run-ledger > div { border-top: 1px solid var(--grid); padding: 4px 17px 17px; }
.subject-ranking-run-ledger > div > dl { margin: 0; }
.subject-ranking-run-ledger > div > dl > div { border-bottom: 1px solid var(--grid); display: grid; grid-template-columns: minmax(130px, .35fr) minmax(0, 1fr); gap: 18px; padding: 11px 0; }
.subject-ranking-run-ledger > div dt { color: var(--muted); font-size: 10px; }
.subject-ranking-run-ledger > div dd { margin: 0; overflow-wrap: anywhere; font-size: 11px; }
.subject-ranking-run-ledger section h4 { margin: 18px 0 8px; font-size: 11px; }
.subject-ranking-run-ledger section ul { margin: 0; padding: 0; list-style: none; }
.subject-ranking-run-ledger section li { border-top: 1px solid var(--grid); display: flex; justify-content: space-between; padding: 9px 0; font-size: 10px; }

.subject-ranking-table-head,
.subject-ranking-list > li {
  display: grid;
  grid-template-columns: 70px minmax(230px, 1.15fr) 120px minmax(300px, 1fr);
  gap: 18px;
}

.subject-ranking-table-head {
  border-block: 1px solid var(--grid);
  padding: 11px 4px;
  color: var(--muted);
  font-size: 8px;
  font-weight: 760;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.subject-ranking-list > li {
  align-items: stretch;
  padding: 22px 4px;
}

.subject-ranking-position span {
  font-size: 38px;
  font-weight: 600;
}

.subject-ranking-provider h3 {
  font-family: var(--display-serif);
  font-size: clamp(19px, 2vw, 27px);
  font-weight: 600;
  line-height: 1.05;
}

.subject-ranking-provider p { font-size: 10px; }
.subject-ranking-community { margin-top: 5px; }

.subject-ranking-score {
  display: grid;
  align-content: start;
  gap: 7px;
  border-inline: 1px solid var(--grid);
  padding: 0 18px;
}

.subject-ranking-score strong {
  font-family: var(--display-serif);
  font-size: 36px;
  font-weight: 600;
  line-height: 1;
}

.subject-ranking-score i {
  width: 100%;
  height: 2px;
  background: linear-gradient(to right, var(--hero-text) var(--score-pct), var(--grid) var(--score-pct));
}

.subject-ranking-score small {
  color: var(--muted);
  font-size: 8px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.subject-ranking-metrics {
  align-items: stretch;
  gap: 0;
}

.subject-ranking-metrics > div {
  display: grid;
  align-content: start;
  gap: 8px;
  border-right: 1px solid var(--grid);
  padding: 0 13px;
}

.subject-ranking-metrics > div:last-child { border-right: 0; }
.subject-ranking-metrics dt { min-height: 32px; font-size: 9px; }
.subject-ranking-metrics dd { margin: 0; font-family: var(--display-serif); font-size: 20px; font-weight: 600; }

.publisher-ranking-grid > article {
  min-height: 350px;
  transition: background-color .2s ease;
}

.publisher-ranking-grid > article:hover {
  background: color-mix(in srgb, var(--text) 4%, transparent);
}

@media (max-width: 1040px) {
  .subject-direction-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .subject-ranking-table-head { display: none; }
  .subject-ranking-list > li { grid-template-columns: 64px minmax(220px, 1fr) 110px; }
  .subject-ranking-metrics { grid-column: 2 / -1; border-top: 1px solid var(--grid); padding-top: 14px; }
}

@media (max-width: 780px) {
  .subject-level-hero { min-height: 0; grid-template-columns: 1fr; gap: 28px; padding-top: 38px; }
  .subject-level-hero__code { min-height: 0; grid-template-columns: auto 1fr auto; grid-template-rows: auto; align-items: end; gap: 12px; border-left: 0; border-top: 1px solid var(--grid); padding: 16px 0 0; }
  .subject-level-hero__code > strong { font-size: 54px; }
  .subject-research-status,
  .subject-ranking-live > header { grid-template-columns: 1fr; }
  .subject-ranking-live > header > p:not(.kicker) { grid-column: 1; }
  .subject-ranking-live > form { grid-template-columns: 1fr; }
  .subject-ranking-live > form label,
  .subject-ranking-live > form select,
  .subject-ranking-live > form button { grid-column: 1; }
  .subject-ranking-list > li { grid-template-columns: 52px minmax(0, 1fr); }
  .subject-ranking-score { border-inline: 0; border-top: 1px solid var(--grid); padding: 14px 0 0; }
  .subject-ranking-metrics { grid-column: 1 / -1; }
  .research-evidence-chain { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .subject-direction-actions { grid-template-columns: 1fr; }
  .subject-ranking-metrics { grid-template-columns: 1fr; }
  .subject-ranking-metrics > div { border-right: 0; border-bottom: 1px solid var(--grid); padding: 12px 0; }
  .subject-ranking-metrics dt { min-height: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .subject-direction-actions article,
  .research-signal-grid article,
  .publisher-ranking-grid > article { transition: none; }
}

/* Loading system: route transitions are branded; module skeletons reuse production layout classes one-for-one. */
.route-loading-transition {
  min-height: min(680px, calc(100vh - 156px));
  display: grid;
  place-items: center;
  background: transparent;
}

.route-loading-wave {
  width: 192px;
  aspect-ratio: 1;
  position: relative;
}

.route-loading-wave__bar {
  position: absolute;
  inset: 0;
  display: block;
  transform-origin: center center;
  transform-box: border-box;
  animation: degree-route-loading-wave .9s ease-in-out infinite alternate;
  will-change: transform, opacity;
}

.route-loading-wave__bar:nth-child(1) { animation-delay: -.4s; }
.route-loading-wave__bar:nth-child(2) { animation-delay: -.3s; }
.route-loading-wave__bar:nth-child(3) { animation-delay: -.2s; }
.route-loading-wave__bar:nth-child(4) { animation-delay: -.1s; }
.route-loading-wave__bar:nth-child(5) { animation-delay: 0s; }

[data-loading-motion="gsap"] .route-loading-wave__bar { animation: none; }

@keyframes degree-route-loading-wave {
  from { transform: scaleY(.56); opacity: .82; }
  to { transform: scaleY(1.28); opacity: 1; }
}

.route-loading-wave__bar > img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
}

html[data-theme="dark"] .route-loading-wave__bar > img {
  filter: invert(1) hue-rotate(180deg);
}

.route-loading-wave__bar--1 { clip-path: inset(41.8% 79.2% 42.8% 16%); }
.route-loading-wave__bar--2 { clip-path: inset(40.4% 63.8% 42.8% 30.8%); }
.route-loading-wave__bar--3 { clip-path: inset(35% 48.1% 38.9% 46.5%); }
.route-loading-wave__bar--4 { clip-path: inset(40.4% 32.8% 42.8% 61.8%); }
.route-loading-wave__bar--5 { clip-path: inset(41.8% 18.2% 42.8% 77.2%); }

.exact-loading-status {
  width: 1px;
  height: 1px;
  position: absolute;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

[data-exact-skeleton] {
  pointer-events: none !important;
  user-select: none;
  animation: degree-exact-skeleton-breathe 1.05s ease-in-out infinite alternate;
}

[data-exact-skeleton] :where(a, button, input, select, textarea, summary) { pointer-events: none !important; }
[data-exact-skeleton] :where(th, td, h1, h2, h3, h4, p, span, strong, small, a, button, dt, dd) { color: transparent !important; text-shadow: none !important; }

.exact-skeleton-copy,
.exact-skeleton-copy-target {
  position: relative;
  color: transparent !important;
  text-shadow: none !important;
}

.exact-skeleton-copy::after,
.exact-skeleton-copy-target::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: max(5px, .58em);
  border-radius: 2px;
  background: color-mix(in srgb, var(--text) 10%, var(--paper));
  transform: translateY(-50%);
}

[data-exact-skeleton] .result-radio {
  border-color: color-mix(in srgb, var(--text) 14%, var(--paper));
  background: color-mix(in srgb, var(--text) 7%, var(--paper));
}

[data-exact-skeleton] .rating-table-score i,
[data-exact-skeleton] .rating-table-score i::after { background: color-mix(in srgb, var(--text) 9%, var(--paper)); }

.exact-skeleton-chart__plot {
  min-height: clamp(260px, 34vw, 430px);
  display: flex;
  align-items: end;
  gap: clamp(10px, 2vw, 26px);
  margin-top: 24px;
  padding: 26px clamp(18px, 3vw, 42px) 0;
  border-left: 1px solid var(--grid);
  border-bottom: 1px solid var(--grid);
}

.exact-skeleton-chart__plot > i {
  height: var(--skeleton-height);
  flex: 1 1 0;
  min-width: 9px;
  background: color-mix(in srgb, var(--hero) 24%, var(--paper));
}

.has-structure-loading { position: relative !important; isolation: isolate; }

.exact-module-loading-overlay {
  position: absolute;
  inset: 0;
  z-index: 8;
  overflow: hidden;
  background: var(--paper);
}

.exact-module-clone {
  width: 100%;
  min-height: 100%;
  margin: 0 !important;
  pointer-events: none !important;
  user-select: none;
}

.exact-module-clone :where(a, button, input, select, textarea, summary) { pointer-events: none !important; }
.exact-module-clone :where(img, svg, canvas) { opacity: .08 !important; }
.exact-module-clone :where(th, td, h1, h2, h3, h4, p, span, strong, small, a, button, label, dt, dd) { color: transparent !important; text-shadow: none !important; }

.exact-module-clone .exact-skeleton-copy-target::after {
  background: color-mix(in srgb, var(--text) 10%, var(--paper));
}

@keyframes degree-exact-skeleton-breathe {
  from { opacity: .68; }
  to { opacity: 1; }
}

@media (max-width: 700px) {
  .product-route-loading { min-height: calc(100vh - 118px); }
  .route-loading-transition { min-height: calc(100vh - 124px); }
  .route-loading-wave { width: 160px; }
  .exact-skeleton-chart__plot { min-height: 240px; }
}

@media (prefers-reduced-motion: reduce) {
  .route-loading-wave__bar {
    animation: none;
    transform: scaleY(1);
    opacity: 1;
    will-change: auto;
  }
  [data-exact-skeleton] { animation: none; opacity: .82; }
}

/* Unified decision surfaces 2026-08 — ranking and rating pages are the visual source of truth. */
.product-route-view {
  --decision-control-height: 50px;
  --decision-control-radius: 10px;
  --decision-control-fill: color-mix(in srgb, var(--paper) 82%, transparent);
  --decision-row-hover: color-mix(in srgb, var(--hero-text) 4.5%, transparent);
}

html,
body {
  max-width: 100%;
  overflow-x: clip;
}

@supports not (overflow: clip) {
  html,
  body { overflow-x: hidden; }
}

#product-route-content,
:where(
  .home-page,
  .subject-directory-ranking-page,
  .subject-level-page,
  .global-institution-directory,
  .institution-profile-page,
  .global-map-page,
  .housing-directory-page,
  .career-directory-page,
  .career-occupation-detail,
  .major-career-page,
  .student-rating-page,
  .rating-ranking-page,
  .ranking-policy-page
) {
  min-width: 0;
  max-width: 100%;
}

/* A wide evidence chart may scroll inside its frame, but it must not widen the
   subject profile grid or make the surrounding hero/actions disappear on
   narrow screens. */
.subject-level-page > * {
  min-width: 0;
  max-width: 100%;
}
.subject-level-page > .subject-profile-nav,
.subject-level-page > .subject-career-panel {
  min-width: 0;
  max-width: 100%;
}

/* Route loading owns its canvas, so the brand mark never sits on top of live filters. */
.product-route-loading:not([hidden]),
.product-route-loading:not([hidden]) .route-loading-transition {
  background: var(--paper);
}

.product-route-loading:not([hidden]) {
  isolation: isolate;
  pointer-events: none;
}

/* One control grammar for directories, labour evidence, careers and housing. */
:where(
  .product-search,
  .global-directory-filters,
  .housing-directory-filters,
  .major-career-filters,
  .career-filter-workbench form
) :where(label, .institution-ranking-filter) {
  min-width: 0;
}

:where(
  .product-search,
  .global-directory-filters,
  .housing-directory-filters,
  .major-career-filters,
  .career-filter-workbench form
) label > span {
  color: var(--label);
  font-size: var(--type-label);
  font-weight: 760;
  letter-spacing: .055em;
}

:where(
  .product-search,
  .global-directory-filters,
  .housing-directory-filters,
  .major-career-filters,
  .career-filter-workbench form
) :where(input, select),
.global-directory-filters .institution-ranking-dropdown summary {
  width: 100%;
  min-width: 0;
  min-height: var(--decision-control-height);
  border: 1px solid color-mix(in srgb, var(--text) 20%, var(--grid));
  border-radius: var(--decision-control-radius);
  background: var(--decision-control-fill);
  color: var(--text);
  padding-inline: 16px;
  font: inherit;
  font-size: var(--type-body-sm);
  transition: border-color var(--motion-fast) ease, background-color var(--motion-fast) ease, box-shadow var(--motion-fast) ease;
}

:where(
  .product-search,
  .global-directory-filters,
  .housing-directory-filters,
  .major-career-filters,
  .career-filter-workbench form
) :where(input, select):hover,
.global-directory-filters .institution-ranking-dropdown summary:hover {
  border-color: color-mix(in srgb, var(--hero-text) 62%, var(--grid));
}

:where(
  .product-search,
  .global-directory-filters,
  .housing-directory-filters,
  .major-career-filters,
  .career-filter-workbench form
) :where(input, select):focus-visible,
.global-directory-filters .institution-ranking-dropdown summary:focus-visible {
  border-color: var(--hero-text);
  box-shadow: none;
  outline: 2px solid var(--hero-text);
  outline-offset: 3px;
}

:where(select, option) { color-scheme: light dark; }
option { background: var(--ink); color: var(--paper); }

:where(.primary-button, .secondary-button, .product-button-link, .add-course-button) {
  min-height: 48px;
  border-radius: var(--decision-control-radius);
  transition: border-color var(--motion-fast) ease, background-color var(--motion-fast) ease, color var(--motion-fast) ease, transform var(--motion-fast) var(--ease-out);
}

:where(.primary-button, .secondary-button, .product-button-link, .add-course-button):disabled {
  cursor: not-allowed;
  opacity: .58;
}

:where(.primary-button, .secondary-button, .product-button-link, .add-course-button):focus-visible {
  outline: 2px solid var(--hero-text);
  outline-offset: 3px;
}

/* Keep wide evidence inside a local scroll frame instead of widening the document. */
:where(
  .rating-ranking-table-frame,
  .global-directory-table-frame,
  .career-occupation-table-frame,
  .career-demand-table-frame,
  .ds-table-scroll,
  .city-cost-table-wrap,
  .housing-chart-scroll,
  .career-chart-scroll,
  .job-market-chart-scroll
) {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
}

:where(
  .rating-ranking-table-frame,
  .global-directory-table-frame,
  .career-occupation-table-frame,
  .career-demand-table-frame,
  .ds-table-scroll,
  .city-cost-table-wrap,
  .housing-chart-scroll,
  .career-chart-scroll,
  .job-market-chart-scroll
):focus-visible {
  outline: 2px solid var(--hero-text);
  outline-offset: 3px;
}

/* Careers now uses the same paper, rule and board hierarchy as the approved rankings. */
.career-filter-workbench {
  border: 0;
  border-block: 1px solid var(--grid);
  border-radius: 0;
  background: transparent;
  padding: 18px 0;
}

.career-occupation-table-frame {
  border-inline: 0;
  border-radius: 0;
  background: transparent;
}

.career-occupation-table tbody tr:hover,
.career-occupation-table tbody tr:focus-within {
  background: var(--decision-row-hover);
}

.career-opportunity-method {
  border-block: 1px solid var(--grid);
  border-radius: 0;
  background: transparent;
  color: var(--text);
  padding: clamp(26px, 3.4vw, 44px) 0;
}

.career-opportunity-method > p,
.career-multifactor-readiness > p span,
.career-multifactor-readiness > small {
  color: var(--muted);
}

.career-opportunity-method dl > div,
.career-multifactor-readiness {
  border-color: var(--grid);
}

.career-opportunity-method dt { color: var(--label); }

:where(
  .career-multifactor-detail,
  .career-detail-facts,
  .career-detail-grid .product-chart,
  .career-detail-support > section,
  .career-opportunity-breakdown,
  .career-opportunity-breakdown > div > div,
  .career-preparation-panel .tag-list span,
  .career-global-context
) {
  border-radius: 0;
  background: transparent;
}

.career-global-context {
  border-block: 1px solid var(--grid);
  padding-inline: 0;
}

.career-detail-support > section,
.career-opportunity-breakdown {
  border-block: 1px solid var(--grid);
  padding-inline: 0;
}

/* Rank columns stay compact while preserving tabular alignment. */
.rating-ranking-table.is-school thead th:first-child { width: 56px; }
.rating-ranking-table.is-student-experience thead th:first-child { width: 72px; }

.rating-ranking-table :where(th, td).rating-table-rank {
  min-width: 0;
  overflow: hidden;
  font-variant-numeric: tabular-nums;
  text-overflow: clip;
  white-space: nowrap;
}

/* Empty and failure states keep the same editorial hierarchy as a ranking board. */
:where(
  .route-empty,
  .rating-data-empty,
  .rating-ranking-empty,
  .career-directory-empty,
  .global-country-search-empty,
  .housing-lf-empty,
  .map-school-results-error
) {
  min-width: 0;
  min-height: 156px;
  display: grid;
  align-content: center;
  gap: 10px;
  border: 0;
  border-block: 1px solid var(--grid);
  border-radius: 0;
  background: transparent;
  padding: clamp(26px, 4vw, 48px) 0;
}

.product-empty {
  margin: 0;
  color: var(--muted);
  font-size: var(--type-body-sm);
  line-height: var(--leading-readable);
}

:where(.global-directory-board, .rating-ranking-board, .career-directory-results, .housing-school-directory) > .product-empty {
  min-height: 150px;
  display: grid;
  align-content: center;
  border-block: 1px solid var(--grid);
  padding: 28px 0;
}

.route-error {
  width: min(100%, 980px);
  min-width: 0;
}

.route-error .product-page-header { grid-template-columns: minmax(0, 1fr); }

@media (min-width: 701px) and (max-width: 1024px) {
  .rating-school-ranking-page:not(.student-rating-page) .rating-ranking-table.is-school tbody tr {
    grid-template-columns: 68px minmax(200px, 1.65fr) 72px repeat(4, minmax(64px, .55fr));
  }

  .rating-ranking-table.is-student-experience tbody tr {
    grid-template-columns: 62px repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .rating-school-ranking-page:not(.student-rating-page)[data-ranking-view="school"] .rating-ranking-school-tools .institution-ranking-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .rating-ranking-page .rating-ranking-school-tools,
  .rating-ranking-page .institution-ranking-filters,
  .rating-ranking-page .institution-ranking-filter,
  .rating-ranking-page .institution-ranking-dropdown,
  .rating-ranking-page .institution-ranking-dropdown summary,
  .rating-ranking-page .institution-ranking-filters__auto {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  .career-filter-workbench { padding-block: 14px; }
  .career-opportunity-method { padding-block: 24px; }

  .rating-school-ranking-page:not(.student-rating-page) .rating-ranking-table.is-school tbody tr {
    grid-template-columns: 70px minmax(0, 1fr) auto;
  }

  .career-occupation-table-frame {
    overflow: visible;
    border-block: 0;
  }

  :where(.route-empty, .rating-data-empty, .rating-ranking-empty, .career-directory-empty, .global-country-search-empty, .housing-lf-empty, .map-school-results-error) {
    min-height: 132px;
    padding-block: 24px;
  }
}

@media (max-width: 370px) {
  .rating-school-rating-page .rating-ranking-table.is-school tbody tr {
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 10px 12px;
  }

  .rating-school-rating-page .rating-ranking-table.is-school tbody .rating-table-rank {
    grid-column: 1;
    grid-row: 1 / 7;
    padding-top: 2px;
  }

  .rating-school-rating-page .rating-ranking-table.is-school tbody th {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
  }

  .rating-school-rating-page .rating-ranking-table.is-school tbody .rating-table-score {
    display: grid;
    grid-column: 2;
    grid-row: 2;
    grid-template-columns: auto auto minmax(48px, 1fr);
    gap: 8px;
    align-items: center;
    min-width: 0;
    border-top: 1px solid color-mix(in srgb, var(--grid) 65%, transparent);
    padding-top: 10px;
    text-align: left;
  }

  .rating-school-rating-page .rating-ranking-table.is-school tbody .rating-table-score .rating-school-overall-label {
    display: block;
    color: var(--label);
    font-size: 10px;
    font-weight: 720;
  }

  .rating-school-rating-page .rating-ranking-table.is-school tbody .rating-table-score strong { font-size: 25px; }
  .rating-school-rating-page .rating-ranking-table.is-school tbody .rating-table-score progress {
    width: 100%;
    margin: 0;
  }

  .rating-school-rating-page .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(n + 4) { grid-column: 2; }
  .rating-school-rating-page .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(4) { grid-row: 3; }
  .rating-school-rating-page .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(5) { grid-row: 4; }
  .rating-school-rating-page .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(6) { grid-row: 5; }
  .rating-school-rating-page .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(7) { grid-row: 6; }
}

@media (prefers-reduced-motion: reduce) {
  :where(.primary-button, .secondary-button, .product-button-link, .add-course-button),
  :where(.product-search, .global-directory-filters, .housing-directory-filters, .major-career-filters, .career-filter-workbench form) :where(input, select),
  .career-occupation-table tbody tr { transition: none; }
}

/* Global university ranking: point ranks and readable score geometry at every width. */
@media (min-width: 821px) and (max-width: 1024px) {
  .rating-school-ranking-page:not(.student-rating-page)[data-ranking-view="school"] .rating-ranking-table.is-school tbody tr {
    grid-template-columns: 52px minmax(180px, 1.55fr) 82px repeat(4, minmax(64px, .58fr));
    grid-template-rows: minmax(86px, auto);
    gap: 8px;
    align-items: stretch;
    padding: 14px 8px;
  }

  .rating-school-ranking-page:not(.student-rating-page)[data-ranking-view="school"] .rating-ranking-table.is-school tbody .rating-table-rank,
  .rating-school-ranking-page:not(.student-rating-page)[data-ranking-view="school"] .rating-ranking-table.is-school tbody th,
  .rating-school-ranking-page:not(.student-rating-page)[data-ranking-view="school"] .rating-ranking-table.is-school tbody .rating-table-score,
  .rating-school-ranking-page:not(.student-rating-page)[data-ranking-view="school"] .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(n + 4) {
    grid-row: 1;
  }

  .rating-school-ranking-page:not(.student-rating-page)[data-ranking-view="school"] .rating-ranking-table.is-school tbody .rating-table-rank { grid-column: 1; }
  .rating-school-ranking-page:not(.student-rating-page)[data-ranking-view="school"] .rating-ranking-table.is-school tbody th { grid-column: 2; }
  .rating-school-ranking-page:not(.student-rating-page)[data-ranking-view="school"] .rating-ranking-table.is-school tbody .rating-table-score { grid-column: 3; }
  .rating-school-ranking-page:not(.student-rating-page)[data-ranking-view="school"] .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(4) { grid-column: 4; }
  .rating-school-ranking-page:not(.student-rating-page)[data-ranking-view="school"] .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(5) { grid-column: 5; }
  .rating-school-ranking-page:not(.student-rating-page)[data-ranking-view="school"] .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(6) { grid-column: 6; }
  .rating-school-ranking-page:not(.student-rating-page)[data-ranking-view="school"] .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(7) { grid-column: 7; }
}

@media (min-width: 701px) and (max-width: 820px) {
  .rating-school-ranking-page:not(.student-rating-page)[data-ranking-view="school"] .rating-ranking-table.is-school tbody tr {
    grid-template-columns: 52px minmax(180px, 1.35fr) 82px repeat(2, minmax(96px, .75fr));
    grid-template-rows: repeat(2, minmax(54px, auto));
    gap: 8px;
    align-items: stretch;
    padding: 14px 8px;
  }

  .rating-school-ranking-page:not(.student-rating-page)[data-ranking-view="school"] .rating-ranking-table.is-school tbody .rating-table-rank { grid-column: 1; grid-row: 1 / 3; }
  .rating-school-ranking-page:not(.student-rating-page)[data-ranking-view="school"] .rating-ranking-table.is-school tbody th { grid-column: 2; grid-row: 1 / 3; }
  .rating-school-ranking-page:not(.student-rating-page)[data-ranking-view="school"] .rating-ranking-table.is-school tbody .rating-table-score { grid-column: 3; grid-row: 1 / 3; }
  .rating-school-ranking-page:not(.student-rating-page)[data-ranking-view="school"] .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(4) { grid-column: 4; grid-row: 1; }
  .rating-school-ranking-page:not(.student-rating-page)[data-ranking-view="school"] .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(5) { grid-column: 5; grid-row: 1; }
  .rating-school-ranking-page:not(.student-rating-page)[data-ranking-view="school"] .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(6) { grid-column: 4; grid-row: 2; }
  .rating-school-ranking-page:not(.student-rating-page)[data-ranking-view="school"] .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(7) { grid-column: 5; grid-row: 2; }
}

@media (min-width: 701px) and (max-width: 1024px) {
  .rating-school-ranking-page:not(.student-rating-page)[data-ranking-view="school"] .rating-ranking-table.is-school tbody .rating-table-score {
    min-width: 0;
    min-height: 0;
    overflow: visible;
    box-sizing: border-box;
    align-content: center;
    justify-items: start;
    border: 0;
    border-radius: 0;
    background: transparent;
    padding: 8px;
    text-align: left;
  }

  .rating-school-ranking-page:not(.student-rating-page)[data-ranking-view="school"] .rating-ranking-table.is-school tbody .rating-table-score strong {
    max-width: 100%;
    font-size: 26px;
  }

  .rating-school-ranking-page:not(.student-rating-page)[data-ranking-view="school"] .rating-ranking-table.is-school tbody .rating-table-score i {
    width: min(64px, 100%);
    margin: 6px 0 0;
  }

  .rating-school-ranking-page:not(.student-rating-page)[data-ranking-view="school"] .rating-ranking-table.is-school tbody td.rating-school-metric:nth-child(n + 4) {
    display: grid;
    min-width: 0;
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
    align-content: center;
    gap: 5px;
    border: 0;
    border-left: 1px solid color-mix(in srgb, var(--text) 13%, var(--grid));
    background: transparent;
    padding: 8px;
    text-align: left;
  }

  .rating-school-ranking-page:not(.student-rating-page)[data-ranking-view="school"] .rating-school-overall-label,
  .rating-school-ranking-page:not(.student-rating-page)[data-ranking-view="school"] .rating-school-metric-label {
    display: block;
    min-height: 2.4em;
    overflow: visible;
    color: var(--label);
    font-size: var(--type-label);
    font-weight: 720;
    line-height: 1.2;
    text-overflow: clip;
    white-space: normal;
  }

  .rating-school-ranking-page:not(.student-rating-page)[data-ranking-view="school"] .rating-school-overall-label { min-height: 0; }
  .rating-school-ranking-page:not(.student-rating-page)[data-ranking-view="school"] .rating-school-metric > progress { width: 100%; }
}

@media (max-width: 700px) {
  .rating-school-ranking-page:not(.student-rating-page)[data-ranking-view="school"] .rating-ranking-table.is-school tbody tr {
    grid-template-columns: 42px minmax(0, 1fr) auto;
  }
}

/* Ranking-system alignment for career, rating-entry and graduate-outcome directories. */
.rating-school-ranking-page .rating-ranking-hero__aside nav a img {
  width: 16px;
  height: 16px;
  margin-left: auto;
  filter: var(--hero-aside-icon-filter);
  transition: filter var(--motion-fast) ease, transform var(--motion-fast) var(--ease-out);
}

.rating-school-ranking-page .rating-ranking-hero__aside nav a:hover img,
.rating-school-ranking-page .rating-ranking-hero__aside nav a:focus-visible img {
  filter: var(--hero-aside-icon-accent-filter);
  transform: translateX(3px);
}

/* Detailed occupation directory: filters, model definition and ranked rows share one cadence. */
.career-directory-page { gap: clamp(24px, 3vw, 38px); }
.career-directory-page .career-hub-hero h1 > span:last-child { max-width: none; }
.career-directory-page .career-hub-hero > div > p:last-child { max-width: 70ch; }
.career-filter-workbench {
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 8px 0 10px;
}
.career-filter-workbench form {
  grid-template-columns: minmax(0, 1.35fr) minmax(170px, .56fr) minmax(210px, .68fr) minmax(128px, auto);
  grid-template-areas: "search sort family submit";
  gap: 12px;
}
.career-filter-workbench .primary-button { width: auto; min-width: 128px; }

.career-opportunity-method.career-model-board {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  border-block: 1px solid var(--grid);
  border-radius: 0;
  background: transparent;
  color: var(--text);
  padding: 0;
}
.career-model-board > header {
  display: grid;
  grid-template-columns: minmax(260px, .8fr) minmax(0, 1.2fr);
  gap: clamp(24px, 5vw, 76px);
  align-items: end;
  padding: 24px 0;
}
.career-model-board > header h2 {
  margin: 7px 0 0;
  font-family: var(--display-serif);
  font-size: clamp(30px, 3.4vw, 46px);
  font-weight: 580;
  letter-spacing: -.04em;
  line-height: 1;
}
.career-model-board > header > p {
  max-width: 74ch;
  margin: 0;
  color: var(--label);
  font-size: var(--type-body-sm);
  line-height: var(--leading-readable);
}
.career-model-board > dl {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
  border-block: 1px solid color-mix(in srgb, var(--grid) 76%, transparent);
}
.career-model-board > dl > div {
  min-height: 98px;
  display: grid;
  align-content: center;
  gap: 8px;
  border-left: 1px solid var(--grid);
  padding: 18px clamp(14px, 2vw, 24px);
}
.career-model-board > dl > div:first-child { border-left: 0; }
.career-model-board > dl dt { color: var(--label); font-size: var(--type-label); font-weight: 760; line-height: 1.3; }
.career-model-board > dl dd { margin: 0; color: var(--text); font-family: var(--display-serif); font-size: clamp(28px, 3vw, 40px); line-height: .9; }
.career-model-context {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--grid);
}
.career-model-context article { display: grid; gap: 7px; padding: 18px clamp(14px, 2vw, 24px); }
.career-model-context article + article { border-left: 1px solid var(--grid); }
.career-model-context .kicker { margin: 0; }
.career-model-context strong { color: var(--text); font-size: 15px; line-height: 1.35; }
.career-model-context span { max-width: 70ch; color: var(--label); font-size: 13px; line-height: 1.55; }
.career-model-board .career-multifactor-readiness {
  grid-column: auto;
  display: grid;
  grid-template-columns: minmax(220px, .72fr) minmax(280px, .82fr) minmax(0, 1.46fr);
  gap: clamp(20px, 4vw, 56px);
  align-items: start;
  border-top: 0;
  background: color-mix(in srgb, var(--surface-strong) 44%, transparent);
  padding: 22px clamp(16px, 2vw, 24px);
}
.career-model-board .career-multifactor-readiness h3 { margin: 5px 0 0; color: var(--text); font-size: clamp(22px, 2.2vw, 30px); }
.career-model-board .career-multifactor-readiness > p { gap: 6px; }
.career-model-board .career-multifactor-readiness > p strong { color: var(--text); font-size: var(--type-body-sm); line-height: 1.4; }
.career-model-board .career-multifactor-readiness > p span,
.career-model-board .career-multifactor-readiness > small { color: var(--label); font-size: var(--type-meta); line-height: 1.6; }

.career-directory-results { gap: 16px; }
.career-directory-results > header > p { display: grid; gap: 6px; margin: 0; }
.career-directory-results > header > p strong { color: var(--text); font-size: var(--type-body-sm); }
.career-directory-results > header > p span { color: var(--label); font-size: var(--type-meta); line-height: 1.55; }
.career-occupation-table-frame { border: 0; border-radius: 0; border-top: 1px solid var(--grid); }
.career-occupation-table thead th { background: color-mix(in srgb, var(--surface-strong) 54%, transparent); }
.career-occupation-table th,
.career-occupation-table td { padding-block: 17px; }
.career-occupation-table .career-occupation-link { display: grid; }
.career-occupation-table .career-occupation-link__primary,
.career-occupation-table .career-occupation-link__secondary { display: block; }
.career-occupation-link__primary { font-family: var(--display-serif); font-size: 19px; font-weight: 600; }
.career-occupation-table .career-occupation-link__secondary { font-size: 14px !important; line-height: 1.45; }
.career-occupation-table .career-occupation-link__meta :where(em, span) { font-size: 13px !important; }

/* Shared designed select: one dropdown language for every native single-select control. */
.ds-select-field {
  position: relative;
  display: grid;
  min-width: 0;
  align-content: end;
  gap: 8px;
}

.ds-select-field__label {
  grid-area: auto !important;
  min-width: 0;
  margin: 0;
}

.ds-select-field:has(.ds-select-dropdown[open]) { z-index: 50; }

.ds-select-native {
  position: absolute !important;
  width: 1px !important;
  min-width: 0 !important;
  height: 1px !important;
  min-height: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  border: 0 !important;
  padding: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
  white-space: nowrap !important;
}

.ds-select-dropdown {
  position: relative;
  width: 100%;
  min-width: 0;
  color: var(--text);
}

.ds-select-dropdown summary {
  position: relative;
  display: flex;
  width: 100%;
  min-width: 0;
  min-height: var(--decision-control-height);
  align-items: center;
  border: 1px solid color-mix(in srgb, var(--text) 20%, var(--grid));
  border-radius: var(--decision-control-radius);
  background: var(--decision-control-fill);
  padding: 0 48px 0 16px;
  color: var(--text);
  font: inherit;
  font-size: var(--type-body-sm);
  cursor: pointer;
  list-style: none;
  transition: border-color var(--motion-fast) ease, background-color var(--motion-fast) ease, box-shadow var(--motion-fast) ease;
}

.ds-select-dropdown summary::-webkit-details-marker { display: none; }

.ds-select-dropdown summary::after {
  position: absolute;
  top: 50%;
  right: 17px;
  width: 14px;
  height: 14px;
  background: url("/icons/phosphor-arrow-right.svg") center / contain no-repeat;
  content: "";
  opacity: .68;
  pointer-events: none;
  transform: translateY(-50%) rotate(90deg);
  transform-origin: center;
  transition: opacity 180ms ease, transform 240ms cubic-bezier(.22, 1, .36, 1);
}

.ds-select-dropdown summary strong {
  overflow: hidden;
  font-weight: 620;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ds-select-dropdown summary:hover { border-color: color-mix(in srgb, var(--hero-text) 62%, var(--grid)); }
.ds-select-dropdown summary:focus-visible { border-color: var(--hero-text); outline: 2px solid var(--hero-text); outline-offset: 3px; }
.ds-select-dropdown[open] summary::after { transform: translateY(-50%) rotate(-90deg); }
.ds-select-dropdown.is-closing summary::after { transform: translateY(-50%) rotate(90deg); }
.ds-select-field.is-active .ds-select-dropdown summary,
.ds-select-dropdown[open] summary {
  border-color: color-mix(in srgb, var(--hero-text) 58%, var(--grid));
  background: color-mix(in srgb, var(--hero-text) 4%, var(--decision-control-fill));
  box-shadow: inset 3px 0 0 var(--hero-text);
}

.ds-select-dropdown.is-disabled summary {
  cursor: not-allowed;
  opacity: .56;
}

.ds-select-dropdown .institution-ranking-dropdown__options {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 40;
  display: grid;
  width: max(100%, 260px);
  max-width: min(420px, calc(100vw - 32px));
  max-height: min(360px, 52vh, var(--ds-select-panel-max-height, 360px));
  overflow-y: auto;
  overscroll-behavior: contain;
  border: 1px solid color-mix(in srgb, var(--text) 30%, var(--grid));
  border-radius: var(--decision-control-radius);
  background: var(--paper);
  padding: 6px;
  box-shadow: 0 18px 38px color-mix(in srgb, var(--text) 14%, transparent);
  transform-origin: top center;
}

.ds-select-dropdown.is-end-aligned .institution-ranking-dropdown__options { right: 0; left: auto; }
.ds-select-dropdown.is-top-aligned .institution-ranking-dropdown__options {
  top: auto;
  bottom: calc(100% + 6px);
  transform-origin: bottom center;
}
.ds-select-dropdown.is-opening .institution-ranking-dropdown__options,
.ds-select-dropdown.is-closing .institution-ranking-dropdown__options { overflow: hidden; }

.ds-select-dropdown .institution-ranking-dropdown__options button {
  display: flex;
  width: 100%;
  min-height: 42px;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  border: 0;
  border-radius: calc(var(--decision-control-radius) - 4px);
  background: transparent;
  padding: 9px 11px;
  color: var(--text);
  font: inherit;
  font-size: var(--type-body-sm);
  font-weight: 580;
  line-height: 1.35;
  text-align: left;
  cursor: pointer;
}

.ds-select-dropdown .institution-ranking-dropdown__options button:hover,
.ds-select-dropdown .institution-ranking-dropdown__options button:focus-visible {
  outline: 0;
  background: color-mix(in srgb, var(--hero-text) 8%, transparent);
  color: var(--hero-text);
}

.ds-select-dropdown .institution-ranking-dropdown__options button.is-selected {
  background: color-mix(in srgb, var(--text) 6%, transparent);
  font-weight: 760;
}

.ds-select-dropdown .institution-ranking-dropdown__options button small {
  color: var(--hero-text);
  font-size: var(--type-meta);
  font-weight: 760;
}

@media (max-width: 520px) {
  .ds-select-dropdown .institution-ranking-dropdown__options { width: 100%; max-width: calc(100vw - 36px); }
}

@media (prefers-reduced-motion: reduce) {
  .ds-select-dropdown summary,
  .ds-select-dropdown summary::after,
  .ds-select-dropdown .institution-ranking-dropdown__options,
  .ds-select-dropdown .institution-ranking-dropdown__options button { transition: none; }
}

.career-occupation-table td strong { font-size: 13px; }
.career-opportunity-score strong { font-size: 26px !important; }
.career-global-context { border-radius: 0; border-block: 1px solid var(--grid); background: transparent; padding: 26px 0; }

/* Rating gateway: two deliberate comparison paths, presented as ranking rows. */
.rating-gateway.rating-ranking-page { gap: clamp(24px, 3vw, 38px); }
.rating-gateway .rating-gateway-header { border-bottom: 0; padding-bottom: clamp(18px, 2.4vw, 28px); }
.rating-choice-board { display: grid; gap: 20px; }
.rating-choice-board > header {
  display: grid;
  grid-template-columns: minmax(260px, .8fr) minmax(0, 1.2fr);
  gap: clamp(24px, 6vw, 86px);
  align-items: end;
}
.rating-choice-board > header h2,
.outcomes-filter-board > header h2,
.outcomes-result-board > header h2 {
  margin: 7px 0 0;
  font-family: var(--display-serif);
  font-size: clamp(30px, 3.4vw, 46px);
  font-weight: 580;
  letter-spacing: -.04em;
  line-height: 1;
}
.rating-choice-board > header > p,
.outcomes-filter-board > header > p,
.outcomes-result-board > header > p {
  max-width: 68ch;
  margin: 0;
  color: var(--label);
  font-size: var(--type-body-sm);
  line-height: var(--leading-readable);
}
.rating-choice-board .rating-gateway-grid {
  grid-template-columns: minmax(0, 1fr);
  margin-top: 0;
  border-left: 0;
}
.rating-choice-board .rating-gateway-card {
  min-height: 168px;
  grid-template-columns: 62px minmax(0, 1fr) minmax(150px, auto);
  grid-template-rows: minmax(0, 1fr);
  gap: 24px;
  align-items: center;
  border-right: 0;
  padding: 26px 8px;
}
.rating-choice-board .rating-gateway-card__index { align-self: start; padding-top: 4px; font-size: 22px; }
.rating-choice-board .rating-gateway-card > div { display: grid; gap: 8px; }
.rating-choice-board .rating-gateway-card > div > small {
  color: var(--hero-text);
  font-size: var(--type-label);
  font-weight: 760;
  letter-spacing: .06em;
}
.rating-choice-board .rating-gateway-card__scope {
  color: var(--hero-text);
  font-size: 12.5px;
  font-weight: 760;
  letter-spacing: .04em;
}
.rating-choice-board .rating-gateway-card h3 { max-width: none; font-size: clamp(30px, 3.2vw, 44px); }
.rating-choice-board .rating-gateway-card p { max-width: 58ch; margin: 0; font-size: var(--type-body-sm); }
.rating-choice-board .rating-gateway-card > strong {
  grid-column: 3;
  display: inline-flex;
  gap: 8px;
  align-items: center;
  justify-self: end;
  font-size: 12px;
  white-space: nowrap;
}
.rating-choice-board .rating-gateway-card > strong img,
.outcomes-scope-board article > strong img,
.outcomes-scope-board a > strong img { width: 15px; height: 15px; }

/* Graduate outcomes: scope, filters and evidence records follow the same hierarchy. */
.outcomes-directory-page { gap: clamp(24px, 3vw, 38px); }
.outcomes-scope-board { gap: 20px; }
.outcomes-scope-board > header { gap: clamp(24px, 6vw, 86px); }
.outcomes-scope-board > header h2 { font-size: clamp(30px, 3.4vw, 46px); }
.outcomes-scope-board > header > p { color: var(--label); font-size: var(--type-body-sm); }
.outcomes-scope-board > div { border-left: 0; }
.outcomes-scope-board article,
.outcomes-scope-board > div > a {
  min-height: 182px;
  grid-template-columns: 52px minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr) auto;
  gap: 18px;
  padding: 24px;
}
.outcomes-scope-board article > span,
.outcomes-scope-board > div > a > span { grid-row: 1 / 3; font-size: 22px; }
.outcomes-scope-board article > div,
.outcomes-scope-board > div > a > div { display: grid; align-content: start; gap: 8px; }
.outcomes-scope-board article small,
.outcomes-scope-board > div > a small { color: var(--hero-text); font-size: var(--type-label); font-weight: 760; letter-spacing: .05em; }
.outcomes-scope-board h3 { font-size: clamp(26px, 2.8vw, 38px); }
.outcomes-scope-board article p,
.outcomes-scope-board a p { font-size: var(--type-body-sm); }
.outcomes-scope-board article > strong,
.outcomes-scope-board a > strong { grid-column: 2; display: inline-flex; gap: 8px; align-items: center; align-self: end; font-size: var(--type-label); letter-spacing: .05em; }
.outcomes-boundary { max-width: none; margin: -10px 0 0; }
.outcomes-vintage-line {
  margin: -18px 0 0;
  color: var(--label);
  font-size: var(--type-meta);
  font-weight: 720;
  letter-spacing: .035em;
}

.outcomes-filter-board,
.outcomes-result-board { display: grid; gap: 20px; border-top: 1px solid var(--grid); padding-top: 26px; }
.outcomes-filter-board > header,
.outcomes-result-board > header {
  display: grid;
  grid-template-columns: minmax(260px, .8fr) minmax(0, 1.2fr);
  gap: clamp(24px, 6vw, 86px);
  align-items: end;
}
.outcomes-filter-board .sg-outcome-search {
  max-width: none;
  grid-template-columns: minmax(220px, 1.35fr) repeat(3, minmax(150px, .72fr)) minmax(110px, auto);
  gap: 12px;
}
.outcomes-filter-board .sg-outcome-search .primary-button { min-width: 110px; }
.outcomes-result-board > header .product-result-count { justify-self: end; text-align: right; }
.outcomes-result-board > .entity-card-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 28px;
  margin-top: 0;
  border-inline: 0;
}
.outcomes-result-board .sg-outcome-card {
  min-height: 248px;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto auto auto 1fr;
  gap: 5px;
  align-content: start;
  padding: 22px 8px;
  transition: background-color var(--motion-fast) ease;
}
.outcomes-result-board .sg-outcome-card:hover,
.outcomes-result-board .sg-outcome-card:focus-within { background: var(--ranking-row-hover); }
.outcomes-result-board .sg-outcome-card > .kicker { grid-column: 1; grid-row: 1; }
.outcomes-result-board .sg-outcome-card > h2 { grid-column: 1; grid-row: 2; margin: 4px 0 6px; }
.outcomes-result-board .sg-outcome-card > p:not(.kicker) { grid-column: 1; grid-row: 3; margin: 0; font-size: var(--type-body-sm); }
.outcomes-result-board .sg-outcome-card > dl { grid-column: 1; grid-row: 4; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-self: end; margin: 18px 0 0; border-top: 1px solid var(--grid); padding: 7px 0 0; }
.outcomes-result-board .sg-outcome-card dl > div { min-width: 0; display: grid; grid-template-columns: 1fr; gap: 6px; align-content: start; border-left: 1px solid color-mix(in srgb, var(--grid) 72%, transparent); padding: 10px 12px; }
.outcomes-result-board .sg-outcome-card dl > div:first-child { border-left: 0; padding-left: 0; }
.outcomes-result-board .sg-outcome-card dt { color: var(--label); font-size: var(--type-label); }
.outcomes-result-board .sg-outcome-card dd { margin: 0; color: var(--text); font-size: 13px; font-weight: 760; text-align: left; }

@media (max-width: 1100px) {
  .career-filter-workbench form {
    grid-template-columns: minmax(0, 1.25fr) minmax(210px, .75fr);
    grid-template-areas: "search sort" "family submit";
  }
  .career-filter-workbench .primary-button { width: 100%; }
  .career-model-board .career-multifactor-readiness { grid-template-columns: minmax(220px, .7fr) minmax(0, 1.3fr); }
  .career-model-board .career-multifactor-readiness > small { grid-column: 1 / -1; }
  .outcomes-filter-board .sg-outcome-search { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .outcomes-filter-board .sg-outcome-search .primary-button { grid-column: 1 / -1; width: 100%; }
  .outcomes-result-board > .entity-card-grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 760px) {
  .career-model-board > header,
  .rating-choice-board > header,
  .outcomes-filter-board > header,
  .outcomes-result-board > header { grid-template-columns: 1fr; gap: 12px; }
  .career-model-board > dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .career-model-context { grid-template-columns: minmax(0, 1fr); }
  .career-model-context article + article { border-top: 1px solid var(--grid); border-left: 0; }
  .career-model-board > dl > div:nth-child(3) { border-top: 1px solid var(--grid); border-left: 0; }
  .career-model-board > dl > div:nth-child(4) { border-top: 1px solid var(--grid); }
  .career-model-board .career-multifactor-readiness { grid-template-columns: 1fr; gap: 14px; }
  .career-model-board .career-multifactor-readiness > small { grid-column: auto; }
  .rating-choice-board .rating-gateway-card { grid-template-columns: 44px minmax(0, 1fr); gap: 16px; padding: 22px 4px; }
  .rating-choice-board .rating-gateway-card > strong { grid-column: 2; justify-self: start; margin-top: 4px; }
  .outcomes-scope-board > header { grid-template-columns: 1fr; gap: 12px; }
  .outcomes-result-board > header .product-result-count { justify-self: start; text-align: left; }
  .outcomes-result-board .sg-outcome-card { min-height: 0; }
}

@media (max-width: 680px) {
  .career-directory-page .career-hub-hero { gap: 22px; }
  .career-directory-page .career-hub-hero h1 { width: fit-content; max-width: none; font-size: clamp(38px, 11vw, 52px); overflow-wrap: normal; }
  .career-directory-page .career-hub-hero h1 > span:first-child { font-size: .68em; }
  .career-directory-page .career-hub-hero .kicker { max-width: none; font-size: var(--type-label); letter-spacing: .13em; overflow-wrap: normal; }
  .career-directory-page .career-hub-hero > div > p:last-child { max-width: 70ch; font-size: var(--type-body-sm); overflow-wrap: normal; }
  .career-filter-workbench form { grid-template-columns: 1fr; grid-template-areas: "search" "sort" "family" "submit"; gap: 12px; }
  .career-model-board > header { padding-block: 20px; }
  .career-model-board > dl > div { min-height: 82px; padding: 14px; }
  .career-directory-results > header,
  .career-global-context > header { grid-template-columns: 1fr; gap: 12px; }
  .career-occupation-table tbody tr { grid-template-columns: 44px minmax(0, 1fr); gap: 12px 10px; }
  .career-occupation-table tbody th { grid-column: 2; grid-row: 1; }
  .career-occupation-table tbody td:nth-child(3) { grid-column: 1 / -1; grid-row: 2; }
  .career-occupation-table tbody td:nth-child(n+4):nth-child(-n+7) { grid-column: 1 / -1; }
  .career-occupation-table tbody td:nth-child(n+4):nth-child(-n+7):nth-child(4) { grid-row: 3; }
  .career-occupation-table tbody td:nth-child(n+4):nth-child(-n+7):nth-child(5) { grid-row: 4; }
  .career-occupation-table tbody td:nth-child(n+4):nth-child(-n+7):nth-child(6) { grid-row: 5; }
  .career-occupation-table tbody td:nth-child(n+4):nth-child(-n+7):nth-child(7) { grid-row: 6; }
  .career-occupation-table tbody td:nth-child(n+4):nth-child(-n+7) {
    min-height: 58px;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    overflow: visible;
    padding: 10px 8px 0;
  }
  .career-occupation-link > span { font-size: 18px; }
  .outcomes-scope-board > div { grid-template-columns: 1fr; }
  .outcomes-scope-board article,
  .outcomes-scope-board > div > a { min-height: 0; grid-template-columns: 40px minmax(0, 1fr); padding: 20px 8px; }
  .outcomes-filter-board .sg-outcome-search { grid-template-columns: 1fr; }
  .outcomes-filter-board .sg-outcome-search .primary-button { grid-column: 1; }
}

/* Prevent the high-specificity school-view grid from clipping the second filter on phones. */
@media (max-width: 700px) {
  .rating-school-ranking-page.student-rating-page[data-ranking-view="school"] .rating-ranking-school-tools .student-rating-filters.institution-ranking-filters {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Give all four career evidence cells equal room on tablet and compact desktop widths. */
@media (min-width: 681px) and (max-width: 1100px) {
  .career-occupation-table tbody tr {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
  .career-occupation-table tbody td:first-child { grid-column: 1; grid-row: 1; }
  .career-occupation-table tbody th { grid-column: 2 / 10; grid-row: 1; }
  .career-occupation-table tbody td:nth-child(3) { grid-column: 10 / 13; grid-row: 1; }
  .career-occupation-table tbody td:nth-child(4) { grid-column: 1 / 4; grid-row: 2; }
  .career-occupation-table tbody td:nth-child(5) { grid-column: 4 / 7; grid-row: 2; }
  .career-occupation-table tbody td:nth-child(6) { grid-column: 7 / 10; grid-row: 2; }
  .career-occupation-table tbody td:nth-child(7) { grid-column: 10 / 13; grid-row: 2; }
}

@media (max-width: 1100px) {
  .career-occupation-table tbody { gap: 0; }
  .career-occupation-table tbody tr { border: 0; border-bottom: 1px solid var(--grid); border-radius: 0; background: transparent; padding: 20px 4px; }
  .career-occupation-table tbody td:nth-child(7) { display: grid; min-width: 0; overflow: visible; grid-template-columns: minmax(0, 1fr) auto; }
  .career-occupation-table tbody td:nth-child(7)::before { display: block; }
}

@media (prefers-reduced-motion: reduce) {
  .rating-school-ranking-page .rating-ranking-hero__aside nav a img,
  .outcomes-result-board .sg-outcome-card { transition: none; }
}

/* Content-first ranking and analysis pages: keep sources visible without legal-style microcopy. */
.student-rating-result-summary,
.outcomes-data-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 22px;
  align-items: center;
  border-block: 1px solid var(--grid);
  padding: 14px 8px;
  color: var(--text);
  font-size: 13px;
  line-height: 1.45;
}

.student-rating-result-summary { justify-content: space-between; border-bottom: 0; }
.student-rating-result-summary strong,
.outcomes-data-summary strong { font-weight: 760; }
.student-rating-result-summary span,
.outcomes-data-summary span { color: var(--label); font-weight: 650; }

.student-rating-row-meta,
.student-rating-sample-meta {
  display: block;
  margin-top: 5px;
  color: var(--label);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
}

.rating-subject-rating-page .rating-institution-name-secondary,
.career-occupation-link small,
.career-occupation-link__secondary,
.career-directory-results > header > p span,
.major-career-board__meta span,
.major-career-board__meta > strong,
.major-career-board__meta .major-career-fixed-rank,
.major-career-overall small,
.major-career-overall__label,
.major-career-identity__family,
.major-career-score small,
.major-career-score__label { font-size: 12px !important; }

.career-occupation-link__secondary {
  color: var(--label);
  font-weight: 520;
  line-height: 1.4;
}

.career-opportunity-rank {
  color: var(--label);
  font-size: 12px;
  font-weight: 740;
}

.career-component-weight,
.career-preparation-code {
  color: var(--label);
  font-size: 12px;
  font-weight: 740;
}

.career-detail-breadcrumb a,
.career-detail-support > section > p:not(.kicker),
.career-preparation-panel .tag-list span,
.career-opportunity-breakdown > p,
.career-occupation-detail .chart-source,
.major-career-detail .chart-source,
.major-career-detail-back a,
.major-career-detail-hero > div:first-child > small,
.major-career-detail-overall small,
.major-career-evidence-grid small,
.major-career-evidence-grid p,
.major-career-occupations thead th,
.major-career-occupations tbody th small,
.major-career-sources a span,
.major-career-sources a small {
  font-size: 12px !important;
  line-height: 1.5;
}

.product-data-badge,
.product-pagination__range,
.career-occupation-link em {
  font-size: 12px !important;
}

.major-career-identity > strong {
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
  overflow-wrap: anywhere;
}

@media (max-width: 420px) {
  .major-career-identity__family { flex-basis: 100%; }
}

/* Subject ranking bilingual identity: follow the school-ranking convention of
   a locale-first name with the verified alternate-language name beneath it. */
.major-career-identity {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  gap: 3px 16px;
  align-items: end;
}
.major-career-identity__family {
  grid-column: 1;
  grid-row: 1;
  color: var(--label);
  font-weight: 650;
  line-height: 1.3;
}
.major-career-identity__names {
  display: grid;
  grid-column: 1;
  grid-row: 2;
  gap: 2px;
  min-width: 0;
}
.major-career-identity__names > strong {
  min-width: 0;
  color: var(--text);
  font-size: 20px;
  font-weight: 720;
  letter-spacing: -.018em;
  line-height: 1.2;
  overflow-wrap: anywhere;
}
.major-career-identity__names > small {
  color: var(--label);
  font-size: 12px;
  font-weight: 560;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.major-career-identity > em {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: end;
}

@media (max-width: 700px) {
  .major-career-identity { gap: 3px 10px; }
  .major-career-identity__names > strong { font-size: 18px; }
  .major-career-identity__names > small { font-size: 12px; }
}

.outcomes-directory-page { gap: clamp(22px, 2.6vw, 34px); }
.outcomes-data-summary { margin-top: -8px; }
.outcomes-filter-board { padding-top: 22px; }
.outcomes-filter-board > header { grid-template-columns: minmax(0, 1fr); }

@media (max-width: 680px) {
  .student-rating-result-summary,
  .outcomes-data-summary { align-items: flex-start; flex-direction: column; gap: 6px; padding-inline: 4px; }
}

/* Subject directory breakpoint reconciliation: the shared school-ranking
   tablet grid has seven tracks, while this directory intentionally has three. */
@media (min-width: 701px) and (max-width: 1024px) {
  .rating-school-ranking-page.subject-directory-ranking-page[data-ranking-view="school"] .rating-ranking-table.is-school.subject-directory-table tbody tr {
    grid-template-columns: 50px minmax(220px, .68fr) minmax(0, 1.32fr);
    grid-template-rows: minmax(70px, auto);
    gap: 0;
    align-items: stretch;
    padding: 0;
  }

  .rating-school-ranking-page.subject-directory-ranking-page[data-ranking-view="school"] .rating-ranking-table.is-school.subject-directory-table tbody .rating-table-rank {
    grid-column: 1;
    grid-row: 1;
    align-self: center;
  }

  .rating-school-ranking-page.subject-directory-ranking-page[data-ranking-view="school"] .rating-ranking-table.is-school.subject-directory-table tbody th {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
  }

  .rating-school-ranking-page.subject-directory-ranking-page[data-ranking-view="school"] .rating-ranking-table.is-school.subject-directory-table tbody td.subject-directory-examples {
    grid-column: 3;
    grid-row: 1;
  }
}

@media (max-width: 700px) {
  .rating-school-ranking-page.subject-directory-ranking-page[data-ranking-view="school"] .rating-ranking-school-tools .subject-directory-filters {
    grid-template-columns: minmax(0, 1fr);
  }

  .rating-school-ranking-page.subject-directory-ranking-page[data-ranking-view="school"] .rating-ranking-table.is-school.subject-directory-table tbody tr {
    grid-template-columns: 38px minmax(0, 1fr);
    grid-template-rows: auto auto;
    gap: 9px 10px;
    padding: 14px 4px 0;
  }

  .rating-school-ranking-page.subject-directory-ranking-page[data-ranking-view="school"] .rating-ranking-table.is-school.subject-directory-table tbody .rating-table-rank {
    grid-column: 1;
    grid-row: 1 / span 2;
  }

  .rating-school-ranking-page.subject-directory-ranking-page[data-ranking-view="school"] .rating-ranking-table.is-school.subject-directory-table tbody th {
    grid-column: 2;
    grid-row: 1;
  }

  .rating-school-ranking-page.subject-directory-ranking-page[data-ranking-view="school"] .rating-ranking-table.is-school.subject-directory-table tbody td.subject-directory-examples {
    grid-column: 2;
    grid-row: 2;
  }
}
