/* Custom scroll behavior */
        html { scroll-behavior: smooth; }

        /* Animated gradient background for hero */
        .hero-gradient {
            background: linear-gradient(135deg, #0a1d36 0%, #1e56a0 50%, #163d72 100%);
            position: relative;
            overflow: hidden;
        }
        .hero-gradient::before {
            content: '';
            position: absolute;
            top: -50%;
            left: -50%;
            width: 200%;
            height: 200%;
            background: radial-gradient(circle at 30% 50%, rgba(59,130,246,0.15) 0%, transparent 50%),
                        radial-gradient(circle at 70% 80%, rgba(16,185,129,0.08) 0%, transparent 40%);
            animation: float 15s ease-in-out infinite;
        }
        @keyframes float {
            0%, 100% { transform: translate(0, 0) rotate(0deg); }
            33% { transform: translate(30px, -30px) rotate(2deg); }
            66% { transform: translate(-20px, 20px) rotate(-1deg); }
        }

        /* Partner logo marquee */
        .marquee-container { overflow: hidden; }
        .marquee-track {
            display: flex;
            animation: marquee 40s linear infinite;
            width: max-content;
        }
        .marquee-track:hover { animation-play-state: paused; }
        @keyframes marquee {
            0% { transform: translateX(0); }
            100% { transform: translateX(-50%); }
        }

        /* Scroll-triggered animations */
        .reveal {
            opacity: 0;
            transform: translateY(30px);
            transition: opacity 0.8s ease, transform 0.8s ease;
        }
        .reveal.visible {
            opacity: 1;
            transform: translateY(0);
        }

        /* Card hover effects */
        .service-card {
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }
        .service-card:hover {
            transform: translateY(-8px);
            box-shadow: 0 20px 60px rgba(0,0,0,0.12);
        }

        /* CTA pulse */
        .cta-pulse {
            animation: pulse-ring 2s cubic-bezier(0.455, 0.03, 0.515, 0.955) infinite;
        }
        @keyframes pulse-ring {
            0% { box-shadow: 0 0 0 0 rgba(16,185,129,0.35); }
            70% { box-shadow: 0 0 0 15px rgba(16,185,129,0); }
            100% { box-shadow: 0 0 0 0 rgba(16,185,129,0); }
        }

        /* Stat counter */
        .stat-number {
            background: linear-gradient(135deg, #10b981, #34d399);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
        }

        /* Nav default state */
        #navbar {
            background: transparent;
        }
        /* Nav scrolled state */
        #navbar.nav-scrolled {
            background: rgba(255,255,255,0.97);
            box-shadow: 0 4px 20px rgba(0,0,0,0.08);
            backdrop-filter: blur(20px);
            -webkit-backdrop-filter: blur(20px);
        }
        #navbar.nav-scrolled .nav-link { color: #0f2a4e; }
        #navbar.nav-scrolled .nav-link:hover { color: #1e56a0; }
        #navbar.nav-scrolled .logo-light { display: none; }
        #navbar.nav-scrolled .logo-dark { display: block; }
        #navbar.nav-scrolled #menuBtn { color: #0f2a4e; }

        /* Process step connector */
        .step-connector {
            position: relative;
        }
        .step-connector::after {
            content: '';
            position: absolute;
            top: 50%;
            right: -2rem;
            width: 4rem;
            height: 2px;
            background: linear-gradient(90deg, #1e56a0, #60a5fa);
        }

        /* Team card */
        .team-card:hover .team-overlay {
            opacity: 1;
        }

        /* Mobile menu */
        .mobile-menu { transform: translateX(100%); transition: transform 0.3s ease; }
        .mobile-menu.open { transform: translateX(0); }

        /* Insurance grid pattern */
        .pattern-bg {
            background-image: radial-gradient(circle at 1px 1px, rgba(30,86,160,0.05) 1px, transparent 0);
            background-size: 24px 24px;
        }

        /* ===== CONTACT DRAWER ===== */
        .contact-drawer-overlay {
            position: fixed; inset: 0; background: rgba(0,0,0,0.4);
            backdrop-filter: blur(4px); z-index: 60;
            opacity: 0; pointer-events: none; transition: opacity 0.3s ease;
        }
        .contact-drawer-overlay.open { opacity: 1; pointer-events: auto; }
        .contact-drawer {
            position: fixed; top: 0; right: 0; bottom: 0; width: 100%; max-width: 480px;
            background: white; z-index: 61; transform: translateX(100%);
            transition: transform 0.4s cubic-bezier(0.4,0,0.2,1);
            overflow-y: auto; box-shadow: -10px 0 40px rgba(0,0,0,0.15);
        }
        .contact-drawer.open { transform: translateX(0); }

        /* ===== REISE LAYOVER ===== */
        .travel-overlay {
            position: fixed; inset: 0; background: rgba(2,8,23,0.6);
            backdrop-filter: blur(4px); z-index: 70;
            opacity: 0; pointer-events: none; transition: opacity 0.25s ease;
        }
        .travel-overlay.open { opacity: 1; pointer-events: auto; }
        .travel-modal {
            position: fixed; top: 50%; left: 50%;
            width: min(1100px, calc(100% - 2rem)); max-height: calc(100vh - 2rem);
            background: white; border-radius: 18px; z-index: 71;
            transform: translate(-50%, -45%) scale(0.98);
            opacity: 0; pointer-events: none; transition: all 0.25s ease;
            box-shadow: 0 24px 80px rgba(2,8,23,0.35);
            display: flex; flex-direction: column; overflow: hidden;
        }
        .travel-modal.open {
            transform: translate(-50%, -50%) scale(1);
            opacity: 1; pointer-events: auto;
        }
        @media (max-width: 767px) {
            .travel-modal {
                width: calc(100% - 1rem);
                max-height: calc(100vh - 1rem);
                border-radius: 14px;
            }
        }

        /* ===== FLOATING ACTION BUTTON ===== */
        .fab-container { position: fixed; bottom: 2rem; right: 2rem; z-index: 55; }
        @media (max-width: 767px) { .fab-container { bottom: 5.5rem; right: 1rem; } }
        .fab-main {
            width: 64px; height: 64px; border-radius: 50%;
            background: linear-gradient(135deg, #10b981, #059669);
            color: white; border: none; cursor: pointer;
            box-shadow: 0 8px 32px rgba(16,185,129,0.35);
            transition: transform 0.3s ease, box-shadow 0.3s ease;
            display: flex; align-items: center; justify-content: center;
            position: relative; z-index: 3;
        }
        .fab-main:hover { transform: scale(1.1); box-shadow: 0 12px 40px rgba(16,185,129,0.45); }
        .fab-main.active { transform: rotate(45deg); background: linear-gradient(135deg, #ef4444, #dc2626); }
        .fab-options {
            position: absolute; bottom: 80px; right: 0;
            display: flex; flex-direction: column; align-items: flex-end; gap: 12px;
            opacity: 0; pointer-events: none; transform: translateY(20px);
            transition: opacity 0.3s ease, transform 0.3s ease;
        }
        .fab-options.open { opacity: 1; pointer-events: auto; transform: translateY(0); }
        .fab-option {
            display: flex; align-items: center; gap: 10px;
            white-space: nowrap; text-decoration: none;
        }
        .fab-option-label {
            background: white; color: #1e293b; padding: 8px 16px;
            border-radius: 10px; font-size: 14px; font-weight: 600;
            box-shadow: 0 4px 16px rgba(0,0,0,0.1);
            transition: transform 0.2s ease;
        }
        .fab-option:hover .fab-option-label { transform: translateX(-4px); }
        .fab-option-icon {
            width: 48px; height: 48px; border-radius: 50%;
            display: flex; align-items: center; justify-content: center;
            color: white; box-shadow: 0 4px 16px rgba(0,0,0,0.15);
            flex-shrink: 0; transition: transform 0.2s ease;
        }
        .fab-option:hover .fab-option-icon { transform: scale(1.1); }

        /* ===== MOBILE STICKY BOTTOM BAR ===== */
        .mobile-bottom-bar {
            display: none; position: fixed; bottom: 0; left: 0; right: 0;
            background: white; z-index: 50; padding: 8px 12px;
            box-shadow: 0 -4px 20px rgba(0,0,0,0.1);
            border-top: 1px solid #e5e7eb;
        }
        @media (max-width: 767px) { .mobile-bottom-bar { display: flex; gap: 8px; } }
        .mobile-bottom-btn {
            flex: 1; display: flex; flex-direction: column; align-items: center;
            justify-content: center; padding: 8px 4px; border-radius: 12px;
            text-decoration: none; font-size: 11px; font-weight: 600;
            transition: background 0.2s ease;
        }
        .mobile-bottom-btn:active { transform: scale(0.95); }

        /* ===== FORM STYLES ===== */
        .form-input {
            width: 100%; padding: 14px 16px; border: 2px solid #e5e7eb;
            border-radius: 12px; font-size: 16px; transition: border-color 0.2s ease, box-shadow 0.2s ease;
            outline: none; background: #f9fafb; font-family: inherit;
        }
        .form-input:focus {
            border-color: #1e56a0; box-shadow: 0 0 0 4px rgba(30,86,160,0.1);
            background: white;
        }
        .form-input::placeholder { color: #9ca3af; }
        .form-select { appearance: none; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e"); background-position: right 12px center; background-repeat: no-repeat; background-size: 20px; padding-right: 40px; }

        /* ===== SUCCESS ANIMATION ===== */
        .success-check { animation: successPop 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275); }
        @keyframes successPop {
            0% { transform: scale(0); opacity: 0; }
            50% { transform: scale(1.2); }
            100% { transform: scale(1); opacity: 1; }
        }

        /* ===== BUTTON RIPPLE ===== */
        .btn-ripple { position: relative; overflow: hidden; }
        .btn-ripple::after {
            content: ''; position: absolute; inset: 0;
            background: radial-gradient(circle, rgba(255,255,255,0.3) 10%, transparent 10.01%);
            transform: scale(10); opacity: 0; transition: transform 0.5s, opacity 0.5s;
        }
        .btn-ripple:active::after { transform: scale(0); opacity: 1; transition: 0s; }

        /* ===== HERO OPTION 2: ASSISTED CONVERSATION ===== */
        .hero-dialog-widget {
            background: rgba(255,255,255,0.12);
            border: 1px solid rgba(255,255,255,0.26);
            border-radius: 22px;
            backdrop-filter: blur(10px);
            box-shadow: 0 18px 45px rgba(6, 18, 37, 0.3);
        }
        .hero-bubble {
            position: relative;
            border-radius: 16px;
            padding: 10px 12px;
            font-size: 13px;
            line-height: 1.4;
            max-width: 100%;
        }
        .hero-bubble-sara {
            background: rgba(255,255,255,0.2);
            border: 1px solid rgba(255,255,255,0.28);
            color: #f3f7ff;
            border-top-left-radius: 6px;
        }
        .hero-bubble-user {
            margin-left: auto;
            background: rgba(16,185,129,0.22);
            border: 1px solid rgba(52,211,153,0.5);
            color: #eafff5;
            border-top-right-radius: 6px;
        }
        .hero-quick-reply {
            border: 1px solid rgba(191,219,254,0.46);
            background: rgba(255,255,255,0.1);
            color: #eef4ff;
            border-radius: 999px;
            padding: 6px 10px;
            font-size: 12px;
            line-height: 1;
            transition: all 0.2s ease;
        }
        .hero-quick-reply:hover {
            background: rgba(255,255,255,0.18);
            border-color: rgba(52,211,153,0.7);
        }
        .hero-chat-composer {
            display: flex;
            align-items: center;
            gap: 8px;
            background: rgba(10,29,54,0.45);
            border: 1px solid rgba(255,255,255,0.2);
            border-radius: 999px;
            padding: 6px 8px 6px 12px;
        }
        .hero-chat-input {
            flex: 1;
            min-width: 0;
            border: none;
            background: transparent;
            color: #f0f6ff;
            font-size: 13px;
            line-height: 1.3;
            outline: none;
        }
        .hero-chat-input::placeholder { color: rgba(230,240,255,0.68); }
        .hero-chat-send {
            width: 32px;
            height: 32px;
            border-radius: 999px;
            border: 1px solid rgba(255,255,255,0.25);
            background: rgba(255,255,255,0.14);
            color: white;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            transition: all 0.2s ease;
        }
        .hero-chat-send:hover { background: rgba(16,185,129,0.7); border-color: rgba(16,185,129,0.9); }
        .hero-sara-glow {
            background: radial-gradient(circle at 55% 42%, rgba(255,255,255,0.48) 0%, rgba(255,255,255,0.12) 45%, rgba(255,255,255,0) 75%);
            filter: blur(6px);
        }
        .hero-sara-portrait {
            filter: drop-shadow(0 20px 40px rgba(7,20,39,0.45));
        }
        .hero-sara-nameplate {
            background: rgba(15,42,78,0.62);
            border: 1px solid rgba(255,255,255,0.25);
            backdrop-filter: blur(8px);
        }
        @media (max-width: 767px) {
            .hero-dialog-widget { max-width: 100%; }
            .hero-chat-input { font-size: 16px; } /* Prevent iOS zoom on focus */
        }

        /* Pad body on mobile for bottom bar */
        @media (max-width: 767px) { body { padding-bottom: 72px; } }