/* === LS Mobile Fix (Plugin) === */
html { -webkit-text-size-adjust: 100%; }
html, body { width: 100%; max-width: 100%; margin: 0; overflow-x: hidden; }

/* Media should never overflow */
img, video, iframe, svg, canvas { max-width: 100%; height: auto; display: block; }

/* Common wrappers respect the viewport */
.site, .site-main, header, footer,
.container, .wrap, .inner { max-width: 100vw; overflow-x: clip; }

/* Let grid/row systems shrink properly */
* { box-sizing: border-box; }
[class*="col-"], [class*="grid"], [class*="row"] { min-width: 0; }

/* Menus and header content can wrap */
.primary-nav, .header-cta, .topbar { display: flex; flex-wrap: wrap; }
.primary-nav a { white-space: normal; }

/* Long text won’t push width */
a, p, h1, h2, h3, h4, h5, h6 { overflow-wrap: anywhere; word-break: break-word; }

/* Tables/code remain readable without forcing horizontal scroll */
table { width: 100%; display: block; overflow-x: auto; border-collapse: collapse; }
pre, code { white-space: pre-wrap; word-break: break-word; overflow-wrap: anywhere; }

/* Helpful phone tweaks */
@media (max-width: 900px) {
  .grid-3, .grid-4 { grid-template-columns: 1fr !important; }
  .header-cta { margin-left: 0 !important; }
}
@media (max-width: 480px) {
  .header-cta .phone { white-space: normal; font-size: 15px; }
  .site-header .brand img { max-width: 100%; height: auto; }
}