/* Mobile safety: prevent horizontal scroll */
html, body { max-width: 100%; overflow-x: hidden; }
img, svg, video { max-width: 100%; height: auto; }

/* Tables / wide blocks */
.table-wrap, .overflow-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
table { width: 100%; border-collapse: collapse; }
th, td { word-break: break-word; }

/* Generic responsive grid stacking */
@media (max-width: 640px) {
  .grid, .cols, .columns, .spec-grid, .two-col, .three-col {
    display: block !important;
  }
  .grid > *, .cols > *, .columns > *, .spec-grid > *, .two-col > *, .three-col > * {
    width: 100% !important;
  }
  a.button, button, .btn {
    min-height: 44px;
    padding-top: 12px;
    padding-bottom: 12px;
  }
}
