@media (max-width: 640px) {
  body .site-header {
    position: static;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto auto auto auto;
    row-gap: clamp(14px, 4vw, 20px);
    width: 100%;
    height: auto;
    padding: clamp(14px, 4vw, 20px) clamp(16px, 5vw, 24px) clamp(22px, 6vw, 32px) !important;
    overflow: visible;
  }

  body .site-header .brand {
    display: flex !important;
    grid-column: 1;
    grid-row: 1 !important;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: clamp(94px, 27vw, 112px);
    min-width: 0;
    margin: 0;
    overflow: hidden;
  }

  body .site-header .brand-logo {
    display: block;
    width: auto;
    height: 100%;
    max-width: min(78vw, 280px);
    margin: 0 auto;
    overflow: hidden;
  }

  body .site-header .main-nav {
    display: grid !important;
    grid-column: 1;
    grid-row: 2 !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    width: 100%;
    margin: 0;
  }

  body .site-header .language-switcher {
    display: flex !important;
    grid-column: 1;
    grid-row: 3 !important;
    width: 100%;
    margin: 0;
  }

  body .site-header .header-review-control {
    display: flex !important;
    grid-column: 1;
    grid-row: 4 !important;
    width: 100%;
    min-height: clamp(48px, 13vw, 58px);
    margin: 0;
  }

  body .site-header .header-cta {
    position: relative;
    display: flex !important;
    grid-column: 1;
    grid-row: 5 !important;
    align-self: auto;
    width: 100%;
    min-width: 0;
    min-height: clamp(54px, 14vw, 68px) !important;
    margin: 0;
    padding: clamp(12px, 3.5vw, 17px) clamp(14px, 4vw, 22px) !important;
    border: 1.5px solid #c40000 !important;
    border-radius: 999px;
    background: transparent;
    color: #c40000 !important;
    box-sizing: border-box;
    font-size: clamp(14px, 4vw, 20px) !important;
    line-height: 1.15;
    text-align: center;
    white-space: normal !important;
  }

  body .site-header .header-cta > span {
    white-space: normal !important;
  }

  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;
  }
}

/* Definitive phone header layout. Every control owns a separate grid row. */
@media (max-width: 640px) {
  html body .site-header {
    position: relative !important;
    inset: auto !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto auto auto auto auto !important;
    grid-template-areas:
      "brand"
      "navigation"
      "language"
      "review"
      "telephone" !important;
    align-items: stretch !important;
    gap: clamp(12px, 3.5vw, 18px) !important;
    width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    padding: clamp(14px, 4vw, 20px) clamp(16px, 5vw, 24px) clamp(24px, 6vw, 34px) !important;
    overflow: visible !important;
  }

  html body .site-header > * {
    position: static !important;
    inset: auto !important;
    float: none !important;
    transform: none !important;
    box-sizing: border-box !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
  }

  html body .site-header .brand {
    grid-area: brand !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: clamp(92px, 27vw, 112px) !important;
    overflow: hidden !important;
  }

  html body .site-header .brand-logo {
    display: block !important;
    width: min(78vw, 280px) !important;
    height: auto !important;
    max-height: 100% !important;
    aspect-ratio: 5 / 2 !important;
    overflow: visible !important;
  }

  html body .site-header .main-nav {
    grid-area: navigation !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    width: 100% !important;
  }

  html body .site-header .language-switcher {
    grid-area: language !important;
    display: flex !important;
    width: 100% !important;
  }

  html body .site-header .language-switcher select {
    width: 100% !important;
    max-width: none !important;
  }

  html body .site-header .header-review-control {
    grid-area: review !important;
    display: flex !important;
    width: 100% !important;
  }

  html body .site-header .header-cta {
    grid-area: telephone !important;
    display: flex !important;
    width: 100% !important;
    min-height: clamp(54px, 14vw, 68px) !important;
    padding: clamp(12px, 3.5vw, 17px) clamp(14px, 4vw, 22px) !important;
    border: 1.5px solid #c40000 !important;
    border-radius: 999px !important;
    font-size: clamp(14px, 4vw, 20px) !important;
    line-height: 1.15 !important;
  }
}

.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;
  }

  :is(
    .hero > .hero-stats,
    .approach-stats,
    .treatment-results-stats,
    .reviews-experiences-stats,
    .visit-route-stats
  ) > div {
    min-width: 0;
    min-height: clamp(150px, 35.5vw, 220px);
    overflow: hidden;
  }

  :is(
    .hero > .hero-stats,
    .approach-stats,
    .treatment-results-stats,
    .reviews-experiences-stats,
    .visit-route-stats
  ) dt {
    max-width: 100%;
    font-size: clamp(26px, 7.1vw, 44px);
    overflow-wrap: normal;
    word-break: normal;
  }

  :is(
    .hero > .hero-stats,
    .approach-stats,
    .treatment-results-stats,
    .reviews-experiences-stats,
    .visit-route-stats
  ) dd {
    max-width: 100%;
    font-size: clamp(11px, 2.7vw, 17px);
    overflow-wrap: normal;
    word-break: normal;
    text-wrap: balance;
  }

  :is(
    .hero > .hero-stats,
    .approach-stats,
    .treatment-results-stats,
    .reviews-experiences-stats,
    .visit-route-stats
  ) .hero-google-score dt {
    max-width: 100%;
    font-size: clamp(16px, 5vw, 30px);
    letter-spacing: -0.045em;
    white-space: nowrap;
  }

  :is(
    .hero > .hero-stats,
    .approach-stats,
    .treatment-results-stats,
    .reviews-experiences-stats,
    .visit-route-stats
  ) .hero-google-score dt a {
    display: block;
    max-width: 100%;
  }

  :is(
    .hero > .hero-stats,
    .approach-stats,
    .treatment-results-stats,
    .reviews-experiences-stats,
    .visit-route-stats
  ) .google-score-click-prompt,
  :is(
    .hero > .hero-stats,
    .approach-stats,
    .treatment-results-stats,
    .reviews-experiences-stats,
    .visit-route-stats
  ) .google-score-click-prompt a {
    font-size: clamp(10px, 2.5vw, 15px);
  }
}

.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;
  }
}
