/* Compact mobile alignment for 320px–430px screens. */
@media (max-width: 680px) {
  body { padding-bottom: calc(66px + env(safe-area-inset-bottom)); }
  .container { width: calc(100% - 32px); }
  .site-header, .nav-shell { min-height: 62px; }
  .brand { width: 160px; flex-basis: 160px; }
  .menu-toggle { display: grid; height: 44px; margin-left: auto; padding: 8px; place-items: center; width: 44px; }
  .site-nav { top: 62px; padding: 7px 16px 18px; }
  .site-nav a, .nav-dropdown-toggle { min-height: 46px; padding: 12px 0; }

  .workbench-hero { padding: 5px 0 37px; }
  .hero-marker { min-height: 29px; align-items: center; font-size: .59rem; }
  .hero-marker span:last-child { display: none; }
  .workbench-grid { gap: 20px; padding-top: 20px; }
  .workbench-copy { padding: 6px 0; }
  .workbench-copy h1 { font-size: clamp(2.75rem, 14vw, 3.55rem); }
  .workbench-copy > p:not(.eyebrow) { margin: 17px 0 20px; font-size: .94rem; line-height: 1.55; }
  .hero-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .hero-actions .btn { min-height: 46px; padding: 10px 8px; font-size: .66rem; }
  .workbench-photo img { aspect-ratio: 1.28; }
  .workbench-photo:before { inset: 10px; }
  .workbench-photo figcaption { padding: 8px 11px; font-size: .62rem; }
  .workbench-photo figcaption span { font-size: 1rem; margin-right: 7px; }
  .workbench-note { justify-content: center; margin: 0; padding: 12px 14px; width: 100%; }

  .service-intro-band { padding: 15px 0; }
  .service-intro-band p { font-size: 1.05rem; }
  .service-intro-band div { font-size: .57rem; gap: 6px 9px; }
  .service-intro-band span:before { margin-right: 4px; }
  .section { padding: 54px 0; }
  .catalog-head { gap: 15px; margin-bottom: 24px; }
  .catalog-head h2, .ledger-top h2, .local-board h2 { font-size: clamp(2.2rem, 12vw, 3rem); }
  .catalog-head > p { font-size: .86rem; }

  .service-card { grid-template-columns: 104px 1fr; min-height: 190px; }
  .service-media span { font-size: 1.8rem; left: 8px; top: 5px; }
  .service-card-body { padding: 15px 13px 13px; }
  .service-type { margin-bottom: 11px; font-size: .56rem; }
  .service-card h3 { font-size: 1.5rem; }
  .service-card-body > p:not(.service-type) { font-size: .77rem; line-height: 1.42; }
  .card-actions { margin-top: 8px; }
  .text-link { font-size: .63rem; }
  .card-call { height: 36px; width: 36px; }

  .symptom-ledger { padding: 60px 0; }
  .ledger-list span { min-height: 47px; padding: 11px 9px; font-size: .73rem; }
  .safety-line { font-size: .77rem; line-height: 1.5; }
  .process-spread .container { gap: 27px; }
  .spread-copy h2 { font-size: clamp(2.35rem, 12vw, 3.05rem); }
  .spread-steps article { padding: 19px 0; }
  .spread-steps h3 { font-size: 1.2rem; }
  .spread-steps p { font-size: .8rem; }
  .local-panel { padding: 20px 16px; }
  .area-chips { gap: 6px; }
  .area-chips span { padding: 7px 8px; font-size: .69rem; }

  .faq-question { padding: 16px 0; font-size: 1.04rem; }
  .faq-answer p { font-size: .84rem; padding-right: 8px; }
  .booking-section { padding: 52px 0; }
  .booking-copy h2 { font-size: clamp(2.3rem, 12vw, 3.1rem); }
  .booking-phone { font-size: 2rem; margin-top: 13px; }
  .booking-panel { padding: 19px 14px; }
  .form-grid { gap: 11px; }
  .form-field input, .form-field select, .form-field textarea { min-height: 46px; }
  .form-field textarea { min-height: 80px; }
  .booking-form .btn { min-height: 48px; }
  .form-privacy-note { font-size: .67rem; }

  .page-hero { padding: 45px 0 42px; }
  .page-hero h1 { font-size: clamp(2.65rem, 13vw, 3.5rem); }
  .page-hero p:not(.eyebrow) { font-size: .93rem; }
  .service-hero { padding: 16px 0 38px; }
  .service-hero .hero-layout { gap: 26px; }
  .service-hero h1 { font-size: clamp(2.55rem, 12.7vw, 3.4rem); }
  .service-hero .hero-text { font-size: .93rem; }
  .service-hero .hero-image:after { display: none; }
  .service-hero .hero-actions { display: flex; }
  .service-hero .hero-actions .btn { flex: 1 1 auto; }
  .service-intro { gap: 24px; }
  .inspection-box { padding: 20px 18px; }
  .service-problem-grid span { padding: 13px 11px; font-size: .82rem; }
  .service-process article { padding: 17px; }

  .cta-panel { padding: 38px 0; }
  .cta-panel h2 { font-size: clamp(2.1rem, 11vw, 2.85rem); }
  .cta-actions .btn { flex: 1; padding: 10px 8px; }
  .footer-lead { padding: 25px 0; }
  .footer-lead p { font-size: 1.55rem; margin-bottom: 12px; }
  .footer-grid { gap: 22px; padding: 34px 0; }

  .mobile-sticky-cta { height: calc(62px + env(safe-area-inset-bottom)); padding-bottom: env(safe-area-inset-bottom); }
  .mobile-sticky-cta a { min-height: 62px; padding: 5px; }
}

@media (max-width: 359px) {
  .brand { width: 148px; flex-basis: 148px; }
  .service-card { grid-template-columns: 94px 1fr; }
  .service-card-body { padding-left: 11px; padding-right: 10px; }
  .service-card h3 { font-size: 1.37rem; }
  .card-call { height: 33px; width: 33px; }
  .text-link { font-size: .58rem; }
}
