.elementor-4489 .elementor-element.elementor-element-db6401b{--display:flex;}.elementor-4489 .elementor-element.elementor-element-a66c9ea .elementor-field-group{padding-right:calc( 10px/2 );padding-left:calc( 10px/2 );margin-bottom:10px;}.elementor-4489 .elementor-element.elementor-element-a66c9ea .elementor-form-fields-wrapper{margin-left:calc( -10px/2 );margin-right:calc( -10px/2 );margin-bottom:-10px;}.elementor-4489 .elementor-element.elementor-element-a66c9ea .elementor-field-group.recaptcha_v3-bottomleft, .elementor-4489 .elementor-element.elementor-element-a66c9ea .elementor-field-group.recaptcha_v3-bottomright{margin-bottom:0;}body.rtl .elementor-4489 .elementor-element.elementor-element-a66c9ea .elementor-labels-inline .elementor-field-group > label{padding-left:0px;}body:not(.rtl) .elementor-4489 .elementor-element.elementor-element-a66c9ea .elementor-labels-inline .elementor-field-group > label{padding-right:0px;}body .elementor-4489 .elementor-element.elementor-element-a66c9ea .elementor-labels-above .elementor-field-group > label{padding-bottom:0px;}.elementor-4489 .elementor-element.elementor-element-a66c9ea .elementor-field-group > label, .elementor-4489 .elementor-element.elementor-element-a66c9ea .elementor-field-subgroup label{color:#000000;}.elementor-4489 .elementor-element.elementor-element-a66c9ea .elementor-field-type-html{padding-bottom:0px;color:#000000;}.elementor-4489 .elementor-element.elementor-element-a66c9ea .elementor-field-group .elementor-field:not(.elementor-select-wrapper){background-color:#FFFFFF;}.elementor-4489 .elementor-element.elementor-element-a66c9ea .elementor-field-group .elementor-select-wrapper select{background-color:#FFFFFF;}.elementor-4489 .elementor-element.elementor-element-a66c9ea .e-form__buttons__wrapper__button-next{color:#ffffff;}.elementor-4489 .elementor-element.elementor-element-a66c9ea .elementor-button[type="submit"]{color:#ffffff;}.elementor-4489 .elementor-element.elementor-element-a66c9ea .elementor-button[type="submit"] svg *{fill:#ffffff;}.elementor-4489 .elementor-element.elementor-element-a66c9ea .e-form__buttons__wrapper__button-previous{color:#ffffff;}.elementor-4489 .elementor-element.elementor-element-a66c9ea .e-form__buttons__wrapper__button-next:hover{color:#ffffff;}.elementor-4489 .elementor-element.elementor-element-a66c9ea .elementor-button[type="submit"]:hover{color:#ffffff;}.elementor-4489 .elementor-element.elementor-element-a66c9ea .elementor-button[type="submit"]:hover svg *{fill:#ffffff;}.elementor-4489 .elementor-element.elementor-element-a66c9ea .e-form__buttons__wrapper__button-previous:hover{color:#ffffff;}.elementor-4489 .elementor-element.elementor-element-a66c9ea{--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-4489 .elementor-element.elementor-element-73b004b .elementor-field-group{padding-right:calc( 10px/2 );padding-left:calc( 10px/2 );margin-bottom:10px;}.elementor-4489 .elementor-element.elementor-element-73b004b .elementor-form-fields-wrapper{margin-left:calc( -10px/2 );margin-right:calc( -10px/2 );margin-bottom:-10px;}.elementor-4489 .elementor-element.elementor-element-73b004b .elementor-field-group.recaptcha_v3-bottomleft, .elementor-4489 .elementor-element.elementor-element-73b004b .elementor-field-group.recaptcha_v3-bottomright{margin-bottom:0;}body.rtl .elementor-4489 .elementor-element.elementor-element-73b004b .elementor-labels-inline .elementor-field-group > label{padding-left:0px;}body:not(.rtl) .elementor-4489 .elementor-element.elementor-element-73b004b .elementor-labels-inline .elementor-field-group > label{padding-right:0px;}body .elementor-4489 .elementor-element.elementor-element-73b004b .elementor-labels-above .elementor-field-group > label{padding-bottom:0px;}.elementor-4489 .elementor-element.elementor-element-73b004b .elementor-field-type-html{padding-bottom:0px;}.elementor-4489 .elementor-element.elementor-element-73b004b .elementor-field-group .elementor-field:not(.elementor-select-wrapper){background-color:#FFFFFF;}.elementor-4489 .elementor-element.elementor-element-73b004b .elementor-field-group .elementor-select-wrapper select{background-color:#FFFFFF;}.elementor-4489 .elementor-element.elementor-element-73b004b .e-form__buttons__wrapper__button-next{color:#ffffff;}.elementor-4489 .elementor-element.elementor-element-73b004b .elementor-button[type="submit"]{color:#ffffff;}.elementor-4489 .elementor-element.elementor-element-73b004b .elementor-button[type="submit"] svg *{fill:#ffffff;}.elementor-4489 .elementor-element.elementor-element-73b004b .e-form__buttons__wrapper__button-previous{color:#ffffff;}.elementor-4489 .elementor-element.elementor-element-73b004b .e-form__buttons__wrapper__button-next:hover{color:#ffffff;}.elementor-4489 .elementor-element.elementor-element-73b004b .elementor-button[type="submit"]:hover{color:#ffffff;}.elementor-4489 .elementor-element.elementor-element-73b004b .elementor-button[type="submit"]:hover svg *{fill:#ffffff;}.elementor-4489 .elementor-element.elementor-element-73b004b .e-form__buttons__wrapper__button-previous:hover{color:#ffffff;}.elementor-4489 .elementor-element.elementor-element-73b004b{--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-4489 .elementor-element.elementor-element-84e0ec7 > .elementor-widget-container{background-color:transparent;margin:0px 0px 0px 0px;padding:14px 14px 14px 14px;background-image:linear-gradient(180deg, #1156A4 0%, #E8BB37 100%);}.elementor-4489 .elementor-element.elementor-element-84e0ec7{text-align:center;}.elementor-4489 .elementor-element.elementor-element-84e0ec7 .elementor-heading-title{font-family:"Arial", Sans-serif;font-size:28px;font-weight:500;text-shadow:0px 0px 10px #000000;color:#FFFFFF;}.elementor-4489 .elementor-element.elementor-element-cea5ca9{--display:flex;}/* Start custom CSS for form, class: .elementor-element-a66c9ea *//* CSS Elementor Form - Design Ultra Moderne Toiture - Mobile Optimisé avec textes encore agrandis et bordures noires */

/* Variables CSS pour cohérence */
:root {
    --primary-gradient: linear-gradient(135deg, #ff6b6b 0%, #ee5a52 50%, #dc2626 100%);
    --secondary-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    --surface-gradient: linear-gradient(145deg, #ffffff 0%, #f8fafc 100%);
    --background-gradient: linear-gradient(135deg, #f1f5f9 0%, #e2e8f0 25%, #cbd5e1 100%);
    --glass-bg: rgba(255, 255, 255, 0.85);
    --glass-border: rgba(255, 255, 255, 0.2);
    --shadow-soft: 0 8px 32px rgba(0, 0, 0, 0.1);
    --shadow-hover: 0 20px 60px rgba(0, 0, 0, 0.15);
    --shadow-focus: 0 0 0 4px rgba(255, 107, 107, 0.15);
    --border-radius: 16px;
    --border-radius-lg: 24px;
    --transition-smooth: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
}

/* Container principal avec effet glassmorphism */
.elementor-form-container {
    max-width: 650px;
    margin: 0 auto;
    background: var(--glass-bg);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid var(--glass-border);
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-soft);
    overflow: hidden;
    position: relative;
    transform: translateY(0);
    transition: var(--transition-smooth);
}

.elementor-form-container:hover {
    transform: translateY(-8px);
    box-shadow: var(--shadow-hover);
}

/* Barre de progression moderne */
.elementor-form-container::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    height: 4px;
    background: var(--primary-gradient);
    width: 100%;
    z-index: 10;
    box-shadow: 0 2px 8px rgba(255, 107, 107, 0.3);
    transition: var(--transition-smooth);
}

/* Indicateur de progression avec animation */
.form-progress-container {
    position: relative;
    padding: 24px 40px;
    background: linear-gradient(135deg, #fafbff 0%, #f1f5f9 100%);
    border-bottom: 1px solid rgba(226, 232, 240, 0.8);
}

.form-progress-text {
    text-align: center;
    font-weight: var(--font-weight-semibold);
    color: #334155;
    margin: 0;
    font-size: 16px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    position: relative;
}

.form-progress-text::after {
    content: '';
    position: absolute;
    bottom: -12px;
    left: 50%;
    width: 40px;
    height: 2px;
    background: var(--primary-gradient);
    transform: translateX(-50%);
    border-radius: 2px;
}

/* Widget formulaire avec design moderne */
.elementor-widget-form {
    padding: 48px 40px;
    background: transparent;
    position: relative;
}

/* Titres avec typographie moderne */
.elementor-widget-form .elementor-heading-title {
    font-size: clamp(36px, 7vw, 42px) !important;
    font-weight: var(--font-weight-bold) !important;
    background: var(--primary-gradient) !important;
    -webkit-background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    background-clip: text !important;
    margin-bottom: 20px !important;
    text-align: center !important;
    letter-spacing: -0.02em !important;
    line-height: 1.2 !important;
    text-shadow: none !important;
    border: none !important;
    box-shadow: none !important;
}

/* Sous-titre moderne */
.form-subtitle {
    font-size: 20px;
    color: #64748b;
    margin-bottom: 36px;
    text-align: center;
    font-weight: var(--font-weight-medium);
    line-height: 1.5;
    opacity: 0.9;
}

/* Container des champs avec espacement moderne */
.elementor-form-fields-wrapper {
    display: flex;
    flex-direction: column;
    gap: 28px;
}

/* Enhanced Label Styling */
body .elementor-4489 .elementor-element.elementor-element-a66c9ea .elementor-labels-above .elementor-field-group > label {
    font-size: 19px !important;
    font-weight: var(--font-weight-bold) !important;
    color: #1e293b !important;
    background: var(--primary-gradient) !important;
    -webkit-background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    background-clip: text !important;
    padding: 8px 14px !important;
    margin-bottom: 20px !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    position: relative !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
    transition: var(--transition-smooth) !important;
    border-radius: 8px !important;
    background-color: rgba(255, 107, 107, 0.05) !important;
    border: 1px solid rgba(255, 107, 107, 0.2) !important;
    animation: slideInLabel 0.6s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

/* Decorative underline for labels */
body .elementor-4489 .elementor-element.elementor-element-a66c9ea .elementor-labels-above .elementor-field-group > label::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 50%;
    width: 50%;
    height: 2px;
    background: var(--primary-gradient);
    transform: translateX(-50%);
    border-radius: 2px;
    opacity: 0.8;
}

/* Hover effect for labels */
body .elementor-4489 .elementor-element.elementor-element-a66c9ea .elementor-labels-above .elementor-field-group > label:hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 6px 16px rgba(255, 107, 107, 0.25) !important;
    background-color: rgba(255, 107, 107, 0.1) !important;
}

/* Required field indicator with modern styling */
body .elementor-4489 .elementor-element.elementor-element-a66c9ea .elementor-labels-above .elementor-field-group.elementor-field-required > label::before {
    content: '*';
    position: absolute;
    left: calc(50% - 70px);
    top: 50%;
    transform: translateY(-50%);
    color: #ff6b6b !important;
    font-size: 18px !important;
    font-weight: var(--font-weight-bold) !important;
    opacity: 0.9;
}

/* Animation for label appearance */
@keyframes slideInLabel {
    0% {
        opacity: 0;
        transform: translateY(15px) scale(0.95);
    }
    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* Champs de saisie ultra-modernes avec bordures noires */
.elementor-field-group input[type="text"],
.elementor-field-group input[type="email"],
.elementor-field-group input[type="tel"],
.elementor-field-group textarea,
.elementor-field-group select {
    width: 100% !important;
    padding: 18px 22px !important;
    border: 2px solid #000000 !important;
    border-radius: var(--border-radius) !important;
    font-size: 18px !important;
    font-weight: var(--font-weight-medium) !important;
    background: rgba(255, 255, 255, 0.9) !important;
    backdrop-filter: blur(8px) !important;
    transition: var(--transition-smooth) !important;
    box-sizing: border-box !important;
    position: relative !important;
    color: #1e293b !important;
}

/* États de focus ultra-modernes */
.elementor-field-group input:focus,
.elementor-field-group textarea:focus,
.elementor-field-group select:focus {
    outline: none !important;
    border-color: #ff6b6b !important;
    background: rgba(255, 255, 255, 1) !important;
    box-shadow: var(--shadow-focus), 0 8px 25px rgba(255, 107, 107, 0.1) !important;
    transform: translateY(-2px) !important;
}

/* Options radio/checkbox comme cartes modernes */
.elementor-field-type-radio .elementor-field-option,
.elementor-field-type-checkbox .elementor-field-option {
    margin-bottom: 18px;
    position: relative;
    overflow: hidden;
}

.elementor-field-type-radio input[type="radio"],
.elementor-field-type-checkbox input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.elementor-field-type-radio label,
.elementor-field-type-checkbox label {
    display: block !important;
    width: 100% !important;
    cursor: pointer !important;
    font-weight: var(--font-weight-bold) !important;
    margin: 0 !important;
    padding: 22px 26px !important;
    border: 2px solid rgba(226, 232, 240, 0.6) !important;
    border-radius: var(--border-radius) !important;
    background: var(--surface-gradient) !important;
    transition: var(--transition-smooth) !important;
    text-align: center !important;
    position: relative !important;
    color: #1e293b !important;
    overflow: hidden !important;
    backdrop-filter: blur(8px) !important;
    font-size: 18px !important;
}

/* Effet de hover sur les options */
.elementor-field-type-radio label:hover,
.elementor-field-type-checkbox label:hover {
    border-color: rgba(255, 107, 107, 0.5) !important;
    transform: translateY(-4px) !important;
    box-shadow: 0 12px 32px rgba(255, 107, 107, 0.15) !important;
    background: rgba(255, 255, 255, 0.95) !important;
}

/* Option sélectionnée avec effet moderne */
.elementor-field-type-radio input:checked + label,
.elementor-field-type-checkbox input:checked + label {
    background: var(--primary-gradient) !important;
    color: white !important;
    border-color: transparent !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 16px 40px rgba(255, 107, 107, 0.3) !important;
}

/* Effet de brillance sur les options sélectionnées */
.elementor-field-type-radio input:checked + label::before,
.elementor-field-type-checkbox input:checked + label::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    animation: shine 1.5s ease-in-out;
}

@keyframes shine {
    0% { left: -100%; }
    100% { left: 100%; }
}

/* Boutons ultra-modernes */
.elementor-button-wrapper .elementor-button,
.elementor-form .elementor-button {
    background: var(--primary-gradient) !important;
    color: white !important;
    border: none !important;
    padding: 18px 36px !important;
    border-radius: var(--border-radius) !important;
    font-size: 18px !important;
    font-weight: var(--font-weight-semibold) !important;
    cursor: pointer !important;
    transition: var(--transition-smooth) !important;
    min-width: 160px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-decoration: none !important;
    position: relative !important;
    overflow: hidden !important;
    letter-spacing: 0.025em !important;
    text-transform: uppercase !important;
    box-shadow: 0 8px 25px rgba(255, 107, 107, 0.25) !important;
}

/* Effet de hover sur les boutons */
.elementor-button-wrapper .elementor-button:hover,
.elementor-form .elementor-button:hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 16px 40px rgba(255, 107, 107, 0.4) !important;
}

/* Effet d'ondulation sur clic */
.elementor-button-wrapper .elementor-button::after,
.elementor-form .elementor-button::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.3);
    transform: translate(-50%, -50%);
    transition: width 0.3s, height 0.3s;
}

.elementor-button-wrapper .elementor-button:active::after,
.elementor-form .elementor-button:active::after {
    width: 300px;
    height: 300px;
}

/* Messages avec design moderne */
.elementor-message-success {
    background: linear-gradient(135deg, #dcfce7 0%, #bbf7d0 100%) !important;
    border: 1px solid rgba(34, 197, 94, 0.2) !important;
    color: #166534 !important;
    padding: 26px !important;
    border-radius: var(--border-radius) !important;
    text-align: center !important;
    font-weight: var(--font-weight-semibold) !important;
    backdrop-filter: blur(8px) !important;
    box-shadow: 0 8px 25px rgba(34, 197, 94, 0.1) !important;
    font-size: 16px !important;
}

.elementor-message-danger {
    background: linear-gradient(135deg, #fef2f2 0%, #fecaca 100%) !important;
    border: 1px solid rgba(239, 68, 68, 0.2) !important;
    color: #dc2626 !important;
    padding: 18px !important;
    border-radius: var(--border-radius) !important;
    font-weight: var(--font-weight-medium) !important;
    backdrop-filter: blur(8px) !important;
    font-size: 16px !important;
}

/* Animations d'apparition */
.elementor-form-step {
    padding: 48px 40px;
    animation: slideInUp 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes slideInUp {
    from {
        opacity: 0;
        transform: translateY(30px) scale(0.95);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* Section avec fond ultra-moderne */
.elementor-section.form-section {
    background: var(--background-gradient) !important;
    min-height: 100vh !important;
    padding: 40px 20px !important;
    position: relative !important;
}

/* Éléments décoratifs de fond */
.elementor-section.form-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: radial-gradient(circle at 20% 80%, rgba(255, 107, 107, 0.1) 0%, transparent 50%),
                radial-gradient(circle at 80% 20%, rgba(102, 126, 234, 0.1) 0%, transparent 50%);
    pointer-events: none;
    z-index: 0;
}

.elementor-form-container {
    position: relative;
    z-index: 1;
}

/* Responsive ultra-optimisé avec textes encore agrandis */
@media (max-width: 768px) {
    .elementor-widget-form {
        padding: 36px 28px;
    }
    
    .form-progress-container {
        padding: 22px 28px;
    }
    
    .form-progress-text {
        font-size: 22px; /* Augmenté de 20px à 22px */
    }
    
    .elementor-widget-form .elementor-heading-title {
        font-size: clamp(34px, 7vw, 40px) !important; /* Augmenté de 32-38px à 34-40px */
        margin-bottom: 18px !important;
    }
    
    .form-subtitle {
        font-size: 22px; /* Augmenté de 20px à 22px */
        margin-bottom: 32px;
    }
    
    .elementor-form-fields-wrapper {
        gap: 24px;
    }
    
    .elementor-field-type-radio label,
    .elementor-field-type-checkbox label {
        padding: 18px 22px !important;
        font-size: 21px !important; /* Augmenté de 19px à 21px */
        font-weight: var(--font-weight-bold) !important;
    }
    
    .elementor-button-wrapper .elementor-button,
    .elementor-form .elementor-button {
        width: 100% !important;
        padding: 18px !important;
        font-size: 21px !important; /* Augmenté de 19px à 21px */
    }
    
    .elementor-field-group input,
    .elementor-field-group textarea {
        padding: 16px 18px !important;
        font-size: 22px !important; /* Augmenté de 20px à 22px */
    }
    
    .elementor-form-container {
        margin: 20px;
        border-radius: 20px;
    }
    
    body .elementor-4489 .elementor-element.elementor-element-a66c9ea .elementor-labels-above .elementor-field-group > label {
        font-size: 21px !important; /* Augmenté de 19px à 21px */
        padding: 6px 10px !important;
        margin-bottom: 16px !important;
    }
}

@media (max-width: 480px) {
    .elementor-section.form-section {
        padding: 24px 12px !important;
    }
    
    .elementor-widget-form {
        padding: 28px 20px;
    }
    
    .form-progress-container {
        padding: 20px;
    }
    
    .form-progress-text {
        font-size: 20px; /* Augmenté de 18px à 20px */
    }
    
    .elementor-widget-form .elementor-heading-title {
        font-size: 32px !important; /* Augmenté de 30px à 32px */
        margin-bottom: 16px !important;
    }
    
    .form-subtitle {
        font-size: 20px; /* Augmenté de 18px à 20px */
        margin-bottom: 28px;
    }
    
    .elementor-field-type-radio label,
    .elementor-field-type-checkbox label {
        padding: 16px 18px !important;
        font-size: 20px !important; /* Augmenté de 18px à 20px */
        font-weight: var(--font-weight-bold) !important;
    }
    
    .elementor-field-group input,
    .elementor-field-group textarea {
        padding: 16px 18px !important;
        font-size: 21px !important; /* Augmenté de 19px à 21px */
    }
    
    .elementor-button-wrapper .elementor-button,
    .elementor-form .elementor-button {
        padding: 18px !important;
        font-size: 20px !important; /* Augmenté de 18px à 20px */
    }
    
    body .elementor-4489 .elementor-element.elementor-element-a66c9ea .elementor-labels-above .elementor-field-group > label {
        font-size: 20px !important; /* Augmenté de 18px à 20px */
        padding: 5px 8px !important;
        margin-bottom: 14px !important;
    }
    
    .elementor-message-success,
    .elementor-message-danger {
        font-size: 19px !important; /* Augmenté de 17px à 19px */
        padding: 20px !important;
    }
}

/* Micro-interactions et détails raffinés */
.elementor-field-group {
    position: relative;
}

.elementor-field-group::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(45deg, transparent, rgba(255, 107, 107, 0.02), transparent);
    border-radius: var(--border-radius);
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
}

.elementor-field-group:hover::before {
    opacity: 1;
}

/* Loading state moderne */
.elementor-form.loading {
    opacity: 0.8;
    pointer-events: none;
    position: relative;
}

.elementor-form.loading::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 36px;
    height: 36px;
    border: 3px solid rgba(255, 107, 107, 0.2);
    border-top: 3px solid #ff6b6b;
    border-radius: 50%;
    animation: modernSpin 1s cubic-bezier(0.4, 0, 0.2, 1) infinite;
    transform: translate(-50%, -50%);
    z-index: 1000;
}

@keyframes modernSpin {
    0% { transform: translate(-50%, -50%) rotate(0deg) scale(1); }
    50% { transform: translate(-50%, -50%) rotate(180deg) scale(1.1); }
    100% { transform: translate(-50%, -50%) rotate(360deg) scale(1); }
}

/* Placeholders stylisés */
.elementor-field-group input::placeholder,
.elementor-field-group textarea::placeholder {
    color: #94a3b8 !important;
    opacity: 1 !important;
    font-weight: var(--font-weight-medium) !important;
    font-style: italic !important;
    font-size: 16px !important;
}

/* Accessibilité améliorée */
.elementor-field-group input:focus-visible,
.elementor-field-group textarea:focus-visible,
.elementor-field-group select:focus-visible,
.elementor-button:focus-visible,
.elementor-field-type-radio label:focus-visible,
.elementor-field-type-checkbox label:focus-visible,
body .elementor-4489 .elementor-element.elementor-element-a66c9ea .elementor-labels-above .elementor-field-group > label:focus-visible {
    outline: 3px solid rgba(255, 107, 107, 0.5) !important;
    outline-offset: 2px !important;
}

/* Amélioration spéciale pour très petits écrans */
@media (max-width: 360px) {
    .elementor-widget-form .elementor-heading-title {
        font-size: 30px !important; /* Augmenté de 28px à 30px */
    }
    
    .form-subtitle {
        font-size: 19px !important; /* Augmenté de 17px à 19px */
    }
    
    .elementor-field-group input,
    .elementor-field-group textarea {
        font-size: 20px !important; /* Augmenté de 18px à 20px */
        padding: 14px 16px !important;
    }
    
    body .elementor-4489 .elementor-element.elementor-element-a66c9ea .elementor-labels-above .elementor-field-group > label {
        font-size: 19px !important; /* Augmenté de 17px à 19px */
    }
    
    .elementor-field-type-radio label,
    .elementor-field-type-checkbox label {
        font-size: 19px !important; /* Augmenté de 17px à 19px */
        padding: 14px 16px !important;
    }
}/* End custom CSS */
/* Start custom CSS for form, class: .elementor-element-73b004b *//* CSS Elementor Form - Design Ultra Moderne Toiture - Mobile Optimisé avec textes encore agrandis */

/* Variables CSS pour cohérence */
:root {
    --primary-gradient: linear-gradient(135deg, #ff6b6b 0%, #ee5a52 50%, #dc2626 100%);
    --secondary-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    --surface-gradient: linear-gradient(145deg, #ffffff 0%, #f8fafc 100%);
    --background-gradient: linear-gradient(135deg, #f1f5f9 0%, #e2e8f0 25%, #cbd5e1 100%);
    --glass-bg: rgba(255, 255, 255, 0.85);
    --glass-border: rgba(255, 255, 255, 0.2);
    --shadow-soft: 0 8px 32px rgba(0, 0, 0, 0.1);
    --shadow-hover: 0 20px 60px rgba(0, 0, 0, 0.15);
    --shadow-focus: 0 0 0 4px rgba(255, 107, 107, 0.15);
    --border-radius: 16px;
    --border-radius-lg: 24px;
    --transition-smooth: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
}

/* Container principal avec effet glassmorphism */
.elementor-form-container {
    max-width: 650px;
    margin: 0 auto;
    background: var(--glass-bg);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid var(--glass-border);
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-soft);
    overflow: hidden;
    position: relative;
    transform: translateY(0);
    transition: var(--transition-smooth);
}

.elementor-form-container:hover {
    transform: translateY(-8px);
    box-shadow: var(--shadow-hover);
}

/* Barre de progression moderne */
.elementor-form-container::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    height: 4px;
    background: var(--primary-gradient);
    width: 100%;
    z-index: 10;
    box-shadow: 0 2px 8px rgba(255, 107, 107, 0.3);
    transition: var(--transition-smooth);
}

/* Indicateur de progression avec animation */
.form-progress-container {
    position: relative;
    padding: 24px 40px;
    background: linear-gradient(135deg, #fafbff 0%, #f1f5f9 100%);
    border-bottom: 1px solid rgba(226, 232, 240, 0.8);
}

.form-progress-text {
    text-align: center;
    font-weight: var(--font-weight-semibold);
    color: #334155;
    margin: 0;
    font-size: 16px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    position: relative;
}

.form-progress-text::after {
    content: '';
    position: absolute;
    bottom: -12px;
    left: 50%;
    width: 40px;
    height: 2px;
    background: var(--primary-gradient);
    transform: translateX(-50%);
    border-radius: 2px;
}

/* Widget formulaire avec design moderne */
.elementor-widget-form {
    padding: 48px 40px;
    background: transparent;
    position: relative;
}

/* Titres avec typographie moderne */
.elementor-widget-form .elementor-heading-title {
    font-size: clamp(36px, 7vw, 42px) !important;
    font-weight: var(--font-weight-bold) !important;
    background: var(--primary-gradient) !important;
    -webkit-background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    background-clip: text !important;
    margin-bottom: 20px !important;
    text-align: center !important;
    letter-spacing: -0.02em !important;
    line-height: 1.2 !important;
    text-shadow: none !important;
    border: none !important;
    box-shadow: none !important;
}

/* Sous-titre moderne */
.form-subtitle {
    font-size: 20px;
    color: #64748b;
    margin-bottom: 36px;
    text-align: center;
    font-weight: var(--font-weight-medium);
    line-height: 1.5;
    opacity: 0.9;
}

/* Container des champs avec espacement moderne */
.elementor-form-fields-wrapper {
    display: flex;
    flex-direction: column;
    gap: 28px;
}

/* Enhanced Label Styling */
body .elementor-4489 .elementor-element.elementor-element-a66c9ea .elementor-labels-above .elementor-field-group > label {
    font-size: 19px !important;
    font-weight: var(--font-weight-bold) !important;
    color: #1e293b !important;
    background: var(--primary-gradient) !important;
    -webkit-background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    background-clip: text !important;
    padding: 8px 14px !important;
    margin-bottom: 20px !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    position: relative !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
    transition: var(--transition-smooth) !important;
    border-radius: 8px !important;
    background-color: rgba(255, 107, 107, 0.05) !important;
    border: 1px solid rgba(255, 107, 107, 0.2) !important;
    animation: slideInLabel 0.6s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

/* Decorative underline for labels */
body .elementor-4489 .elementor-element.elementor-element-a66c9ea .elementor-labels-above .elementor-field-group > label::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 50%;
    width: 50%;
    height: 2px;
    background: var(--primary-gradient);
    transform: translateX(-50%);
    border-radius: 2px;
    opacity: 0.8;
}

/* Hover effect for labels */
body .elementor-4489 .elementor-element.elementor-element-a66c9ea .elementor-labels-above .elementor-field-group > label:hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 6px 16px rgba(255, 107, 107, 0.25) !important;
    background-color: rgba(255, 107, 107, 0.1) !important;
}

/* Required field indicator with modern styling */
body .elementor-4489 .elementor-element.elementor-element-a66c9ea .elementor-labels-above .elementor-field-group.elementor-field-required > label::before {
    content: '*';
    position: absolute;
    left: calc(50% - 70px);
    top: 50%;
    transform: translateY(-50%);
    color: #ff6b6b !important;
    font-size: 18px !important;
    font-weight: var(--font-weight-bold) !important;
    opacity: 0.9;
}

/* Animation for label appearance */
@keyframes slideInLabel {
    0% {
        opacity: 0;
        transform: translateY(15px) scale(0.95);
    }
    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* Champs de saisie ultra-modernes */
.elementor-field-group input[type="text"],
.elementor-field-group input[type="email"],
.elementor-field-group input[type="tel"],
.elementor-field-group textarea,
.elementor-field-group select {
    width: 100% !important;
    padding: 18px 22px !important;
    border: 2px solid rgba(226, 232, 240, 0.8) !important;
    border-radius: var(--border-radius) !important;
    font-size: 18px !important;
    font-weight: var(--font-weight-medium) !important;
    background: rgba(255, 255, 255, 0.9) !important;
    backdrop-filter: blur(8px) !important;
    transition: var(--transition-smooth) !important;
    box-sizing: border-box !important;
    position: relative !important;
    color: #1e293b !important;
}

/* États de focus ultra-modernes */
.elementor-field-group input:focus,
.elementor-field-group textarea:focus,
.elementor-field-group select:focus {
    outline: none !important;
    border-color: #ff6b6b !important;
    background: rgba(255, 255, 255, 1) !important;
    box-shadow: var(--shadow-focus), 0 8px 25px rgba(255, 107, 107, 0.1) !important;
    transform: translateY(-2px) !important;
}

/* Options radio/checkbox comme cartes modernes */
.elementor-field-type-radio .elementor-field-option,
.elementor-field-type-checkbox .elementor-field-option {
    margin-bottom: 18px;
    position: relative;
    overflow: hidden;
}

.elementor-field-type-radio input[type="radio"],
.elementor-field-type-checkbox input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.elementor-field-type-radio label,
.elementor-field-type-checkbox label {
    display: block !important;
    width: 100% !important;
    cursor: pointer !important;
    font-weight: var(--font-weight-bold) !important;
    margin: 0 !important;
    padding: 22px 26px !important;
    border: 2px solid rgba(226, 232, 240, 0.6) !important;
    border-radius: var(--border-radius) !important;
    background: var(--surface-gradient) !important;
    transition: var(--transition-smooth) !important;
    text-align: center !important;
    position: relative !important;
    color: #1e293b !important;
    overflow: hidden !important;
    backdrop-filter: blur(8px) !important;
    font-size: 18px !important;
}

/* Effet de hover sur les options */
.elementor-field-type-radio label:hover,
.elementor-field-type-checkbox label:hover {
    border-color: rgba(255, 107, 107, 0.5) !important;
    transform: translateY(-4px) !important;
    box-shadow: 0 12px 32px rgba(255, 107, 107, 0.15) !important;
    background: rgba(255, 255, 255, 0.95) !important;
}

/* Option sélectionnée avec effet moderne */
.elementor-field-type-radio input:checked + label,
.elementor-field-type-checkbox input:checked + label {
    background: var(--primary-gradient) !important;
    color: white !important;
    border-color: transparent !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 16px 40px rgba(255, 107, 107, 0.3) !important;
}

/* Effet de brillance sur les options sélectionnées */
.elementor-field-type-radio input:checked + label::before,
.elementor-field-type-checkbox input:checked + label::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    animation: shine 1.5s ease-in-out;
}

@keyframes shine {
    0% { left: -100%; }
    100% { left: 100%; }
}

/* Boutons ultra-modernes */
.elementor-button-wrapper .elementor-button,
.elementor-form .elementor-button {
    background: var(--primary-gradient) !important;
    color: white !important;
    border: none !important;
    padding: 18px 36px !important;
    border-radius: var(--border-radius) !important;
    font-size: 18px !important;
    font-weight: var(--font-weight-semibold) !important;
    cursor: pointer !important;
    transition: var(--transition-smooth) !important;
    min-width: 160px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-decoration: none !important;
    position: relative !important;
    overflow: hidden !important;
    letter-spacing: 0.025em !important;
    text-transform: uppercase !important;
    box-shadow: 0 8px 25px rgba(255, 107, 107, 0.25) !important;
}

/* Effet de hover sur les boutons */
.elementor-button-wrapper .elementor-button:hover,
.elementor-form .elementor-button:hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 16px 40px rgba(255, 107, 107, 0.4) !important;
}

/* Effet d'ondulation sur clic */
.elementor-button-wrapper .elementor-button::after,
.elementor-form .elementor-button::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.3);
    transform: translate(-50%, -50%);
    transition: width 0.3s, height 0.3s;
}

.elementor-button-wrapper .elementor-button:active::after,
.elementor-form .elementor-button:active::after {
    width: 300px;
    height: 300px;
}

/* Messages avec design moderne */
.elementor-message-success {
    background: linear-gradient(135deg, #dcfce7 0%, #bbf7d0 100%) !important;
    border: 1px solid rgba(34, 197, 94, 0.2) !important;
    color: #166534 !important;
    padding: 26px !important;
    border-radius: var(--border-radius) !important;
    text-align: center !important;
    font-weight: var(--font-weight-semibold) !important;
    backdrop-filter: blur(8px) !important;
    box-shadow: 0 8px 25px rgba(34, 197, 94, 0.1) !important;
    font-size: 16px !important;
}

.elementor-message-danger {
    background: linear-gradient(135deg, #fef2f2 0%, #fecaca 100%) !important;
    border: 1px solid rgba(239, 68, 68, 0.2) !important;
    color: #dc2626 !important;
    padding: 18px !important;
    border-radius: var(--border-radius) !important;
    font-weight: var(--font-weight-medium) !important;
    backdrop-filter: blur(8px) !important;
    font-size: 16px !important;
}

/* Animations d'apparition */
.elementor-form-step {
    padding: 48px 40px;
    animation: slideInUp 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes slideInUp {
    from {
        opacity: 0;
        transform: translateY(30px) scale(0.95);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* Section avec fond ultra-moderne */
.elementor-section.form-section {
    background: var(--background-gradient) !important;
    min-height: 100vh !important;
    padding: 40px 20px !important;
    position: relative !important;
}

/* Éléments décoratifs de fond */
.elementor-section.form-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: radial-gradient(circle at 20% 80%, rgba(255, 107, 107, 0.1) 0%, transparent 50%),
                radial-gradient(circle at 80% 20%, rgba(102, 126, 234, 0.1) 0%, transparent 50%);
    pointer-events: none;
    z-index: 0;
}

.elementor-form-container {
    position: relative;
    z-index: 1;
}

/* Responsive ultra-optimisé avec textes encore agrandis */
@media (max-width: 768px) {
    .elementor-widget-form {
        padding: 36px 28px;
    }
    
    .form-progress-container {
        padding: 22px 28px;
    }
    
    .form-progress-text {
        font-size: 22px; /* Augmenté de 20px à 22px */
    }
    
    .elementor-widget-form .elementor-heading-title {
        font-size: clamp(34px, 7vw, 40px) !important; /* Augmenté de 32-38px à 34-40px */
        margin-bottom: 18px !important;
    }
    
    .form-subtitle {
        font-size: 22px; /* Augmenté de 20px à 22px */
        margin-bottom: 32px;
    }
    
    .elementor-form-fields-wrapper {
        gap: 24px;
    }
    
    .elementor-field-type-radio label,
    .elementor-field-type-checkbox label {
        padding: 18px 22px !important;
        font-size: 21px !important; /* Augmenté de 19px à 21px */
        font-weight: var(--font-weight-bold) !important;
    }
    
    .elementor-button-wrapper .elementor-button,
    .elementor-form .elementor-button {
        width: 100% !important;
        padding: 18px !important;
        font-size: 21px !important; /* Augmenté de 19px à 21px */
    }
    
    .elementor-field-group input,
    .elementor-field-group textarea {
        padding: 16px 18px !important;
        font-size: 22px !important; /* Augmenté de 20px à 22px */
    }
    
    .elementor-form-container {
        margin: 20px;
        border-radius: 20px;
    }
    
    body .elementor-4489 .elementor-element.elementor-element-a66c9ea .elementor-labels-above .elementor-field-group > label {
        font-size: 21px !important; /* Augmenté de 19px à 21px */
        padding: 6px 10px !important;
        margin-bottom: 16px !important;
    }
}

@media (max-width: 480px) {
    .elementor-section.form-section {
        padding: 24px 12px !important;
    }
    
    .elementor-widget-form {
        padding: 28px 20px;
    }
    
    .form-progress-container {
        padding: 20px;
    }
    
    .form-progress-text {
        font-size: 20px; /* Augmenté de 18px à 20px */
    }
    
    .elementor-widget-form .elementor-heading-title {
        font-size: 32px !important; /* Augmenté de 30px à 32px */
        margin-bottom: 16px !important;
    }
    
    .form-subtitle {
        font-size: 20px; /* Augmenté de 18px à 20px */
        margin-bottom: 28px;
    }
    
    .elementor-field-type-radio label,
    .elementor-field-type-checkbox label {
        padding: 16px 18px !important;
        font-size: 20px !important; /* Augmenté de 18px à 20px */
        font-weight: var(--font-weight-bold) !important;
    }
    
    .elementor-field-group input,
    .elementor-field-group textarea {
        padding: 16px 18px !important;
        font-size: 21px !important; /* Augmenté de 19px à 21px */
    }
    
    .elementor-button-wrapper .elementor-button,
    .elementor-form .elementor-button {
        padding: 18px !important;
        font-size: 20px !important; /* Augmenté de 18px à 20px */
    }
    
    body .elementor-4489 .elementor-element.elementor-element-a66c9ea .elementor-labels-above .elementor-field-group > label {
        font-size: 20px !important; /* Augmenté de 18px à 20px */
        padding: 5px 8px !important;
        margin-bottom: 14px !important;
    }
    
    .elementor-message-success,
    .elementor-message-danger {
        font-size: 19px !important; /* Augmenté de 17px à 19px */
        padding: 20px !important;
    }
}

/* Micro-interactions et détails raffinés */
.elementor-field-group {
    position: relative;
}

.elementor-field-group::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(45deg, transparent, rgba(255, 107, 107, 0.02), transparent);
    border-radius: var(--border-radius);
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
}

.elementor-field-group:hover::before {
    opacity: 1;
}

/* Loading state moderne */
.elementor-form.loading {
    opacity: 0.8;
    pointer-events: none;
    position: relative;
}

.elementor-form.loading::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 36px;
    height: 36px;
    border: 3px solid rgba(255, 107, 107, 0.2);
    border-top: 3px solid #ff6b6b;
    border-radius: 50%;
    animation: modernSpin 1s cubic-bezier(0.4, 0, 0.2, 1) infinite;
    transform: translate(-50%, -50%);
    z-index: 1000;
}

@keyframes modernSpin {
    0% { transform: translate(-50%, -50%) rotate(0deg) scale(1); }
    50% { transform: translate(-50%, -50%) rotate(180deg) scale(1.1); }
    100% { transform: translate(-50%, -50%) rotate(360deg) scale(1); }
}

/* Placeholders stylisés */
.elementor-field-group input::placeholder,
.elementor-field-group textarea::placeholder {
    color: #94a3b8 !important;
    opacity: 1 !important;
    font-weight: var(--font-weight-medium) !important;
    font-style: italic !important;
    font-size: 16px !important;
}

/* Accessibilité améliorée */
.elementor-field-group input:focus-visible,
.elementor-field-group textarea:focus-visible,
.elementor-field-group select:focus-visible,
.elementor-button:focus-visible,
.elementor-field-type-radio label:focus-visible,
.elementor-field-type-checkbox label:focus-visible,
body .elementor-4489 .elementor-element.elementor-element-a66c9ea .elementor-labels-above .elementor-field-group > label:focus-visible {
    outline: 3px solid rgba(255, 107, 107, 0.5) !important;
    outline-offset: 2px !important;
}

/* Amélioration spéciale pour très petits écrans */
@media (max-width: 360px) {
    .elementor-widget-form .elementor-heading-title {
        font-size: 30px !important; /* Augmenté de 28px à 30px */
    }
    
    .form-subtitle {
        font-size: 19px !important; /* Augmenté de 17px à 19px */
    }
    
    .elementor-field-group input,
    .elementor-field-group textarea {
        font-size: 20px !important; /* Augmenté de 18px à 20px */
        padding: 14px 16px !important;
    }
    
    body .elementor-4489 .elementor-element.elementor-element-a66c9ea .elementor-labels-above .elementor-field-group > label {
        font-size: 19px !important; /* Augmenté de 17px à 19px */
    }
    
    .elementor-field-type-radio label,
    .elementor-field-type-checkbox label {
        font-size: 19px !important; /* Augmenté de 17px à 19px */
        padding: 14px 16px !important;
    }
}/* End custom CSS */