/* -----------------------------------------
   Page Loader
   ----------------------------------------- */
#page-loader {
    position: fixed;
    inset: 0;
    background: #ffffff;
    z-index: 999999;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 1.75rem;
    transition: opacity 0.55s ease, visibility 0.55s ease;
}

#page-loader.loader-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.loader-logo {
    height: 52px;
    width: auto;
    object-fit: contain;
    animation: loader-pulse 1.8s ease-in-out infinite;
}

.loader-ring {
    width: 44px;
    height: 44px;
    border: 3px solid #e2e8f0;
    border-top-color: #0096c7;
    border-radius: 50%;
    animation: loader-spin 0.75s linear infinite;
}

@keyframes loader-spin {
    to { transform: rotate(360deg); }
}

@keyframes loader-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50%       { opacity: 0.7; transform: scale(0.97); }
}

/* Respect users who prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
    .loader-ring  { animation: none; border-color: #0096c7; }
    .loader-logo  { animation: none; }
    .reveal       { transition: none !important; }
    .animate-marquee { animation-play-state: paused; }
}

/* -----------------------------------------
   Base Utilities & Icons
   ----------------------------------------- */
.material-symbols-outlined {
    font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
    display: inline-block;
    line-height: 1;
}

/* -----------------------------------------
   Navigation Bar Glass Effect
   ----------------------------------------- */
.glass-nav {
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
}

/* -----------------------------------------
   Infinite Marquee Animation (Service Bar)
   ----------------------------------------- */
@keyframes marquee {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-50%);
    }
}

.animate-marquee {
    /* 25s duration for a smooth, readable scroll */
    animation: marquee 25s linear infinite;
    /* max-content ensures the items stay in a single line without wrapping */
    width: max-content;
}

/* -----------------------------------------
   Awards Section Glassmorphism Cards
   ----------------------------------------- */
.glass-award-card {
    box-shadow: 0 10px 40px -10px rgba(0, 0, 0, 0.05);
}

/* -----------------------------------------
   Scroll Reveal Animations
   ----------------------------------------- */
.reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: all 0.8s cubic-bezier(0.5, 0, 0, 1);
}

.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

/* -----------------------------------------
   Form Input Customizations
   Removes default browser autofill backgrounds
   ----------------------------------------- */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0 30px #f2f4f6 inset !important;
    -webkit-text-fill-color: #191c1e !important;
}