/* === MOBILE RESET & OVERFLOW HANDLING ===
   Applied to all Axiom pages. Handles text overflow,
   zoom constraints, and touch target sizing for mobile. */

/* Prevent over-zoom while allowing user zoom */
html {
  text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

/* Box model + overflow safety on root */
*, *::before, *::after {
  box-sizing: border-box;
  overflow-wrap: break-word;
  word-wrap: break-word;
}

/* Prevent horizontal scroll, wrap long text */
body {
  overflow-x: hidden;
  min-width: 0;
  max-width: 100vw;
}

/* Ensure flex/grid children don't overflow */
img, video, table, pre, code {
  max-width: 100%;
  height: auto;
}

/* Long words/URLs wrap */
p, h1, h2, h3, h4, h5, h6, li, td, th, label, span {
  overflow-wrap: break-word;
  word-break: break-word;
  hyphens: auto;
  -webkit-hyphens: auto;
}

/* Inputs and buttons — touch-friendly sizing */
input, button, select, textarea {
  min-height: 44px;
  font-size: 16px; /* prevents iOS zoom on focus */
}

/* Ensure tables scroll horizontally instead of overflowing */
table {
  overflow-x: auto;
  display: block;
  max-width: 100%;
}

/* Smooth scrolling */
html {
  scroll-behavior: smooth;
}

/* Ensure no element can create horizontal overflow */
*, *::before, *::after {
  overflow-x: hidden;
}