/* Allow normal scrolling and horizontal controls, without page zoom gestures. */
html { touch-action: pan-x pan-y; }
@media (max-width: 68rem), (pointer: coarse) {
  html, body { width: 100%; max-width: 100%; min-width: 0; overscroll-behavior-x: none; }
  /* Prevent input-focus magnification without reducing the selected font size. */
  input, select, textarea { font-size: max(16px, 1rem) !important; }
}

/* v1.9.79 — never trap vertical page scroll */
html, body { overscroll-behavior-y: auto !important; }


/* v1.9.209 — mobile internal scroll root.
   The browser document itself is locked; .site-shell owns vertical scrolling.
   This removes browser-root rubber-band / white-curtain stretching completely.
   One-finger pull-to-refresh is implemented in header-behavior.js without moving
   the page surface. Desktop remains unchanged. */
@media (max-width: 48rem) {
  html,
  body {
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    max-height: 100% !important;
    overflow: hidden !important;
    overscroll-behavior: none !important;
  }

  body {
    position: relative !important;
  }

  .site-shell {
    width: 100% !important;
    height: 100dvh !important;
    min-height: 0 !important;
    max-height: 100dvh !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior-x: none !important;
    overscroll-behavior-y: none !important;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x pan-y;
  }

  html[data-atolye-scroll-lock="true"] .site-shell,
  body[data-atolye-scroll-lock="true"] .site-shell {
    overflow-y: hidden !important;
  }
}
