/* One regional directory, using the site's existing type and content rails. */
.company-page--service-areas .area-hero { padding-block: 48px 52px; }
.company-page--service-areas .breadcrumbs { margin-bottom: 22px; color: var(--text); }
.company-page--service-areas h1 { max-width: 880px; font-size: clamp(38px, 4.2vw, 56px); line-height: 1.12; }
.company-page--service-areas .area-intro { max-width: 740px; margin-top: 22px; font-size: 18px; line-height: 1.75; }
.company-page--service-areas .area-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 26px; margin-top: 26px; }
.company-page--service-areas .area-actions .text-link { display: inline-flex; align-items: center; min-height: 44px; }
.company-page--service-areas .area-directory { padding-block: 52px 64px; }
.company-page--service-areas .area-regions { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px 56px; align-items: stretch; }
.company-page--service-areas .area-region { min-width: 0; padding: 26px 0 0; border: 0; border-top: 1px solid var(--line); border-radius: 0; background: transparent; }
.company-page--service-areas .area-region--primary { grid-column: 1 / -1; padding: 28px 32px; border-top: 0; background: var(--linen); }
.company-page--service-areas .area-region h2 { margin: 0 0 22px; font-size: clamp(27px, 2.5vw, 32px); line-height: 1.25; text-wrap: balance; }
.company-page--service-areas .area-region--primary h2 { padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.company-page--service-areas .area-places { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px 24px; margin: 0; padding: 0; list-style: none; }
.company-page--service-areas .area-region--primary .area-places { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.company-page--service-areas .area-place { min-width: 0; margin: 0; padding-block: 5px; color: var(--walnut); font-size: 17px; line-height: 1.65; }
.company-page--service-areas .area-contact { padding-block: 48px 56px; }
.company-page--service-areas .area-contact-inner { display: flex; justify-content: space-between; align-items: center; gap: 32px 64px; }
.company-page--service-areas .area-contact-copy { max-width: 660px; }
.company-page--service-areas .area-contact h2 { font-size: clamp(30px, 3vw, 40px); line-height: 1.2; }
.company-page--service-areas .area-contact p { margin-top: 18px; font-size: 17px; line-height: 1.8; }
.company-page--service-areas .area-contact .btn { flex-shrink: 0; }
@supports (grid-template-rows: subgrid) {
  @media (min-width: 701px) {
    .company-page--service-areas .area-region:not(.area-region--primary) { display: grid; grid-row: span 2; grid-template-rows: subgrid; row-gap: 0; }
  }
}
@media (max-width: 1000px) {
  .company-page--service-areas .area-regions { gap: 34px; }
  .company-page--service-areas .area-region--primary { padding: 26px; }
  .company-page--service-areas .area-region--primary .area-places { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .company-page--service-areas .area-contact-inner { align-items: flex-start; flex-direction: column; gap: 24px; }
}
@media (max-width: 700px) {
  .company-page--service-areas .area-hero { padding-block: 32px 40px; }
  .company-page--service-areas .area-intro { font-size: 16px; }
  .company-page--service-areas .area-directory { padding-block: 38px 46px; }
  .company-page--service-areas .area-regions { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .company-page--service-areas .area-region { padding: 24px 0 0; }
  .company-page--service-areas .area-region--primary { padding: 24px 22px; }
  .company-page--service-areas .area-places { grid-template-columns: minmax(0, 1fr); gap: 5px 16px; }
  .company-page--service-areas .area-region h2 { margin-bottom: 16px; }
  .company-page--service-areas .area-region--primary h2 { padding-bottom: 16px; }
  .company-page--service-areas .area-place { font-size: 16px; }
  .company-page--service-areas .area-contact { padding-block: 40px 46px; }
  .company-page--service-areas .area-contact p { font-size: 16px; }
}
