.u-hidden { display: none !important; }
.u-sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.u-flex { display: flex !important; }
.u-block { display: block !important; }
.u-text-center { text-align: center !important; }

.u-mt-0 { margin-top: 0 !important; }
.u-mb-0 { margin-bottom: 0 !important; }

@media (max-width: 768px) {
  .u-hide-mobile { display: none !important; }
}

@media (min-width: 769px) {
  .u-show-mobile { display: none !important; }
}

/* ---- Icon sizing (base rule — every jdev_svg() call uses .icon or
   .icon--sm, but this was never actually defined anywhere, so every
   icon in the theme was rendering at unconstrained browser-default
   size: the breadcrumb home icon, header icons, topbar social icons
   on mobile, card icons — all of it. This is the fix. ---- */
svg.icon {
  display: inline-block;
  width: 20px !important;
  height: 20px !important;
  flex-shrink: 0;
  vertical-align: middle;
}

svg.icon--sm {
  width: 16px !important;
  height: 16px !important;
}

/* Safety net: any SVG that somehow renders without an .icon class
   (a stray one we missed, a future addition) still can't blow up
   past its container. */
svg { max-width: 100%; }
