
/* --- Extracted Block 1 --- */

        /* ===============================================
           VARIABLES & RESET
           =============================================== */
        :root {
            --color-primary: #00a8a8;
            --color-primary-dark: #006d77;
            --color-bg-light: #f7f9fb;
            --color-bg-white: #ffffff;
            --color-error: #fed7d7;
            --color-text-dark: #1a202c;
            --color-text-gray: #4a5568;
            --color-border: #e2e8f0;
            --font-family: 'Montserrat', sans-serif;
            --transition: all 0.3s ease;
            --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.08);
            --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.12);
            --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.16);
            --border-radius: 64px;
        }

        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        html {
            scroll-behavior: smooth;
            font-size: 16px;
        }

        body {
            font-family: var(--font-family);
            color: var(--color-text-dark);
            line-height: 1.6;
            background-color: var(--color-bg-light);
            overflow-x: hidden;
        }

        /* ===============================================
           UTILITY CLASSES
           =============================================== */
        .container {
            width: 100%;
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 20px;
        }

        .section {
            padding: 80px 0;
        }

        .section-title {
            font-size: 2.5rem;
            font-weight: 800;
            color: var(--color-primary-dark);
            text-align: center;
            margin-bottom: 1rem;
            line-height: 1.2;
        }

        .section-subtitle {
            font-size: 1.125rem;
            color: var(--color-text-gray);
            text-align: center;
            margin-bottom: 3rem;
            max-width: 700px;
            margin-left: auto;
            margin-right: auto;
        }

        .btn {
            display: inline-block;
            padding: 16px 32px;
            font-size: 1.125rem;
            font-weight: 600;
            text-decoration: none;
            border-radius: 50px;
            transition: var(--transition);
            cursor: pointer;
            border: none;
            text-align: center;
            font-family: var(--font-family);
        }

        .btn-primary {
            background: var(--color-primary);
            color: white;
            box-shadow: var(--shadow-md);
        }

        .btn-primary:hover {
            transform: translateY(-1px);
            box-shadow: var(--shadow-lg);
            background: var(--color-primary-dark);
        }

        .btn-primary:focus {
            outline: 3px solid rgba(0, 168, 168, 0.3);
            outline-offset: 2px;
        }

        .btn-pulse {
            animation: pulse-subtle 6s infinite;
        }

        @keyframes pulse-subtle {

            0%,
            100% {
                box-shadow: 0 0 0 0 rgba(0, 168, 168, 0.2);
            }

            50% {
                box-shadow: 0 0 0 4px rgba(0, 168, 168, 0);
            }
        }

        /* ===============================================
           NAVIGATION
           =============================================== */
        .nav {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            background: rgba(255, 255, 255, 0.98);
            box-shadow: var(--shadow-sm);
            z-index: 1000;
            transition: var(--transition);
        }

        .nav-container {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 1rem 20px;
            max-width: 1200px;
            margin: 0 auto;
        }

        /* Bouton téléphone header sticky */
        .nav-phone-btn {
            display: flex;
            align-items: center;
            gap: 0.5rem;
            background: var(--color-primary);
            color: white;
            padding: 0.6rem 1.2rem;
            border-radius: 50px;
            text-decoration: none;
            font-weight: 600;
            font-size: 0.95rem;
            transition: var(--transition);
            box-shadow: var(--shadow-sm);
            white-space: nowrap;
        }

        .nav-phone-btn:hover {
            background: var(--color-primary-dark);
            transform: translateY(-2px);
            box-shadow: var(--shadow-md);
            color: white;
        }

        @media (max-width: 768px) {
            .nav-phone-btn {
                display: none;
                /* Cacher sur mobile pour éviter surcharge */
            }
        }

        /* ===============================================
           WIDGET "2 NOUVELLES DÉMOS" - DISCRET
           =============================================== */
        .widget-new-demos {
            position: fixed;
            bottom: 20px;
            right: 20px;
            background: white;
            border: 2px solid var(--color-primary);
            border-radius: 16px;
            padding: 1rem;
            box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
            z-index: 100;
            max-width: 280px;
            display: none;
            animation: slideInRight 0.4s ease-out;
            transition: var(--transition);
        }

        .widget-new-demos.visible {
            display: block;
        }

        @keyframes slideInRight {
            from {
                transform: translateX(120%);
                opacity: 0;
            }

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

        .widget-new-demos-header {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            margin-bottom: 0.75rem;
        }

        .widget-new-demos-content {
            display: flex;
            align-items: center;
            gap: 0.75rem;
        }

        .widget-new-demos-icon {
            font-size: 2rem;
            line-height: 1;
        }

        .widget-new-demos-text {
            flex: 1;
        }

        .widget-new-demos-text strong {
            display: block;
            color: var(--color-primary-dark);
            font-size: 0.95rem;
            font-weight: 700;
            margin-bottom: 0.25rem;
        }

        .widget-new-demos-text span {
            display: block;
            color: var(--color-text-gray);
            font-size: 0.85rem;
        }

        .widget-close-btn {
            background: none;
            border: none;
            color: var(--color-text-gray);
            font-size: 1.5rem;
            cursor: pointer;
            padding: 0;
            width: 24px;
            height: 24px;
            display: flex;
            align-items: center;
            justify-content: center;
            border-radius: 50%;
            transition: var(--transition);
            line-height: 1;
        }

        .widget-close-btn:hover {
            background: var(--color-bg-light);
            color: var(--color-text-dark);
        }

        .widget-new-demos-actions {
            display: flex;
            gap: 0.5rem;
            margin-top: 0.75rem;
        }

        .widget-demo-btn {
            flex: 1;
            padding: 0.6rem 1rem;
            background: var(--color-primary);
            color: white;
            text-decoration: none;
            border-radius: 8px;
            font-size: 0.85rem;
            font-weight: 600;
            text-align: center;
            transition: var(--transition);
            display: block;
        }

        .widget-demo-btn:hover {
            background: var(--color-primary-dark);
            transform: translateY(-1px);
            box-shadow: var(--shadow-md);
        }

        .widget-demo-btn-secondary {
            background: transparent;
            border: 1.5px solid var(--color-primary);
            color: var(--color-primary);
        }

        .widget-demo-btn-secondary:hover {
            background: var(--color-primary);
            color: white;
        }

        @media (max-width: 768px) {
            .widget-new-demos {
                bottom: 15px;
                right: 15px;
                left: 15px;
                max-width: none;
                padding: 0.9rem;
            }

            .widget-new-demos-icon {
                font-size: 1.5rem;
            }

            .widget-new-demos-text strong {
                font-size: 0.9rem;
            }

            .widget-new-demos-text span {
                font-size: 0.8rem;
            }
        }

        /* Cacher widget si Exit popup active (règle CSS supplémentaire) */
        body.widget-exit-popup-active .widget-new-demos {
            display: none !important;
        }

        .nav-logo {
            font-size: 1.5rem;
            font-weight: 800;
            color: var(--color-primary);
            text-decoration: none;
            transition: var(--transition);
        }

        .nav-logo:hover {
            color: var(--color-primary-dark);
        }

        .nav-logo:focus {
            outline: 2px solid var(--color-primary);
            outline-offset: 4px;
            border-radius: 4px;
        }

        .nav-menu {
            display: flex;
            list-style: none;
            gap: 2rem;
            align-items: center;
        }

        .nav-link {
            color: var(--color-text-dark);
            text-decoration: none;
            font-weight: 600;
            transition: var(--transition);
            position: relative;
        }

        .nav-link::after {
            content: '';
            position: absolute;
            bottom: -5px;
            left: 0;
            width: 0;
            height: 2px;
            background: var(--color-primary);
            transition: var(--transition);
        }

        .nav-link:hover::after {
            width: 100%;
        }

        .nav-link:hover {
            color: var(--color-primary);
        }

        .nav-link:focus {
            outline: 2px solid var(--color-primary);
            outline-offset: 4px;
            border-radius: 4px;
        }

        /* Menu déroulant Démos */
        .nav-dropdown {
            position: relative;
        }

        .nav-dropdown>.nav-link {
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }

        .nav-dropdown>.nav-link::after {
            content: '▼';
            font-size: 0.7rem;
            margin-left: 0.25rem;
            transition: transform 0.3s ease;
        }

        .nav-dropdown:hover>.nav-link::after {
            transform: rotate(180deg);
        }

        .nav-dropdown-menu {
            position: absolute;
            top: 100%;
            left: 0;
            background: var(--color-bg-white);
            box-shadow: var(--shadow-lg);
            border-radius: 12px;
            padding: 0.5rem 0;
            min-width: 250px;
            opacity: 0;
            visibility: hidden;
            transform: translateY(-10px);
            transition: all 0.3s ease;
            list-style: none;
            margin-top: 0.5rem;
            z-index: 1000;
            border: 1px solid var(--color-border);
        }

        .nav-dropdown:hover .nav-dropdown-menu {
            opacity: 1;
            visibility: visible;
            transform: translateY(0);
        }

        .nav-dropdown-menu li {
            margin: 0;
        }

        .nav-dropdown-menu a {
            display: block;
            padding: 0.75rem 1.5rem;
            color: var(--color-text-dark);
            text-decoration: none;
            font-weight: 500;
            transition: var(--transition);
        }

        .nav-dropdown-menu a:hover {
            background: var(--color-bg-light);
            color: var(--color-primary);
            padding-left: 1.75rem;
        }

        .nav-dropdown-menu a:focus {
            outline: 2px solid var(--color-primary);
            outline-offset: -2px;
        }

        .nav-toggle {
            display: none;
            flex-direction: column;
            gap: 5px;
            background: none;
            border: none;
            cursor: pointer;
            padding: 8px;
        }

        .nav-toggle span {
            width: 25px;
            height: 3px;
            background: var(--color-primary);
            transition: var(--transition);
            border-radius: 2px;
        }

        .nav-toggle[aria-expanded="true"] span:nth-child(1) {
            transform: rotate(45deg) translateY(8px);
        }

        .nav-toggle[aria-expanded="true"] span:nth-child(2) {
            opacity: 0;
        }

        .nav-toggle[aria-expanded="true"] span:nth-child(3) {
            transform: rotate(-45deg) translateY(-8px);
        }

        /* ===============================================
           HERO SECTION
           =============================================== */
        .hero {
            background: linear-gradient(135deg, var(--color-primary) 0%, #ffffff 100%);
            padding: 140px 0 80px;
            text-align: center;
            position: relative;
            overflow: hidden;
        }

        .hero::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 120"><path d="M0,0V46.29c47.79,22.2,103.59,32.17,158,28,70.36-5.37,136.33-33.31,206.8-37.5C438.64,32.43,512.34,53.67,583,72.05c69.27,18,138.3,24.88,209.4,13.08,36.15-6,69.85-17.84,104.45-29.34C989.49,25,1113-14.29,1200,52.47V0Z" opacity=".1" fill="%23fff"/></svg>') no-repeat bottom;
            background-size: cover;
            opacity: 0.5;
        }

        .hero-content {
            position: relative;
            z-index: 1;
        }

        .hero h1 {
            font-size: 3rem;
            font-weight: 800;
            color: var(--color-primary-dark);
            margin-bottom: 1rem;
            line-height: 1.2;
        }

        .hero h1 .emoji {
            display: inline-block;
            animation: bounce 2s infinite;
        }

        @keyframes bounce {

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

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

        .hero-subtitle {
            font-size: 1.375rem;
            color: var(--color-text-dark);
            margin-bottom: 2rem;
            max-width: 800px;
            margin-left: auto;
            margin-right: auto;
        }

        .hero-subtitle strong {
            color: var(--color-primary-dark);
        }

        .hero-subtitle em {
            color: #e53e3e;
            font-style: normal;
            font-weight: 600;
        }

        .hero-cta {
            display: flex;
            gap: 1rem;
            justify-content: center;
            flex-wrap: wrap;
            margin-bottom: 1.5rem;
        }

        .hero-cta .btn-secondary {
            background: transparent;
            border: 2px solid var(--color-primary);
            color: var(--color-primary);
        }

        .hero-cta .btn-secondary:hover {
            background: var(--color-primary);
            color: white;
        }


        .hero-features {
            font-size: 1.125rem;
            color: var(--color-text-gray);
            margin-bottom: 1rem;
        }

        .hero-social-proof {
            font-size: 1rem;
            font-weight: 600;
            color: var(--color-primary-dark);
            background: rgba(255, 255, 255, 0.9);
            display: inline-block;
            padding: 12px 24px;
            border-radius: 50px;
            box-shadow: var(--shadow-sm);
        }

        /* ===============================================
           AVANTAGES SECTION
           =============================================== */
        .avantages {
            background: var(--color-bg-white);
        }

        .avantages-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
            gap: 2rem;
            margin-top: 3rem;
        }

        .avantage-card {
            background: var(--color-bg-white);
            border: 2px solid var(--color-border);
            border-radius: var(--border-radius);
            padding: 2rem;
            text-align: center;
            transition: var(--transition);
            box-shadow: var(--shadow-sm);
        }

        .avantage-card:hover {
            transform: translateY(-8px);
            box-shadow: var(--shadow-lg);
            border-color: var(--color-primary);
        }

        .avantage-icon {
            width: 80px;
            height: 80px;
            margin: 0 auto 1.5rem;
            background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 2.5rem;
        }

        .avantage-title {
            font-size: 1.5rem;
            font-weight: 700;
            color: var(--color-primary-dark);
            margin-bottom: 1rem;
        }

        .avantage-description {
            color: var(--color-text-gray);
            font-size: 1.125rem;
        }

        /* ===============================================
           DÉMOS SECTION
           =============================================== */
        .demos-section {
            background: linear-gradient(180deg, var(--color-bg-white) 0%, var(--color-bg-light) 100%);
            padding: 80px 0;
        }

        .demos-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
            gap: 2.5rem;
            margin-top: 3rem;
        }

        .demo-card-home {
            background: var(--color-bg-white);
            border: 2px solid var(--color-border);
            border-radius: 24px;
            padding: 0;
            transition: var(--transition);
            box-shadow: var(--shadow-sm);
            overflow: hidden;
            display: flex;
            flex-direction: column;
            position: relative;
            cursor: pointer;
            text-decoration: none;
            color: inherit;
        }

        .demo-card-home:hover {
            transform: translateY(-8px);
            box-shadow: var(--shadow-lg);
            border-color: var(--color-primary);
        }

        /* Lien qui entoure toute la carte */
        .demo-card-link {
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            z-index: 1;
            text-decoration: none;
        }

        /* Bouton reste cliquable aussi (z-index supérieur) */
        .demo-card-btn {
            position: relative;
            z-index: 2;
        }

        .demo-card-image {
            width: 100%;
            height: 280px;
            position: relative;
            overflow: hidden;
            background: var(--color-bg-light);
        }

        .demo-card-image img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
            transition: transform 0.5s ease;
        }

        .demo-card-home:hover .demo-card-image img {
            transform: scale(1.05);
        }

        .demo-card-image-placeholder {
            width: 100%;
            height: 100%;
            position: relative;
            overflow: hidden;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        /* Style pour images démos - Centre Formation */
        .demo-preview-centre {
            position: relative;
        }

        /* Overlay léger pour meilleure lisibilité des badges */
        .demo-preview-centre::after {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: linear-gradient(to bottom, rgba(0, 0, 0, 0.1) 0%, transparent 30%, transparent 70%, rgba(0, 0, 0, 0.15) 100%);
            pointer-events: none;
            z-index: 1;
        }

        /* Badge NOUVEAU - Urgence */
        .demo-badge-new {
            position: absolute;
            top: 1rem;
            right: 1rem;
            background: linear-gradient(135deg, #ff0000 0%, #ff6b00 100%);
            color: white;
            padding: 0.5rem 1rem;
            border-radius: 50px;
            font-size: 0.85rem;
            font-weight: 800;
            box-shadow: 0 4px 15px rgba(255, 0, 0, 0.4);
            z-index: 10;
            animation: pulse-strong 1.5s ease-in-out infinite;
            text-transform: uppercase;
            letter-spacing: 1px;
            pointer-events: none;
        }

        /* Badge "Voir en direct" */
        .demo-preview-badge {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            background: rgba(255, 255, 255, 0.95);
            backdrop-filter: blur(10px);
            padding: 0.6rem 1.2rem;
            border-radius: 50px;
            font-size: 0.9rem;
            font-weight: 700;
            color: var(--color-primary-dark);
            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
            z-index: 10;
            pointer-events: none;
            border: 2px solid rgba(255, 255, 255, 0.8);
            white-space: nowrap;
        }

        @keyframes pulse {

            0%,
            100% {
                transform: scale(1);
                opacity: 1;
            }

            50% {
                transform: scale(1.05);
                opacity: 0.9;
            }
        }

        @keyframes pulse-strong {

            0%,
            100% {
                transform: scale(1);
                box-shadow: 0 4px 15px rgba(255, 0, 0, 0.4);
            }

            50% {
                transform: scale(1.1);
                box-shadow: 0 6px 20px rgba(255, 0, 0, 0.6);
            }
        }

        /* Style pour images démos - Formateur Indépendant */
        .demo-preview-formateur {
            position: relative;
        }

        /* Overlay léger pour meilleure lisibilité des badges */
        .demo-preview-formateur::after {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: linear-gradient(to bottom, rgba(0, 0, 0, 0.1) 0%, transparent 30%, transparent 70%, rgba(0, 0, 0, 0.15) 100%);
            pointer-events: none;
            z-index: 1;
        }

        /* Compteur Social Proof */
        .demo-viewers-count {
            position: absolute;
            bottom: 1rem;
            left: 50%;
            transform: translateX(-50%);
            background: rgba(0, 0, 0, 0.7);
            backdrop-filter: blur(10px);
            color: white;
            padding: 0.4rem 1rem;
            border-radius: 50px;
            font-size: 0.8rem;
            font-weight: 600;
            z-index: 10;
            white-space: nowrap;
            pointer-events: none;
        }

        .demo-viewers-count .count-number {
            color: #ffd700;
            font-weight: 800;
            animation: blink 2s ease-in-out infinite;
        }

        @keyframes blink {

            0%,
            100% {
                opacity: 1;
            }

            50% {
                opacity: 0.7;
            }
        }

        /* Animations */
        @keyframes shimmer {
            0% {
                opacity: 0.8;
            }

            50% {
                opacity: 1;
            }

            100% {
                opacity: 0.8;
            }
        }

        @keyframes float {

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

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

        /* Effet hover - maintenant géré directement sur l'image */

        /* Indication visuelle que toute la carte est cliquable */
        .demo-card-home::after {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            border-radius: 24px;
            pointer-events: none;
            transition: var(--transition);
        }

        .demo-card-home:hover::after {
            box-shadow: inset 0 0 0 2px var(--color-primary);
        }

        .demo-card-content {
            padding: 2rem;
            flex: 1;
            display: flex;
            flex-direction: column;
        }

        .demo-card-home h3 {
            font-size: 1.75rem;
            font-weight: 700;
            color: var(--color-primary-dark);
            margin-bottom: 1rem;
            line-height: 1.3;
        }

        .demo-card-home p {
            color: var(--color-text-gray);
            font-size: 1.125rem;
            margin-bottom: 1.5rem;
            flex: 1;
        }

        .demo-card-features {
            list-style: none;
            margin-bottom: 1.5rem;
            padding: 0;
        }

        .demo-card-features li {
            padding: 0.5rem 0;
            color: var(--color-text-gray);
            font-size: 1rem;
        }

        .demo-card-features li::before {
            content: "✅ ";
            margin-right: 0.5rem;
        }

        .demo-card-btn {
            display: inline-block;
            padding: 14px 28px;
            background: var(--color-primary);
            color: white;
            text-decoration: none;
            border-radius: 50px;
            font-weight: 600;
            font-size: 1.125rem;
            text-align: center;
            transition: var(--transition);
            box-shadow: var(--shadow-md);
            margin-top: auto;
        }

        .demo-card-btn:hover {
            transform: translateY(-2px);
            box-shadow: var(--shadow-lg);
            background: var(--color-primary-dark);
        }

        .demos-cta-link {
            text-align: center;
            margin-top: 2rem;
        }

        .demos-cta-link a {
            color: var(--color-primary);
            text-decoration: none;
            font-weight: 600;
            font-size: 1.125rem;
            transition: var(--transition);
        }

        .demos-cta-link a:hover {
            text-decoration: underline;
            color: var(--color-primary-dark);
        }

        @media (max-width: 768px) {
            .demos-grid {
                grid-template-columns: 1fr;
                gap: 2rem;
            }

            .demo-card-image {
                height: 220px;
            }

            .demo-preview-badge {
                font-size: 0.75rem;
                padding: 0.4rem 0.9rem;
            }

            .demo-badge-new {
                top: 0.5rem;
                right: 0.5rem;
                font-size: 0.75rem;
                padding: 0.4rem 0.8rem;
            }

            .demo-viewers-count {
                bottom: 0.5rem;
                font-size: 0.7rem;
                padding: 0.3rem 0.8rem;
            }
        }

        /* ===============================================
           CALCULATEUR SECTION
           =============================================== */
        .calculateur {
            background: linear-gradient(180deg, var(--color-bg-white) 0%, var(--color-bg-light) 100%);
        }

        .calculateur-intro {
            text-align: center;
            margin-bottom: 2rem;
        }

        .calculateur-promo {
            font-size: 1.125rem;
            color: var(--color-text-gray);
            margin-bottom: 2rem;
            font-weight: 600;
        }

        .calculateur-container {
            background: var(--color-bg-white);
            border-radius: var(--border-radius);
            padding: 3rem;
            box-shadow: var(--shadow-lg);
            max-width: 800px;
            margin: 0 auto 2rem;
            border: 3px solid var(--color-primary);
        }

        /* Desktop : Utiliser toute la largeur avec padding réduit */
        @media (min-width: 769px) {
            .calculateur-container {
                max-width: 100%;
                padding: 2rem 2.5rem;
                margin: 0 auto 2rem;
            }
        }

        /* Très grands écrans : Optimisation finale */
        @media (min-width: 1400px) {
            .calculateur-container {
                padding: 2rem 3rem;
            }
        }

        .calculateur-placeholder {
            text-align: center;
            padding: 3rem 2rem;
            color: var(--color-text-gray);
            font-size: 1.125rem;
        }

        .calculateur-fallback {
            background: var(--color-error);
            border-radius: var(--border-radius);
            padding: 2rem;
            text-align: center;
            max-width: 600px;
            margin: 2rem auto;
        }

        .calculateur-fallback p {
            font-size: 1.125rem;
            color: var(--color-text-dark);
            font-weight: 600;
            margin-bottom: 1rem;
        }

        .calculateur-reassurance {
            display: flex;
            justify-content: center;
            gap: 2rem;
            flex-wrap: wrap;
            font-size: 1rem;
            color: var(--color-text-gray);
            margin-top: 2rem;
        }

        .calculateur-reassurance span {
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }

        /* Generic styles for user's calculator/form */
        .calculateur-container .form-field,
        .calculateur-container input,
        .calculateur-container select,
        .calculateur-container textarea {
            width: 100%;
            padding: 14px 18px;
            border: 2px solid var(--color-border);
            border-radius: 8px;
            font-size: 1rem;
            font-family: var(--font-family);
            transition: var(--transition);
            margin-bottom: 1rem;
        }

        .calculateur-container .form-field:focus,
        .calculateur-container input:focus,
        .calculateur-container select:focus,
        .calculateur-container textarea:focus {
            outline: none;
            border-color: var(--color-primary);
            box-shadow: 0 0 0 3px rgba(0, 168, 168, 0.1);
        }

        .calculateur-container .submit-button,
        .calculateur-container button[type="submit"] {
            background: var(--color-primary);
            color: white;
            padding: 16px 32px;
            border: none;
            border-radius: 50px;
            font-size: 1.125rem;
            font-weight: 600;
            cursor: pointer;
            transition: var(--transition);
            width: 100%;
            font-family: var(--font-family);
            box-shadow: var(--shadow-md);
        }

        .calculateur-container .submit-button:hover,
        .calculateur-container button[type="submit"]:hover {
            background: var(--color-primary-dark);
            transform: translateY(-2px);
            box-shadow: var(--shadow-lg);
        }

        /* ===============================================
           À PROPOS SECTION
           =============================================== */
        .apropos {
            background: var(--color-bg-white);
        }

        .apropos-content {
            display: flex;
            align-items: center;
            gap: 3rem;
            max-width: 900px;
            margin: 0 auto;
        }

        .apropos-avatar {
            width: 180px;
            height: 180px;
            border-radius: 50%;
            background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 4rem;
            color: white;
            flex-shrink: 0;
            box-shadow: var(--shadow-lg);
        }

        .apropos-text {
            flex: 1;
        }

        .apropos-text p {
            font-size: 1.125rem;
            color: var(--color-text-gray);
            margin-bottom: 1.5rem;
            line-height: 1.8;
        }

        .apropos-text strong {
            color: var(--color-primary-dark);
            font-weight: 700;
        }

        .certifications {
            margin: 2rem 0;
            padding: 1.5rem;
            background: var(--color-bg-light);
            border-radius: 12px;
            border-left: 4px solid var(--color-primary);
        }

        .certifications h3 {
            font-size: 1.2rem;
            color: var(--color-primary-dark);
            margin-bottom: 1rem;
        }

        .cert-list {
            list-style: none;
            padding: 0;
            margin: 0;
        }

        .cert-list li {
            padding: 0.5rem 0;
            font-size: 1rem;
            color: var(--color-text-gray);
            border-bottom: 1px solid rgba(0, 168, 168, 0.1);
        }

        .cert-list li:last-child {
            border-bottom: none;
        }

        .trust-badges {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
            gap: 1rem;
            margin: 2rem 0;
        }

        .trust-item {
            text-align: center;
            padding: 1rem;
            background: var(--color-bg-white);
            border: 2px solid var(--color-border);
            border-radius: 10px;
            transition: all 0.3s ease;
        }

        .trust-item:hover {
            transform: translateY(-3px);
            border-color: var(--color-primary);
            box-shadow: 0 5px 15px rgba(0, 168, 168, 0.1);
        }

        .trust-icon {
            font-size: 2rem;
            display: block;
            margin-bottom: 0.5rem;
        }

        .trust-item p {
            margin: 0;
            font-size: 0.9rem;
            font-weight: 600;
            color: var(--color-text-dark);
        }

        /* ===============================================
           TÉMOIGNAGES SECTION
           =============================================== */
        .temoignages {
            background: var(--color-bg-light);
        }


        .temoignages-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
            gap: 2rem;
            margin-top: 3rem;
        }

        .temoignage-card {
            background: var(--color-bg-white);
            border-radius: var(--border-radius);
            padding: 2rem;
            box-shadow: var(--shadow-sm);
            transition: var(--transition);
            position: relative;
        }

        .temoignage-card::before {
            content: '"';
            position: absolute;
            top: -10px;
            left: 20px;
            font-size: 5rem;
            color: var(--color-primary);
            opacity: 0.2;
            font-family: Georgia, serif;
        }

        .temoignage-card:hover {
            transform: translateY(-5px);
            box-shadow: var(--shadow-md);
        }

        .temoignage-text {
            font-size: 1.125rem;
            color: var(--color-text-dark);
            font-style: italic;
            margin-bottom: 1rem;
            line-height: 1.7;
        }

        .temoignage-author {
            font-weight: 600;
            color: var(--color-primary-dark);
            text-align: right;
        }

        /* ===============================================
           FAQ SECTION
           =============================================== */
        .faq {
            background: var(--color-bg-white);
        }

        .guarantees-section {
            margin-bottom: 3rem;
            text-align: center;
        }

        .guarantees-section h3 {
            font-size: 1.8rem;
            color: var(--color-primary-dark);
            margin-bottom: 2rem;
        }

        .guarantees-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
            gap: 2rem;
            margin-bottom: 2rem;
        }

        .guarantee-item {
            background: var(--color-bg-white);
            padding: 2rem 1.5rem;
            border-radius: 12px;
            border: 2px solid var(--color-border);
            transition: all 0.3s ease;
            text-align: center;
        }

        .guarantee-item:hover {
            transform: translateY(-5px);
            border-color: var(--color-primary);
            box-shadow: 0 10px 25px rgba(0, 168, 168, 0.15);
        }

        .guarantee-icon {
            font-size: 3rem;
            display: block;
            margin-bottom: 1rem;
        }

        .guarantee-item h4 {
            font-size: 1.2rem;
            color: var(--color-primary-dark);
            margin-bottom: 0.5rem;
            font-weight: 700;
        }

        .guarantee-item p {
            font-size: 1rem;
            color: var(--color-text-gray);
            margin: 0;
            line-height: 1.6;
        }

        .faq-container {
            max-width: 800px;
            margin: 0 auto;
        }

        .faq-item {
            background: var(--color-bg-light);
            border-radius: var(--border-radius);
            margin-bottom: 1rem;
            overflow: hidden;
            box-shadow: var(--shadow-sm);
            transition: var(--transition);
        }

        .faq-item:hover {
            box-shadow: var(--shadow-md);
        }

        .faq-question {
            width: 100%;
            padding: 1.5rem;
            background: none;
            border: none;
            text-align: left;
            font-size: 1.125rem;
            font-weight: 600;
            color: var(--color-primary-dark);
            cursor: pointer;
            display: flex;
            justify-content: space-between;
            align-items: center;
            font-family: var(--font-family);
            transition: var(--transition);
        }

        .faq-question:hover {
            color: var(--color-primary);
        }

        .faq-question:focus {
            outline: 2px solid var(--color-primary);
            outline-offset: -2px;
        }

        .faq-icon {
            font-size: 1.5rem;
            transition: var(--transition);
            color: var(--color-primary);
        }

        .faq-item.active .faq-icon {
            transform: rotate(180deg);
        }

        .faq-answer {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.3s ease;
        }

        .faq-answer-content {
            padding: 0 1.5rem 1.5rem;
            color: var(--color-text-gray);
            font-size: 1.0625rem;
            line-height: 1.7;
        }

        .faq-item.active .faq-answer {
            max-height: 500px;
        }

        /* ===============================================
           FOOTER
           =============================================== */
        .footer {
            background: var(--color-primary);
            color: white;
            text-align: center;
            padding: 4rem 0 2rem;
        }

        .footer-content {
            margin-bottom: 2rem;
        }

        .footer-title {
            font-size: 2rem;
            font-weight: 700;
            margin-bottom: 1.5rem;
        }

        .footer-cta {
            margin-bottom: 2rem;
        }

        .footer .btn-primary {
            background: white;
            color: var(--color-primary);
        }

        .footer .btn-primary:hover {
            background: var(--color-bg-light);
            color: var(--color-primary-dark);
        }

        .footer-social {
            margin-bottom: 2rem;
        }

        .footer-social a {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 50px;
            height: 50px;
            background: rgba(255, 255, 255, 0.2);
            border-radius: 50%;
            color: white;
            font-size: 1.5rem;
            text-decoration: none;
            transition: var(--transition);
            margin: 0 0.5rem;
        }

        .footer-social a:hover {
            background: white;
            color: var(--color-primary);
            transform: translateY(-3px);
        }

        .footer-social a:focus {
            outline: 2px solid white;
            outline-offset: 4px;
        }

        .footer-info {
            font-size: 1rem;
            opacity: 0.9;
            line-height: 1.8;
        }

        .eligibility-info {
            background: rgba(255, 255, 255, 0.1);
            padding: 1.5rem;
            border-radius: 10px;
            margin: 1.5rem 0;
            border-left: 4px solid var(--color-primary);
        }

        .eligibility-info h4 {
            font-size: 1.1rem;
            color: white;
            margin-bottom: 1rem;
            font-weight: 600;
        }

        .eligibility-info ul {
            list-style: none;
            padding: 0;
            margin: 0;
        }

        .eligibility-info li {
            padding: 0.3rem 0;
            font-size: 0.9rem;
            color: rgba(255, 255, 255, 0.9);
        }

        /* ===============================================
           RESPONSIVE
           =============================================== */
        @media (max-width: 768px) {
            .nav-toggle {
                display: flex;
            }

            .nav-menu {
                position: fixed;
                top: 70px;
                left: -100%;
                width: 100%;
                background: white;
                flex-direction: column;
                padding: 2rem;
                box-shadow: var(--shadow-md);
                transition: var(--transition);
                align-items: flex-start;
            }

            .nav-menu.active {
                left: 0;
            }

            /* Menu déroulant mobile */
            .nav-dropdown-menu {
                position: static;
                opacity: 1;
                visibility: visible;
                transform: none;
                box-shadow: none;
                border: none;
                margin-top: 0.5rem;
                padding-left: 1rem;
                min-width: auto;
                width: 100%;
            }

            .nav-dropdown>.nav-link::after {
                transform: rotate(0deg);
            }

            .nav-dropdown-menu a {
                padding: 0.5rem 0;
                font-size: 0.95rem;
            }

            .hero h1 {
                font-size: 2rem;
            }

            .hero-subtitle {
                font-size: 1.125rem;
            }

            .section-title {
                font-size: 2rem;
            }

            .section {
                padding: 60px 0;
            }

            .apropos-content {
                flex-direction: column;
                text-align: center;
            }

            .apropos-avatar {
                width: 150px;
                height: 150px;
                font-size: 3rem;
            }

            .calculateur-container {
                padding: 0;
                margin: 0;
            }

            /* Masquer les stats sur mobile pour plus d'espace */
            .calculateur-stats {
                display: none;
            }

            /* Masquer le badge promo sur mobile */
            .calculateur-badge {
                display: none;
            }

            /* Masquer le texte promo sur mobile */
            .calculateur-promo {
                display: none;
            }

            /* Simplifier l'intro - réduire padding et masquer sous-titre */
            .calculateur-intro {
                padding: 1rem 1rem 1rem;
            }

            .calculateur-intro .section-subtitle {
                display: none;
            }

            /* Réduire la taille du titre */
            .calculateur-intro .section-title {
                font-size: 1.5rem;
                margin-bottom: 0.5rem;
            }

            /* Réduire drastiquement le padding de la section calculateur sur mobile */
            .calculateur {
                padding: 20px 0 10px;
            }

            /* Réduire le margin-bottom de l'intro */
            .calculateur-intro {
                margin-bottom: 0.5rem;
            }

            .calculateur-reassurance {
                gap: 1rem;
                display: none;
                /* Masquer sur mobile pour plus d'espace */
            }

            .avantages-grid,
            .temoignages-grid {
                grid-template-columns: 1fr;
            }

            .btn {
                padding: 14px 28px;
                font-size: 1rem;
            }
        }

        @media (min-width: 769px) and (max-width: 1024px) {
            .hero h1 {
                font-size: 2.5rem;
            }

            .avantages-grid,
            .temoignages-grid {
                grid-template-columns: repeat(2, 1fr);
            }
        }

        /* ===============================================
           ACCESSIBILITY
           =============================================== */
        .sr-only {
            position: absolute;
            width: 1px;
            height: 1px;
            padding: 0;
            margin: -1px;
            overflow: hidden;
            clip: rect(0, 0, 0, 0);
            white-space: nowrap;
            border-width: 0;
        }

        :focus-visible {
            outline: 3px solid var(--color-primary);
            outline-offset: 2px;
        }

        /* ===============================================
           ANIMATIONS
           =============================================== */
        @keyframes fadeInUp {
            from {
                opacity: 0;
                transform: translateY(30px);
            }

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

        .fade-in-up {
            animation: fadeInUp 0.6s ease-out;
        }

        /* ===============================================
           URGENCY COUNTER
           =============================================== */
        .urgency-badge {
            display: inline-block;
            background: #fed7d7;
            padding: 12px 24px;
            border-radius: 50px;
            margin-top: 1rem;
            font-weight: 600;
            color: #c53030;
            font-size: 1rem;
            box-shadow: var(--shadow-sm);
            animation: urgencyPulse 2s infinite;
        }

        @keyframes urgencyPulse {

            0%,
            100% {
                transform: scale(1);
            }

            50% {
                transform: scale(1.05);
            }
        }

        /* ===============================================
           SOCIAL PROOF POPUP
           =============================================== */
        .social-proof-popup {
            position: fixed;
            bottom: 20px;
            left: 20px;
            background: white;
            padding: 1rem 1.5rem;
            border-radius: 8px;
            box-shadow: var(--shadow-lg);
            z-index: 999;
            display: none;
            max-width: 320px;
            animation: slideInLeft 0.5s ease-out;
        }

        @keyframes slideInLeft {
            from {
                transform: translateX(-100%);
                opacity: 0;
            }

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

        .social-proof-popup p {
            margin: 0;
            font-size: 0.9rem;
            line-height: 1.5;
        }

        .social-proof-popup strong {
            color: var(--color-primary-dark);
        }

        /* ===============================================
           BONUS BOX
           =============================================== */
        .bonus-box {
            background: var(--color-bg-light);
            border-left: 4px solid var(--color-primary);
            padding: 1.5rem;
            margin-top: 2rem;
            border-radius: 8px;
        }

        .bonus-box h4 {
            color: var(--color-primary-dark);
            margin-bottom: 0.5rem;
            font-size: 1.125rem;
        }

        .bonus-box p {
            margin: 0;
            color: var(--color-text-gray);
        }

        /* Responsive adjustments */
        @media (max-width: 768px) {
            .social-proof-popup {
                left: 10px;
                right: 10px;
                max-width: none;
                bottom: 10px;
            }

            .urgency-badge {
                font-size: 0.9rem;
                padding: 10px 20px;
            }
        }

        /* ===============================================
           SYSTÈME EXPERT KAP NUMÉRIK - STYLES
           =============================================== */

        /* Barre de progression */
        .kap-progress {
            margin: 1.5rem 0;
            padding: 0 1rem;
        }

        .kap-progress-bar {
            width: 100%;
            height: 8px;
            background: var(--color-bg-light);
            border-radius: 4px;
            overflow: hidden;
            margin-bottom: 0.5rem;
        }

        .kap-progress-fill {
            height: 100%;
            background: linear-gradient(90deg, var(--color-primary), var(--color-primary-dark));
            border-radius: 4px;
            transition: width 0.5s ease;
            width: 0%;
        }

        .kap-progress-text {
            text-align: center;
            font-size: 0.9rem;
            color: var(--color-text-muted);
            font-weight: 500;
        }

        /* Badge d'urgence */
        .urgency-badge {
            background: linear-gradient(135deg, #ff6b6b, #ee5a24);
            color: white;
            padding: 0.8rem 1.5rem;
            border-radius: 25px;
            text-align: center;
            font-weight: 600;
            font-size: 0.9rem;
            margin: 1rem 0;
            box-shadow: 0 4px 15px rgba(255, 107, 107, 0.3);
        }

        @keyframes pulse {
            0% {
                transform: scale(1);
            }

            50% {
                transform: scale(1.05);
            }

            100% {
                transform: scale(1);
            }
        }

        /* Social proof amélioré */
        .hero-social-proof {
            margin: 1.5rem 0;
        }

        .social-proof-stats {
            text-align: center;
            font-size: 1.1rem;
            margin-bottom: 0.5rem;
        }

        .social-proof-testimonial {
            text-align: center;
            font-style: italic;
            color: var(--color-text-muted);
            font-size: 0.9rem;
            background: var(--color-bg-light);
            padding: 0.8rem;
            border-radius: 8px;
            border-left: 4px solid var(--color-primary);
        }

        /* Highlight du montant */
        .hero-highlight {
            color: var(--color-primary);
            font-weight: 700;
            text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
        }

        /* Styles pour la validation en temps réel */
        #kap-user-input.valid {
            border-color: #10B981;
            background: #F0FDF4;
            box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1);
        }

        #kap-user-input.formatting {
            border-color: #3B82F6;
            background: #EFF6FF;
            animation: pulse-formatting 1s ease-in-out;
        }

        @keyframes pulse-formatting {

            0%,
            100% {
                transform: scale(1);
            }

            50% {
                transform: scale(1.02);
            }
        }

        /* États désactivés pour input principal - DÉSACTIVÉ EN PERMANENCE */
        #kap-user-input,
        #kap-user-input:disabled,
        #kap-user-input.kap-input-disabled {
            opacity: 0.5;
            background-color: #f5f5f5 !important;
            cursor: not-allowed !important;
            border-color: #d1d1d1 !important;
            pointer-events: none !important;
        }

        /* JAMAIS de réactivation */

        .kap-send-btn,
        .kap-send-btn:disabled,
        .kap-send-btn.kap-send-disabled {
            opacity: 0.5 !important;
            background-color: #d1d1d1 !important;
            cursor: not-allowed !important;
            pointer-events: none !important;
        }

        /* JAMAIS de réactivation */

        /* Message contextuel dans l'input désactivé */
        .kap-input-container::after {
            content: attr(data-context-message);
            position: absolute;
            bottom: -25px;
            left: 50%;
            transform: translateX(-50%);
            font-size: 0.875rem;
            color: #6b7280;
            font-style: italic;
            white-space: nowrap;
            opacity: 0;
            transition: opacity 0.3s ease;
        }

        .kap-input-container.has-context::after {
            opacity: 1;
        }

        /* Styles pour la zone de saisie contextuelle */
        .kap-contextual-input {
            margin: 1rem 0;
            padding: 1rem;
            background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
            border-radius: 12px;
            border: 2px solid var(--color-primary);
            box-shadow: 0 4px 12px rgba(0, 168, 168, 0.1);
            animation: slideInFromTop 0.3s ease-out;
        }

        .kap-contextual-wrapper {
            display: flex;
            gap: 0.5rem;
            align-items: center;
        }

        .kap-contextual-field {
            flex: 1;
            padding: 12px 16px;
            border: 2px solid var(--color-border);
            border-radius: 8px;
            font-size: 1rem;
            transition: all 0.3s ease;
            background: white;
        }

        .kap-contextual-field:focus {
            outline: none;
            border-color: var(--color-primary);
            box-shadow: 0 0 0 3px rgba(0, 168, 168, 0.1);
        }

        .kap-contextual-field.valid {
            border-color: #10B981;
            background: #F0FDF4;
        }

        .kap-contextual-field.invalid {
            border-color: #EF4444;
            background: #FEF2F2;
        }

        .kap-contextual-btn {
            padding: 12px 20px;
            background: var(--color-primary);
            color: white;
            border: none;
            border-radius: 8px;
            font-size: 1rem;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.3s ease;
        }

        .kap-contextual-btn:hover {
            background: var(--color-primary-dark);
            transform: translateY(-1px);
        }

        @keyframes slideInFromTop {
            0% {
                opacity: 0;
                transform: translateY(-20px);
            }

            100% {
                opacity: 1;
                transform: translateY(0);
            }
        }

        /* Styles pour le bouton WhatsApp */
        .kap-whatsapp-container {
            margin: 1.5rem 0;
        }

        .kap-whatsapp-card {
            background: linear-gradient(135deg, #25D366 0%, #128C7E 100%);
            border-radius: 16px;
            padding: 1.5rem;
            color: white;
            box-shadow: 0 8px 24px rgba(37, 211, 102, 0.3);
            animation: slideInFromTop 0.5s ease-out;
        }

        .kap-whatsapp-header {
            display: flex;
            align-items: center;
            gap: 1rem;
            margin-bottom: 1rem;
        }

        .kap-whatsapp-avatar {
            width: 50px;
            height: 50px;
            background: rgba(255, 255, 255, 0.2);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.5rem;
        }

        .kap-whatsapp-info h4 {
            margin: 0;
            font-size: 1.2rem;
            font-weight: 600;
        }

        .kap-whatsapp-info p {
            margin: 0;
            opacity: 0.9;
            font-size: 0.9rem;
        }

        .kap-whatsapp-contact {
            margin-bottom: 1rem;
        }

        .kap-whatsapp-contact p {
            margin: 0.5rem 0;
            font-size: 1rem;
        }

        .kap-whatsapp-btn {
            display: inline-block;
            background: white;
            color: #25D366;
            padding: 12px 24px;
            border-radius: 25px;
            text-decoration: none;
            font-weight: 600;
            font-size: 1rem;
            text-align: center;
            transition: all 0.3s ease;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
        }

        .kap-whatsapp-btn:hover {
            transform: translateY(-2px);
            box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15);
            color: #128C7E;
        }


        /* Styles pour les options de reprise */
        .kap-resume-options {
            margin: 1rem 0;
            padding: 1rem;
            background: var(--color-bg-light);
            border-radius: var(--border-radius);
            border: 2px solid var(--color-primary);
        }

        .kap-resume-buttons {
            display: flex;
            gap: 1rem;
            flex-wrap: wrap;
        }

        .kap-resume-btn {
            flex: 1;
            min-width: 200px;
            padding: 1rem 1.5rem;
            border: 2px solid var(--color-primary);
            border-radius: var(--border-radius);
            background: var(--color-bg-white);
            color: var(--color-primary);
            font-weight: 600;
            cursor: pointer;
            transition: var(--transition);
        }

        .kap-resume-btn:hover {
            background: var(--color-primary);
            color: white;
            transform: translateY(-2px);
            box-shadow: var(--shadow-md);
        }

        .kap-resume-yes {
            border-color: #10B981;
            color: #10B981;
        }

        .kap-resume-yes:hover {
            background: #10B981;
        }

        .kap-resume-no {
            border-color: #6B7280;
            color: #6B7280;
        }

        .kap-resume-no:hover {
            background: #6B7280;
        }

        /* Amélioration des micro-interactions */
        .kap-option-btn:hover {
            transform: translateY(-2px);
            box-shadow: 0 6px 12px rgba(0, 168, 168, 0.25);
        }

        .kap-option-btn:active {
            transform: translateY(-1px) scale(0.98);
            box-shadow: 0 3px 6px rgba(0, 168, 168, 0.3);
        }

        .kap-send-btn:hover {
            transform: translateY(-1px);
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
        }

        .kap-send-btn:active {
            transform: scale(0.98);
        }

        /* Animation pour les messages de feedback */
        .kap-message.feedback {
            animation: slideInFromRight 0.5s ease-out;
        }

        @keyframes slideInFromRight {
            from {
                transform: translateX(20px);
                opacity: 0;
            }

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

        /* Amélioration de l'accessibilité */
        .kap-option-btn:focus,
        .kap-send-btn:focus,
        .kap-resume-btn:focus {
            outline: 3px solid var(--color-primary);
            outline-offset: 3px;
            box-shadow: 0 0 0 3px rgba(0, 168, 168, 0.2);
        }

        /* Amélioration pour les utilisateurs avec des difficultés motrices */
        @media (prefers-reduced-motion: reduce) {
            .kap-option-btn {
                transition: none;
            }

            .kap-option-btn:hover {
                transform: none;
            }
        }

        /* Styles pour les champs de saisie */
        .kap-input-container {
            margin: 1.5rem 0;
            padding: 1rem;
            background: var(--color-bg-white);
            border-radius: 12px;
            border: 2px solid var(--color-primary);
            box-shadow: 0 4px 12px rgba(0, 168, 168, 0.15);
            position: relative;
            z-index: 10;
        }

        .kap-input-wrapper {
            display: flex;
            gap: 0.5rem;
            align-items: center;
        }

        .kap-input {
            flex: 1;
            padding: 12px 16px;
            border: 2px solid var(--color-border);
            border-radius: 8px;
            font-size: 1rem;
            transition: all 0.3s ease;
            background: white;
        }

        .kap-input:focus {
            outline: none;
            border-color: var(--color-primary);
            box-shadow: 0 0 0 3px rgba(0, 168, 168, 0.1);
        }

        /* Indicateur de continuation */
        .kap-continue-indicator {
            margin-top: 1rem;
            padding: 0.5rem 1rem;
            background: rgba(0, 168, 168, 0.1);
            border-radius: 8px;
            font-size: 0.9rem;
            color: var(--color-primary-dark);
            text-align: center;
            font-style: italic;
        }

        #kap-user-input:focus {
            outline: 3px solid var(--color-primary);
            outline-offset: 2px;
        }

        /* Contraste amélioré pour l'accessibilité */
        .kap-message-content {
            color: #1F2937;
            line-height: 1.6;
        }

        /* Effet de frappe pour les messages */
        .typing-message {
            position: relative;
        }

        .typing-message::after {
            content: '|';
            animation: blink 1s infinite;
            color: var(--color-primary);
            font-weight: bold;
        }

        @keyframes blink {

            0%,
            50% {
                opacity: 1;
            }

            51%,
            100% {
                opacity: 0;
            }
        }

        .kap-message.bot .kap-message-content {
            background: #F8FAFC;
            border: 1px solid #E2E8F0;
        }

        .kap-message.user .kap-message-content {
            background: var(--color-primary);
            color: white;
        }

        .kap-expert-container {
            background: var(--color-bg-white);
            border-radius: var(--border-radius);
            padding: 3rem;
            box-shadow: var(--shadow-lg);
            max-width: 800px;
            margin: 0 auto;
            border: 3px solid var(--color-primary);
            position: relative;
            overflow: hidden;
        }

        /* Header du système expert */
        .kap-expert-header {
            display: flex;
            align-items: center;
            gap: 1.5rem;
            margin-bottom: 2rem;
            padding-bottom: 1.5rem;
            border-bottom: 2px solid var(--color-border);
        }

        .kap-expert-avatar {
            width: 60px;
            height: 60px;
            background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 2rem;
            box-shadow: var(--shadow-md);
        }

        .kap-expert-title h3 {
            color: var(--color-primary-dark);
            font-size: 1.5rem;
            font-weight: 700;
            margin-bottom: 0.5rem;
        }

        .kap-expert-title p {
            color: var(--color-text-gray);
            font-size: 1rem;
            margin: 0;
        }

        /* Interface de chat */
        .kap-expert-chat {
            min-height: 400px;
            position: relative;
            background: #ece5dd;
        }

        .kap-chat-messages {
            max-height: 65vh;
            overflow-y: auto;
            padding: 1rem;
            margin-bottom: 1.5rem;
            background: #ece5dd;
            background-image:
                url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><defs><pattern id="grid" width="100" height="100" patternUnits="userSpaceOnUse"><circle cx="50" cy="50" r="1" fill="rgba(200,200,200,0.1)"/></pattern></defs><rect width="100%" height="100%" fill="url(%23grid)"/></svg>');
            -webkit-overflow-scrolling: touch;
            overscroll-behavior: contain;
        }

        .kap-message {
            margin-bottom: 1.5rem;
            animation: slideInFromBottom 0.3s ease-out;
        }

        .kap-message.bot {
            display: flex;
            align-items: flex-start;
            gap: 1rem;
        }

        .kap-message.user {
            display: flex;
            justify-content: flex-end;
        }

        .kap-message-content {
            max-width: 70%;
            padding: 1rem 1.5rem;
            border-radius: 20px;
            font-size: 1rem;
            line-height: 1.6;
            position: relative;
        }

        /* WhatsApp Style Bulles Bot */
        .kap-message.bot .kap-message-content {
            background: #e5ddd5;
            border: none;
            border-radius: 7.5px 7.5px 7.5px 0;
            color: var(--color-text-dark);
        }

        /* Queue WhatsApp pour bot */
        .kap-message.bot .kap-message-content::before {
            content: '';
            position: absolute;
            left: -8px;
            bottom: 0;
            width: 0;
            height: 0;
            border-style: solid;
            border-width: 0 8px 8px 0;
            border-color: transparent #e5ddd5 transparent transparent;
        }

        /* WhatsApp Style Bulles User */
        .kap-message.user .kap-message-content {
            background: #dcf8c6;
            border: none;
            border-radius: 7.5px 7.5px 0 7.5px;
            color: var(--color-text-dark);
        }

        /* Queue WhatsApp pour user */
        .kap-message.user .kap-message-content::after {
            content: '';
            position: absolute;
            right: -8px;
            bottom: 0;
            width: 0;
            height: 0;
            border-style: solid;
            border-width: 0 0 8px 8px;
            border-color: transparent transparent transparent #dcf8c6;
        }

        .kap-message-avatar {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.2rem;
            flex-shrink: 0;
        }

        .kap-message.bot .kap-message-avatar {
            background: var(--color-primary);
            color: white;
        }

        .kap-message.user .kap-message-avatar {
            background: var(--color-text-gray);
            color: white;
        }

        /* Zone de saisie */
        .kap-input-area {
            position: sticky;
            bottom: 0;
            background: var(--color-bg-white);
            padding: 1rem 0;
            border-top: 2px solid var(--color-border);
        }

        .kap-input-container {
            display: flex;
            gap: 1rem;
            align-items: center;
            margin: 1.5rem 0;
            padding: 0.5rem;
            background: #f0f0f0;
            border-radius: 10px;
            border: none;
            box-shadow: none;
            position: relative;
            z-index: 10;
        }

        #kap-user-input {
            flex: 1;
            padding: 12px 20px;
            border: none;
            border-radius: 25px;
            font-size: 1rem;
            font-family: var(--font-family);
            background: white;
            transition: var(--transition);
            box-shadow: none;
        }

        #kap-user-input:focus {
            outline: none;
            box-shadow: 0 0 0 2px rgba(0, 168, 168, 0.2);
        }

        /* Styles pour les inputs email et téléphone */
        .kap-input {
            flex: 1;
            padding: 14px 18px;
            border: 2px solid var(--color-border);
            border-radius: 25px;
            font-size: 1rem;
            font-family: var(--font-family);
            transition: var(--transition);
            background: var(--color-bg-white);
        }

        .kap-input:focus {
            outline: none;
            border-color: var(--color-primary);
            box-shadow: 0 0 0 3px rgba(0, 168, 168, 0.1);
        }

        /* Styles pour les éléments désactivés */
        #kap-user-input:disabled,
        #kap-send-btn:disabled {
            opacity: 0.5;
            cursor: not-allowed;
            pointer-events: none;
        }

        .kap-input-area.disabled {
            opacity: 0.3;
            pointer-events: none;
        }

        /* NOTIFICATIONS DÉSACTIVÉES POUR ÉVITER LES CONFLITS JS */
        .chatbot-notification,
        #chatbot-notification,
        #social-proof {
            display: none !important;
            visibility: hidden !important;
            opacity: 0 !important;
            pointer-events: none !important;
        }

        .kap-send-btn {
            background: var(--color-primary);
            color: white;
            border: none;
            border-radius: 50%;
            width: 44px;
            height: 44px;
            padding: 0;
            font-size: 1rem;
            font-weight: 600;
            cursor: pointer;
            transition: var(--transition);
            font-family: var(--font-family);
            display: flex;
            align-items: center;
            justify-content: center;
            box-shadow: 0 2px 8px rgba(0, 168, 168, 0.3);
            flex-shrink: 0;
        }

        .kap-send-btn:hover {
            background: var(--color-primary-dark);
            transform: scale(1.1);
        }

        /* Zone de démarrage */
        .kap-start-area {
            text-align: center;
            padding: 2rem 0;
        }

        .kap-start-btn {
            font-size: 1.25rem;
            padding: 20px 40px;
            font-weight: 800;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }

        .kap-start-subtitle {
            margin-top: 1rem;
            color: var(--color-text-gray);
            font-size: 0.9rem;
            font-weight: 500;
        }

        /* Contrôles d'affichage */
        .kap-display-controls {
            margin-top: 1rem;
            text-align: center;
        }

        .kap-toggle-btn {
            background: transparent;
            border: 1px solid var(--color-border);
            border-radius: 20px;
            padding: 6px 12px;
            font-size: 0.8rem;
            color: var(--color-text-gray);
            cursor: pointer;
            transition: var(--transition);
        }

        .kap-toggle-btn:hover {
            background: var(--color-bg-light);
            border-color: var(--color-primary);
            color: var(--color-primary);
        }

        /* Badge de preuve sociale */
        .calculateur-badge {
            text-align: center;
            margin-bottom: 1.5rem;
        }

        .badge-text {
            background: linear-gradient(135deg, #ff6b6b, #ff8e8e);
            color: white;
            padding: 8px 20px;
            border-radius: 25px;
            font-size: 0.9rem;
            font-weight: 600;
            box-shadow: 0 4px 15px rgba(255, 107, 107, 0.3);
            animation: bounce 2s infinite;
        }

        @keyframes bounce {

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

            40% {
                transform: translateY(-5px);
            }

            60% {
                transform: translateY(-3px);
            }
        }

        /* Statistiques */
        .calculateur-stats {
            display: flex;
            justify-content: center;
            gap: 2rem;
            margin: 2rem 0;
            flex-wrap: wrap;
        }

        .stat-item {
            text-align: center;
            background: white;
            padding: 1.5rem 1rem;
            border-radius: 12px;
            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
            border: 2px solid var(--color-border);
            min-width: 120px;
            transition: var(--transition);
        }

        .stat-item:hover {
            transform: translateY(-5px);
            box-shadow: 0 8px 30px rgba(0, 0, 0, 0.15);
        }

        .stat-number {
            display: block;
            font-size: 2rem;
            font-weight: 800;
            color: var(--color-primary-dark);
            line-height: 1;
        }

        .stat-label {
            display: block;
            font-size: 0.9rem;
            color: var(--color-text-gray);
            font-weight: 600;
            margin-top: 0.5rem;
        }

        /* Zone de résultats */
        .kap-results {
            margin-top: 2rem;
            padding: 2rem;
            background: var(--color-bg-light);
            border-radius: var(--border-radius);
            border: 2px solid var(--color-border);
        }

        .kap-results-header {
            text-align: center;
            margin-bottom: 2rem;
        }

        .kap-results-header h4 {
            color: var(--color-primary-dark);
            font-size: 1.5rem;
            font-weight: 700;
            margin: 0;
        }

        .kap-results-content {
            margin-bottom: 2rem;
        }

        .kap-result-item {
            display: flex;
            align-items: center;
            gap: 1rem;
            padding: 1rem;
            margin-bottom: 0.5rem;
            background: white;
            border-radius: 8px;
            border-left: 4px solid var(--color-border);
            transition: var(--transition);
        }

        .kap-result-item:hover {
            box-shadow: var(--shadow-sm);
        }

        .kap-result-item.eligible {
            border-left-color: #48bb78;
        }

        .kap-result-item.ineligible {
            border-left-color: #f56565;
        }

        .kap-result-item.warning {
            border-left-color: #ed8936;
        }

        .kap-result-icon {
            font-size: 1.5rem;
            flex-shrink: 0;
        }

        .kap-result-text {
            flex: 1;
        }

        .kap-result-label {
            font-weight: 600;
            color: var(--color-text-dark);
            margin-bottom: 0.25rem;
        }

        .kap-result-value {
            color: var(--color-text-gray);
            font-size: 0.9rem;
        }

        .kap-summary {
            background: white;
            border-radius: 12px;
            padding: 2rem;
            margin: 2rem 0;
            text-align: center;
            border: 3px solid var(--color-primary);
        }

        .kap-summary.eligible {
            border-color: #48bb78;
            background: linear-gradient(135deg, #f0fff4 0%, #ffffff 100%);
        }

        .kap-summary.ineligible {
            border-color: #f56565;
            background: linear-gradient(135deg, #fed7d7 0%, #ffffff 100%);
        }

        .kap-summary-amount {
            font-size: 3rem;
            font-weight: 800;
            color: var(--color-primary-dark);
            margin: 1rem 0;
        }

        .kap-summary-text {
            font-size: 1.25rem;
            color: var(--color-text-dark);
            margin-bottom: 1rem;
        }

        .kap-summary-details {
            font-size: 1rem;
            color: var(--color-text-gray);
            margin-bottom: 1.5rem;
        }

        /* Actions des résultats */
        .kap-results-actions {
            display: flex;
            gap: 1rem;
            justify-content: center;
            flex-wrap: wrap;
        }

        .btn-secondary {
            background: var(--color-text-gray);
            color: white;
            padding: 12px 24px;
            border-radius: 25px;
            text-decoration: none;
            font-weight: 600;
            transition: var(--transition);
            border: none;
            cursor: pointer;
            font-family: var(--font-family);
        }

        .btn-secondary:hover {
            background: var(--color-text-dark);
            transform: translateY(-2px);
        }

        /* Formulaire de contact */
        .kap-contact-form {
            margin-top: 2rem;
            padding: 2rem;
            background: white;
            border-radius: var(--border-radius);
            border: 2px solid var(--color-border);
        }

        .kap-contact-form h4 {
            color: var(--color-primary-dark);
            font-size: 1.25rem;
            font-weight: 700;
            margin-bottom: 0.5rem;
            text-align: center;
        }

        .kap-contact-form p {
            color: var(--color-text-gray);
            text-align: center;
            margin-bottom: 2rem;
        }

        .kap-form-group {
            margin-bottom: 1.5rem;
        }

        .kap-form-group input {
            width: 100%;
            padding: 14px 18px;
            border: 2px solid var(--color-border);
            border-radius: 8px;
            font-size: 1rem;
            font-family: var(--font-family);
            transition: var(--transition);
        }

        .kap-form-group input:focus {
            outline: none;
            border-color: var(--color-primary);
            box-shadow: 0 0 0 3px rgba(0, 168, 168, 0.1);
        }

        .kap-submit-btn {
            width: 100%;
            font-size: 1.125rem;
            padding: 16px 32px;
        }

        /* Indicateur de frappe */
        .kap-typing-indicator {
            display: flex;
            align-items: center;
            gap: 1rem;
            margin-bottom: 1.5rem;
            opacity: 0.7;
        }

        .kap-typing-dots {
            display: flex;
            gap: 4px;
        }

        .kap-typing-dot {
            width: 8px;
            height: 8px;
            background: var(--color-primary);
            border-radius: 50%;
            animation: typingDot 1.4s infinite ease-in-out;
        }

        .kap-typing-dot:nth-child(1) {
            animation-delay: -0.32s;
        }

        .kap-typing-dot:nth-child(2) {
            animation-delay: -0.16s;
        }

        @keyframes typingDot {

            0%,
            80%,
            100% {
                transform: scale(0);
                opacity: 0.5;
            }

            40% {
                transform: scale(1);
                opacity: 1;
            }
        }

        /* Options de sélection */
        .kap-options-container {
            display: flex;
            flex-wrap: wrap;
            gap: 1rem;
            margin: 1.5rem 0;
            justify-content: center;
            padding: 0 1rem;
        }

        .kap-option-btn {
            background: var(--color-bg-white);
            border: 2px solid var(--color-primary);
            border-radius: 12px;
            padding: 12px 20px;
            cursor: pointer;
            transition: all 0.2s ease;
            font-size: 1rem;
            font-family: var(--font-family);
            font-weight: 500;
            color: var(--color-primary);
            box-shadow: 0 2px 4px rgba(0, 168, 168, 0.1);
            min-height: 44px;
            display: flex;
            align-items: center;
            justify-content: center;
            text-align: center;
            line-height: 1.3;
            position: relative;
            z-index: 10;
            user-select: none;
            -webkit-tap-highlight-color: transparent;
        }

        .kap-option-btn:hover {
            background: var(--color-primary);
            color: white;
            border-color: var(--color-primary);
            transform: translateY(-2px);
            box-shadow: 0 6px 12px rgba(0, 168, 168, 0.25);
        }

        .kap-option-btn:active {
            transform: translateY(-1px) scale(0.98);
            box-shadow: 0 3px 6px rgba(0, 168, 168, 0.3);
        }

        .kap-option-btn:focus {
            outline: 3px solid var(--color-primary);
            outline-offset: 3px;
            box-shadow: 0 0 0 3px rgba(0, 168, 168, 0.2);
        }

        .kap-option-btn.selected {
            background: var(--color-primary);
            color: white;
            border-color: var(--color-primary);
            box-shadow: 0 4px 8px rgba(0, 168, 168, 0.3);
        }

        .kap-option-btn:disabled {
            opacity: 0.6;
            cursor: not-allowed;
            pointer-events: none;
        }

        /* ===============================================
           WHATSAPP PREMIUM UX OPTIMIZATIONS - MOBILE FIRST
           =============================================== */
        @media (max-width: 768px) {

            /* ========== PHASE 1 : OPTIMISATIONS HAUTE PRIORITÉ ========== */

            /* FIX MOBILE : États désactivés avec !important */
            #kap-user-input:disabled,
            #kap-user-input.kap-input-disabled {
                opacity: 0.5 !important;
                background-color: #f5f5f5 !important;
                border-color: #d1d1d1 !important;
                cursor: not-allowed !important;
                pointer-events: none !important;
            }

            .kap-send-btn:disabled,
            .kap-send-btn.kap-send-disabled {
                opacity: 0.5 !important;
                background-color: #d1d1d1 !important;
                cursor: not-allowed !important;
                pointer-events: none !important;
            }

            /* 1. CONTAINER OPTIMISÉ ULTIME - Padding minimal pour meilleure lisibilité */
            .kap-expert-container {
                padding: 4px;
                /* 4px de padding minimal pour la lisibilité */
                margin: 0;
                border-radius: 0;
                border: none;
                height: 100vh;
                display: flex;
                flex-direction: column;
                background: white;
                width: 100%;
                max-width: 100%;
                box-shadow: none;
                /* Pas d'ombre pour un look plat */
            }

            /* 2. HEADER COMPACT WHATSAPP-STYLE - Gain 42px */
            .kap-expert-header {
                height: 40px;
                padding: 8px 16px;
                flex-direction: row;
                align-items: center;
                gap: 12px;
                background: #f8f9fa;
                border-bottom: 1px solid #e9ecef;
                margin-bottom: 0;
                position: relative;
            }

            .kap-expert-avatar {
                width: 32px;
                height: 32px;
                font-size: 16px;
                flex-shrink: 0;
            }

            .kap-expert-title h3 {
                font-size: 16px;
                margin: 0;
                font-weight: 600;
                color: #1f2937;
            }

            .kap-expert-title p {
                display: none;
                /* Masquer sur mobile */
            }

            /* 3. PROGRESS DISCRÈTE INTÉGRÉE - Gain 52px */
            .kap-progress {
                position: absolute;
                bottom: 0;
                left: 0;
                right: 0;
                height: 3px;
                background: transparent;
                margin: 0;
                padding: 0;
            }

            .kap-progress-bar {
                height: 3px;
                background: rgba(0, 0, 0, 0.1);
                border-radius: 0;
            }

            .kap-progress-fill {
                height: 3px;
                background: #25D366;
                border-radius: 0;
                transition: width 0.3s ease;
            }

            .kap-progress-text {
                display: none;
                /* Masquer le texte */
            }

            /* 4. AVATARS MASQUÉS SUR MOBILE - Gain 38px par message */
            .kap-message-avatar {
                display: none;
            }

            .kap-message.bot {
                justify-content: flex-start;
                align-items: flex-start;
            }

            .kap-message.user {
                justify-content: flex-end;
                align-items: flex-start;
            }

            /* 5. MAX-HEIGHT OPTIMISÉE - Gain ~200px */
            .kap-chat-messages {
                max-height: calc(100vh - 120px);
                flex: 1;
                overflow-y: auto;
                -webkit-overflow-scrolling: touch;
                scroll-behavior: smooth;
                padding: 4px 8px;
                background: #f0f0f0;
            }

            /* ========== PHASE 2 : OPTIMISATIONS MOYENNE PRIORITÉ ========== */

            /* 6. PADDING MESSAGES RÉDUIT - Gain 8px par message */
            .kap-message-content {
                padding: 8px 12px;
                font-size: 15px;
                line-height: 1.4;
                max-width: 85%;
                word-wrap: break-word;
                overflow-wrap: break-word;
            }

            /* WhatsApp Style Bulles Bot */
            .kap-message.bot .kap-message-content {
                background: #e5ddd5;
                border: none;
                border-radius: 7.5px 7.5px 7.5px 0;
                color: #1f2937;
                position: relative;
            }

            /* Queue WhatsApp pour bot */
            .kap-message.bot .kap-message-content::before {
                content: '';
                position: absolute;
                left: -8px;
                bottom: 0;
                width: 0;
                height: 0;
                border-style: solid;
                border-width: 0 8px 8px 0;
                border-color: transparent #e5ddd5 transparent transparent;
            }

            /* WhatsApp Style Bulles User */
            .kap-message.user .kap-message-content {
                background: #dcf8c6;
                border: none;
                border-radius: 7.5px 7.5px 0 7.5px;
                color: #1f2937;
                position: relative;
            }

            /* Queue WhatsApp pour user */
            .kap-message.user .kap-message-content::after {
                content: '';
                position: absolute;
                right: -8px;
                bottom: 0;
                width: 0;
                height: 0;
                border-style: solid;
                border-width: 0 0 8px 8px;
                border-color: transparent transparent transparent #dcf8c6;
            }

            /* 7. MARGIN MESSAGES RÉDUITE - Gain 16px par message */
            .kap-message {
                margin-bottom: 4px;
                animation: slideInFromBottom 0.2s ease-out;
            }

            /* Réduction supplémentaire de l'espacement pour max d'espace */
            .kap-message.bot {
                margin-bottom: 6px;
            }

            .kap-message.user {
                margin-bottom: 6px;
            }

            /* Header de question plus compact */
            .kap-message.bot .kap-message-content:has(strong) {
                padding: 6px 10px;
                font-size: 13px;
                background: #f0f0f0;
                border-left: 3px solid #25D366;
            }

            /* 8. INPUT AREA OPTIMISÉE - Gain 16px */
            .kap-input-area {
                padding: 8px 16px;
                background: white;
                border-top: 1px solid #e2e8f0;
                box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.05);
                flex-shrink: 0;
                position: sticky;
                bottom: 0;
            }

            .kap-input-container {
                padding: 4px;
                margin: 0;
                background: #f8f9fa;
                border-radius: 20px;
                display: flex;
                gap: 8px;
                align-items: center;
            }

            #kap-user-input {
                flex: 1;
                border: none;
                background: transparent;
                padding: 8px 12px;
                font-size: 16px;
                /* Empêche zoom iOS */
                outline: none;
                -webkit-appearance: none;
                appearance: none;
            }

            .kap-send-btn {
                background: #25D366;
                border: none;
                border-radius: 50%;
                width: 36px;
                height: 36px;
                display: flex;
                align-items: center;
                justify-content: center;
                color: white;
                font-size: 16px;
                transition: all 0.15s ease;
            }

            .kap-send-btn:hover {
                background: #128C7E;
                transform: scale(1.05);
            }

            /* ========== PHASE 3 : OPTIMISATIONS FINES ========== */

            /* 9. OPTIONS HORIZONTALES WHATSAPP-STYLE - Gain 20px */
            .kap-options-container {
                display: flex;
                flex-direction: row;
                overflow-x: auto;
                gap: 8px;
                padding: 8px 16px;
                margin: 8px 0;
                -webkit-overflow-scrolling: touch;
                scrollbar-width: thin;
                scrollbar-color: rgba(37, 211, 102, 0.3) transparent;
                animation: slideUpBounce 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
            }

            @keyframes slideUpBounce {
                0% {
                    opacity: 0;
                    transform: translateY(20px) scale(0.95);
                }

                50% {
                    transform: translateY(-5px) scale(1.02);
                }

                100% {
                    opacity: 1;
                    transform: translateY(0) scale(1);
                }
            }

            /* Scrollbar personnalisée pour Chrome/Safari */
            .kap-options-container::-webkit-scrollbar {
                height: 4px;
            }

            .kap-options-container::-webkit-scrollbar-track {
                background: transparent;
            }

            .kap-options-container::-webkit-scrollbar-thumb {
                background: rgba(37, 211, 102, 0.3);
                border-radius: 2px;
            }

            .kap-option-btn {
                flex: 0 0 auto;
                white-space: nowrap;
                background: white;
                border: 2px solid #25D366;
                border-radius: 18px;
                padding: 8px 14px;
                font-size: 14px;
                font-weight: 600;
                color: #128C7E;
                min-height: 36px;
                transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
                box-shadow: 0 2px 6px rgba(37, 211, 102, 0.2);
                min-width: max-content;
                position: relative;
                overflow: hidden;
                animation: attentionPulse 2s ease-in-out infinite;
            }

            @keyframes attentionPulse {

                0%,
                100% {
                    box-shadow: 0 2px 6px rgba(37, 211, 102, 0.2);
                }

                50% {
                    box-shadow: 0 2px 12px rgba(37, 211, 102, 0.4);
                }
            }

            /* Animation de pulsation pour le container des options - Version discrète */
            @keyframes containerPulse {

                0%,
                100% {
                    opacity: 1;
                }

                50% {
                    opacity: 0.9;
                }
            }

            /* Highlight sur le premier bouton - Version simplifiée sans conflits */
            .kap-first-option-highlight {
                border-width: 3px !important;
                border-color: #128C7E !important;
            }

            .kap-option-btn::before {
                content: '';
                position: absolute;
                top: 0;
                left: -100%;
                width: 100%;
                height: 100%;
                background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
                transition: left 0.5s;
            }

            .kap-option-btn:hover {
                transform: translateY(-2px);
                box-shadow: 0 4px 12px rgba(37, 211, 102, 0.3);
            }

            .kap-option-btn:active {
                background: #25D366;
                color: white;
                transform: scale(0.98);
                box-shadow: 0 2px 8px rgba(37, 211, 102, 0.4);
            }

            .kap-option-btn:active::before {
                left: 100%;
            }

            .kap-option-btn.selected {
                background: linear-gradient(135deg, #25D366, #128C7E);
                color: white;
                border-color: #128C7E;
                box-shadow: 0 4px 12px rgba(37, 211, 102, 0.4);
                animation: pulseSelected 0.5s ease;
            }

            @keyframes pulseSelected {

                0%,
                100% {
                    transform: scale(1);
                }

                50% {
                    transform: scale(1.05);
                }
            }

            /* 10. SCROLLBAR DISCRÈTE - Gain 4px */
            .kap-chat-messages::-webkit-scrollbar {
                width: 2px;
            }

            .kap-chat-messages::-webkit-scrollbar-track {
                background: transparent;
            }

            .kap-chat-messages::-webkit-scrollbar-thumb {
                background: rgba(37, 211, 102, 0.3);
                border-radius: 1px;
            }

            .kap-chat-messages::-webkit-scrollbar-thumb:hover {
                background: rgba(37, 211, 102, 0.5);
            }

            /* 11. ANIMATIONS RAPIDES - Amélioration UX */
            @keyframes slideInFromBottom {
                from {
                    opacity: 0;
                    transform: translateY(10px);
                }

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

            /* Safe-area pour notches */
            @supports (padding: env(safe-area-inset-bottom)) {
                .kap-input-area {
                    padding-bottom: calc(8px + env(safe-area-inset-bottom));
                }
            }

            /* Prévenir zoom sur iOS */
            input,
            textarea,
            select {
                font-size: 16px !important;
            }

            /* Amélioration pour les utilisateurs avec des difficultés motrices */
            @media (prefers-reduced-motion: reduce) {
                .kap-message {
                    animation: none;
                }

                .kap-option-btn {
                    transition: none;
                }
            }

            /* Résultats optimisés */
            .kap-results {
                padding: 1.5rem 1rem;
            }

            .kap-results-actions {
                flex-direction: column;
                gap: 0.75rem;
            }

            .kap-summary-amount {
                font-size: 2.2rem;
            }

            .kap-result-item {
                flex-direction: row;
                text-align: left;
                gap: 1rem;
                padding: 1rem;
            }
        }

        /* Scrollbar personnalisée pour les messages */
        .kap-chat-messages::-webkit-scrollbar {
            width: 6px;
        }

        .kap-chat-messages::-webkit-scrollbar-track {
            background: var(--color-bg-light);
            border-radius: 3px;
        }

        .kap-chat-messages::-webkit-scrollbar-thumb {
            background: var(--color-primary);
            border-radius: 3px;
        }

        /* ===============================================
           LEAD MAGNET PDF SECTION
           =============================================== */

        .lead-magnet-section {
            background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
            padding: 4rem 0;
            position: relative;
            overflow: hidden;
        }

        .lead-magnet-section::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grain" width="100" height="100" patternUnits="userSpaceOnUse"><circle cx="50" cy="50" r="1" fill="rgba(255,255,255,0.1)"/></pattern></defs><rect width="100" height="100" fill="url(%23grain)"/></svg>');
            opacity: 0.3;
        }

        .lead-magnet-container {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 3rem;
            align-items: center;
            max-width: 1000px;
            margin: 0 auto;
            position: relative;
            z-index: 2;
        }

        .lead-magnet-content {
            color: white;
        }

        .lead-magnet-icon {
            font-size: 4rem;
            margin-bottom: 1rem;
            animation: bounce 2s infinite;
        }

        @keyframes bounce {

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

            40% {
                transform: translateY(-10px);
            }

            60% {
                transform: translateY(-5px);
            }
        }

        .lead-magnet-content h3 {
            font-size: 2.2rem;
            margin-bottom: 1rem;
            line-height: 1.2;
        }

        .lead-magnet-subtitle {
            font-size: 1.2rem;
            margin-bottom: 2rem;
            opacity: 0.9;
        }

        .lead-magnet-benefits {
            margin-bottom: 2rem;
        }

        .benefit-item {
            display: flex;
            align-items: center;
            margin-bottom: 0.8rem;
            font-size: 1.1rem;
        }

        .benefit-icon {
            margin-right: 0.8rem;
            font-size: 1.2rem;
        }

        .lead-magnet-form {
            background: rgba(255, 255, 255, 0.1);
            backdrop-filter: blur(10px);
            padding: 2rem;
            border-radius: 15px;
            border: 1px solid rgba(255, 255, 255, 0.2);
        }

        .pdf-form .form-group {
            margin-bottom: 1rem;
        }

        .pdf-form input {
            width: 100%;
            padding: 1rem;
            border: none;
            border-radius: 8px;
            font-size: 1rem;
            background: rgba(255, 255, 255, 0.9);
            color: #333;
            transition: all 0.3s ease;
        }

        .pdf-form input:focus {
            outline: none;
            background: white;
            transform: translateY(-2px);
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
        }

        .pdf-form input::placeholder {
            color: #666;
        }

        .btn-pdf {
            width: 100%;
            background: linear-gradient(45deg, #ff6b6b, #ee5a24);
            color: white;
            border: none;
            padding: 1.2rem 2rem;
            font-size: 1.1rem;
            font-weight: 600;
            border-radius: 8px;
            cursor: pointer;
            transition: all 0.3s ease;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }

        .btn-pdf:hover {
            transform: translateY(-3px);
            box-shadow: 0 10px 25px rgba(255, 107, 107, 0.4);
        }

        .form-disclaimer {
            text-align: center;
            font-size: 0.9rem;
            margin-top: 1rem;
            opacity: 0.8;
        }

        .lead-magnet-visual {
            display: flex;
            justify-content: center;
            align-items: center;
        }

        .pdf-preview {
            perspective: 1000px;
        }

        .pdf-cover {
            width: 200px;
            height: 280px;
            background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));
            border-radius: 8px;
            padding: 2rem;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            color: white;
            box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
            transform: rotateY(-15deg) rotateX(5deg);
            transition: transform 0.3s ease;
            position: relative;
            overflow: hidden;
        }

        .pdf-cover:hover {
            transform: rotateY(-10deg) rotateX(2deg) scale(1.05);
        }

        .pdf-cover::before {
            content: '';
            position: absolute;
            top: -50%;
            left: -50%;
            width: 200%;
            height: 200%;
            background: linear-gradient(45deg, transparent, rgba(255, 255, 255, 0.1), transparent);
            animation: shine 3s infinite;
        }

        @keyframes shine {
            0% {
                transform: translateX(-100%) translateY(-100%) rotate(45deg);
            }

            50% {
                transform: translateX(100%) translateY(100%) rotate(45deg);
            }

            100% {
                transform: translateX(-100%) translateY(-100%) rotate(45deg);
            }
        }

        .pdf-title {
            font-size: 1.4rem;
            font-weight: 700;
            margin-bottom: 0.5rem;
            text-align: center;
        }

        .pdf-subtitle {
            font-size: 1rem;
            opacity: 0.9;
            text-align: center;
            margin-bottom: 1rem;
        }

        .pdf-pages {
            position: absolute;
            right: -5px;
            top: 10px;
            width: 8px;
            height: 260px;
            background: rgba(255, 255, 255, 0.1);
            border-radius: 0 4px 4px 0;
        }

        .pdf-pages .page {
            width: 100%;
            height: 2px;
            background: rgba(255, 255, 255, 0.2);
            margin-bottom: 5px;
        }

        /* Responsive Lead Magnet */
        @media (max-width: 768px) {
            .lead-magnet-container {
                grid-template-columns: 1fr;
                gap: 2rem;
                text-align: center;
            }

            .lead-magnet-content h3 {
                font-size: 1.8rem;
            }

            .lead-magnet-form {
                padding: 1.5rem;
            }

            .pdf-cover {
                width: 150px;
                height: 210px;
                transform: rotateY(-5deg) rotateX(2deg);
            }
        }

        .kap-chat-messages::-webkit-scrollbar-thumb:hover {
            background: var(--color-primary-dark);
        }

        /* Prévenir zoom sur iOS */
        @media (max-width: 768px) {

            input,
            textarea,
            select {
                font-size: 16px !important;
                /* Empêche zoom iOS */
            }
        }

        /* Améliorations UX mobile supplémentaires */
        @media (max-width: 768px) {

            /* ========== PRIORITÉ 1 : AVATARS CACHÉS - Gain -114px ========== */
            .kap-message-avatar {
                display: none;
            }

            .kap-message.bot {
                padding-left: 0;
                margin-bottom: 0.25rem;
                /* Réduit de 0.5rem */
            }

            /* ========== PRIORITÉ 2 : HEADER COMPACT - Gain -20px ========== */
            .kap-expert-header {
                padding: 0.75rem 1rem;
                min-height: auto;
            }

            .kap-expert-avatar {
                width: 40px;
                height: 40px;
            }

            .kap-expert-title h3 {
                font-size: 1rem;
            }

            .kap-expert-title p {
                display: none;
            }

            /* ========== PRIORITÉ 4 : PROGRESS DISCRÈTE - Gain -30px ========== */
            .kap-progress {
                padding: 0.5rem 1rem;
                margin: 0;
            }

            .kap-progress-text {
                font-size: 0.75rem;
                opacity: 0.7;
            }

            .kap-progress-bar {
                height: 3px;
                /* Au lieu de 6px */
            }

            /* ========== OPTIMISATIONS ESPACEMENT ========== */
            .kap-chat-messages {
                padding: 0.5rem;
                /* Réduit de 0.75rem */
            }

            .kap-message-content {
                padding: 6px 10px;
                /* Réduit de 8px 12px */
            }

            /* ========== SCROLLBAR DISCRÈTE ========== */
            .kap-chat-messages::-webkit-scrollbar {
                width: 3px;
            }

            .kap-chat-messages::-webkit-scrollbar-thumb {
                background: rgba(0, 168, 168, 0.3);
            }

            /* ========== INPUT BAR OPTIMISÉ ========== */
            .kap-input-area {
                padding: 0.25rem 1rem 0.5rem;
                /* Réduit de 0.5rem 1rem */
                box-shadow: 0 -1px 4px rgba(0, 0, 0, 0.03);
                /* Plus discrète */
            }

            /* Amélioration de la lisibilité - WhatsApp Mobile */
            .kap-message.bot .kap-message-content {
                background: #e5ddd5;
                border: none;
                border-radius: 7.5px 7.5px 7.5px 0;
                padding: 8px 12px;
            }

            .kap-message.user .kap-message-content {
                background: #dcf8c6;
                border: none;
                border-radius: 7.5px 7.5px 0 7.5px;
                max-width: 85%;
            }

            /* Queue plus petite sur mobile */
            .kap-message-content::before,
            .kap-message-content::after {
                border-width: 0 6px 6px 0;
            }

            .kap-message {
                margin-bottom: 0.5rem;
            }

            /* Amélioration de la zone de saisie contextuelle MOBILE-FIRST */
            .kap-contextual-input {
                padding: 8px;
                margin: 8px 0;
                border-radius: 12px;
                background: white;
                border: 1px solid #e2e8f0;
                animation: slideUpBounce 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
            }

            .kap-contextual-wrapper {
                display: flex;
                flex-direction: row;
                gap: 8px;
                align-items: center;
            }

            .kap-contextual-field {
                flex: 1;
                padding: 10px 14px;
                font-size: 16px;
                border-radius: 20px;
                min-height: 44px;
                border: 2px solid #25D366;
                background: #f8f9fa;
                transition: all 0.2s ease;
            }

            .kap-contextual-field:focus {
                outline: none;
                border-color: #128C7E;
                background: white;
                box-shadow: 0 0 0 3px rgba(37, 211, 102, 0.1);
            }

            .kap-contextual-field.valid {
                border-color: #10B981;
                background: #F0FDF4;
            }

            .kap-contextual-field.invalid {
                border-color: #EF4444;
                background: #FEF2F2;
            }

            .kap-contextual-btn {
                padding: 10px 20px;
                border-radius: 20px;
                min-height: 44px;
                font-size: 15px;
                background: linear-gradient(135deg, #25D366, #128C7E);
                color: white;
                border: none;
                font-weight: 600;
                box-shadow: 0 2px 8px rgba(37, 211, 102, 0.3);
                transition: all 0.2s ease;
            }

            .kap-contextual-btn:active {
                transform: scale(0.97);
                box-shadow: 0 1px 4px rgba(37, 211, 102, 0.3);
            }

            .kap-contextual-btn:hover {
                transform: translateY(-1px);
                box-shadow: 0 4px 12px rgba(37, 211, 102, 0.4);
            }

            /* Amélioration du bouton WhatsApp */
            .kap-whatsapp-card {
                padding: 1.5rem 1rem;
            }

            .kap-whatsapp-btn {
                padding: 14px 24px;
                font-size: 1rem;
                min-height: 52px;
                border-radius: 30px;
            }

            /* Indicateur de frappe mobile */
            .typing-message::after {
                font-size: 1.2rem;
            }

            /* Amélioration des résultats */
            .kap-summary {
                padding: 1.5rem 1rem;
            }

            .kap-summary-amount {
                font-size: 2rem;
            }

            /* Amélioration du formulaire de contact */
            .kap-form-group {
                margin-bottom: 1rem;
            }

            .kap-form-group input {
                font-size: 16px;
                padding: 14px 18px;
            }

            /* Amélioration des boutons d'action */
            .btn-secondary {
                font-size: 1rem;
                padding: 14px 24px;
                min-height: 52px;
            }

            /* Zone de démarrage optimisée */
            .kap-start-area {
                padding: 2rem 1rem;
            }

            .kap-start-subtitle {
                font-size: 0.9rem;
                padding: 0 1rem;
            }

            /* Amélioration du conteneur expert - WhatsApp Mobile */
            .kap-expert-chat {
                display: flex;
                flex-direction: column;
                height: 100%;
                min-height: auto;
                max-height: calc(100vh - 150px);
            }

            /* Messages area flex */
            .kap-chat-messages {
                flex: 1;
                overflow-y: auto;
                -webkit-overflow-scrolling: touch;
                scroll-behavior: smooth;
                padding: 0.75rem;
            }

            /* Input area sticky */
            .kap-input-area {
                flex-shrink: 0;
                position: sticky;
                bottom: 0;
                background: white;
                padding: 0.5rem 1rem;
                border-top: 1px solid #e2e8f0;
                box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.05);
            }

            /* Safe-area pour notches */
            @supports (padding: env(safe-area-inset-bottom)) {
                .kap-input-area {
                    padding-bottom: calc(0.5rem + env(safe-area-inset-bottom));
                }
            }

            /* Optimisation espacements messages */
            .kap-message {
                margin-bottom: 0.5rem;
                animation-duration: 0.25s;
            }

            .kap-message-content {
                padding: 8px 12px;
                font-size: 0.95rem;
            }

            .kap-message-avatar {
                width: 32px;
                height: 32px;
            }

            /* Queue ajustée */
            .kap-message-content::before,
            .kap-message-content::after {
                border-width: 0 5px 5px 0;
            }

            /* Input container optimisé */
            .kap-input-container {
                padding: 0.5rem;
                margin: 0;
                gap: 0.75rem;
            }

            /* Boutons chips WhatsApp style - Layout horizontal scrollable */
            .kap-options-container {
                display: flex;
                flex-direction: row;
                flex-wrap: nowrap;
                overflow-x: auto;
                overflow-y: hidden;
                gap: 0.5rem;
                padding: 0.75rem 1rem;
                justify-content: flex-start;
                -webkit-overflow-scrolling: touch;
                scrollbar-width: thin;
                scrollbar-color: rgba(37, 211, 102, 0.3) transparent;
            }

            /* Scrollbar personnalisée pour Chrome/Safari */
            .kap-options-container::-webkit-scrollbar {
                height: 4px;
            }

            .kap-options-container::-webkit-scrollbar-track {
                background: transparent;
            }

            .kap-options-container::-webkit-scrollbar-thumb {
                background: rgba(37, 211, 102, 0.3);
                border-radius: 2px;
            }

            .kap-option-btn {
                flex: 0 0 auto;
                white-space: nowrap;
                background: white;
                border: 1.5px solid #25D366;
                border-radius: 18px;
                padding: 8px 16px;
                font-size: 0.875rem;
                font-weight: 500;
                color: #25D366;
                transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
                box-shadow: 0 1px 3px rgba(37, 211, 102, 0.12);
                min-width: max-content;
            }

            .kap-option-btn:active {
                transform: scale(0.95);
                background: #25D366;
                color: white;
            }

        }

        /* ===============================================
           OPTIMISATIONS POUR TRÈS PETITS ÉCRANS
           =============================================== */
        @media (max-width: 480px) {
            .kap-expert-container {
                padding: 4px;
            }

            .kap-chat-messages {
                max-height: calc(100vh - 100px);
                padding: 2px 4px;
            }

            .kap-message-content {
                font-size: 14px;
                padding: 6px 10px;
                max-width: 90%;
            }

            .kap-input-container {
                padding: 2px;
            }

            #kap-user-input {
                font-size: 16px;
                padding: 6px 10px;
            }

            .kap-send-btn {
                width: 32px;
                height: 32px;
                font-size: 14px;
            }

            .kap-option-btn {
                font-size: 13px;
                padding: 5px 10px;
                min-height: 28px;
            }

            .kap-expert-header {
                height: 36px;
                padding: 6px 12px;
            }

            .kap-expert-avatar {
                width: 28px;
                height: 28px;
                font-size: 14px;
            }

            .kap-expert-title h3 {
                font-size: 14px;
            }

            .kap-start-btn {
                font-size: 1rem;
                padding: 16px 24px;
            }
        }

        /* Améliorations pour le paysage mobile */
        @media (max-width: 768px) and (orientation: landscape) {
            .kap-expert-chat {
                max-height: 60vh;
            }

            .kap-chat-messages {
                max-height: 40vh;
            }

            .kap-input-container {
                padding: 0.75rem;
                margin: 0.75rem 0;
            }
        }

        /* ===============================================
           OPTIMISATIONS DESKTOP (min-width: 769px)
           =============================================== */
        @media (min-width: 769px) {

            /* Container Desktop - Utilise toute la largeur disponible */
            .kap-expert-container {
                padding: 2.5rem;
                max-width: 100%;
                box-shadow: 0 20px 60px rgba(0, 168, 168, 0.15);
                display: grid;
                grid-template-columns: 1fr 1fr;
                gap: 2rem;
                align-items: start;
            }

            /* Layout Desktop en 2 colonnes */
            .kap-expert-header {
                grid-column: 1 / -1;
                /* Occupe toute la largeur */
            }

            .kap-progress {
                grid-column: 1 / -1;
                /* Occupe toute la largeur */
            }

            .kap-expert-chat {
                grid-column: 1 / -1;
                /* Occupe toute la largeur */
            }

            /* Pour les très grands écrans (1400px+) */
            @media (min-width: 1400px) {
                .kap-expert-container {
                    max-width: 1300px;
                    margin: 0 auto;
                    gap: 3rem;
                }
            }

            /* Header Desktop - Design premium avec plus d'espace */
            .kap-expert-header {
                padding: 1.5rem 0;
                margin-bottom: 2rem;
                border-bottom: 3px solid var(--color-border);
            }

            .kap-expert-avatar {
                width: 70px;
                height: 70px;
                font-size: 2.5rem;
                box-shadow: 0 8px 20px rgba(0, 168, 168, 0.25);
            }

            .kap-expert-title h3 {
                font-size: 1.75rem;
            }

            .kap-expert-title p {
                font-size: 1.1rem;
            }

            /* Messages Desktop - Plus lisibles et aérés */
            .kap-chat-messages {
                padding: 1.5rem;
                max-height: 500px;
                border-radius: 8px;
            }

            .kap-message {
                margin-bottom: 1.5rem;
            }

            .kap-message-content {
                padding: 1rem 1.5rem;
                font-size: 1.05rem;
                line-height: 1.7;
                max-width: 65%;
            }

            .kap-message-avatar {
                width: 45px;
                height: 45px;
                font-size: 1.3rem;
            }

            /* Boutons options Desktop - Layout en grid */
            .kap-options-container {
                display: grid;
                grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
                gap: 1rem;
                padding: 1rem;
                margin: 1.5rem 0;
                max-width: 100%;
            }

            .kap-option-btn {
                padding: 14px 24px;
                font-size: 1rem;
                font-weight: 600;
                min-height: 48px;
                border: 2px solid var(--color-primary);
                transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
            }

            .kap-option-btn:hover {
                transform: translateY(-3px);
                box-shadow: 0 6px 20px rgba(37, 211, 102, 0.3);
                background: var(--color-primary);
                color: white;
            }

            .kap-option-btn:active {
                transform: translateY(-1px);
            }

            /* Input area Desktop - Plus confortable */
            .kap-input-area {
                padding: 1.5rem 0;
                border-top: 3px solid var(--color-border);
            }

            .kap-input-container {
                padding: 0.75rem;
                margin: 0;
                border-radius: 15px;
                box-shadow: 0 4px 15px rgba(0, 168, 168, 0.1);
            }

            #kap-user-input {
                padding: 14px 22px;
                font-size: 1.05rem;
                border-radius: 30px;
            }

            .kap-send-btn {
                width: 48px;
                height: 48px;
                font-size: 18px;
            }

            .kap-send-btn:hover {
                transform: scale(1.1) rotate(5deg);
            }

            /* Progress bar Desktop - Plus visible */
            .kap-progress {
                margin: 2rem 0;
                padding: 0 1rem;
            }

            .kap-progress-bar {
                height: 10px;
                border-radius: 5px;
            }

            .kap-progress-fill {
                border-radius: 5px;
            }

            .kap-progress-text {
                font-size: 1rem;
            }

            /* Contextual input Desktop - Meilleure présentation */
            .kap-contextual-input {
                padding: 1.5rem;
                margin: 1.5rem 0;
                border-radius: 16px;
                box-shadow: 0 8px 25px rgba(0, 168, 168, 0.15);
            }

            .kap-contextual-wrapper {
                gap: 1rem;
            }

            .kap-contextual-field {
                padding: 16px 24px;
                font-size: 1.05rem;
                border-radius: 30px;
                min-height: 52px;
            }

            .kap-contextual-btn {
                padding: 16px 32px;
                border-radius: 30px;
                min-height: 52px;
                font-size: 1.05rem;
                font-weight: 700;
            }

            .kap-contextual-btn:hover {
                transform: translateY(-2px);
                box-shadow: 0 8px 25px rgba(37, 211, 102, 0.4);
            }

            /* Résultats Desktop - Layout amélioré */
            .kap-results {
                padding: 2.5rem 2rem;
            }

            .kap-results-actions {
                flex-direction: row;
                gap: 1rem;
            }

            .kap-summary-amount {
                font-size: 2.5rem;
            }

            /* Animation Desktop - Plus fluide avec la souris */
            .kap-message {
                transition: transform 0.2s ease;
            }

            .kap-message:hover {
                transform: translateX(2px);
            }

            .kap-message.user:hover {
                transform: translateX(-2px);
            }

            /* Scrollbar Desktop - Plus visible */
            .kap-chat-messages::-webkit-scrollbar {
                width: 8px;
            }

            .kap-chat-messages::-webkit-scrollbar-track {
                background: #f0f0f0;
                border-radius: 4px;
            }

            .kap-chat-messages::-webkit-scrollbar-thumb {
                background: var(--color-primary);
                border-radius: 4px;
            }

            .kap-chat-messages::-webkit-scrollbar-thumb:hover {
                background: var(--color-primary-dark);
            }
        }
    
/* --- Extracted Block 2 --- */

        /* ===============================================
           EXIT-INTENT POPUP STYLES
           =============================================== */

        .exit-intent-popup {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: 10000;
            display: flex;
            align-items: center;
            justify-content: center;
            animation: fadeIn 0.3s ease-out;
        }

        .popup-overlay {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0, 0, 0, 0.8);
            backdrop-filter: blur(5px);
        }

        .popup-content {
            position: relative;
            background: white;
            border-radius: 20px;
            max-width: 500px;
            width: 90%;
            max-height: 90vh;
            overflow-y: auto;
            box-shadow: 0 25px 50px rgba(0, 0, 0, 0.3);
            animation: slideInUp 0.4s ease-out;
        }

        .popup-close {
            position: absolute;
            top: 15px;
            right: 20px;
            background: none;
            border: none;
            font-size: 2rem;
            color: #666;
            cursor: pointer;
            z-index: 1;
            transition: color 0.3s ease;
        }

        .popup-close:hover {
            color: #333;
        }

        .popup-header {
            text-align: center;
            padding: 2rem 2rem 1rem;
            background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
            color: white;
            border-radius: 20px 20px 0 0;
        }

        .popup-icon {
            font-size: 3rem;
            margin-bottom: 1rem;
        }

        .popup-header h3 {
            font-size: 1.5rem;
            margin: 0;
            line-height: 1.3;
        }

        .popup-body {
            padding: 2rem;
        }

        .popup-subtitle {
            font-size: 1.1rem;
            color: #333;
            margin-bottom: 1.5rem;
            text-align: center;
        }

        .popup-benefits {
            margin-bottom: 2rem;
        }

        .popup-benefit {
            display: flex;
            align-items: center;
            margin-bottom: 0.8rem;
            font-size: 1rem;
        }

        .popup-benefit .benefit-icon {
            margin-right: 0.8rem;
            color: #10B981;
            font-size: 1.1rem;
        }

        .popup-form .form-group {
            margin-bottom: 1rem;
        }

        .popup-form input {
            width: 100%;
            padding: 1rem;
            border: 2px solid #e5e7eb;
            border-radius: 8px;
            font-size: 1rem;
            transition: all 0.3s ease;
        }

        .popup-form input:focus {
            outline: none;
            border-color: var(--color-primary);
            box-shadow: 0 0 0 3px rgba(0, 168, 168, 0.1);
        }

        .btn-exit-intent {
            width: 100%;
            background: linear-gradient(45deg, #ff6b6b, #ee5a24);
            color: white;
            border: none;
            padding: 1.2rem 2rem;
            font-size: 1.1rem;
            font-weight: 600;
            border-radius: 8px;
            cursor: pointer;
            transition: all 0.3s ease;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }

        .btn-exit-intent:hover {
            transform: translateY(-2px);
            box-shadow: 0 10px 25px rgba(255, 107, 107, 0.4);
        }

        .popup-disclaimer {
            text-align: center;
            font-size: 0.9rem;
            color: #666;
            margin-top: 1rem;
        }

        @keyframes fadeIn {
            from {
                opacity: 0;
            }

            to {
                opacity: 1;
            }
        }

        @keyframes slideInUp {
            from {
                opacity: 0;
                transform: translateY(50px) scale(0.9);
            }

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

        @keyframes pulse {

            0%,
            100% {
                transform: scale(1);
            }

            50% {
                transform: scale(1.1);
            }
        }

        /* Responsive */
        @media (max-width: 768px) {
            .popup-content {
                width: 95%;
                margin: 1rem;
            }

            .popup-header {
                padding: 1.5rem 1.5rem 1rem;
            }

            .popup-header h3 {
                font-size: 1.3rem;
            }

            .popup-body {
                padding: 1.5rem;
            }
        }
    
/* --- Extracted Block 3 --- */

        /* ===============================================
           CHATBOT IA STYLES
           =============================================== */

        .chatbot-container {
            position: fixed;
            bottom: 20px;
            right: 20px;
            z-index: 1000;
            display: none;
            /* Caché pour l'instant */
            font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
        }

        /* MOBILE FIRST - Bouton toggle optimisé */
        .chatbot-toggle {
            width: 64px;
            height: 64px;
            background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            box-shadow: 0 8px 25px rgba(0, 168, 168, 0.3);
            transition: all 0.3s ease;
            position: relative;
            overflow: hidden;
            touch-action: manipulation;
            -webkit-tap-highlight-color: transparent;
        }

        /* Desktop - Bouton plus petit */
        @media (min-width: 769px) {
            .chatbot-toggle {
                width: 60px;
                height: 60px;
            }
        }

        .chatbot-toggle:hover {
            transform: scale(1.1);
            box-shadow: 0 12px 35px rgba(0, 168, 168, 0.4);
        }

        .chatbot-icon {
            color: white;
            transition: transform 0.3s ease;
        }

        .chatbot-toggle:hover .chatbot-icon {
            transform: rotate(10deg);
        }

        .chatbot-badge {
            position: absolute;
            top: -5px;
            right: -5px;
            background: #ff4757;
            color: white;
            border-radius: 50%;
            width: 24px;
            height: 24px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 12px;
            animation: bounce 2s infinite;
        }

        .chatbot-pulse {
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            border-radius: 50%;
            background: rgba(0, 168, 168, 0.3);
        }

        @keyframes pulse {
            0% {
                transform: scale(1);
                opacity: 1;
            }

            100% {
                transform: scale(1.4);
                opacity: 0;
            }
        }

        /* MOBILE FIRST - Base mobile */
        .chatbot-window {
            position: fixed;
            bottom: 70px;
            left: 10px;
            right: 10px;
            width: calc(100vw - 20px);
            height: calc(100vh - 90px);
            max-height: 85vh;
            background: var(--color-bg-white);
            border: 2px solid var(--color-primary);
            border-radius: 20px;
            box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
            display: flex;
            flex-direction: column;
            overflow: hidden;
            animation: slideUp 0.3s ease-out;
            z-index: 1000;
        }

        /* Desktop - Override mobile */
        @media (min-width: 769px) {
            .chatbot-window {
                position: absolute;
                bottom: 80px;
                right: 0;
                left: auto;
                width: 450px;
                height: 650px;
                max-height: 650px;
            }

            .chatbot-toggle {
                width: 55px;
                height: 55px;
                bottom: 15px;
                right: 15px;
            }

            .chatbot-notification {
                right: 15px;
                left: 15px;
                width: auto;
                bottom: 85px;
            }

            .chatbot-messages {
                padding: 15px;
            }

            .chatbot-input-container {
                padding: 15px;
            }

            .quick-btn {
                font-size: 14px;
                padding: 10px 15px;
                margin: 5px;
            }
        }

        /* Très petits écrans (iPhone SE, etc.) */
        @media (max-width: 480px) {
            .chatbot-window {
                height: calc(100vh - 80px);
                max-height: 500px;
                bottom: 60px;
            }

            .chatbot-toggle {
                width: 50px;
                height: 50px;
                bottom: 10px;
                right: 10px;
            }

            .chatbot-messages {
                padding: 10px;
            }

            .chatbot-input-container {
                padding: 10px;
            }

            .quick-btn {
                font-size: 13px;
                padding: 8px 12px;
                margin: 3px;
            }

            .message-content p {
                font-size: 14px;
                line-height: 1.4;
            }
        }

        @keyframes slideUp {
            from {
                opacity: 0;
                transform: translateY(20px) scale(0.9);
            }

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

        .chatbot-header {
            background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
            color: white;
            padding: 20px;
            display: flex;
            align-items: center;
            gap: 12px;
        }

        .chatbot-avatar .avatar-circle {
            width: 40px;
            height: 40px;
            background: rgba(255, 255, 255, 0.2);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 20px;
        }

        .chatbot-info h4 {
            margin: 0;
            font-size: 16px;
            font-weight: 600;
        }

        .chatbot-status {
            margin: 0;
            font-size: 12px;
            opacity: 0.8;
        }

        .chatbot-close {
            background: none;
            border: none;
            color: white;
            font-size: 24px;
            cursor: pointer;
            margin-left: auto;
            opacity: 0.7;
            transition: opacity 0.3s ease;
        }

        .chatbot-close:hover {
            opacity: 1;
        }

        /* MOBILE FIRST - Messages optimisés */
        .chatbot-messages {
            flex: 1;
            padding: 16px;
            overflow-y: auto;
            background: #f8f9fa;
            scroll-behavior: smooth;
            -webkit-overflow-scrolling: touch;
        }

        /* Desktop - Plus d'espace */
        @media (min-width: 769px) {
            .chatbot-messages {
                padding: 20px;
            }
        }

        .chatbot-message {
            display: flex;
            gap: 10px;
            margin-bottom: 15px;
            animation: fadeInUp 0.3s ease-out;
        }

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

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

        /* Animation WhatsApp pour messages */
        @keyframes slideInFromBottom {
            from {
                opacity: 0;
                transform: translateY(20px);
            }

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

        .message-avatar {
            width: 32px;
            height: 32px;
            background: var(--color-primary);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 14px;
            flex-shrink: 0;
        }

        .user-message .message-avatar {
            background: #10B981;
        }

        .message-content {
            background: white;
            padding: 12px 16px;
            border-radius: 18px;
            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
            max-width: 80%;
        }

        .user-message .message-content {
            background: var(--color-primary);
            color: white;
            margin-left: auto;
        }

        .user-message {
            flex-direction: row-reverse;
        }

        .quick-actions {
            margin-top: 10px;
            display: flex;
            flex-direction: column;
            gap: 8px;
        }

        .quick-btn {
            background: #f1f3f4;
            border: none;
            padding: 8px 12px;
            border-radius: 12px;
            font-size: 12px;
            cursor: pointer;
            transition: all 0.3s ease;
            text-align: left;
        }

        .quick-btn:hover {
            background: var(--color-primary);
            color: white;
            transform: translateX(5px);
        }

        .chatbot-quick-buttons {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            margin-top: 10px;
            padding: 10px 0;
        }

        /* MOBILE FIRST - Boutons rapides tactiles */
        .chatbot-quick-buttons .quick-btn {
            background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
            color: white;
            border: none;
            padding: 14px 20px;
            border-radius: 25px;
            font-size: 15px;
            font-weight: 500;
            cursor: pointer;
            transition: all 0.3s ease;
            text-align: center;
            min-height: 48px;
            display: flex;
            align-items: center;
            justify-content: center;
            touch-action: manipulation;
            -webkit-tap-highlight-color: transparent;
            min-width: 120px;
            box-shadow: 0 2px 8px rgba(0, 168, 168, 0.3);
        }

        .chatbot-quick-buttons .quick-btn:hover {
            background: linear-gradient(135deg, var(--color-primary-dark) 0%, #004d52 100%);
            transform: translateY(-2px);
            box-shadow: 0 4px 12px rgba(0, 168, 168, 0.4);
        }

        .chatbot-quick-buttons .quick-btn:active {
            transform: translateY(0);
        }

        /* Notification d'activation du chatbot */
        .chatbot-notification {
            position: fixed;
            bottom: 100px;
            right: 20px;
            background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
            color: white;
            padding: 16px 20px;
            border-radius: 12px;
            box-shadow: 0 8px 25px rgba(0, 168, 168, 0.3);
            z-index: 1000;
            max-width: 300px;
            animation: slideInRight 0.5s ease-out;
            cursor: pointer;
            transition: all 0.3s ease;
        }

        .chatbot-notification:hover {
            transform: translateY(-2px);
            box-shadow: 0 12px 30px rgba(0, 168, 168, 0.4);
        }

        .chatbot-notification.hidden {
            animation: slideOutRight 0.3s ease-in forwards;
        }

        .notification-content {
            display: flex;
            align-items: center;
            gap: 12px;
        }

        .notification-icon {
            font-size: 24px;
        }

        .notification-text {
            flex: 1;
        }

        .notification-title {
            font-weight: 600;
            margin-bottom: 4px;
            font-size: 14px;
        }

        .notification-subtitle {
            font-size: 12px;
            opacity: 0.9;
        }

        .notification-close {
            background: none;
            border: none;
            color: white;
            font-size: 18px;
            cursor: pointer;
            padding: 4px;
            border-radius: 4px;
            transition: background 0.2s ease;
        }

        .notification-close:hover {
            background: rgba(255, 255, 255, 0.2);
        }

        @keyframes slideInRight {
            from {
                opacity: 0;
                transform: translateX(100%);
            }

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

        @keyframes slideOutRight {
            from {
                opacity: 1;
                transform: translateX(0);
            }

            to {
                opacity: 0;
                transform: translateX(100%);
            }
        }

        /* Animation d'attraction du bouton chatbot */
        @keyframes pulse-attraction {

            0%,
            100% {
                transform: scale(1);
                box-shadow: 0 4px 15px rgba(0, 168, 168, 0.3);
            }

            50% {
                transform: scale(1.02);
                box-shadow: 0 6px 20px rgba(0, 168, 168, 0.4);
            }
        }

        /* Boutons de navigation du chatbot */
        .chatbot-nav-buttons {
            display: flex;
            gap: 8px;
            margin-top: 12px;
            flex-wrap: wrap;
        }

        .chatbot-nav-btn {
            background: #f8f9fa;
            border: 1px solid #e9ecef;
            color: #495057;
            padding: 6px 12px;
            border-radius: 20px;
            font-size: 12px;
            cursor: pointer;
            transition: all 0.2s ease;
            white-space: nowrap;
        }

        .chatbot-nav-btn:hover {
            background: #e9ecef;
            border-color: #dee2e6;
            transform: translateY(-1px);
        }

        .chatbot-nav-btn.active {
            background: var(--color-primary);
            color: white;
            border-color: var(--color-primary);
        }

        /* Personnalisation du chatbot */
        .chatbot-settings {
            position: absolute;
            top: 10px;
            right: 10px;
            background: rgba(255, 255, 255, 0.9);
            border-radius: 50%;
            width: 32px;
            height: 32px;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            transition: all 0.2s ease;
            z-index: 10;
        }

        .chatbot-settings:hover {
            background: rgba(255, 255, 255, 1);
            transform: rotate(90deg);
        }

        .chatbot-settings-panel {
            position: absolute;
            top: 40px;
            right: 0;
            background: white;
            border: 1px solid #e5e7eb;
            border-radius: 8px;
            padding: 12px;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
            min-width: 200px;
            z-index: 20;
            display: none;
        }

        .chatbot-settings-panel.show {
            display: block;
            animation: slideDown 0.2s ease-out;
        }

        .setting-item {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 8px 0;
            border-bottom: 1px solid #f3f4f6;
        }

        .setting-item:last-child {
            border-bottom: none;
        }

        .setting-label {
            font-size: 14px;
            color: #374151;
        }

        .setting-toggle {
            position: relative;
            width: 40px;
            height: 20px;
            background: #d1d5db;
            border-radius: 10px;
            cursor: pointer;
            transition: background 0.2s ease;
        }

        .setting-toggle.active {
            background: var(--color-primary);
        }

        .setting-toggle::after {
            content: '';
            position: absolute;
            top: 2px;
            left: 2px;
            width: 16px;
            height: 16px;
            background: white;
            border-radius: 50%;
            transition: transform 0.2s ease;
        }

        .setting-toggle.active::after {
            transform: translateX(20px);
        }

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

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

        /* Mode sombre du chatbot */
        .chatbot-window.dark-mode {
            background: #1f2937;
            color: #f9fafb;
        }

        .chatbot-window.dark-mode .chatbot-header {
            background: linear-gradient(135deg, #374151 0%, #4b5563 100%);
        }

        .chatbot-window.dark-mode .chatbot-messages {
            background: #1f2937;
        }

        .chatbot-window.dark-mode .bot-message {
            background: #374151;
            color: #f9fafb;
        }

        .chatbot-window.dark-mode .user-message {
            background: #3b82f6;
            color: white;
        }

        .chatbot-window.dark-mode .chatbot-input-container {
            background: #1f2937;
            border-top-color: #374151;
        }

        .chatbot-window.dark-mode .chatbot-input {
            background: #374151;
            color: #f9fafb;
            border-color: #4b5563;
        }

        .chatbot-window.dark-mode .chatbot-input:focus {
            border-color: #3b82f6;
        }

        .chatbot-window.dark-mode .quick-btn {
            background: #374151;
            color: #f9fafb;
            border-color: #4b5563;
        }

        .chatbot-window.dark-mode .quick-btn:hover {
            background: #4b5563;
        }

        /* Barre de progression */
        .chatbot-progress-bar {
            background: #f8f9fa;
            border-radius: 10px;
            padding: 12px;
            margin: 10px 0;
            border: 1px solid #e9ecef;
        }

        .progress-info {
            display: flex;
            justify-content: space-between;
            margin-bottom: 8px;
            font-size: 12px;
            color: #6c757d;
            font-weight: 500;
        }

        .progress-bar {
            width: 100%;
            height: 8px;
            background: #e9ecef;
            border-radius: 4px;
            overflow: hidden;
        }

        .progress-fill {
            height: 100%;
            background: linear-gradient(90deg, #2c5aa0, #4a90e2);
            border-radius: 4px;
            transition: width 0.5s ease;
        }

        /* Optimisation mobile */
        @media (max-width: 768px) {
            .chatbot-quick-buttons .quick-btn {
                min-height: 48px;
                font-size: 16px;
                padding: 12px 16px;
                flex: 1;
                min-width: calc(50% - 4px);
            }

            .chatbot-message p {
                font-size: 16px;
                line-height: 1.6;
            }

            .chatbot-progress-bar {
                padding: 16px;
            }

            .progress-info {
                font-size: 14px;
            }

            .progress-bar {
                height: 10px;
            }

            .chatbot-nav-buttons {
                flex-direction: column;
                gap: 8px;
            }

            .chatbot-nav-btn {
                min-height: 48px;
                font-size: 16px;
            }
        }

        /* Amélioration de la lisibilité */
        .chatbot-message p {
            margin: 8px 0;
            line-height: 1.5;
        }

        .chatbot-message strong {
            color: #2c5aa0;
            font-weight: 600;
        }

        /* Animation pour les nouveaux messages */
        .chatbot-message {
            animation: slideInUp 0.3s ease-out;
        }

        @keyframes slideInUp {
            from {
                opacity: 0;
                transform: translateY(20px);
            }

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

        /* Styles pour les messages de fallback et formulaire de contact */
        .kap-fallback-message {
            position: fixed;
            top: 20px;
            right: 20px;
            background: white;
            border: 2px solid #ffc107;
            border-radius: 10px;
            padding: 20px;
            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
            z-index: 10000;
            max-width: 300px;
            animation: slideInRight 0.3s ease;
        }

        .kap-success-message {
            position: fixed;
            top: 20px;
            right: 20px;
            background: white;
            border: 2px solid #28a745;
            border-radius: 10px;
            padding: 20px;
            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
            z-index: 10000;
            max-width: 300px;
            animation: slideInRight 0.3s ease;
        }

        .kap-contact-form {
            background: var(--color-bg-light);
            border: 2px solid var(--color-primary);
            border-radius: 15px;
            padding: 20px;
            margin: 20px 0;
        }

        .contact-form-header h3 {
            color: var(--color-primary);
            margin-bottom: 10px;
        }

        .contact-form-header ul {
            margin: 10px 0;
            padding-left: 20px;
        }

        .contact-form-header li {
            margin: 5px 0;
            color: var(--color-text-gray);
        }

        .kap-form .form-group {
            margin: 15px 0;
        }

        .kap-form label {
            display: block;
            margin-bottom: 5px;
            font-weight: 600;
            color: var(--color-text-dark);
        }

        .kap-form input {
            width: 100%;
            padding: 12px;
            border: 2px solid var(--color-border);
            border-radius: 8px;
            font-size: 16px;
            transition: var(--transition);
        }

        .kap-form input:focus {
            outline: none;
            border-color: var(--color-primary);
            box-shadow: 0 0 0 3px rgba(0, 168, 168, 0.1);
        }

        .kap-form .btn-primary {
            width: 100%;
            padding: 15px;
            background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
            color: white;
            border: none;
            border-radius: 8px;
            font-size: 16px;
            font-weight: 600;
            cursor: pointer;
            transition: var(--transition);
        }

        .kap-form .btn-primary:hover {
            transform: translateY(-1px);
            box-shadow: 0 4px 15px rgba(0, 168, 168, 0.3);
        }

        /* Dashboard de monitoring */
        .kap-dashboard {
            position: fixed;
            top: 20px;
            left: 20px;
            background: white;
            border: 2px solid var(--color-primary);
            border-radius: 15px;
            padding: 20px;
            box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
            z-index: 10000;
            max-width: 300px;
            font-family: var(--font-family);
        }

        .kap-dashboard h3 {
            margin: 0 0 15px 0;
            color: var(--color-primary);
            font-size: 18px;
        }

        .metrics-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 15px;
            margin-bottom: 20px;
        }

        .metric {
            text-align: center;
            padding: 10px;
            background: var(--color-bg-light);
            border-radius: 8px;
        }

        .metric-value {
            display: block;
            font-size: 24px;
            font-weight: bold;
            color: var(--color-primary);
        }

        .metric-label {
            display: block;
            font-size: 12px;
            color: var(--color-text-gray);
            margin-top: 5px;
        }

        .sources h4 {
            margin: 0 0 10px 0;
            color: var(--color-text-dark);
            font-size: 14px;
        }

        .sources ul {
            margin: 0;
            padding: 0;
            list-style: none;
        }

        .sources li {
            padding: 5px 0;
            font-size: 12px;
            color: var(--color-text-gray);
            border-bottom: 1px solid var(--color-border);
        }

        .sources li:last-child {
            border-bottom: none;
        }

        /* Styles pour le rapport de diagnostic */
        .diagnostic-report {
            background: #ffffff;
            border: 1px solid #e5e7eb;
            border-radius: 12px;
            padding: 25px;
            margin: 15px 0;
            box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
            font-family: 'Arial', sans-serif;
            max-width: 100%;
            overflow-x: auto;
        }

        .report-header {
            text-align: center;
            margin-bottom: 20px;
            padding-bottom: 15px;
            border-bottom: 2px solid #f3f4f6;
        }

        .report-header h3 {
            color: #1f2937;
            font-size: 20px;
            margin: 0;
            font-weight: 700;
        }

        .report-section {
            margin-bottom: 25px;
            padding: 20px;
            background: #f9fafb;
            border-radius: 10px;
            border-left: 5px solid #3b82f6;
            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
        }

        .summary-section {
            background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
            border-left-color: #0ea5e9;
        }

        .financial-section {
            background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
            border-left-color: #22c55e;
        }

        .exclusion-section {
            background: linear-gradient(135deg, #fef2f2 0%, #fee2e2 100%);
            border-left-color: #ef4444;
        }

        .advice-section {
            background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
            border-left-color: #f59e0b;
        }

        .bonus-section {
            background: linear-gradient(135deg, #faf5ff 0%, #f3e8ff 100%);
            border-left-color: #a855f7;
        }

        .report-section h4 {
            color: #374151;
            font-size: 16px;
            margin: 0 0 12px 0;
            font-weight: 600;
        }

        .status-badge {
            display: inline-block;
            padding: 8px 16px;
            border-radius: 20px;
            font-weight: 600;
            font-size: 14px;
            margin-bottom: 10px;
        }

        .status-badge.eligible {
            background: #dcfce7;
            color: #166534;
            border: 1px solid #22c55e;
        }

        .status-badge.not-eligible {
            background: #fee2e2;
            color: #991b1b;
            border: 1px solid #ef4444;
        }

        .financial-summary {
            background: white;
            padding: 12px;
            border-radius: 6px;
            margin-top: 10px;
        }

        .financial-summary p {
            margin: 5px 0;
            font-size: 14px;
        }

        .criteria-list,
        .project-list,
        .financial-details,
        .steps-list,
        .bonus-list,
        .exclusion-list,
        .advice-list {
            margin: 0;
            padding-left: 20px;
        }

        .criteria-list li,
        .project-list li,
        .financial-details p,
        .bonus-list li,
        .exclusion-list li,
        .advice-list li {
            margin: 8px 0;
            font-size: 14px;
            line-height: 1.5;
        }

        .steps-list {
            counter-reset: step-counter;
        }

        .steps-list li {
            counter-increment: step-counter;
            margin: 10px 0;
            font-size: 14px;
            line-height: 1.5;
        }

        .steps-list li::before {
            content: counter(step-counter) ". ";
            font-weight: 600;
            color: #3b82f6;
        }

        .report-footer {
            text-align: center;
            margin-top: 20px;
            padding-top: 15px;
            border-top: 1px solid #e5e7eb;
            background: #f8fafc;
            border-radius: 6px;
        }

        .report-footer h4 {
            color: #1f2937;
            margin: 0 0 8px 0;
        }

        .report-footer p {
            margin: 0;
            color: #6b7280;
            font-size: 14px;
        }

        /* Améliorations du rapport chatbot */
        .summary-highlight {
            display: flex;
            gap: 25px;
            margin: 20px 0;
            padding: 25px;
            background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
            border-radius: 15px;
            border: 3px solid #0ea5e9;
            box-shadow: 0 4px 15px rgba(14, 165, 233, 0.2);
        }

        .summary-item {
            display: flex;
            flex-direction: column;
            align-items: center;
            flex: 1;
        }

        .summary-label {
            font-size: 14px;
            color: #374151;
            margin-bottom: 5px;
            font-weight: 500;
        }

        .summary-value {
            font-size: 28px;
            font-weight: 800;
            color: #0ea5e9;
            text-shadow: 0 2px 4px rgba(14, 165, 233, 0.3);
        }

        .summary-cta {
            text-align: center;
            margin-top: 15px;
        }

        .btn-details {
            background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
            color: white;
            border: none;
            padding: 15px 30px;
            border-radius: 30px;
            font-size: 16px;
            font-weight: 700;
            cursor: pointer;
            transition: all 0.3s ease;
            box-shadow: 0 6px 20px rgba(0, 168, 168, 0.4);
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }

        .btn-details:hover {
            transform: translateY(-2px);
            box-shadow: 0 6px 20px rgba(0, 168, 168, 0.4);
        }

        .btn-details:active {
            transform: translateY(0);
        }

        /* Styles pour le message de rapport dans le chatbot */
        .chatbot-message.report-message .message-content {
            padding: 0;
            background: transparent;
        }

        .chatbot-message.report-message .diagnostic-report {
            margin: 0;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
            border: 2px solid #e5e7eb;
        }

        .chatbot-message.report-message .report-header {
            background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
            color: white;
            margin: -1px -1px 0 -1px;
            border-radius: 10px 10px 0 0;
        }

        .chatbot-message.report-message .report-header h3 {
            color: white;
            margin: 0;
            padding: 15px 20px;
            font-size: 18px;
        }

        /* MOBILE FIRST - Rapport optimisé */
        .diagnostic-report {
            padding: 16px;
            margin: 8px 0;
        }

        .report-section {
            padding: 16px;
            margin-bottom: 20px;
        }

        .report-header h3 {
            font-size: 18px;
        }

        .report-section h4 {
            font-size: 16px;
        }

        .criteria-list,
        .project-list,
        .financial-details,
        .steps-list,
        .bonus-list,
        .exclusion-list,
        .advice-list {
            padding-left: 16px;
        }

        .criteria-list li,
        .project-list li,
        .financial-details p,
        .bonus-list li,
        .exclusion-list li,
        .advice-list li {
            font-size: 15px;
            line-height: 1.6;
        }

        .summary-highlight {
            flex-direction: column;
            gap: 16px;
        }

        .summary-item {
            padding: 16px;
            background: white;
            border-radius: 12px;
            border: 2px solid #e5e7eb;
            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
        }

        .btn-details {
            width: 100%;
            padding: 16px;
            font-size: 16px;
            min-height: 48px;
            touch-action: manipulation;
        }

        /* Desktop - Layout horizontal */
        @media (min-width: 769px) {
            .diagnostic-report {
                padding: 25px;
                margin: 15px 0;
            }

            .report-section {
                padding: 20px;
                margin-bottom: 25px;
            }

            .summary-highlight {
                flex-direction: row;
                gap: 25px;
            }

            .summary-item {
                padding: 25px;
            }

            .btn-details {
                width: auto;
                padding: 15px 30px;
            }
        }

        .chatbot-message.report-message .diagnostic-report {
            padding: 15px;
            margin: 8px 0;
        }

        .chatbot-message.report-message .report-header h3 {
            font-size: 18px;
            padding: 15px 20px;
        }

        .chatbot-message.report-message .summary-highlight {
            flex-direction: column;
            gap: 15px;
            padding: 20px;
        }

        .chatbot-message.report-message .summary-item {
            padding: 15px;
            background: white;
            border-radius: 10px;
            border: 2px solid #e5e7eb;
        }

        .chatbot-message.report-message .btn-details {
            width: 100%;
            padding: 18px;
            font-size: 16px;
            margin-top: 20px;
        }

        .chatbot-window.dark-mode .chatbot-nav-btn {
            background: #374151;
            color: #f9fafb;
            border-color: #4b5563;
        }

        .chatbot-window.dark-mode .chatbot-nav-btn:hover {
            background: #4b5563;
        }

        .chatbot-window.dark-mode .chatbot-nav-btn.active {
            background: #3b82f6;
            color: white;
        }

        .chatbot-window.dark-mode .chatbot-settings-panel {
            background: #1f2937;
            border-color: #374151;
        }

        .chatbot-window.dark-mode .setting-item {
            border-bottom-color: #374151;
        }

        .chatbot-window.dark-mode .setting-label {
            color: #f9fafb;
        }

        /* MOBILE FIRST - Container de saisie amélioré */
        .chatbot-input-container {
            padding: 16px;
            background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 100%);
            border-top: 1px solid #e5e7eb;
            position: relative;
            box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.05);
        }

        /* Desktop - Plus d'espace */
        @media (min-width: 769px) {
            .chatbot-input-container {
                padding: 20px;
            }
        }

        /* MOBILE FIRST - Wrapper de saisie optimisé */
        .chatbot-input-wrapper {
            display: flex;
            gap: 12px;
            align-items: flex-end;
            position: relative;
            background: white;
            border-radius: 30px;
            padding: 4px;
            box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
            border: none;
            transition: all 0.3s ease;
        }

        .chatbot-input-wrapper:focus-within {
            box-shadow: 0 4px 20px rgba(0, 168, 168, 0.25),
                0 0 0 3px rgba(0, 168, 168, 0.1);
            transform: translateY(-1px);
        }

        /* Desktop - Gap plus petit */
        @media (min-width: 769px) {
            .chatbot-input-wrapper {
                gap: 10px;
            }
        }

        /* MOBILE FIRST - Input de saisie amélioré */
        .chatbot-input {
            flex: 1;
            padding: 14px 20px;
            border: none;
            border-radius: 25px;
            font-size: 15px;
            outline: none;
            transition: all 0.3s ease;
            background: transparent;
            color: #1f2937;
            font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
            line-height: 1.5;
            resize: none;
            min-height: 20px;
            max-height: 120px;
        }

        .chatbot-input::placeholder {
            color: #9ca3af;
            font-weight: 400;
            transition: all 0.3s ease;
        }

        .chatbot-input:focus::placeholder {
            color: #6b7280;
            transform: translateY(-2px);
        }

        .chatbot-input:focus {
            background: transparent;
        }

        /* Desktop - Taille plus petite */
        @media (min-width: 769px) {
            .chatbot-input {
                padding: 12px 16px;
                font-size: 14px;
            }
        }

        /* MOBILE FIRST - Bouton d'envoi amélioré */
        .chatbot-send {
            width: 48px;
            height: 48px;
            background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
            border: none;
            border-radius: 50%;
            color: white;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: all 0.3s ease;
            position: relative;
            overflow: hidden;
            touch-action: manipulation;
            -webkit-tap-highlight-color: transparent;
            box-shadow: 0 2px 8px rgba(0, 168, 168, 0.3);
        }

        .chatbot-send::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: linear-gradient(135deg, var(--color-primary-dark) 0%, #004d52 100%);
            opacity: 0;
            transition: opacity 0.3s ease;
        }

        .chatbot-send:hover {
            transform: scale(1.05);
            box-shadow: 0 4px 20px rgba(0, 168, 168, 0.4);
        }

        .chatbot-send:hover::before {
            opacity: 1;
        }

        .chatbot-send:active {
            transform: scale(0.95);
        }

        .chatbot-send svg {
            position: relative;
            z-index: 1;
            transition: transform 0.3s ease;
        }

        .chatbot-send:hover svg {
            transform: translateX(2px);
        }

        .chatbot-send:disabled {
            opacity: 0.5;
            cursor: not-allowed;
            transform: none;
            box-shadow: 0 2px 8px rgba(0, 168, 168, 0.2);
        }

        .chatbot-send:disabled:hover {
            transform: none;
            box-shadow: 0 2px 8px rgba(0, 168, 168, 0.2);
        }

        .chatbot-send:disabled::before {
            opacity: 0;
        }

        /* Desktop - Bouton plus petit */
        @media (min-width: 769px) {
            .chatbot-send {
                width: 40px;
                height: 40px;
            }
        }

        /* MOBILE FIRST - Indicateur de typing amélioré */
        .chatbot-typing {
            display: flex;
            align-items: center;
            gap: 12px;
            margin-top: 12px;
            color: #6b7280;
            font-size: 15px;
            font-weight: 500;
            animation: fadeInUp 0.3s ease-out;
        }

        /* Desktop - Plus petit */
        @media (min-width: 769px) {
            .chatbot-typing {
                gap: 10px;
                margin-top: 10px;
                font-size: 12px;
            }
        }

        /* MOBILE FIRST - Points de typing améliorés */
        .typing-dots {
            display: flex;
            gap: 6px;
            align-items: center;
        }

        .typing-dots span {
            width: 8px;
            height: 8px;
            background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
            border-radius: 50%;
            animation: typing 1.4s infinite ease-in-out;
            box-shadow: 0 2px 4px rgba(0, 168, 168, 0.3);
        }

        .typing-dots span:nth-child(1) {
            animation-delay: -0.32s;
        }

        .typing-dots span:nth-child(2) {
            animation-delay: -0.16s;
        }

        .typing-dots span:nth-child(3) {
            animation-delay: 0s;
        }

        @keyframes typing {

            0%,
            80%,
            100% {
                transform: scale(0.8);
                opacity: 0.5;
            }

            40% {
                transform: scale(1.2);
                opacity: 1;
            }
        }

        /* Desktop - Points plus petits */
        @media (min-width: 769px) {
            .typing-dots {
                gap: 4px;
            }

            .typing-dots span {
                width: 6px;
                height: 6px;
            }
        }

        /* MOBILE FIRST - Footer de saisie */
        .chatbot-input-footer {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-top: 8px;
            padding: 0 4px;
            opacity: 0.7;
            transition: opacity 0.3s ease;
        }

        .char-counter {
            font-size: 12px;
            color: #9ca3af;
            font-weight: 500;
            transition: color 0.3s ease;
        }

        .char-counter.warning {
            color: #f59e0b;
        }

        .char-counter.error {
            color: #ef4444;
        }

        .input-hints {
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .hint-text {
            font-size: 11px;
            color: #9ca3af;
            font-weight: 400;
        }

        .chatbot-input-wrapper:focus-within+.chatbot-typing+.chatbot-input-footer {
            opacity: 1;
        }

        /* Desktop - Footer plus petit */
        @media (min-width: 769px) {
            .chatbot-input-footer {
                margin-top: 6px;
            }

            .char-counter {
                font-size: 11px;
            }

            .hint-text {
                font-size: 10px;
            }
        }

        /* Responsive */
        @media (max-width: 768px) {
            .chatbot-container {
                bottom: 15px;
                right: 15px;
            }

            .chatbot-window {
                width: calc(100vw - 30px);
                height: calc(100vh - 100px);
                bottom: 80px;
                right: 0;
                left: 0;
                margin: 0 auto;
            }

            .chatbot-toggle {
                width: 50px;
                height: 50px;
            }
        }

        /* MOBILE FIRST - Scrollbar optimisée */
        .chatbot-messages::-webkit-scrollbar {
            width: 6px;
        }

        .chatbot-messages::-webkit-scrollbar-track {
            background: #f1f1f1;
            border-radius: 3px;
        }

        .chatbot-messages::-webkit-scrollbar-thumb {
            background: #c1c1c1;
            border-radius: 3px;
        }

        .chatbot-messages::-webkit-scrollbar-thumb:hover {
            background: #a8a8a8;
        }

        /* Indicateur de scroll mobile */
        .chatbot-messages::after {
            content: '';
            position: sticky;
            bottom: 0;
            left: 0;
            right: 0;
            height: 20px;
            background: linear-gradient(transparent, #f8f9fa);
            pointer-events: none;
            z-index: 1;
        }

        .chatbot-messages::-webkit-scrollbar-track {
            background: #f1f1f1;
        }

        .chatbot-messages::-webkit-scrollbar-thumb {
            background: #c1c1c1;
            border-radius: 2px;
        }

        .chatbot-messages::-webkit-scrollbar-thumb:hover {
            background: #a8a8a8;
        }
    
/* ==========================================================================
   🚀 PREMIUM THEME OVERRIDES (V2) - AGENCY & SAAS STYLE
   ========================================================================== */

/* 1. UPGRADED VARIABLES */
:root {
    /* Primary: Vibrant Teal + Deep Ocean Blue */
    --color-primary: #00b4d8; /* Brighter Blue/Teal */
    --color-primary-dark: #0077b6;
    --color-accent: #48cae4;
    --color-secondary: #023e8a; /* Deep Blue for contrast */
    
    /* Surface Colors (SaaS Style) */
    --color-bg-light: #f0f4f8; /* Cool Gray/Blue tint */
    --color-bg-white: #ffffff;
    --color-surface-glass: rgba(255, 255, 255, 0.7);
    
    /* Typography */
    --font-heading: 'Montserrat', system-ui, -apple-system, sans-serif;
    --font-body: 'Segoe UI', system-ui, 'Roboto', sans-serif;
    
    /* Modern Shadows */
    --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
    --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
    --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
    --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
    --shadow-glow: 0 0 20px rgba(0, 180, 216, 0.3);
    
    /* Borders */
    --glass-border: 1px solid rgba(255, 255, 255, 0.5);
    --radius-lg: 24px;
    --radius-xl: 32px;
}

body {
    background-color: var(--color-bg-light);
    color: #1e293b; /* Slate 800 */
    font-family: var(--font-body);
}

h1, h2, h3, h4, .btn {
    font-family: var(--font-heading);
    letter-spacing: -0.025em; /* Tight tracking for modern look */
}

/* 2. GLASSMORPHISM NAVIGATION */
.nav {
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.3);
    box-shadow: var(--shadow-sm);
}

.nav-link {
    font-weight: 600;
    color: #334155; /* Slate 700 */
}

.nav-link:hover {
    color: var(--color-primary);
}

/* 3. HERO SECTION - MESH GRADIENT */
.hero {
    background: 
        radial-gradient(circle at 10% 20%, rgba(0, 180, 216, 0.1) 0%, transparent 40%),
        radial-gradient(circle at 90% 80%, rgba(2, 62, 138, 0.05) 0%, transparent 40%),
        linear-gradient(135deg, #ffffff 0%, #f0f9ff 100%);
    padding-top: 160px; /* Space for fixed nav */
    padding-bottom: 100px;
}

.hero h1 {
    font-size: 3.5rem;
    background: linear-gradient(135deg, #023e8a 0%, #00b4d8 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    margin-bottom: 1.5rem;
    text-shadow: 0 20px 40px rgba(0, 180, 216, 0.15); /* Soft glow behind text */
}

.hero-subtitle {
    font-size: 1.25rem;
    color: #475569; /* Slate 600 */
    line-height: 1.8;
}

/* 4. PREMIUM CARDS (Avantages & Secteurs) */
.avantage-card, .demo-card-home, .calculateur-container, .temoignage-card {
    background: var(--color-bg-white);
    border: var(--glass-border);
    box-shadow: var(--shadow-md);
    border-radius: var(--radius-lg);
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); /* Bouncy spring */
    position: relative;
    overflow: hidden;
}

.avantage-card:hover, .demo-card-home:hover {
    transform: translateY(-8px) scale(1.01);
    box-shadow: var(--shadow-xl);
    border-color: var(--color-primary);
}

/* Subtle Gradient overlay on hover */
.avantage-card::before, .demo-card-home::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; height: 6px;
    background: linear-gradient(90deg, var(--color-secondary), var(--color-primary));
    opacity: 0;
    transition: opacity 0.3s ease;
}

.avantage-card:hover::before, .demo-card-home:hover::before {
    opacity: 1;
}

.avantage-icon {
    background: linear-gradient(135deg, #e0f2fe 0%, #bae6fd 100%);
    color: var(--color-primary);
    box-shadow: inset 0 2px 4px rgba(255,255,255,0.8);
    width: 90px;
    height: 90px;
}

/* 5. BUTTON UPGRADES */
.btn {
    border-radius: 50px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-size: 0.95rem;
    padding: 18px 36px;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
    z-index: 1;
}

.btn-primary {
    background: linear-gradient(135deg, var(--color-secondary) 0%, var(--color-primary) 100%);
    background-size: 200% auto;
    box-shadow: 0 4px 15px rgba(0, 180, 216, 0.4);
    border: none;
}

.btn-primary:hover {
    background-position: right center;
    box-shadow: 0 8px 25px rgba(0, 180, 216, 0.6);
    transform: translateY(-2px);
}

/* 6. CALCULATEUR - GLOW EFFECT */
.calculateur-container {
    border: 1px solid rgba(0, 180, 216, 0.2);
    box-shadow: var(--shadow-lg), var(--shadow-glow);
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(10px);
}

.calculateur-container .form-field:focus {
    box-shadow: 0 0 0 4px rgba(0, 180, 216, 0.15);
    border-color: var(--color-primary);
}

/* 7. FOOTER REDESIGN */
.footer {
    background: #0f172a; /* Slate 900 */
    color: #e2e8f0;
    position: relative;
}

.footer::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.1), transparent);
}

.footer-title {
    color: #ffffff;
}

.footer-social a {
    background: rgba(255,255,255,0.05);
    color: #94a3b8;
}

.footer-social a:hover {
    background: var(--color-primary);
    color: white;
}

/* 8. ANIMATIONS & MICRO-INTERACTIONS */
@keyframes float-y {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}

.hero img.floating-ui {
    animation: float-y 6s ease-in-out infinite;
}

/* Smooth reveal for sections */
.section {
    opacity: 1; /* Default visible for simplicity, add JS closer for scroll reveal */
}


/* 9. SCROLL REVEAL ANIMATIONS */
.reveal-element {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s cubic-bezier(0.5, 0, 0, 1), transform 0.8s cubic-bezier(0.5, 0, 0, 1);
    will-change: opacity, transform;
}

.reveal-element.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Stagger delays for grids */
.reveal-delay-100 { transition-delay: 0.1s; }
.reveal-delay-200 { transition-delay: 0.2s; }
.reveal-delay-300 { transition-delay: 0.3s; }

