/* Shared responsive layer: readable type, keyboard focus, safe-area CTAs. */
html { scroll-padding-top: 6rem; }
*, *::before, *::after { box-sizing: border-box; }
img, video { max-width: 100%; }
a, button, input, select, textarea { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid #c4b5fd !important; outline-offset: 4px; }
.price-table, .data-table { display: block; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
video { object-fit: contain; }
@media (max-width: 640px) {
  input, select, textarea { font-size: 16px !important; }
  h1, h2, h3, p, li, td, a { overflow-wrap: break-word; }
  .sticky-cta { padding-bottom: max(12px, env(safe-area-inset-bottom)) !important; }
  body:has(.sticky-cta) { padding-bottom: calc(88px + env(safe-area-inset-bottom)); }
  button, .btn-submit { min-height: 44px; }
  .demo-layout { grid-template-columns: minmax(0, 1fr) !important; }
  .nav-phone { white-space: nowrap; font-size: 12px !important; padding: 10px 12px !important; }
  .nav-inner { padding-inline: 12px; gap: 8px; }
  .nav-right { gap: 6px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
