/* Shared public mobile interaction layer. */
@media (max-width: 760px) {
  :is(#main-content, main, #service-enquiry-modal, .service-modal, .site-header) :is(.button, .nav-quote-button) {
    min-height: 54px; padding: 13px 20px; border-radius: 14px; font-size: 16px; font-weight: 750; line-height: 1.35; letter-spacing: .01em; display: inline-flex; align-items: center; justify-content: center; gap: 10px; text-align: center; white-space: normal; touch-action: manipulation;
    transition: transform .16s ease, box-shadow .2s ease, background-color .2s ease;
  }
  :is(#main-content, main, #service-enquiry-modal, .service-modal, .site-header) :is(.button-primary, .button-quote, .nav-quote-button), main button[type="submit"].button {
    background: linear-gradient(115deg, #65ecff, #17cde8); color: #042234; border: 1px solid #59e6fc; box-shadow: 0 4px 16px rgba(15, 203, 232, .16);
  }
  :is(#main-content, main, #service-enquiry-modal, .service-modal) .button-secondary:not([type="submit"]) { background: #091c30; color: #d3f9ff; border: 1px solid #37bcd4; box-shadow: none; }
  :is(#main-content, main, #service-enquiry-modal, .service-modal, .site-header) :is(.button, .nav-quote-button):active, .mobile-action-bar a:active { transform: scale(.97); box-shadow: 0 0 20px rgba(54, 222, 247, .3); }
  :is(#main-content, main, #service-enquiry-modal, .service-modal, .site-header) :is(.button, .nav-quote-button):focus-visible { outline: 3px solid #a2f6ff; outline-offset: 4px; }
  :is(#main-content, main, #service-enquiry-modal, .service-modal) .button:disabled { opacity: .65; cursor: wait; transform: none; }
  :is(.hero-actions, .division-card-actions, .solutions-cta .hero-actions, .service-modal-actions) { display: flex; flex-direction: column; align-items: stretch; gap: 12px; }
  :is(.hero-actions, .division-card-actions, .service-modal-actions) > .button { width: 100%; }
  .button svg { width: 20px; height: 20px; flex-shrink: 0; }
  .mobile-action-bar { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .mobile-action-bar a { min-height: 48px; font-size: 12px; transition: transform .16s ease, box-shadow .2s ease; }
  body.has-mobile-contact-bar { padding-bottom: calc(var(--mobile-contact-height, 76px) + 16px); }
  html { scroll-padding-bottom: calc(var(--mobile-contact-height, 76px) + 16px); }
  .site-nav.open { animation: mobile-menu-enter .18s ease-out; transform-origin: top; }
  .menu-toggle span:not(.sr-only) { transition: transform .2s ease, opacity .2s ease; }
  .menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .mobile-enter { animation: mobile-section-enter .4s ease-out both; }
}
@keyframes mobile-menu-enter { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }
@keyframes mobile-section-enter { from { opacity: .65; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) {
  .mobile-enter, .site-nav.open { animation: none !important; }
  :is(.button, .nav-quote-button, .mobile-action-bar a, .menu-toggle span) { transition: none !important; }
  :is(.button, .nav-quote-button, .mobile-action-bar a):active { transform: none !important; }
}
