/* EndoCann responsive safety net.
   Loaded LAST on every page so it can guard against horizontal overflow on
   phones without disturbing each page's own responsive CSS. Additive only. */

/* Never allow a stray wide element to force sideways scrolling on mobile.
   `clip` (not `hidden`) doesn't create a scroll container, so it preserves
   the position:sticky headers used by several tool pages. */
html{overflow-x:clip;-webkit-text-size-adjust:100%;text-size-adjust:100%}

/* Fluid media — images, video, canvas, embeds never exceed their container. */
img,svg,video,canvas,iframe,embed,object{max-width:100%;height:auto}

/* Long words / URLs wrap instead of overflowing on narrow screens. */
p,li,dd,dt,h1,h2,h3,h4,figcaption,blockquote{overflow-wrap:break-word}

/* Flex/grid children are allowed to shrink below their content size,
   which is the usual cause of horizontal overflow inside cards and rows. */
.ec-nav-links,.ec-foot-grid,.ec-grid,.ec-band,.hero-cta,.ec-cta{min-width:0}
.ec-card,.card,.ec-foot-col,.ec-foot-brand{min-width:0}

/* Tables: keep them fluid; if a page sets an explicit min-width for a data
   table, its own wrapper handles scrolling — this only bounds bare tables. */
table:not([class]){max-width:100%}

/* Common table/scroll wrappers: let a too-wide table scroll horizontally
   inside its own box instead of stretching the whole page on phones. */
.tableWrap,.table-wrap,.table-shell,.doseSummary,.tableWrapper,
[class*="table-wrap"],[class*="tableWrap"],[class*="tableScroll"]{
  max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}

/* Respect users who prefer reduced motion: near-disable animation, transitions
   and smooth scrolling everywhere (guards the hover/scroll effects the pages use). */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important}
}
