/* locations.css — county hubs, city pages and city x service pages
   (board item 123). Built on site.css tokens; no new colors. */

.loc-facts{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr)); gap:12px; margin:var(--s4) 0 0; padding:0 }
.loc-facts div{ background:var(--card-bg,#fff); border:1px solid var(--card-line,var(--line)); border-radius:var(--r-sm); padding:12px 14px; min-width:0 }
.loc-facts dt{ font-size:12.5px; text-transform:uppercase; letter-spacing:.08em; font-weight:700; color:var(--sub,#5a6b80); margin:0 0 4px }
.loc-facts dd{ margin:0; font-family:var(--head); font-weight:700; color:var(--h,var(--accent)); overflow-wrap:anywhere }

.loc-cols{ display:grid; grid-template-columns:minmax(0,3fr) minmax(0,2fr); gap:var(--s6); align-items:start }
.loc-places{ list-style:none; padding:0; margin:var(--s3) 0 0; display:flex; flex-wrap:wrap; gap:8px }
.loc-places li{ background:var(--chip,#eef2f8); border-radius:999px; padding:6px 12px; font-size:14px; color:var(--ink,#2a3442) }
.loc-aside{ background:var(--mist); border:1px solid var(--line); border-radius:var(--r); padding:var(--s4) }
.loc-aside h3{ margin-top:0 }

.loc-cards{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--s5); margin:var(--s5) 0 }
.loc-cards.four{ grid-template-columns:repeat(4,minmax(0,1fr)) }

.loc-tablewrap{ overflow-x:auto; margin:var(--s4) 0; -webkit-overflow-scrolling:touch }
.loc-zips{ width:100%; border-collapse:collapse; font-size:15px; background:var(--card-bg,#fff) }
.loc-zips th,.loc-zips td{ text-align:left; padding:9px 10px; border-bottom:1px solid var(--line); vertical-align:top }
.loc-zips th{ font-weight:600; color:var(--sub,#5a6b80); font-size:13px; text-transform:uppercase; letter-spacing:.06em }
.loc-zips td.n{ text-align:right; font-variant-numeric:tabular-nums }
.loc-zips th.n{ text-align:right }
.loc-ziplist{ overflow-wrap:anywhere }

.loc-links{ list-style:none; padding:0; margin:var(--s4) 0; display:grid; grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr)); gap:10px }
.loc-links a{ display:flex; flex-wrap:wrap; min-width:0; overflow-wrap:anywhere; justify-content:space-between; align-items:center; gap:10px; min-height:44px; padding:10px 14px;
  background:var(--card-bg,#fff); border:1px solid var(--card-line,var(--line)); border-radius:var(--r-sm); text-decoration:none;
  font-family:var(--head); font-weight:700; color:var(--h,var(--accent)); transition:border-color .2s ease, transform .2s ease }
.loc-links a:hover{ border-color:var(--primary); transform:translateY(-1px) }
.loc-links a:focus-visible{ outline:3px solid var(--primary); outline-offset:2px }
.loc-links .note{ font-family:var(--body); font-weight:400; font-size:13px; color:var(--sub,#5a6b80); white-space:nowrap }
.loc-others{ columns:2 min(260px,100%); column-gap:var(--s5); padding:0; list-style:none; margin:var(--s3) 0 }
.loc-others li{ break-inside:avoid; padding:4px 0; font-size:15px }
.loc-others b{ font-family:var(--head); color:var(--h,var(--accent)) }

.loc-group{ margin:0 0 var(--s6) }
.loc-state{ margin:var(--s6) 0 var(--s4); padding-top:var(--s4); border-top:1px solid var(--line,#d9e0e8) }
.loc-state:first-child{ margin-top:0; padding-top:0; border-top:0 }
.loc-group h3{ display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 14px }
.loc-group h3 small{ font-family:var(--body); font-weight:400; font-size:14px; color:var(--sub,#5a6b80) }

@media (max-width: 900px){
  .loc-cols{ grid-template-columns:1fr }
  .loc-cards.four{ grid-template-columns:repeat(2,minmax(0,1fr)) }
}
@media (max-width: 640px){
  .loc-cards,.loc-cards.four{ grid-template-columns:1fr }
  .loc-zips{ font-size:14px }
  .loc-zips th,.loc-zips td{ padding:8px 6px }
  .loc-zips .hide-s{ display:none }
}
.loc-mt{ margin-top:var(--s6) }
.loc-links.loc-stack{ grid-template-columns:1fr; margin:0 }
.loc-btns{ display:flex; flex-wrap:wrap; gap:10px }
