[hidden] { display: none !important; }
.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; }
button, select, summary { cursor: pointer; }
button:disabled { opacity: .4; cursor: default; }
input, select, .input, label { min-width: 0; }
.input:focus-within { outline: 2px solid var(--aqua); outline-offset: 2px; }
:focus-visible { outline: 2px solid var(--aqua); outline-offset: 4px; }
.intro { line-height: 1.5; }
.plan a { color: var(--blue); font-size: .875rem; font-weight: 700; }
.hero { padding-bottom: 40px; }
#results { scroll-margin-top: 110px; }
.results-head { gap: 20px; }
.results-head h2 { line-height: 1.2; }
#resultSummary { color: var(--muted); margin: 10px 0 0; font-size: .9375rem; }
.filter { display: block; flex-shrink: 0; font-size: .9375rem; }
.filter-panel { display: grid; grid-template-columns: 1.5fr 1fr auto; gap: 18px; align-items: end; padding: 20px; background: var(--sky); border: 1px solid var(--line); border-radius: 10px; margin-bottom: 20px; }
.filter-panel select { height: 46px; padding: 0 12px; border: 1px solid #9bb0ba; border-radius: 6px; background: white; color: var(--ink); font-size: 1rem; width: 100%; }
.filter-panel .outline { min-height: 46px; font-size: .9375rem; }
.cards { align-items: start; }
.card { gap: 11px; background: white; }
.card h3 { line-height: 1.35; overflow-wrap: anywhere; }
.card .center { color: var(--blue); font-size: .9375rem; }
.card .specialties { color: var(--ink); font-size: .9375rem; line-height: 1.5; }
.card .address { font-size: .9375rem; }
.phone-list { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.phone-list .phone { font-size: 1rem; margin: 0; }
.card .missing-contact { font-size: .875rem; color: var(--muted); }
.card-notes summary { font-size: .875rem; color: var(--blue); }
.card-notes p { margin-top: 10px; font-size: .875rem; }
.pagination { display: flex; justify-content: center; align-items: center; gap: 22px; margin-top: 30px; }
.pagination .outline { font-size: .9375rem; min-height: 44px; }
.pagination span { font-size: .9375rem; text-align: center; }
.source-note { margin-top: 26px; color: var(--muted); font-size: .875rem; line-height: 1.6; }
.source-note a { color: var(--blue); }
.empty-results { grid-column: 1 / -1; text-align: center; background: #f5fafc; border: 1px dashed var(--line); border-radius: 12px; padding: 34px 20px; }
.empty-results h3 { font-size: 1.25rem; margin-top: 0; }
.empty-results p { color: var(--muted); line-height: 1.5; }
.empty-results button { margin-top: 8px; font-size: .9375rem; }
@media (max-width:850px) { .filter-panel { grid-template-columns: 1fr 1fr; } .filter-panel button { grid-column: 1 / -1; justify-self: start; } .check { max-width: none; } }
@media (max-width:580px) { .filter-panel { grid-template-columns: 1fr; } .filter-panel button { grid-column: auto; } .results-head { align-items: start; gap: 12px; } .results h2 { font-size: 1.5rem; } .card { padding: 20px; } .plan a { margin-left: auto; } .pagination { gap: 12px; } .pagination .outline { padding: 10px 12px; } .pagination span { font-size: .875rem; } .intro { font-size: .9375rem; } }
