/* Custom Animations & Base Styles */

/* Smooth Reveal Animation */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.animate-fade-up {
    animation: fadeInUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.animate-fade-in {
    animation: fadeInUp 0.5s ease-out forwards;
}

@keyframes fadeInDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.animate-fade-in-down {
    animation: fadeInDown 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes bounceSlow {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-8px);
    }
}

.animate-bounce-slow {
    animation: bounceSlow 3s infinite ease-in-out;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
    width: 6px;
}

::-webkit-scrollbar-track {
    background: #f8fafc;
}

::-webkit-scrollbar-thumb {
    background-color: #cbd5e1;
    border-radius: 10px;
}

::-webkit-scrollbar-thumb:hover {
    background-color: #94a3b8;
}

/* Base Mobile Fixes */
html {
    -webkit-tap-highlight-color: transparent;
    scroll-behavior: smooth;
}

/* Prevent zoom on input focus in iOS */
@media screen and (max-width: 768px) {

    input[type="text"],
    input[type="number"],
    input[type="email"],
    input[type="tel"],
    select,
    textarea {
        font-size: 16px !important;
    }
}

/* Safe area for iPhone X and newer */
.pb-safe {
    padding-bottom: env(safe-area-inset-bottom);
}

.pt-safe {
    padding-top: env(safe-area-inset-top);
}

/* Glass effect utilities */
.glass {
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.3);
}

/* Mobile Menu Overlay fix */
#mobile-menu {
    max-height: calc(100vh - 80px);
    /* Subtract navbar height */
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}