/* Page-specific styles: public-inner (About, Leadership, Directory, Contact, Privacy, Error).
   Prefer the shared design-system classes; only what is genuinely page-specific lives here. */

/* ---------- About ---------- */
.about-prose p { font-size: var(--fs-md); line-height: 1.7; color: var(--ink-2); }
.about-prose p:first-child { color: var(--ink); }
/* "pillars" are principles, not sequential steps: reuse the verif-steps frame without the step arrows */
.pillars li::after { display: none; }
.pillars .vs-ic { margin-bottom: 1rem; }

/* ---------- Leadership ---------- */
/* the dedicated page shows full profiles (bios are not clamped as on the Home teaser) */
.leader .bio p { margin: 0; }
.leader .bio p + p { margin-top: .6em; }
.leader-grid { margin-top: 1.5rem; }
.leader-grid .leader .bio { display: block; -webkit-line-clamp: unset; line-clamp: unset; overflow: visible; }
.leader-grid .leader .monogram { margin-bottom: 0; }

/* ---------- Directory ---------- */
.dir-section { padding-top: clamp(1.5rem, 1rem + 1.5vw, 2.25rem); }
.dir-filters { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1.5rem; margin-bottom: var(--sp-4); }
.dir-filter-group { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .85rem; min-width: 0; }
.dir-filter-label { font-size: var(--fs-xs); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.dir-clear { display: inline-flex; align-items: center; gap: .4rem; min-height: var(--tap-sm); font-size: var(--fs-sm); font-weight: 600; }
.dir-chip-wrap { white-space: normal; }
.register-bar > span { text-align: right; }
.register-wrap > .empty { padding-block: 3rem; }
/* The business name is a row header (th) so assistive tech reads "name, category, ..."; foundation stacking rules only address td.c-name */
@media (min-width: 992px) { .register th.c-name { min-width: 14rem; } }
@media (max-width: 991.98px) {
  .register tbody th.c-name { grid-column: 1; min-width: 0; width: auto; padding: 0; border: 0; text-align: left; font-weight: 400; }
}
@media (max-width: 575.98px) {
  .register-bar > span { text-align: left; }
}

/* ---------- Contact ---------- */
.contact-list { margin: 0; font-style: normal; display: block; }
.contact-item { display: flex; align-items: flex-start; gap: 1rem; padding: 1.15rem 1.25rem; border-top: 1px solid var(--line); }
.contact-item:first-child { border-top: 0; }
.contact-ic { flex: none; width: 2.5rem; height: 2.5rem; border-radius: var(--r-md); background: var(--navy-700); color: var(--gold-300); display: grid; place-items: center; font-size: 1.1rem; }
.contact-body { min-width: 0; }
.contact-label { margin: 0 0 .15rem; font-size: var(--fs-xs); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.contact-value { margin: 0; font-size: var(--fs-md); color: var(--ink); overflow-wrap: anywhere; }
.contact-value a { display: inline-block; padding: .15rem 0; font-weight: 600; }
.contact-value.is-empty { color: var(--muted); font-style: italic; }

/* ---------- Privacy ---------- */
.toc { background: var(--white); border: 1px solid var(--line); border-radius: var(--r-md); box-shadow: var(--shadow-1); padding: 1rem 1.1rem; position: sticky; top: 7.5rem; }
.toc-title { font-family: var(--font-sans); font-size: var(--fs-xs); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin: 0 0 .5rem; }
.toc-list { list-style: none; margin: 0; padding: 0; }
.toc-list a { display: block; padding: .5rem .6rem; margin-inline: -.6rem; border-radius: var(--r-xs); font-size: var(--fs-sm); font-weight: 550; color: var(--navy-700); text-decoration: none; }
.toc-list a:hover { background: var(--navy-50); color: var(--navy-900); text-decoration: underline; }
@media (max-width: 991.98px) { .toc { position: static; } }
.privacy-prose p { font-size: var(--fs-md); line-height: 1.7; color: var(--ink-2); }
.privacy-prose h2 { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--line); }
.privacy-prose > h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }

/* ---------- Error ---------- */
.error-page { background: var(--surface); padding: clamp(2.5rem, 2rem + 4vw, 5rem) 0; }
.error-panel { max-width: 36rem; margin-inline: auto; text-align: center; padding: clamp(1.75rem, 1.2rem + 2vw, 2.75rem) clamp(1.25rem, 1rem + 2vw, 2.5rem); }
.error-code { font-family: var(--font-serif); font-size: clamp(4rem, 3rem + 6vw, 6.5rem); font-weight: 600; line-height: 1; letter-spacing: -.02em; color: var(--gold-700); margin: 0 0 .6rem; font-variant-numeric: lining-nums; }
.error-title { font-size: var(--fs-xl); margin: 0 0 .6rem; }
.error-message { max-width: 28rem; margin: 0 auto 1.5rem; color: var(--ink-2); }
.error-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; }
.error-ref { margin: 1.5rem 0 0; padding-top: 1rem; border-top: 1px solid var(--line); font-size: var(--fs-sm); color: var(--muted); }
.error-ref .regid { display: inline-block; margin-top: .35rem; text-align: left; }
@media (max-width: 575.98px) { .error-actions .btn { flex: 1 1 100%; } }
