        /* Réinitialisation et base typographique */
        body {
            font-family: 'Consolas', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            margin: 0;
            padding: 0;
            background-color: #f4f6f8; /* Un gris très doux pour le fond de page */
            color: #333;
            display: flex;
            justify-content: center;
            align-items: center;
            min-height: 100vh; /* Centre le formulaire verticalement */
        }

        /* Le conteneur du formulaire (la "carte") */
        .form-container {
            background-color: #ffffff;
            padding: 40px;
            border-radius: 8px; /* Coins arrondis élégants */
            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); /* Ombre portée subtile */
            width: 100%;
            max-width: 500px; /* Largeur maximale pour la lisibilité */
            box-sizing: border-box;
        }

        /* Titre */
        h2 {
            margin-top: 0;
            margin-bottom: 25px;
            color: #2c3e50;
            text-align: center;
            font-weight: 600;
            font-size: 1.8rem;
            border-bottom: 2px solid #e0e0e0;
            padding-bottom: 15px;
        }

        /* Styles des étiquettes (Labels) */
        label {
            display: block; /* Force le retour à la ligne */
            margin-bottom: 8px;
            font-weight: 500;
            color: #555;
        }

        /* Styles des champs de saisie */
        input[type="text"],
        input[type="email"],
        textarea {
            width: 100%;
            padding: 12px;
            margin-bottom: 20px;
            border: 1px solid #ddd;
            border-radius: 4px;
            box-sizing: border-box; /* Inclut le padding dans la largeur */
            font-family: inherit;
            font-size: 1rem;
            transition: border-color 0.3s ease, box-shadow 0.3s ease;
        }

        /* Effet au focus (quand on clique dans le champ) */
        input:focus,
        textarea:focus {
            outline: none;
            border-color: #0056b3;
            box-shadow: 0 0 5px rgba(0, 86, 179, 0.2);
        }

        /* Zone de texte */
        textarea {
            resize: vertical; /* Autorise le redimensionnement vertical uniquement */
            min-height: 100px;
        }

        /* Question anti-robot */
        .captcha-group {
            background-color: #f9f9f9;
            padding: 15px;
            border-radius: 4px;
            margin-bottom: 20px;
            border-left: 3px solid #0056b3;
        }
        
        .captcha-group label {
            margin-bottom: 10px;
            color: #333;
        }

        .captcha-group input {
            margin-bottom: 0;
            width: 60px; /* Champ plus petit pour la réponse */
            text-align: center;
        }

        /* Message d'erreur */
        .error {
            display: none; /* Caché par défaut */
            color: #d9534f;
            background-color: #fde8e8;
            padding: 10px;
            border-radius: 4px;
            margin-top: 10px;
            font-size: 0.9rem;
            border: 1px solid #fbd5d5;
        }

        /* Bouton d'envoi */
        button {
            width: 100%;
            padding: 14px;
            background-color: #0056b3;
            color: white;
            border: none;
            border-radius: 4px;
            font-size: 1.1rem;
            font-weight: 600;
            cursor: pointer;
            transition: background-color 0.3s ease, transform 0.1s ease;
        }

        button:hover {
            background-color: #004494;
        }

        button:active {
            transform: scale(0.98); /* Petit effet de clic */
        }