/* Shared home and network presentation, using the local Geist font. */
:root { --paper:#ffffff; --surface:#f7f7fa; --navy:#171b70; --rule:#e5e5eb; --focus:#171b70; }
body { background:var(--paper); }
.container { width:min(100% - 64px,1200px); }
.header-inner { min-height:84px; }
.brand-logo { height:30px; }
h1,h2,h3 { font-weight:500; letter-spacing:-.045em; }
h2 { font-size:clamp(1.9rem,3vw,2.8rem); }
.button { background:var(--navy); color:#fff; border-radius:0; }
.button:hover { background:#292f88; }
.section { padding-block:72px; }
.site-footer { margin-top:48px; }
.directory-controls { max-width:740px; margin:26px 0 16px; }
.search-control { position:relative; }
#suggestions { position:absolute; top:100%; left:0; right:0; max-height:340px; overflow:auto; background:#fff; border:1px solid var(--rule); z-index:1001; box-shadow:0 8px 20px #0002; }
.suggestion-heading { padding:8px 12px; font-size:12px; font-weight:650; color:var(--navy); background:var(--surface); }
.suggestion { padding:10px 12px; cursor:pointer; }
.suggestion:hover,.suggestion[aria-selected=true] { background:#ededfa; }
.map { height:460px; margin:28px 0; background:var(--surface); border:1px solid var(--rule); z-index:0; }
.map .leaflet-popup-content { font:14px Geist,sans-serif; }
.map .leaflet-popup-content a { color:var(--navy); }
.map .leaflet-popup-content p { margin:10px 0; }
.directory-hint,#results,#as-of { font-size:.85rem; color:var(--muted); }
.table-wrap { overflow:auto; }
.location-table { width:100%; border-collapse:collapse; font-size:.875rem; text-align:left; }
.location-table caption { text-align:left; padding:12px 0; color:var(--muted); font-size:.8rem; }
.location-table th { padding:14px 10px; background:var(--surface); font-size:.75rem; }
.location-table th button { border:0; background:none; color:inherit; padding:8px 0; text-align:left; }
.location-table td { padding:18px 10px; border-bottom:1px solid var(--rule); vertical-align:top; }
.location-table small { display:block; margin-top:6px; font-size:.75rem; }
.location-table .button { white-space:nowrap; min-height:44px; padding:9px 12px; font-size:.8rem; }
.code-chip { display:inline-block; padding:3px 6px; background:#ededfa; color:var(--navy); font-weight:650; margin:0 4px 4px 0; }
.pagination { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin:28px 0 0; }
.pagination #pages { display:contents; }
.pagination button { min-width:44px; min-height:44px; padding:8px 12px; border:1px solid var(--rule); background:#fff; color:var(--navy); }
.pagination button[aria-current] { background:var(--navy); color:#fff; }
.pagination button:disabled { opacity:.45; cursor:default; }
#page { padding:10px 4px; font-size:.8rem; }
@media(max-width:700px) {
  .container { width:calc(100% - 36px); }
  .header-inner { min-height:88px; gap:12px; flex-wrap:wrap; padding-block:16px; }
  .brand-logo { height:26px; }
  .header-inner nav { margin-left:0; gap:24px; font-size:.8rem; }
  .header-inner nav a { padding:4px 0; }
  .section { padding-block:44px; }
  .map { height:340px; }
  .location-table,.location-table tbody,.location-table tr,.location-table td { display:block; width:100%; }
  .location-table thead { display:block; }
  .location-table thead tr { display:flex; flex-wrap:wrap; gap:8px 16px; border:0; padding:0; }
  .location-table th { display:block; background:none; padding:0; }
  .location-table th:last-child { display:none; }
  .location-table tbody tr { border:1px solid var(--rule); padding:14px; margin-bottom:16px; }
  .location-table td { padding:7px 0; border:0; overflow-wrap:anywhere; }
  .location-table td::before { content:attr(data-label); display:block; font-size:.7rem; color:var(--muted); margin-bottom:3px; }
  .pagination { gap:5px; }
}
