        *, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
        :root {
            --primary: #1B3A5C;
            --primary-light: #2A5A8C;
            --secondary: #DC2626;
            --secondary-light: #EF4444;
            --accent: #B91C1C;
            --dark: #0F1E2E;
            --light: #F7F5F0;
            --white: #FFFFFF;
            --gray: #6B7280;
            --gray-light: #E5E7EB;
            --success: #10B981;
            --danger: #EF4444;
        }
        html { scroll-behavior: smooth; }
        body {
            font-family: 'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', sans-serif;
            color: #333;
            background: var(--white);
            overflow-x: hidden;
        }
        h1, h2, h3, h4, h5, h6, .nav-link, .logo-text, .btn, .step-label, .footer-title {
            font-family: 'Jost', sans-serif;
        }

        /* NAVBAR */
        .navbar {
            position: fixed; top:0; left:0; right:0; z-index:1000;
            background: rgba(15,30,46,0.95); backdrop-filter: blur(12px);
            padding: 0 2rem; transition: all .3s;
            border-bottom: 1px solid rgba(200,169,81,0.1);
        }
        .navbar.scrolled {
            background: rgba(15,30,46,0.98);
            box-shadow: 0 4px 30px rgba(0,0,0,.3);
        }
        .nav-container {
            max-width: 1400px; margin:0 auto;
            display: flex; align-items: center; justify-content: space-between;
            height: 75px;
        }
        .logo { display:flex; align-items:center; gap:10px; text-decoration:none; }
        .logo-icon {
            width:45px; height:45px; background: linear-gradient(135deg, var(--secondary), var(--accent));
            border-radius:10px; display:flex; align-items:center; justify-content:center;
            font-size:1.2rem; color:var(--primary); font-weight:900;
            font-family:'Jost',sans-serif;
        }
        .logo-text {
            font-size:1.5rem; font-weight:800; color:var(--white);
            letter-spacing:3px;
        }
        .logo-text span { color:var(--secondary); }
        .nav-links { display:flex; align-items:center; gap:5px; list-style:none; }
        .nav-link {
            color: rgba(255,255,255,.8); text-decoration:none; padding:8px 16px;
            font-size:.9rem; font-weight:500; letter-spacing:.5px;
            border-radius:6px; transition: all .3s; cursor:pointer;
            text-transform: uppercase;
        }
        .nav-link:hover, .nav-link.active { color:var(--secondary); background:rgba(200,169,81,.1); }
        .nav-cta {
            background: linear-gradient(135deg, var(--secondary), var(--accent));
            color:var(--white)!important; font-weight:700; padding:10px 24px!important;
            border-radius:25px!important;
        }
        .nav-cta:hover { transform:translateY(-2px); box-shadow:0 4px 15px rgba(200,169,81,.4); }

        /* Language Switcher */
        .lang-switcher {
            position:relative; margin-left:10px;
        }
        .lang-btn {
            background: rgba(255,255,255,.1); border:1px solid rgba(200,169,81,.3);
            color:var(--white); padding:6px 14px; border-radius:20px;
            cursor:pointer; font-family:'Jost',sans-serif; font-size:.85rem;
            display:flex; align-items:center; gap:6px; transition:all .3s;
        }
        .lang-btn:hover { background:rgba(200,169,81,.2); }
        .lang-dropdown {
            position:absolute; top:110%; right:0; background:var(--dark);
            border:1px solid rgba(200,169,81,.2); border-radius:10px;
            overflow:hidden; display:none; min-width:150px;
            box-shadow:0 10px 30px rgba(0,0,0,.5);
        }
        .lang-dropdown.show { display:block; }
        .lang-option {
            padding:10px 16px; color:var(--white); cursor:pointer;
            font-size:.85rem; transition:all .2s; display:flex; align-items:center; gap:8px;
        }
        .lang-option:hover { background:rgba(200,169,81,.2); color:var(--secondary); }

        /* Mobile Menu */
        .mobile-toggle {
            display:none; background:none; border:none; color:var(--white);
            font-size:1.5rem; cursor:pointer;
        }
        .mobile-menu {
            display:none; position:fixed; top:75px; left:0; right:0; bottom:0;
            background:rgba(15,30,46,0.98); padding:2rem;
            flex-direction:column; gap:5px; z-index:999;
        }
        .mobile-menu.show { display:flex; }
        .mobile-menu .nav-link { font-size:1.1rem; padding:15px 20px; }

        /* HERO */
        .hero {
            position:relative; min-height:100vh; display:flex; align-items:center;
            background: linear-gradient(135deg, rgba(15,30,46,.92), rgba(27,58,92,.85)),
                url('https://images.pexels.com/photos/3885502/pexels-photo-3885502.jpeg?auto=compress&cs=tinysrgb&fit=crop&h=1200&w=1900') center/cover;
            padding:120px 2rem 80px;
        }
        .hero::after {
            content:''; position:absolute; bottom:0; left:0; right:0; height:150px;
            background: linear-gradient(transparent, var(--white));
        }
        .hero-container {
            max-width:1400px; margin:0 auto; width:100%;
            display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center;
            position:relative; z-index:2;
        }
        .hero-badge {
            display:inline-flex; align-items:center; gap:8px;
            background:rgba(200,169,81,.15); border:1px solid rgba(200,169,81,.3);
            padding:8px 20px; border-radius:30px; color:var(--secondary);
            font-size:.85rem; font-weight:600; margin-bottom:1.5rem;
            font-family:'Jost',sans-serif;
        }
        .hero h1 {
            font-size:3.5rem; font-weight:800; color:var(--white);
            line-height:1.15; margin-bottom:1.5rem;
        }
        .hero h1 span { color:var(--secondary); }
        .hero p {
            color:rgba(255,255,255,.75); font-size:1.15rem; line-height:1.8;
            margin-bottom:2.5rem; max-width:550px;
        }
        .hero-btns { display:flex; gap:15px; flex-wrap:wrap; }
        .hero-stats {
            display:flex; gap:40px; margin-top:3rem;
            padding-top:2rem; border-top:1px solid rgba(255,255,255,.1);
        }
        .stat-item h3 { font-size:2.2rem; font-weight:800; color:var(--secondary); }
        .stat-item p { color:rgba(255,255,255,.6); font-size:.85rem; margin-top:4px; }
        .hero-visual {
            display:flex; justify-content:center; align-items:center;
        }
        .hero-cards {
            display:grid; grid-template-columns:1fr 1fr; gap:15px;
            transform:rotate(-2deg);
        }
        .hero-card {
            background:rgba(255,255,255,.1); backdrop-filter:blur(10px);
            border:1px solid rgba(255,255,255,.15); border-radius:16px;
            padding:25px 20px; text-align:center; transition:all .4s;
        }
        .hero-card:hover { transform:translateY(-5px); background:rgba(200,169,81,.15); }
        .hero-card i { font-size:2rem; color:var(--secondary); margin-bottom:10px; }
        .hero-card h4 { color:var(--white); font-size:.95rem; font-weight:600; }
        .hero-card p { color:rgba(255,255,255,.5); font-size:.75rem; margin-top:4px; }

        /* BUTTONS */
        .btn {
            display:inline-flex; align-items:center; gap:8px;
            padding:14px 32px; border-radius:30px; font-weight:600;
            font-size:.95rem; text-decoration:none; transition:all .3s;
            border:none; cursor:pointer; letter-spacing:.5px;
        }
        .btn-primary {
            background:linear-gradient(135deg, var(--secondary), var(--accent));
            color:var(--white);
        }
        .btn-primary:hover { transform:translateY(-2px); box-shadow:0 8px 25px rgba(200,169,81,.4); }
        .btn-outline {
            background:transparent; border:2px solid rgba(255,255,255,.3);
            color:var(--white);
        }
        .btn-outline:hover { border-color:var(--secondary); color:var(--secondary); }
        .btn-dark {
            background:var(--primary); color:var(--white);
        }
        .btn-dark:hover { background:var(--primary-light); transform:translateY(-2px); }

        /* SECTIONS */
        .section { padding:100px 2rem; }
        .section-dark { background:var(--dark); color:var(--white); }
        .section-light { background:var(--light); }
        .container { max-width:1400px; margin:0 auto; }
        .section-header { text-align:center; margin-bottom:60px; }
        .section-header .overline {
            font-family:'Jost',sans-serif; font-size:.85rem; font-weight:600;
            color:var(--secondary); text-transform:uppercase; letter-spacing:3px;
            margin-bottom:12px;
        }
        .section-header h2 {
            font-size:2.8rem; font-weight:800; color:var(--primary);
            margin-bottom:15px; line-height:1.2;
        }
        .section-dark .section-header h2 { color:var(--white); }
        .section-header p {
            color:var(--gray); font-size:1.05rem; max-width:650px; margin:0 auto;
            line-height:1.7;
        }
        .section-dark .section-header p { color:rgba(255,255,255,.6); }

        /* DESTINATIONS */
        .destinations-grid {
            display:grid; grid-template-columns:repeat(3,1fr); gap:25px;
        }
        .dest-card {
            position:relative; border-radius:20px; overflow:hidden;
            height:380px; cursor:pointer; group:true;
        }
        .dest-card img {
            width:100%; height:100%; object-fit:cover;
            transition:transform .6s;
        }
        .dest-card:hover img { transform:scale(1.1); }
        .dest-overlay {
            position:absolute; inset:0;
            background:linear-gradient(transparent 40%, rgba(15,30,46,.9));
            display:flex; flex-direction:column; justify-content:flex-end;
            padding:30px;
        }
        .dest-flag { font-size:2rem; margin-bottom:8px; }
        .dest-overlay h3 { color:var(--white); font-size:1.4rem; font-weight:700; }
        .dest-overlay p { color:rgba(255,255,255,.7); font-size:.85rem; margin-top:6px; }
        .dest-tag {
            position:absolute; top:20px; right:20px;
            background:var(--secondary); color:var(--white);
            padding:5px 14px; border-radius:20px; font-size:.75rem;
            font-weight:700; font-family:'Jost',sans-serif;
        }

        /* SERVICES */
        .services-grid {
            display:grid; grid-template-columns:repeat(3,1fr); gap:30px;
        }
        .service-card {
            background:var(--white); border-radius:20px; padding:40px 30px;
            box-shadow:0 4px 20px rgba(0,0,0,.06);
            transition:all .4s; border:1px solid var(--gray-light);
            position:relative; overflow:hidden;
        }
        .service-card::before {
            content:''; position:absolute; top:0; left:0; right:0; height:4px;
            background:linear-gradient(90deg, var(--secondary), var(--accent));
            transform:scaleX(0); transition:transform .4s; transform-origin:left;
        }
        .service-card:hover::before { transform:scaleX(1); }
        .service-card:hover { transform:translateY(-8px); box-shadow:0 12px 40px rgba(0,0,0,.12); }
        .service-icon {
            width:65px; height:65px; background:linear-gradient(135deg, rgba(200,169,81,.15), rgba(200,169,81,.05));
            border-radius:16px; display:flex; align-items:center; justify-content:center;
            font-size:1.6rem; color:var(--secondary); margin-bottom:20px;
        }
        .service-card h3 { font-size:1.2rem; font-weight:700; color:var(--primary); margin-bottom:12px; }
        .service-card p { color:var(--gray); font-size:.9rem; line-height:1.7; }

        /* ABOUT */
        .about-grid {
            display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center;
        }
        .about-img {
            border-radius:20px; overflow:hidden; position:relative;
        }
        .about-img img { width:100%; height:500px; object-fit:cover; border-radius:20px; }
        .about-badge {
            position:absolute; bottom:30px; right:30px;
            background:var(--secondary); color:var(--white);
            padding:20px 25px; border-radius:16px; text-align:center;
        }
        .about-badge h3 { font-size:2rem; font-weight:800; }
        .about-badge p { font-size:.8rem; font-weight:600; }
        .about-content h2 { font-size:2.5rem; font-weight:800; color:var(--primary); margin-bottom:20px; line-height:1.2; }
        .about-content > p { color:var(--gray); line-height:1.8; margin-bottom:25px; }
        .about-features { display:flex; flex-direction:column; gap:15px; }
        .about-feature {
            display:flex; align-items:flex-start; gap:15px;
            padding:15px; background:var(--light); border-radius:12px;
        }
        .about-feature i {
            width:40px; height:40px; background:var(--secondary); color:var(--white);
            border-radius:10px; display:flex; align-items:center; justify-content:center;
            flex-shrink:0; font-size:.9rem;
        }
        .about-feature h4 { font-size:1rem; font-weight:700; color:var(--primary); margin-bottom:4px; }
        .about-feature p { font-size:.85rem; color:var(--gray); }

        /* TESTIMONIALS */
        .testimonials-grid {
            display:grid; grid-template-columns:repeat(3,1fr); gap:30px;
        }
        .testimonial-card {
            background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1);
            border-radius:20px; padding:35px; transition:all .3s;
        }
        .testimonial-card:hover { border-color:rgba(200,169,81,.3); transform:translateY(-5px); }
        .stars { color:var(--secondary); margin-bottom:15px; font-size:.9rem; }
        .testimonial-card p { color:rgba(255,255,255,.7); font-size:.95rem; line-height:1.7; font-style:italic; margin-bottom:20px; }
        .testimonial-author { display:flex; align-items:center; gap:12px; }
        .testimonial-avatar {
            width:45px; height:45px; border-radius:50%;
            background:var(--secondary); display:flex; align-items:center; justify-content:center;
            color:var(--white); font-weight:700; font-family:'Jost',sans-serif;
        }
        .testimonial-info h4 { color:var(--white); font-size:.9rem; font-weight:600; }
        .testimonial-info span { color:rgba(255,255,255,.4); font-size:.8rem; }

        /* CONTACT */
        .contact-grid {
            display:grid; grid-template-columns:1fr 1fr; gap:50px;
        }
        .contact-info { display:flex; flex-direction:column; gap:25px; }
        .contact-item {
            display:flex; align-items:flex-start; gap:16px;
            padding:20px; background:var(--light); border-radius:14px;
        }
        .contact-icon {
            width:50px; height:50px; background:linear-gradient(135deg, var(--secondary), var(--accent));
            border-radius:12px; display:flex; align-items:center; justify-content:center;
            color:var(--white); font-size:1.1rem; flex-shrink:0;
        }
        .contact-item h4 { font-size:1rem; font-weight:700; color:var(--primary); margin-bottom:4px; }
        .contact-item p { color:var(--gray); font-size:.9rem; }
        .contact-form {
            background:var(--white); border-radius:20px; padding:40px;
            box-shadow:0 4px 20px rgba(0,0,0,.08); border:1px solid var(--gray-light);
        }
        .form-group { margin-bottom:20px; }
        .form-group label {
            display:block; font-family:'Jost',sans-serif; font-weight:600;
            color:var(--primary); margin-bottom:6px; font-size:.9rem;
        }
        .form-group input, .form-group select, .form-group textarea {
            width:100%; padding:12px 16px; border:2px solid var(--gray-light);
            border-radius:10px; font-size:.95rem; transition:border-color .3s;
            font-family:'Trebuchet MS',sans-serif; background:var(--white);
        }
        .form-group input:focus, .form-group select:focus, .form-group textarea:focus {
            outline:none; border-color:var(--secondary);
        }
        .form-row { display:grid; grid-template-columns:1fr 1fr; gap:15px; }

        /* MULTI-STEP FORM */
        .form-page { display:none; }
        .form-page.active { display:block; }
        .multistep-container {
            max-width:900px; margin:0 auto;
            background:var(--white); border-radius:24px;
            box-shadow:0 8px 40px rgba(0,0,0,.1);
            overflow:hidden; border:1px solid var(--gray-light);
        }
        .step-header {
            background:linear-gradient(135deg, var(--primary), var(--primary-light));
            padding:30px 40px; color:var(--white);
        }
        .step-header h2 { font-size:1.5rem; margin-bottom:20px; }
        .steps-indicator {
            display:flex; align-items:center; gap:0;
            position:relative;
        }
        .step-dot {
            display:flex; align-items:center; gap:8px; flex:1;
            position:relative;
        }
        .step-circle {
            width:36px; height:36px; border-radius:50%;
            background:rgba(255,255,255,.2); display:flex; align-items:center;
            justify-content:center; font-weight:700; font-size:.85rem;
            transition:all .3s; flex-shrink:0; z-index:2;
            color:rgba(255,255,255,.5);
        }
        .step-dot.active .step-circle {
            background:var(--secondary); color:var(--primary);
        }
        .step-dot.completed .step-circle {
            background:var(--success); color:var(--white);
        }
        .step-label {
            font-size:.7rem; text-transform:uppercase; letter-spacing:1px;
            color:rgba(255,255,255,.5); display:none;
        }
        .step-dot.active .step-label { color:var(--secondary); }
        .step-dot::after {
            content:''; position:absolute; top:50%; left:36px; right:0;
            height:2px; background:rgba(255,255,255,.15); z-index:1;
        }
        .step-dot:last-child::after { display:none; }
        .step-dot.completed::after { background:var(--success); }
        .step-body { padding:40px; }
        .step-title { font-size:1.3rem; font-weight:700; color:var(--primary); margin-bottom:25px; }
        .step-footer {
            display:flex; justify-content:space-between; align-items:center;
            padding:20px 40px 30px; border-top:1px solid var(--gray-light);
        }
        .radio-group { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:15px; }
        .radio-option {
            padding:16px; border:2px solid var(--gray-light); border-radius:12px;
            cursor:pointer; transition:all .3s; display:flex; align-items:center; gap:10px;
        }
        .radio-option:hover { border-color:var(--secondary); }
        .radio-option.selected { border-color:var(--secondary); background:rgba(200,169,81,.05); }
        .radio-option input { display:none; }
        .radio-dot {
            width:20px; height:20px; border-radius:50%; border:2px solid var(--gray-light);
            display:flex; align-items:center; justify-content:center; flex-shrink:0;
        }
        .radio-option.selected .radio-dot {
            border-color:var(--secondary);
        }
        .radio-option.selected .radio-dot::after {
            content:''; width:10px; height:10px; border-radius:50%;
            background:var(--secondary);
        }
        .checkbox-group { display:flex; flex-direction:column; gap:10px; }
        .checkbox-option {
            padding:14px; border:2px solid var(--gray-light); border-radius:10px;
            cursor:pointer; display:flex; align-items:center; gap:10px; transition:all .3s;
        }
        .checkbox-option:hover { border-color:var(--secondary); }
        .checkbox-option.selected { border-color:var(--secondary); background:rgba(200,169,81,.05); }
        .check-box {
            width:22px; height:22px; border:2px solid var(--gray-light); border-radius:6px;
            display:flex; align-items:center; justify-content:center; flex-shrink:0;
        }
        .checkbox-option.selected .check-box {
            background:var(--secondary); border-color:var(--secondary);
            color:var(--primary); font-size:.7rem;
        }

        /* PAYMENT */
        .payment-summary {
            background:var(--light); border-radius:16px; padding:25px;
            margin-bottom:25px;
        }
        .payment-line {
            display:flex; justify-content:space-between; padding:8px 0;
            font-size:.95rem; color:var(--gray);
        }
        .payment-line.total {
            border-top:2px solid var(--gray-light); margin-top:10px; padding-top:15px;
            font-weight:700; color:var(--primary); font-size:1.2rem;
            font-family:'Jost',sans-serif;
        }
        .card-inputs { display:grid; gap:15px; }
        .card-row { display:grid; grid-template-columns:1fr 1fr; gap:15px; }

        /* FOOTER */
        .footer {
            background:var(--dark); color:rgba(255,255,255,.6); padding:80px 2rem 30px;
        }
        .footer-grid {
            max-width:1400px; margin:0 auto;
            display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:40px;
            margin-bottom:50px;
        }
        .footer-title { color:var(--white); font-size:1.1rem; margin-bottom:20px; font-weight:600; }
        .footer-about p { font-size:.9rem; line-height:1.7; margin-top:15px; }
        .footer-links { list-style:none; }
        .footer-links li { margin-bottom:10px; }
        .footer-links a {
            color:rgba(255,255,255,.5); text-decoration:none; font-size:.9rem;
            transition:color .3s; cursor:pointer;
        }
        .footer-links a:hover { color:var(--white); }
        .footer-social { display:flex; gap:10px; margin-top:15px; }
        .footer-social a {
            width:40px; height:40px; border-radius:10px;
            background:rgba(255,255,255,.1); display:flex; align-items:center;
            justify-content:center; color:var(--white); transition:all .3s;
            text-decoration:none;
        }
        .footer-social a:hover { background:var(--secondary); color:var(--primary); }
        .footer-bottom {
            max-width:1400px; margin:0 auto; padding-top:30px;
            border-top:1px solid rgba(255,255,255,.1);
            display:flex; justify-content:space-between; align-items:center;
            font-size:.85rem; flex-wrap:wrap; gap:15px;
        }
        .footer-bottom a { color:rgba(255,255,255,.5); text-decoration:none; cursor:pointer; }

        /* LEGAL PAGES */
        .legal-page {
            padding:120px 2rem 80px;
            max-width:900px; margin:0 auto;
        }
        .legal-page h1 { font-size:2.5rem; color:var(--primary); margin-bottom:30px; }
        .legal-page h2 { font-size:1.5rem; color:var(--primary); margin-top:30px; margin-bottom:15px; }
        .legal-page p, .legal-page li { color:var(--gray); line-height:1.8; margin-bottom:12px; }
        .legal-page ul { padding-left:20px; }

        /* COOKIE BANNER */
        .cookie-banner {
            position:fixed; bottom:0; left:0; right:0;
            background:var(--dark); color:var(--white);
            padding:20px 30px; z-index:9999;
            display:none; border-top:2px solid var(--secondary);
        }
        .cookie-banner.show { display:block; }
        .cookie-content {
            max-width:1400px; margin:0 auto;
            display:flex; align-items:center; justify-content:space-between;
            gap:20px; flex-wrap:wrap;
        }
        .cookie-content p { font-size:.9rem; color:rgba(255,255,255,.8); flex:1; }
        .cookie-content p a { color:var(--secondary); text-decoration:underline; cursor:pointer; }
        .cookie-btns { display:flex; gap:10px; }
        .cookie-btn {
            padding:10px 24px; border-radius:25px; font-family:'Jost',sans-serif;
            font-weight:600; font-size:.85rem; cursor:pointer; transition:all .3s; border:none;
        }
        .cookie-accept { background:var(--secondary); color:var(--primary); }
        .cookie-decline { background:rgba(255,255,255,.1); color:var(--white); }

        /* BACK TO TOP */
        .back-to-top {
            position:fixed; bottom:30px; right:30px; width:50px; height:50px;
            background:var(--secondary); color:var(--white); border:none;
            border-radius:50%; cursor:pointer; font-size:1.2rem;
            display:none; align-items:center; justify-content:center;
            box-shadow:0 4px 15px rgba(0,0,0,.2); transition:all .3s; z-index:998;
        }
        .back-to-top.show { display:flex; }
        .back-to-top:hover { transform:translateY(-3px); }

        /* ANIMATIONS */
        .fade-in {
            opacity:0; transform:translateY(30px);
            transition: opacity .6s, transform .6s;
        }
        .fade-in.visible { opacity:1; transform:translateY(0); }
        .fade-in-left {
            opacity:0; transform:translateX(-40px);
            transition: opacity .6s, transform .6s;
        }
        .fade-in-left.visible { opacity:1; transform:translateX(0); }
        .fade-in-right {
            opacity:0; transform:translateX(40px);
            transition: opacity .6s, transform .6s;
        }
        .fade-in-right.visible { opacity:1; transform:translateX(0); }

        /* PAGE TRANSITIONS */
        .page { display:none; }
        .page.active { display:block; }

        /* RESPONSIVE */
        @media (max-width:1024px) {
            .hero h1 { font-size:2.5rem; }
            .hero-container { grid-template-columns:1fr; }
            .hero-visual { display:none; }
            .destinations-grid { grid-template-columns:repeat(2,1fr); }
            .services-grid { grid-template-columns:repeat(2,1fr); }
            .about-grid { grid-template-columns:1fr; }
            .contact-grid { grid-template-columns:1fr; }
            .testimonials-grid { grid-template-columns:repeat(2,1fr); }
            .footer-grid { grid-template-columns:1fr 1fr; }
            .section-header h2 { font-size:2.2rem; }
        }
        @media (max-width:768px) {
            .nav-links { display:none; }
            .mobile-toggle { display:block; }
            .lang-switcher { margin-left:auto; margin-right:10px; }
            .hero { padding:100px 1.5rem 60px; min-height:auto; }
            .hero h1 { font-size:2rem; }
            .hero-stats { flex-direction:row; flex-wrap:wrap; gap:20px; justify-content:space-between; }
            .stat-item { flex:1; min-width:80px; text-align:center; }
            .destinations-grid { grid-template-columns:1fr; }
            .services-grid { grid-template-columns:1fr; }
            .testimonials-grid { grid-template-columns:1fr; }
            .footer-grid { grid-template-columns:1fr; }
            .section { padding:60px 1.5rem; }
            .section-header h2 { font-size:1.8rem; }
            .radio-group { grid-template-columns:1fr; }
            .form-row { grid-template-columns:1fr; }
            .step-body { padding:25px; }
            .step-footer { padding:15px 25px 20px; flex-wrap:wrap; gap:10px; }
            .step-header { padding:20px 25px; }
            .step-label { display:none!important; }
            .card-row { grid-template-columns:1fr; }
            .multistep-container { margin:0 -0.5rem; border-radius:16px; }
            .footer-bottom { flex-direction:column; text-align:center; }
        }
        @media (max-width:480px) {
            .hero h1 { font-size:1.7rem; }
            .hero-btns { flex-direction:column; }
            .hero-btns .btn { width:100%; justify-content:center; }
            .nav-container { padding:0; }
            .logo-text { font-size:1.2rem; letter-spacing:2px; }
            .dest-card { height:280px; }
        }

        /* Notification */
        .notification {
            position:fixed; top:90px; right:20px; padding:15px 25px;
            border-radius:12px; color:var(--white); font-weight:600;
            font-family:'Jost',sans-serif; z-index:9999; transform:translateX(400px);
            transition:transform .4s; box-shadow:0 5px 20px rgba(0,0,0,.3);
        }
        .notification.show { transform:translateX(0); }
        .notification.success { background:var(--success); }
        .notification.error { background:var(--danger); }

        /* WhatsApp float */
        .whatsapp-float {
            position:fixed; bottom:90px; right:30px; width:55px; height:55px;
            background:#25D366; border-radius:50%; display:flex; align-items:center;
            justify-content:center; color:white; font-size:1.6rem; z-index:998;
            box-shadow:0 4px 15px rgba(37,211,102,.4); transition:all .3s;
            text-decoration:none;
        }
        .whatsapp-float:hover { transform:scale(1.1); }

        /* Summary review */
        .review-section { margin-bottom:15px; }
        .review-section h4 { font-size:.95rem; color:var(--secondary); margin-bottom:8px; font-weight:700; }
        .review-item { display:flex; justify-content:space-between; padding:5px 0; font-size:.9rem; color:var(--gray); }
        .review-item span:last-child { color:var(--primary); font-weight:600; }

        /* ===== SEBPAY PAYMENT UI ===== */
        .sebpay-order-box {
            background: linear-gradient(135deg, var(--primary), var(--primary-light));
            border-radius: 18px; padding: 24px 28px; color: var(--white);
            margin-bottom: 24px;
        }
        .sebpay-order-box .order-label { font-size:.8rem; opacity:.75; letter-spacing:2px; text-transform:uppercase; font-weight:600; margin-bottom:6px; }
        .sebpay-order-box .order-amount { font-family:'Jost',sans-serif; font-size:2.6rem; font-weight:900; margin-bottom:4px; }
        .sebpay-order-box .order-desc { font-size:.9rem; opacity:.8; }
        .sebpay-order-box .order-ref { font-size:.78rem; opacity:.6; margin-top:8px; }

        .pay-method-tabs { display:flex; gap:10px; margin-bottom:20px; }
        .pay-method-tab {
            flex:1; padding:14px 10px; border-radius:12px; border:2px solid var(--gray-light);
            background:var(--white); cursor:pointer; font-weight:700; color:var(--gray);
            display:flex; flex-direction:column; align-items:center; gap:6px; font-size:.85rem;
            transition:all .25s;
        }
        .pay-method-tab i { font-size:1.3rem; }
        .pay-method-tab:hover { border-color:var(--primary-light); background:rgba(27,58,92,.04); }
        .pay-method-tab.active { border-color:var(--primary); background:rgba(27,58,92,.06); color:var(--primary); box-shadow:0 0 0 3px rgba(27,58,92,.12); }

        .operator-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:12px; margin-top:8px; }
        .operator-card {
            border: 2px solid var(--gray-light); border-radius:12px; padding:14px 10px;
            text-align:center; cursor:pointer; transition:all .25s; background:var(--white);
        }
        .operator-card:hover { border-color:var(--primary-light); background:rgba(27,58,92,.04); }
        .operator-card.selected { border-color:var(--primary); background:rgba(27,58,92,.06); box-shadow:0 0 0 3px rgba(27,58,92,.12); }
        .operator-card img { width:52px; height:52px; object-fit:contain; margin-bottom:6px; }
        .operator-card .op-logo-fallback { width:52px; height:52px; border-radius:50%; margin:0 auto 6px; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:1.1rem; color:#fff; }
        .operator-card .op-name { font-size:.8rem; font-weight:700; color:var(--primary); }

        /* ===== Sélecteur de pays personnalisé (drapeaux + recherche) ===== */
        .cc-select { position:relative; }
        .cc-trigger {
            width:100%; display:flex; align-items:center; gap:10px; padding:12px 16px;
            border:2px solid var(--gray-light); border-radius:10px; background:var(--white);
            font-family:'Trebuchet MS',sans-serif; font-size:.95rem; color:var(--primary);
            cursor:pointer; transition:border-color .25s,box-shadow .25s; text-align:left;
        }
        .cc-trigger:hover { border-color:var(--primary-light); }
        .cc-select.open .cc-trigger { border-color:var(--secondary); box-shadow:0 0 0 4px rgba(220,38,38,.12); }
        .cc-flag { font-size:1.5rem; line-height:1; flex-shrink:0; border-radius:4px; box-shadow:0 0 0 1px rgba(0,0,0,.08); }
        .cc-trigger-text { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
        .cc-select:not(.has-value) .cc-trigger-text { color:var(--gray); }
        .cc-chevron { font-size:.8rem; color:var(--gray); transition:transform .25s; flex-shrink:0; }
        .cc-select.open .cc-chevron { transform:rotate(180deg); color:var(--secondary); }

        .cc-panel {
            position:absolute; left:0; right:0; top:calc(100% + 8px); z-index:30;
            background:var(--white); border:1px solid var(--gray-light); border-radius:14px;
            box-shadow:0 16px 40px rgba(15,30,46,.18);
            opacity:0; visibility:hidden; transform:translateY(-8px) scale(.98);
            transition:opacity .2s ease,transform .2s ease,visibility .2s;
            overflow:hidden; max-height:340px; display:flex; flex-direction:column;
        }
        .cc-select.open .cc-panel { opacity:1; visibility:visible; transform:translateY(0) scale(1); }
        .cc-search { display:flex; align-items:center; gap:8px; padding:12px 14px; border-bottom:1px solid var(--gray-light); flex-shrink:0; }
        .cc-search i { color:var(--gray); font-size:.85rem; }
        .cc-search input { border:none; outline:none; font-size:.9rem; width:100%; font-family:'Trebuchet MS',sans-serif; background:transparent; }
        .cc-options { overflow-y:auto; padding:6px; }
        .cc-option {
            display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:9px;
            cursor:pointer; transition:background .15s; font-size:.9rem; color:var(--primary);
        }
        .cc-option:hover, .cc-option.active { background:rgba(27,58,92,.07); }
        .cc-option.selected { background:rgba(220,38,38,.08); font-weight:700; }
        .cc-option .cc-flag { font-size:1.4rem; }
        .cc-option .cc-opt-name { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
        .cc-option .cc-opt-prefix { color:var(--gray); font-size:.8rem; font-weight:600; }
        .cc-empty { padding:20px 14px; text-align:center; color:var(--gray); font-size:.85rem; }

        /* ===== Champ téléphone Mobile Money ===== */
        .pp-phone-field {
            position:relative; display:flex; align-items:center; gap:0;
            border:2px solid var(--gray-light); border-radius:10px; background:var(--white);
            transition:border-color .25s,box-shadow .25s; overflow:hidden;
        }
        .pp-phone-field:focus-within { border-color:var(--secondary); box-shadow:0 0 0 4px rgba(220,38,38,.12); }
        .pp-phone-chip {
            display:flex; align-items:center; gap:6px; padding:0 12px; height:100%;
            background:rgba(27,58,92,.06); border-right:2px solid var(--gray-light);
            font-weight:700; color:var(--primary); font-size:.92rem; white-space:nowrap; flex-shrink:0;
            align-self:stretch; padding-top:12px; padding-bottom:12px;
        }
        .pp-phone-chip span:first-child { font-size:1.3rem; border-radius:4px; box-shadow:0 0 0 1px rgba(0,0,0,.08); }
        .pp-phone-field input {
            border:none !important; flex:1; min-width:0; padding:12px 14px !important;
        }
        .pp-phone-field input:focus { outline:none; }
        .pp-phone-valid {
            display:none; color:var(--success); font-size:1.05rem; margin-right:12px; flex-shrink:0;
        }
        .pp-phone-field.valid .pp-phone-valid { display:block; }
        .pp-phone-progress { height:4px; background:var(--gray-light); border-radius:3px; margin-top:8px; overflow:hidden; }
        .pp-phone-progress-bar { height:100%; width:0%; background:var(--secondary); transition:width .2s ease,background .2s ease; }
        .pp-phone-progress-bar.complete { background:var(--success); }

        .sebpay-trust {
            display:flex; align-items:center; gap:10px; background:#f0fdf4;
            border:1px solid #bbf7d0; border-radius:10px; padding:12px 16px; margin-bottom:20px;
        }
        .sebpay-trust i { color:var(--success); font-size:1.1rem; flex-shrink:0; }
        .sebpay-trust span { font-size:.82rem; color:#166534; line-height:1.4; }

        .sebpay-powered {
            text-align:center; font-size:.75rem; color:var(--gray); margin-top:10px;
            display:flex; align-items:center; justify-content:center; gap:6px;
        }
        .sebpay-powered strong { color:var(--primary); }

        /* Payment processing overlay */
        .payment-processing-overlay {
            display:none; position:absolute; inset:0; background:rgba(255,255,255,.95);
            border-radius:20px; z-index:10; flex-direction:column;
            align-items:center; justify-content:center; text-align:center; gap:18px;
        }
        .payment-processing-overlay.active { display:flex; }
        .pay-spinner {
            width:64px; height:64px; border:5px solid var(--gray-light);
            border-top-color:var(--primary); border-radius:50%;
            animation: pay-spin 1s linear infinite;
        }
        @keyframes pay-spin { to { transform:rotate(360deg); } }
        .pay-proc-title { font-family:'Jost',sans-serif; font-size:1.2rem; font-weight:700; color:var(--primary); }
        .pay-proc-sub { font-size:.88rem; color:var(--gray); max-width:280px; line-height:1.5; }
        .pay-proc-timer {
            font-family:'Jost',sans-serif; font-size:1.6rem; font-weight:800; color:var(--secondary);
            letter-spacing:1px; font-variant-numeric:tabular-nums;
        }
        .pay-proc-timer.urgent { color:#DC2626; }
        .pay-proc-pulse {
            display:flex; gap:6px; align-items:center;
        }
        .pay-proc-pulse span {
            width:8px; height:8px; background:var(--primary); border-radius:50%;
            animation:proc-bounce .9s ease-in-out infinite;
        }
        .pay-proc-pulse span:nth-child(2) { animation-delay:.18s; }
        .pay-proc-pulse span:nth-child(3) { animation-delay:.36s; }
        @keyframes proc-bounce { 0%,80%,100%{transform:scale(0.6);opacity:.4} 40%{transform:scale(1.1);opacity:1} }

        /* Payment status messages */
        .pay-status-msg {
            display:none; border-radius:12px; padding:16px 20px; margin-bottom:16px;
            font-size:.9rem; line-height:1.5;
        }
        .pay-status-msg.info   { display:flex; gap:10px; background:#eff6ff; border:1px solid #bfdbfe; color:#1e40af; }
        .pay-status-msg.error  { display:flex; gap:10px; background:#fef2f2; border:1px solid #fecaca; color:#991b1b; }
        .pay-status-msg.success{ display:flex; gap:10px; background:#f0fdf4; border:1px solid #bbf7d0; color:#166534; }

        /* ===== PRISE DE RENDEZ-VOUS ===== */
        .booking-box { background:var(--light); border-radius:14px; padding:18px 20px; margin-bottom:22px; }
        .booking-box-title { font-weight:700; color:var(--primary); margin-bottom:14px; font-size:.95rem; }
        .booking-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:16px; align-items:stretch; }
        .cal-panel, .slots-panel {
            background:var(--white); border:1px solid var(--gray-light);
            border-radius:12px; padding:14px;
        }
        .cal-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
        .cal-month { font-family:'Jost',sans-serif; font-weight:700; color:var(--primary); font-size:.95rem; }
        .cal-nav {
            width:36px; height:36px; border-radius:9px; border:1px solid var(--gray-light);
            background:var(--white); color:var(--primary); cursor:pointer; transition:all .2s;
            display:flex; align-items:center; justify-content:center; font-size:.8rem;
        }
        .cal-nav:hover:not(:disabled) { border-color:var(--primary); background:rgba(27,58,92,.05); }
        .cal-nav:disabled { opacity:.35; cursor:not-allowed; }
        .cal-dow { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; margin-bottom:6px; }
        .cal-dow span {
            text-align:center; font-size:.66rem; font-weight:700; text-transform:uppercase;
            color:var(--gray); letter-spacing:.5px; font-family:'Jost',sans-serif;
        }
        .cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
        .cal-day {
            min-height:38px; border-radius:9px; border:1px solid rgba(27,58,92,.15);
            background:var(--white); font-size:.85rem; color:var(--primary);
            cursor:pointer; transition:all .2s;
        }
        .cal-day:hover:not(:disabled):not(.selected) { border-color:var(--primary); background:rgba(27,58,92,.07); }
        .cal-day:disabled { color:#C7CBD1; border-color:transparent; background:transparent; cursor:not-allowed; }
        .cal-day.selected {
            background:linear-gradient(135deg,var(--primary),var(--primary-light));
            color:var(--white); font-weight:700; border-color:var(--primary);
        }
        .cal-day:focus-visible, .slot-btn:focus-visible, .cal-nav:focus-visible {
            outline:2px solid var(--secondary); outline-offset:2px;
        }
        .cal-legend { display:flex; gap:16px; margin-top:10px; font-size:.72rem; color:var(--gray); }
        .leg-dot { display:inline-block; width:10px; height:10px; border-radius:3px; margin-right:5px; vertical-align:-1px; }
        .leg-open { background:rgba(27,58,92,.1); border:1px solid rgba(27,58,92,.4); }
        .leg-closed { background:var(--gray-light); }
        .slots-panel { min-height:240px; display:flex; flex-direction:column; }
        .slots-title { font-family:'Jost',sans-serif; font-weight:600; color:var(--primary); font-size:.9rem; margin-bottom:12px; }
        .slots-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; align-content:start; flex:1; }
        .slot-btn {
            min-height:44px; border:2px solid var(--gray-light); border-radius:10px;
            background:var(--white); font-family:'Jost',sans-serif; font-weight:600;
            font-size:.9rem; color:var(--primary); cursor:pointer; transition:all .2s;
            display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px;
        }
        .slot-btn:hover:not(:disabled):not(.selected) { border-color:var(--primary); background:rgba(27,58,92,.04); }
        .slot-btn.selected {
            border-color:var(--primary);
            background:linear-gradient(135deg,var(--primary),var(--primary-light));
            color:var(--white);
        }
        .slot-btn.booked { cursor:not-allowed; color:var(--gray); background:var(--light); border-style:dashed; }
        .slot-tag { font-size:.6rem; text-transform:uppercase; letter-spacing:1px; color:var(--danger); font-weight:700; }
        .slots-loading, .slots-empty { grid-column:1/-1; color:var(--gray); font-size:.85rem; padding:10px 0; }
        .slots-hint { font-size:.72rem; color:var(--gray); margin-top:10px; }
        .booking-recap {
            display:flex; align-items:center; gap:10px; background:#f0fdf4;
            border:1px solid #bbf7d0; border-radius:10px; padding:12px 16px;
            margin-top:14px; font-size:.88rem; color:#166534;
        }
        .booking-recap i { color:var(--success); font-size:1.05rem; flex-shrink:0; }
        @media (max-width:768px) {
            .booking-grid { grid-template-columns:1fr; }
            .cal-day { min-height:44px; }
            .slots-panel { min-height:auto; }
        }

        /* ===== PAGE DE PAIEMENT SEBPAY ===== */
        .pay-page-container { max-width:560px; margin:0 auto; padding:0; }
        .pay-card {
            background:var(--white); border-radius:20px; position:relative; overflow:hidden;
            box-shadow:0 8px 40px rgba(0,0,0,.12); border:1px solid var(--gray-light);
        }
        /* Le panneau du sélecteur de pays est en position:absolute et peut dépasser la
           hauteur de la carte (surtout avant sélection, quand carte encore courte sur
           mobile) : overflow:hidden le tronquerait alors. On autorise le débordement
           uniquement pendant que le panneau est ouvert. */
        .pay-card:has(.cc-select.open) { overflow:visible; }
        /* Filet de sécurité pour les navigateurs sans :has() (classe posée par le JS) */
        .pay-card.cc-panel-open { overflow:visible; }
        .pay-card + .pay-card { margin-top:20px; }
        .sebpay-modal-header {
            display:flex; align-items:center; justify-content:space-between;
            padding:16px 22px; color:var(--white);
            background:linear-gradient(135deg, var(--primary), var(--primary-light));
            position:sticky; top:0; z-index:2;
        }
        .sebpay-modal-brand { font-family:'Jost',sans-serif; font-size:.95rem; display:flex; align-items:center; gap:8px; }
        .sebpay-modal-body { padding:22px; }
        .pay-order-desc { font-size:.9rem; color:var(--gray); margin-bottom:12px; }
        .pay-back-link {
            display:flex; align-items:center; justify-content:center; gap:6px;
            color:var(--gray); font-size:.85rem; margin-top:16px; text-decoration:none;
            transition:color .2s;
        }
        .pay-back-link:hover { color:var(--primary); }
        .sebpay-modal-amount {
            background:var(--light); border:1px solid var(--gray-light); border-radius:14px;
            padding:16px 20px; text-align:center; margin-bottom:18px;
        }
        .sebpay-modal-amount .amount-label {
            font-size:.75rem; text-transform:uppercase; letter-spacing:2px;
            color:var(--gray); font-weight:600; font-family:'Jost',sans-serif;
        }
        .sebpay-modal-amount .amount-value {
            font-family:'Jost',sans-serif; font-size:2.2rem; font-weight:900; color:var(--primary);
        }
        .sebpay-modal-amount .amount-ref { font-size:.75rem; color:var(--gray); margin-top:2px; }
        .pay-card .payment-processing-overlay { border-radius:20px; }
        @media (max-width:600px) {
            .pay-page-container { padding:0 4px; }
        }
