/* Mobile overflow safety fixes — 2025-08-27 */
html, body {
  max-width: 100%;
  overflow-x: hidden;
}
*, *::before, *::after {
  box-sizing: border-box;
}
img, svg, video, canvas, iframe, embed, object {
  max-width: 100%;
  height: auto;
}
table {
  width: 100%;
  max-width: 100%;
  border-collapse: collapse;
  display: block;
  overflow-x: auto;
}
pre, code, kbd, samp {
  white-space: pre-wrap;
  word-break: break-word;
}
:where(p, h1, h2, h3, h4, h5, h6, li, a, span, blockquote, figcaption) {
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* Neutralize common overflow culprits */
[style*="width: 100vw"], [style*="width:100vw"] {
  width: 100% !important;
}
[style*="min-width: 100vw"], [style*="min-width:100vw"] {
  min-width: 100% !important;
}
[style*="calc(100vw"] {
  max-width: 100% !important;
}

/* Help frameworks that use viewport units for full-width rows */
:where(.container, .content, .wrapper, .wrap, .inner, .section, .row) {
  max-width: 100%;
  overflow-x: hidden;
}

/* Avoid 100vw + scrollbar overflow on supported browsers */
@supports (scrollbar-gutter: stable) {
  html { scrollbar-gutter: stable; }
}

/* Make SVGs respect container width in Safari/iOS */
svg { height: auto; } 
