.directory-body{min-height:100vh;display:flex;flex-direction:column}
.directory-header{height:auto;min-height:78px;gap:24px;padding:16px max(24px,calc((100vw - 1240px)/2))}
.directory-header .brand{width:270px;height:auto;max-width:100%}
.directory-header .brand img{display:block;width:100%;height:auto;object-fit:contain}
.directory-nav{display:flex;align-items:center;flex-wrap:wrap;gap:8px 24px;font-size:14px;font-weight:650}
.directory-nav a{padding:9px 0;border-bottom:2px solid transparent}
.directory-nav a:hover,.directory-nav a[aria-current=page]{color:#075ac0;border-bottom-color:#075ac0}
.directory-main{width:100%;max-width:1288px;margin:0 auto;padding:48px 24px 56px;flex:1}
.directory-intro{max-width:800px;margin-bottom:32px}
.directory-kicker{font-size:11px;font-weight:750;letter-spacing:1.7px;text-transform:uppercase;color:#3a6687;margin:0 0 14px}
.directory-intro h1,.directory-detail h1{font:700 clamp(34px,4vw,52px)/1.12 var(--serif);letter-spacing:-1.1px;color:#103454;margin:0 0 18px;text-wrap:balance}
.directory-intro>p:last-child{font-size:17px;line-height:1.7;color:#4d657a;max-width:680px;margin:0}
.directory-filters{display:grid;grid-template-columns:minmax(220px,1.7fr) minmax(180px,1fr) minmax(180px,1fr) auto;gap:16px;align-items:end;padding:22px;background:#edf3f8;border:1px solid #dce6ee;border-radius:12px}
.directory-filters>div{min-width:0}
.directory-filters label{display:block;font-weight:650;font-size:13px;color:#25445f;margin-bottom:8px}
.directory-filters input,.directory-filters select{width:100%;min-width:0;height:46px;padding:10px 12px;border:1px solid #aebfcd;border-radius:6px;background:white;color:#1c3852;font:inherit;font-size:14px}
.directory-filters input::placeholder{color:#65768a}
.directory-filters select{padding-right:28px}
.directory-filters input:focus-visible,.directory-filters select:focus-visible{outline:3px solid #3f95fa;outline-offset:3px}
.directory-filters button{height:46px;padding:10px 14px;border:1px solid #aebfcd;border-radius:6px;background:white;color:#234966;font-size:13px;font-weight:650;white-space:nowrap}
.directory-filters button:hover{background:#e1ebf3}
.directory-results-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:25px 0 16px;font-size:13px;line-height:1.5;color:#587087}
.directory-results-heading p{margin:0}
#directory-count{font-weight:650;color:#23445f}
.directory-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.directory-card{background:white;border:1px solid #dfe7ee;border-radius:11px;padding:23px;display:flex;flex-direction:column;min-width:0;box-shadow:0 3px 12px #18385804}
.directory-card-top{display:flex;justify-content:space-between;align-items:start;gap:12px;font-size:11px;line-height:1.5}
.directory-category{color:#075a9b;font-weight:700}
.directory-area{color:#49627a;text-align:right}
.directory-card h2{font:700 25px/1.25 var(--serif);color:#173a58;letter-spacing:-.4px;margin:16px 0 12px;overflow-wrap:anywhere}
.directory-card h2 a:hover{color:#075ac0;text-decoration:underline;text-underline-offset:4px}
.directory-description{font-size:14px;line-height:1.75;color:#4d657a;margin:0 0 18px}
.directory-card address{font-style:normal;font-size:13px;line-height:1.6;color:#405b73;margin-top:auto}
.directory-card-bottom{display:flex;align-items:end;justify-content:space-between;gap:14px;border-top:1px solid #e6edf2;margin-top:19px;padding-top:16px}
.directory-detail-link{font-size:13px;font-weight:700;color:#075a9b;white-space:nowrap}
.directory-detail-link span{display:inline-block;margin-left:8px}
.directory-detail-link:hover,.directory-back:hover{text-decoration:underline;text-underline-offset:4px}
.directory-checked{font-size:10px;line-height:1.5;color:#5a6e80;text-align:right}
.directory-checked time{display:block}
.directory-empty{padding:48px 24px;border:1px dashed #b5c7d5;border-radius:12px;text-align:center;background:#f0f5f9;color:#49627a}
.directory-empty h2{font:700 26px/1.3 var(--serif);color:#173a58;margin:0 0 12px}
.directory-empty p{font-size:15px;line-height:1.7;margin:0}
.directory-source-note{font-size:13px;line-height:1.75;color:#546c82;max-width:850px;margin:26px 0 0}
.directory-notice{padding:16px;border-radius:8px;background:#edf3f8;line-height:1.6}
.directory-footer{display:flex;justify-content:space-between;gap:24px;border-top:1px solid #dfe7ee;padding:28px max(24px,calc((100vw - 1240px)/2));font-size:12px;line-height:1.7;color:#526a80}
.directory-footer-brand{font-size:16px;font-weight:750;color:#254765}
.directory-footer p{margin:4px 0 0}
.directory-footer>a{text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.directory-breadcrumb{display:flex;flex-wrap:wrap;gap:8px 12px;font-size:12px;color:#516c82;line-height:1.7;margin-bottom:34px}
.directory-breadcrumb a:hover{text-decoration:underline}
.directory-breadcrumb [aria-current=page]{color:#254765}
.directory-detail{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);gap:34px 48px;max-width:1150px}
.directory-detail-intro{padding-top:8px}
.directory-detail h1{font-size:clamp(34px,4.5vw,56px);margin-bottom:24px;overflow-wrap:anywhere}
.directory-tags{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 24px}
.directory-tags a{border:1px solid #d4e2ed;border-radius:30px;background:#eaf2f8;padding:7px 13px;font-size:12px;font-weight:650;color:#305b7a}
.directory-tags a:hover{background:#dcebf6}
.directory-detail-description{font-size:19px;line-height:1.8;color:#486279;margin:0}
.directory-visit{align-self:start;border:1px solid #dce6ef;border-radius:12px;padding:28px;background:white}
.directory-visit h2,.directory-source h2{font:700 25px/1.3 var(--serif);color:#183d5b;margin:0 0 22px}
.directory-visit dl{margin:0}
.directory-visit dt{font-size:11px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;color:#526e84;margin-bottom:8px}
.directory-visit dd{margin:0 0 22px;font-size:15px;line-height:1.7;color:#2b4b65}
.directory-visit address{font-style:normal}
.directory-website{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#075799;color:white;font-size:14px;font-weight:650;padding:14px 17px;border-radius:7px}
.directory-website:hover{background:#06467c}
.directory-visit>p{font-size:12px;line-height:1.7;color:#586e80;margin:15px 0 0}
.directory-source{grid-column:1/-1;border-top:1px solid #dce6ee;padding-top:25px}
.directory-source h2{font-size:21px;margin-bottom:10px}
.directory-source p{font-size:14px;line-height:1.8;color:#506b81;max-width:750px;margin:0}
.directory-source a{color:#075a9b;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.directory-back{display:inline-block;color:#075a9b;font-size:14px;font-weight:650;line-height:1.6;margin-top:36px}
@media(max-width:1050px){.directory-filters{grid-template-columns:minmax(220px,1.5fr) minmax(150px,1fr) minmax(150px,1fr)}.directory-filters button{grid-column:1/-1;justify-self:start}.directory-results{grid-template-columns:repeat(2,minmax(0,1fr))}.directory-detail{gap:28px}}
@media(max-width:720px){.directory-header{align-items:flex-start;flex-direction:column;gap:13px;padding:18px 20px}.directory-header .brand{width:240px}.directory-nav{width:100%;justify-content:space-between;gap:8px 16px;font-size:13px}.directory-nav a{padding:7px 0}.directory-main{padding:32px 20px 40px}.directory-intro{margin-bottom:24px}.directory-intro h1{font-size:38px}.directory-intro>p:last-child{font-size:16px}.directory-filters{grid-template-columns:repeat(2,minmax(0,1fr));padding:18px;gap:16px 12px}.directory-search-field{grid-column:1/-1}.directory-filters input,.directory-filters select{font-size:16px}.directory-results-heading{align-items:flex-start;flex-direction:column;gap:5px;margin-top:22px}.directory-results{grid-template-columns:1fr}.directory-card{padding:23px}.directory-card h2{font-size:27px}.directory-description{font-size:15px}.directory-card address{font-size:14px}.directory-detail{grid-template-columns:1fr;gap:30px}.directory-detail h1{font-size:40px}.directory-detail-description{font-size:18px}.directory-visit{padding:24px}.directory-breadcrumb{margin-bottom:25px}.directory-footer{padding:24px 20px;flex-direction:column;gap:18px}.directory-kicker{font-size:10px;line-height:1.6;letter-spacing:1.4px}}
@media(max-width:370px){.directory-main{padding-inline:16px}.directory-filters{grid-template-columns:1fr}.directory-filters>div{grid-column:1}.directory-nav{gap:8px 13px;font-size:12px}.directory-intro h1{font-size:34px}.directory-card{padding:20px}}
