/* Additions to the approved homepage theme; original styles remain shared. */
.breadcrumbs { display:flex; flex-wrap:wrap; gap:8px; padding-block:15px; font-size:11px; color:#5b6b72; }
.breadcrumbs a { text-decoration:underline; }
.region-panel { padding:30px; background:#d6e4e9; border-top:5px solid #417185; }
.region-panel .region-eyebrow,.region-eyebrow { font-size:10px; letter-spacing:.12em; font-weight:700; margin-bottom:13px; }
.region-panel h3 { font:700 34px/1.2 'Josefin Sans',sans-serif; color:#174457; }
.region-panel h3 span { display:block; font:400 14px/1.5 'Open Sans',sans-serif; margin-top:8px; }
.region-facts { margin:23px 0; display:grid; grid-template-columns:1fr 1.1fr; gap:20px; border-block:1px solid #abc4cf; padding-block:20px; }
.region-facts dt { color:#435d69; font-size:10px; }
.region-facts dd { margin:7px 0 0; font-size:29px; font-weight:700; line-height:1.3; color:#174457; }
.region-facts dd.region-name { font-size:14px; }
.region-panel .region-neighbors-label { font-size:12px; font-weight:700; margin-bottom:8px; }
.region-neighbors { padding:0; margin:0; list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:8px 20px; }
.region-neighbors a { font-size:12px; text-decoration:underline; }
.region-panel .region-footnote { font-size:9px; line-height:1.6; margin:20px 0 0; }
.resource-kind { font-weight:400; color:#657781; }
.source-details { font-size:11px; line-height:1.8; margin-top:25px; color:#586971; }
.source-details summary { color:#417185; text-decoration:underline; cursor:pointer; padding-block:7px; }
.source-details p { margin-top:10px; max-width:950px; }
.source-details ul { margin-block:8px; }
.nearby-guides { border-top:1px solid #d7d7d7; }
.nearby-links { list-style:none; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 30px; }
.nearby-links a { display:flex; gap:15px; justify-content:space-between; border-bottom:1px dotted #9eb7c1; padding:16px 5px; }
.city-index-hero { background:#174457 url('/city-assets/assets/home-2021-bg.jpg') center/cover; color:white; text-align:center; padding:55px 0 60px; }
.city-index-hero h1 { font-size:clamp(32px,4vw,49px); margin-bottom:20px; }
.city-index-hero p:not(.region-eyebrow) { max-width:730px; margin:0 auto 27px; font-size:16px; line-height:1.9; }
.city-search { background:#e8f1f4; display:flex; align-items:end; gap:20px; padding:23px; }
.city-search label { flex:1; font-size:11px; font-weight:700; color:#315a6a; }
.city-search input,.city-search select { display:block; width:100%; margin-top:7px; padding:13px; border:1px solid #acc3cd; border-radius:0; background:white; font:400 14px 'Open Sans',sans-serif; color:#243c47; min-height:47px; }
.city-search .button { min-height:47px; }
#city-results { color:#61717a; font-size:12px; margin:20px 0; }
.city-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 32px; list-style:none; padding:0; margin:0; }
.city-grid>li>a { display:flex; align-items:center; gap:15px; padding:23px 0; min-height:107px; border-bottom:1px dotted #9fb2ba; }
.city-rank { color:#929da3; font-size:11px; min-width:29px; }
.city-grid h3 { font:700 18px/1.4 'Open Sans',sans-serif; color:#417185; }
.city-grid p { font-size:11px; margin-top:5px; color:#596d77; }
.city-arrow { margin-left:auto; flex-shrink:0; }
.city-pagination { display:flex; justify-content:center; align-items:center; gap:25px; margin-top:35px; }
.city-pagination .button:disabled { opacity:.45; cursor:default; }
.state-directory { border-top:1px solid #ddd; }
.state-links { padding:0; list-style:none; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px 25px; margin-top:25px; }
.state-links a { display:block; padding-block:8px; border-bottom:1px dotted #abc1ca; }
.index-back { margin-bottom:20px; }
#city-empty { padding:40px; background:#f5f5f5; text-align:center; }
@media(max-width:1000px) { .city-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .region-panel { padding:23px; } }
@media(max-width:650px) {
  .breadcrumbs { font-size:10px; padding-block:12px; }
  .region-panel h3 { font-size:30px; }
  .region-facts { grid-template-columns:1fr 1fr; gap:15px; }
  .region-neighbors { grid-template-columns:1fr; }
  .nearby-links,.city-grid { grid-template-columns:1fr; }
  .city-index-hero { padding-block:35px; }
  .city-index-hero p:not(.region-eyebrow) { font-size:14px; }
  .city-search { flex-direction:column; align-items:stretch; padding:18px; gap:15px; }
  .state-links { grid-template-columns:1fr 1fr; font-size:12px; gap:8px 20px; }
  .city-pagination { gap:14px; font-size:12px; }
  .city-pagination .button { padding:10px 17px; font-size:12px; }
}
