/* =========================================
   FORMULAIRE DE CONTACT
   ========================================= */

.vs-form {
    max-width: 900px;
    margin: 0 auto;
    font-family: 'Titillium Web', sans-serif;
    color: var(--e-global-color-text);
}

.gform_required_legend{
    display: none;
}

/* ===============================
   STRUCTURE GLOBALE
   =============================== */

.vs-fieldset {
    border: 1px solid rgba(0,0,0,0.1) !important;
    border-radius: 6px;
    padding: 20px 25px !important;
    margin-bottom: 25px !important;
    background: transparent !important;
    box-shadow: 0 2px 10px rgba(0,0,0,0.03);
    transition: background-color 0.3s ease;
}

.vs-fieldset legend {
    font-family: 'Smooch Sans', sans-serif;
    font-size: 28px;
    font-weight: 500;
    text-transform: uppercase;
    color: var(--e-global-color-primary);
    padding: 0.25em 0.8em !important;
    margin-left: 15px;
    background: #f4f4f4; /* gris clair du site */
    display: inline-block;
    border-radius: 4px;
    transition: all 0.3s ease;
}

/* Étoile obligatoire */
.vs-fieldset legend .required,
.vs-fieldset .gfield_required {
    color: var(--e-global-color-accent) !important;
}

/* Grille 2 colonnes */
.vs-row {
    display: grid;
    gap: 18px 25px;
}
/* ===============================
   LABELS ET CHAMPS
   =============================== */

.vs-form label {
    display: block !important;
    font-family: 'Smooch Sans', sans-serif;
    font-size: 20px !important;
    font-weight: 400 !important;
    color: var(--e-global-color-primary);
    text-transform: uppercase;
    margin: 20px 0 !important;
    line-height: 1.1;
}

.vs-form label .gfield_required {
    font-size: 20px !important;
}

.vs-form input[type="text"],
.vs-form input[type="email"],
.vs-form input[type="tel"],
.vs-form textarea {
    width: 100% !important;
    border: 1px solid rgba(0,0,0,0.15);
    border-radius: 6px !important;
    padding: 10px 14px !important;
    font-size: 15px !important;
    color: var(--e-global-color-text);
    background: #fff;
    box-sizing: border-box;
    transition: border-color 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease;
}

/* Champ actif : fond accent translucide */
.vs-form input:focus,
.vs-form textarea:focus {
    border-color: var(--e-global-color-primary);
    background-color: color-mix(in srgb, var(--e-global-color-accent) 20%, transparent);
    box-shadow: 0 0 0 3px rgba(51,81,128,0.15);
    outline: none;
}

/* ===============================
   BOUTON D’ENVOI
   =============================== */

.gform-footer {
    text-align: center;
    position: relative;
}

.gform-footer .gform_button {
    display: inline-block;
    margin: 0 auto;
    border: none;
}

/* ===============================
FIELDSETS ACTIFS
=============================== */

.vs-fieldset:has(input:focus),
.vs-fieldset:has(textarea:focus),
.vs-fieldset:has(select:focus) {
    background-color: rgba(255, 255, 255, 0.6) !important;
}

.vs-fieldset:has(input:focus) legend,
.vs-fieldset:has(textarea:focus) legend,
.vs-fieldset:has(select:focus) legend {
    background: var(--e-global-color-primary) !important;
    color: #fff !important;
}

/* ===============================
   MESSAGES D’ERREUR SOUS LES CHAMPS
   =============================== */

.vs-form .gfield_validation_message,
.vs-form .validation_message {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
}

.vs-form .gform_submission_error,
.vs-form .gform_validation_errors {
    text-align: center !important;
    padding: 14px 22px !important;
    font-size: 16px !important;
    font-family: 'Titillium Web', sans-serif !important;
    border-radius: 6px !important;
}

/* ===============================
   MESSAGES GLOBAUX
   =============================== */


#gform_confirmation_wrapper_1 .gform_confirmation_message {
    text-align: center;
    padding: 14px 22px;
    border-radius: 6px;
    color: #fff;
    background: var(--e-global-color-accent, #7fc77f) !important;
}

/* ================================
   RGPD — cohérent avec les champs du formulaire
   ================================ */

.vs-form .ginput_container_consent {
    display: flex;
    align-items: center;
    gap: 10px;
}

.vs-form .gfield_consent_label {
    font-family: 'Titillium Web', sans-serif;
    font-size: 0.85rem !important;
    font-weight: 400 !important;
    text-transform: none;
    color: var(--e-global-color-text, #1a1a1a);
    line-height: 1.4;
    margin: 0 !important;
}

.vs-form .ginput_container_consent input[type="checkbox"] {
    -webkit-appearance: none ;
    width: 17px;
    height: 17px ;
    min-width: 17px ;
    border: 1.5px solid #bbb ;
    border-radius: 3px;
    background: #fff ;
    transition: all 0.2s ease-in-out;
    cursor: pointer;
    flex-shrink: 0;
    position: relative;
}

.vs-form .ginput_container_consent input[type="checkbox"]:hover {
    border-color: var(--e-global-color-accent, #a8be7f) ;
    box-shadow: 0 0 0 3px rgba(168,190,127,0.15);
}

.vs-form .ginput_container_consent input[type="checkbox"]:checked {
    background-color: var(--e-global-color-accent, #a8be7f);
    border-color: var(--e-global-color-accent, #a8be7f);
}

.vs-form .ginput_container_consent input[type="checkbox"]:checked::after {
    content: "✓";
    position: absolute ;
    top: 46% ;
    left: 50% ;
    transform: translate(-50%, -55%) ;
    color: #fff;
    font-size: 0.7rem ;
    font-weight: bold ;
}

.vs-form .gfield_consent_label a {
    color: var(--e-global-color-primary, #004aad);
    text-decoration: underline;
    transition: color 0.2s ease;
}

.vs-form .gfield_consent_label a:hover {
    color: var(--e-global-color-accent, #a8be7f);
}

/* ===============================
   RESPONSIVE
   =============================== */

@media (max-width: 768px) {
    .gform_wrapper.gravity-theme .gfield:not(.gfield--width-full) {
        grid-column: span 12 !important;
    }
    .vs-fieldset {
        padding: 18px;
    }
    .vs-form label {
        font-size: 16px;
        margin: 20px 0 !important;
    }

    .vs-form .gform_submission_error {
        padding: 0 !important;
        display: flex !important;
        flex-direction: row !important;
    }

    .gform_wrapper.gravity-theme .gform_validation_errors>h2 .gform-icon {
        position: initial !important;
    }
}