/* Shared visual system. Loaded last so every page uses the same design tokens. */
:root {
  --blc-ink: #152a46;
  --blc-muted: #52677e;
  --blc-soft-text: #6a7b91;
  --blc-accent: #2558b0;
  --blc-accent-strong: #19438f;
  --blc-navy: #153761;
  --blc-bg: #f2f6fc;
  --blc-surface: #fff;
  --blc-surface-soft: #f7f9fd;
  --blc-selection: #e8f0fd;
  --blc-line: #dce5f0;
  --blc-control-edge: #b9cde8;
  --blc-control-ink: var(--blc-accent-strong);
  --blc-control-tint: var(--blc-selection);
  --blc-radius-control: 10px;
  --blc-radius-card: 16px;
  --blc-radius-chip: 6px;
  --blc-shadow-card: 0 4px 18px rgba(24,55,98,.04);
  --blc-section-space: 64px;
  --ink: var(--blc-ink);
  --muted: var(--blc-muted);
  --blue: var(--blc-accent);
  --blue-dark: var(--blc-accent-strong);
  --navy: var(--blc-navy);
}
/* One display scale and one body scale across all routes. */
.page-hero h1,
.edition-hero-copy h1,
.blc-hub-title-row h1,
.shsm-hero-copy h1 {
  font: 700 clamp(52px,5.8vw,76px)/1.02 var(--archivo) !important;
  letter-spacing: -.018em !important;
  color: var(--blc-ink) !important;
  margin: 0 0 20px !important;
}
.page-hero h1 .blue, .edition-hero-copy h1 .hero-count,
.blc-hub-title-row h1 em, .shsm-hero-copy h1 > span {
  color: var(--blc-accent) !important;
}
.edition-featured-head h2, .signature-discover h2,
.program-section-header h2, .college-apply-heading h2,
.blc-shsm-benefits-section h2, .blc-shsm-title h2,
.shsm-resource-heading h2, .event-empty-left h2,
.join-layout > div > h2, .signature-join h2, .join-band h2,
.blc-shsm-heading h2 {
  font: 700 clamp(34px,3.6vw,48px)/1.1 var(--archivo) !important;
  letter-spacing: -.015em !important;
  margin: 0 0 20px !important;
}
.page-hero-copy, .edition-hero-copy > p, .shsm-hero-lead,
.blc-hub-title-row > div > p {
  font: 400 16px/1.75 var(--plex) !important;
  color: var(--blc-muted) !important;
  max-width: 56ch !important;
}
.program-section-header > p, .signature-discover-inner > div > p,
.blc-shsm-title > p, .blc-shsm-summary > p, .signature-join p,
.blc-tabs-panel-info > p {
  font: 400 14px/1.75 var(--plex) !important;
}
.program-photo-card .program-photo-info h3,
.college-entry h3, .blc-tabs-panel-info h3,
.opp-card.blc-ranked-card h3, .blc-person h3,
.event-box h3, .join-info h3 {
  font: 700 clamp(25px,2.4vw,32px)/1.18 var(--archivo) !important;
  letter-spacing: -.012em !important;
}
/* Page openings and content sections follow the same rhythm. */
.page-hero, .edition-hero, .blc-hub-cover, .blc-shsm-hero {
  padding-top: var(--blc-section-space) !important;
  padding-bottom: 40px !important;
}
.edition-hero-grid { padding-top: 0 !important; }
.edition-hero-copy { padding-block: 0 !important; }
.edition-featured, .signature-discover,
.program-section, .college-section, .college-apply,
.blc-shsm-benefits-section, .blc-shsm-requirements,
.blc-shsm-planning, .blc-shsm-resources,
.event-empty, .join-band {
  padding-block: var(--blc-section-space) !important;
}
.program-section-header, .edition-featured-head { margin-bottom: 28px !important; }
.program-photo-grid, .college-directory { gap: 24px !important; }
.edition-team { padding: 24px 0 var(--blc-section-space) !important; }
/* Quiet information surfaces share a radius, border and shadow. */
.program-photo-card.program-photo-card, .college-entry.college-entry,
.blc-person, .event-box, .join-info, .blc-shsm-visual,
.blc-feature-tabs-container, .blc-guide-disclosure,
.blc-filter-disclosure, .blc-tracker-disclosure {
  background: var(--blc-surface) !important;
  border: 1px solid var(--blc-line) !important;
  border-radius: var(--blc-radius-card) !important;
  box-shadow: var(--blc-shadow-card) !important;
}
.edition-hero-image, .blc-shsm-feature { border-radius: var(--blc-radius-card) !important; }
.blc-shsm-essentials { border-radius: 0 0 var(--blc-radius-card) var(--blc-radius-card) !important; }
.blc-guide-disclosure .blc-guide-items > div {
  background: var(--blc-surface-soft) !important;
  border-radius: var(--blc-radius-control) !important;
}
.blc-shsm-intro, .signature-join, .join-band, .site-footer {
  background: var(--blc-navy) !important;
}
.blc-shsm-heading h2, .signature-join h2, .join-band h2 { color: #fff !important; }
.blc-shsm-summary > p, .signature-join p { color: #d9e5f5 !important; }
/* Buttons share dimensions and typography. Content links keep their own affordance. */
.button, .header-join,
.edition-hero-actions > a.edition-text-link,
.blc-tabs-panel-link, .program-photo-card > .program-photo-cta,
.college-entry > a.college-link, .college-apply-actions > .text-link,
.blc-shsm-action, .opp-card button.open-detail {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 44px !important;
  padding: 11px 18px !important;
  border-radius: var(--blc-radius-control) !important;
  font: 600 13px/1.45 var(--plex) !important;
  text-decoration: none !important;
  letter-spacing: 0 !important;
  box-shadow: none !important;
  text-align: center !important;
}
.button:not(.outline):not(.outline-light), .header-join {
  color: #fff !important;
  background: var(--blc-accent) !important;
  border: 1px solid var(--blc-accent) !important;
}
.button:not(.outline):not(.outline-light):hover, .header-join:hover {
  background: var(--blc-accent-strong) !important;
  border-color: var(--blc-accent-strong) !important;
}
.button.outline, .edition-hero-actions > a.edition-text-link,
.blc-tabs-panel-link, .program-photo-card > .program-photo-cta,
.college-entry > a.college-link, .college-apply-actions > .text-link,
.opp-card button.open-detail {
  color: var(--blc-accent-strong) !important;
  background: var(--blc-selection) !important;
  border: 1px solid var(--blc-control-edge) !important;
}
.button.outline:hover, .edition-hero-actions > a.edition-text-link:hover,
.blc-tabs-panel-link:hover, .program-photo-card > .program-photo-cta:hover,
.college-entry > a.college-link:hover, .opp-card button.open-detail:hover {
  background: #dce8fc !important;
  border-color: var(--blc-accent) !important;
  color: var(--blc-accent-strong) !important;
}
.button.outline-light, .blc-shsm-action {
  color: #fff !important;
  background: rgba(255,255,255,.08) !important;
  border: 1px solid #8fa8c9 !important;
}
.button.outline-light:hover, .blc-shsm-action:hover { background: rgba(255,255,255,.17) !important; }
/* Disclosure headers and form controls belong to the same control family. */
.blc-filter-summary, .blc-guide-disclosure > summary,
.blc-tracker-disclosure > summary, .blc-shsm-details summary {
  font: 600 15px/1.5 var(--plex) !important;
  color: var(--blc-ink) !important;
}
.blc-filter-summary, .blc-guide-disclosure > summary,
.blc-tracker-disclosure > summary { padding: 22px 24px !important; }
.blc-shsm-details details { border-radius: var(--blc-radius-control) !important; }
.filter-block input, .filter-block select, .blc-result-controls select,
.tracker-section input[type="text"], .tracker-section select {
  min-height: 44px !important;
  border-radius: var(--blc-radius-control) !important;
  border-color: var(--blc-control-edge) !important;
  background-color: #fff !important;
  font: 400 14px/1.5 var(--plex) !important;
}
.impact-tier-label, .audit-status, .college-pills span {
  border-radius: var(--blc-radius-chip) !important;
  font: 500 11px/1.5 var(--plex) !important;
  letter-spacing: 0 !important;
}
.blc-hub-cover .blc-priority-tier strong { font-family: var(--plex) !important; }
:where(a,button,input,select,summary):focus-visible {
  outline-color: var(--blc-accent) !important;
}
@media (max-width: 640px) {
  :root { --blc-section-space: 44px; }
  .page-hero, .edition-hero, .blc-hub-cover, .blc-shsm-hero {
    padding-top: 36px !important;
    padding-bottom: 32px !important;
  }
  .page-hero h1, .edition-hero-copy h1,
  .blc-hub-title-row h1, .shsm-hero-copy h1 {
    font-size: clamp(46px,12.8vw,58px) !important;
  }
  .page-hero-copy, .edition-hero-copy > p, .shsm-hero-lead,
  .blc-hub-title-row > div > p { font-size: 15px !important; }
  .blc-filter-summary, .blc-guide-disclosure > summary,
  .blc-tracker-disclosure > summary { padding: 18px 20px !important; }
  .program-photo-grid, .college-directory { gap: 24px !important; }
}

/* Reusable selection controls match the directory filters. */
.blc-feature-tabs {
  padding: 6px !important;
  gap: 6px !important;
  background: var(--blc-surface) !important;
  border-bottom: 1px solid var(--blc-line) !important;
}
.blc-feature-tabs .blc-feature-tab {
  min-height: 44px !important;
  border: 0 !important;
  border-radius: var(--blc-radius-control) !important;
  padding: 12px !important;
  font: 600 13px/1.45 var(--plex) !important;
}
.blc-feature-tabs .blc-feature-tab.is-active,
.blc-feature-tabs .blc-feature-tab[aria-selected="true"] {
  background: var(--blc-selection) !important;
  color: var(--blc-accent-strong) !important;
  box-shadow: none !important;
}
.reset-btn, .tracker-course-button, .tracker-status-button,
.tracker-actions button, .tracker-actions a {
  border-radius: var(--blc-radius-control) !important;
  font: 600 12px/1.45 var(--plex) !important;
  min-height: 40px !important;
  text-decoration: none !important;
}
.signature-discover-links > a {
  border-radius: var(--blc-radius-card) !important;
  border-color: var(--blc-control-edge) !important;
  box-shadow: var(--blc-shadow-card) !important;
}
.signature-discover-links > a strong,
.program-photo-card .program-photo-school, .college-entry .college-school {
  color: var(--blc-accent-strong) !important;
}
@media (max-width: 700px) {
  .site-header .header-join { display: none !important; }
}
.blc-feature-tabs .blc-feature-tab::after { display: none !important; }
.edition-featured-head > .edition-text-link {
  border: 0 !important;
  text-decoration: underline !important;
  text-underline-offset: 4px !important;
}
.opp-card.blc-ranked-card {
  border-radius: var(--blc-radius-card) !important;
  box-shadow: var(--blc-shadow-card) !important;
}
#main .blc-feature-tabs .blc-feature-tab[aria-selected="true"],
#main .blc-feature-tabs .blc-feature-tab.is-active:hover {
  border: 0 !important;
  box-shadow: none !important;
  background: var(--blc-selection) !important;
}

/* Search stays visible; optional filters live in a compact expandable panel. */
.directory-search-toolbar { display: flex; align-items: stretch; gap: 12px; }
.directory-search-field {
  display: flex; align-items: center; flex: 1; min-width: 0; gap: 12px;
  padding: 0 18px; background: #fff; border: 1px solid var(--blc-control-edge);
  border-radius: var(--blc-radius-control); color: #6a7b91;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.directory-search-field:focus-within { border-color: var(--blc-accent); box-shadow: 0 0 0 3px rgba(37,88,176,.1); }
.directory-search-field > svg { flex-shrink: 0; }
.directory-search-field input {
  width: 100%; min-width: 0; min-height: 54px; padding: 12px 0;
  border: 0; border-radius: 0; background: transparent; color: var(--blc-ink);
  font: 400 15px/1.5 var(--plex); outline: none !important; box-shadow: none;
}
.directory-search-field input::placeholder { color: #6a7b91; opacity: 1; }
.directory-filter-toggle {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  padding: 12px 18px; min-height: 54px; border: 1px solid var(--blc-control-edge);
  border-radius: var(--blc-radius-control); background: #fff;
  color: var(--blc-accent-strong); font: 600 14px/1.5 var(--plex); cursor: pointer;
}
.directory-filter-toggle:hover, .directory-filter-toggle[aria-expanded="true"] { background: var(--blc-selection); border-color: var(--blc-accent); }
.directory-filter-toggle > span:empty { display: none; }
.directory-filter-panel.blc-search-layout {
  display: grid !important; grid-template-columns: 1fr 1fr !important;
  margin-top: 14px; padding: 24px !important; background: #fff !important;
  border: 1px solid var(--blc-line) !important; border-radius: var(--blc-radius-card) !important;
  box-shadow: none !important; gap: 20px !important;
}
.directory-filter-panel.blc-search-layout[hidden] { display: none !important; }
.directory-filter-panel .blc-advanced-filters { grid-column: 1 / -1; }
.search-visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 540px) {
  .directory-search-toolbar { gap: 8px; }
  .directory-search-field { padding-inline: 12px; gap: 8px; }
  .directory-search-field input { font-size: 14px; }
  .directory-filter-toggle { padding: 12px; font-size: 13px; gap: 7px; }
  .directory-filter-toggle > svg { display: none; }
  .directory-filter-panel.blc-search-layout { grid-template-columns: 1fr !important; padding: 20px !important; }
}

/* Animate the outer height so surrounding rows move with the disclosure. */
.blc-shsm-details details { overflow: hidden !important; box-sizing: border-box; }
.blc-shsm-details summary::after {
  content: '+' !important;
  display: inline-block;
  transition: transform 220ms ease;
}
.blc-shsm-details details[data-expanded="true"] summary::after { transform: rotate(45deg); }
.blc-shsm-details .blc-details-content { padding: 4px 20px 22px !important; }
.blc-shsm-details summary { padding: 18px 20px !important; }

.terms-section { padding: 0 0 var(--blc-section-space); }
.terms-document { max-width: 860px; padding: clamp(24px,4vw,48px); background: #fff; border: 1px solid var(--blc-line); border-radius: var(--blc-radius-card); }
.terms-updated { font: 500 12px/1.5 var(--plex); color: #6a7b91; margin: 0 0 30px; }
.terms-document > section + section { margin-top: 32px; padding-top: 28px; border-top: 1px solid var(--blc-line); }
.terms-document h2 { font: 700 28px/1.2 var(--archivo); letter-spacing: -.01em; margin: 0 0 14px; }
.terms-document p:not(.terms-updated) { font: 400 15px/1.8 var(--plex); color: var(--blc-muted); margin: 0 0 14px; }
.terms-document section p:last-child { margin-bottom: 0; }
.terms-document a { color: var(--blc-accent-strong); text-decoration: underline; text-underline-offset: 3px; }

/* Actionable directory: essentials on the card, context in the details. */
#opportunity-results .directory-card {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) minmax(170px,.36fr) auto !important;
  align-items: center !important;
  gap: 24px !important;
  padding: 26px !important;
  border: 1px solid var(--blc-line) !important;
  border-radius: var(--blc-radius-card) !important;
  background: #fff !important;
  box-shadow: var(--blc-shadow-card) !important;
}
.directory-card .blc-card-category { font: 500 11px/1.5 var(--plex); color: #6a7b91; }
#opportunity-results .directory-card h3 { font: 700 clamp(25px,2.4vw,32px)/1.18 var(--archivo) !important; margin: 8px 0 !important; letter-spacing: -.012em; }
#opportunity-results .directory-card .org { font: 500 12px/1.5 var(--plex); color: #60758d; margin-bottom: 10px; }
#opportunity-results .directory-card .summary { font: 400 14px/1.7 var(--plex); color: var(--blc-muted); margin: 0; max-width: 65ch; }
.directory-card .blc-card-facts { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; font: 400 12px/1.6 var(--plex); }
.directory-card .audit-status { white-space: normal; max-width: 25ch; background: #f1f4f8; color: #536981; padding: 5px 9px; }
.directory-card .audit-open { background: #eaf6ef; color: #216449; }
#opportunity-results .directory-card button.open-detail { min-height: 44px; padding: 11px 16px; border: 1px solid var(--blc-control-edge); border-radius: 10px; background: var(--blc-selection); color: var(--blc-accent-strong); font: 600 13px/1.45 var(--plex); }
.club-community { padding: var(--blc-section-space) 0; background: #fff; border-top: 1px solid var(--blc-line); }
.club-community-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.club-community h2 { font: 700 clamp(34px,3.6vw,48px)/1.1 var(--archivo); margin: 0 0 18px; letter-spacing: -.015em; }
.club-community p { font: 400 15px/1.75 var(--plex); color: var(--blc-muted); max-width: 48ch; }
.club-community .home-meeting-update { font-size: 13px; border-left: 2px solid #b9cde8; padding-left: 16px; margin: 20px 0 24px; }
.home-meeting-update p { font-size: 13px; }
.home-council-portraits { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.home-council-portraits img { width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; object-position: center 20%; border: 1px solid var(--blc-line); border-radius: 12px; }
.home-council > a { display: flex; align-items: center; justify-content: space-between; padding: 18px 0; font: 600 14px/1.5 var(--plex); color: var(--blc-accent-strong); }
.home-council > a:hover { text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 900px) {
  #opportunity-results .directory-card { grid-template-columns: minmax(0,1fr) auto !important; gap: 18px !important; }
  .directory-card .blc-card-main { grid-column: 1 / -1; }
  .directory-card .blc-card-facts { grid-column: 1; }
  #opportunity-results .directory-card button.open-detail { grid-column: 2; }
  .club-community-grid { gap: 32px; }
}
@media (max-width: 640px) {
  #opportunity-results .directory-card { grid-template-columns: 1fr !important; padding: 22px !important; }
  .directory-card .blc-card-main, .directory-card .blc-card-facts,
  #opportunity-results .directory-card button.open-detail { grid-column: 1 !important; }
  #opportunity-results .directory-card button.open-detail { justify-self: start; }
  .club-community-grid { grid-template-columns: 1fr; }
}

/* The BLC editorial ranking remains visible for longer-term planning. */
#opportunity-results .directory-card {
  grid-template-columns: 38px minmax(0,1fr) minmax(160px,.36fr) auto !important;
}
.directory-rank { font: 600 30px/1.1 var(--archivo); color: #365f9a; align-self: center; }
@media (max-width: 900px) {
  #opportunity-results .directory-card { grid-template-columns: 32px minmax(0,1fr) auto !important; }
  .directory-card .directory-rank { grid-column: 1; grid-row: 1; align-self: start; }
  .directory-card .blc-card-main { grid-column: 2 / -1 !important; grid-row: 1; }
  .directory-card .blc-card-facts { grid-column: 2 !important; }
  #opportunity-results .directory-card button.open-detail { grid-column: 3 !important; }
}
@media (max-width: 640px) {
  #opportunity-results .directory-card { grid-template-columns: 28px minmax(0,1fr) !important; gap: 14px !important; }
  .directory-card .directory-rank { font-size: 26px; }
  .directory-card .blc-card-main, .directory-card .blc-card-facts,
  #opportunity-results .directory-card button.open-detail { grid-column: 2 !important; }
}
