/**
 * Form & Button Harmonization
 * Version: 1.0
 * Last updated: 2025-12-15
 *
 * Harmonise les hauteurs de tous les champs de formulaire et boutons
 * pour une cohérence visuelle sur tout le site
 */

/* ============================================
   Variables globales
   ============================================ */
:root {
    --form-field-height: 42px;
    --form-field-padding-vertical: 10px;
    --form-field-padding-horizontal: 20px;
    --form-field-border-radius: 9999px;
}

/* ============================================
   Boutons WordPress (.wp-block-button)
   ============================================ */
:where(.wp-block-button__link) {
    min-height: var(--form-field-height) !important;
    padding: var(--form-field-padding-vertical) var(--form-field-padding-horizontal) !important;
    line-height: 1.2 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
}

/* Boutons avec style outline */
:where(.wp-block-button .wp-block-button__link.is-style-outline),
:where(.wp-block-button.is-style-outline > .wp-block-button__link) {
    padding: calc(var(--form-field-padding-vertical) - 2px) calc(var(--form-field-padding-horizontal) - 2px) !important;
}

/* ============================================
   Champs Contact Form 7
   ============================================ */
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="url"],
.wpcf7-form input[type="number"],
.wpcf7-form input[type="date"],
.wpcf7-form input[type="datetime-local"],
.wpcf7-form input[type="month"],
.wpcf7-form input[type="time"],
.wpcf7-form input[type="week"],
.wpcf7-form input[type="search"],
.wpcf7-form input[type="password"],
.wpcf7-form input[type="file"],
.wpcf7-form select {
    height: var(--form-field-height) !important;
    padding: var(--form-field-padding-vertical) var(--form-field-padding-horizontal) !important;
    line-height: 1.2 !important;
    box-sizing: border-box !important;
}

/* Textarea : garde son comportement auto-height mais harmonise le padding */
.wpcf7-form textarea {
    padding: var(--form-field-padding-vertical) var(--form-field-padding-horizontal) !important;
    line-height: 1.4 !important;
}

/* ============================================
   Champs WPForms (si présents)
   ============================================ */
.wpforms-container input[type="text"],
.wpforms-container input[type="email"],
.wpforms-container input[type="tel"],
.wpforms-container input[type="url"],
.wpforms-container input[type="number"],
.wpforms-container input[type="date"],
.wpforms-container input[type="search"],
.wpforms-container input[type="password"],
.wpforms-container select {
    height: var(--form-field-height) !important;
    padding: var(--form-field-padding-vertical) var(--form-field-padding-horizontal) !important;
    line-height: 1.2 !important;
    box-sizing: border-box !important;
    border-radius: var(--form-field-border-radius) !important;
}

.wpforms-container textarea {
    padding: var(--form-field-padding-vertical) var(--form-field-padding-horizontal) !important;
    line-height: 1.4 !important;
    border-radius: 20px !important;
}

.wpforms-container button[type="submit"],
.wpforms-container input[type="submit"] {
    min-height: var(--form-field-height) !important;
    padding: var(--form-field-padding-vertical) var(--form-field-padding-horizontal) !important;
    line-height: 1.2 !important;
    box-sizing: border-box !important;
    border-radius: var(--form-field-border-radius) !important;
}

/* ============================================
   Champs natifs WordPress (commentaires, recherche)
   ============================================ */
.wp-block-search__input,
.wp-block-loginout input[type="text"],
.wp-block-loginout input[type="password"],
input.wp-block-search__input {
    height: var(--form-field-height) !important;
    padding: var(--form-field-padding-vertical) var(--form-field-padding-horizontal) !important;
    line-height: 1.2 !important;
    box-sizing: border-box !important;
    border-radius: var(--form-field-border-radius) !important;
}

.wp-block-search__button {
    min-height: var(--form-field-height) !important;
    padding: var(--form-field-padding-vertical) var(--form-field-padding-horizontal) !important;
    line-height: 1.2 !important;
    box-sizing: border-box !important;
}

/* ============================================
   Responsive : réduction des hauteurs sur mobile
   ============================================ */
@media (max-width: 600px) {
    :root {
        --form-field-height: 40px;
        --form-field-padding-vertical: 9px;
        --form-field-padding-horizontal: 16px;
    }
}
