/* v328 — site-wide responsive safety audit layer.
   Narrowly scoped to layout stability; does not redesign section visuals. */
html{
  width:100%;
  max-width:100%;
  overflow-x:clip;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
body{
  width:100%;
  min-width:0;
  max-width:100%;
  overflow-x:clip;
}
main,header,footer,nav,section,article,aside,
.container,.container-fluid,.container-sm,.container-md,.container-lg,.container-xl,.container-xxl{
  min-width:0;
}
/* Prevent intrinsic flex/grid widths from forcing horizontal scroll. */
:where(.row,[class*="__grid"],[class*="__content"],[class*="__copy"],[class*="__body"],[class*="__inner"],[class*="__aside"]) > *{
  min-width:0;
}
img,video,iframe,canvas{
  max-width:100%;
}
video,iframe{
  display:block;
}
input,select,textarea,button{
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}
textarea{resize:vertical}
pre,code{max-width:100%}
table{max-width:100%}
/* Long URLs/e-mails must not push cards wider than the viewport. */
:where(p,li,address,.contact-card,.footer,.modal,.offcanvas) a{
  overflow-wrap:anywhere;
}
/* Stable touch behavior without changing visual button sizes. */
a,button,[role="button"],summary{
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}

@media (max-width:767.98px){
  /* Keep media and forms inside the mobile content column. */
  iframe,video{width:100%;height:auto}
  .btn,[class*="__button"],[class*="__btn"]{max-width:100%}
  table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
  h1,h2,h3{text-wrap:balance}
}

@media (max-width:359.98px){
  /* 320px class devices: preserve readable gutters and prevent action rows from overflowing. */
  .container,.container-sm,.container-md,.container-lg,.container-xl,.container-xxl{
    --bs-gutter-x:28px;
  }
  .btn{white-space:normal}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}
