/* Local directory styles: no network or build step required. */
.directory-page { background:#f5f7fa; color:#26364a; }
.directory-page [hidden] { display:none !important; }
.directory-page .container { max-width:1200px; padding-inline:28px; }
.directory-page :is(a,button,input,select,summary):focus-visible { outline:3px solid #b58b15; outline-offset:4px; }
.skip-link { position:fixed; left:16px; top:-100px; background:#fff; color:#003366; padding:12px 20px; z-index:100; border-radius:4px; }
.skip-link:focus { top:10px; }
.directory-hero { position:relative; overflow:hidden; background:#003366; color:#fff; padding:32px 0 52px; border-bottom:4px solid #d4af37; }
.directory-hero::after { content:''; position:absolute; width:450px; height:450px; right:-190px; top:-100px; border:1px solid #ffffff16; border-radius:50%; box-shadow:0 0 0 70px #ffffff06,0 0 0 140px #ffffff04; pointer-events:none; }
.directory-breadcrumb { font-size:12px; color:#d8e3ef; display:flex; align-items:center; gap:12px; margin-bottom:34px; }
.directory-breadcrumb a { color:#fff; }
.directory-breadcrumb a:hover { text-decoration:underline; }
.directory-hero-content { position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:48px; }
.directory-eyebrow { font-size:11px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:#e6cb75; margin-bottom:14px; display:flex; align-items:center; gap:10px; }
.directory-eyebrow::before { content:''; width:28px; height:2px; background:#d4af37; }
.directory-hero h1 { font-family:Georgia,'Times New Roman',serif; font-size:clamp(32px,4vw,50px); font-weight:500; line-height:1.14; letter-spacing:-.025em; max-width:670px; margin:0 0 18px; }
.directory-hero-description { max-width:650px; font-size:15px; line-height:1.8; color:#dce6f0; }
.directory-seal { width:160px; height:160px; flex:0 0 160px; padding:13px; border:1px solid #d4af3766; border-radius:50%; background:#ffffff08; }
.directory-seal img { width:100%; height:100%; object-fit:cover; border:6px solid white; border-radius:50%; }
.directory-stats { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid #dfe5ed; background:#fff; border-radius:8px; margin:28px 0 36px; }
.directory-stat { padding:22px 28px; display:flex; align-items:center; gap:18px; }
.directory-stat + .directory-stat { border-left:1px solid #e7ebf0; }
.directory-stat strong { font-size:32px; font-weight:700; letter-spacing:-.04em; color:#003366; line-height:1; font-variant-numeric:tabular-nums; }
.directory-stat span { color:#657287; font-size:12px; line-height:1.5; }
.directory-stat b { display:block; font-size:13px; font-weight:600; color:#2e425b; }
.directory-section { padding-bottom:48px; scroll-margin-top:105px; }
.directory-section-top { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; margin-bottom:22px; }
.directory-section h2 { color:#003366; font-family:Georgia,'Times New Roman',serif; font-weight:500; font-size:29px; line-height:1.3; margin:0 0 8px; }
.directory-section-top p { max-width:720px; font-size:13px; color:#657287; }
.directory-text-link { color:#003366; font-size:12px; font-weight:700; display:inline-flex; align-items:center; gap:8px; white-space:nowrap; padding-block:10px; text-decoration:underline; text-underline-offset:4px; }
.directory-text-link:hover { color:#806216; }
.directory-panel { background:#fff; border:1px solid #dfe5ed; border-radius:9px; overflow:hidden; }
.directory-controls { padding:24px; background:#fff; border-bottom:1px solid #e2e8ef; }
.directory-filter-grid { display:grid; grid-template-columns:minmax(220px,1.55fr) minmax(190px,1fr) minmax(195px,1fr); align-items:end; gap:16px; }
.directory-field label { display:block; font-size:11px; color:#40526b; font-weight:700; letter-spacing:.04em; margin-bottom:7px; }
.directory-field :is(input,select),.directory-sort select,.directory-page-size select { width:100%; min-height:46px; border:1px solid #ced7e3; background:#fff; border-radius:5px; font-size:13px; font-family:inherit; color:#253c58; padding:10px 12px; }
.directory-search { position:relative; }
.directory-search svg { position:absolute; left:13px; top:14px; width:18px; height:18px; color:#65758b; pointer-events:none; }
.directory-search input { padding-left:40px; padding-right:40px; }
.directory-search input::placeholder { color:#758397; }
.directory-search input::-webkit-search-cancel-button { -webkit-appearance:none; }
.directory-clear-search { position:absolute; width:30px; height:30px; right:7px; top:8px; border:none; border-radius:4px; cursor:pointer; background:#edf1f7; color:#344d6a; font-size:19px; line-height:1; }
.directory-filter-bottom { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:15px; }
.directory-filter-bottom p { color:#65758b; font-size:11px; }
.directory-reset { cursor:pointer; border:none; background:transparent; color:#003366; font-family:inherit; font-size:12px; font-weight:600; padding:4px; text-decoration:underline; text-underline-offset:3px; }
.directory-results { scroll-margin-top:95px; }
.directory-results-top { display:flex; align-items:center; justify-content:space-between; padding:18px 24px; gap:16px; }
.directory-results-top h3 { color:#374e6c; font-size:13px; font-weight:600; margin:0; }
.directory-results-top h3:focus { outline:none; }
.directory-sort { display:flex; align-items:center; gap:8px; font-size:11px; color:#6e7d92; }
.directory-sort select { min-height:34px; width:auto; padding:5px 9px; font-size:11px; border-color:#dfe5ed; }
.directory-table-wrap { width:100%; overflow-x:auto; }
.directory-table { width:100%; border-collapse:collapse; text-align:left; table-layout:fixed; }
.directory-table col:nth-child(1) { width:66px; }
.directory-table col:nth-child(2) { width:43%; }
.directory-table col:nth-child(3) { width:24%; }
.directory-table th { padding:13px 24px; background:#eef3f8; border-block:1px solid #e1e7ef; font-size:10px; font-weight:700; letter-spacing:.08em; color:#586d88; text-transform:uppercase; }
.directory-table td { border-bottom:1px solid #edf0f4; padding:16px 24px; vertical-align:middle; font-size:13px; }
.directory-table tr:last-child td { border-bottom:none; }
.directory-table tbody tr:hover { background:#f8fafc; }
.directory-table td:first-child { color:#65758b; font-size:11px; font-variant-numeric:tabular-nums; }
.directory-member-name { display:block; font-size:13px; font-weight:600; color:#253e5d; overflow-wrap:anywhere; line-height:1.6; }
.directory-member-reference { display:block; font-size:10px; color:#65758b; margin-top:3px; }
.directory-grade { display:inline-block; border-radius:4px; background:#eef3fb; color:#17457e; padding:3px 8px; font-size:10px; font-weight:700; letter-spacing:.025em; }
.directory-grade-dfiicep { background:#faf3df; color:#795c13; }
.directory-grade-cmiicep { background:#e9f4ef; color:#246348; }
.directory-grade-unstated { background:#f3f5f7; color:#5f6d80; font-weight:500; }
.directory-grade-caiicep,.directory-grade-fceiip { background:#f1edf8; color:#645180; }
.directory-grade-label { display:block; font-size:10px; color:#65758b; margin-top:3px; }
.directory-record-date { display:block; color:#475b74; font-size:12px; }
.directory-record-type { display:block; color:#65758b; font-size:10px; margin-top:3px; }
.directory-pagination { display:flex; align-items:center; justify-content:space-between; gap:16px; border-top:1px solid #e2e8ef; padding:16px 24px; background:#fcfdfe; }
.directory-page-size { display:flex; align-items:center; gap:8px; font-size:11px; color:#6e7d92; }
.directory-page-size select { width:67px; min-height:32px; padding:4px 8px; font-size:11px; }
.directory-page-buttons { display:flex; align-items:center; gap:10px; }
.directory-page-buttons span { font-size:11px; color:#6e7d92; margin-right:7px; }
.directory-page-buttons button { min-height:36px; border:1px solid #ced8e4; background:#fff; border-radius:4px; padding:7px 12px; font-size:11px; color:#003366; font-weight:600; cursor:pointer; }
.directory-page-buttons button:hover:not(:disabled) { background:#edf3f9; border-color:#003366; }
.directory-page-buttons button:disabled { opacity:.4; cursor:default; }
.directory-empty { text-align:center; padding:64px 24px; }
.directory-empty svg { width:32px; height:32px; color:#8596ae; margin-bottom:12px; }
.directory-empty h3 { color:#003366; font-size:18px; margin-bottom:7px; }
.directory-empty p { color:#6e7d92; font-size:13px; margin-bottom:14px; }
.directory-noscript { padding:15px 24px; background:#fff8e6; color:#66501a; font-size:13px; }
.directory-legend { font-size:12px; color:#6e7d92; margin-top:18px; }
.directory-legend summary { cursor:pointer; color:#4f6480; font-weight:600; padding:5px 0; }
.directory-legend dl { margin-top:12px; display:grid; grid-template-columns:repeat(3,1fr); gap:16px; padding:18px; background:#fff; border:1px solid #e2e8ef; border-radius:6px; }
.directory-legend dt { color:#003366; font-weight:700; }
.directory-legend dd { font-size:11px; margin:3px 0 0; }
.directory-legend > p { margin-top:10px; font-size:11px; }
.directory-history { border-top:1px solid #e0e6ed; padding-top:32px; }
.directory-history-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.directory-history-card { background:#fff; border:1px solid #dfe5ed; border-top:3px solid #d4af37; border-radius:6px; padding:23px; display:flex; flex-direction:column; }
.directory-history-card .directory-card-year { font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#8c6d1c; }
.directory-history-card h3 { margin:7px 0 9px; color:#003366; font-family:Georgia,'Times New Roman',serif; font-size:21px; font-weight:500; }
.directory-history-card p { color:#6c7c90; font-size:12px; line-height:1.8; flex-grow:1; }
.directory-history-card a { color:#003366; font-size:12px; font-weight:700; margin-top:18px; display:flex; justify-content:space-between; align-items:center; }
.directory-history-card a:hover { text-decoration:underline; text-underline-offset:3px; }
.directory-verification { margin-bottom:40px; border:1px solid #dbe3ee; border-radius:7px; padding:24px 28px; background:#eaf0f7; display:flex; align-items:flex-start; gap:18px; }
.directory-verification > svg { width:24px; height:24px; color:#003366; flex-shrink:0; margin-top:4px; }
.directory-verification h2 { font-size:15px; font-weight:700; color:#003366; margin:0 0 7px; }
.directory-verification p { color:#596d87; font-size:12px; max-width:850px; line-height:1.9; }
.directory-verification a { color:#003366; text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
.directory-contact-links { display:flex; flex-wrap:wrap; gap:8px 20px; margin-top:10px; font-size:12px; }
.directory-footer { background:#00264d; color:#c5d1df; padding:26px 0; font-size:11px; }
.directory-footer .container { display:flex; align-items:center; justify-content:space-between; gap:24px; text-align:left; }
.directory-footer a { color:#ebcc6b; white-space:nowrap; }
.directory-footer a:hover { text-decoration:underline; }
.directory-sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
[id^='cohort-'] { scroll-margin-top:110px; }
@media(max-width:950px) {
 .directory-filter-grid { grid-template-columns:1fr 1fr; }
 .directory-field:first-child { grid-column:1 / -1; }
 .directory-stat { padding:20px; gap:12px; }
 .directory-stat strong { font-size:27px; }
 .directory-history-grid { gap:12px; }
 .directory-history-card { padding:19px; }
 .directory-table td,.directory-table th { padding-inline:18px; }
 .directory-table col:nth-child(1) { width:54px; }
}
@media(max-width:640px) {
 .directory-page .container { padding-inline:18px; }
 .directory-hero { padding:22px 0 34px; }
 .directory-breadcrumb { margin-bottom:28px; }
 .directory-seal { display:none; }
 .directory-hero h1 { font-size:35px; }
 .directory-hero-description { font-size:13px; }
 .directory-stats { margin:20px 0 28px; }
 .directory-stat { padding:16px 12px; display:block; }
 .directory-stat strong { font-size:26px; display:block; margin-bottom:8px; }
 .directory-stat b,.directory-stat span { font-size:10px; }
 .directory-section-top { display:block; margin-bottom:16px; }
 .directory-section h2 { font-size:25px; }
 .directory-section-top p { font-size:12px; }
 .directory-section-top > a { margin-top:7px; }
 .directory-controls { padding:18px; }
 .directory-filter-grid { grid-template-columns:1fr; gap:13px; }
 .directory-field:first-child { grid-column:auto; }
 .directory-field :is(input,select) { font-size:16px; }
 .directory-filter-bottom { align-items:flex-start; }
 .directory-filter-bottom p { max-width:195px; }
 .directory-results-top { padding:16px 18px; flex-wrap:wrap; gap:10px; }
 .directory-table,.directory-table thead,.directory-table tbody { display:block; width:100%; }
 .directory-table colgroup { display:none; }
 .directory-table thead tr { display:grid; grid-template-columns:36px minmax(0,1fr) 108px; }
 .directory-table th,.directory-table td { display:block; }
 .directory-table col:nth-child(1) { width:36px; }
 .directory-table col:nth-child(2) { width:55%; }
 .directory-table col:nth-child(3) { width:auto; }
 .directory-table col:nth-child(4),.directory-table thead th:nth-child(4) { display:none; }
 .directory-table thead th { padding:11px 8px; font-size:9px; }
 .directory-table tbody tr { display:grid; grid-template-columns:36px minmax(0,1fr) 108px; padding:14px 0; border-bottom:1px solid #edf0f4; }
 .directory-table tbody tr:last-child { border-bottom:none; }
 .directory-table td { border:none; padding:0 8px; align-self:center; }
 .directory-table td:first-child { grid-column:1; grid-row:1 / 3; align-self:start; padding-top:2px; font-size:10px; }
 .directory-table td:nth-child(2) { grid-column:2; grid-row:1; }
 .directory-table td:nth-child(3) { grid-column:3; grid-row:1 / 3; align-self:start; }
 .directory-table td:nth-child(4) { grid-column:2; grid-row:2; padding-top:5px; }
 .directory-member-name { font-size:12px; }
 .directory-grade { font-size:9px; padding:3px 6px; }
 .directory-grade-label { font-size:9px; }
 .directory-record-date { font-size:10px; display:inline; }
 .directory-record-type { font-size:9px; margin-left:5px; display:inline; }
 .directory-pagination { padding:15px 14px; flex-direction:column; align-items:stretch; gap:14px; }
 .directory-page-size { justify-content:flex-start; }
 .directory-page-buttons { justify-content:flex-end; flex-wrap:wrap; }
 .directory-page-buttons span { margin-right:auto; }
 .directory-page-buttons button { min-height:40px; }
 .directory-legend dl { grid-template-columns:1fr; }
 .directory-history-grid { grid-template-columns:1fr; }
 .directory-history-card { padding:22px; }
 .directory-section { padding-bottom:32px; }
 .directory-verification { padding:20px 18px; gap:12px; }
 .directory-contact-links { flex-direction:column; gap:7px; }
 .directory-footer .container { flex-direction:column; align-items:flex-start; gap:12px; }
}
@media(prefers-reduced-motion:reduce) {
 .directory-page,.directory-page * { scroll-behavior:auto !important; transition:none !important; }
}
