/* Shared full-screen page loading spinner */
#site-preloader,
#page-spinner {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #ffffff;
  opacity: 1;
  visibility: visible;
  transition: opacity 0.5s ease, visibility 0.5s ease;
  pointer-events: auto;
}
#site-preloader.hidden,
#page-spinner.hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.spinner-wrap,
.spinner-ring {
  position: relative;
  width: 180px;
  height: 180px;
}
.arc,
.spinner-arc {
  position: absolute;
  top: 0;
  left: 0;
  border-radius: 50%;
  border: 10px solid transparent;
  border-top-color: currentColor;
  border-right-color: currentColor;
}
.arc--1,
.spinner-arc--outer,
.arc--outer {
  width: 180px;
  height: 180px;
  color: #a9d7de;
  animation: spin-clockwise 1.8s linear infinite;
}
.arc--2,
.spinner-arc--middle,
.arc--middle {
  width: 140px;
  height: 140px;
  top: 20px;
  left: 20px;
  color: #4d7a93;
  animation: spin-counterclockwise 1.3s linear infinite;
}
.arc--3,
.spinner-arc--inner,
.arc--inner {
  width: 100px;
  height: 100px;
  top: 40px;
  left: 40px;
  color: #345069;
  animation: spin-clockwise 0.9s linear infinite;
}
@keyframes spin-clockwise {
  to { transform: rotate(360deg); }
}
@keyframes spin-counterclockwise {
  to { transform: rotate(-360deg); }
}
