/* Shared mobile conversion and usability pass for every Zimmerman page. */
@media (max-width: 1040px) {
  .drawer,
  .mobile-menu {
    max-height: calc(100vh - 72px);
    max-height: calc(100svh - 72px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
}

@media (max-width: 700px) {
  html { scroll-padding-top: 72px; }
  body { padding-bottom: calc(70px + env(safe-area-inset-bottom)); }
  .topbar { display: none; }
  .site-header { top: 0; }
  .wrap { padding-inline: 18px; }
  .hdr,
  .header-inner { min-height: 68px; }
  .brand img { width: 34px; height: 40px; }
  .brand-name,
  .brand strong { font-size: .96rem; }
  .header-inner .brand > span { display: block; }
  .brand-sub,
  .header-inner .brand > span > span { display: none; }
  .hdr-cta { display: none; }
  .nav-toggle,
  .mobile-toggle { min-width: 44px; min-height: 44px; }

  .hero { min-height: auto; align-items: center; }
  .hero .wrap { padding-block: 50px 54px; }
  .hero h1,
  .hero--compact h1 { max-width: 14ch; font-size: clamp(2.45rem, 11.5vw, 3.4rem); line-height: 1.02; }
  .hero-lead,
  .hero .lead { margin-block: 20px 24px; font-size: 1rem; line-height: 1.62; }
  .hero-cta,
  .actions { display: grid; grid-template-columns: 1fr; gap: 10px; }
  .hero-cta .btn,
  .actions .btn { width: 100%; min-height: 50px; }
  .hero-foot { margin-top: 28px; padding-top: 22px; }
  .hero-proof { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
  .hero-proof div b { font-size: 1.3rem; }
  .hero-proof div span { font-size: .61rem; line-height: 1.35; }
  .hero-tag { padding: 12px; }
  .hero-credit { display: none; }

  .ticker { padding: 0; }
  .ticker ul { justify-content: flex-start; flex-wrap: nowrap; gap: 24px; padding: 12px 18px; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; }
  .ticker ul::-webkit-scrollbar { display: none; }
  .ticker li { flex: 0 0 auto; scroll-snap-align: start; }

  .sec,
  .section { padding-block: 52px; }
  .sec-head { margin-bottom: 28px; }
  .sec h2,
  .section h2 { font-size: clamp(2rem, 9vw, 2.8rem); }
  .steps,
  .svc-list,
  .services-grid,
  .related-grid,
  .condition-grid,
  .testimonial-grid { gap: 12px; }
  .step,
  .svc,
  .service-card,
  .testimonial-card,
  .side-card { min-height: auto; padding: 22px; }
  .service-card .number { margin-bottom: 22px; }
  .article-copy > section { padding-bottom: 28px; margin-bottom: 28px; }
  .breadcrumbs { margin-bottom: 22px; overflow-x: auto; white-space: nowrap; }
  .cta-band { padding-block: 44px; }
  .cta-inner .btn { width: 100%; }

  .site-footer { padding-top: 44px; }
  .zimmerman-footer-grid { gap: 34px; padding-bottom: 34px; }
  .zimmerman-footer-bottom { padding-bottom: 18px; }

  .mobile-bar {
    position: fixed;
    z-index: 140;
    right: 0;
    bottom: 0;
    left: 0;
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: 9px;
    padding: 9px 14px calc(9px + env(safe-area-inset-bottom));
    border-top: 1px solid rgba(15,17,19,.13);
    background: rgba(247,246,243,.97);
    box-shadow: 0 -12px 30px rgba(15,17,19,.12);
    backdrop-filter: blur(14px);
  }
  .mobile-bar .btn { width: 100%; min-height: 46px; margin: 0; padding: .72rem .8rem; font-size: .84rem; }
}

@media (max-width: 380px) {
  .hero-proof { grid-template-columns: 1fr 1fr; }
  .hero-proof div:last-child { grid-column: 1 / -1; }
}
