@media (max-width: 640px) {
  .mobile-actions {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(calc(100% + env(safe-area-inset-bottom))) !important;
    transition: opacity .22s ease, transform .28s ease, visibility 0s linear .28s;
  }

  .mobile-actions.is-visible {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
    transition: opacity .22s ease, transform .28s ease, visibility 0s;
  }

  body:has(.nav-links.open) .mobile-actions {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(calc(100% + env(safe-area-inset-bottom))) !important;
  }

  .menu-button {
    min-width: 44px;
    min-height: 44px;
  }

  .motion-toggle,
  .filter,
  .carousel-controls button {
    min-width: 44px;
    min-height: 44px;
  }

  .quick-nav a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }
}

@media (max-width: 360px) {
  .nav-links.open {
    max-height: calc(100dvh - 180px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .service-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .service,
  .service-card {
    min-width: 0;
  }

  .service-featured > a {
    white-space: normal !important;
    overflow-wrap: anywhere;
  }
}

@media (prefers-reduced-motion: reduce) {
  .mobile-actions {
    transition: none !important;
  }
}
