/* Regional content follows the existing navy, silver and restored reading scale. */
.local-area-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 42px;
  align-items: center;
}
.local-area-intro h2 { font-size: 29px; line-height: 1.7; margin-bottom: 20px; }
.local-area-intro p,
.local-area-section > p,
.local-area-flow p,
.local-office p { font-size: 17px; line-height: 1.95; color: var(--muted); font-weight: 500; }
.local-area-photo { min-width: 0; margin: 0; }
.local-area-photo img { display: block; width: 100%; height: auto; }
.local-area-photo figcaption { font-size: 13px; color: var(--muted); margin-top: 8px; text-align: right; }
.local-page-jumps { margin-top: 40px; }
.local-area-section { margin-top: 52px; padding-top: 28px; border-top: 1px solid var(--line); scroll-margin-top: 140px; }
.local-area-section h2 { font-size: 27px; line-height: 1.7; margin-bottom: 22px; }
.local-area-section > p + p { margin-top: 18px; }
.local-area-section .local-reference { font-size: 15px; margin-top: 24px; }
.local-reference a { text-decoration: underline; text-underline-offset: 3px; }
.local-area-flow { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; list-style: none; padding: 0; counter-reset: local-step; }
.local-area-flow li { counter-increment: local-step; padding: 26px; border: 1px solid var(--line); background: var(--pale); }
.local-area-flow li::before { content: "0" counter(local-step); display: block; color: var(--navy); font-size: 26px; font-weight: 700; margin-bottom: 12px; }
.local-area-flow strong { display: block; font-size: 18px; color: var(--navy); line-height: 1.7; }
.local-area-flow p { margin-top: 12px; }
.local-office { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 34px; padding: 32px; background: var(--pale); border: 1px solid var(--line); }
.local-office p + p { margin-top: 15px; }
.local-office-actions { display: flex; flex-direction: column; justify-content: center; gap: 14px; }
.local-office-actions .btn { width: 100%; white-space: normal; text-align: center; }
.area-tags a { display: inline-flex; align-items: center; border: 1px solid #8b9fb5; padding: 4px 11px; background: #fff; color: var(--ink); font-size: 14px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.area-tags a:hover { background: #e8eef4; border-color: var(--navy); }
.area-tags a:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
@media (max-width: 900px) {
  .local-area-intro { grid-template-columns: 1fr; gap: 28px; }
  .local-area-photo { max-width: 640px; }
  .local-office { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .local-area-intro h2,
  .local-area-section h2 { font-size: 24px; }
  .local-area-intro p,
  .local-area-section > p,
  .local-area-flow p,
  .local-office p { font-size: 16px; }
  .local-area-intro .btn-row { flex-direction: column; align-items: stretch; }
  .local-area-intro .btn { white-space: normal; text-align: center; }
  .local-page-jumps { margin-top: 28px; }
  .local-area-section { margin-top: 38px; padding-top: 25px; }
  .local-area-flow { grid-template-columns: 1fr; }
  .local-area-flow li { padding: 23px; }
  .local-office { padding: 25px 21px; gap: 24px; }
  .local-area-section .local-reference { font-size: 14px; }
  .area-tags a { font-size: 13px; padding: 4px 9px; }
}

/* Home is the editorial parent; the area index groups city guides. */
.area-guide-grid,
.regional-service-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; }
.area-guide-grid .area-guide-card { margin: 0; max-width: none; min-width: 0; }
.area-guide-grid .area-guide-card h3 { font-size: 22px; }
.area-guide-card .text-link { display: inline-block; }
.regional-service-card { display: block; padding: 26px; border: 1px solid var(--line); background: var(--pale); min-width: 0; }
.regional-service-card h3,
.local-checklist h3 { font-size: 20px; line-height: 1.7; color: var(--navy); margin-bottom: 12px; }
.regional-service-card p,
.local-checklist li { font-size: 17px; line-height: 1.95; font-weight: 500; color: var(--muted); }
.regional-service-card .text-link { margin-top: 15px; }
.regional-service-card:hover { border-color: var(--navy); }
.regional-service-card:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
.local-checklist { padding: 25px; background: var(--pale); border: 1px solid var(--line); margin-top: 25px; }
.local-checklist ul { padding-left: 1.4em; }
.local-checklist li + li { margin-top: 10px; }
.local-neighbors .seo-related-links { margin-top: 20px; }
.regional-common-reference { margin-top: 26px; padding: 24px; border: 1px solid var(--line); background: var(--pale); }
.regional-common-reference h3,
.hub-city-entry h3 { font-size: 23px; line-height: 1.7; color: var(--navy); margin-bottom: 18px; }
.regional-common-reference p,
.hub-city-entry p,
.home-local-consultation p { font-size: 17px; line-height: 1.95; color: var(--muted); font-weight: 500; }
.hub-city-entry p + p,
.home-local-consultation p + p { margin-top: 18px; }
.home-local-consultation { background: var(--pale); border-top: 1px solid var(--line); }
.home-local-consultation h2 { font-size: 27px; line-height: 1.7; margin-bottom: 22px; }
.area-hub-links { margin-top: 25px; }
.population-area-grid { margin-top: 28px; }
.population-area-grid .area-guide-card { scroll-margin-top: 150px; }
.area-guide-card .area-population { font-size: 14px; font-weight: 700; color: var(--navy); margin-top: 14px; }
.area-hub-links a { min-height: 44px; padding: 8px 14px; font-size: 16px; }
.hub-city-entry { scroll-margin-top: 145px; }
@media (min-width:901px) and (max-width:1100px) {
  .desktop-nav a { padding-inline: 6px; }
}
.site-page-directory { background: var(--pale); border-top: 1px solid var(--line); }
.site-page-directory h2,
.area-index-page > .wrap > h2 { font-size: 27px; line-height: 1.7; margin-bottom: 18px; }
.site-page-directory p,
.area-index-page p { font-size: 17px; line-height: 1.95; color: var(--muted); }
.site-page-groups { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 20px 28px; margin-top: 28px; }
.site-page-group { padding: 24px 28px; border: 1px solid var(--line); background: #fff; }
.site-page-group:first-child { grid-row: span 3; }
.site-page-group h3 { font-size: 20px; color: var(--navy); margin-bottom: 14px; }
.site-page-group nav { display: grid; gap: 0; }
.site-page-group a { display: block; padding: 10px 0; border-top: 1px solid var(--line); font-size: 16px; font-weight: 600; color: var(--navy); line-height: 1.7; }
.site-page-group a:hover { text-decoration: underline; }
.site-page-group a:focus-visible,
.area-guide-card:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
.area-guide-card { display: block; max-width: 850px; border: 1px solid #8b9fb5; padding: 30px; background: var(--pale); margin-top: 25px; }
.area-guide-card h3 { font-size: 25px; color: var(--navy); line-height: 1.7; margin-bottom: 15px; }
.area-guide-card .text-link { margin-top: 20px; }
.area-guide-card:hover { border-color: var(--navy); }
.area-index-page .local-office p + p { margin-top: 15px; }
@media(max-width:600px) {
  .regional-common-reference { padding: 21px; }
  .regional-common-reference p,
  .hub-city-entry p,
  .home-local-consultation p { font-size: 16px; }
  .regional-common-reference h3,
  .hub-city-entry h3 { font-size: 21px; }
  .home-local-consultation h2 { font-size: 24px; }
  .area-hub-links a { font-size: 15px; padding: 8px 12px; }
  .area-guide-grid,
  .regional-service-grid { grid-template-columns: minmax(0,1fr); gap: 18px; }
  .regional-service-card { padding: 23px; }
  .regional-service-card p,
  .local-checklist li { font-size: 16px; }
  .local-checklist { padding: 22px; }
  .site-page-groups { grid-template-columns: 1fr; }
  .site-page-group:first-child { grid-row: auto; }
  .site-page-group { padding: 23px; }
  .site-page-directory h2,
  .area-index-page > .wrap > h2 { font-size: 24px; }
  .site-page-directory p,
  .area-index-page p { font-size: 16px; }
  .area-guide-card { padding: 25px 21px; }
  .area-guide-card h3 { font-size: 22px; }
}
