.visitor-directory { background:#f7f8fb; color:#142137; }
.visitor-directory p { margin-left:0; margin-right:0; }
.directory-hero { padding:26px 0 58px; background:radial-gradient(ellipse at 12% 40%,#eefaff,transparent 58%),#fff; border-bottom:1px solid #e1e6ed; }
.directory-breadcrumb { display:flex; align-items:center; gap:12px; color:#56667b; font-size:.9rem; margin:0 0 40px; }
.directory-breadcrumb a { text-decoration:underline; text-underline-offset:4px; }
.directory-hero-grid { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(0,1fr); gap:60px; align-items:center; }
.directory-kicker { color:#a70c55; font-size:.73rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; margin:0 0 12px; }
.directory-hero h1 { font-size:clamp(2.1rem,4.6vw,3.65rem); line-height:1.08; letter-spacing:-.04em; margin:0 0 24px; font-weight:650; }
.directory-lead { color:#536379; font-size:1.07rem; line-height:1.8; max-width:610px; }
.directory-stats { display:flex; flex-wrap:wrap; gap:20px 28px; margin-top:30px; padding-top:24px; border-top:1px solid #dbe4ec; }
.directory-stats span { display:flex; flex-direction:column; font-size:.85rem; color:#5a687c; }
.directory-stats strong { color:#142137; font-size:1.75rem; font-weight:600; letter-spacing:-.025em; }
.directory-support { padding:30px; border-radius:22px; background:#102035; color:#e9f1fa; box-shadow:0 20px 50px #19324915; border-top:4px solid #04a9d1; }
.directory-support .directory-kicker { color:#71d9ef; }
.directory-support h2 { font-size:1.45rem; line-height:1.3; color:#fff; margin:0 0 15px; }
.directory-support p { font-size:.95rem; line-height:1.65; }
.directory-support .directory-contact { display:inline-flex; padding:12px 16px; margin-top:6px; background:#fff; color:#112237; font-size:.88rem; font-weight:500; border-radius:10px; min-height:44px; }
.directory-support .directory-contact:hover { background:#dcf4fa; }
.directory-phone { display:block; color:#fff; font-size:1.18rem; margin:17px 0; text-decoration:underline; text-underline-offset:5px; }
.directory-support .directory-support-address { color:#b7c8db; font-size:.85rem; margin:18px 0 0; }
.directory-tools { padding-top:35px; padding-bottom:27px; }
.directory-tools label { display:block; font-size:1.06rem; font-weight:500; margin-bottom:12px; }
.directory-search-row { display:flex; gap:12px; }
.directory-search-row input { flex:1; min-width:0; font:inherit; background:#fff; color:#142137; border:1px solid #b8c6d6; border-radius:12px; min-height:54px; padding:14px 18px; }
.directory-search-row input::placeholder { color:#637286; opacity:1; }
.directory-search-row button { min-height:44px; padding:12px 18px; background:#fff; color:#25455d; border:1px solid #b8c6d6; border-radius:12px; cursor:pointer; font:inherit; font-size:.9rem; }
.directory-suggestions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-top:14px; }
.directory-suggestions span { font-size:.8rem; color:#5c6c81; margin-right:4px; }
.directory-suggestions button { font:inherit; font-size:.8rem; color:#075e76; background:#e9f5f9; border:1px solid #c4e2eb; border-radius:30px; padding:8px 13px; cursor:pointer; min-height:38px; }
.directory-suggestions button:hover { background:#d7eff5; }
#directory-results { color:#617087; font-size:.84rem; margin:16px 0 0; min-height:1.4em; }
.directory-layout { display:grid; grid-template-columns:220px minmax(0,1fr); gap:36px; padding-bottom:60px; align-items:start; }
.directory-jump { position:sticky; top:108px; padding:20px 0; }
.directory-jump nav { display:flex; flex-direction:column; gap:4px; }
.directory-jump a { font-size:.87rem; display:flex; gap:8px; justify-content:space-between; align-items:center; padding:10px 12px; border-radius:8px; font-weight:400; color:#41516a; }
.directory-jump a:hover,.directory-jump a[aria-current="location"] { background:#e3f1f7; color:#075e76; }
.directory-jump a span { font-size:.74rem; color:#6b7a8d; }
.directory-jump .directory-kicker { padding:0 12px; margin-bottom:14px; }
.directory-group { scroll-margin-top:115px; background:#fff; border:1px solid #dee6ef; border-radius:18px; margin-bottom:24px; padding:25px; box-shadow:0 8px 28px #19324904; }
.directory-group-heading { display:flex; gap:20px; justify-content:space-between; align-items:flex-start; margin-bottom:16px; }
.directory-group-heading .directory-kicker { display:none; }
.directory-group-heading h2 { font-size:1.35rem; letter-spacing:-.02em; line-height:1.3; margin:0 0 8px; font-weight:600; }
.directory-group-heading p { font-size:.91rem; color:#617088; margin:0; max-width:570px; }
.directory-group-count { white-space:nowrap; background:#eef3f8; border-radius:25px; padding:6px 10px; font-size:.73rem; color:#53647a; }
.directory-page-list { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 22px; }
.directory-page-list li { min-width:0; border-top:1px solid #e7edf3; }
.directory-page-link { display:block; padding:18px 9px 16px; border-radius:8px; height:100%; transition:background .15s; }
.directory-page-link:hover { background:#f2f8fb; }
.directory-page-title { display:block; font-size:.95rem; font-weight:500; color:#172b43; line-height:1.45; }
.directory-page-description { display:block; font-size:.83rem; font-weight:400; color:#617088; line-height:1.7; margin:8px 0; }
.directory-visit { display:block; color:#076780; font-size:.79rem; font-weight:500; margin-top:12px; }
.directory-downloads,.directory-local-reading,.directory-help { scroll-margin-top:115px; padding:30px 0 15px; }
.directory-download-grid { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.directory-download-grid li { border-radius:15px; background:#fff; border:1px solid #dee6ef; border-top:3px solid #a70c55; overflow:hidden; }
.directory-download-grid a { display:block; padding:22px; height:100%; }
.directory-download-grid a:hover { background:#fcf6fa; }
.directory-download-label { font-size:.73rem; letter-spacing:.08em; color:#965073; }
.directory-download-grid h3 { font-size:1rem; line-height:1.45; margin:12px 0; font-weight:500; color:#172b43; }
.directory-download-grid p { font-size:.84rem; line-height:1.7; color:#617088; }
.directory-local-reading h2,.directory-help h2 { font-weight:600; font-size:1.5rem; letter-spacing:-.02em; margin:0 0 15px; }
.directory-local-reading > p:not(.directory-kicker) { color:#617088; font-size:.92rem; }
.directory-reading-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:20px; }
.directory-reading-links a { background:#eaf4f8; border:1px solid #d4e5ee; border-radius:12px; padding:17px; }
.directory-reading-links a:hover { background:#dceff5; }
.directory-reading-links span { display:block; color:#17475d; font-weight:500; font-size:.94rem; }
.directory-reading-links small { color:#546e7c; display:block; font-size:.8rem; margin-top:7px; line-height:1.5; }
.directory-help details { border-bottom:1px solid #dbe4ed; padding:18px 0; }
.directory-help summary { font-size:.94rem; cursor:pointer; font-weight:500; line-height:1.5; padding:3px 0; }
.directory-help details p { margin:14px 0 0; color:#5a6b80; font-size:.9rem; line-height:1.8; }
.directory-help details a { color:#075e76; text-decoration:underline; text-underline-offset:3px; }
#directory-empty { background:#fff; border:1px solid #dee6ef; padding:24px; border-radius:12px; }
.visitor-directory [hidden] { display:none!important; }
.visitor-directory :is(a,button,input,summary):focus-visible { outline:3px solid #007a99; outline-offset:4px; }
@media (max-width:980px) {
 .directory-hero-grid { gap:30px; }
 .directory-layout { grid-template-columns:180px minmax(0,1fr); gap:22px; }
 .directory-page-list { grid-template-columns:1fr; }
 .directory-support { padding:23px; }
}
@media (max-width:720px) {
 .directory-hero { padding:20px 0 30px; }
 .directory-breadcrumb { margin-bottom:24px; }
 .directory-hero-grid,.directory-layout { grid-template-columns:1fr; }
 .directory-hero-grid { gap:25px; }
 .directory-lead { font-size:1rem; }
 .directory-stats { gap:18px; }
 .directory-stats span { font-size:.78rem; }
 .directory-support { padding:24px; }
 .directory-tools { padding-top:26px; padding-bottom:10px; }
 .directory-search-row { flex-wrap:wrap; gap:8px; }
 .directory-search-row input { flex-basis:100%; padding:12px; font-size:.9rem; }
 .directory-search-row button { font-size:.84rem; padding:9px 14px; }
 .directory-jump { position:static; padding:12px 0 18px; }
 .directory-jump nav { display:flex; flex-direction:row; flex-wrap:wrap; gap:6px; }
 .directory-jump .directory-kicker { width:100%; padding:0; margin:0 0 7px; }
 .directory-jump a { padding:8px 11px; border:1px solid #d7e4ec; font-size:.78rem; background:#fff; }
 .directory-jump a span { display:none; }
 .directory-group { padding:21px 15px; margin-bottom:18px; }
 .directory-group-heading { gap:12px; }
 .directory-group-heading h2 { font-size:1.22rem; }
 .directory-group-heading p { font-size:.86rem; }
 .directory-group-count { font-size:.68rem; padding:5px 8px; }
 .directory-download-grid,.directory-reading-links { grid-template-columns:1fr; }
 .directory-page-link { padding:17px 3px; }
}
@media (prefers-reduced-motion:reduce) {
 .directory-page-link { transition:none; }
}
