/* Directory mockup v6 — mockup only · schools.novaed.cn design language */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=Urbanist:wght@500;600;700;800&display=swap');

:root {
  --ink: #10213f;
  --muted: #5d6c85;
  --line: #dbe5f4;
  --bg: #f4f8ff;
  --surface: #fff;
  --school-card-h: 212px;
  --school-card-logo: calc(var(--school-card-h) - 24px);
  --navy: #081a3a;
  --navy-hero: linear-gradient(135deg, #0c1f40, #143867 58%, #0f2a52);
  --accent: #f47b20;
  --accent-2: #ffa353;
  --chip-bg: #eef4ff;
  --chip-border: #d6e1f5;
  --chip-text: #153a71;
  --shadow: 0 8px 24px rgba(16, 24, 40, 0.07);
  --shadow-lg: 0 14px 34px rgba(16, 24, 40, 0.12);
  --radius: 16px;
  --max: 1280px;
  --filters: 236px;
  --rail: 268px;
  --font: Urbanist, system-ui, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font);
  font-size: 15px;
  line-height: 1.5;
  color: var(--ink);
  background: var(--bg);
}
img { max-width: 100%; display: block; }
button, input, select { font-family: inherit; cursor: pointer; }
a { color: inherit; }

.mock-bar {
  position: sticky;
  top: 0;
  z-index: 300;
  background: #0a1628;
  color: #b8c9e0;
  font-size: 12px;
  padding: 7px 16px;
  border-bottom: 2px solid var(--accent);
}
.mock-bar a { color: #9dd4ff; font-weight: 700; text-decoration: none; margin-left: 12px; }

/* Live public header */
.public-top {
  position: sticky;
  top: 32px;
  z-index: 120;
  background: var(--navy);
  color: #fff;
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.public-top-inner {
  max-width: var(--max);
  margin: 0 auto;
  padding: 12px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
}
.public-brand {
  display: flex;
  align-items: center;
  text-decoration: none;
}
.public-brand img {
  height: 48px;
  width: auto;
}
.public-brand-text {
  font-size: 1.35rem;
  font-weight: 800;
  color: #fff;
  letter-spacing: -0.02em;
  line-height: 1.1;
  text-transform: none;
}
.public-brand-text .brand-ed {
  color: var(--accent);
}
.public-nav { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.public-nav a {
  display: inline-flex;
  align-items: center;
  height: 32px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  color: #d6e2f6;
  text-decoration: none;
}
.public-nav a.is-active { background: #fff; color: var(--ink); }
.public-lang {
  font-size: 12px;
  font-weight: 700;
  color: #d6e2f6;
  margin-right: 8px;
}

.page { max-width: var(--max); margin: 0 auto; padding: 18px 20px 48px; }

.page-hero {
  background: var(--surface);
  color: var(--ink);
  border-radius: 0;
  padding: 8px 0 20px;
  margin-bottom: 8px;
  border-bottom: 1px solid var(--line);
  box-shadow: none;
}
.page-hero__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px 20px;
  margin-bottom: 6px;
}
.page-hero h1 {
  margin: 0;
  font-size: clamp(24px, 3.5vw, 32px);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--navy);
  line-height: 1.25;
  flex: 1 1 auto;
  min-width: 0;
}
.hero-shortlist-cta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 4px 6px;
  flex: 0 0 auto;
  padding-top: 6px;
}
.hero-shortlist-cta__link {
  font-size: 12px;
  font-weight: 600;
  color: var(--muted);
  text-decoration: none;
}
.hero-shortlist-cta__link:hover {
  color: #1d4ed8;
  text-decoration: underline;
}
.hero-shortlist-cta__sep {
  color: #c5d4ea;
  font-size: 12px;
  user-select: none;
}
.hero-shortlist-cta__btn {
  height: 28px;
  padding: 0 10px;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: var(--surface);
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
}
.hero-shortlist-cta__btn:hover {
  border-color: #c5d4ea;
  color: var(--ink);
}
.hero-shortlist-cta__btn--accent {
  border-color: rgba(244, 123, 32, 0.45);
  color: var(--accent);
  background: #fffaf5;
}
.hero-shortlist-cta__btn--accent:hover {
  background: #fff8f1;
}
.page-hero .hero-title-accent {
  color: var(--accent);
}
.page-hero p {
  margin: 0;
  color: var(--muted);
  font-size: 15px;
  font-weight: 500;
  max-width: 72ch;
  line-height: 1.55;
}
.page-hero .hero-accent {
  display: inline-block;
  width: 40px;
  height: 3px;
  background: linear-gradient(90deg, var(--accent), var(--accent-2));
  border-radius: 999px;
  margin-bottom: 12px;
}
.page-hero-kicker,
.news-hero-kicker {
  text-transform: uppercase;
  color: var(--accent);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.08em;
  margin-bottom: 6px;
}

.paid-promo-banner {
  display: block;
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  margin-bottom: 16px;
  box-shadow: 0 4px 16px rgba(16, 24, 40, 0.08);
  text-decoration: none;
  border: 1px solid #fcd9b8;
}
.paid-promo-banner__slot {
  position: absolute;
  top: 8px;
  left: 8px;
  z-index: 3;
  background: rgba(8, 26, 58, 0.78);
  color: #fff;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 4px 8px;
  border-radius: 5px;
}
.paid-poster {
  display: grid;
  overflow: hidden;
}
.paid-poster--banner {
  grid-template-columns: minmax(100px, 28%) minmax(0, 1fr);
  min-height: clamp(88px, 11vw, 108px);
}
.paid-poster--slot-1 {
  background: linear-gradient(135deg, #0a1628 0%, #143867 48%, #1a4a7a 100%);
}
.paid-poster__brand {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px 14px;
  background: rgba(255, 255, 255, 0.06);
  border-right: 1px solid rgba(255, 255, 255, 0.1);
}
.paid-poster__logo {
  max-width: 88px;
  max-height: 72px;
  width: auto;
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.25));
}
.paid-poster__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  padding: 12px 18px 12px 14px;
  color: #fff;
}
.paid-poster__eyebrow {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #fcd9b8;
}
.paid-poster__headline {
  font-size: clamp(16px, 2.2vw, 22px);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.02em;
}
.paid-poster__line {
  font-size: 12px;
  font-weight: 600;
  color: #d6e2f6;
  max-width: 40ch;
}
.paid-poster--rail {
  grid-template-columns: 72px minmax(0, 1fr);
  align-items: center;
  gap: 0;
  min-height: 0;
  aspect-ratio: 16 / 9;
  max-height: 82px;
}
.paid-poster--slot-2 {
  background: linear-gradient(120deg, #1e3a5f, #5b21b6);
}
.paid-poster--slot-3 {
  background: linear-gradient(120deg, #0f2242, #b45309);
}
.paid-poster--rail .paid-poster__logo {
  max-width: 52px;
  max-height: 52px;
  margin: 8px 10px;
  justify-self: center;
}
.paid-poster__copy--rail {
  padding: 8px 10px 8px 0;
  gap: 2px;
}
.paid-poster__copy--rail strong {
  font-size: 13px;
  font-weight: 800;
  line-height: 1.2;
}
.paid-poster__copy--rail span {
  font-size: 11px;
  font-weight: 700;
  opacity: 0.9;
}

.results-toolbar-bar {
  margin-bottom: 16px;
  padding: 10px;
  background: #f8fafc;
  border: 1px solid #e2eaf5;
  border-radius: 14px;
}

.dir-layout {
  display: grid;
  grid-template-columns: var(--filters) minmax(0, 1fr) var(--rail);
  gap: 16px;
  align-items: stretch;
}
.dir-left {
  grid-column: 1;
  grid-row: 1;
  min-width: 0;
  align-self: stretch;
}
.results-list-wrap {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
}
.results-pager-slot {
  grid-column: 2;
  grid-row: 2;
  min-width: 0;
}
.results-pager-slot .results-pager,
.results-pager-slot .pager {
  margin-top: 0;
}
.results-pager {
  grid-column: 2;
  grid-row: 2;
}
.dir-filter-desktop-only {
  display: block;
}
.dir-filter-mobile-only {
  display: none;
}
.rail {
  grid-column: 3;
  grid-row: 1;
  min-width: 0;
  align-self: stretch;
}
.dir-side-float {
  display: flex;
  flex-direction: column;
  gap: 12px;
  position: sticky;
  top: 100px;
  max-height: calc(100vh - 108px);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: #c5d4ea transparent;
}
.dir-side-float::-webkit-scrollbar {
  width: 5px;
}
.dir-side-float::-webkit-scrollbar-thumb {
  background: #c5d4ea;
  border-radius: 999px;
}

.filter-panel {
  position: static;
  flex-shrink: 0;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 16px;
  box-shadow: var(--shadow);
}
.filter-panel h2,
.filter-panel__heading {
  margin: 0 0 12px;
  font-size: 15px;
  font-weight: 800;
}
.dir-filter-disclosure {
  border: 0;
  margin: 0;
  padding: 0;
}
.dir-filter-disclosure__summary {
  display: none;
  list-style: none;
  cursor: pointer;
  margin: 0 0 10px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface);
  box-shadow: var(--shadow);
  font-size: 14px;
  font-weight: 800;
  color: var(--ink);
}
.dir-filter-disclosure__summary::-webkit-details-marker {
  display: none;
}
.dir-filter-disclosure__summary::after {
  content: "▾";
  float: right;
  color: var(--muted);
  font-size: 12px;
}
.dir-filter-disclosure:not([open]) .dir-filter-disclosure__summary::after {
  content: "▸";
}
.dir-resources--mobile {
  display: none;
}
.filter-field { margin-bottom: 11px; }
.filter-field label {
  display: block;
  font-size: 11px;
  font-weight: 700;
  color: #44536f;
  margin-bottom: 5px;
}
.filter-field input,
.filter-field select {
  width: 100%;
  height: 42px;
  border: 1px solid #d2dced;
  border-radius: 10px;
  padding: 0 11px;
  font-size: 14px;
  background: #fafcff;
}
.btn-apply {
  width: 100%;
  height: 42px;
  margin-top: 4px;
  border: 0;
  border-radius: 10px;
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
  color: #fff;
  font-weight: 800;
  font-size: 14px;
}
.filter-clear-wrap {
  margin: 10px 0 0;
  text-align: center;
}
.filter-clear-link {
  display: flex;
  width: 100%;
  height: 42px;
  align-items: center;
  justify-content: center;
  border: 1px solid #d5e0f0;
  border-radius: 9px;
  background: #fff;
  color: var(--navy);
  font-weight: 700;
  font-size: 13px;
  text-decoration: none;
  padding: 0 12px;
  transition: border-color .18s ease, background .18s ease, color .18s ease;
}
.filter-clear-link:hover {
  border-color: #c4d4ea;
  background: #f7faff;
  color: var(--ink);
}

.results-toolbar .active-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
}
.active-filters .pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 30px;
  padding: 0 10px 0 12px;
  border-radius: 999px;
  background: var(--navy);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  text-transform: capitalize;
}
.active-filters .pill button {
  border: 0;
  background: rgba(255,255,255,.2);
  color: #fff;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  font-size: 13px;
  line-height: 1;
  padding: 0;
}

.results-toolbar {
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line);
  text-transform: capitalize;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.results-toolbar.results-toolbar--carded {
  display: grid;
  grid-template-columns:
    minmax(140px, 2.4fr)
    minmax(320px, 1.9fr)
    minmax(118px, auto)
    minmax(200px, 1.35fr);
  gap: 8px;
  align-items: stretch;
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: 0;
  text-transform: none;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: #c5d4ea transparent;
  min-width: min(100%, 860px);
}
.toolbar-chip {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 6px 12px;
  min-height: 40px;
  background: var(--surface);
  border: 1px solid #dce5f2;
  border-radius: 10px;
  box-shadow: none;
}
.toolbar-chip--location {
  justify-content: flex-start;
  align-items: center;
  padding: 8px 10px;
  min-height: 40px;
  height: auto;
}
.toolbar-chip--location .active-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin: 0;
  width: 100%;
}
.toolbar-chip--location .pill {
  height: 28px;
  padding: 0 8px 0 10px;
  font-size: 11px;
  flex-shrink: 0;
}
.toolbar-chip--results {
  justify-content: flex-start;
  gap: 14px;
  padding: 6px 14px;
}
.toolbar-chip--results .count {
  display: flex;
  align-items: baseline;
  flex-wrap: nowrap;
  gap: 6px;
  margin: 0;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.3;
  white-space: nowrap;
  text-transform: none;
  flex-shrink: 0;
}
.toolbar-chip--results .count__main strong {
  font-weight: 800;
  color: var(--navy);
}
.toolbar-chip--results .count__loc {
  font-size: 12px;
  font-weight: 600;
  color: var(--muted);
}
.toolbar-chip__sep {
  width: 1px;
  align-self: stretch;
  min-height: 24px;
  margin: 2px 0;
  background: #dce5f2;
  flex-shrink: 0;
}
.toolbar-chip--results .results-per-page-label {
  margin: 0;
  gap: 8px;
  flex-shrink: 0;
}
.toolbar-chip--view {
  padding: 5px 10px;
  min-width: 118px;
}
.toolbar-chip--view .view-toggle {
  width: 100%;
  min-width: 100px;
  flex: 1 1 auto;
  border: 0;
  background: #eef4ff;
}
.toolbar-chip--sort {
  padding: 6px 12px;
  min-width: 0;
}
.results-toolbar.results-toolbar--carded .results-per-page,
.results-toolbar.results-toolbar--carded .results-sort {
  height: 28px;
  min-height: 28px;
  padding: 0 8px;
  font-size: 12px;
  font-weight: 700;
  border: 1px solid #d2dced;
  border-radius: 7px;
  background: #fafcff;
  color: var(--ink);
}
.results-toolbar.results-toolbar--carded .results-sort {
  width: 100%;
  min-width: 0;
  flex: 1 1 auto;
}
.results-toolbar.results-toolbar--carded .results-per-page {
  width: 52px;
  flex: 0 0 52px;
}
.results-toolbar.results-toolbar--carded .view-toggle-btn {
  height: 28px;
  flex: 1 1 0;
  min-width: 0;
  padding: 0 12px;
  font-size: 12px;
}
@media (max-width: 1100px) {
  .results-toolbar.results-toolbar--carded {
    grid-template-columns:
      minmax(130px, 2fr)
      minmax(280px, 1.7fr)
      minmax(110px, auto)
      minmax(180px, 1.2fr);
    min-width: 820px;
  }
}
@media (max-width: 1024px) {
  .results-toolbar-bar {
    padding: 8px;
    overflow: visible;
  }
  .results-toolbar.results-toolbar--carded {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    min-width: 0;
    width: 100%;
    overflow: visible;
    gap: 10px;
  }
  .toolbar-chip--desktop-only,
  .toolbar-chip__extras--desktop,
  .toolbar-chip__sep--desktop {
    display: none !important;
  }
  .toolbar-chip--location,
  .toolbar-chip--results {
    width: 100%;
    min-height: auto;
    height: auto;
  }
  .toolbar-chip--location .active-filters {
    width: 100%;
  }
  .toolbar-chip--results {
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 6px;
  }
  .toolbar-chip--results .count {
    width: 100%;
    white-space: normal;
    flex-wrap: wrap;
  }
}
.results-toolbar-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px 12px;
  min-height: 32px;
}
.results-toolbar-row--top {
  flex-wrap: wrap;
}
.results-toolbar-row--bottom {
  flex-wrap: wrap;
}
.results-toolbar-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
  flex: 1 1 auto;
  min-width: 0;
}
.results-toolbar-row--bottom .count {
  flex: 0 1 auto;
  min-width: 0;
}
.results-toolbar .count {
  margin: 0;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.35;
  text-transform: none;
  white-space: nowrap;
}
.results-toolbar .count em {
  font-style: normal;
  color: var(--muted);
  font-weight: 600;
  font-size: 12px;
}
.fee-tier-legend {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
}
.fee-tier-legend-label {
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  margin-right: 2px;
}
.fee-tier-legend .badge-fee {
  min-width: 26px;
  height: 22px;
  font-size: 12px;
  padding: 0 5px;
}
.results-toolbar .view-toggle {
  flex: 0 0 104px;
  width: 104px;
}
.results-per-page-label {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  font-weight: 600;
  color: var(--muted);
  white-space: nowrap;
  flex: 0 0 auto;
}
.results-toolbar .results-per-page {
  width: 52px;
  height: 30px;
  padding: 0 6px;
  font-size: 12px;
  font-weight: 600;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}
.results-toolbar .results-sort {
  width: 148px;
  height: 30px;
  padding: 0 8px;
  font-size: 12px;
  font-weight: 600;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  flex: 0 0 148px;
}
@media (max-width: 720px) {
  .results-toolbar-row--top,
  .results-toolbar-row--bottom {
    flex-direction: column;
    align-items: flex-start;
  }
  .results-toolbar-actions {
    width: 100%;
    justify-content: flex-start;
  }
  .results-toolbar .view-toggle {
    flex: 0 0 104px;
  }
}

.btn {
  height: 40px;
  padding: 0 16px;
  border-radius: 10px;
  border: 1px solid #d2dced;
  background: var(--surface);
  font-size: 13px;
  font-weight: 700;
  color: var(--ink);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  text-decoration: none;
  white-space: nowrap;
}
.btn-primary {
  background: var(--navy);
  border-color: var(--navy);
  color: #fff;
}
.lang-item { text-transform: capitalize; }

/* Compare selection summary — when schools are picked */
.compare-picks-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding: 10px 14px;
  margin-bottom: 12px;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  border-radius: 12px;
  font-size: 14px;
}
.compare-picks-bar__text {
  font-size: 13px;
  font-weight: 600;
  color: #1e3a5f;
}
.compare-picks-bar__text strong {
  font-weight: 800;
  color: #1d4ed8;
}
.compare-picks-bar .btn {
  height: 32px;
  padding: 0 12px;
  font-size: 12px;
}

.results-per-page {
  height: 40px;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 0 10px;
  font-weight: 600;
  font-size: 13px;
  background: var(--surface);
}

.fee-tier-legend .badge-fee {
  text-transform: none;
}

/* Title Case — UI labels and actions (not school names or $ tiers) */
.filter-panel label,
.filter-panel h2,
.filter-panel .btn-apply,
.filter-panel .filter-clear-link,
.filter-field select,
.filter-field input::placeholder,
.school-card .lbl,
.school-card .btn,
.school-card .badge:not(.badge-fee),
.aside-signal-kicker,
.view-toggle-btn,
.compare-picks-bar,
.results-toolbar,
.active-filters,
.map-school-panel,
.map-school-panel .btn,
.logo-actions .btn-like,
.logo-actions .btn-save-mark,
.rail-block h3,
.rail-block-lead,
.rail-partner,
.rail-promo,
.rail-promo__slot-label,
.rail-resource,
.rail-event,
.pager a,
.pager span,
.hero-shortlist-cta__btn,
.hero-shortlist-cta__link,
.paid-promo-banner__slot,
.paid-poster__eyebrow,
.rail-scroll-more {
  text-transform: capitalize;
}
.paid-poster__headline,
.paid-poster__line,
.page-hero h1,
.page-hero .hero-title-accent {
  text-transform: none;
}
.badge-fee,
.aside-signal-grade,
.head-signal-grade,
.fee-tier-legend .badge-fee,
.school-title,
.public-brand-text,
.mock-bar {
  text-transform: none;
}

.school-list { display: grid; gap: 10px; }

/* List / Map toggle */
.view-toggle {
  display: inline-flex;
  padding: 3px;
  border-radius: 11px;
  border: 1px solid var(--line);
  background: #eef4ff;
}
.view-toggle-btn {
  height: 30px;
  padding: 0 10px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  font-size: 12px;
  font-weight: 800;
  color: var(--muted);
}
.view-toggle-btn.is-active {
  background: var(--surface);
  color: var(--navy);
  box-shadow: 0 2px 8px rgba(16, 24, 40, 0.08);
}
body.view-map .results-view--list { display: none; }
body.view-map .results-view--map { display: block !important; }
body.view-map .pager { display: none; }
body.view-map .dir-layout {
  grid-template-columns: var(--filters) minmax(0, 1fr);
}
body.view-map .rail { display: none; }
body.view-map .results-list-wrap {
  grid-column: 2;
}

.results-view--map { margin-bottom: 16px; }
.directory-map-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 300px);
  gap: 14px;
  min-height: 560px;
}
body.view-map .directory-map-layout {
  min-height: min(78vh, 720px);
}
.directory-map {
  height: 520px;
  border-radius: 14px;
  border: 1px solid var(--line);
  overflow: hidden;
  background: #e8eef8;
  z-index: 1;
}
body.view-map .directory-map {
  height: min(78vh, 720px);
  min-height: 580px;
}
body.view-map .map-school-panel {
  min-height: 580px;
  max-height: min(78vh, 720px);
  overflow-y: auto;
}
.map-school-panel {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 14px;
  box-shadow: var(--shadow);
  min-height: 200px;
}
.map-school-panel__hint {
  margin: 0;
  font-size: 13px;
  color: var(--muted);
  line-height: 1.5;
}
.map-school-panel__cover {
  width: 100%;
  height: 120px;
  object-fit: cover;
  border-radius: 10px;
  margin-bottom: 10px;
}
.map-school-panel__title {
  margin: 0 0 6px;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.25;
}
.map-school-panel__meta {
  margin: 0 0 10px;
  font-size: 12px;
  color: var(--muted);
}
.map-school-panel__row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-bottom: 12px;
}
.map-marker-dot {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 2px solid #fff;
  box-shadow: 0 2px 8px rgba(0,0,0,.28);
}
body.view-map .map-marker-dot {
  width: 22px;
  height: 22px;
}
.map-marker-dot--premium { background: #b91c1c; }
.map-marker-dot--moderate { background: #b45309; }
.map-marker-dot--affordable { background: #047857; }

.school-card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  height: var(--school-card-h);
  min-height: var(--school-card-h);
  max-height: var(--school-card-h);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow:
    0 1px 2px rgba(16, 24, 40, 0.04),
    0 6px 16px rgba(16, 24, 40, 0.08),
    0 12px 28px rgba(16, 24, 40, 0.06);
  overflow: hidden;
  transition: border-color .15s, box-shadow .15s;
}
.school-card:hover {
  border-color: #c5d4ea;
  box-shadow:
    0 2px 4px rgba(16, 24, 40, 0.05),
    0 10px 22px rgba(16, 24, 40, 0.1),
    0 16px 36px rgba(16, 24, 40, 0.08);
}
.school-card.is-saved { border-color: #fecdd3; }
.school-card.is-in-compare {
  border-color: #3b82f6;
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.22), var(--shadow);
}

/* Hover preview — glass gradient + Open Profile (desktop only) */
.card-hover-preview {
  position: absolute;
  inset: 0;
  z-index: 30;
  border-radius: inherit;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .22s ease, visibility .22s ease;
}
.card-hover-preview__shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(12, 31, 64, 0.38) 0%,
    rgba(20, 56, 103, 0.48) 45%,
    rgba(8, 26, 58, 0.55) 100%
  );
  backdrop-filter: blur(2px) saturate(1.04);
  -webkit-backdrop-filter: blur(2px) saturate(1.04);
}
.card-hover-preview__actions {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 0 16px;
  max-width: calc(100% - 32px);
  pointer-events: none;
}
.card-hover-preview__primary {
  display: flex;
  align-items: stretch;
  justify-content: center;
  gap: 10px;
  width: 100%;
  max-width: 300px;
  pointer-events: auto;
}
.card-hover-preview__primary .btn-view-profile--hover,
.card-hover-preview__primary .btn-compare-pick--hover {
  flex: 1 1 0;
  min-width: 0;
  width: 145px;
  max-width: 145px;
  height: 44px;
  padding: 0 12px;
  font-size: 14px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}
.card-hover-preview__engage {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  max-width: 320px;
  pointer-events: auto;
}
.card-hover-preview__engage .btn-like,
.card-hover-preview__engage .btn-save-mark {
  flex: 1 1 0;
  min-width: 108px;
  max-width: 148px;
  height: 32px;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.4);
  background: rgba(255, 255, 255, 0.12);
  color: #f4f8ff;
  font-size: 11px;
  font-weight: 700;
}
.card-hover-preview__engage .btn-like:hover,
.card-hover-preview__engage .btn-save-mark:hover {
  background: rgba(255, 255, 255, 0.2);
}
.card-hover-preview__engage .btn-like.is-on {
  color: #fecdd3;
  border-color: rgba(254, 205, 211, 0.65);
  background: rgba(225, 29, 72, 0.35);
}
.card-hover-preview__engage .btn-save-mark.is-on {
  color: #fcd9b8;
  border-color: rgba(252, 217, 184, 0.65);
  background: rgba(244, 123, 32, 0.35);
}
.btn-view-profile--hover {
  text-decoration: none;
}
.btn-compare-pick--hover {
  border: 1px solid rgba(147, 197, 253, 0.9);
  background: linear-gradient(135deg, rgba(29, 78, 216, 0.92), rgba(37, 99, 235, 0.95));
  color: #fff;
  font-weight: 800;
  box-shadow: 0 4px 16px rgba(29, 78, 216, 0.4);
}
.btn-compare-pick--hover:hover {
  background: linear-gradient(135deg, #1d4ed8, #2563eb);
  box-shadow: 0 6px 20px rgba(29, 78, 216, 0.48);
}
.btn-compare-pick--hover.is-added {
  background: linear-gradient(135deg, #1e3a8a, #1d4ed8);
  border-color: #bfdbfe;
  color: #eff6ff;
  box-shadow: 0 0 0 2px rgba(191, 219, 254, 0.55), 0 4px 16px rgba(29, 78, 216, 0.35);
}
@media (hover: hover) {
  .school-card:hover .card-hover-preview,
  .school-card:focus-within .card-hover-preview {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
}

.school-card-body {
  padding: 12px 14px;
  min-width: 0;
  height: 100%;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 14px;
  align-items: stretch;
  overflow: hidden;
}

.school-logo-stack {
  width: var(--school-card-logo);
  height: var(--school-card-logo);
  flex-shrink: 0;
  align-self: stretch;
}
.school-logo {
  width: 100%;
  height: 100%;
  margin: 0;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: #fff;
  padding: 8px;
  object-fit: contain;
  box-shadow: 0 4px 14px rgba(16, 24, 40, 0.08);
}
.school-logo-ph {
  width: 100%;
  height: 100%;
  margin: 0;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: linear-gradient(165deg, #eef4ff, #fff);
  display: grid;
  place-items: center;
  font-weight: 800;
  font-size: clamp(22px, 4vw, 34px);
  color: #24406f;
  box-shadow: 0 4px 14px rgba(16, 24, 40, 0.08);
}

.school-main {
  min-width: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.school-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.school-identity { min-width: 0; flex: 1; }
.school-head-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.meta-state-indicator{
  width: 20px;
  height: 20px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
  border: 1px solid transparent;
}
.meta-state-indicator--liked{
  color:#b10f31;
  background:#fff1f4;
  border-color:#f4beca;
}
.meta-state-indicator--saved{
  color:#d97706;
  background:#fff4e8;
  border-color:#f4c792;
}
.head-signal {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 3px 6px 4px;
  border-radius: 10px;
  border: 1px solid var(--line);
  background: #f8fbff;
  min-width: 42px;
}
.head-signal-kicker {
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--muted);
  line-height: 1;
}
.head-signal-grade {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 15px;
  font-weight: 900;
  color: #10213f;
  background: #fff;
  border: 2px solid rgba(244, 123, 32, 0.45);
  line-height: 1;
  flex-shrink: 0;
}
.head-signal-grade[data-grade="a-plus"],
.head-signal-grade[data-grade="b-plus"] {
  font-size: 13px;
}
.head-signal-grade[data-grade="c"] {
  border-color: rgba(100, 116, 139, 0.4);
}
.school-head-meta .badge-fee {
  min-width: 28px;
  height: 34px;
  font-size: 12px;
  border-radius: 8px;
}
.school-title {
  margin: 0 0 4px;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.28;
  color: #0f2242;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.school-card-divider {
  height: 1px;
  background: var(--line);
  margin: 10px 0 0;
  border: 0;
  flex-shrink: 0;
}

/* Tuition tier — $ / $$ / $$$ only */
.badge-fee {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  height: 24px;
  padding: 0 5px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: -0.06em;
  line-height: 1;
}
.badge-fee-premium {
  background: linear-gradient(135deg, #fef2f2, #fff7ed);
  border: 1px solid #fecaca;
  color: #b91c1c;
}
.badge-fee-moderate {
  background: #fffbeb;
  border: 1px solid #fde68a;
  color: #b45309;
}
.badge-fee-affordable {
  background: #ecfdf5;
  border: 1px solid #a7f3d0;
  color: #047857;
}

.school-details-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
  padding-top: 8px;
  flex: 1;
  min-height: 0;
  align-content: stretch;
}
.detail-cell {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 7px 8px;
  border-radius: 10px;
  border: 1px solid #d6e1f5;
  background: linear-gradient(180deg, #f8fbff 0%, #fff 100%);
  box-shadow:
    0 1px 2px rgba(16, 24, 40, 0.05),
    0 4px 10px rgba(16, 24, 40, 0.07);
}
.detail-cell .lbl {
  display: block;
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #5d6c85;
  margin: 0;
  line-height: 1.2;
}
.detail-cell .val {
  display: block;
  font-size: 12px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.35;
  flex: 1;
  min-height: 0;
}
.detail-cell--curriculum .val {
  font-size: 10px;
  font-weight: 600;
  color: #3d5278;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}
/* PUBLIC_DIRECTORY_EQUAL_HEIGHT_LANGUAGE_GRID_PHASE1_3C_V1 */
.detail-cell--languages .val.lang-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 4px 8px;
  margin: 0;
}
.detail-cell--languages .lang-item {
  font-size: 11px;
  font-weight: 700;
  line-height: 1.25;
  min-width: 0;
  white-space: normal;
}
.detail-cell--tuition .val-tuition-profile-link {
  color: var(--accent);
  font-size: 11px;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.detail-cell--tuition .val-tuition-profile-link:hover {
  color: var(--accent-2);
}

/* School Signal — grade only, card right column */
.aside-signal {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 0 0 4px;
  text-align: center;
}
.aside-signal-kicker {
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--muted);
  line-height: 1.1;
}
.aside-signal-grade {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 24px;
  font-weight: 900;
  color: #10213f;
  background: #fff;
  border: 2px solid rgba(244, 123, 32, 0.45);
  line-height: 1;
}
.aside-signal-grade[data-grade="a-plus"],
.aside-signal-grade[data-grade="b-plus"] {
  font-size: 20px;
}
.aside-signal-grade[data-grade="c"] {
  border-color: rgba(100, 116, 139, 0.4);
}

.school-loc {
  margin: 2px 0 6px;
  font-size: 12px;
  color: var(--muted);
  font-weight: 500;
}
.school-loc .district {
  font-weight: 700;
  color: var(--ink);
}

.badge-row {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  align-items: center;
  margin-top: 6px;
  max-height: 48px;
  overflow: hidden;
}
.school-card.is-map-highlight {
  border-color: var(--accent);
  box-shadow: 0 0 0 2px rgba(244, 123, 32, 0.25), var(--shadow);
}
.map-pin-icon {
  background: transparent;
  border: 0;
}
.map-school-panel .aside-signal-grade {
  width: 40px;
  height: 40px;
  font-size: 18px;
}
.badge {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.01em;
  text-transform: capitalize;
}
.badge-type-intl { background: #eef4ff; border: 1px solid #c9d9ff; color: #1d4ed8; }
.badge-type-bilingual { background: #f5f3ff; border: 1px solid #ddd6fe; color: #5b21b6; }
.badge-type-public { background: #f0fdf4; border: 1px solid #bbf7d0; color: #166534; }
.badge-type-private { background: #f8fafc; border: 1px solid #e2e8f0; color: #475569; }
.badge-stage {
  background: #f8fbff;
  border: 1px solid var(--chip-border);
  color: var(--chip-text);
}

.lang-item {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  font-weight: 700;
  color: var(--chip-text);
}
.lang-item .flag {
  font-size: 15px;
  line-height: 1;
}

.btn-orange {
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
  border: 1px solid #f09342;
  color: #fff;
  font-weight: 800;
}
.btn-orange:hover { filter: brightness(1.04); }
.btn-orange.is-added {
  background: var(--navy);
  border-color: var(--navy);
}

.school-card-aside {
  display: none;
}
.school-card-aside-mobile-actions {
  display: none;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  width: 100%;
  padding: 0 8px 8px;
}
.btn-compare-pick {
  font-weight: 800;
  text-transform: capitalize;
  cursor: pointer;
}
.btn-compare-pick--mobile,
.btn-view-profile--mobile {
  flex: 1 1 0;
  min-width: 0;
  height: 30px;
  padding: 0 8px;
  font-size: 11px;
  border-radius: 9px;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.btn-compare-pick--mobile {
  border: 1px solid #93c5fd;
  background: #eff6ff;
  color: #1d4ed8;
}
.btn-compare-pick--mobile.is-added {
  background: linear-gradient(135deg, #2563eb, #3b82f6);
  border-color: #1d4ed8;
  color: #fff;
}
.btn-like,
.btn-save-mark {
  height: 32px;
  border-radius: 10px;
  border: 1px solid var(--line);
  background: var(--surface);
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 3px;
}
.btn-like.is-on {
  color: #e11d48;
  border-color: #fecdd3;
  background: #fff1f2;
}
.btn-save-mark.is-on {
  color: var(--accent);
  border-color: #fcd9b8;
  background: #fff8f1;
}
.compare-footer {
  display: none;
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 110;
  background: var(--surface);
  border-top: 1px solid var(--line);
  box-shadow: 0 -8px 28px rgba(16,24,40,.1);
  padding: 12px 20px;
}
body.has-compare-picks .compare-footer { display: block; }
.compare-footer-inner {
  max-width: var(--max);
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
body.has-compare-picks { padding-bottom: 72px; }

.rail {
  max-width: var(--rail);
}
.rail-float {
  gap: 10px;
}
.rail-stack {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.rail-block {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 11px 12px;
  box-shadow:
    0 1px 2px rgba(16, 24, 40, 0.04),
    0 4px 12px rgba(16, 24, 40, 0.06);
  flex-shrink: 0;
}
.filter-resources-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.filter-resources-list .rail-resource {
  margin-bottom: 0;
}
.rail-events-list {
  display: flex;
  flex-direction: column;
}
.rail-block--events .rail-event {
  padding: 6px 0;
}
.rail-events-list .rail-event:last-child {
  border-bottom: 0;
  padding-bottom: 2px;
}
.rail-block h3 {
  margin: 0 0 2px;
  font-size: 14px;
  font-weight: 800;
  color: var(--navy);
}
.rail-block-lead {
  margin: 0 0 8px;
  font-size: 11px;
  line-height: 1.35;
  color: var(--muted);
  font-weight: 500;
}
.rail-ad-card {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  width: 100%;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--line);
  text-decoration: none;
  color: inherit;
  background: #fff;
  box-shadow: 0 2px 8px rgba(16, 24, 40, 0.06);
}
.rail-ad-card:hover {
  box-shadow: var(--shadow);
}
.rail-ad-card__image {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  max-height: 132px;
  overflow: hidden;
  background: #eef4ff;
}
.rail-ad-card__image img {
  width: 100%;
  height: 100%;
  min-width: 100%;
  min-height: 100%;
  object-fit: cover;
  object-position: center center;
  transform: scale(1.14);
  display: block;
}
.rail-ad-card__copy {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px 10px 9px;
}
.rail-ad-card__copy strong {
  font-size: 12px;
  font-weight: 800;
  line-height: 1.25;
  color: var(--ink);
}
.rail-ad-card__copy span {
  font-size: 10px;
  color: var(--muted);
  font-weight: 600;
  line-height: 1.35;
}
.rail-block--promotional-placements h3 {
  margin: 0 0 12px;
}
.rail-promo-placement-stack {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.rail-promo-placement-card {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 14px;
  align-items: stretch;
  min-height: 104px;
  padding: 14px;
  border: 1px solid #d5e0f0;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(15, 34, 66, 0.06);
}
.rail-promo-placement-card--reserved .rail-promo-placement-card__visual {
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px dashed #b8c9e4;
}
.rail-promo-placement-card--reserved[data-placement-slot="1"] .rail-promo-placement-card__visual {
  background: linear-gradient(145deg, #eef4ff 0%, #dfe9fb 100%);
}
.rail-promo-placement-card--reserved[data-placement-slot="2"] .rail-promo-placement-card__visual {
  background: linear-gradient(145deg, #f3f7ff 0%, #e7eef9 100%);
}
.rail-promo-placement-card--reserved[data-placement-slot="3"] .rail-promo-placement-card__visual {
  background: linear-gradient(145deg, #f8fafc 0%, #edf3fb 100%);
}
.rail-promo-placement-card__visual {
  width: 92px;
  min-height: 76px;
  border-radius: 12px;
  background: #edf3fb;
}
.rail-promo-placement-card__slot-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid #c5d4ea;
  font-size: 14px;
  font-weight: 800;
  color: #4a628c;
}
.rail-promo-placement-card__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  min-width: 0;
}
.rail-promo-placement-card__title {
  display: block;
  font-size: 14px;
  font-weight: 800;
  color: var(--ink);
  line-height: 1.3;
}
.rail-promo-placement-card__status {
  display: block;
  font-size: 12px;
  line-height: 1.45;
  color: var(--muted);
  font-weight: 600;
}
.active-filters--empty {
  min-height: 0;
}
.rail-partner-grid {
  display: grid;
  gap: 8px;
}
.rail-partner {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding: 8px 10px;
  border: 1px solid #e8eef8;
  border-radius: 11px;
  background: #fafcff;
  text-decoration: none;
  color: inherit;
}
.rail-partner:hover { border-color: #c5d4ea; }
.rail-partner__mark {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: var(--navy);
  color: #fff;
  display: grid;
  place-items: center;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.02em;
}
.rail-partner__name {
  font-size: 12px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.3;
}
.rail-promo {
  position: relative;
  display: block;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid var(--line);
  text-decoration: none;
  color: inherit;
  background: #fff;
}
.rail-promo--compact .paid-poster--rail {
  border-radius: 10px 10px 0 0;
}
.rail-promo--paid {
  border-color: #fcd9b8;
  box-shadow: 0 0 0 1px rgba(244, 123, 32, 0.1);
}
.rail-promo:hover { box-shadow: var(--shadow); }
.rail-promo__slot-label {
  position: absolute;
  top: 6px;
  right: 6px;
  z-index: 2;
  padding: 2px 6px;
  border-radius: 4px;
  background: rgba(8, 26, 58, 0.75);
  color: #fff;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.2;
}
.rail-promo--compact .rail-promo__copy {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px 10px 9px;
}
.rail-promo--compact .rail-promo__copy strong {
  font-size: 12px;
  font-weight: 800;
  line-height: 1.25;
}
.rail-promo--compact .rail-promo__copy span {
  font-size: 10px;
  color: var(--muted);
  font-weight: 600;
  line-height: 1.35;
}
.rail-resource {
  display: flex;
  gap: 8px;
  align-items: center;
  padding: 7px 8px;
  border: 1px solid #e8eef8;
  border-radius: 9px;
  text-decoration: none;
  color: inherit;
  font-size: 12px;
  background: #fafcff;
}
.rail-resource:hover { border-color: #c5d4ea; }
.rail-resource .ico {
  width: 40px;
  height: 40px;
  border-radius: 9px;
  background: var(--chip-bg);
  display: grid;
  place-items: center;
  font-weight: 800;
  font-size: 10px;
  color: #24406f;
  flex-shrink: 0;
}
.rail-resource__meta {
  display: block;
  margin-top: 2px;
  font-size: 11px;
  color: var(--muted);
  font-weight: 600;
}
.rail-event {
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 8px;
  text-decoration: none;
  color: inherit;
  padding: 8px 0;
  border-bottom: 1px solid #eef2f8;
  font-size: 13px;
}
.rail-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  margin: 0 -2px;
  padding: 0 2px 2px;
  scrollbar-width: thin;
  scrollbar-color: #c5d4ea transparent;
}
.rail-scroll::-webkit-scrollbar {
  width: 5px;
}
.rail-scroll::-webkit-scrollbar-thumb {
  background: #c5d4ea;
  border-radius: 999px;
}
.rail-events-scroll .rail-event:last-child {
  border-bottom: 0;
  padding-bottom: 4px;
}
.rail-resources-scroll .rail-resource {
  margin-bottom: 6px;
}
.rail-resources-scroll .rail-resource:last-child {
  margin-bottom: 0;
}
.rail-scroll-more {
  display: inline-block;
  margin-top: 8px;
  flex-shrink: 0;
  font-size: 11px;
  font-weight: 800;
  color: #1d4ed8;
  text-decoration: none;
}
.rail-scroll-more:hover { text-decoration: underline; }
.rail-event:hover strong { color: var(--accent); }
.rail-event .date {
  background: var(--navy);
  color: #fff;
  border-radius: 9px;
  text-align: center;
  padding: 5px 3px;
  font-size: 10px;
  font-weight: 800;
}
.rail-event .date b { display: block; font-size: 16px; }
.rail-event__meta {
  display: block;
  margin-top: 2px;
  font-size: 11px;
  color: var(--muted);
  font-weight: 600;
}

.pager {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin-top: 22px;
}
.pager a, .pager span {
  min-width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  border: 1px solid var(--line);
  background: var(--surface);
  font-weight: 700;
  font-size: 13px;
  text-decoration: none;
  color: var(--ink);
}
.pager .on { background: var(--navy); color: #fff; border-color: var(--navy); }

.site-footer {
  margin-top: 36px;
  background: var(--navy);
  color: #9db0cf;
  text-align: center;
  padding: 26px 20px;
  font-size: 13px;
}
.site-footer strong { color: #fff; display: block; margin-bottom: 6px; }

/* —— Responsive —— */
@media (max-width: 1024px) {
  .directory-map-layout {
    grid-template-columns: 1fr;
  }
  .map-school-panel { order: -1; }
  .dir-layout {
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
  }
  .dir-left,
  .results-list-wrap,
  .results-pager-slot,
  .results-pager,
  .rail,
  .dir-resources--mobile {
    grid-column: 1;
    grid-row: auto;
  }
  .dir-left {
    order: 1;
  }
  .results-list-wrap {
    order: 2;
  }
  .results-pager-slot,
  .results-pager {
    order: 3;
  }
  .dir-resources--mobile {
    order: 4;
    display: block;
  }
  .rail {
    order: 5;
  }
  .dir-filter-desktop-only {
    display: none !important;
  }
  .dir-filter-mobile-only {
    display: block;
  }
  .dir-resources--desktop {
    display: none;
  }
  .dir-left,
  .rail,
  .dir-side-float {
    position: static;
    max-width: none;
    align-self: auto;
    max-height: none;
    overflow: visible;
  }
  .dir-filter-disclosure__summary {
    display: block;
  }
  .dir-filter-disclosure:not([open]) .filter-panel {
    display: none;
  }
  .filter-panel__heading {
    display: none;
  }
}
@media (min-width: 1025px) {
  .dir-filter-desktop-only {
    display: block;
  }
  .dir-filter-mobile-only {
    display: none !important;
  }
  .dir-resources--mobile {
    display: none !important;
  }
  .dir-resources--desktop {
    display: block;
  }
}

@media (max-width: 720px) {
  .public-nav { display: none; }
  .page { padding: 14px 14px 40px; }
  .page-hero__head {
    flex-direction: column;
    align-items: flex-start;
  }
  .hero-shortlist-cta {
    padding-top: 0;
    justify-content: flex-start;
  }
  .paid-poster--banner {
    grid-template-columns: 88px 1fr;
    min-height: 96px;
  }
  .paid-poster__headline { font-size: 15px; }
  .rail {
    max-height: none;
  }
  .rail-stack {
    flex: none;
  }
  :root { --school-card-h: auto; }
  .school-card {
    grid-template-columns: 1fr;
    height: auto;
    min-height: 0;
    max-height: none;
  }
  :root { --school-card-logo: 112px; }
  .card-hover-preview { display: none !important; }
  .school-card-body {
    grid-template-columns: auto minmax(0, 1fr);
    gap: 12px;
  }
  .school-logo-stack {
    width: var(--school-card-logo);
    height: var(--school-card-logo);
  }
  .school-details-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }
  .school-card-aside {
    display: block;
    border-left: 0;
    border-top: 1px solid var(--line);
    background: #fafcff;
    min-width: 0;
  }
  .school-card-aside-mobile-actions {
    display: grid;
    padding: 8px;
  }
  .school-card-aside-mobile-actions .btn-like,
  .school-card-aside-mobile-actions .btn-save-mark,
  .school-card-aside-mobile-actions .btn-view-profile--mobile,
  .school-card-aside-mobile-actions .btn-compare-pick--mobile {
    width: 100%;
  }
}

@media (min-width: 1400px) {
  :root { --max: 1360px; }
}

/* =================================================================================================
   Phase 1.2G — header, active-toolbar simplification and school-card geometry repair
   ================================================================================================= */

.directory-result-count {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin: 0;
  color: var(--ink);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
  text-transform: none;
}
.directory-result-count__main strong {
  font-weight: 800;
  color: var(--navy);
}
.directory-result-count__location {
  color: var(--muted);
  font-size: 11px;
  font-weight: 600;
}
.filter-results-summary--desktop {
  margin-top: 12px;
  padding: 12px 11px;
  border: 1px solid #d5e0f0;
  border-radius: 9px;
  background: #f8fbff;
}
.toolbar-mobile-results-summary {
  display: none;
}

@media (min-width: 1025px) {
  :root {
    --max: 1440px;
    --filters: 236px;
    --rail: 282px;
  }
  .results-toolbar-bar.has-no-filters {
    display: none;
  }
  .results-toolbar-bar.has-filters {
    padding: 0;
    margin-bottom: 14px;
    border: 0;
    background: transparent;
  }
  .results-toolbar.results-toolbar--carded {
    display: block;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
    overflow: visible;
  }
  .toolbar-chip--location {
    max-width: 100%;
    min-height: 42px;
    padding: 7px 10px;
  }
  .school-card {
    height: auto;
    min-height: var(--school-card-h);
    max-height: none;
  }
  .school-card-body {
    height: auto;
    min-height: var(--school-card-h);
    overflow: visible;
  }
  .school-main {
    height: auto;
    min-height: 100%;
    overflow: visible;
  }
}

@media (max-width: 1024px) {
  .results-toolbar-bar {
    margin-bottom: 10px;
    padding: 0;
    border: 0;
    background: transparent;
  }
  .results-toolbar.results-toolbar--carded {
    display: block;
    min-width: 0;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    overflow: visible;
  }
  .toolbar-chip--location {
    margin-bottom: 8px;
  }
  .toolbar-mobile-results-summary {
    display: block;
    padding: 11px 12px;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: var(--surface);
  }
  .filter-results-summary--desktop {
    display: none;
  }
}

@media (max-width: 720px) {
  :root {
    --school-card-logo: 92px;
  }
  .school-card-body {
    display: block;
    padding: 10px;
    overflow: visible;
  }
  .school-logo-stack {
    float: left;
    width: var(--school-card-logo);
    height: var(--school-card-logo);
    margin: 0 11px 10px 0;
  }
  .school-main {
    display: block;
    height: auto;
    min-height: 0;
    overflow: visible;
  }
  .school-head {
    min-height: var(--school-card-logo);
    gap: 4px;
  }
  .school-title {
    font-size: 15px;
    line-height: 1.22;
  }
  .school-loc {
    font-size: 11px;
  }
  .school-head-meta {
    gap: 3px;
  }
  .school-head-meta .badge-fee {
    display: none;
  }
  .head-signal {
    min-width: 37px;
    padding: 3px 3px 4px;
  }
  .head-signal-grade {
    width: 29px;
    height: 29px;
    font-size: 13px;
  }
  .school-card-divider {
    clear: both;
    margin-top: 10px;
  }
  .school-details-grid {
    clear: both;
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
    padding-top: 8px;
  }
  .detail-cell {
    min-height: 64px;
    padding: 7px 8px;
  }
  .detail-cell--languages .val.lang-row {
    grid-template-columns: 1fr;
    gap: 4px;
  }
  .detail-cell--languages .lang-item {
    font-size: 10px;
    line-height: 1.2;
  }
}


/* PUBLIC_DIRECTORY_PHASE1_3B_MANAGED_CONTENT_CARDS_V1 */
body.ne-directory-v37-page .rail-managed-resource,
body.ne-directory-v37-page .rail-managed-event {
  display: grid;
  gap: 5px;
  width: 100%;
  margin: 0 0 9px;
  padding: 11px 12px;
  border: 1px solid #e1e9f5;
  border-radius: 13px;
  background: #fff;
  color: #10213f;
  text-decoration: none;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

body.ne-directory-v37-page a.rail-managed-resource:hover,
body.ne-directory-v37-page a.rail-managed-event:hover {
  border-color: rgba(244,123,32,.34);
  box-shadow: 0 10px 22px rgba(16,33,63,.08);
  transform: translateY(-1px);
}

body.ne-directory-v37-page .rail-managed-resource:last-child,
body.ne-directory-v37-page .rail-managed-event:last-child {
  margin-bottom: 0;
}

body.ne-directory-v37-page .rail-managed-resource__type,
body.ne-directory-v37-page .rail-managed-event__date {
  display: inline-flex;
  width: max-content;
  max-width: 100%;
  padding: 3px 8px;
  border-radius: 999px;
  background: rgba(244,123,32,.10);
  color: #b85b19;
  font-size: 10px;
  line-height: 1.35;
  font-weight: 800;
  letter-spacing: .03em;
  text-transform: uppercase;
}

/* PUBLIC_DIRECTORY_RESOURCE_ICON_TREATMENT_PHASE1_3C_V1 */
body.ne-directory-v37-page .rail-managed-resource__type {
  gap: 6px;
  align-items: center;
}
body.ne-directory-v37-page .rail-managed-resource__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 26px;
  height: 18px;
  padding: 0 4px;
  border-radius: 999px;
  background: rgba(244,123,32,.2);
  color: #8a3b07;
  font-size: 9px;
  line-height: 1;
  font-weight: 900;
  letter-spacing: .04em;
}
body.ne-directory-v37-page .rail-managed-resource__type-label {
  line-height: 1.2;
}

body.ne-directory-v37-page .rail-managed-resource strong,
body.ne-directory-v37-page .rail-managed-event strong {
  display: block;
  color: #10213f;
  font-size: 12.5px;
  line-height: 1.4;
  font-weight: 800;
}

body.ne-directory-v37-page .rail-managed-resource__cta,
body.ne-directory-v37-page .rail-managed-event__cta {
  color: #f47b20;
  font-size: 11px;
  line-height: 1.35;
  font-weight: 800;
}

body.ne-directory-v37-page .rail-managed-event__school {
  color: #5d6c85;
  font-size: 11.5px;
  line-height: 1.42;
  font-weight: 650;
}

body.ne-directory-v37-page .rail-managed-resource--pending {
  background: #f8fbff;
}

body.ne-directory-v37-page .rail-managed-resource--pending .rail-managed-resource__cta {
  color: #667085;
}


/* PUBLIC_DIRECTORY_BLUE_MEDIA_CARDS_PHASE1_3E_V1 */
body.ne-directory-v37-page .rail-managed-resource.rail-managed-resource--media,
body.ne-directory-v37-page .rail-managed-event.rail-managed-event--media {
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  padding: 9px;
  border-color: #dbe6f7;
  background: #ffffff;
}

body.ne-directory-v37-page a.rail-managed-resource.rail-managed-resource--media:hover,
body.ne-directory-v37-page a.rail-managed-event.rail-managed-event--media:hover {
  border-color: rgba(45,127,249,.36);
  box-shadow: 0 10px 22px rgba(28,70,138,.09);
}

body.ne-directory-v37-page .rail-managed-card__visual {
  display: block;
  width: 62px;
  height: 72px;
  overflow: hidden;
  border: 1px solid #d8e5fa;
  border-radius: 10px;
  background: #eef5ff;
}

body.ne-directory-v37-page .rail-managed-card__visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body.ne-directory-v37-page .rail-managed-card__visual--fallback {
  display: grid;
  place-items: center;
  background: linear-gradient(180deg, #eef5ff 0%, #f7faff 100%);
  color: #2d7ff9;
}

body.ne-directory-v37-page .rail-managed-card__visual--fallback svg {
  width: 27px;
  height: 27px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

body.ne-directory-v37-page .rail-managed-card__copy {
  display: grid;
  min-width: 0;
  gap: 5px;
  align-content: start;
}

body.ne-directory-v37-page .rail-managed-resource__type,
body.ne-directory-v37-page .rail-managed-event__date {
  background: rgba(45,127,249,.10);
  color: #245aa8;
}

body.ne-directory-v37-page .rail-managed-resource__icon {
  background: rgba(45,127,249,.16);
  color: #194d99;
}

body.ne-directory-v37-page .rail-managed-resource__cta,
body.ne-directory-v37-page .rail-managed-event__cta {
  color: #2d7ff9;
}

body.ne-directory-v37-page .rail-managed-resource--pending .rail-managed-resource__cta {
  color: #667085;
}

/* PHASE 1.5B-S4-R5 directory interaction/layout corrections */
body.ne-directory-v37-page{background:#fff !important;}
body.ne-directory-v37-page .page{background:#fff;}
body.ne-directory-v37-page .page-hero{background:transparent;border:0;box-shadow:none;padding:8px 0 10px;border-radius:0;}
body.ne-directory-v37-page .dir-layout{align-items:start;}
body.ne-directory-v37-page .dir-side-float{position:sticky;top:86px;max-height:none;overflow:visible;overscroll-behavior:auto;}
body.ne-directory-v37-page .filter-panel{padding:12px 12px 10px;}
body.ne-directory-v37-page .filter-panel h2,
body.ne-directory-v37-page .filter-panel__heading{margin:0 0 8px;font-size:14px;}
body.ne-directory-v37-page .filter-field{margin-bottom:7px;}
body.ne-directory-v37-page .filter-panel label{font-size:11px;margin-bottom:4px;}
body.ne-directory-v37-page .filter-panel input,
body.ne-directory-v37-page .filter-panel select{height:36px;padding:0 10px;font-size:13px;}
body.ne-directory-v37-page .btn-apply{height:38px;padding:0 12px;font-size:13px;}
body.ne-directory-v37-page .filter-clear-wrap{margin-top:8px;}
body.ne-directory-v37-page .school-card{height:auto;min-height:0;max-height:none;}
body.ne-directory-v37-page .school-card-body{padding:9px;gap:9px;align-items:center;}
body.ne-directory-v37-page .school-logo-stack{padding:6px;display:flex;align-items:center;justify-content:center;align-self:center;}
body.ne-directory-v37-page .school-title{font-size:17px;line-height:1.2;}
body.ne-directory-v37-page .school-loc{margin:2px 0 5px;font-size:11px;line-height:1.3;}
body.ne-directory-v37-page .school-card-divider{margin:6px 0;}
body.ne-directory-v37-page .school-details-grid{grid-template-columns:.8fr .8fr .95fr 1.45fr;gap:6px 9px;}
body.ne-directory-v37-page .detail-cell{padding:7px 8px;min-height:0;}
body.ne-directory-v37-page .school-card .lbl{font-size:10px;line-height:1.25;}
body.ne-directory-v37-page .school-card .val{font-size:11px;line-height:1.3;}
body.ne-directory-v37-page .detail-cell--curriculum .val{-webkit-line-clamp:2;}
body.ne-directory-v37-page .detail-cell--languages .val.lang-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 8px;}
body.ne-directory-v37-page .detail-cell--languages .lang-item{font-size:10px;line-height:1.25;white-space:normal;min-width:0;}
body.ne-directory-v37-page .card-hover-preview__shade{background:rgba(255,255,255,.39) !important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);}
body.ne-directory-v37-page .card-hover-preview__actions{background:transparent !important;border:0 !important;box-shadow:none !important;}
body.ne-directory-v37-page .card-hover-preview__engage .btn-like,
body.ne-directory-v37-page .card-hover-preview__engage .btn-save-mark{
  border:1px solid rgba(53,71,104,.38);
  background:rgba(238,243,251,.58);
  color:#243550;
  text-decoration:none !important;
}
body.ne-directory-v37-page .card-hover-preview__engage .btn-like:hover,
body.ne-directory-v37-page .card-hover-preview__engage .btn-save-mark:hover{
  border-color:rgba(37,56,90,.54);
  background:rgba(224,233,245,.82);
  color:#172742;
}
body.ne-directory-v37-page .card-hover-preview__engage .btn-like.is-on{
  color:#b10f31;
  border-color:rgba(177,15,49,.45);
  background:rgba(255,228,234,.9);
}
body.ne-directory-v37-page .card-hover-preview__engage .btn-save-mark.is-on{
  color:#0f172a;
  border-color:rgba(15,23,42,.44);
  background:rgba(222,228,238,.9);
}
body.ne-directory-v37-page .school-card-aside-mobile-actions .btn-like,
body.ne-directory-v37-page .school-card-aside-mobile-actions .btn-save-mark{text-decoration:none !important;}
body.ne-directory-v37-page .rail-block{padding:10px;}
body.ne-directory-v37-page .rail-promo-placement-card,
body.ne-directory-v37-page .rail-managed-resource.rail-managed-resource--media,
body.ne-directory-v37-page .rail-managed-event.rail-managed-event--media{padding:9px;}
body.ne-directory-v37-page .pager a:last-child{
  min-width:92px;
  padding:0 14px;
  justify-content:space-between;
  gap:8px;
}
body.ne-directory-v37-page .pager a:last-child::after{
  content:"→";
  font-size:14px;
  font-weight:900;
  line-height:1;
}
@media (max-width:1360px) and (min-width:1025px){
  body.ne-directory-v37-page .dir-layout{grid-template-columns:248px minmax(0,1fr) 246px;gap:12px;}
  body.ne-directory-v37-page .school-details-grid{grid-template-columns:.78fr .78fr .92fr 1.52fr;gap:6px 8px;}
}


/* PHASE 1.5B-S4-R6 — verified directory profile parity and My NovaEd control-state correction */
body.ne-directory-v37-page .school-card-body{align-items:center;}
body.ne-directory-v37-page .school-logo-stack{align-self:stretch;display:flex;align-items:center;justify-content:center;}
body.ne-directory-v37-page .school-logo-stack .school-logo{margin:auto;max-height:100%;max-width:100%;object-fit:contain;}
body.ne-directory-v37-page .school-details-grid{grid-template-columns:1fr 1.02fr 1.64fr 1.42fr;align-items:stretch;}
body.ne-directory-v37-page .detail-cell{display:flex;flex-direction:column;gap:5px;min-height:74px;justify-content:flex-start;}
body.ne-directory-v37-page .detail-cell--curriculum .val{-webkit-line-clamp:3;}
body.ne-directory-v37-page .detail-accreditations{display:flex;gap:4px;flex-wrap:wrap;align-content:start;}
body.ne-directory-v37-page .detail-accreditations span{display:inline-flex;align-items:center;padding:2px 6px;border-radius:999px;border:1px solid #d7e3f5;background:#eef5ff;color:#1d4ed8;font-size:9px;font-weight:800;line-height:1.35;}
body.ne-directory-v37-page .detail-signal-lenses{display:grid;gap:3px;min-width:0;}
body.ne-directory-v37-page .detail-signal-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px;align-items:center;font-size:9px;font-weight:700;line-height:1.2;color:#465875;white-space:nowrap;}
body.ne-directory-v37-page .detail-signal-dots{display:inline-flex;gap:2px;align-items:center;}
body.ne-directory-v37-page .detail-signal-dot{width:5px;height:5px;border-radius:999px;background:#dbe4f1;border:1px solid #d0dbea;display:inline-block;}
body.ne-directory-v37-page .detail-signal-dot.is-on{background:#f47b20;border-color:#f47b20;}
body.ne-directory-v37-page .detail-cell--languages .val.lang-row{align-content:start;}
body.ne-directory-v37-page .school-head-meta .badge-fee{min-width:34px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:900;color:#f47b20;background:#fff7ee;border:1px solid #f4c08e;}
body.ne-directory-v37-page .school-head-meta .badge-fee-unpublished{color:#93a2bb;background:#f3f6fb;border-color:#d6e1f5;}
body.ne-directory-v37-page .pager a:last-child{min-width:104px;}
@media (max-width:1360px){body.ne-directory-v37-page .school-details-grid{grid-template-columns:.96fr 1fr 1.72fr 1.44fr;}body.ne-directory-v37-page .detail-signal-row{font-size:8.5px;}}

/* PUBLIC_DIRECTORY_PROMO_TITLE_STYLE_FINAL_V1 */
/* Restore visual hierarchy for managed Directory promotional placement titles. */
.ne-directory-v37-page .rail-block--promotional-placements .rail-ad-card__copy strong {
  display: block;
  margin: 0 0 3px;
  color: var(--ink, #10213f);
  font-size: 13px;
  line-height: 1.22;
  font-weight: 950;
  letter-spacing: -0.01em;
}

.ne-directory-v37-page .rail-block--promotional-placements .rail-ad-card__copy > span {
  display: block;
  color: var(--muted, #53627a);
  font-size: 11px;
  line-height: 1.32;
  font-weight: 650;
}

.ne-directory-v37-page .rail-block--promotional-placements .rail-ad-card:hover .rail-ad-card__copy strong {
  color: var(--navy, #061a3a);
}



/* PUBLIC_DIRECTORY_PROMO_TITLE_NESTED_SPAN_FIX_V1 */
/* Managed directory promotional titles use bilingual nested spans inside <strong>; keep those spans visually title-like. */
body.ne-directory-v37-page .rail-block--promotional-placements .rail-ad-card__copy strong,
body.ne-directory-v37-page .rail-block--promotional-placements .rail-ad-card__copy strong span,
.ne-directory-v37-page .rail-block--promotional-placements .rail-ad-card__copy strong,
.ne-directory-v37-page .rail-block--promotional-placements .rail-ad-card__copy strong span {
  display: inline;
  margin: 0;
  color: var(--ink, #10213f) !important;
  font-size: 13px !important;
  line-height: 1.22 !important;
  font-weight: 950 !important;
  letter-spacing: -0.01em;
}

body.ne-directory-v37-page .rail-block--promotional-placements .rail-ad-card__copy > span,
body.ne-directory-v37-page .rail-block--promotional-placements .rail-ad-card__copy > span span,
.ne-directory-v37-page .rail-block--promotional-placements .rail-ad-card__copy > span,
.ne-directory-v37-page .rail-block--promotional-placements .rail-ad-card__copy > span span {
  color: var(--muted, #53627a) !important;
  font-size: 11px !important;
  line-height: 1.32 !important;
  font-weight: 650 !important;
}

body.ne-directory-v37-page .rail-block--promotional-placements .rail-ad-card__copy {
  gap: 4px;
}


/* PUBLIC_FINAL_RAIL_CONTRAST_OVERRIDE_V1 */
body.ne-directory-v37-page .rail-block,
body.ne-directory-v37-page .rail-ad-card,
body.ne-directory-v37-page .rail-promo-placement-card,
body.ne-directory-v37-page .rail-managed-card {
  background:#fff !important;
}
body.ne-directory-v37-page .rail-block,
body.ne-directory-v37-page .rail-block *,
body.ne-directory-v37-page .rail-ad-card__copy,
body.ne-directory-v37-page .rail-ad-card__copy span,
body.ne-directory-v37-page .rail-ad-card__copy > span,
body.ne-directory-v37-page .rail-ad-card__copy > span span,
body.ne-directory-v37-page .rail-promo-placement-card__copy,
body.ne-directory-v37-page .rail-promo-placement-card__copy span,
body.ne-directory-v37-page .rail-promo-placement-card__status,
body.ne-directory-v37-page .rail-managed-card__copy,
body.ne-directory-v37-page .rail-managed-card__copy span {
  color:#53627a !important;
  text-shadow:none !important;
}
body.ne-directory-v37-page .rail-block h3,
body.ne-directory-v37-page .rail-block h3 span,
body.ne-directory-v37-page .rail-ad-card__copy strong,
body.ne-directory-v37-page .rail-ad-card__copy strong span,
body.ne-directory-v37-page .rail-promo-placement-card__title,
body.ne-directory-v37-page .rail-promo-placement-card__title span,
body.ne-directory-v37-page .rail-managed-card__copy strong,
body.ne-directory-v37-page .rail-managed-card__copy strong span {
  color:#10213f !important;
  text-shadow:none !important;
}
body.ne-directory-v37-page .hero-title-accent,
body.ne-directory-v37-page .news-hero-kicker,
body.ne-directory-v37-page .news-hero-kicker span {
  color:#f47b20 !important;
}


/* PUBLIC_FINAL_PROMO_TEXT_CONTRAST_OVERRIDE_V2 */
/* Exact final override for Directory/News promotional placement text. */
body.ne-directory-v37-page .rail-block--promotional-placements,
body.ne-directory-v37-page .rail-block--promotional-placements *,
body.news-hub-page .rail-block--promotional-placements,
body.news-hub-page .rail-block--promotional-placements * {
  text-shadow:none !important;
}
body.ne-directory-v37-page .rail-block--promotional-placements .rail-ad-card,
body.ne-directory-v37-page .rail-block--promotional-placements .rail-promo-placement-card,
body.news-hub-page .rail-block--promotional-placements .rail-ad-card,
body.news-hub-page .rail-block--promotional-placements .rail-promo-placement-card {
  background:#ffffff !important;
}
body.ne-directory-v37-page .rail-block--promotional-placements .rail-ad-card__copy,
body.ne-directory-v37-page .rail-block--promotional-placements .rail-ad-card__copy > span,
body.ne-directory-v37-page .rail-block--promotional-placements .rail-ad-card__copy > span span,
body.ne-directory-v37-page .rail-block--promotional-placements .rail-promo-placement-card__status,
body.ne-directory-v37-page .rail-block--promotional-placements .rail-promo-placement-card__status span,
body.news-hub-page .rail-block--promotional-placements .rail-ad-card__copy,
body.news-hub-page .rail-block--promotional-placements .rail-ad-card__copy > span,
body.news-hub-page .rail-block--promotional-placements .rail-ad-card__copy > span span,
body.news-hub-page .rail-block--promotional-placements .rail-promo-placement-card__status,
body.news-hub-page .rail-block--promotional-placements .rail-promo-placement-card__status span {
  color:#53627a !important;
  -webkit-text-fill-color:#53627a !important;
}
body.ne-directory-v37-page .rail-block--promotional-placements h3,
body.ne-directory-v37-page .rail-block--promotional-placements h3 span,
body.ne-directory-v37-page .rail-block--promotional-placements .rail-ad-card__copy strong,
body.ne-directory-v37-page .rail-block--promotional-placements .rail-ad-card__copy strong span,
body.ne-directory-v37-page .rail-block--promotional-placements .rail-promo-placement-card__title,
body.ne-directory-v37-page .rail-block--promotional-placements .rail-promo-placement-card__title span,
body.news-hub-page .rail-block--promotional-placements h3,
body.news-hub-page .rail-block--promotional-placements h3 span,
body.news-hub-page .rail-block--promotional-placements .rail-ad-card__copy strong,
body.news-hub-page .rail-block--promotional-placements .rail-ad-card__copy strong span,
body.news-hub-page .rail-block--promotional-placements .rail-promo-placement-card__title,
body.news-hub-page .rail-block--promotional-placements .rail-promo-placement-card__title span {
  color:#10213f !important;
  -webkit-text-fill-color:#10213f !important;
}

/* MOBILE_DIRECTORY_CARD_DETAILS_DESQUASH_V1 (20260610) */
/* On phones the 4-column school-details grid is too cramped; collapse to 2 columns. */
@media (max-width:600px){
  body.ne-directory-v37-page .school-details-grid{grid-template-columns:1fr 1fr;}
}

/* MOBILE_DIRECTORY_PHASE1_POLISH_V1 (20260610) */
@media (max-width:600px){
  /* A1: grade/stage badges were clipped by the row's max-height:48px */
  body.ne-directory-v37-page .school-card .badge-row{max-height:none;overflow:visible;}
  /* A2: equalize the $$$$ fee box and the signal box ($$$$ had a fixed height:34px).
     Stretch the fee box to the signal box height; do NOT restructure the signal box. */
  body.ne-directory-v37-page .school-card .school-head-meta{align-items:stretch;}
  body.ne-directory-v37-page .school-card .badge-fee{height:auto;min-height:0;display:flex;align-items:center;justify-content:center;}
  /* D3: keep the signal box's native column layout; nudge top padding so SIGNAL isn't clipped */
  body.ne-directory-v37-page .school-card .head-signal{justify-content:center;min-height:0;padding-top:6px;}
  /* D2: grade band on a single line */
  body.ne-directory-v37-page .school-card .badge-stage{white-space:nowrap;}
  /* A3: Like / Save School button text was white on a white background */
  body.ne-directory-v37-page .school-card .btn-like,
  body.ne-directory-v37-page .school-card .btn-save-mark{color:#243550;}
  /* B4: compare results page must fit mobile; collapse layout + scroll the table within its panel */
  body.ne-directory-v37-page .compare-page{grid-template-columns:minmax(0,1fr);min-width:0;}
  body.ne-directory-v37-page .compare-page > *{min-width:0;}
  body.ne-directory-v37-page .compare-panel--table{overflow-x:auto;}
}

/* MOBILE_NEWS_HUB_REORDER_V1 (20260610) */
/* On phones: Filter on top, then Featured + Latest, then promotional, then Stay Informed + Contribute at the bottom. */
@media (max-width:768px){
  body.news-hub-page .news-grid{display:grid;grid-template-columns:minmax(0,1fr);}
  body.news-hub-page .news-left-rail,
  body.news-hub-page .news-main,
  body.news-hub-page .news-right-rail{display:contents;}
  body.news-hub-page .news-grid > *,
  body.news-hub-page .news-left-rail > *,
  body.news-hub-page .news-main > *,
  body.news-hub-page .news-right-rail > *{min-width:0;}
  body.news-hub-page .news-left-rail > .news-filter-card:nth-child(1){order:-10;}
  body.news-hub-page .news-main > *{order:0;}
  body.news-hub-page .news-right-rail > *{order:50;}
  body.news-hub-page .news-left-rail > .news-filter-card:nth-child(2){order:100;}
  body.news-hub-page .news-left-rail > .news-filter-card:nth-child(3){order:101;}
}

/* MOBILE_NEWS_FILTER_COLLAPSIBLE_V1 (20260610) */
/* The Filter News card is collapsible (a <details>); open by default on desktop via inline script. */
body.news-hub-page .news-filter-details > summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:1.05rem;font-weight:800;color:inherit;}
body.news-hub-page .news-filter-details > summary::-webkit-details-marker{display:none;}
body.news-hub-page .news-filter-details > summary::after{content:"\25BE";font-size:0.85em;opacity:.65;transition:transform .2s ease;}
body.news-hub-page .news-filter-details[open] > summary::after{transform:rotate(180deg);}
body.news-hub-page .news-filter-details > form{margin-top:12px;}
/* form's display:grid overrides the native closed-details hiding; force it hidden when collapsed */
body.news-hub-page .news-filter-details:not([open]) > form{display:none !important;}

/* MOBILE_DIRECTORY_REFINE_CHEVRON_AND_COUNT_COMPACT_V1 (20260610) */
/* Refine Search disclosure: add a rotating chevron indicator. */
body.ne-directory-v37-page .dir-filter-disclosure__summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;}
body.ne-directory-v37-page .dir-filter-disclosure__summary::-webkit-details-marker{display:none;}
body.ne-directory-v37-page .dir-filter-disclosure__summary::after{content:"\25BE";font-size:0.8em;opacity:.6;transition:transform .2s ease;}
body.ne-directory-v37-page .dir-filter-disclosure[open] > .dir-filter-disclosure__summary::after{transform:rotate(180deg);}
/* Tighten the mobile results-count box (was tall with spare space). */
@media (max-width:1024px){
  body.ne-directory-v37-page .toolbar-mobile-results-summary{padding:8px 12px;}
  body.ne-directory-v37-page .toolbar-mobile-results-summary .directory-result-count{gap:2px;}
}
