/* Group B: membership & directory pages. Page-local styles only; tokens from tokens.css. */

/* ---- directory ---- */
.dir-filters { flex: 1 1 100%; min-width: 0; }
.dir-filters .chip-group { gap: var(--space-2xs); }
.dir-meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-xs) var(--space-m); }
.dir-meta .toolbar__meta { flex: 0 1 auto; }
.dir-results { margin-top: var(--space-l); }
.dir-results__heading { scroll-margin-top: 6rem; }
.dir-pagination { display: flex; justify-content: center; margin-top: var(--space-l); }

/* ---- profile ---- */
.profile-hero { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-m); }
.profile-hero__text { display: flex; flex-direction: column; gap: var(--space-xs); min-width: 0; flex: 1 1 18rem; }
.profile-hero__text .page-hero__title { max-width: 28ch; }
.profile-hero .page-hero__meta { align-items: center; }
.profile-edit { margin-top: var(--space-xs); }
.profile-address { font-style: normal; }
.profile-section + .profile-section { margin-top: var(--space-xl); }
.profile-contact .btn { margin-top: var(--space-xs); }
.profile-contact .dl { margin-bottom: var(--space-xs); }
.profile-aside { display: flex; flex-direction: column; gap: var(--space-m); }
.profile-aside .map-placeholder { min-height: 12rem; }
.profile-gallery { grid-template-columns: repeat(auto-fill, minmax(min(10rem, 100%), 1fr)); }
.profile-gallery .gallery__item { min-height: 9rem; min-width: 0; max-width: 100%; }
.profile-gallery .gallery__item > div { width: 100%; height: 100%; min-height: 9rem; border-radius: inherit; }
.person-card .avatar { margin-inline: auto; }

/* ---- numbered lists (application lifecycle, strategic pillars) ---- */
.numbered-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-s); counter-reset: nl; }
.numbered-list > li {
  counter-increment: nl;
  position: relative;
  display: grid;
  grid-template-columns: 2.75rem minmax(0, 1fr);
  column-gap: var(--space-s);
  padding: var(--space-s);
  background: var(--surface-raised);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
}
.numbered-list > li::before {
  content: counter(nl);
  grid-row: 1 / span 2;
  display: grid; place-items: center;
  width: 2.75rem; height: 2.75rem;
  border-radius: var(--radius-round);
  background: var(--navy-800);
  color: var(--gold-500);
  font-family: var(--font-display);
  font-weight: var(--weight-black);
  font-size: var(--step-1);
}
.numbered-list__title { margin: 0; font-size: var(--step-1); color: var(--navy-800); font-weight: var(--weight-bold); }
.numbered-list__body { margin: 0; color: var(--ink-800); }
.numbered-list--compact > li { padding: var(--space-xs) var(--space-s); }
.numbered-list--compact > li::before { width: 2.25rem; height: 2.25rem; font-size: var(--step-0); }
.numbered-list--compact > li { grid-template-columns: 2.25rem minmax(0, 1fr); }
@media (min-width: 62em) {
  .numbered-list--cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---- apply ---- */
.apply-layout { display: grid; gap: var(--space-xl); align-items: start; }
@media (min-width: 62em) { .apply-layout { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); } }
.apply-form-panel { padding: var(--space-m); border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface-raised); }
.notice-stack { display: flex; flex-direction: column; gap: var(--space-s); margin-bottom: var(--space-m); }

/* ---- CMS pages ---- */
.cms-lead { max-width: var(--measure); }
.tier-card { gap: var(--space-s); }
.tier-card__head { display: flex; justify-content: space-between; align-items: center; gap: var(--space-xs); }
.tier-card__head .card__title { margin: 0; }
.tier-card__price { font-family: var(--font-display); font-size: var(--step-4); font-weight: var(--weight-black); color: var(--navy-800); line-height: 1; }
.tier-card__price small { font-size: var(--step--1); font-weight: var(--weight-semibold); color: var(--ink-700); }
.tier-card ul { margin: 0; padding-left: 1.2em; display: grid; gap: 0.35rem; }
.tier-card li::marker { color: var(--green-700); }
.tier-card--premier { border-top: 4px solid var(--gold-500); }
.tier-card--standard { border-top: 4px solid var(--green-600); }
.compare-table .num, .compare-table td:not(:first-child), .compare-table th:not(:first-child) { text-align: center; }
.compare-table th[scope="row"] { text-align: left; font-weight: var(--weight-semibold); }
.compare-table .yes { color: var(--green-800); font-weight: var(--weight-bold); }
.compare-table .no { color: var(--ink-600); }
.benefit-card__icon { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: var(--radius-md); background: var(--green-50); color: var(--green-800); }
.perk-card__offer { font-family: var(--font-display); font-size: var(--step-2); font-weight: var(--weight-black); color: var(--green-800); margin: 0; line-height: 1.1; }
.perk-card__by { margin: 0; font-size: var(--step--1); color: var(--ink-700); font-weight: var(--weight-semibold); }
.section-gap { margin-top: var(--space-l); }

/* ---- survey ---- */
.survey-q { margin-bottom: var(--space-m); }
.survey-q legend { font-weight: var(--weight-bold); color: var(--navy-800); margin-bottom: var(--space-2xs); }
.scale-row { display: flex; flex-wrap: wrap; gap: var(--space-xs) var(--space-m); }
