/* Mobile fixes, loaded after every page's own CSS.
   Live site had pages 20 to 120px wider than a phone screen (2026-11-07 scan). */
@media (max-width: 640px) {
  /* CTA strip buttons refused to wrap and pushed past the screen edge */
  .cta-strip-actions { flex-wrap: wrap; width: 100%; }
  .cta-strip-actions a, .btn-primary, .btn-secondary { white-space: normal; max-width: 100%; text-align: center; }
  .cta-strip-actions a { flex: 1 1 100%; justify-content: center; }
  /* Grid and flex children may shrink below their content width */
  .two-col > *, .two-col-wide > *, .grid-2 > *, .grid-3 > *, .grid-4 > *, [class*="-grid"] > * { min-width: 0; }
  /* Inline multi column grids written in style="" never collapsed on phones */
  [style*="grid-template-columns:repeat(3"], [style*="grid-template-columns: repeat(3"],
  [style*="grid-template-columns:repeat(4"], [style*="grid-template-columns: repeat(4"] { grid-template-columns: 1fr !important; }
  /* Wide tables scroll inside their own box instead of widening the page */
  table { display: block; max-width: 100%; overflow-x: auto; }
  img, video, iframe, svg { max-width: 100%; }
  pre, code { white-space: pre-wrap; word-break: break-word; }
  /* Long unbroken strings (URLs, emails) wrap */
  p, li, td, th, h1, h2, h3, .ph-sub, .ph-h1 { overflow-wrap: anywhere; }
}
