/* ============================================================
   NAYA TOURS — ANIMATIONS STYLESHEET
   CSS Keyframes, Scroll Animations, Transitions
   ============================================================ */

/* ==========================================================
   1. KEYFRAME ANIMATIONS
   ========================================================== */

/* Fade In Up */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(40px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Fade In Down */
@keyframes fadeInDown {
    from {
        opacity: 0;
        transform: translateY(-40px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Fade In Left */
@keyframes fadeInLeft {
    from {
        opacity: 0;
        transform: translateX(-40px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Fade In Right */
@keyframes fadeInRight {
    from {
        opacity: 0;
        transform: translateX(40px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Fade In */
@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

/* Scale In */
@keyframes scaleIn {
    from {
        opacity: 0;
        transform: scale(0.9);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

/* Scale In Up */
@keyframes scaleInUp {
    from {
        opacity: 0;
        transform: scale(0.95) translateY(20px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

/* Slide In From Bottom */
@keyframes slideInFromBottom {
    from {
        opacity: 0;
        transform: translateY(60px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Slide In From Left */
@keyframes slideInFromLeft {
    from {
        opacity: 0;
        transform: translateX(-60px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Slide In From Right */
@keyframes slideInFromRight {
    from {
        opacity: 0;
        transform: translateX(60px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Rotate In */
@keyframes rotateIn {
    from {
        opacity: 0;
        transform: rotate(-10deg) scale(0.9);
    }
    to {
        opacity: 1;
        transform: rotate(0) scale(1);
    }
}

/* Bounce In */
@keyframes bounceIn {
    0% {
        opacity: 0;
        transform: scale(0.3);
    }
    50% {
        transform: scale(1.05);
    }
    70% {
        transform: scale(0.95);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}

/* Float */
@keyframes float {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-10px);
    }
}

/* Shimmer */
@keyframes shimmer {
    0% {
        background-position: -200% 0;
    }
    100% {
        background-position: 200% 0;
    }
}

/* Wave Motion */
@keyframes waveMotion {
    0% {
        transform: translateX(0) translateY(0);
    }
    25% {
        transform: translateX(5px) translateY(-3px);
    }
    50% {
        transform: translateX(0) translateY(-6px);
    }
    75% {
        transform: translateX(-5px) translateY(-3px);
    }
    100% {
        transform: translateX(0) translateY(0);
    }
}

/* Pulse Glow */
@keyframes pulseGlow {
    0%, 100% {
        box-shadow: 0 0 0 0 rgba(201, 169, 110, 0.4);
    }
    50% {
        box-shadow: 0 0 0 15px rgba(201, 169, 110, 0);
    }
}

/* Ripple */
@keyframes ripple {
    0% {
        transform: scale(0);
        opacity: 1;
    }
    100% {
        transform: scale(4);
        opacity: 0;
    }
}

/* Typing Cursor */
@keyframes typingCursor {
    0%, 100% {
        border-right-color: transparent;
    }
    50% {
        border-right-color: var(--color-accent);
    }
}

/* Spin Slow */
@keyframes spinSlow {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

/* Gradient Shift */
@keyframes gradientShift {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}

/* ==========================================================
   2. HERO ANIMATIONS
   ========================================================== */
.animate-fade-up {
    opacity: 0;
    transform: translateY(40px);
    animation: fadeInUp 0.8s ease forwards;
}

.animate-fade-up[data-delay="0.2"] { animation-delay: 0.2s; }
.animate-fade-up[data-delay="0.5"] { animation-delay: 0.5s; }
.animate-fade-up[data-delay="0.8"] { animation-delay: 0.8s; }
.animate-fade-up[data-delay="1.1"] { animation-delay: 1.1s; }
.animate-fade-up[data-delay="1.4"] { animation-delay: 1.4s; }

/* ==========================================================
   3. SCROLL-TRIGGERED ANIMATIONS
   ========================================================== */
.animate-on-scroll {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.7s ease, transform 0.7s ease;
}

.animate-on-scroll.animated {
    opacity: 1;
    transform: translateY(0);
}

/* Staggered delays via data attributes (handled in JS, but CSS fallbacks) */
.animate-on-scroll[data-delay="0.1"].animated { transition-delay: 0.1s; }
.animate-on-scroll[data-delay="0.15"].animated { transition-delay: 0.15s; }
.animate-on-scroll[data-delay="0.2"].animated { transition-delay: 0.2s; }
.animate-on-scroll[data-delay="0.25"].animated { transition-delay: 0.25s; }
.animate-on-scroll[data-delay="0.3"].animated { transition-delay: 0.3s; }
.animate-on-scroll[data-delay="0.35"].animated { transition-delay: 0.35s; }
.animate-on-scroll[data-delay="0.4"].animated { transition-delay: 0.4s; }
.animate-on-scroll[data-delay="0.45"].animated { transition-delay: 0.45s; }
.animate-on-scroll[data-delay="0.5"].animated { transition-delay: 0.5s; }
.animate-on-scroll[data-delay="0.6"].animated { transition-delay: 0.6s; }
.animate-on-scroll[data-delay="0.7"].animated { transition-delay: 0.7s; }
.animate-on-scroll[data-delay="0.75"].animated { transition-delay: 0.75s; }
.animate-on-scroll[data-delay="0.9"].animated { transition-delay: 0.9s; }
.animate-on-scroll[data-delay="1.05"].animated { transition-delay: 1.05s; }

/* ==========================================================
   4. ELEMENT-SPECIFIC ANIMATION CLASSES
   ========================================================== */

/* Image Scale In */
.animate-scale-in {
    opacity: 0;
    transform: scale(0.92);
    transition: opacity 0.7s ease, transform 0.7s ease;
}

.animate-scale-in.animated {
    opacity: 1;
    transform: scale(1);
}

/* Slide From Left */
.animate-slide-left {
    opacity: 0;
    transform: translateX(-50px);
    transition: opacity 0.7s ease, transform 0.7s ease;
}

.animate-slide-left.animated {
    opacity: 1;
    transform: translateX(0);
}

/* Slide From Right */
.animate-slide-right {
    opacity: 0;
    transform: translateX(50px);
    transition: opacity 0.7s ease, transform 0.7s ease;
}

.animate-slide-right.animated {
    opacity: 1;
    transform: translateX(0);
}

/* Card Entrance */
.animate-card {
    opacity: 0;
    transform: translateY(40px) scale(0.97);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

.animate-card.animated {
    opacity: 1;
    transform: translateY(0) scale(1);
}

/* ==========================================================
   5. HOVER ANIMATIONS
   ========================================================== */

/* Button Ripple Effect */
.btn::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    background: rgba(255, 255, 255, 0.15);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    transition: width 0.6s ease, height 0.6s ease;
}

.btn:hover::before {
    width: 300px;
    height: 300px;
}

/* Image Hover Zoom */
.hover-zoom {
    overflow: hidden;
}

.hover-zoom img {
    transition: transform 0.5s ease;
}

.hover-zoom:hover img {
    transform: scale(1.08);
}

/* Card Lift */
.hover-lift {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.hover-lift:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12);
}

/* Underline Grow */
.hover-underline {
    position: relative;
}

.hover-underline::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 0;
    height: 2px;
    background: var(--color-accent);
    transition: width 0.3s ease;
}

.hover-underline:hover::after {
    width: 100%;
}

/* Color Shift */
.hover-color-shift {
    transition: color 0.3s ease, background-color 0.3s ease;
}

/* ==========================================================
   6. LOADING / TRANSITION EFFECTS
   ========================================================== */

/* Page Transition */
.page-transition-enter {
    opacity: 0;
    animation: fadeIn 0.5s ease forwards;
}

.page-transition-exit {
    animation: fadeIn 0.3s ease reverse forwards;
}

/* Skeleton Loading */
.skeleton {
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    animation: shimmer 1.5s ease infinite;
    border-radius: var(--radius-sm);
}

/* Progress Bar */
.progress-bar {
    height: 3px;
    background: var(--color-accent);
    transform-origin: left;
    transform: scaleX(0);
    transition: transform 0.3s ease;
}

.progress-bar.active {
    transform: scaleX(1);
}

/* ==========================================================
   7. SVG ANIMATIONS
   ========================================================== */

/* Wave SVG Movement */
.wave-animated {
    animation: waveMotion 6s ease-in-out infinite;
}

/* Draw Line */
@keyframes drawLine {
    from {
        stroke-dashoffset: 1000;
    }
    to {
        stroke-dashoffset: 0;
    }
}

.svg-draw {
    stroke-dasharray: 1000;
    stroke-dashoffset: 1000;
}

.svg-draw.animated {
    animation: drawLine 2s ease forwards;
}

/* ==========================================================
   8. GALLERY ANIMATIONS
   ========================================================== */

/* Gallery Item Show/Hide */
.gallery-item {
    transition: opacity 0.4s ease, transform 0.4s ease;
}

.gallery-item.fade-out {
    opacity: 0;
    transform: scale(0.95);
}

.gallery-item.fade-in {
    opacity: 1;
    transform: scale(1);
}

/* Lightbox Animations */
.lightbox {
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.lightbox.active .lightbox-content img {
    animation: scaleIn 0.4s ease forwards;
}

/* ==========================================================
   9. COUNTER ANIMATION SUPPORT
   ========================================================== */
.counter-number {
    transition: color 0.3s ease;
}

.counter-item.counted .counter-number {
    color: var(--color-accent);
}

/* ==========================================================
   10. TESTIMONIAL SLIDER ANIMATIONS
   ========================================================== */
.testimonials-track {
    transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.testimonial-slide {
    opacity: 0.5;
    transform: scale(0.95);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

.testimonial-slide.active {
    opacity: 1;
    transform: scale(1);
}

/* Dot Transition */
.dot {
    transition: width 0.3s ease, background-color 0.3s ease;
}

/* ==========================================================
   11. NAVIGATION ANIMATIONS
   ========================================================== */
.naya-nav {
    transition: background-color 0.3s ease, padding 0.3s ease, box-shadow 0.3s ease;
}

.nav-links a {
    transition: color 0.3s ease;
}

.nav-links a::after {
    transition: width 0.3s ease;
}

/* Mobile Sidebar Transitions */
.sidebar-content {
    transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.sidebar-overlay {
    transition: opacity 0.3s ease;
}

.sidebar-links a {
    transition: color 0.3s ease, padding-left 0.3s ease;
}

/* ==========================================================
   12. SPECIAL EFFECTS
   ========================================================== */

/* Gradient Text */
.gradient-text {
    background: linear-gradient(135deg, var(--color-accent), var(--color-secondary));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Glass Effect */
.glass-effect {
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.15);
}

/* Glowing Border */
.glow-border {
    position: relative;
}

.glow-border::after {
    content: '';
    position: absolute;
    top: -2px;
    left: -2px;
    right: -2px;
    bottom: -2px;
    background: linear-gradient(135deg, var(--color-accent), var(--color-secondary), var(--color-accent));
    background-size: 300% 300%;
    border-radius: inherit;
    z-index: -1;
    animation: gradientShift 3s ease infinite;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.glow-border:hover::after {
    opacity: 1;
}

/* Parallax Layer */
.parallax-layer {
    will-change: transform;
    transition: transform 0.1s linear;
}

/* ==========================================================
   13. REDUCED MOTION OVERRIDE
   ========================================================== */
@media (prefers-reduced-motion: reduce) {
    .animate-on-scroll {
        opacity: 1;
        transform: none;
        transition: none;
    }

    .animate-fade-up {
        opacity: 1;
        transform: none;
        animation: none;
    }

    .animate-scale-in,
    .animate-slide-left,
    .animate-slide-right,
    .animate-card {
        opacity: 1;
        transform: none;
        transition: none;
    }

    .testimonials-track {
        transition: none;
    }

    .testimonial-slide {
        opacity: 1;
        transform: none;
        transition: none;
    }

    .gallery-item {
        transition: none;
    }

    .btn::before {
        display: none;
    }

    .whatsapp-float {
        animation: none;
    }

    .nav-cta {
        animation: none;
    }

    .scroll-chevron {
        animation: none;
    }
}
