﻿/* --- Boutons Génériques --- */
.me5rine-lab-form-button,
.wpcf7-form-control.wpcf7-submit,
/* Boutons Ultimate Member - Unifiés avec le design global */
.um .um-button,
.um input[type="submit"].um-button,
.um input[type="button"].um-button,
.um button.um-button,
input[type="submit"].um-button,
button.um-button {
    /* Shared shape — variants below only change color */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35em;
    padding: var(--me5rine-lab-control-padding-y, 0.375rem) var(--me5rine-lab-control-padding-x, 0.75rem) !important;
    min-height: auto !important;
    border-radius: var(--me5rine-lab-control-radius, var(--me5rine-lab-radius-sm, 6px)) !important;
    font-size: var(--me5rine-lab-control-font-size, 0.8125rem) !important;
    font-weight: var(--me5rine-lab-control-font-weight, 600) !important;
    line-height: var(--me5rine-lab-control-line-height, 1.3) !important;
    cursor: pointer !important;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease !important;
    box-shadow: none;
    text-transform: none !important;
    letter-spacing: normal;
    text-decoration: none !important;
    margin-top: 0;
    text-align: center;
    white-space: nowrap;
    box-sizing: border-box;
    width: auto;
    max-width: 100%;
    border: 1px solid transparent !important;
    vertical-align: middle !important;
    background: var(--me5rine-lab-button-primary-bg, var(--me5rine-lab-secondary, #0485C8)) !important;
    background-image: none !important;
    border-color: var(--me5rine-lab-button-primary-bg, var(--me5rine-lab-secondary, #0485C8)) !important;
    color: var(--me5rine-lab-white, #ffffff) !important;
    
    /* Reset pour Ultimate Member */
    -webkit-appearance: none !important;
    appearance: none !important;
    height: auto !important;
    outline: 0 !important;
    overflow: visible !important;
    text-shadow: none !important;
    position: relative !important;
}

/* Variante avec text-transform uppercase */
.me5rine-lab-form-button.uppercase {
    text-transform: uppercase !important;
}

.wpcf7-form-control.wpcf7-submit {
    margin-top: 44px !important;
}

/* Hover — primary darkens; variants override color only */
.me5rine-lab-form-button:hover,
.wpcf7-form-control.wpcf7-submit:hover,
.um .um-button:hover,
.um input[type="submit"].um-button:hover,
.um input[type="button"].um-button:hover,
.um button.um-button:hover,
input[type="submit"].um-button:hover,
button.um-button:hover {
    background: var(--me5rine-lab-button-primary-hover, var(--me5rine-lab-primary, #2E576F)) !important;
    background-image: none !important;
    border-color: var(--me5rine-lab-button-primary-hover, var(--me5rine-lab-primary, #2E576F)) !important;
    box-shadow: none;
    transform: none;
    color: var(--me5rine-lab-white, #ffffff) !important;
}

/* Empêcher le clignotement blanc spécifiquement pour les inputs submit */
input[type="submit"].um-button,
.um input[type="submit"].um-button {
    background: var(--me5rine-lab-button-primary-bg, var(--me5rine-lab-secondary, #0485C8)) !important;
    background-image: none !important;
    border-color: var(--me5rine-lab-button-primary-bg, var(--me5rine-lab-secondary, #0485C8)) !important;
}

input[type="submit"].um-button:hover,
.um input[type="submit"].um-button:hover {
    background: var(--me5rine-lab-button-primary-hover, var(--me5rine-lab-primary, #2E576F)) !important;
    background-image: none !important;
    border-color: var(--me5rine-lab-button-primary-hover, var(--me5rine-lab-primary, #2E576F)) !important;
}

/* État active (classe CSS) - Style distinct pour indiquer la sélection - Utilise les couleurs des boutons secondaires */
.me5rine-lab-form-button.active,
.wpcf7-form-control.wpcf7-submit.active,
.um .um-button.active,
.um input[type="submit"].um-button.active,
.um input[type="button"].um-button.active,
.um button.um-button.active,
input[type="submit"].um-button.active,
button.um-button.active {
    background: var(--me5rine-lab-text, #11161E) !important;
    background-image: none !important;
    background-color: var(--me5rine-lab-text, #11161E) !important;
    transform: none;
    color: var(--me5rine-lab-white, #ffffff) !important;
}

/* État :active (clic) - Pas de changement visuel, juste éviter les effets indésirables */
.me5rine-lab-form-button:active,
.wpcf7-form-control.wpcf7-submit:active,
.um .um-button:active,
.um input[type="submit"].um-button:active,
.um input[type="button"].um-button:active,
.um button.um-button:active,
input[type="submit"].um-button:active,
button.um-button:active {
    transform: none;
    box-shadow: none;
}

.me5rine-lab-form-button:focus,
.wpcf7-form-control.wpcf7-submit:focus,
.um .um-button:focus,
.um input[type="submit"].um-button:focus,
.um input[type="button"].um-button:focus,
.um button.um-button:focus,
input[type="submit"].um-button:focus,
button.um-button:focus {
    outline: 2px solid var(--me5rine-lab-secondary, #0485C8);
    outline-offset: 2px;
}

.me5rine-lab-form-button:disabled,
.me5rine-lab-form-button.disabled,
.um .um-button.um-disabled,
.um .um-button:disabled,
.um input[type="submit"].um-button:disabled,
.um input[type="button"].um-button:disabled,
.um button.um-button:disabled,
input[type="submit"].um-button:disabled,
button.um-button:disabled {
    opacity: 0.4;
    cursor: not-allowed;
    pointer-events: none;
    background: var(--me5rine-lab-border, #DEE5EC) !important;
    color: var(--me5rine-lab-text-light, #5D697D) !important;
}

.um .um-button.um-disabled:hover,
.um .um-button.um-disabled:focus,
.um .um-button.um-disabled:active,
.um .um-button:disabled:hover,
.um .um-button:disabled:focus,
.um .um-button:disabled:active {
    background: var(--me5rine-lab-border, #DEE5EC) !important;
    color: var(--me5rine-lab-text-light, #5D697D) !important;
    transform: none;
    box-shadow: none;
}

/* Ajustements spÃ©cifiques pour Ultimate Member */
.um-field .um-button {
    margin-top: 0 !important;
}

/* Secondary — color only */
.me5rine-lab-form-button-secondary,
.um .um-button.um-alt,
.um input[type=submit].um-button.um-alt {
    background: var(--me5rine-lab-button-secondary-bg, var(--me5rine-lab-bg-secondary, #F9FAFB)) !important;
    background-image: none !important;
    color: var(--me5rine-lab-text, #11161E) !important;
    border-color: var(--me5rine-lab-button-secondary-border, var(--me5rine-lab-border, #DEE5EC)) !important;
}

.me5rine-lab-form-button-secondary:hover,
.um .um-button.um-alt:hover,
.um input[type=submit].um-button.um-alt:hover {
    background: var(--me5rine-lab-bg, #ffffff) !important;
    background-image: none !important;
    color: var(--me5rine-lab-text, #11161E) !important;
    border-color: var(--me5rine-lab-secondary, #0485C8) !important;
    transform: none;
    box-shadow: none;
}

/* État active pour boutons secondaires - Style distinct pour indiquer la sélection */
.me5rine-lab-form-button-secondary.active,
.um .um-button.um-alt.active,
.um input[type=submit].um-button.um-alt.active {
    background: var(--me5rine-lab-bg-secondary, #F9FAFB) !important;
    background-image: none !important;
    border-color: var(--me5rine-lab-text, #11161E) !important;
    box-shadow: none !important;
    color: var(--me5rine-lab-text, #11161E) !important;
    transform: none;
}

.me5rine-lab-form-button-secondary:active,
.um .um-button.um-alt:active,
.um input[type=submit].um-button.um-alt:active {
    transform: none;
    box-shadow: none;
}

/* Boutons dans les messages — même taille que le chrome, teinte de la notice */
.me5rine-lab-form-message-button {
    margin: 0 !important;
}

.me5rine-lab-form-message .me5rine-lab-form-button,
.me5rine-lab-form-message .me5rine-lab-form-message-button {
    flex: 0 0 auto;
    width: auto !important;
    max-width: 100%;
    margin: 0 !important;
    min-height: auto !important;
    padding: var(--me5rine-lab-control-padding-y, 0.375rem) var(--me5rine-lab-control-padding-x, 0.75rem) !important;
    font-size: var(--me5rine-lab-control-font-size, 0.8125rem) !important;
}

.me5rine-lab-form-message .me5rine-lab-form-button-ghost,
.me5rine-lab-form-message .me5rine-lab-form-button-secondary,
.me5rine-lab-form-message .me5rine-lab-form-message-button:not(.me5rine-lab-form-button-remove):not(.me5rine-lab-form-button-danger) {
    background: color-mix(in srgb, currentColor 12%, transparent) !important;
    background-image: none !important;
    border-color: color-mix(in srgb, currentColor 45%, transparent) !important;
    color: currentColor !important;
}

.me5rine-lab-form-message .me5rine-lab-form-button-ghost:hover,
.me5rine-lab-form-message .me5rine-lab-form-button-ghost:focus-visible,
.me5rine-lab-form-message .me5rine-lab-form-button-secondary:hover,
.me5rine-lab-form-message .me5rine-lab-form-button-secondary:focus-visible,
.me5rine-lab-form-message .me5rine-lab-form-message-button:not(.me5rine-lab-form-button-remove):not(.me5rine-lab-form-button-danger):hover,
.me5rine-lab-form-message .me5rine-lab-form-message-button:not(.me5rine-lab-form-button-remove):not(.me5rine-lab-form-button-danger):focus-visible {
    background: color-mix(in srgb, currentColor 20%, transparent) !important;
    border-color: currentColor !important;
    color: currentColor !important;
}

.me5rine-lab-form-message-warning-button,
.me5rine-lab-form-message-warning-button.me5rine-lab-form-button-secondary,
.me5rine-lab-form-message-warning-button.um-button.um-alt {
    background: color-mix(in srgb, var(--me5rine-lab-warning, #FF9800) 14%, transparent) !important;
    background-image: none !important;
    border-color: color-mix(in srgb, var(--me5rine-lab-warning, #FF9800) 50%, transparent) !important;
    color: var(--me5rine-lab-warning, #FF9800) !important;
}

.me5rine-lab-form-message-warning-button:hover,
.me5rine-lab-form-message-warning-button.me5rine-lab-form-button-secondary:hover,
.me5rine-lab-form-message-warning-button.um-button.um-alt:hover {
    background: color-mix(in srgb, var(--me5rine-lab-warning, #FF9800) 22%, transparent) !important;
    background-image: none !important;
    border-color: var(--me5rine-lab-warning, #FF9800) !important;
    color: var(--me5rine-lab-warning, #FF9800) !important;
}

.me5rine-lab-form-message-success-button,
.me5rine-lab-form-message-success-button.me5rine-lab-form-button-secondary,
.me5rine-lab-form-message-success-button.um-button.um-alt {
    background: color-mix(in srgb, var(--me5rine-lab-success, #4CAF50) 14%, transparent) !important;
    background-image: none !important;
    border-color: color-mix(in srgb, var(--me5rine-lab-success, #4CAF50) 50%, transparent) !important;
    color: var(--me5rine-lab-success, #4CAF50) !important;
}

.me5rine-lab-form-message-success-button:hover,
.me5rine-lab-form-message-success-button.me5rine-lab-form-button-secondary:hover,
.me5rine-lab-form-message-success-button.um-button.um-alt:hover {
    background: color-mix(in srgb, var(--me5rine-lab-success, #4CAF50) 22%, transparent) !important;
    background-image: none !important;
    border-color: var(--me5rine-lab-success, #4CAF50) !important;
    color: var(--me5rine-lab-success, #4CAF50) !important;
}

.me5rine-lab-form-message-error-button,
.me5rine-lab-form-message-error-button.me5rine-lab-form-button-secondary,
.me5rine-lab-form-message-error-button.um-button.um-alt {
    background: color-mix(in srgb, var(--me5rine-lab-error, #F44336) 14%, transparent) !important;
    background-image: none !important;
    border-color: color-mix(in srgb, var(--me5rine-lab-error, #F44336) 50%, transparent) !important;
    color: var(--me5rine-lab-error, #F44336) !important;
}

.me5rine-lab-form-message-error-button:hover,
.me5rine-lab-form-message-error-button.me5rine-lab-form-button-secondary:hover,
.me5rine-lab-form-message-error-button.um-button.um-alt:hover {
    background: color-mix(in srgb, var(--me5rine-lab-error, #F44336) 22%, transparent) !important;
    background-image: none !important;
    border-color: var(--me5rine-lab-error, #F44336) !important;
    color: var(--me5rine-lab-error, #F44336) !important;
}

.me5rine-lab-form-message-info-button,
.me5rine-lab-form-message-info-button.me5rine-lab-form-button-secondary,
.me5rine-lab-form-message-info-button.um-button.um-alt {
    background: color-mix(in srgb, var(--me5rine-lab-info, #2196F3) 14%, transparent) !important;
    background-image: none !important;
    border-color: color-mix(in srgb, var(--me5rine-lab-info, #2196F3) 50%, transparent) !important;
    color: var(--me5rine-lab-info, #2196F3) !important;
}

.me5rine-lab-form-message-info-button:hover,
.me5rine-lab-form-message-info-button.me5rine-lab-form-button-secondary:hover,
.me5rine-lab-form-message-info-button.um-button.um-alt:hover {
    background: color-mix(in srgb, var(--me5rine-lab-info, #2196F3) 22%, transparent) !important;
    background-image: none !important;
    border-color: var(--me5rine-lab-info, #2196F3) !important;
    color: var(--me5rine-lab-info, #2196F3) !important;
}

/* Remove / danger — color only */
.me5rine-lab-form-button-remove,
.me5rine-lab-form-button-danger {
    background: var(--me5rine-lab-button-remove, #dc3545) !important;
    background-image: none !important;
    color: var(--me5rine-lab-white, #ffffff) !important;
    border-color: var(--me5rine-lab-button-remove, #dc3545) !important;
}

.me5rine-lab-form-button-remove:hover,
.me5rine-lab-form-button-danger:hover {
    background: var(--me5rine-lab-button-remove-hover, #c82333) !important;
    border-color: var(--me5rine-lab-button-remove-hover, #c82333) !important;
    color: var(--me5rine-lab-white, #ffffff) !important;
}

.me5rine-lab-form-button-remove:active,
.me5rine-lab-form-button-danger:active {
    transform: none;
    box-shadow: none;
}

/* Ghost / outline — color only */
.me5rine-lab-form-button-ghost,
.me5rine-home-hero__ghost {
    background: transparent !important;
    background-image: none !important;
    color: var(--me5rine-lab-primary, #2E576F) !important;
    border-color: var(--me5rine-lab-border, #DEE5EC) !important;
}

.me5rine-lab-form-button-ghost:hover,
.me5rine-lab-form-button-ghost:focus-visible,
.me5rine-home-hero__ghost:hover,
.me5rine-home-hero__ghost:focus-visible {
    background: var(--me5rine-lab-bg-secondary, #F9FAFB) !important;
    color: var(--me5rine-lab-primary, #2E576F) !important;
}

/* Bouton de type file - Gradient gris clair/gris foncÃ© - Uniquement le bouton "Select file" */
input[type="file"].me5rine-lab-form-button-file::file-selector-button,
input[type="file"].me5rine-lab-form-button-file::-webkit-file-upload-button {
    background: var(--me5rine-lab-button-secondary-bg, var(--me5rine-lab-bg-secondary, #F9FAFB)) !important;
    color: var(--me5rine-lab-text, #11161E) !important;
    border: none !important;
    border-radius: var(--me5rine-lab-radius-sm, 6px) !important;
    padding: var(--me5rine-lab-control-padding-y, 0.375rem) var(--me5rine-lab-control-padding-x, 0.75rem) !important;
    font-size: var(--me5rine-lab-control-font-size, 0.8125rem) !important;
    font-weight: var(--me5rine-lab-control-font-weight, 600) !important;
    cursor: pointer !important;
    transition: background 0.15s ease, border-color 0.15s ease !important;
    text-transform: none !important;
    margin-right: 12px !important;
}

input[type="file"].me5rine-lab-form-button-file::file-selector-button:hover,
input[type="file"].me5rine-lab-form-button-file::-webkit-file-upload-button:hover {
    background: var(--me5rine-lab-border-light, #B5C2CF) !important;
    transform: none !important;
    box-shadow: none !important;
    color: var(--me5rine-lab-text, #11161E) !important;
}

input[type="file"].me5rine-lab-form-button-file::file-selector-button:active,
input[type="file"].me5rine-lab-form-button-file::-webkit-file-upload-button:active {
    transform: translateY(0) !important;
    box-shadow: none !important;
}

/* Annulation des styles sur l'input file lui-mÃªme - seul le bouton est stylÃ© */
input[type="file"].me5rine-lab-form-button-file {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    color: inherit !important;
    width: 300px !important;
    max-width: none !important;
    min-width: auto !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
    display: inline-block !important;
    /* EmpÃªcher le troncage du texte "Aucun fichier choisi" */
    font-size: 14px !important;
    line-height: 1.5 !important;
    /* Surcharger les styles gÃ©nÃ©raux des inputs */
    box-sizing: content-box !important;
}

/* Texte du fichier sÃ©lectionnÃ© - Ã©viter le troncage */
input[type="file"].me5rine-lab-form-button-file::file-selector-button {
    margin-right: 12px !important;
}

input[type="file"].me5rine-lab-form-button-file::-webkit-file-upload-button {
    margin-right: 12px !important;
}

/* Support pour les labels personnalisÃ©s avec la classe */
input[type="file"].me5rine-lab-form-button-file + label.me5rine-lab-form-button,
label.me5rine-lab-form-button-file {
    background: var(--me5rine-lab-border, #DEE5EC) !important;
    color: var(--me5rine-lab-text, #11161E) !important;
    border: none !important;
    text-transform: none;
}

input[type="file"].me5rine-lab-form-button-file + label.me5rine-lab-form-button:hover,
label.me5rine-lab-form-button-file:hover {
    background: linear-gradient(135deg, var(--me5rine-lab-border-light, #B5C2CF) 0%, var(--me5rine-lab-border, #DEE5EC) 100%) !important;
}

/* Bouton block */
.me5rine-lab-form-button-block {
    margin-top: var(--me5rine-lab-spacing-lg, 20px);
    border-top: 1px solid transparent;
}

