/* Premium Service Areas directory — scoped to /service-areas/. */

.service-areas-page {
  overflow: hidden;
}

.service-areas-page .service-areas-hero {
  min-height: 635px;
}

.service-areas-page .service-areas-hero > img {
  object-position: center 52%;
}

.service-areas-page .service-areas-hero .interior-hero__shade {
  background:
    linear-gradient(90deg, rgba(3, 20, 38, .98) 0%, rgba(3, 26, 48, .9) 45%, rgba(3, 26, 48, .54) 75%, rgba(3, 26, 48, .3) 100%),
    linear-gradient(0deg, rgba(3, 26, 48, .48), transparent 58%);
}

.service-areas-page .service-areas-hero .interior-hero__content h1 {
  max-width: 900px;
}

.service-areas-page .service-area-directory {
  position: relative;
  padding: 118px 0 126px;
  background:
    radial-gradient(circle at 7% 7%, rgba(42, 131, 196, .09), transparent 24rem),
    var(--mist);
}

.service-areas-page .service-area-directory__heading {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr);
  align-items: end;
  gap: clamp(50px, 8vw, 130px);
  margin-bottom: 52px;
}

.service-areas-page .service-area-directory__heading h2 {
  max-width: 760px;
  margin: 0;
  color: var(--navy-950);
  font-size: clamp(3rem, 4.9vw, 5rem) !important;
  font-weight: 760 !important;
  letter-spacing: -.06em !important;
  line-height: 1.02 !important;
  text-wrap: balance;
}

.service-areas-page .service-area-directory__heading > p {
  max-width: 500px;
  margin: 0 0 4px;
  color: var(--ink-700);
  font-size: 1.03rem;
  line-height: 1.78;
}

.service-areas-page .service-area-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.service-areas-page .service-area-card {
  min-width: 0;
}

.service-areas-page .service-area-card a {
  position: relative;
  display: grid;
  min-height: 128px;
  grid-template-columns: 48px minmax(0, 1fr) 20px;
  align-items: center;
  gap: 16px;
  padding: 22px 24px;
  overflow: hidden;
  color: var(--navy-950);
  background: rgba(255, 255, 255, .96);
  border: 1px solid rgba(6, 41, 75, .11);
  border-radius: 20px;
  box-shadow: 0 10px 28px rgba(6, 41, 75, .035);
  font-size: .82rem;
  font-weight: 820;
  letter-spacing: -.01em;
  line-height: 1.28;
  text-decoration: none;
  transition:
    color .25s ease,
    border-color .35s var(--ease),
    box-shadow .35s var(--ease),
    transform .35s var(--ease);
}

.service-areas-page .service-area-card a::before {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  color: var(--navy-900);
  content: "⌖";
  background: var(--mist);
  border-radius: 14px;
  font-size: .87rem;
  font-weight: 500;
  transition: color .3s ease, background-color .3s ease, transform .35s var(--ease);
}

.service-areas-page .service-area-card a::after {
  justify-self: end;
  color: var(--orange-600);
  content: "→";
  font-size: .83rem;
  font-weight: 900;
  transition: transform .35s var(--ease);
}

.service-areas-page .service-area-card a:hover {
  color: var(--navy-950);
  border-color: rgba(237, 106, 0, .45);
  box-shadow: 0 18px 42px rgba(6, 41, 75, .11);
  transform: translateY(-4px);
}

.service-areas-page .service-area-card a:hover::before {
  color: var(--orange-600);
  background: var(--orange-100);
  transform: rotate(12deg);
}

.service-areas-page .service-area-card a:hover::after {
  transform: translateX(5px);
}

.service-areas-page .service-area-note {
  margin: 30px 0 0;
  color: var(--ink-500);
  font-size: .76rem;
  line-height: 1.6;
  text-align: center;
}

.service-areas-page .service-area-note a {
  color: var(--orange-600);
  font-weight: 800;
}

@media (max-width: 1100px) {
  .service-areas-page .service-area-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .service-areas-page .service-area-directory__heading {
    grid-template-columns: 1fr .7fr;
    gap: 48px;
  }
}

@media (max-width: 820px) {
  .service-areas-page .service-area-directory {
    padding: 88px 0 98px;
  }

  .service-areas-page .service-area-directory__heading {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 22px;
    margin-bottom: 38px;
  }

  .service-areas-page .service-area-directory__heading > p {
    max-width: 640px;
  }

  .service-areas-page .service-area-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .service-areas-page .service-areas-hero {
    min-height: 535px;
  }

  .service-areas-page .service-areas-hero > img {
    object-position: 58% center;
  }

  .service-areas-page .service-area-directory {
    padding: 76px 0 86px;
  }

  .service-areas-page .service-area-directory__heading h2 {
    font-size: clamp(2.5rem, 12vw, 3.35rem) !important;
  }

  .service-areas-page .service-area-directory__heading > p {
    font-size: .9rem;
    line-height: 1.7;
  }

  .service-areas-page .service-area-grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .service-areas-page .service-area-card a {
    min-height: 92px;
    grid-template-columns: 44px minmax(0, 1fr) 18px;
    gap: 14px;
    padding: 17px 18px;
    border-radius: 17px;
  }

  .service-areas-page .service-area-card a::before {
    width: 44px;
    height: 44px;
    border-radius: 13px;
  }
}


/* Wide reference-page parity */
@media (min-width: 961px) {
  .trust-ribbon .trust-ribbon__inner,
  .site-header .site-header__inner,
  .service-areas-page .shell,
  .site-footer .shell {
    width: min(1784px, calc(100% - 136px));
  }

  .trust-ribbon .trust-ribbon__inner {
    min-height: 50px;
    font-size: .84rem;
  }

  .site-header .site-header__inner {
    min-height: 126px;
    gap: 30px;
  }

  .site-header .brand {
    width: 154px;
    height: 126px;
  }

  .site-header .brand__logo {
    top: -9px;
    left: -4px;
    width: 154px;
    height: 154px;
  }

  .site-header .desktop-nav {
    gap: clamp(23px, 1.45vw, 31px);
  }

  .site-header .desktop-nav > a,
  .site-header .nav-mega__trigger {
    min-height: 126px;
    font-size: clamp(.9rem, .88vw, 1.03rem);
  }

  .site-header .desktop-nav > a::after,
  .site-header .nav-mega__trigger::after {
    bottom: 29px;
  }

  .site-header .header-actions {
    gap: 22px;
  }

  .site-header .header-phone small {
    font-size: .76rem;
    letter-spacing: .11em;
  }

  .site-header .header-phone b {
    margin-top: 5px;
    font-size: 1.08rem;
  }

  .site-header .header-actions .button--small {
    min-height: 66px;
    padding: 19px 30px;
    font-size: 1rem;
  }

  .service-areas-page .service-areas-hero {
    min-height: 820px;
  }

  .service-areas-page .service-areas-hero .interior-hero__content {
    padding-top: 106px;
    padding-bottom: 92px;
  }

  .service-areas-page .service-areas-hero .interior-hero__content h1 {
    max-width: 1040px;
    font-size: clamp(5.35rem, 6vw, 7.2rem) !important;
  }

  .service-areas-page .service-areas-hero .interior-hero__content > p {
    max-width: 1020px;
    margin-top: 36px;
    font-size: 1.38rem;
    line-height: 1.85;
  }

  .service-areas-page .service-areas-hero .interior-hero__actions {
    gap: 17px;
    margin-top: 42px;
  }

  .service-areas-page .service-areas-hero .interior-hero__actions .button {
    min-height: 80px;
    padding: 20px 34px;
    font-size: 1rem;
  }

  .service-areas-page .service-area-directory {
    padding-top: 184px;
  }

  .service-areas-page .service-area-directory__heading {
    margin-bottom: 70px;
  }

  .service-areas-page .service-area-directory__heading > p {
    font-size: 1.35rem;
    line-height: 1.8;
  }

  .service-areas-page .service-area-card a {
    font-size: .94rem;
  }
}
