@media (max-width: 640px) {
  body:not(.route-active) .site-header .language-switcher select {
    font-size: 3.1vw;
  }

  body:not(.route-active) .site-header .header-cta {
    min-height: 12vw;
    padding-inline: 3.7vw;
    font-size: 2.9vw;
    line-height: 1.2;
    white-space: nowrap;
  }

  body:not(.route-active) .hero-mobile-heading {
    position: relative;
    padding: 0;
    overflow: hidden;
    background: linear-gradient(
      90deg,
      rgba(247, 243, 236, 0.98) 0%,
      rgba(247, 243, 236, 0.9) 33%,
      rgba(247, 243, 236, 0.62) 55%,
      rgba(247, 243, 236, 0.08) 100%
    );
  }

  body:not(.route-active) .hero-mobile-heading .eyebrow {
    position: absolute;
    z-index: 1;
    top: 8.8%;
    left: 3.6%;
    width: 70%;
    max-width: none;
    margin: 0;
    font-size: 1.86vw;
    line-height: 1.15;
    letter-spacing: 0.1em;
    white-space: nowrap;
  }

  body:not(.route-active) .hero-mobile-heading h1 {
    position: absolute;
    z-index: 1;
    top: 40.8%;
    left: 3.6%;
    width: 53%;
    max-width: none;
    margin: 0;
    font-size: 5.2vw;
    line-height: 0.94;
    letter-spacing: -0.02em;
    text-wrap: initial;
  }

  body:not(.route-active) .hero > .hero-stats > div {
    min-height: 35.5vw;
    padding: 5.25vw 5.25vw 4.4vw;
  }

  body:not(.route-active) .hero > .hero-stats dt {
    margin-bottom: 2.9vw;
    font-size: 7.45vw;
  }

  body:not(.route-active) .hero > .hero-stats dd {
    font-size: 2.7vw;
  }

  body:not(.route-active) .hero > .hero-stats .hero-google-score dt {
    font-size: 6.6vw;
  }

  body:not(.route-active) .hero > .hero-stats .google-score-click-prompt {
    margin-top: 2vw;
    font-size: 2.5vw;
  }
}

.google-score-click-prompt a,
.review-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  max-width: 100%;
  min-height: 0;
  padding: 0.72em 1.25em;
  border: 0.1em solid currentColor;
  border-radius: 999px;
  background: transparent;
  color: var(--gold);
  font-size: clamp(12px, 1.05vw, 16px);
  font-weight: 800;
  line-height: 1.15;
  text-align: center;
  text-decoration: none;
  transition: background-color 160ms ease, color 160ms ease, transform 160ms ease;
}

@media (max-width: 640px) {
  .google-score-click-prompt a,
  .review-link {
    padding: 0.72em 1.18em;
    font-size: 2.5vw;
  }
}

@media (max-width: 640px) {
  :is(
    .hero > .hero-stats,
    .approach-stats,
    .treatment-results-stats,
    .reviews-experiences-stats,
    .visit-route-stats
  ) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  :is(
    .hero > .hero-stats,
    .approach-stats,
    .treatment-results-stats,
    .reviews-experiences-stats,
    .visit-route-stats
  ) > div {
    box-sizing: border-box;
    min-height: 35.5vw;
    padding: 5.25vw 5.25vw 4.4vw;
  }

  :is(
    .hero > .hero-stats,
    .approach-stats,
    .treatment-results-stats,
    .reviews-experiences-stats,
    .visit-route-stats
  ) dt {
    margin-bottom: 2.9vw;
    font-size: 7.45vw;
    line-height: 1;
  }

  :is(
    .hero > .hero-stats,
    .approach-stats,
    .treatment-results-stats,
    .reviews-experiences-stats,
    .visit-route-stats
  ) dd {
    font-size: 2.7vw;
    line-height: 1.55;
  }

  :is(
    .hero > .hero-stats,
    .approach-stats,
    .treatment-results-stats,
    .reviews-experiences-stats,
    .visit-route-stats
  ) .hero-google-score dt {
    font-size: 6.6vw;
    white-space: nowrap;
  }

  :is(
    .hero > .hero-stats,
    .approach-stats,
    .treatment-results-stats,
    .reviews-experiences-stats,
    .visit-route-stats
  ) .google-score-click-prompt {
    margin-top: 2vw;
    font-size: 2.5vw;
  }
}

.google-score-click-prompt a:hover,
.google-score-click-prompt a:focus-visible,
.review-link:hover,
.review-link:focus-visible {
  background: var(--gold);
  color: var(--white);
  transform: translateY(-1px);
}

/* Every image-backed route uses the same proportional text composition as the landing hero. */
@media (max-width: 640px) {
  .approach-mobile-heading,
  .reviews-mobile-heading,
  .visit-mobile-heading {
    position: relative;
    box-sizing: border-box;
    width: calc(100% + (2 * var(--approach-side-pad, var(--reviews-side-pad, var(--visit-side-pad, 0px)))));
    margin-right: calc(-1 * var(--approach-side-pad, var(--reviews-side-pad, var(--visit-side-pad, 0px))));
    margin-left: calc(-1 * var(--approach-side-pad, var(--reviews-side-pad, var(--visit-side-pad, 0px))));
    padding: 0;
    overflow: hidden;
  }

  .approach-mobile-heading .eyebrow,
  .reviews-mobile-heading .eyebrow,
  .visit-mobile-heading .eyebrow,
  .treatment-results-hero > .route-heading > .eyebrow {
    position: absolute;
    z-index: 1;
    top: 8.8%;
    left: 3.6%;
    width: 70%;
    max-width: none;
    margin: 0;
    font-size: 1.86vw;
    line-height: 1.15;
    letter-spacing: 0.1em;
    white-space: nowrap;
  }

  .approach-mobile-heading h2,
  .reviews-mobile-heading h2,
  .visit-mobile-heading h1 {
    position: absolute;
    z-index: 1;
    top: 40.8%;
    right: auto;
    left: 3.6%;
    width: 53%;
    max-width: none;
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 5.2vw;
    font-weight: 500;
    line-height: 0.94;
    letter-spacing: -0.02em;
    text-align: left;
    text-wrap: initial;
    transform: none;
  }

  .treatment-results-hero > .route-heading > .eyebrow {
    top: 4.35vw;
    left: calc(-1 * var(--treatment-side-pad) + 3.6vw);
  }

  .treatment-results-hero > .route-heading > :is(h1, h2) {
    position: absolute;
    z-index: 1;
    top: 20.2vw;
    right: auto;
    left: calc(-1 * var(--treatment-side-pad) + 3.6vw);
    width: 53vw;
    max-width: none;
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 5.2vw;
    font-weight: 500;
    line-height: 0.94;
    letter-spacing: -0.02em;
    text-align: left;
    text-wrap: initial;
    transform: none;
  }
}
