#vu-page-loader {
  position: fixed;
  inset: var(--vu-loader-top, 0px) 0 var(--vu-loader-bottom, 0px);
  z-index: 999998;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, .56);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .15s ease, visibility .15s ease;
}
#vu-page-loader.vu-loader-active {
  opacity: 1;
  visibility: visible;
}
body:is(.vu-side-cart-is-open, .vu-menu-open) #vu-page-loader,
body:has(#vuMPanel.open, .vucp-search-open) #vu-page-loader {
  display: none;
}
.vu-loader-stage {
  position: relative;
  display: grid;
  place-items: center;
  width: clamp(76px, calc(64px + 3vw), 98px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 3px 14px rgba(10, 74, 143, .14);
}
.vu-loader-ring {
  position: absolute;
  inset: 0;
  border: 3px solid #e5eef8;
  border-top-color: #0a4a8f;
  border-right-color: #4c82b9;
  border-radius: inherit;
}
.vu-loader-icon {
  display: block;
  width: clamp(42px, calc(34px + 2vw), 54px);
  height: auto;
  aspect-ratio: 1;
  object-fit: contain;
}
:is(#vu-page-loader.vu-loader-active, .is-cap-ajax-loading > .vubs-account-loader) .vu-loader-ring {
  animation: vubsLoaderSpin .85s linear infinite;
}
@keyframes vubsLoaderSpin {
  to { transform: rotate(1turn); }
}
.vubs-account-loader {
  display: none;
  position: fixed;
  top: var(--cap-ajax-loader-y, 50vh);
  left: var(--cap-ajax-loader-x, 50vw);
  z-index: 10020;
  transform: translate(-50%, -50%);
  pointer-events: none;
}
#cap-account-content.is-cap-ajax-loading > .vubs-account-loader { display: grid; }
#cap-account-content.vubs-account-loader-ready.is-cap-ajax-loading::after { content: none; }
#cap-account-content.vubs-account-loader-ready.is-cap-ajax-loading::before {
  background: rgba(244, 247, 251, .58);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
:is(a, button).vu-navigation-pending::after {
  content: "";
  display: inline-block;
  flex: none;
  vertical-align: middle;
  width: 1em;
  height: 1em;
  margin-inline-start: .55em;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: vubsLoaderSpin .85s linear infinite;
}
@media (prefers-reduced-motion: reduce) {
  #vu-page-loader { transition: none; }
  :is(#vu-page-loader.vu-loader-active, .is-cap-ajax-loading > .vubs-account-loader) .vu-loader-ring,
  :is(a, button).vu-navigation-pending::after {
    animation: none;
  }
}
