/* Cover the page/background and top-layer dialog backdrops. */
@media(max-width:760px),(any-pointer:coarse){
  html,body,body *,body::before,body::after,
  .storefront-footer,.bottom-navigation,.drawer-backdrop,.storefront-drawer,
  dialog,dialog::backdrop{touch-action:pan-x pan-y!important}
  /* Small editable controls trigger Safari's separate focus-zoom path. */
  .storefront-body input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=button]):not([type=submit]):not([type=reset]):not([type=file]):not([type=hidden]),
  .storefront-body select,.storefront-body textarea{font-size:16px!important}
  /* Diagnostic only: vertical native scrolling with a stricter touch policy. */
  html[data-storefront-zoom-pan-y],
  html[data-storefront-zoom-pan-y] body,
  html[data-storefront-zoom-pan-y] body *,
  html[data-storefront-zoom-pan-y] dialog::backdrop{touch-action:pan-y!important}
  /* An already magnified page may begin a recovery pinch; JS rejects further enlargement. */
  html[data-storefront-zoom-recovery],
  html[data-storefront-zoom-recovery] body,
  html[data-storefront-zoom-recovery] body *,
  html[data-storefront-zoom-recovery] body::before,
  html[data-storefront-zoom-recovery] body::after,
  html[data-storefront-zoom-recovery] dialog::backdrop{touch-action:auto!important}
  /* Default mobile policy: the companion script replaces native scrolling. */
  html[data-storefront-zoom-strict],
  html[data-storefront-zoom-strict] body,
  html[data-storefront-zoom-strict] body *,
  html[data-storefront-zoom-strict] dialog::backdrop{touch-action:none!important}
  html[data-storefront-zoom-strict]{scroll-behavior:auto!important}
  /* Diagnostic-only opt-out restores browser-managed gestures. */
  html[data-storefront-zoom-native],
  html[data-storefront-zoom-native] body,
  html[data-storefront-zoom-native] body *,
  html[data-storefront-zoom-native] dialog::backdrop{touch-action:auto!important}
}
