/* Import-added responsive guardrails. Edit here, never inline per page. */
/* overflow-x: clip (not hidden) — hidden makes body a scroll container and
   breaks position: sticky on the header. clip contains overflow without it. */
html, body { max-width: 100%; overflow-x: clip; }
img, video, iframe, table, pre { max-width: 100%; }

@media (max-width: 768px) {
  /* Primary tap targets reach the 44px accessibility minimum. */
  .btn,
  .btn-primary,
  .btn-secondary,
  .btn-ghost,
  button,
  .site-header a,
  .site-header button,
  .site-footer a,
  .nav a,
  .nav-links a,
  .mobile-nav a,
  .cta a,
  a[href^="tel:"] {
    min-height: 44px;
  }

  .btn,
  .btn-primary,
  .btn-secondary,
  .btn-ghost,
  .site-header a,
  .site-header button,
  .nav a,
  .nav-links a,
  .mobile-nav a,
  .cta a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  /* Footer link lists keep block flow but gain vertical padding. */
  .site-footer a {
    display: inline-flex;
    align-items: center;
    padding-block: 6px;
  }
}

@media (max-width: 768px) {
  /* Card-title and legal links: inline-flex so min-height applies. */
  .card a,
  .card-title a,
  .service-card a,
  .team-card a,
  .post-card a,
  .footer-legal a,
  .legal-links a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }
  a[href^="tel:"] {
    display: inline-flex;
    align-items: center;
  }
}

@media (max-width: 768px) {
  /* In-page jump-nav pills are primary tap targets. */
  .service-nav__inner > a,
  .doctor-nav__inner > a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }
}
