.public-page { padding: 5rem 1.5rem 7rem; }
.public-copy, .provider-detail { max-width: 860px; margin: 0 auto; }
.public-copy h1 { font-size: clamp(2rem, 6vw, 4.5rem); line-height: .95; margin: .5rem 0 1.5rem; }
.public-copy h2 { margin: 2rem 0 .6rem; }
.public-copy p, .public-copy li, .provider-directory-card p { color: var(--fog); line-height: 1.65; }
.public-copy a, .legal-links a, .provider-directory a { color: var(--signal); }
body[data-page] .home-only, body[data-page] #focus, .resource-loading { display: none; }
.legal-links { display: flex; flex-wrap: wrap; gap: .7rem 1rem; margin-top: 1rem; }
.provider-directory { max-width: 1100px; margin: 0 auto; }
.provider-filters { display: grid; grid-template-columns: minmax(220px, 1fr) 220px; gap: 1rem; margin: 2rem 0; }
.provider-filters label { display: grid; gap: .35rem; font: 700 .7rem var(--mono); color: var(--fog); }
.provider-filters input, .provider-filters select { min-width: 0; padding: .8rem; border: 1px solid var(--line); background: var(--ink); color: var(--paper); }
.provider-directory-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.provider-directory-card { border: 1px solid var(--line); padding: 1.2rem; background: var(--panel); display: grid; grid-template-columns: auto 1fr; gap: 1rem; }
.provider-directory-card img, .provider-detail img, .provider-grid img, .provider-mark {
  width: 40px; height: 40px; border-radius: 8px; background: #10141b; border: 1px solid var(--line);
  display: grid; place-items: center; font: 800 .72rem var(--mono); color: var(--signal);
}
.provider-detail img { width: 64px; height: 64px; }
.provider-directory-card h2 { margin: 0; }
.provider-directory-card[hidden] { display: none; }
.provider-detail dl { display: grid; gap: .6rem; }
.provider-detail dl div { display: grid; grid-template-columns: 180px 1fr; border-top: 1px solid var(--line); padding: .8rem 0; }
.provider-detail dt { font: 700 .68rem var(--mono); color: var(--fog); }
.provider-detail dd { margin: 0; }
.surface-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.provider-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.surface-grid article, .provider-grid article { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 680px) {
  .provider-directory-list, .provider-filters { grid-template-columns: 1fr; }
  .public-page { padding: 3rem 1rem; }
  .provider-detail dl div { grid-template-columns: 1fr; gap: .25rem; }
}
