.elementor-4741 .elementor-element.elementor-element-9e505d1{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-4741 .elementor-element.elementor-element-81f8f59{--display:flex;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );text-transform:var( --e-global-typography-primary-text-transform );font-style:var( --e-global-typography-primary-font-style );color:var( --e-global-color-primary );}.elementor-4741 .elementor-element.elementor-element-b128d9d > .elementor-widget-container{padding:50px 0px 0px 0px;}.elementor-4741 .elementor-element.elementor-element-b128d9d{text-align:center;}.elementor-4741 .elementor-element.elementor-element-b128d9d .elementor-heading-title{font-family:"Rubik Mono One", Sans-serif;font-size:36px;font-weight:600;text-transform:uppercase;font-style:italic;letter-spacing:0.7px;word-spacing:0px;color:#FFFFFF;}.elementor-4741 .elementor-element.elementor-element-3c6b8c8{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-widget-form .elementor-field-group > label, .elementor-widget-form .elementor-field-subgroup label{color:var( --e-global-color-text );}.elementor-widget-form .elementor-field-group > label{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-form .elementor-field-type-html{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-form .elementor-field-group .elementor-field{color:var( --e-global-color-text );}.elementor-widget-form .elementor-field-group .elementor-field, .elementor-widget-form .elementor-field-subgroup label{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-form .elementor-button{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );text-transform:var( --e-global-typography-accent-text-transform );}.elementor-widget-form .e-form__buttons__wrapper__button-next{background-color:var( --e-global-color-accent );}.elementor-widget-form .elementor-button[type="submit"]{background-color:var( --e-global-color-accent );}.elementor-widget-form .e-form__buttons__wrapper__button-previous{background-color:var( --e-global-color-accent );}.elementor-widget-form .elementor-message{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-form .e-form__indicators__indicator, .elementor-widget-form .e-form__indicators__indicator__label{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );text-transform:var( --e-global-typography-accent-text-transform );}.elementor-widget-form{--e-form-steps-indicator-inactive-primary-color:var( --e-global-color-text );--e-form-steps-indicator-active-primary-color:var( --e-global-color-accent );--e-form-steps-indicator-completed-primary-color:var( --e-global-color-accent );--e-form-steps-indicator-progress-color:var( --e-global-color-accent );--e-form-steps-indicator-progress-background-color:var( --e-global-color-text );--e-form-steps-indicator-progress-meter-color:var( --e-global-color-text );}.elementor-widget-form .e-form__indicators__indicator__progress__meter{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );text-transform:var( --e-global-typography-accent-text-transform );}.elementor-4741 .elementor-element.elementor-element-d9e404b .elementor-field-group{padding-right:calc( 10px/2 );padding-left:calc( 10px/2 );margin-bottom:10px;}.elementor-4741 .elementor-element.elementor-element-d9e404b .elementor-form-fields-wrapper{margin-left:calc( -10px/2 );margin-right:calc( -10px/2 );margin-bottom:-10px;}.elementor-4741 .elementor-element.elementor-element-d9e404b .elementor-field-group.recaptcha_v3-bottomleft, .elementor-4741 .elementor-element.elementor-element-d9e404b .elementor-field-group.recaptcha_v3-bottomright{margin-bottom:0;}body.rtl .elementor-4741 .elementor-element.elementor-element-d9e404b .elementor-labels-inline .elementor-field-group > label{padding-left:0px;}body:not(.rtl) .elementor-4741 .elementor-element.elementor-element-d9e404b .elementor-labels-inline .elementor-field-group > label{padding-right:0px;}body .elementor-4741 .elementor-element.elementor-element-d9e404b .elementor-labels-above .elementor-field-group > label{padding-bottom:0px;}.elementor-4741 .elementor-element.elementor-element-d9e404b .elementor-field-type-html{padding-bottom:0px;}.elementor-4741 .elementor-element.elementor-element-d9e404b .elementor-field-group:not(.elementor-field-type-upload) .elementor-field:not(.elementor-select-wrapper){background-color:#ffffff;}.elementor-4741 .elementor-element.elementor-element-d9e404b .elementor-field-group .elementor-select-wrapper select{background-color:#ffffff;}.elementor-4741 .elementor-element.elementor-element-d9e404b .e-form__buttons__wrapper__button-next{color:#ffffff;}.elementor-4741 .elementor-element.elementor-element-d9e404b .elementor-button[type="submit"]{color:#ffffff;}.elementor-4741 .elementor-element.elementor-element-d9e404b .elementor-button[type="submit"] svg *{fill:#ffffff;}.elementor-4741 .elementor-element.elementor-element-d9e404b .e-form__buttons__wrapper__button-previous{color:#ffffff;}.elementor-4741 .elementor-element.elementor-element-d9e404b .e-form__buttons__wrapper__button-next:hover{color:#ffffff;}.elementor-4741 .elementor-element.elementor-element-d9e404b .elementor-button[type="submit"]:hover{color:#ffffff;}.elementor-4741 .elementor-element.elementor-element-d9e404b .elementor-button[type="submit"]:hover svg *{fill:#ffffff;}.elementor-4741 .elementor-element.elementor-element-d9e404b .e-form__buttons__wrapper__button-previous:hover{color:#ffffff;}.elementor-4741 .elementor-element.elementor-element-d9e404b{--e-form-steps-indicators-spacing:20px;--e-form-steps-indicator-padding:30px;--e-form-steps-indicator-inactive-secondary-color:#ffffff;--e-form-steps-indicator-active-secondary-color:#ffffff;--e-form-steps-indicator-completed-secondary-color:#ffffff;--e-form-steps-divider-width:1px;--e-form-steps-divider-gap:10px;}.elementor-4741 .elementor-element.elementor-element-167c979{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}:root{--page-title-display:none;}@media(max-width:1024px){.elementor-widget-heading .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );}.elementor-widget-form .elementor-field-group > label{font-size:var( --e-global-typography-text-font-size );}.elementor-widget-form .elementor-field-type-html{font-size:var( --e-global-typography-text-font-size );}.elementor-widget-form .elementor-field-group .elementor-field, .elementor-widget-form .elementor-field-subgroup label{font-size:var( --e-global-typography-text-font-size );}.elementor-widget-form .elementor-message{font-size:var( --e-global-typography-text-font-size );}}@media(max-width:767px){.elementor-widget-heading .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );}.elementor-4741 .elementor-element.elementor-element-b128d9d .elementor-heading-title{font-size:30px;}.elementor-widget-form .elementor-field-group > label{font-size:var( --e-global-typography-text-font-size );}.elementor-widget-form .elementor-field-type-html{font-size:var( --e-global-typography-text-font-size );}.elementor-widget-form .elementor-field-group .elementor-field, .elementor-widget-form .elementor-field-subgroup label{font-size:var( --e-global-typography-text-font-size );}.elementor-widget-form .elementor-message{font-size:var( --e-global-typography-text-font-size );}}/* Start custom CSS for heading, class: .elementor-element-b128d9d *//* ======================================================= */
/* CODE OPTIMISÉ ET COMMENTÉ                 */
/* ======================================================= */

/*
 * CONTEXTE :
 * On suppose que ces variables sont définies globalement.
 * Je les place ici pour la clarté de l'exemple.
*/
:root {
    --primary: #9333ea;
    --gradient: linear-gradient(135deg, var(--primary), #7c3aed);
}

/* Titre du formulaire */
.NovaTitle {
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 700;
    margin-bottom: 30px; /* Marge en px peut rester, car elle structure la page */
    text-align: center;
    background: linear-gradient(135deg, #ffffff 0%, var(--primary) 50%, #ffffff 100%);
    background-size: 200% 200%;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    animation: gradient 3s ease-in-out infinite;
    position: relative; /* Indispensable pour le positionnement de ::after */
    z-index: 2;
}

/* Effet de pulsation sur le soulignement du titre */
.NovaTitle::after {
    content: '';
    position: absolute;
    /* ROBUSTESSE : Utilisation de 'em' pour que le soulignement s'adapte à la taille du texte */
    width: 2.5em;
    bottom: -0.2em;
    height: 3px;
    left: 50%;
    /* * PERFORMANCE : On déplace la transformation ici. translateX(-50%) centre l'élément,
     * puis l'animation 'titlePulse' le redimensionnera depuis ce centre.
    */
    transform: translateX(-50%);
    transform-origin: center; /* Assure que le scale se fait bien depuis le centre */
    background: var(--gradient);
    border-radius: 2px;
    animation: titlePulse 2s ease-in-out infinite;
}

/* Animation du gradient sur le texte (inchangée, elle est déjà performante) */
@keyframes gradient {
    0%, 100% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
}

/* Animation du soulignement (optimisée pour la performance) */
@keyframes titlePulse {
    0%, 100% {
        /* PERFORMANCE: On anime 'transform' et 'opacity', deux propriétés très performantes */
        transform: translateX(-50%) scaleX(0.8);
        opacity: 0.7;
    }
    50% {
        transform: translateX(-50%) scaleX(1);
        opacity: 1;
    }
}


/* ======================================================= */
/* Responsive                          */
/* ======================================================= */

@media (max-width: 768px) {
    .NovaTitle {
        margin-bottom: 25px;
    }

    /* * MAINTENABILITÉ : Le sélecteur est groupé avec la règle de base
     * pour trouver plus facilement tous les styles associés.
    */
    :is(#elementorForm, .elementorForm) {
        padding: 30px 20px;
        margin: 0 15px;
    }
    
    /* LISIBILITÉ : Utilisation de :is() pour simplifier la liste des sélecteurs */
    :is(#elementorForm, .elementorForm) :is(.elementor-button, button[type="submit"]) {
        width: 100% !important;
        padding: 18px 32px !important;
    }
}

@media (max-width: 480px) {
    .NovaTitle {
        margin-bottom: 20px;
    }
    /* Pas besoin de redéfinir la taille de ::after car elle est désormais relative (em) */
}/* End custom CSS */
/* Start custom CSS for form, class: .elementor-element-d9e404b *//* ======================================================= */
/* STYLE DU FORMULAIRE NOVA LEAD (THÈME SOMBRE) */
/* ======================================================= */

/* -- 1. Définition de la palette de couleurs -- */
/* Ces variables sont adaptées pour un rendu optimal sur votre fond sombre. */
#novalead_form {
    --primary: #C917F9;
    --gradient: linear-gradient(135deg, #C917F9 0%, #ff6b9d 100%);
    --glass: rgba(15, 15, 30, 0.5); /* Effet "verre fumé" */
    --glass-border: rgba(201, 23, 249, 0.4);
    --shadow: rgba(201, 23, 249, 0.2); /* Lueur violette au lieu d'une ombre */
    --text: rgba(255, 255, 255, 0.9); /* Texte clair */
    --text-sec: rgba(255, 255, 255, 0.7);
    --input-bg: rgba(25, 25, 45, 0.6);
    --input-border: rgba(201, 23, 249, 0.2);
    --radius: 24px;
    --transition: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* -- 2. Conteneur principal du formulaire -- */
#novalead_form .elementor-form {
    background: var(--glass);
    backdrop-filter: blur(20px);
    border: 1px solid var(--glass-border);
    border-radius: var(--radius);
    padding: 40px;
    position: relative;
    overflow: hidden;
    transition: all 0.4s var(--transition);
    max-width: 600px;
    margin: 0 auto;
}

#novalead_form .elementor-form:hover {
    transform: translateY(-5px);
    border-color: var(--primary);
    box-shadow: 0 20px 40px var(--shadow);
}

/* Effet de brillance au survol */
#novalead_form .elementor-form::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(201, 23, 249, 0.1), transparent);
    transition: left 0.6s ease;
    z-index: 1;
}

#novalead_form .elementor-form:hover::before {
    left: 100%;
}

/* -- 3. Champs du formulaire -- */
#novalead_form .elementor-field-group {
    margin-bottom: 25px;
    position: relative;
    z-index: 2;
}

#novalead_form .elementor-field-label {
    color: var(--text);
    font-weight: 600;
    margin-bottom: 8px;
    display: block;
    font-size: 1rem;
}

#novalead_form .elementor-field {
    width: 100%;
    padding: 16px 20px;
    background: var(--input-bg);
    border: 2px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    color: var(--text);
    font-size: 1rem;
    transition: all 0.3s var(--transition);
    backdrop-filter: blur(10px);
}

#novalead_form .elementor-field:focus {
    outline: none;
    border-color: var(--primary);
    background: rgba(45, 45, 65, 0.7);
    box-shadow: 0 0 20px rgba(201, 23, 249, 0.3);
    transform: translateY(-2px);
}

#novalead_form .elementor-field::placeholder {
    color: var(--text-sec);
}

#novalead_form textarea.elementor-field {
    min-height: 120px;
    resize: vertical;
}

/* -- 4. Bouton de soumission -- */
#novalead_form .elementor-button {
    background: var(--gradient) !important;
    border: none !important;
    padding: 16px 32px !important;
    border-radius: 50px !important;
    color: white !important;
    font-weight: 600 !important;
    font-size: 1.1rem !important;
    cursor: pointer !important;
    transition: all 0.3s var(--transition) !important;
    position: relative !important;
    overflow: hidden !important;
    width: 100% !important; /* Pour s'adapter au design du form builder */
}

#novalead_form .elementor-button:hover {
    transform: translateY(-3px) scale(1.02) !important;
    box-shadow: 0 10px 30px rgba(201, 23, 249, 0.4) !important;
}

/* -- 5. Messages de statut (erreur/succès) -- */
#novalead_form .elementor-message {
    padding: 15px 20px;
    border-radius: 12px;
    margin: 20px 0;
    font-weight: 500;
}

#novalead_form .elementor-message-success {
    background: rgba(34, 197, 94, 0.1);
    border: 1px solid rgba(34, 197, 94, 0.3);
    color: #22c55e;
}

#novalead_form .elementor-message-danger {
    background: rgba(239, 68, 68, 0.1);
    border: 1px solid rgba(239, 68, 68, 0.3);
    color: #ef4444;
}

/* -- 6. Responsive -- */
@media (max-width: 768px) {
    #novalead_form .elementor-form {
        padding: 30px 20px;
        margin: 0 15px;
    }
}

@media (max-width: 480px) {
    #novalead_form .elementor-form {
        padding: 25px 15px;
    }
    
    #novalead_form .elementor-field {
        padding: 14px 16px;
        font-size: 16px; /* Empêche le zoom automatique sur iOS lors du focus */
    }
}/* End custom CSS */