/* ==========================================================================
   Preloader (.qhr-preloader)
   ========================================================================== */
.qhr-preloader {
  position: fixed;
  inset: 0;
  background-color: var(--qhr-surface-page, #07090e);
  z-index: var(--qhr-z-modal, 1500);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--qhr-space-4, 16px);
  transition: opacity 300ms ease, visibility 300ms ease;
}

[data-theme="light"] .qhr-preloader {
  background-color: var(--qhr-surface-page, #f8fafc);
}

.qhr-preloader--glass {
  background: rgba(7, 9, 14, 0.85);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
[data-theme="light"] .qhr-preloader--glass {
  background: rgba(255, 255, 255, 0.88);
}

.qhr-preloader-emblem {
  width: 64px;
  height: 64px;
  border-radius: var(--qhr-radius-xl, 20px);
  background: var(--qhr-surface-elevated, #131b2e);
  border: 1px solid var(--qhr-color-luxury-gold, #c9a84c);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 30px rgba(201, 168, 76, 0.25);
  animation: qhr-emblem-pulse 2s infinite ease-in-out;
}
@keyframes qhr-emblem-pulse {
  0%, 100% { transform: scale(1); box-shadow: 0 0 20px rgba(201, 168, 76, 0.2); }
  50% { transform: scale(1.06); box-shadow: 0 0 35px rgba(201, 168, 76, 0.4); }
}

.qhr-preloader-text {
  font-family: var(--qhr-font-heading, 'Alexandria', 'Cairo', sans-serif);
  font-size: var(--qhr-text-sm, 0.875rem);
  font-weight: 700;
  color: var(--qhr-content-primary, #f8fafc);
  letter-spacing: 0.05em;
}
[data-theme="light"] .qhr-preloader-text {
  color: var(--qhr-content-primary, #0f172a);
}

.qhr-preloader-bar {
  width: 140px;
  height: 4px;
  border-radius: 9999px;
  background-color: rgba(201, 168, 76, 0.2);
  overflow: hidden;
  position: relative;
}
.qhr-preloader-bar::after {
  content: "";
  position: absolute;
  inset-block: 0;
  width: 40%;
  background: linear-gradient(90deg, transparent, var(--qhr-color-luxury-gold, #c9a84c), transparent);
  animation: qhr-preloader-slide 1.2s infinite ease-in-out;
}
@keyframes qhr-preloader-slide {
  from { inset-inline-start: -40%; }
  to { inset-inline-start: 100%; }
}
