/* Custom Scrollbar Handling */
.hide-scrollbar::-webkit-scrollbar {
    display: none;
}
.hide-scrollbar {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

/* Utility for hiding scrollbars but allowing scroll */
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

/* Smooth Scrolling */
html {
    scroll-behavior: smooth;
}

/* Focus styles for accessibility */
:focus-visible {
    outline: 2px solid #041e3a;
    outline-offset: 2px;
}

/* Header Transitions */
.header-transition {
  transition: background-color 0.3s ease, color 0.3s ease, box-shadow 0.3s ease;
}

.header-scrolled {
  background-color: white;
  color: #041e3a;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}

.header-transparent {
  background-color: transparent;
  color: white;
}

/* Fade In Animation */
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
.animate-fade-in {
  animation: fadeIn 1s ease-out forwards;
}

/* Smooth Fade Transitions */
.fade-enter {
    opacity: 0;
    transform: translateY(10px);
}
.fade-enter-active {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 300ms ease-out, transform 300ms ease-out;
}

/* Reduced Motion Media Query */
@media (prefers-reduced-motion: reduce) {
    *, ::before, ::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}