/* BE - Disable Transisions - Used by HTML on Load and JS in global.js to prevent unwanted animations on load */
.no-transition-on-load,
.no-transition-on-load * { transition: none !important; }

/* BE - Helper Classes */
.opacity-half { opacity: 0.5; }

.hidden { display: none !important; }
.hide-mobile { display: none; }
.show-mobile { display: block; }
@media (min-width: 1025px) {
  .hide-mobile { display: block; }
  .show-mobile { display: none; }
}

.border-none,
.border-none:before,
.border-none:after { border: none !important; }

.text-muted { color: inherit !important; opacity: 0.75; }
.fs-double { font-size: 2rem; }
.fs-normal { font-size: 1rem; }
.text-upper { text-transform: uppercase !important; }
.text-lower { text-transform: lowercase !important; }
.text-cap { text-transform: capitalize !important; }

/* Scoll Indicator for Overflow */
.mobile-scroller { margin: 0.625rem 0; font-size: 1rem; font-weight: var(--wBold); text-align: center; }
@media (min-width: 320px) {
  .mobile-scroller { display: block; }
}
@media (min-width: 768px) {
  .mobile-scroller { display: none; }
}

.pulse { --pulseColor: var(--trueRed); box-shadow: 0 0 0 0 hsla(var(--pulseColor), 1); animation: pulse 2s 1; }

/* Lazy Load Image Placeholder */
.lazy { opacity: 1; animation-duration: 1.5s; animation-fill-mode: forwards; animation-iteration-count: infinite; animation-name: lazyLoadPlaceholder; animation-timing-function: linear; background: transparent; background: linear-gradient(to right, #eeeeee 8%, #dddddd 18%, #eeeeee 33%); background-size: 100% 100%; transition: all ease-in-out 0.4s; }
.lazy.loaded { background: inherit; animation: none; }