.service-area__hero {
  padding-block: clamp(30px, 5vw, 60px) clamp(58px, 8vw, 94px);
  background: linear-gradient(110deg, #1d3557, #284e75);
}

.service-area .service-area__content {
  padding-top: 0;
}

.place-search {
  position: relative;
  max-width: 780px;
  margin-top: -38px;
  padding: clamp(18px, 4vw, 34px);
  border: 1px solid var(--region-line);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 14px 38px rgba(29, 53, 87, .12);
  scroll-margin-top: 100px;
}

.place-search h2 {
  margin-bottom: 14px;
  font-size: clamp(1.25rem, 3vw, 1.65rem);
}

.place-search label {
  display: block;
  margin-bottom: 5px;
  font-weight: 800;
}

.place-search__fields {
  display: flex;
  align-items: stretch;
  gap: 10px;
}

.place-search__fields input {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 48px;
  padding: 10px 13px;
  border: 1px solid #71869d;
  border-radius: 10px;
  background: #fbfdff;
  color: var(--region-ink);
  font: inherit;
}

.place-search__fields input:focus-visible,
.place-search__fields button:focus-visible {
  outline: 2px solid var(--region-accent);
  outline-offset: 3px;
}

.place-search__fields .btn {
  border-radius: 10px;
}

.region-content #place-search-hint,
.region-content .place-search__status:not(:empty) {
  margin-top: 9px;
  font-size: .89rem;
}

.place-search .place-search__sources {
  margin-top: 14px;
  font-size: .79rem;
}

.place-search__results,
.service-area__group ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.place-search__results {
  max-height: 290px;
  margin-block: 8px;
  overflow: auto;
  overscroll-behavior: contain;
  border: 1px solid var(--region-line);
  border-radius: 10px;
  background: #fff;
}

.place-search__results li + li {
  border-top: 1px solid var(--region-line);
}

.place-search__results [role="option"],
.region-content .place-search__results a {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 3px 14px;
  padding: 10px 12px;
  color: var(--region-ink);
  text-decoration: none;
}

.place-search__results [role="option"] { cursor: pointer; }
.place-search__results :is([role="option"]:hover, [aria-selected="true"], a:hover, a:focus-visible) {
  background: var(--region-tint);
}

.place-search__results span {
  color: var(--region-muted);
  font-size: .85rem;
}

.service-area__directory,
.service-area__results {
  margin-top: clamp(36px, 6vw, 64px);
}

.service-area__groups {
  overflow: hidden;
  border: 1px solid var(--region-line);
  border-radius: 16px;
}

.service-area__group {
  display: grid;
  grid-template-columns: clamp(160px, 23%, 250px) minmax(0, 1fr);
  align-items: start;
  gap: 14px 22px;
  padding: 16px clamp(14px, 3vw, 26px);
  background: #fff;
}

.service-area__group:nth-child(odd) { background: #f6f9fd; }
.service-area__group + .service-area__group { border-top: 1px solid var(--region-line); }
.service-area__group h3 { margin: 10px 0 0; }

.service-area__group ul {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 160px), 1fr));
  gap: 8px;
}

.region-content .service-area__group a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid var(--region-line);
  border-radius: 9px;
  background: #fff;
  color: var(--region-accent);
  font-weight: 800;
  text-decoration: none;
  overflow-wrap: anywhere;
}

.region-content .service-area__group a:is(:hover, :focus-visible) {
  border-color: var(--region-accent);
  background: var(--region-tint);
  text-decoration: underline;
}

.service-area__group a svg { flex: none; }

@media (max-width: 680px) {
  .service-area__group { grid-template-columns: 1fr; gap: 9px; }
  .service-area__group h3 { margin-top: 0; }
  .service-area__group ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 380px) {
  .place-search__fields { flex-direction: column; }
}
