:root {
  --ink: #071525;
  --ink-2: #0b2748;
  --gold: #d6ad5c;
  --gold-2: #e4c57c;
  --muted: #5f7189;
  --light: #f4f6f8;
  --card: #ffffff;
  --line: #dbe3ee;
  --soft: #eef3f8;
  --success: #167a4a;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: #ffffff;
  overflow-x: clip;
}

img {
  max-width: 100%;
}

button,
input,
select,
textarea {
  font: inherit;
}

button:disabled {
  cursor: wait;
  opacity: 0.72;
}

a {
  color: inherit;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 3px;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.wcn-network-section {
  margin-top: 22px;
  border-top: 4px solid var(--ink);
}

.program-network-parent {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: 18px 0 8px;
  border: 1px solid var(--line);
  border-left: 4px solid var(--red);
  border-radius: 8px;
  background: var(--light);
  padding: 14px 16px;
}

.program-network-parent span { font-weight: 800; }
.program-network-parent a { color: var(--ink-2); font-weight: 800; }

.wcn-network-section > p {
  max-width: 780px;
  color: var(--muted);
  line-height: 1.65;
}

.wcn-center-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 20px;
}

.wcn-center-card {
  display: grid;
  grid-template-columns: 68px minmax(0, 1fr) auto;
  gap: 13px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--light);
  padding: 14px;
  color: var(--ink);
  text-decoration: none;
}

.wcn-center-card:hover,
.wcn-center-card:focus-visible { border-color: var(--ink-2); background: #fff; }
.wcn-center-card strong,
.wcn-center-card small { display: block; }
.wcn-center-card small { margin-top: 5px; color: var(--muted); line-height: 1.35; }

.auth-callback-shell {
  display: grid;
  min-height: 64vh;
  place-items: center;
}

.auth-callback-card {
  width: min(100%, 660px);
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  padding: clamp(28px, 6vw, 54px);
  text-align: center;
  box-shadow: 0 24px 60px rgba(7, 21, 37, .1);
}

.auth-callback-card h1 { margin: 12px 0; color: var(--ink); font-size: clamp(32px, 6vw, 48px); }
.auth-callback-card p { margin: 0 auto; max-width: 520px; color: var(--muted); font-size: 17px; line-height: 1.65; }
.auth-callback-card .actions { justify-content: center; margin-top: 24px; }

.auth-callback-mark {
  display: inline-grid;
  width: 58px;
  height: 58px;
  place-items: center;
  border-radius: 50%;
  background: var(--light);
  color: var(--ink);
  font-size: 28px;
  font-weight: 950;
}

.auth-callback-mark.success { background: #e4f3ea; color: #1f7040; }
.auth-callback-mark.error { background: #fae9e7; color: #a3352a; }

.skip-link {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 2000;
  transform: translateY(-150%);
  border-radius: 8px;
  background: #ffffff;
  color: var(--ink);
  padding: 10px 14px;
  font-weight: 900;
  text-decoration: none;
}

.skip-link:focus { transform: translateY(0); }

.container {
  width: min(100% - 40px, 1180px);
  margin: 0 auto;
}

.crisis-bar {
  background: var(--ink);
  color: #ffffff;
  font-size: 13px;
  font-weight: 700;
}

.crisis-inner {
  display: flex;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
  padding: 9px 0;
}

.crisis-inner strong {
  color: var(--gold-2);
}

.site-header {
  background: var(--ink);
  color: #ffffff;
}

.top-nav {
  min-height: 72px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 24px;
}

.brand-lockup {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  font-size: 16px;
  font-weight: 950;
  text-transform: uppercase;
}

.brand-lockup img {
  width: 46px;
  height: 46px;
  object-fit: contain;
  border-radius: 50%;
  background: #ffffff;
}

.nav-links {
  display: flex;
  justify-content: center;
  gap: 26px;
  color: #d8e2ed;
  font-size: 14px;
  font-weight: 850;
}

.nav-links a {
  text-decoration: none;
}

.nav-links a:hover,
.nav-links a:focus-visible {
  color: #ffffff;
}

.nav-links a.active,
.nav-links a[aria-current="page"] {
  color: var(--gold-2);
}

.nav-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.nav-action,
.nav-toggle,
.mini-btn,
.btn,
.hero-search button,
.newsletter-form button,
.guide-chips button {
  border: 0;
  cursor: pointer;
  font-weight: 900;
}

.nav-action,
.nav-toggle {
  min-height: 44px;
  border-radius: 8px;
  padding: 0 16px;
  background: #ffffff;
  color: var(--ink);
  border: 1px solid var(--line);
}

.nav-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.nav-action.dark {
  background: var(--ink);
  color: #ffffff;
  border-color: var(--ink);
}

.nav-toggle {
  display: none;
}

.hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(320px, 0.88fr);
  gap: 44px;
  align-items: center;
  padding: 58px 0 66px;
}

.eyebrow,
.section-kicker {
  display: inline-flex;
  align-items: center;
  color: #8a6728;
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: 0;
}

.eyebrow.dark,
.section-kicker.gold {
  color: var(--gold-2);
}

h1,
h2,
h3,
h4,
p {
  overflow-wrap: anywhere;
}

h1 {
  max-width: 760px;
  margin: 22px 0 20px;
  font-size: 64px;
  line-height: 1.03;
  letter-spacing: 0;
}

.hero-copy {
  max-width: 760px;
  color: #cfdae7;
  font-size: 20px;
  line-height: 1.65;
  margin: 0;
}

.hero-search {
  max-width: 720px;
  margin-top: 30px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  padding: 8px;
  background: #ffffff;
  border-radius: 8px;
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.22);
}

.hero-search input,
input,
select,
textarea {
  width: 100%;
  min-height: 46px;
  border: 1px solid #c8d2df;
  border-radius: 8px;
  padding: 12px 14px;
  color: var(--ink);
  background: #ffffff;
  outline: none;
}

.hero-search input {
  border: 0;
}

.hero-search button,
.newsletter-form button {
  min-height: 46px;
  border-radius: 8px;
  padding: 0 20px;
  background: var(--gold);
  color: var(--ink);
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--ink-2);
  box-shadow: 0 0 0 3px rgba(11, 39, 72, 0.12);
}

.actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  border-radius: 8px;
  padding: 0 18px;
  text-decoration: none;
  transition: transform 0.15s ease, background 0.15s ease;
}

.btn:hover,
.btn:focus-visible,
.mini-btn:hover,
.mini-btn:focus-visible {
  transform: translateY(-1px);
}

.btn-gold {
  background: var(--gold);
  color: var(--ink);
}

.btn-gold:hover {
  background: var(--gold-2);
}

.btn-outline {
  border: 1px solid rgba(255, 255, 255, 0.35);
  background: transparent;
  color: #ffffff;
}

.btn-outline.dark-text {
  border-color: var(--line);
  color: var(--ink);
  background: #ffffff;
}

.btn-dark {
  background: var(--ink);
  color: #ffffff;
}

.full-width {
  width: 100%;
}

.hero-stats {
  max-width: 720px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  margin-top: 34px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.12);
}

.hero-stats div {
  padding: 16px;
  background: rgba(10, 27, 47, 0.92);
}

.hero-stats strong {
  display: block;
  font-size: 28px;
  line-height: 1;
}

.hero-stats span {
  display: block;
  margin-top: 6px;
  color: #9fb0c4;
  font-size: 11px;
  font-weight: 850;
  text-transform: uppercase;
}

.trust-card {
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
  padding: 34px;
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.28);
}

.brand-logo {
  display: block;
  width: 150px;
  height: 150px;
  margin: 0 auto;
  object-fit: contain;
  border-radius: 50%;
  background: #ffffff;
}

.trust-card h2 {
  margin: 24px 0 0;
  text-align: center;
  font-size: 28px;
  letter-spacing: 0;
}

.trust-card p {
  color: #cfdae7;
  text-align: center;
  line-height: 1.6;
}

.check-row {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  color: #f4f6f8;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.45;
}

.text-link {
  color: var(--ink-2);
  font-weight: 950;
  text-decoration: none;
}

main {
  background: #ffffff;
}

.mission-section,
.programs-section,
.rankings-section,
.newsletter-section {
  padding: 60px 0;
}

.mission-grid {
  display: grid;
  grid-template-columns: minmax(260px, 0.75fr) minmax(0, 1.25fr);
  gap: 42px;
  align-items: start;
}

.section-title {
  margin: 10px 0 0;
  font-size: 40px;
  line-height: 1.08;
  letter-spacing: 0;
}

.section-title.large {
  font-size: 48px;
}

.section-subtitle,
.mission-copy,
.mission-copy p {
  color: var(--muted);
  line-height: 1.75;
}

.mission-copy p {
  margin: 0 0 16px;
}

.mission-copy h3 {
  margin: 24px 0 8px;
  color: var(--ink);
  font-size: 18px;
}

.steps-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  margin-top: 46px;
}

.step-card,
.program-card,
.featured-card,
.organization-card,
.plan-card,
.insight-card,
.profile-detail-box {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--card);
  box-shadow: 0 14px 34px rgba(7, 21, 37, 0.06);
}

.step-card {
  padding: 28px;
}

.icon-box {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 8px;
  background: var(--ink-2);
  color: #ffffff;
  font-weight: 950;
}

.step-card h3,
.insight-card h2,
.plan-card h3 {
  margin: 20px 0 0;
  font-size: 22px;
}

.step-card p,
.insight-card p,
.plan-card p {
  color: var(--muted);
  line-height: 1.65;
}

.organization-cta,
.boards-section {
  background: var(--ink);
  color: #ffffff;
  padding: 72px 0;
}

.organization-cta-grid {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 34px;
  align-items: center;
}

.organization-cta h2,
.organization-cta h1,
.boards-section h2,
.boards-section h1 {
  max-width: 720px;
  margin: 12px 0 0;
  font-size: 40px;
  line-height: 1.12;
}

.organization-cta p,
.boards-section .section-subtitle {
  max-width: 820px;
  color: #cfdae7;
}

.organization-cta .organization-independence {
  margin-bottom: 0;
  color: #ffffff;
}

.cta-actions {
  display: grid;
  gap: 12px;
}

.category-section,
.organizations-section,
.plans-section {
  background: var(--light);
  padding: 72px 0;
}

.section-head {
  display: grid;
  grid-template-columns: 1fr minmax(260px, 390px);
  gap: 24px;
  align-items: end;
  margin-bottom: 28px;
}

.section-head.simple {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
}

.section-head.center {
  display: block;
  text-align: center;
}

.category-shortcuts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.category-shortcuts button,
.category-shortcuts a {
  min-height: 72px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--ink);
  padding: 16px;
  text-align: left;
  font-weight: 950;
  cursor: pointer;
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(7, 21, 37, 0.04);
}

.category-shortcuts button:hover,
.category-shortcuts button:focus-visible,
.category-shortcuts a:hover,
.category-shortcuts a:focus-visible {
  border-color: var(--ink-2);
}

.category-shortcut-card {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) auto;
  gap: 13px;
  align-items: center;
}

.category-shortcut-card strong,
.category-shortcut-card small {
  display: block;
}

.category-shortcut-card small {
  margin-top: 5px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
}

.category-card-icon {
  display: inline-grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid #b8c8d2;
  border-radius: 10px;
  background: linear-gradient(145deg, #f8fbfd, #e8eef2);
  color: var(--ink);
  font-family: var(--font-heading);
  font-size: 12px;
  font-weight: 950;
  letter-spacing: .05em;
}

.featured-grid,
.program-grid,
.organization-grid,
.plan-grid,
.insight-grid {
  display: grid;
  gap: 20px;
}

.featured-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: 56px;
}

.program-browser {
  padding-top: 10px;
}

.location-search {
  display: grid;
  gap: 7px;
  min-width: min(100%, 320px);
  color: #385363;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.location-search input { min-height: 46px; }

.location-search small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.4;
  text-transform: none;
}

.category-bar {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: 0 0 18px;
}

.category-nav-card {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 11px;
  align-items: start;
  min-height: 118px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  color: var(--ink);
  padding: 14px;
  text-align: left;
  cursor: pointer;
  box-shadow: 0 8px 22px rgba(7, 21, 37, .04);
  transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}

.category-nav-card:hover,
.category-nav-card:focus-visible {
  transform: translateY(-2px);
  border-color: var(--ink-2);
  box-shadow: 0 16px 32px rgba(7, 21, 37, .08);
}

.category-nav-card.active {
  border-color: var(--ink);
  box-shadow: inset 0 0 0 1px var(--ink), 0 16px 32px rgba(7, 21, 37, .08);
}

.category-card-copy strong,
.category-card-copy small,
.category-card-count { display: block; }

.category-card-copy strong { font-size: 14px; line-height: 1.25; }
.category-card-copy small { margin-top: 5px; color: var(--muted); font-size: 11px; line-height: 1.35; }
.category-card-count { grid-column: 2; color: var(--ink-2); font-size: 11px; font-weight: 900; }

.chip {
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 0 14px;
  background: #ffffff;
  color: #31455c;
  font-weight: 850;
  cursor: pointer;
}

.chip.active {
  background: var(--ink);
  color: #ffffff;
  border-color: var(--ink);
}

.toolbar,
.organization-tools,
.directory-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.toolbar,
.organization-tools {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 14px;
}

.showing,
.directory-meta {
  color: var(--muted);
  font-size: 14px;
  font-weight: 850;
}

.prototype-note {
  margin: 16px 0 24px;
  border: 1px solid #ecd08b;
  border-radius: 8px;
  padding: 14px 16px;
  background: #fff8e8;
  color: #6b501e;
  line-height: 1.55;
}

.program-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.location-fallback-note {
  grid-column: 1 / -1;
  display: grid;
  gap: 5px;
  border: 1px solid #c6d4dc;
  border-left: 4px solid var(--gold);
  border-radius: 8px;
  background: #f7fafb;
  padding: 16px 18px;
  color: var(--muted);
  line-height: 1.5;
}

.location-fallback-note strong { color: var(--ink); }

.program-card,
.featured-card,
.organization-card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: 22px;
  transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}

.program-card:hover,
.featured-card:hover,
.organization-card:hover {
  transform: translateY(-2px);
  border-color: var(--ink-2);
  box-shadow: 0 20px 44px rgba(7, 21, 37, 0.09);
}

.program-card-heading {
  display: grid;
  grid-template-columns: 80px minmax(0, 1fr);
  gap: 16px;
  align-items: center;
}

.featured-card .program-card-heading {
  grid-template-columns: 72px minmax(0, 1fr);
}

.featured-card .program-card-heading h3 {
  margin: 10px 0 0;
}

.featured-card .program-card-heading h3 a {
  text-decoration: none;
}

.featured-card .program-card-heading h3 a:hover,
.featured-card .program-card-heading h3 a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.program-logo {
  display: grid;
  width: 80px;
  height: 64px;
  flex: 0 0 auto;
  place-items: center;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #ffffff;
}

.program-logo img {
  width: 88%;
  height: 88%;
  object-fit: contain;
}

.program-logo.logo-on-dark {
  border-color: #344b65;
  background: #12263f;
}

.program-logo-featured {
  width: 72px;
  height: 72px;
}

.program-logo-detail {
  width: 96px;
  height: 96px;
}

.official-logo.program-logo-detail {
  width: 110px;
  height: 76px;
}

.program-logo-ranking {
  width: 38px;
  height: 38px;
  border-radius: 8px;
  font-size: 11px;
}

.program-logo-organization {
  width: 72px;
  height: 72px;
  margin-top: -36px;
  border: 4px solid #ffffff;
  box-shadow: 0 8px 18px rgba(7, 21, 37, 0.12);
}

.program-logo-fallback {
  width: 64px;
  background: linear-gradient(145deg, var(--ink-2), #173f66);
  color: #ffffff;
  font-weight: 950;
  letter-spacing: 0.04em;
}

.provider-name {
  margin: 7px 0 0;
  color: var(--muted);
  font-size: 13px;
  font-weight: 750;
  line-height: 1.4;
}

.program-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  align-items: center;
  margin-top: 16px;
}

.program-card-meta .category,
.program-card-meta .location {
  margin: 0;
}

.program-card-meta .location {
  font-size: 13px;
}

.program-card-rating {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  margin-top: 18px;
  border-top: 1px solid var(--line);
  padding-top: 16px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 750;
}

.program-card-signal {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  margin-top: 12px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.signal-confirmed,
.signal-needs-check,
.field-status {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  min-height: 24px;
  border-radius: 999px;
  padding: 0 8px;
  font-size: 11px;
  font-weight: 900;
}

.signal-confirmed { background: #e7f6ee; color: #18633f; }
.signal-needs-check,
.field-status { background: #fff5dc; color: #775617; }

.official-domain {
  min-width: 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  overflow-wrap: anywhere;
}

.card-top {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
}

.program-name,
.organization-name {
  margin: 0;
  font-size: 19px;
  line-height: 1.25;
}

.program-name a {
  color: inherit;
  text-decoration: none;
}

.program-name a:hover,
.program-name a:focus-visible {
  color: var(--ink-2);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.category,
.badge,
.org-status {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 26px;
  border-radius: 999px;
  padding: 0 10px;
  background: var(--soft);
  color: #35526f;
  font-size: 12px;
  font-weight: 900;
}

.category {
  margin-top: 8px;
}

.demo-score {
  white-space: nowrap;
  font-weight: 950;
  color: var(--ink-2);
}

.demo-score.empty-score,
.empty-score {
  color: var(--muted);
  font-size: 13px;
}

.desc,
.location,
.board,
.review-count {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.6;
}

.desc {
  flex: 1;
  margin: 16px 0 0;
}

.location {
  margin-top: 14px;
  font-weight: 750;
}

.tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}

.tag {
  border-radius: 999px;
  background: var(--soft);
  padding: 6px 9px;
  color: #35526f;
  font-size: 12px;
  font-weight: 850;
}

.board {
  margin-top: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 13px;
  background: #f8fafc;
}

.board-title {
  margin-bottom: 6px;
  color: var(--ink);
  font-weight: 950;
}

.board p {
  margin: 0;
}

.board small {
  display: block;
  margin-top: 6px;
  color: var(--muted);
  font-weight: 850;
}

.card-foot,
.featured-card footer,
.organization-card footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}

.card-actions,
.shortlist-actions,
.shortlist-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.save-program-button.saved { border-color: #9e7a31; background: #fff6de; color: #674b16; }

.directory-load-more {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 12px;
  margin: 28px 0 8px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.shortlist-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-top: 16px;
  border: 1px solid #d9c28e;
  border-radius: 8px;
  background: #fffaf0;
  padding: 16px;
}

.shortlist-panel .section-kicker,
.shortlist-panel strong,
.shortlist-panel p { display: block; }
.shortlist-panel strong { margin-top: 4px; }
.shortlist-panel p { margin: 4px 0 0; color: var(--muted); font-size: 13px; }

.shortlist-compare { margin-top: 28px; border-top: 1px solid var(--line); padding-top: 28px; }

.shortlist-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.shortlist-card {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 18px;
}

.shortlist-card .program-logo { width: 64px; height: 56px; }
.shortlist-card h3 { margin: 8px 0 0; font-size: 18px; line-height: 1.25; }
.shortlist-card dl { grid-column: 1 / -1; display: grid; gap: 11px; margin: 6px 0 0; }
.shortlist-card dl div { border-top: 1px solid var(--line); padding-top: 10px; }
.shortlist-card dt { color: var(--muted); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.shortlist-card dd { margin: 4px 0 0; color: #344e66; font-size: 13px; line-height: 1.45; }
.shortlist-card-actions { grid-column: 1 / -1; justify-content: flex-start; }

.program-picker-results { display: grid; gap: 7px; margin: 10px 0 2px; }

.program-picker-option {
  display: grid;
  gap: 3px;
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 12px 14px;
  color: var(--ink);
  cursor: pointer;
  text-align: left;
}

.program-picker-option:hover,
.program-picker-option:focus-visible { border-color: var(--ink-2); background: var(--soft); }
.program-picker-option span,
.picker-selected { color: var(--muted); font-size: 13px; }
.picker-selected { margin: 0; padding: 10px 0; }

.mini-btn {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  border: 1px solid #c8d2df;
  border-radius: 8px;
  background: #ffffff;
  color: var(--ink);
  padding: 0 12px;
}

.organization-tools {
  display: grid;
  grid-template-columns: 1fr auto;
}

.checkbox-control {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 46px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 0 14px;
  background: #ffffff;
  color: var(--ink);
  font-weight: 850;
}

.checkbox-control input {
  width: 16px;
  height: 16px;
  min-height: auto;
  accent-color: var(--ink-2);
}

.directory-meta {
  margin: 20px 0;
}

.organization-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.organization-card {
  padding: 0;
  overflow: hidden;
}

.org-cover {
  height: 86px;
  background: linear-gradient(135deg, var(--ink-2), #1d4f7d);
}

.org-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 0 22px 22px;
}

.org-icon {
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  margin-top: -28px;
  border: 4px solid #ffffff;
  border-radius: 8px;
  background: #ffffff;
  color: var(--ink-2);
  box-shadow: 0 8px 18px rgba(7, 21, 37, 0.12);
  font-weight: 950;
}

.org-title-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  margin-top: 16px;
}

.plans-section {
  background: #ffffff;
}

.plan-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  margin-top: 34px;
}

.plan-card {
  position: relative;
  padding: 28px;
}

.featured-plan {
  border-color: var(--gold);
  box-shadow: 0 20px 50px rgba(214, 173, 92, 0.18);
}

.popular-pill {
  position: absolute;
  top: 20px;
  right: 20px;
  border-radius: 999px;
  background: var(--gold);
  color: var(--ink);
  padding: 5px 9px;
  font-size: 12px;
  font-weight: 950;
}

.plan-card ul {
  display: grid;
  gap: 10px;
  margin: 22px 0;
  padding: 0;
  list-style: none;
  color: #34495f;
  font-weight: 800;
  font-size: 14px;
}

.plan-card li::before {
  content: "\2713";
  margin-right: 8px;
  color: var(--success);
}

.billing-note {
  max-width: 760px;
  margin: 28px auto 0;
  color: var(--muted);
  text-align: center;
  line-height: 1.6;
  font-size: 14px;
}

.boards-grid {
  display: grid;
  grid-template-columns: 0.82fr 1.18fr;
  gap: 52px;
  align-items: start;
}

.boards-copy {
  position: sticky;
  top: 96px;
}

.board-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 26px;
}

.board-note {
  max-width: 650px;
  margin: 18px 0 0;
  color: #9fb0c4;
  font-size: 14px;
  line-height: 1.6;
}

.community-panel {
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.06);
  padding: 16px;
}

.community-panel-head,
.question-footer,
.answer-card div {
  display: flex;
  align-items: center;
  gap: 10px;
}

.community-panel-head {
  justify-content: space-between;
  margin-bottom: 14px;
}

.community-panel-head span,
.question-meta span:first-child {
  color: var(--gold-2);
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
}

.community-panel-head strong {
  display: block;
  margin-top: 4px;
  font-size: 18px;
}

.mini-btn.light {
  border-color: rgba(255, 255, 255, 0.24);
  background: rgba(255, 255, 255, 0.1);
  color: #ffffff;
}

.board-filter-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 14px;
}

.board-filter {
  min-height: 38px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
  color: #dce6f1;
  cursor: pointer;
  font-weight: 900;
}

.board-filter.active {
  border-color: var(--gold);
  background: var(--gold);
  color: var(--ink);
}

.community-status {
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  background: rgba(1, 20, 38, 0.34);
  padding: 12px;
  color: #9fb0c4;
  font-size: 14px;
  line-height: 1.5;
}

.community-empty {
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  background: rgba(1, 20, 38, 0.34);
  padding: 18px;
  color: #cfdae7;
  line-height: 1.55;
}

.community-question-grid {
  display: grid;
  gap: 12px;
  margin-top: 14px;
}

.community-question-card {
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
  padding: 16px;
}

.community-question-card.starter {
  border-color: rgba(218, 177, 88, 0.42);
}

.question-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 9px;
}

.question-meta span:last-child {
  color: #cfd9e5;
  font-size: 12px;
  font-weight: 850;
}

.community-question-card h3 {
  margin: 0;
  font-size: 18px;
  line-height: 1.35;
}

.community-question-card p {
  margin: 10px 0 0;
  color: #cfdae7;
  line-height: 1.6;
}

.question-footer {
  flex-wrap: wrap;
  margin-top: 14px;
}

.question-footer small,
.answer-card small {
  color: #9fb0c4;
  font-weight: 850;
}

.status-pill {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.12);
  color: #ffffff;
  padding: 0 9px;
  font-size: 12px;
  font-weight: 950;
}

.status-pill.pending {
  background: rgba(218, 177, 88, 0.2);
  color: #ffe4a1;
}

.question-footer .mini-btn {
  margin-left: auto;
}

.field-label {
  display: block;
  margin-bottom: 6px;
  color: var(--ink);
  font-size: 13px;
  font-weight: 900;
}

.field-help {
  display: block;
  margin-top: 6px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

[hidden] {
  display: none !important;
}

.community-thread-modal {
  max-width: 760px;
}

.community-answers {
  display: grid;
  gap: 10px;
  margin-top: 18px;
}

.answer-empty {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--light);
  padding: 16px;
  text-align: center;
}

.answer-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--light);
  padding: 16px;
}

.answer-card p {
  margin: 0 0 12px;
  color: var(--ink);
}

.answer-card .status-pill {
  background: var(--soft);
  color: var(--ink-2);
}

.answer-card .status-pill.pending {
  background: #fff2ce;
  color: #785b24;
}

.reply-form {
  margin-top: 18px;
}

.insight-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.insight-card {
  padding: 34px;
}

.insight-card.muted {
  background: var(--light);
}

.rankings-grid.compact {
  margin-top: 18px;
}

.ranking-card {
  border-top: 1px solid var(--line);
  padding: 12px 0;
}

.ranking-card h3 {
  margin: 0;
  font-size: 16px;
}

.ranking-row {
  display: grid;
  grid-template-columns: 30px 38px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: start;
  padding: 9px 0;
  color: var(--muted);
  font-size: 13px;
  text-decoration: none;
}

.ranking-row:hover,
.ranking-row:focus-visible {
  color: var(--ink);
}

.rank-num {
  display: grid;
  width: 24px;
  height: 24px;
  place-items: center;
  border-radius: 999px;
  background: var(--ink);
  color: #ffffff;
  font-size: 12px;
  font-weight: 950;
}

.rank-score {
  color: var(--ink);
  font-weight: 950;
}

.guide-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 20px 0;
}

.guide-chips button {
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #ffffff;
  color: var(--ink-2);
  padding: 0 12px;
}

.as-button {
  border: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;
}

.newsletter-section {
  background: var(--light);
}

.newsletter-card {
  max-width: 780px;
  text-align: center;
}

.newsletter-card h2 {
  margin: 12px 0 0;
  font-size: 38px;
}

.newsletter-card p,
.newsletter-card small {
  color: var(--muted);
}

.newsletter-form {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  margin: 26px auto 8px;
  max-width: 580px;
}

.site-footer {
  background: var(--ink);
  color: #ffffff;
  padding: 64px 0 36px;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 0.7fr 0.9fr;
  gap: 54px;
}

.site-footer img {
  width: 76px;
  height: 76px;
  object-fit: contain;
  border-radius: 50%;
  background: #ffffff;
}

.site-footer h3 {
  color: var(--gold-2);
  text-transform: uppercase;
  font-size: 16px;
}

.site-footer h4 {
  margin-top: 0;
}

.site-footer p,
.site-footer a,
.footer-bottom {
  color: #c9d6e4;
  line-height: 1.7;
  font-size: 14px;
}

.site-footer a {
  display: block;
  text-decoration: none;
  margin: 8px 0;
}

.site-footer a:hover,
.site-footer a:focus-visible {
  color: #ffffff;
}

.footer-bottom {
  margin-top: 42px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  padding-top: 22px;
}

.modal-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(7, 21, 37, 0.76);
  z-index: 100;
}

.modal {
  width: min(760px, 100%);
  max-height: 88vh;
  overflow-y: auto;
  border-radius: 8px;
  background: #ffffff;
  padding: 28px;
  box-shadow: 0 24px 90px rgba(0, 0, 0, 0.35);
}

.organization-modal {
  width: min(1080px, 100%);
}

.modal-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 18px;
}

.modal h3 {
  margin: 0;
  font-size: 32px;
}

.modal p {
  color: var(--muted);
  line-height: 1.65;
}

.icon-btn {
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 50%;
  background: var(--soft);
  color: var(--ink);
  cursor: pointer;
  font-weight: 950;
}

.modal-pill {
  display: inline-flex;
  width: fit-content;
  border-radius: 999px;
  background: var(--ink);
  color: #ffffff;
  padding: 6px 10px;
  font-size: 12px;
  font-weight: 950;
  margin-bottom: 10px;
}

.profile-score-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 20px 0;
}

.profile-score-grid div {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--light);
  padding: 16px;
}

.profile-score-grid strong {
  display: block;
  font-size: 22px;
}

.profile-score-grid span {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
  text-transform: uppercase;
}

.profile-detail-box {
  padding: 18px;
  margin-top: 14px;
}

.profile-detail-box h4 {
  margin: 0 0 10px;
}

.profile-detail-box h4:not(:first-child) {
  margin-top: 22px;
}

.profile-detail-box p {
  margin: 0;
}

.dimension-grid,
.linked-programs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.dimension-grid span,
.linked-programs span {
  border-radius: 999px;
  background: var(--soft);
  padding: 8px 10px;
  color: #35526f;
  font-size: 12px;
  font-weight: 850;
}

.claim-banner {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 20px;
  align-items: center;
  border: 1px solid #ecd08b;
  border-radius: 8px;
  background: #fff8e8;
  padding: 18px;
  margin: 22px 0;
}

.claim-banner h4 {
  margin: 0;
}

.claim-banner p {
  margin: 6px 0 0;
  color: #785b24;
}

.organization-modal-grid {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 18px;
}

.empty-updates {
  text-align: center;
}

.form-grid {
  display: grid;
  gap: 12px;
  margin-top: 16px;
}

.auth-form {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  margin-top: 18px;
}

.auth-form[hidden],
.signed-in-panel[hidden] {
  display: none;
}

.signed-in-panel {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--light);
  padding: 18px;
  margin-top: 18px;
}

.signed-in-panel p {
  margin-top: 0;
}

textarea {
  min-height: 112px;
  resize: vertical;
}

.consent-line {
  display: flex;
  gap: 9px;
  align-items: flex-start;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.4;
}

.consent-line input {
  width: auto;
  min-height: auto;
  margin-top: 3px;
}

.modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 18px;
}

[hidden] {
  display: none !important;
}

.internal-route .site-header {
  box-shadow: 0 10px 28px rgba(7, 21, 37, 0.14);
}

.home-featured .featured-grid {
  margin-bottom: 0;
}

.difference-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-top: 42px;
}

.difference-card {
  display: grid;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--soft);
  padding: 20px;
}

.difference-card strong {
  color: var(--ink);
  font-size: 16px;
}

.difference-card span {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.55;
}

.trust-section {
  padding: 72px 0;
  background: #ffffff;
}

.page-heading {
  max-width: 850px;
  margin-bottom: 34px;
}

.page-heading h1 {
  margin: 10px 0 14px;
  color: var(--ink);
  font-size: clamp(40px, 6vw, 60px);
  line-height: 1.05;
}

.page-heading p {
  margin: 0;
  color: var(--muted);
  font-size: 18px;
  line-height: 1.7;
}

.directory-page {
  background: var(--light);
}

.directory-filters {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(190px, 250px);
  gap: 20px;
  align-items: end;
  margin-bottom: 18px;
}

.directory-filters .category-bar {
  margin: 0;
  grid-column: 1 / -1;
  order: 3;
}

.directory-filters .location-search { order: 1; }
.directory-filters .location-filter { order: 2; }

.location-filter {
  display: grid;
  gap: 7px;
}

.location-filter span {
  color: var(--ink-2);
  font-size: 13px;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.location-filter select {
  min-height: 44px;
}

.directory-end-action {
  display: flex;
  justify-content: center;
  margin-top: 30px;
}

.content-shell {
  display: grid;
  gap: 10px;
}

.mission-introduction {
  max-width: 940px;
  margin: 0 0 28px;
  padding: 4px 0 4px 28px;
  border-left: 4px solid var(--gold);
}

.mission-introduction p {
  margin: 0 0 18px;
  color: var(--muted);
  font-size: 17px;
  line-height: 1.78;
}

.mission-introduction p:last-child {
  margin-bottom: 0;
}

.mission-introduction .mission-emphasis {
  color: var(--ink);
  font-size: clamp(20px, 2.3vw, 24px);
  line-height: 1.35;
}

.content-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.content-grid h2,
.legal-stack h2,
.action-card h2 {
  margin-top: 0;
  color: var(--ink);
}

.content-grid p,
.legal-stack p {
  color: var(--muted);
  line-height: 1.7;
}

.rankings-layout {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.rankings-layout .insight-card h2 {
  margin-top: 0;
}

.rankings-layout .empty-state {
  padding-inline: 0;
}

.action-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 470px);
  gap: 48px;
  align-items: start;
}

.action-card {
  display: grid;
  gap: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 28px;
  box-shadow: 0 14px 34px rgba(7, 21, 37, 0.06);
}

.action-card p {
  margin: 0;
  color: var(--muted);
  line-height: 1.65;
}

.action-card .actions {
  margin-top: 0;
}

.account-signout {
  justify-self: start;
  margin-top: 8px;
}

.legal-stack {
  display: grid;
  gap: 18px;
  max-width: 900px;
}

.route-page {
  min-height: 60vh;
  background: var(--light);
}

.route-shell {
  padding: 64px 0 78px;
}

.route-shell > .text-link {
  display: inline-flex;
  margin-bottom: 24px;
}

.program-route,
.admin-route {
  display: grid;
  gap: 22px;
}

.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-items: center;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.breadcrumb a {
  color: var(--ink-2);
  text-underline-offset: 3px;
}

.program-hero-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(230px, 310px);
  gap: 24px;
  align-items: stretch;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 28px;
  box-shadow: 0 14px 34px rgba(7, 21, 37, 0.06);
}

.program-hero-panel h1,
.admin-route h1 {
  color: var(--ink);
  font-size: 48px;
}

.program-hero-panel h1 {
  margin: 16px 0 12px;
}

.admin-route h1 {
  margin: 10px 0 0;
}

.program-hero-panel p {
  color: var(--muted);
  line-height: 1.7;
}

.program-identity-large {
  display: flex;
  gap: 18px;
  align-items: center;
}

.program-identity-large .provider-name {
  max-width: 620px;
}

.program-subtype-badge {
  display: inline-flex;
  margin-left: 0.45rem;
  padding: 0.28rem 0.58rem;
  border: 1px solid rgba(31, 58, 95, 0.2);
  border-radius: 999px;
  color: var(--navy);
  background: rgba(238, 242, 247, 0.9);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.official-link-block {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 16px;
  align-items: center;
  margin-top: 22px;
  border: 1px solid #e1c16f;
  border-radius: 10px;
  background: #fff9ea;
  padding: 14px;
}

.official-link-block > span {
  min-width: 0;
  color: #6b501e;
  font-size: 13px;
  font-weight: 850;
  overflow-wrap: anywhere;
}

.official-site-cta {
  text-align: center;
}

.official-source-pending,
.program-affiliation-note {
  display: grid;
  gap: 5px;
  border-radius: 8px;
  padding: 16px 18px;
}

.official-source-pending {
  margin-top: 22px;
  border: 1px solid var(--line);
  background: var(--light);
}

.official-source-pending span,
.program-affiliation-note span {
  color: var(--muted);
  line-height: 1.55;
}

.program-affiliation-note {
  border: 1px solid var(--line);
  background: #ffffff;
  font-size: 13px;
}

.program-rating-panel {
  display: grid;
  align-content: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--soft);
  padding: 22px;
}

.program-rating-panel strong {
  display: block;
  font-size: 38px;
  line-height: 1;
}

.program-rating-panel span {
  display: block;
  margin-top: 8px;
  color: var(--ink-2);
  font-weight: 950;
}

.program-rating-panel p {
  margin: 14px 0 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.55;
}

.program-detail-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(280px, 0.9fr);
  gap: 18px;
}

.experience-dimensions-intro {
  margin: 0 0 16px;
  color: var(--muted);
  line-height: 1.6;
}

.program-level-note {
  display: grid;
  gap: 4px;
  border-left: 4px solid var(--gold);
  border-radius: 0 8px 8px 0;
  background: var(--soft);
  padding: 16px 18px;
}

.program-level-note strong {
  color: var(--ink);
}

.program-level-note span {
  color: var(--muted);
  line-height: 1.55;
}

/* Next-round trust, contribution, and organization surfaces */
.category-ranking-section {
  margin: 1.5rem 0 2.25rem;
  padding: 1.5rem;
  border: 1px solid #d8c58d;
  border-radius: 18px;
  background: linear-gradient(135deg, #fffdf6, #f7f2e4);
}

.category-ranking-section .ranking-row {
  background: #fff;
}

.contribution-shell {
  max-width: 980px;
}

.contribution-choice-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin: 1.5rem 0;
}

.contribution-choice {
  display: grid;
  gap: .35rem;
  padding: 1.25rem;
  text-align: left;
  color: #172119;
  border: 2px solid #d8ddd7;
  border-radius: 16px;
  background: #fff;
  cursor: pointer;
}

.contribution-choice.active {
  border-color: #a77b24;
  box-shadow: 0 0 0 3px rgba(192, 149, 61, .16);
}

.contribution-form {
  max-width: none;
}

.information-divider {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 2.5rem 0 1.25rem;
  color: #62501e;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.information-divider::before,
.information-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: #d7c48c;
}

.information-divider.community {
  color: #274936;
}

.information-divider.community::before,
.information-divider.community::after {
  background: #a9c1b1;
}

.program-information-grid,
.organization-facts-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.program-info-section h2,
.organization-facts-grid h2,
.source-transparency-box h2 {
  margin-top: 0;
  font-size: 1.08rem;
}

.source-transparency-box {
  margin-top: 1rem;
  border-left: 5px solid #b68b32;
}

.profile-completeness {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin: 0 0 1rem;
  border: 1px solid #e4cd94;
  border-radius: 8px;
  background: #fff9ea;
  padding: 14px 16px;
  color: #664b16;
  line-height: 1.5;
}

.profile-completeness strong { white-space: nowrap; }
.profile-completeness.complete { border-color: #b9dbc7; background: #f1fbf4; color: #1b6944; }
.program-info-section.needs-confirmation { border-color: #e4cd94; }
.program-info-section .field-status { margin-top: 2px; }

.official-source-list {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem;
  margin: 1rem 0;
}

.official-source-list a {
  padding: .55rem .75rem;
  border-radius: 9px;
  background: #f5f0df;
  font-weight: 700;
}

.organization-hero-panel {
  margin-bottom: 1.25rem;
  padding: clamp(1.4rem, 4vw, 2.5rem);
  border-radius: 22px;
  background: linear-gradient(135deg, #12281d, #244b35);
  color: #fff;
}

.organization-identity-large {
  display: flex;
  align-items: center;
  gap: 1.15rem;
}

.organization-identity-large h1 {
  margin: .3rem 0 0;
  color: #fff;
}

.organization-hero-panel .actions {
  margin-top: 1.25rem;
}

.organization-programs-section {
  margin-top: 2.25rem;
}

.profile-interests {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .6rem 1rem;
  padding: 1rem;
  border: 1px solid #d8ddd7;
  border-radius: 12px;
}

.discount-success-state {
  display: grid;
  gap: .55rem;
  margin: 1rem 0;
  padding: 1.25rem;
  border-radius: 14px;
  background: #eaf5ed;
  border: 1px solid #a8ceb2;
}

.discount-success-state > strong {
  font-size: clamp(1.25rem, 3vw, 1.85rem);
  color: #173f29;
}

.discount-success-state > div {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  font-weight: 700;
}

.discount-success-state.early {
  background: #f8f4e7;
  border-color: #ddca94;
}

@media (max-width: 760px) {
  .mission-introduction {
    padding-left: 18px;
    border-left-width: 3px;
  }

  .mission-introduction p {
    font-size: 16px;
    line-height: 1.7;
  }

  .contribution-choice-grid,
  .program-information-grid,
  .organization-facts-grid,
  .profile-interests {
    grid-template-columns: 1fr;
  }

  .organization-identity-large {
    align-items: flex-start;
  }
}

.section-title.small {
  font-size: 26px;
}

.detail-list {
  display: grid;
  grid-template-columns: minmax(120px, auto) 1fr;
  gap: 12px 18px;
  margin: 0;
}

.detail-list dt {
  color: var(--ink-2);
  font-weight: 950;
}

.detail-list dd {
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}

.dimension-score-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.dimension-score-grid div {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--light);
  padding: 14px;
}

.dimension-score-grid strong {
  display: block;
  font-size: 22px;
  color: var(--ink);
}

.dimension-score-grid span {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
  text-transform: uppercase;
}

.approved-review {
  border-top: 1px solid var(--line);
  padding: 18px 0;
}

.approved-review:first-of-type {
  border-top: 0;
}

.review-head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
  margin-bottom: 10px;
}

.review-head strong,
.review-head span {
  display: block;
}

.review-head span {
  margin-top: 5px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.review-dimensions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 14px 0;
}

.review-dimensions span {
  border-radius: 999px;
  background: var(--soft);
  padding: 7px 10px;
  color: #35526f;
  font-size: 12px;
  font-weight: 850;
}

.empty-state {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 18px;
  color: var(--muted);
  line-height: 1.55;
}

.empty-state strong {
  display: block;
  color: var(--ink);
  margin-bottom: 4px;
}

.empty-state p {
  margin: 0;
}

.empty-state.compact {
  padding: 14px;
}

.empty-state.large {
  max-width: 720px;
  margin: 0 auto;
  padding: 32px;
  text-align: center;
}

.empty-state.error,
.form-status.error {
  border-color: #efb0b0;
  background: #fff1f1;
  color: #8f1d1d;
}

.admin-counts {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
}

.admin-counts div {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 16px;
}

.admin-counts strong {
  display: block;
  font-size: 28px;
}

.admin-counts span {
  display: block;
  margin-top: 5px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
  text-transform: uppercase;
}

.admin-queues {
  display: grid;
  gap: 18px;
}

.admin-queue {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 18px;
  box-shadow: 0 14px 34px rgba(7, 21, 37, 0.06);
}

.admin-queue h2 {
  margin: 0 0 14px;
  font-size: 22px;
}

.admin-item {
  border-top: 1px solid var(--line);
  padding: 16px 0;
}

.admin-item:first-of-type {
  border-top: 0;
}

.admin-item p {
  color: var(--muted);
  line-height: 1.6;
}

.admin-item summary {
  cursor: pointer;
  color: var(--ink-2);
  font-weight: 950;
}

.admin-item-head {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: flex-start;
}

.admin-item-head strong,
.admin-item-head span {
  display: block;
}

.admin-item-head span:not(.status-pill) {
  margin-top: 5px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.admin-note {
  display: grid;
  gap: 6px;
  margin-top: 12px;
  color: var(--ink);
  font-size: 13px;
  font-weight: 900;
}

.admin-note textarea {
  min-height: 74px;
}

.admin-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.form-grid.two-col {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.review-modal {
  width: min(900px, 100%);
}

.review-dimension-panel {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--light);
  padding: 16px;
}

.review-dimension-panel h4 {
  margin: 0 0 6px;
}

.review-dimension-panel > p {
  margin: 0 0 12px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}

.dimension-fields {
  grid-template-columns: repeat(5, minmax(110px, 1fr));
}

.form-status {
  min-height: 24px;
  margin-top: 14px;
  border-radius: 8px;
  color: var(--muted);
  font-size: 14px;
  font-weight: 850;
  line-height: 1.5;
}

.demo-toast {
  position: fixed;
  left: 50%;
  bottom: 26px;
  transform: translateX(-50%) translateY(30px);
  max-width: min(92vw, 520px);
  border-radius: 999px;
  background: var(--ink);
  color: #ffffff;
  padding: 12px 16px;
  font-weight: 850;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease;
  z-index: 999;
}

.demo-toast.show {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* Veteran Discounts */
.home-discounts {
  padding: 72px 0;
  background: linear-gradient(125deg, #06192b 0%, #0b3150 65%, #164c59 100%);
  color: #fff;
}

.home-discounts-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 60px;
  align-items: center;
}

.home-discounts .section-title { color: #fff; }
.home-discounts p { color: #d9e5ec; line-height: 1.75; max-width: 620px; }
.home-discounts .section-kicker { color: var(--gold-2); }

.home-discount-grid { display: grid; gap: 12px; }
.home-discount-card {
  display: grid;
  grid-template-columns: 54px 1fr;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 14px;
  background: rgba(255,255,255,.08);
  text-decoration: none;
  transition: transform .18s ease, background .18s ease;
}
.home-discount-card:hover { transform: translateX(5px); background: rgba(255,255,255,.13); }
.home-discount-card span { display: grid; gap: 3px; }
.home-discount-card small { color: var(--gold-2); font-weight: 900; }

.discounts-directory { background: #f3f6f4; min-height: 100vh; }
.discounts-hero { background: radial-gradient(circle at 85% 15%, rgba(214,173,92,.22), transparent 28%), linear-gradient(135deg, #061827, #103b50); color: #fff; padding: 82px 0 74px; }
.discounts-hero-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(280px, .6fr); gap: 64px; align-items: center; }
.discounts-hero h1 { max-width: 820px; margin: 10px 0 18px; font-size: clamp(42px, 6vw, 72px); line-height: .98; letter-spacing: -.045em; }
.discounts-hero p { max-width: 760px; color: #d9e4ea; line-height: 1.75; font-size: 18px; }
.section-kicker.light { color: var(--gold-2); }
.discounts-trust-card { display: grid; gap: 12px; padding: 26px; border: 1px solid rgba(255,255,255,.18); border-radius: 18px; background: rgba(255,255,255,.07); box-shadow: 0 20px 50px rgba(0,0,0,.16); }
.discounts-trust-card strong { color: var(--gold-2); font-size: 17px; text-transform: uppercase; letter-spacing: .05em; }
.discounts-trust-card span::before { content: "✓"; color: var(--gold-2); font-weight: 950; margin-right: 9px; }
.discounts-shell { padding: 0 0 90px; }

.discount-filter-panel {
  position: relative;
  z-index: 2;
  margin-top: -30px;
  display: grid;
  grid-template-columns: minmax(210px, 1.5fr) repeat(3, minmax(145px, 1fr)) auto;
  gap: 12px;
  align-items: end;
  padding: 20px;
  border: 1px solid #d6e1dc;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 18px 44px rgba(7,30,39,.12);
}
.discount-filter-panel label, .discount-sort { display: grid; gap: 7px; color: #385363; font-size: 12px; font-weight: 900; text-transform: uppercase; letter-spacing: .04em; }
.discount-filter-panel input, .discount-filter-panel select, .discount-sort select { min-height: 46px; border: 1px solid #cddbd6; border-radius: 9px; background: #f9fbfa; padding: 0 12px; color: var(--ink); text-transform: none; letter-spacing: 0; }
.discount-filter-panel .discount-check { display: flex; flex-direction: row; align-items: center; gap: 8px; min-height: 46px; padding: 0 8px; white-space: nowrap; }
.discount-filter-panel .discount-check input { min-height: 0; width: 18px; height: 18px; }

.discount-rankings, .discount-directory-list { padding-top: 72px; }
.discount-ranking-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.discount-ranking-grid > article { min-height: 210px; padding: 18px; border: 1px solid #d9e3de; border-radius: 14px; background: #fff; }
.discount-ranking-grid h3 { margin: 0 0 14px; font-size: 15px; text-transform: uppercase; letter-spacing: .04em; color: #274c50; }
.discount-rank-row { display: grid; grid-template-columns: 22px 1fr auto; gap: 7px; align-items: center; padding: 9px 0; border-top: 1px solid #edf1ef; text-decoration: none; font-size: 13px; }
.discount-rank-row > span { color: var(--gold); font-weight: 950; }
.discount-rank-row small { font-weight: 900; }
.discount-ranking-empty { padding: 18px 0; color: var(--muted); }
.discount-ranking-empty p { font-size: 13px; line-height: 1.55; }

.discount-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 18px; }
.discount-card { display: grid; gap: 15px; align-content: start; padding: 22px; border: 1px solid #d6e1dc; border-radius: 16px; background: #fff; box-shadow: 0 9px 28px rgba(8,33,42,.055); }
.discount-card:hover { border-color: #9fb9ae; box-shadow: 0 16px 40px rgba(8,33,42,.1); }
.discount-card-top { display: grid; grid-template-columns: 50px minmax(0,1fr); gap: 12px; align-items: center; }
.discount-card-top .discount-value { grid-column: 1 / -1; justify-self: start; }
.discount-category { display: block; color: #3f746b; font-size: 11px; font-weight: 950; text-transform: uppercase; letter-spacing: .07em; }
.discount-card h3 { margin: 3px 0 0; font-size: 20px; }
.discount-card h3 a { text-decoration: none; }
.discount-card p { margin: 0; color: #526878; line-height: 1.6; font-size: 14px; }
.discount-value { display: inline-flex; padding: 7px 11px; border-radius: 8px; background: #f5e7be; color: #614813; font-size: 13px; font-weight: 950; letter-spacing: .02em; }
.discount-value.large { padding: 12px 16px; font-size: 21px; white-space: nowrap; }
.discount-logo { width: 50px; height: 50px; object-fit: contain; border-radius: 10px; background: #fff; }
.discount-logo.fallback { display: grid; place-items: center; background: #0e3b48; color: var(--gold-2); border: 1px solid #255663; font-size: 23px; font-weight: 950; }
.discount-logo.large { width: 78px; height: 78px; font-size: 34px; border-radius: 15px; }
.discount-flags { display: flex; flex-wrap: wrap; gap: 6px; }
.discount-flags span { padding: 5px 8px; border-radius: 999px; background: #edf4f0; color: #356459; font-size: 11px; font-weight: 800; }
.discount-card-stats { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding-top: 12px; border-top: 1px solid #edf1ef; color: #526878; font-size: 12px; font-weight: 800; }
.freshness.current { color: #18744f; }
.freshness.stale { color: #a14b21; }

.discount-detail-hero { padding: 58px 0 46px; background: linear-gradient(135deg, #061827, #104053); color: #fff; }
.discount-detail-heading { display: grid; gap: 25px; }
.back-link { color: #d5e3e8; font-weight: 800; text-decoration: none; }
.discount-title-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 22px; align-items: center; }
.discount-title-row h1 { margin: 3px 0 8px; font-size: clamp(39px, 5vw, 62px); line-height: 1; }
.discount-title-row p { margin: 0; max-width: 720px; color: #d7e2e7; line-height: 1.6; }
.discount-detail-hero .discount-category { color: var(--gold-2); }
.discount-trust-row { display: flex; flex-wrap: wrap; gap: 9px; }
.discount-trust-row span { padding: 7px 10px; border: 1px solid rgba(255,255,255,.16); border-radius: 999px; color: #d9e5ea; font-size: 12px; font-weight: 800; }
.discount-detail-grid { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 24px; padding-top: 32px; padding-bottom: 80px; }
.discount-detail-grid main { display: grid; gap: 18px; }
.discount-panel { padding: 25px; border: 1px solid #dce5e1; border-radius: 15px; background: #fff; box-shadow: 0 8px 24px rgba(6,31,41,.05); }
.discount-panel h2 { margin: 4px 0 14px; }
.discount-panel p, .discount-panel li { color: #536b79; line-height: 1.7; }
.sticky-panel { position: sticky; top: 20px; display: grid; gap: 13px; }
.sticky-panel .centered { text-align: center; }
.sticky-panel > .text-link { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; }
.sticky-panel small { color: #6a7b86; line-height: 1.5; }
.affiliate-disclosure { margin: 0; padding: 12px 14px; border-left: 3px solid #b79542; background: #f7f2e4; color: #405866; font-size: .84rem; line-height: 1.5; }
.admin-affiliate-settings { margin: 16px 0; padding: 16px; border: 1px solid #dce5e1; border-radius: 12px; background: #f7faf9; }
.admin-affiliate-toggle { align-self: end; min-height: 44px; }
.redemption-steps { display: grid; gap: 10px; padding-left: 22px; }
.discount-score-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 18px 0; }
.discount-score-grid > div { display: grid; gap: 4px; padding: 15px; border-radius: 10px; background: #f0f5f2; text-align: center; }
.discount-score-grid strong { font-size: 23px; }
.discount-score-grid span { color: #60727d; font-size: 11px; font-weight: 900; text-transform: uppercase; }
.discount-score-grid.empty strong { color: #87969e; }
.discount-review { display: grid; grid-template-columns: 1fr auto; gap: 8px 20px; padding: 20px 0; border-top: 1px solid #e4eae7; }
.discount-review > div:first-child { display: grid; gap: 4px; }
.discount-review > div:first-child span { color: #71818a; font-size: 12px; }
.discount-review > b { font-size: 19px; color: #1c6a54; }
.discount-review > p, .discount-review > .discount-flags { grid-column: 1 / -1; margin: 0; }
.discount-review-modal { width: min(820px, 100%); }
.admin-discount-head { margin-top: 55px; }
.discount-admin-queue { margin-bottom: 24px; }
.discount-editor summary { display: flex; justify-content: space-between; gap: 15px; cursor: pointer; }
.discount-editor label { display: grid; gap: 6px; margin-top: 12px; color: #536777; font-size: 12px; font-weight: 800; }
.discount-editor input, .discount-editor select, .discount-editor textarea { width: 100%; padding: 10px; border: 1px solid var(--line); border-radius: 8px; }

/* Product-purpose and community refresh */
.hero-copy-wrap .actions {
  align-items: center;
  row-gap: 12px;
}

.mission-secondary-cta {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 46px;
  border-bottom: 2px solid rgba(236, 195, 111, .72);
  color: #fff5d7;
  font-weight: 900;
  text-decoration: none;
}

.mission-secondary-cta:hover,
.mission-secondary-cta:focus-visible {
  border-bottom-color: var(--gold-2);
  color: #fff;
}

.veteran-owned-statement {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 18px;
  align-items: start;
  margin: 28px 0 38px;
  border: 1px solid #d9c28e;
  border-radius: 12px;
  background:
    linear-gradient(100deg, rgba(165, 38, 50, .06), transparent 32%),
    linear-gradient(280deg, rgba(35, 66, 113, .08), transparent 40%),
    #fffaf0;
  padding: 22px 24px;
}

.veteran-owned-statement > span {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--ink);
  color: var(--gold-2);
  font-size: 20px;
}

.veteran-owned-statement strong { display: block; color: var(--ink); font-size: clamp(19px, 2.5vw, 25px); }
.veteran-owned-statement p { margin: 7px 0 0; max-width: 760px; color: var(--muted); line-height: 1.65; }

.discounts-principle-card {
  display: grid;
  gap: 10px;
  border: 1px solid rgba(255, 255, 255, .2);
  border-left: 4px solid var(--gold-2);
  border-radius: 14px;
  background: rgba(255, 255, 255, .08);
  padding: 28px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, .16);
}

.discounts-principle-card strong { color: #fff; font-size: clamp(22px, 3vw, 31px); line-height: 1.2; }
.discounts-principle-card p { margin: 0; color: var(--gold-2); font-size: 17px; font-weight: 850; }
.discounts-mission-grid > div > p { margin: 0 0 12px; }
.discount-ranking-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.discount-ranking-empty { display: grid; gap: 5px; }
.discount-ranking-empty p { margin: 0; }

.community-page { background: #edf2f4; padding: 58px 0 86px; }
.community-shell { display: grid; gap: 32px; }
.community-hero {
  position: relative;
  overflow: hidden;
  border-radius: 18px;
  background:
    radial-gradient(circle at 92% 12%, rgba(206, 166, 85, .2), transparent 25%),
    linear-gradient(135deg, #071c2b, #123f54);
  padding: clamp(30px, 5vw, 58px);
  color: #fff;
}

.community-hero::after {
  content: "";
  position: absolute;
  right: -24px;
  bottom: -38px;
  width: 210px;
  height: 110px;
  opacity: .23;
  background: repeating-linear-gradient(-20deg, transparent 0 14px, rgba(255,255,255,.5) 14px 20px);
  transform: rotate(-8deg);
  pointer-events: none;
}

.community-hero h1 { position: relative; z-index: 1; max-width: 990px; margin: 12px 0 18px; font-size: clamp(34px, 5vw, 58px); line-height: 1.04; letter-spacing: -.035em; }
.community-hero > p { position: relative; z-index: 1; max-width: 900px; margin: 0; color: #d6e3e8; font-size: 17px; line-height: 1.7; }
.community-hero .board-actions { position: relative; z-index: 1; margin-top: 26px; }
.community-layout { display: grid; grid-template-columns: minmax(0, 1fr) 290px; gap: 22px; align-items: start; }
.community-feed-panel { border: 1px solid #d6e0e4; border-radius: 16px; background: #fff; padding: 22px; box-shadow: 0 12px 36px rgba(8, 30, 42, .07); }
.community-feed-controls { display: grid; grid-template-columns: minmax(0, 1fr) minmax(150px, 190px) minmax(120px, 150px); gap: 12px; align-items: end; margin: 18px 0 14px; }
.community-feed-controls label { display: grid; gap: 6px; color: var(--muted); font-size: 11px; font-weight: 900; text-transform: uppercase; letter-spacing: .05em; }
.community-feed-controls select { min-height: 42px; }
.community-feed-controls .board-filter-row { margin: 0; }
.community-sidebar { display: grid; gap: 14px; }
.community-sidebar-card { border: 1px solid #d6e0e4; border-radius: 14px; background: #fff; padding: 20px; box-shadow: 0 8px 24px rgba(8, 30, 42, .05); }
.community-sidebar-card > strong { display: block; margin-bottom: 7px; color: var(--ink); }
.community-sidebar-card p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
.community-topic-links { display: grid; gap: 7px; margin-top: 13px; }
.community-topic-links button { width: 100%; border: 1px solid var(--line); border-radius: 8px; background: var(--soft); padding: 9px 10px; color: var(--ink); cursor: pointer; font-weight: 800; text-align: left; }
.community-topic-links button:hover,
.community-topic-links button:focus-visible { border-color: var(--ink-2); background: #fff; }

.community-feed { display: grid; gap: 12px; }
.community-question-card { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px 16px; border-radius: 12px; padding: 18px; }
.community-vote-control { display: grid; align-content: start; justify-items: center; gap: 4px; min-width: 44px; }
.community-vote-control button { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid #cbd9dd; border-radius: 9px; background: #f5f8f9; color: var(--ink); cursor: pointer; font-size: 19px; font-weight: 950; }
.community-vote-control button[aria-pressed="true"] { border-color: #b68b32; background: #fff3d7; color: #745512; }
.community-vote-control strong { font-size: 13px; }
.community-post-content { min-width: 0; }
.community-post-content h3 { margin: 8px 0; font-size: clamp(18px, 2vw, 22px); line-height: 1.25; }
.community-post-content h3 a { color: var(--ink); text-decoration: none; }
.community-post-content h3 a:hover { text-decoration: underline; text-underline-offset: 3px; }
.community-question-card .question-footer { grid-column: 2; justify-content: flex-start; }
.community-post-byline { color: var(--muted); font-size: 12px; font-weight: 750; }
.community-post-byline strong { color: #395568; }
.community-post-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 13px; }
.community-save-button[aria-pressed="true"] { border-color: #b68b32; background: #fff3d7; color: #745512; }

.community-post-page { min-height: 70vh; background: #edf2f4; }
.community-thread-shell { width: min(100% - 40px, 920px); margin: 0 auto; padding: 44px 0 80px; }
.community-thread-card { border: 1px solid #d6e0e4; border-radius: 16px; background: #fff; padding: clamp(22px, 4vw, 38px); box-shadow: 0 14px 40px rgba(8, 30, 42, .08); }
.community-thread-card h1 { margin: 14px 0; font-size: clamp(30px, 5vw, 48px); line-height: 1.08; }
.community-thread-body { max-width: 72ch; color: #334e60; font-size: 17px; line-height: 1.8; white-space: pre-wrap; }
.community-thread-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 22px; }
.community-thread-replies { display: grid; gap: 12px; margin-top: 24px; }
.community-thread-replies .answer-card { border: 1px solid #dce4e7; border-radius: 12px; background: #fff; padding: 18px; }
.community-thread-reply-form { margin-top: 20px; border: 1px solid #dce4e7; border-radius: 12px; background: #fff; padding: 20px; }

.skillbridge-review-fields { border-color: #9db7ca; background: #f3f8fb; }
.program-subtype { display: inline-flex; margin-top: 8px; border-radius: 999px; background: #e7edf5; padding: 6px 9px; color: #294b6a; font-size: 11px; font-weight: 900; text-transform: uppercase; letter-spacing: .04em; }

.program-hero-panel > .program-hero-main > p,
.organization-hero-panel > p,
.program-info-section p,
.organization-facts-grid p,
.approved-review > p,
.discount-panel > p {
  max-width: 72ch;
  line-height: 1.72;
}

.program-info-section h2,
.organization-facts-grid h2 { margin-bottom: 9px; }
.program-information-grid,
.organization-facts-grid { align-items: stretch; }

@media (max-width: 1040px) {
  .top-nav {
    grid-template-columns: auto auto;
  }

  .nav-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    justify-self: end;
  }

  .nav-links,
  .nav-actions {
    display: none;
    grid-column: 1 / -1;
    justify-content: flex-start;
  }

  .nav-links.open,
  .nav-actions.open {
    display: flex;
  }

  .hero-grid,
  .mission-grid,
  .organization-cta-grid,
  .boards-grid,
  .insight-grid,
  .organization-modal-grid,
  .program-hero-panel,
  .program-detail-grid,
  .rankings-layout,
  .action-shell {
    grid-template-columns: 1fr;
  }

  .directory-filters,
  .shortlist-grid {
    grid-template-columns: 1fr;
  }

  .cta-actions {
    display: flex;
    flex-wrap: wrap;
  }

  .boards-copy {
    position: static;
  }

  .category-shortcuts,
  .difference-grid,
  .featured-grid,
  .organization-grid,
  .plan-grid,
  .admin-counts,
  .dimension-fields,
  .discount-ranking-grid,
  .discount-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .discount-filter-panel { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .discount-search { grid-column: 1 / -1; }
  .discounts-hero-grid, .home-discounts-layout, .community-layout { grid-template-columns: 1fr; }
  .community-sidebar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .container {
    width: min(100% - 28px, 1180px);
  }

  .top-nav {
    padding: 10px 0;
  }

  .brand-lockup span {
    font-size: 13px;
  }

  .brand-lockup img {
    width: 38px;
    height: 38px;
  }

  .nav-links,
  .nav-actions {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }

  .nav-links a,
  .nav-action {
    width: 100%;
    text-align: left;
  }

  .hero-grid {
    padding: 46px 0 58px;
  }

  h1 {
    font-size: 43px;
  }

  .section-title,
  .section-title.large,
  .program-hero-panel h1,
  .admin-route h1,
  .organization-cta h2,
  .organization-cta h1,
  .boards-section h2,
  .boards-section h1,
  .newsletter-card h2,
  .discounts-hero h1,
  .discount-title-row h1 {
    font-size: 32px;
  }

  .hero-copy {
    font-size: 17px;
  }

  .hero-search,
  .auth-form,
  .newsletter-form,
  .section-head,
  .directory-filters,
  .organization-tools,
  .claim-banner,
  .form-grid.two-col,
  .detail-list {
    grid-template-columns: 1fr;
  }

  .discount-filter-panel,
  .discount-ranking-grid,
  .discount-grid,
  .discount-detail-grid,
  .discount-title-row,
  .discount-score-grid {
    grid-template-columns: 1fr;
  }

  .discount-filter-panel { margin-top: -18px; }
  .discount-title-row .discount-value { justify-self: start; }
  .discount-card-stats { align-items: flex-start; flex-direction: column; }
  .sticky-panel { position: static; }

  .section-head.simple,
  .toolbar,
  .directory-meta,
  .card-foot,
  .featured-card footer,
  .organization-card footer {
    display: grid;
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .shortlist-panel,
  .profile-completeness {
    display: grid;
    grid-template-columns: 1fr;
  }

  .community-feed-controls,
  .community-sidebar {
    grid-template-columns: 1fr;
  }

  .community-question-card {
    grid-template-columns: 42px minmax(0, 1fr);
  }

  .community-thread-shell { width: min(100% - 28px, 920px); padding-top: 28px; }

  .mission-secondary-cta { width: fit-content; }

  .shortlist-actions,
  .card-actions,
  .shortlist-card-actions { justify-content: flex-start; }

  .program-card-heading {
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 12px;
  }

  .program-logo,
  .program-logo-featured {
    width: 72px;
    height: 56px;
  }

  .program-logo-fallback {
    width: 56px;
  }

  .program-logo-ranking {
    width: 36px;
    height: 36px;
  }

  .program-logo-detail {
    width: 76px;
    height: 76px;
  }

  .official-logo.program-logo-detail {
    width: 108px;
    height: 76px;
  }

  .program-card-rating,
  .official-link-block {
    align-items: stretch;
    flex-direction: column;
  }

  .official-site-cta {
    width: 100%;
  }

  .program-hero-panel .actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .program-hero-panel .actions > * {
    width: 100%;
  }

  .ranking-row {
    grid-template-columns: 28px 36px minmax(0, 1fr) auto;
  }

  .hero-stats,
  .steps-grid,
  .difference-grid,
  .category-shortcuts,
  .content-grid,
  .featured-grid,
  .program-grid,
  .organization-grid,
  .plan-grid,
  .profile-score-grid,
  .admin-counts,
  .dimension-score-grid,
  .dimension-fields {
    grid-template-columns: 1fr;
  }

  .trust-card,
  .step-card,
  .insight-card,
  .plan-card,
  .modal,
  .program-hero-panel {
    padding: 22px;
  }

  .modal-backdrop {
    padding: 12px;
  }
}

@media (max-width: 1080px) {
  .category-bar { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .category-bar,
  .wcn-center-grid { grid-template-columns: 1fr; }
  .program-network-parent { align-items: flex-start; flex-direction: column; }
  .category-nav-card { min-height: 104px; }
  .auth-callback-card .actions { display: grid; grid-template-columns: 1fr; }
}
