/* Page Transitions & Smooth Scroll Styles */

html {
  scroll-behavior: smooth;
}

/* Page Transition Loader */
#page-transition-loader {
  position: fixed;
  inset: 0;
  background-color: var(--bg-dark, #F6FAFF);
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 1;
  visibility: visible;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

/* Hidden state for loader */
#page-transition-loader.hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none; /* Let clicks pass through when hidden */
}

body {
  cursor: none;
}

.gold-cursor {
  position: fixed;
  top: 0;
  left: 0;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  pointer-events: none;
  transform: translate(-50%, -50%) scale(0.95);
  background: radial-gradient(circle, rgba(212,175,55,1) 0%, rgba(212,175,55,0.55) 32%, rgba(212,175,55,0.2) 55%, transparent 75%);
  border: 2px solid rgba(212,175,55,0.95);
  box-shadow: 0 0 24px rgba(212,175,55,0.9), 0 0 50px rgba(212,175,55,0.35);
  opacity: 0;
  transition: transform 0.15s ease, opacity 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
  z-index: 99999;
  mix-blend-mode: normal;
}

/* Loader Spinner */
.loader-spinner {
  width: 50px;
  height: 50px;
  border: 4px solid var(--blue-soft, #DBEAFE);
  border-top: 4px solid var(--gold-primary, #D4AF37);
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* Back to Top Button */
#back-to-top {
  position: fixed;
  bottom: 30px;
  right: 30px;
  width: 50px;
  height: 50px;
  background-color: var(--blue-primary, #1D4ED8);
  color: #fff;
  border: none;
  border-radius: 50%;
  font-size: 1.5rem;
  cursor: pointer;
  z-index: 9900;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px);
  transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease, background-color 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

#back-to-top.visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}

#back-to-top:hover {
  background-color: var(--gold-primary, #D4AF37);
}

/* Scroll Animations (Intersection Observer) */
.fade-up {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1), transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

.fade-up.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Active Nav Link Styling */
.nav-links a.active {
  color: var(--gold-primary, #D4AF37);
}

.nav-links a.active::after {
  width: 100%;
}

/* Disable animations for users who prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  
  #page-transition-loader {
    display: none !important;
  }
  
  .fade-up {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  .loader-spinner {
    animation: none;
  }
}
