/**
 * Gravity Forms Modern Styler CSS
 * Design System basé sur design.md
 * FORMULAIRE ID 15 UNIQUEMENT
 */

/* Variables CSS pour la palette de couleurs */
:root {
    --primary-color: #1A2755;
    --accent-color: #CCB28C;
    --background-color: #ffffff;
    --text-color: #374151;
    --helper-text-color: #6B7280;
    --border-radius: 8px;
    --transition-speed: 200ms;
    --focus-shadow: 0 0 0 3px rgba(26, 39, 85, 0.1);
}

/* Ne pas toucher aux conteneurs - garder le thème Gravity Forms simple */
/* Juste ajouter les étiquettes flottantes */

/* Container pour les étiquettes flottantes - FORMULAIRE 15 UNIQUEMENT */
#gform_wrapper_15 .gfield_floating_wrapper {
    position: relative;
    margin-bottom: 0.5rem;
}/* Styles des inputs avec étiquettes flottantes - hauteur minimale seulement */
/* EXCLURE les champs date et téléphone */
body #gform_wrapper_15 .ginput_container_text input[type="text"],
body #gform_wrapper_15 .ginput_container_email input[type="email"],
body #gform_wrapper_15 .ginput_container_website input[type="url"],
body #gform_wrapper_15 .ginput_container_number input[type="number"],
body #gform_wrapper_15 .ginput_container_number input[type="text"],
body #gform_wrapper_15 .gfield_number_formatted,
body #gform_wrapper_15 .ginput_container_select select,
body #gform_wrapper_15 .ginput_address_line_1 input,
body #gform_wrapper_15 .ginput_address_line_2 input,
body #gform_wrapper_15 .ginput_address_city input,
body #gform_wrapper_15 .ginput_address_state input,
body #gform_wrapper_15 .ginput_address_zip input,
body #gform_wrapper_15 .ginput_address_country select,
body #gform_wrapper_15 .gfield_floating_input:not([type="tel"]) {
    min-height: 4rem !important;
    padding-top: 1.5rem !important;
    padding-bottom: 0.5rem !important;
    transition: all var(--transition-speed) ease-in-out !important;
}/* Styles spéciaux pour les champs avec valeur - centrer le texte et augmenter la taille */
/* EXCLURE explicitement les textarea,
téléphone ET tous les sous-champs d'adresse */
body #gform_wrapper_15 .ginput_container_text input[type="text"].has-value,
body #gform_wrapper_15 .ginput_container_email input[type="email"].has-value,
body #gform_wrapper_15 .ginput_container_website input[type="url"].has-value,
body #gform_wrapper_15 .ginput_container_number input[type="number"].has-value,
body #gform_wrapper_15 .ginput_container_number input[type="text"].has-value,
body #gform_wrapper_15 .gfield_number_formatted.has-value,
body #gform_wrapper_15 .ginput_container_select select.has-value,
body #gform_wrapper_15 .gfield_floating_input.has-value:not(textarea):not([type="tel"]) {
    text-align: left !important;
    font-size: 1rem !important;
    font-weight: 400 !important;
}/* Règle spécifique pour annuler le centrage sur les sous-champs d'adresse */
body #gform_wrapper_15 .ginput_address_line_1 .gfield_floating_input.has-value,
body #gform_wrapper_15 .ginput_address_line_2 .gfield_floating_input.has-value,
body #gform_wrapper_15 .ginput_address_city .gfield_floating_input.has-value,
body #gform_wrapper_15 .ginput_address_state .gfield_floating_input.has-value,
body #gform_wrapper_15 .ginput_address_zip .gfield_floating_input.has-value,
body #gform_wrapper_15 .ginput_address_country .gfield_floating_input.has-value {
    text-align: left !important;
    font-size: 1rem !important;
    font-weight: 400 !important;
}/* EXCLURE les sous-champs d'adresse du centrage en utilisant les classes spécifiques */
body #gform_wrapper_15 .ginput_address_line_1 input.has-value,
body #gform_wrapper_15 .ginput_address_line_2 input.has-value,
body #gform_wrapper_15 .ginput_address_city input.has-value,
body #gform_wrapper_15 .ginput_address_state input.has-value,
body #gform_wrapper_15 .ginput_address_zip input.has-value,
body #gform_wrapper_15 .ginput_address_country select.has-value {
    text-align: left !important;
    font-size: 1rem !important;
    font-weight: 400 !important;
}/* Styles pour les champs textarea - garder le comportement normal */
body #gform_wrapper_15 .ginput_container_textarea textarea {
    min-height: 6rem !important;
    padding-top: 1.5rem !important;
    padding-bottom: 0.5rem !important;
    transition: all var(--transition-speed) ease-in-out !important;
}/* États focus des inputs - border plus épais et couleur darkblue */
/* EXCLURE les champs téléphone */
body #gform_wrapper_15 .ginput_container_text input[type="text"]:focus,
body #gform_wrapper_15 .ginput_container_email input[type="email"]:focus,
body #gform_wrapper_15 .ginput_container_website input[type="url"]:focus,
body #gform_wrapper_15 .ginput_container_number input[type="number"]:focus,
body #gform_wrapper_15 .ginput_container_number input[type="text"]:focus,
body #gform_wrapper_15 .gfield_number_formatted:focus,
body #gform_wrapper_15 .ginput_container_textarea textarea:focus,
body #gform_wrapper_15 .ginput_container_select select:focus,
body #gform_wrapper_15 .ginput_address_line_1 input:focus,
body #gform_wrapper_15 .ginput_address_line_2 input:focus,
body #gform_wrapper_15 .ginput_address_city input:focus,
body #gform_wrapper_15 .ginput_address_state input:focus,
body #gform_wrapper_15 .ginput_address_zip input:focus,
body #gform_wrapper_15 .ginput_address_country select:focus,
body #gform_wrapper_15 .gfield_floating_input:not([type="tel"]):focus {
    border-color: #1A2755 !important;
    border-width: 2px !important;
    background-color: rgba(204, 178, 140, 0.05) !important;
}/* Étiquettes pour les champs textarea - position en haut à gauche dès le départ */
body #gform_wrapper_15 .ginput_container_textarea .gfield_floating_label {
    position: absolute !important;
    left: 0.75rem !important;
    top: 0.5rem !important;
    transform: translateY(0) scale(0.75) !important;
    color: var(--primary-color) !important;
    font-size: 1rem !important;
    font-weight: 500 !important;
    pointer-events: none !important;
    transition: all var(--transition-speed) ease-in-out !important;
    transform-origin: left top !important;
    z-index: 2 !important;
    background-color: transparent !important;
    padding: 0 !important;
}/* S'assurer que les textarea gardent leur alignement normal (pas de centrage) */
/* Règles très spécifiques avec haute priorité pour surcharger les autres styles */
body #gform_wrapper_15 .ginput_container_textarea textarea,
body #gform_wrapper_15 .ginput_container_textarea textarea.has-value,
body #gform_wrapper_15 .ginput_container_textarea textarea.gfield_floating_input,
body #gform_wrapper_15 .ginput_container_textarea textarea.gfield_floating_input.has-value {
    text-align: left !important;
    font-size: 1rem !important;
    font-weight: 400 !important;
}/* Étiquettes flottantes - position initiale au centre des champs */
body #gform_wrapper_15 .gfield_floating_label {
    position: absolute !important;
    left: 0.75rem !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    color: #999 !important;
    font-size: 1rem !important;
    font-weight: 400 !important;
    pointer-events: none !important;
    transition: all var(--transition-speed) ease-in-out !important;
    transform-origin: left center !important;
    z-index: 2 !important;
    background-color: transparent !important;
    padding: 0 !important;
}/* Animation des étiquettes - restent DANS le champ mais remontent en haut et deviennent petites */
/* IMPORTANT: Supprimer :not(:placeholder-shown) car le placeholder " " cause des problèmes */
/* EXCLURE les champs textarea et téléphone qui ont leur propre style */
body #gform_wrapper_15 .gfield_floating_input:not([type="tel"]):focus+.gfield_floating_label,
body #gform_wrapper_15 .gfield_floating_input:not([type="tel"]).has-value+.gfield_floating_label,
body #gform_wrapper_15 .ginput_container_text input[type="text"]:focus+.gfield_floating_label,
body #gform_wrapper_15 .ginput_container_email input[type="email"]:focus+.gfield_floating_label,
body #gform_wrapper_15 .ginput_container_website input[type="url"]:focus+.gfield_floating_label,
body #gform_wrapper_15 .ginput_container_number input[type="number"]:focus+.gfield_floating_label,
body #gform_wrapper_15 .ginput_container_number input[type="text"]:focus+.gfield_floating_label,
body #gform_wrapper_15 .gfield_number_formatted:focus+.gfield_floating_label,
body #gform_wrapper_15 .ginput_container_select select:focus+.gfield_floating_label,
body #gform_wrapper_15 .ginput_container_select select.has-value+.gfield_floating_label,
body #gform_wrapper_15 .ginput_address_line_1 input:focus+.gfield_floating_label,
body #gform_wrapper_15 .ginput_address_line_2 input:focus+.gfield_floating_label,
body #gform_wrapper_15 .ginput_address_city input:focus+.gfield_floating_label,
body #gform_wrapper_15 .ginput_address_state input:focus+.gfield_floating_label,
body #gform_wrapper_15 .ginput_address_zip input:focus+.gfield_floating_label,
body #gform_wrapper_15 .ginput_address_country select:focus+.gfield_floating_label,
body #gform_wrapper_15 .ginput_address_country select.has-value+.gfield_floating_label {
    transform: translateY(-50%) translateX(0) scale(0.75) !important;
    color: var(--primary-color) !important;
    font-weight: 500 !important;
    top: 0.5rem !important;
}/* Animation pour les champs avec valeur (géré par JavaScript) */
/* EXCLURE les champs textarea et téléphone qui ont leur propre style */
body #gform_wrapper_15 .gfield_floating_input:not([type="tel"]).has-value+.gfield_floating_label,
body #gform_wrapper_15 .ginput_container_text input[type="text"].has-value+.gfield_floating_label,
body #gform_wrapper_15 .ginput_container_email input[type="email"].has-value+.gfield_floating_label,
body #gform_wrapper_15 .ginput_container_website input[type="url"].has-value+.gfield_floating_label,
body #gform_wrapper_15 .ginput_container_number input[type="number"].has-value+.gfield_floating_label,
body #gform_wrapper_15 .ginput_container_number input[type="text"].has-value+.gfield_floating_label,
body #gform_wrapper_15 .gfield_number_formatted.has-value+.gfield_floating_label,
body #gform_wrapper_15 .ginput_address_line_1 input.has-value+.gfield_floating_label,
body #gform_wrapper_15 .ginput_address_line_2 input.has-value+.gfield_floating_label,
body #gform_wrapper_15 .ginput_address_city input.has-value+.gfield_floating_label,
body #gform_wrapper_15 .ginput_address_state input.has-value+.gfield_floating_label,
body #gform_wrapper_15 .ginput_address_zip input.has-value+.gfield_floating_label {
    transform: translateY(-50%) translateX(0) scale(0.75) !important;
    color: var(--primary-color) !important;
    font-weight: 500 !important;
    top: 0.5rem !important;
}/* Styles spécifiques pour les labels flottants des sous-champs d'adresse */
body #gform_wrapper_15 .ginput_address_line_1 .gfield_floating_label,
body #gform_wrapper_15 .ginput_address_line_2 .gfield_floating_label,
body #gform_wrapper_15 .ginput_address_city .gfield_floating_label,
body #gform_wrapper_15 .ginput_address_state .gfield_floating_label,
body #gform_wrapper_15 .ginput_address_zip .gfield_floating_label,
body #gform_wrapper_15 .ginput_address_country .gfield_floating_label {
    position: absolute !important;
    left: 0.75rem !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    color: #999 !important;
    font-size: 1rem !important;
    font-weight: 400 !important;
    pointer-events: none !important;
    transition: all var(--transition-speed) ease-in-out !important;
    transform-origin: left center !important;
    z-index: 2 !important;
    background-color: transparent !important;
    padding: 0 !important;
}/* Animation des labels flottants pour les sous-champs d'adresse */
body #gform_wrapper_15 .ginput_address_line_1 input:focus+.gfield_floating_label,
body #gform_wrapper_15 .ginput_address_line_1 input.has-value+.gfield_floating_label,
body #gform_wrapper_15 .ginput_address_line_2 input:focus+.gfield_floating_label,
body #gform_wrapper_15 .ginput_address_line_2 input.has-value+.gfield_floating_label,
body #gform_wrapper_15 .ginput_address_city input:focus+.gfield_floating_label,
body #gform_wrapper_15 .ginput_address_city input.has-value+.gfield_floating_label,
body #gform_wrapper_15 .ginput_address_state input:focus+.gfield_floating_label,
body #gform_wrapper_15 .ginput_address_state input.has-value+.gfield_floating_label,
body #gform_wrapper_15 .ginput_address_zip input:focus+.gfield_floating_label,
body #gform_wrapper_15 .ginput_address_zip input.has-value+.gfield_floating_label,
body #gform_wrapper_15 .ginput_address_country select:focus+.gfield_floating_label,
body #gform_wrapper_15 .ginput_address_country select.has-value+.gfield_floating_label {
    transform: translateY(-50%) translateX(0) scale(0.75) !important;
    color: var(--primary-color) !important;
    font-weight: 500 !important;
    top: 0.5rem !important;
}/* Pas de styles spécifiques pour textarea et date - garder simple */

/* Selects - garder simple,
juste la hauteur */
body #gform_wrapper_15 .ginput_container_select select {
    min-height: 4rem !important;
    padding-top: 1.5rem !important;
    padding-bottom: 0.5rem !important;
}/* Checkboxes et radios - styles personnalisés qui fonctionnaient */
body #gform_wrapper_15 .gfield_checkbox .gchoice,
body #gform_wrapper_15 .gfield_radio .gchoice {
    position: relative !important;
    margin-bottom: 0.75rem !important;
    display: block !important;
    clear: both !important;
}body #gform_wrapper_15 .gfield_checkbox input[type="checkbox"],
body #gform_wrapper_15 .gfield_radio input[type="radio"] {
    position: absolute !important;
    opacity: 0 !important;
    width: 1.25rem !important;
    height: 1.25rem !important;
    margin: 0 !important;
    cursor: pointer !important;
    z-index: 1 !important;
}body #gform_wrapper_15 .gfield_checkbox label,
body #gform_wrapper_15 .gfield_radio label {
    display: block !important;
    cursor: pointer !important;
    font-size: 1rem !important;
    color: var(--text-color) !important;
    line-height: 1.5 !important;
    padding-left: 2rem !important;
    position: relative !important;
    margin: 0 !important;
    min-height: 1.5rem !important;
}/* Apparence personnalisée des checkboxes */
body #gform_wrapper_15 .gfield_checkbox label::before {
    content: '' !important;
    position: absolute !important;
    left: 0 !important;
    top: 0.125rem !important;
    width: 1.25rem !important;
    height: 1.25rem !important;
    border: 2px solid #d1d5db !important;
    border-radius: 4px !important;
    background-color: white !important;
    transition: all var(--transition-speed) ease-in-out !important;
}body #gform_wrapper_15 .gfield_checkbox input[type="checkbox"]:checked+label::before {
    background-color: var(--primary-color) !important;
    border-color: var(--primary-color) !important;
}body #gform_wrapper_15 .gfield_checkbox label::after {
    content: '' !important;
    position: absolute !important;
    left: 0.25rem !important;
    top: 0.375rem !important;
    width: 0.75rem !important;
    height: 0.75rem !important;
    background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='m13.854 3.646-7.5 7.5a.5.5 0 0 1-.708 0l-3.5-3.5a.5.5 0 1 1 .708-.708L6 10.293l7.146-7.147a.5.5 0 0 1 .708.708z'/%3e%3c/svg%3e") !important;
    background-size: 100% 100% !important;
    background-repeat: no-repeat !important;
    opacity: 0 !important;
    transition: opacity var(--transition-speed) ease-in-out !important;
}body #gform_wrapper_15 .gfield_checkbox input[type="checkbox"]:checked+label::after {
    opacity: 1 !important;
}/* Apparence personnalisée des radio buttons */
body #gform_wrapper_15 .gfield_radio label::before {
    content: '' !important;
    position: absolute !important;
    left: 0 !important;
    top: 0.125rem !important;
    width: 1.25rem !important;
    height: 1.25rem !important;
    border: 2px solid #d1d5db !important;
    border-radius: 50% !important;
    background-color: white !important;
    transition: all var(--transition-speed) ease-in-out !important;
}body #gform_wrapper_15 .gfield_radio input[type="radio"]:checked+label::before {
    border-color: var(--primary-color) !important;
}body #gform_wrapper_15 .gfield_radio label::after {
    content: '' !important;
    position: absolute !important;
    left: 0.375rem !important;
    top: 0.5rem !important;
    width: 0.5rem !important;
    height: 0.5rem !important;
    border-radius: 50% !important;
    background-color: var(--primary-color) !important;
    opacity: 0 !important;
    transition: opacity var(--transition-speed) ease-in-out !important;
}body #gform_wrapper_15 .gfield_radio input[type="radio"]:checked+label::after {
    opacity: 1 !important;
}/* Styles pour les boutons radio sélectionnés - texte en gras et police plus grande */
body #gform_wrapper_15 .gfield_radio input[type="radio"]:checked+label {
    font-weight: bold !important;
    font-size: 1.0625rem !important;
    /* +1 de la taille de base (1rem + 0.0625rem) */
}/* Messages d'erreur - garder simple */
body #gform_wrapper_15 .gfield_error .gfield_floating_input {
    border-color: #dc2626 !important;
}body #gform_wrapper_15 .gfield_error .gfield_floating_label {
    color: #dc2626 !important;
}/* Styles pour les descriptions de champs - plus proches et police plus petite */
body #gform_wrapper_15 .gfield_description,
body #gform_wrapper_15 .ginput_container .gfield_description,
body #gform_wrapper_15 .gfield .gfield_description,
body #gform_wrapper_15 div.gfield_description,
body #gform_wrapper_15 .ginput_complex .gfield_description {
    margin-top: 0.25rem !important;
    /* Réduire l'espace au-dessus */
    margin-bottom: 0.5rem !important;
    font-size: 0.875rem !important;
    /* Police plus petite */
    line-height: 1.4 !important;
    color: var(--helper-text-color) !important;
}/* Cibler spécifiquement les descriptions après les wrappers flottants */
body #gform_wrapper_15 .gfield_floating_wrapper+.gfield_description,
body #gform_wrapper_15 .gfield_description_floating {
    margin-top: 0.125rem !important;
    /* Encore plus proche du champ */
}/* Style spécifique pour les descriptions modifiées par le plugin */
body #gform_wrapper_15 .gfield_description_floating {
    margin-top: 0.125rem !important;
    margin-bottom: 0.75rem !important;
    font-size: 0.8125rem !important;
    /* Encore plus petite */
    line-height: 1.3 !important;
    color: #6B7280 !important;
    padding-top: 0 !important;
}/* Assurer la priorité des styles Gravity Forms pour les dispositions inline */
body #gform_wrapper_15 .gf_list_inline .gchoice {
    display: inline-block !important;
    margin-right: 1rem !important;
    margin-bottom: 0.5rem !important;
}body #gform_wrapper_15 .gf_list_inline .gfield_radio .gchoice,
body #gform_wrapper_15 .gf_list_inline .gfield_checkbox .gchoice {
    display: inline-block !important;
    margin-right: 1.5rem !important;
    margin-bottom: 0.75rem !important;
    clear: none !important;
}/* Ne pas toucher aux boutons - ils sont fonctionnels */

/* Media queries pour la responsivité mobile et tablette */
@media (max-width: 768px) {/* Mobile : supprimer le padding et faire couvrir tout l'écran */
    body #gform_wrapper_15 .ginput_container_text input[type="text"],
body #gform_wrapper_15 .ginput_container_email input[type="email"],
body #gform_wrapper_15 .ginput_container_phone input[type="tel"],
body #gform_wrapper_15 .ginput_container_website input[type="url"],
body #gform_wrapper_15 .ginput_container_number input[type="number"],
body #gform_wrapper_15 .ginput_container_select select,
body #gform_wrapper_15 .ginput_address_line_1 input,
body #gform_wrapper_15 .ginput_address_line_2 input,
body #gform_wrapper_15 .ginput_address_city input,
body #gform_wrapper_15 .ginput_address_state input,
body #gform_wrapper_15 .ginput_address_zip input,
body #gform_wrapper_15 .ginput_address_country select,
body #gform_wrapper_15 .gfield_floating_input,
body #gform_wrapper_15 .ginput_container_textarea textarea {
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 0.75rem !important;
        padding-right: 0.75rem !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        box-sizing: border-box !important;
    }/* Assurer que les conteneurs prennent toute la largeur */
    body #gform_wrapper_15 .gfield,
body #gform_wrapper_15 .ginput_container,
body #gform_wrapper_15 .gfield_floating_wrapper {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }/* Ajuster les étiquettes flottantes pour mobile */
    body #gform_wrapper_15 .gfield_floating_label {
        left: 0.75rem !important;
    }
}

@media (min-width: 769px) and (max-width: 1024px) and (orientation: portrait) {/* Tablette en mode portrait : champs plus larges */
    body #gform_wrapper_15 .ginput_container_text input[type="text"],
body #gform_wrapper_15 .ginput_container_email input[type="email"],
body #gform_wrapper_15 .ginput_container_phone input[type="tel"],
body #gform_wrapper_15 .ginput_container_website input[type="url"],
body #gform_wrapper_15 .ginput_container_number input[type="number"],
body #gform_wrapper_15 .ginput_container_select select,
body #gform_wrapper_15 .ginput_address_line_1 input,
body #gform_wrapper_15 .ginput_address_line_2 input,
body #gform_wrapper_15 .ginput_address_city input,
body #gform_wrapper_15 .ginput_address_state input,
body #gform_wrapper_15 .ginput_address_zip input,
body #gform_wrapper_15 .ginput_address_country select,
body #gform_wrapper_15 .gfield_floating_input,
body #gform_wrapper_15 .ginput_container_textarea textarea {
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 1rem !important;
        padding-right: 1rem !important;
        box-sizing: border-box !important;
    }/* Conteneurs plus larges sur tablette portrait */
    body #gform_wrapper_15 .gfield,
body #gform_wrapper_15 .ginput_container,
body #gform_wrapper_15 .gfield_floating_wrapper {
        width: 100% !important;
        max-width: 100% !important;
    }
}

/* Fin du CSS - garder simple et fonctionnel */
