.loading {
  display: none;
}
/* ========================================================================= */

.product-category-btn.loading {
  pointer-events: none;
  opacity: 0.8;
}

.product-category-btn.loading i {
  display: none;
}

.product-category-btn.loading::after {
  content: '';
  width: 18px;
  height: 18px;
  border: 2px solid rgba(255, 255, 255, 0.4);
  border-top-color: white;
  border-radius: 50%;
  display: inline-block;
  animation: spin 0.7s linear infinite;
}

.product-category-btn.dimmed {
  opacity: 0.4;
  pointer-events: none;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

/* ============ */

/* HTML: <div class="loader"></div> */
.loader {
  width: 50px;
  aspect-ratio: 1;
  border-radius: 50%;
  border: 8px solid;
  border-color: #000 #0000;
  animation: l1 1s infinite;
}
@keyframes l1 {
  to {
    transform: rotate(0.5turn);
  }
}

/* ============ */

/* HTML: <div class="loader-new"></div> */
.loader-new {
  --w: 10ch;
  font-weight: bold;
  font-family: monospace;
  font-size: 30px;
  line-height: 1.2em;
  letter-spacing: var(--w);
  width: var(--w);
  overflow: hidden;
  white-space: nowrap;
  color: #0000;
  animation: l17 2s infinite;
}
.loader-new:before {
  content: 'Loading...';
}

@keyframes l17 {
  0% {
    text-shadow:
      calc(0 * var(--w)) -1.2em #000,
      calc(-1 * var(--w)) -1.2em #000,
      calc(-2 * var(--w)) -1.2em #000,
      calc(-3 * var(--w)) -1.2em #000,
      calc(-4 * var(--w)) -1.2em #000,
      calc(-5 * var(--w)) -1.2em #000,
      calc(-6 * var(--w)) -1.2em #000,
      calc(-7 * var(--w)) -1.2em #000,
      calc(-8 * var(--w)) -1.2em #000,
      calc(-9 * var(--w)) -1.2em #000;
  }
  4% {
    text-shadow:
      calc(0 * var(--w)) 0 #000,
      calc(-1 * var(--w)) -1.2em #000,
      calc(-2 * var(--w)) -1.2em #000,
      calc(-3 * var(--w)) -1.2em #000,
      calc(-4 * var(--w)) -1.2em #000,
      calc(-5 * var(--w)) -1.2em #000,
      calc(-6 * var(--w)) -1.2em #000,
      calc(-7 * var(--w)) -1.2em #000,
      calc(-8 * var(--w)) -1.2em #000,
      calc(-9 * var(--w)) -1.2em #000;
  }
  8% {
    text-shadow:
      calc(0 * var(--w)) 0 #000,
      calc(-1 * var(--w)) 0 #000,
      calc(-2 * var(--w)) -1.2em #000,
      calc(-3 * var(--w)) -1.2em #000,
      calc(-4 * var(--w)) -1.2em #000,
      calc(-5 * var(--w)) -1.2em #000,
      calc(-6 * var(--w)) -1.2em #000,
      calc(-7 * var(--w)) -1.2em #000,
      calc(-8 * var(--w)) -1.2em #000,
      calc(-9 * var(--w)) -1.2em #000;
  }
  12% {
    text-shadow:
      calc(0 * var(--w)) 0 #000,
      calc(-1 * var(--w)) 0 #000,
      calc(-2 * var(--w)) 0 #000,
      calc(-3 * var(--w)) -1.2em #000,
      calc(-4 * var(--w)) -1.2em #000,
      calc(-5 * var(--w)) -1.2em #000,
      calc(-6 * var(--w)) -1.2em #000,
      calc(-7 * var(--w)) -1.2em #000,
      calc(-8 * var(--w)) -1.2em #000,
      calc(-9 * var(--w)) -1.2em #000;
  }
  16% {
    text-shadow:
      calc(0 * var(--w)) 0 #000,
      calc(-1 * var(--w)) 0 #000,
      calc(-2 * var(--w)) 0 #000,
      calc(-3 * var(--w)) 0 #000,
      calc(-4 * var(--w)) -1.2em #000,
      calc(-5 * var(--w)) -1.2em #000,
      calc(-6 * var(--w)) -1.2em #000,
      calc(-7 * var(--w)) -1.2em #000,
      calc(-8 * var(--w)) -1.2em #000,
      calc(-9 * var(--w)) -1.2em #000;
  }
  20% {
    text-shadow:
      calc(0 * var(--w)) 0 #000,
      calc(-1 * var(--w)) 0 #000,
      calc(-2 * var(--w)) 0 #000,
      calc(-3 * var(--w)) 0 #000,
      calc(-4 * var(--w)) 0 #000,
      calc(-5 * var(--w)) -1.2em #000,
      calc(-6 * var(--w)) -1.2em #000,
      calc(-7 * var(--w)) -1.2em #000,
      calc(-8 * var(--w)) -1.2em #000,
      calc(-9 * var(--w)) -1.2em #000;
  }
  24% {
    text-shadow:
      calc(0 * var(--w)) 0 #000,
      calc(-1 * var(--w)) 0 #000,
      calc(-2 * var(--w)) 0 #000,
      calc(-3 * var(--w)) 0 #000,
      calc(-4 * var(--w)) 0 #000,
      calc(-5 * var(--w)) 0 #000,
      calc(-6 * var(--w)) -1.2em #000,
      calc(-7 * var(--w)) -1.2em #000,
      calc(-8 * var(--w)) -1.2em #000,
      calc(-9 * var(--w)) -1.2em #000;
  }
  28% {
    text-shadow:
      calc(0 * var(--w)) 0 #000,
      calc(-1 * var(--w)) 0 #000,
      calc(-2 * var(--w)) 0 #000,
      calc(-3 * var(--w)) 0 #000,
      calc(-4 * var(--w)) 0 #000,
      calc(-5 * var(--w)) 0 #000,
      calc(-6 * var(--w)) 0 #000,
      calc(-7 * var(--w)) -1.2em #000,
      calc(-8 * var(--w)) -1.2em #000,
      calc(-9 * var(--w)) -1.2em #000;
  }
  32% {
    text-shadow:
      calc(0 * var(--w)) 0 #000,
      calc(-1 * var(--w)) 0 #000,
      calc(-2 * var(--w)) 0 #000,
      calc(-3 * var(--w)) 0 #000,
      calc(-4 * var(--w)) 0 #000,
      calc(-5 * var(--w)) 0 #000,
      calc(-6 * var(--w)) 0 #000,
      calc(-7 * var(--w)) 0 #000,
      calc(-8 * var(--w)) -1.2em #000,
      calc(-9 * var(--w)) -1.2em #000;
  }
  36% {
    text-shadow:
      calc(0 * var(--w)) 0 #000,
      calc(-1 * var(--w)) 0 #000,
      calc(-2 * var(--w)) 0 #000,
      calc(-3 * var(--w)) 0 #000,
      calc(-4 * var(--w)) 0 #000,
      calc(-5 * var(--w)) 0 #000,
      calc(-6 * var(--w)) 0 #000,
      calc(-7 * var(--w)) 0 #000,
      calc(-8 * var(--w)) 0 #000,
      calc(-9 * var(--w)) -1.2em #000;
  }
  40%,
  60% {
    text-shadow:
      calc(0 * var(--w)) 0 #000,
      calc(-1 * var(--w)) 0 #000,
      calc(-2 * var(--w)) 0 #000,
      calc(-3 * var(--w)) 0 #000,
      calc(-4 * var(--w)) 0 #000,
      calc(-5 * var(--w)) 0 #000,
      calc(-6 * var(--w)) 0 #000,
      calc(-7 * var(--w)) 0 #000,
      calc(-8 * var(--w)) 0 #000,
      calc(-9 * var(--w)) 0 #000;
  }
  64% {
    text-shadow:
      calc(0 * var(--w)) 0 #000,
      calc(-1 * var(--w)) 0 #000,
      calc(-2 * var(--w)) 0 #000,
      calc(-3 * var(--w)) 0 #000,
      calc(-4 * var(--w)) 0 #000,
      calc(-5 * var(--w)) 0 #000,
      calc(-6 * var(--w)) 0 #000,
      calc(-7 * var(--w)) 0 #000,
      calc(-8 * var(--w)) 0 #000,
      calc(-9 * var(--w)) 1.2em #000;
  }
  68% {
    text-shadow:
      calc(0 * var(--w)) 0 #000,
      calc(-1 * var(--w)) 0 #000,
      calc(-2 * var(--w)) 0 #000,
      calc(-3 * var(--w)) 0 #000,
      calc(-4 * var(--w)) 0 #000,
      calc(-5 * var(--w)) 0 #000,
      calc(-6 * var(--w)) 0 #000,
      calc(-7 * var(--w)) 0 #000,
      calc(-8 * var(--w)) 1.2em #000,
      calc(-9 * var(--w)) 1.2em #000;
  }
  72% {
    text-shadow:
      calc(0 * var(--w)) 0 #000,
      calc(-1 * var(--w)) 0 #000,
      calc(-2 * var(--w)) 0 #000,
      calc(-3 * var(--w)) 0 #000,
      calc(-4 * var(--w)) 0 #000,
      calc(-5 * var(--w)) 0 #000,
      calc(-6 * var(--w)) 0 #000,
      calc(-7 * var(--w)) 1.2em #000,
      calc(-8 * var(--w)) 1.2em #000,
      calc(-9 * var(--w)) 1.2em #000;
  }
  76% {
    text-shadow:
      calc(0 * var(--w)) 0 #000,
      calc(-1 * var(--w)) 0 #000,
      calc(-2 * var(--w)) 0 #000,
      calc(-3 * var(--w)) 0 #000,
      calc(-4 * var(--w)) 0 #000,
      calc(-5 * var(--w)) 0 #000,
      calc(-6 * var(--w)) 1.2em #000,
      calc(-7 * var(--w)) 1.2em #000,
      calc(-8 * var(--w)) 1.2em #000,
      calc(-9 * var(--w)) 1.2em #000;
  }
  80% {
    text-shadow:
      calc(0 * var(--w)) 0 #000,
      calc(-1 * var(--w)) 0 #000,
      calc(-2 * var(--w)) 0 #000,
      calc(-3 * var(--w)) 0 #000,
      calc(-4 * var(--w)) 0 #000,
      calc(-5 * var(--w)) 1.2em #000,
      calc(-6 * var(--w)) 1.2em #000,
      calc(-7 * var(--w)) 1.2em #000,
      calc(-8 * var(--w)) 1.2em #000,
      calc(-9 * var(--w)) 1.2em #000;
  }
  84% {
    text-shadow:
      calc(0 * var(--w)) 0 #000,
      calc(-1 * var(--w)) 0 #000,
      calc(-2 * var(--w)) 0 #000,
      calc(-3 * var(--w)) 0 #000,
      calc(-4 * var(--w)) 1.2em #000,
      calc(-5 * var(--w)) 1.2em #000,
      calc(-6 * var(--w)) 1.2em #000,
      calc(-7 * var(--w)) 1.2em #000,
      calc(-8 * var(--w)) 1.2em #000,
      calc(-9 * var(--w)) 1.2em #000;
  }
  88% {
    text-shadow:
      calc(0 * var(--w)) 0 #000,
      calc(-1 * var(--w)) 0 #000,
      calc(-2 * var(--w)) 0 #000,
      calc(-3 * var(--w)) 1.2em #000,
      calc(-4 * var(--w)) 1.2em #000,
      calc(-5 * var(--w)) 1.2em #000,
      calc(-6 * var(--w)) 1.2em #000,
      calc(-7 * var(--w)) 1.2em #000,
      calc(-8 * var(--w)) 1.2em #000,
      calc(-9 * var(--w)) 1.2em #000;
  }
  92% {
    text-shadow:
      calc(0 * var(--w)) 0 #000,
      calc(-1 * var(--w)) 0 #000,
      calc(-2 * var(--w)) 1.2em #000,
      calc(-3 * var(--w)) 1.2em #000,
      calc(-4 * var(--w)) 1.2em #000,
      calc(-5 * var(--w)) 1.2em #000,
      calc(-6 * var(--w)) 1.2em #000,
      calc(-7 * var(--w)) 1.2em #000,
      calc(-8 * var(--w)) 1.2em #000,
      calc(-9 * var(--w)) 1.2em #000;
  }
  96% {
    text-shadow:
      calc(0 * var(--w)) 0 #000,
      calc(-1 * var(--w)) 1.2em #000,
      calc(-2 * var(--w)) 1.2em #000,
      calc(-3 * var(--w)) 1.2em #000,
      calc(-4 * var(--w)) 1.2em #000,
      calc(-5 * var(--w)) 1.2em #000,
      calc(-6 * var(--w)) 1.2em #000,
      calc(-7 * var(--w)) 1.2em #000,
      calc(-8 * var(--w)) 1.2em #000,
      calc(-9 * var(--w)) 1.2em #000;
  }
  100% {
    text-shadow:
      calc(0 * var(--w)) 1.2em #000,
      calc(-1 * var(--w)) 1.2em #000,
      calc(-2 * var(--w)) 1.2em #000,
      calc(-3 * var(--w)) 1.2em #000,
      calc(-4 * var(--w)) 1.2em #000,
      calc(-5 * var(--w)) 1.2em #000,
      calc(-6 * var(--w)) 1.2em #000,
      calc(-7 * var(--w)) 1.2em #000,
      calc(-8 * var(--w)) 1.2em #000,
      calc(-9 * var(--w)) 1.2em #000;
  }
}
