/* V50 – mobile text readability safeguards for all city pages */
body.city-v35-enhanced,
body.city-v35-enhanced *{box-sizing:border-box}
body.city-v35-enhanced :where(main,section,article,div,header,footer,nav){min-width:0}
body.city-v35-enhanced :where(h1,h2,h3,h4,h5,h6,p,li,a,span,strong,small,summary,figcaption){
  overflow-wrap:break-word;
  word-wrap:break-word;
  max-width:100%;
}
body.city-v35-enhanced :where(a,button,.btn,.city-cta,.speed-btn){white-space:normal;text-wrap:balance}
body.city-v35-enhanced :where(h1,h2,h3,h4){text-wrap:balance}
body.city-v35-enhanced :where(p,li,summary,figcaption){text-wrap:pretty}
body.city-v35-enhanced img,body.city-v35-enhanced svg{max-width:100%}

@media (max-width:760px){
  body.city-v35-enhanced{overflow-x:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%}
  body.city-v35-enhanced :where(h1,h2,h3,h4,p,ul,ol){max-width:100%}
  body.city-v35-enhanced h1{font-size:clamp(2rem,10vw,2.7rem)!important;line-height:1.08!important;letter-spacing:-.035em!important}
  body.city-v35-enhanced h2{font-size:clamp(1.45rem,7vw,2.05rem)!important;line-height:1.16!important;letter-spacing:-.025em!important}
  body.city-v35-enhanced h3{font-size:clamp(1.08rem,5.2vw,1.38rem)!important;line-height:1.25!important}
  body.city-v35-enhanced :where(p,li,summary){font-size:clamp(.96rem,4.15vw,1.04rem);line-height:1.66}
  body.city-v35-enhanced :where(ul,ol){padding-inline-start:1.2rem}
  body.city-v35-enhanced li+li{margin-top:.38rem}
  body.city-v35-enhanced :where(.container,.city-identity-inner,.project-term-card,.service-grid article,.coverage-card,.process-grid article,.solutions-list article,.faq-list details,.project-card,.speed-copy){min-width:0;max-width:100%}
  body.city-v35-enhanced :where(.city-cta,.speed-btn,.service-grid article a,.project-card a){line-height:1.35;overflow-wrap:anywhere}
  body.city-v35-enhanced .city-identity-kicker,
  body.city-v35-enhanced .gold-label{line-height:1.45;letter-spacing:.1em!important}
  body.city-v35-enhanced .faq-list summary{padding-right:2.65rem;line-height:1.45}
  body.city-v35-enhanced .cities-preview-grid a{line-height:1.35;padding-block:.85rem}
  body.city-v35-enhanced figcaption{line-height:1.35}
}

@media (max-width:390px){
  body.city-v35-enhanced h1{font-size:clamp(1.85rem,9.8vw,2.25rem)!important}
  body.city-v35-enhanced h2{font-size:clamp(1.3rem,6.8vw,1.72rem)!important}
  body.city-v35-enhanced h3{font-size:clamp(1.02rem,5.1vw,1.25rem)!important}
  body.city-v35-enhanced :where(p,li,summary){font-size:.96rem;line-height:1.62}
  body.city-v35-enhanced :where(.city-identity-inner,.project-term-card,.service-grid article,.coverage-card,.process-grid article,.solutions-list article,.faq-list details,.project-body,.speed-copy){padding-left:16px!important;padding-right:16px!important}
  body.city-v35-enhanced .city-cta strong{font-size:1rem!important;overflow-wrap:anywhere}
}

/* V70 — targeted mobile heading typography only; no global shrinking */
@media (max-width:760px){
  /* Main page title */
  html body.city-v35-enhanced .city-identity-copy > h1{
    font-size:22px!important;
    line-height:1.18!important;
    letter-spacing:-.015em!important;
    margin:0 0 9px!important;
  }

  /* Main section titles — visually important, but compact */
  html body.city-v35-enhanced :is(
    .city-premium-intro-head,
    .coverage-heading,
    .content-heading,
    .cities-preview,
    .speed-copy
  ) > h2,
  html body.city-v35-enhanced .section-icon-title > h2{
    font-size:19px!important;
    line-height:1.24!important;
    letter-spacing:-.01em!important;
    margin-top:0!important;
    margin-bottom:9px!important;
  }

  /* Card titles — smaller than section titles */
  html body.city-v35-enhanced :is(
    .project-term-card,
    .service-grid article,
    .project-card
  ) h2{
    font-size:16.5px!important;
    line-height:1.3!important;
    letter-spacing:0!important;
    margin-top:0!important;
    margin-bottom:7px!important;
  }

  /* H3 titles inside panels/cards only */
  html body.city-v35-enhanced main :is(
    .coverage-panel,
    .tech-grid article,
    .benefits-grid article,
    .process-grid article,
    .solutions-list article
  ) h3{
    font-size:14.5px!important;
    line-height:1.34!important;
    letter-spacing:0!important;
    margin-top:0!important;
    margin-bottom:6px!important;
  }
}

@media (max-width:390px){
  html body.city-v35-enhanced .city-identity-copy > h1{font-size:21px!important}
  html body.city-v35-enhanced :is(
    .city-premium-intro-head,
    .coverage-heading,
    .content-heading,
    .cities-preview,
    .speed-copy
  ) > h2,
  html body.city-v35-enhanced .section-icon-title > h2{font-size:18px!important}
  html body.city-v35-enhanced :is(
    .project-term-card,
    .service-grid article,
    .project-card
  ) h2{font-size:16px!important}
  html body.city-v35-enhanced main :is(
    .coverage-panel,
    .tech-grid article,
    .benefits-grid article,
    .process-grid article,
    .solutions-list article
  ) h3{font-size:14px!important}
}

/* V72 — final universal mobile H1–H3 correction for city pages.
   This block intentionally changes heading typography only. */
@media (max-width:760px){
  html body.city-v35-enhanced h1{
    font-size:20px!important;
    line-height:1.22!important;
    letter-spacing:-.015em!important;
  }
  html body.city-v35-enhanced h2{
    font-size:17px!important;
    line-height:1.30!important;
    letter-spacing:-.008em!important;
  }
  html body.city-v35-enhanced h3{
    font-size:15px!important;
    line-height:1.38!important;
    letter-spacing:0!important;
  }
}

@media (max-width:390px){
  html body.city-v35-enhanced h1{font-size:18px!important;line-height:1.25!important}
  html body.city-v35-enhanced h2{font-size:16px!important;line-height:1.32!important}
  html body.city-v35-enhanced h3{font-size:14px!important;line-height:1.40!important}
}
