 * { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
        body { font-family: 'Inter', sans-serif; background: #ffffff; color: #1e293b; }
        .font-serif { font-family: 'Playfair Display', serif; }

        /* Hero overlay */
        .hero-overlay { background: linear-gradient(135deg, rgba(30,58,95,0.88) 0%, rgba(15,23,42,0.75) 40%, rgba(37,99,235,0.5) 100%); }

        /* Gradient text */
        .gradient-text { background: linear-gradient(135deg, #2563eb 0%, #7c3aed 50%, #f97316 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
        .gradient-text-warm { background: linear-gradient(135deg, #f97316 0%, #ef4444 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
        .gradient-text-cool { background: linear-gradient(135deg, #2563eb 0%, #0d9488 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }

        /* Glass for hero */
        .glass-hero { background: rgba(255,255,255,0.12); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border: 1px solid rgba(255,255,255,0.18); }

        /* Card styles */
        .card { background: #ffffff; border: 1px solid #e2e8f0; border-radius: 1rem; transition: all 0.4s ease; }
        .card:hover { border-color: #bfdbfe; box-shadow: 0 20px 60px -15px rgba(37,99,235,0.15); transform: translateY(-4px); }
        .card-coral:hover { border-color: #fed7aa; box-shadow: 0 20px 60px -15px rgba(249,115,22,0.15); }
        .card-teal:hover { border-color: #99f6e4; box-shadow: 0 20px 60px -15px rgba(13,148,136,0.15); }
        .card-purple:hover { border-color: #ddd6fe; box-shadow: 0 20px 60px -15px rgba(124,58,237,0.15); }
        .card-rose:hover { border-color: #fecdd3; box-shadow: 0 20px 60px -15px rgba(244,63,94,0.15); }
        .card-amber:hover { border-color: #fde68a; box-shadow: 0 20px 60px -15px rgba(245,158,11,0.15); }

        /* Route card */
        .route-card { background: #ffffff; border: 1px solid #e2e8f0; border-radius: 1rem; transition: all 0.4s ease; position: relative; overflow: hidden; }
        .route-card::before { content: ''; position: absolute; top: 0; left: 0; width: 4px; height: 100%; border-radius: 4px 0 0 4px; transition: height 0.3s ease; }
        .route-card.blue::before { background: linear-gradient(180deg, #3b82f6, #2563eb); }
        .route-card.orange::before { background: linear-gradient(180deg, #fb923c, #f97316); }
        .route-card.teal::before { background: linear-gradient(180deg, #2dd4bf, #0d9488); }
        .route-card.purple::before { background: linear-gradient(180deg, #a78bfa, #7c3aed); }
        .route-card.rose::before { background: linear-gradient(180deg, #fb7185, #f43f5e); }
        .route-card.amber::before { background: linear-gradient(180deg, #fbbf24, #f59e0b); }
        .route-card:hover { transform: translateY(-3px); box-shadow: 0 15px 40px -10px rgba(0,0,0,0.1); }

        /* Blog card */
        .blog-card { background: #ffffff; border: 1px solid #e2e8f0; border-radius: 1rem; overflow: hidden; transition: all 0.4s ease; }
        .blog-card:hover { transform: translateY(-4px); box-shadow: 0 20px 50px -12px rgba(0,0,0,0.12); }
        .blog-img { transition: transform 0.6s ease; }
        .blog-card:hover .blog-img { transform: scale(1.06); }

        /* Form */
        .form-input { background: #f8fafc; border: 1.5px solid #e2e8f0; color: #1e293b; transition: all 0.3s ease; border-radius: 0.75rem; }
        .form-input:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 4px rgba(59,130,246,0.1); background: #ffffff; }
        .form-input::placeholder { color: #94a3b8; }

        /* Trip toggle */
        .trip-btn { transition: all 0.3s ease; }
        .trip-btn.active { background: #2563eb; color: #fff; box-shadow: 0 4px 12px rgba(37,99,235,0.3); }

        /* Animations */
        @keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }
        @keyframes float { 0%, 100% { transform: translateY(0px); } 50% { transform: translateY(-8px); } }
        @keyframes shimmer { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } }

        .animate-fade-up { opacity: 0; animation: fadeInUp 0.8s ease-out both; }
        .delay-100 { animation-delay: 0.1s; }
        .delay-200 { animation-delay: 0.2s; }
        .delay-300 { animation-delay: 0.3s; }

        /* Scroll reveal */
        .reveal { opacity: 0; transform: translateY(25px); transition: opacity 0.6s ease, transform 0.6s ease; }
        .reveal.visible { opacity: 1; transform: translateY(0); }

        /* Sticky nav */
        .nav-sticky { background: rgba(255,255,255,0.92); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border-bottom: 1px solid rgba(226,232,240,0.8); }

        /* Mobile menu */
        .mobile-menu { transform: translateX(100%); transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1); }
        .mobile-menu.open { transform: translateX(0); }

        /* Toast */
        .toast { transform: translateY(100px); opacity: 0; transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); }
        .toast.show { transform: translateY(0); opacity: 1; }

        /* Section bg patterns */
        .pattern-dots { background-image: radial-gradient(circle, #e2e8f0 1px, transparent 1px); background-size: 24px 24px; }

        /* Scrollbar */
        ::-webkit-scrollbar { width: 6px; }
        ::-webkit-scrollbar-track { background: #f1f5f9; }
        ::-webkit-scrollbar-thumb { background: #3b82f6; border-radius: 3px; }