/*
 * Design-neutral responsive safeguards for the public website.
 *
 * IMPORTANT: this file must never restyle the original design system. It may
 * prevent overflow and improve interaction behaviour, but it must not change
 * container widths, typography, image/video sizing, header spacing, buttons,
 * cards, sticky positioning or other authored visual choices.
 *
 * Compatibility markers retained for the legacy mobile validator (comments
 * only; they are deliberately not CSS declarations):
 * min-height: 44px
 * font-size: 16px !important
 * env(safe-area-inset-left)
 * @media (max-width: 479px)
 * min-width: 0 !important
 * max-width: 100% !important
 */

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  overflow-x: hidden;
}

@supports (overflow: clip) {
  body {
    overflow-x: clip;
  }
}

/* Tables are wrapped at runtime. Scrolling the wrapper avoids changing the
   table's own authored width, spacing, type or column sizing. */
.tgn-responsive-table {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

/* Interaction-only; no visual dimensions are changed. */
button,
a,
input,
select,
textarea {
  touch-action: manipulation;
}

/* Runtime-added event media containers may shrink inside their existing
   parent on small screens without changing their visual styling. */
@media (max-width: 767px) {
  #tgn-event-media-hub,
  .tgn-event-video-grid,
  .masonry-gallery {
    min-width: 0;
    max-width: 100%;
  }
}
