.browse-view { display:inline-flex; align-items:center; gap:3px; padding:4px; border:1px solid #cbd5e1; border-radius:999px; background:#fff; margin:0 0 20px; }
.browse-view a { display:inline-flex; align-items:center; justify-content:center; min-height:40px; min-width:80px; padding:0 16px; border-radius:999px; font-size:14px; font-weight:700; text-decoration:none; color:#475569; }
.browse-view a[aria-current="page"] { background:#263c5a; color:#fff; }
.browse-view a:hover:not([aria-current]) { background:#eef3fa; color:#1d4ed8; }
.browse-view a:focus-visible,.directory a:focus-visible,.directory select:focus-visible,.directory button:focus-visible { outline:3px solid #60a5fa; outline-offset:3px; }
.directory-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin:4px 0 24px; }
.directory-heading h1 { font-size:clamp(1.8rem,4vw,2.4rem); font-weight:850; line-height:1.1; margin:0 0 8px; color:#0f172a; }
.directory-heading p { margin:0; max-width:70ch; color:#526071; font-size:15px; line-height:1.6; }
.directory-heading .browse-view { flex-shrink:0; margin:0; }
.directory-toolbar { display:flex; flex-wrap:wrap; align-items:end; justify-content:space-between; gap:12px 20px; padding:18px; background:#eef2f6; border:1px solid #dde3eb; border-radius:14px; margin-bottom:18px; }
.directory-filter { display:flex; flex-wrap:wrap; align-items:end; gap:12px; margin:0; min-width:0; }
.directory-filter label { display:block; margin-bottom:6px; color:#334155; font-size:13px; font-weight:750; }
.directory-filter select { width:245px; max-width:100%; min-height:44px; padding:8px 30px 8px 10px; background:#fff; color:#1e293b; border:1px solid #aebaca; border-radius:8px; font:inherit; font-size:14px; }
.directory-filter .empty-option { color:#737d8b; }
.directory-filter button { min-height:44px; padding:8px 18px; border:1px solid #2563eb; border-radius:8px; background:#2563eb; color:#fff; font:inherit; font-size:14px; font-weight:650; cursor:pointer; }
.directory-scope { display:inline-flex; align-items:center; min-height:44px; color:#2454c6; font-size:13px; text-underline-offset:3px; }
.directory-results { margin-bottom:12px; }
.directory-scope-note { padding-top:5px; }
.directory-table { border-collapse:separate; border-spacing:0; width:100%; table-layout:fixed; border:1px solid #dce3ec; border-radius:12px; overflow:hidden; background:white; font-size:14px; line-height:1.5; }
.directory-table th { padding:13px 16px; background:#eaf0f7; text-align:left; color:#475569; font-size:12px; text-transform:uppercase; letter-spacing:.025em; }
.directory-table th:nth-child(1) { width:34%; }.directory-table th:nth-child(2) { width:28%; }.directory-table th:nth-child(3) { width:23%; }.directory-table th:nth-child(4) { width:15%; }
.directory-table td { vertical-align:top; padding:16px; border-top:1px solid #e2e8f0; overflow-wrap:anywhere; }
.directory-row:nth-child(even) { background:#f8fafc; }.directory-row:hover { background:#f0f5fc; }
.directory-name a { color:#123251; text-decoration:none; font-size:15px; font-weight:750; line-height:1.4; }.directory-name a:hover { text-decoration:underline; color:#1d4ed8; }
.directory-category { display:block; font-size:12px; color:#667386; margin-top:6px; }
.directory-benefit { color:#334155; }
.directory-badges>div { display:flex; flex-wrap:wrap; gap:5px; }
.directory-badge { display:inline-block; padding:4px 8px; border-radius:999px; border:1px solid; font-size:11px; font-weight:700; line-height:1.35; }
.directory-unspecified { color:#667386; font-size:12px; }.directory-deadline { font-size:13px; color:#334155; font-variant-numeric:tabular-nums; }
.directory-past { display:block; color:#8a4747; font-size:11px; margin-top:4px; }
.directory-empty { padding:32px 16px; border:1px solid #dce3ec; border-radius:12px; background:#fff; text-align:center; }.directory-empty h2 { margin:0 0 16px; font-size:18px; }.directory-empty a { display:inline-flex; align-items:center; min-height:44px; margin:0 12px; color:#2454c6; }
.directory-signup { margin-top:26px; }.directory-signup .email-signup { margin-left:0; margin-right:0; }
@media (max-width:700px) {
 .browse-view a { min-height:44px; }
 .directory-heading { display:block; margin-bottom:18px; }.directory-heading .browse-view { margin-top:16px; }
 .directory-heading p { font-size:14px; }
 .directory-toolbar { padding:12px; gap:4px; }.directory-filter { width:100%; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:10px; }.directory-filter>div { min-width:0; }.directory-filter select { width:100%; font-size:13px; padding-left:8px; padding-right:20px; }.directory-filter button { grid-column:1/-1; justify-self:start; }.directory-filter.enhanced button { display:none; }
 .directory-table { display:block; table-layout:auto; border-radius:10px; }.directory-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }.directory-table tbody { display:block; }
 .directory-table .directory-row { display:block; padding:14px; border-top:1px solid #dce3ec; }.directory-table .directory-row:first-child { border-top:0; }
 .directory-table td { display:block; border:0; padding:0; width:auto; }.directory-name { margin-bottom:10px; }.directory-name a { font-size:15px; }.directory-category { margin-top:3px; }
 .directory-table td[data-label] { display:grid; grid-template-columns:64px minmax(0,1fr); gap:8px; margin-top:7px; font-size:13px; }.directory-table td[data-label]::before { content:attr(data-label); font-size:12px; font-weight:650; color:#64748b; padding-top:1px; }
 .directory-badge { font-size:11px; }.directory-past { display:inline; margin-left:7px; }.directory-signup { margin-top:20px; }
}

/* Follow the document scroll, below the fixed navigation, only in table layout. */
@media (min-width:701px) {
 .directory-table { overflow:visible; }
 .directory-table thead th { position:sticky; top:70px; z-index:10; box-shadow:0 1px 0 #cbd5e1; }
 .directory-table thead th:first-child { border-top-left-radius:11px; }
 .directory-table thead th:last-child { border-top-right-radius:11px; }
 .directory-table tbody tr:last-child td:first-child { border-bottom-left-radius:11px; }
 .directory-table tbody tr:last-child td:last-child { border-bottom-right-radius:11px; }
}
/* The existing navigation is in normal flow on short landscape screens. */
@media (min-width:701px) and (orientation:landscape) and (max-height:450px) {
 .directory-table thead th { top:0; }
}

.directory-row-links .directory-row { cursor:pointer; }
.directory-row-links .directory-row:focus-within { background:#f0f5fc; }
