/* 
 * DOCUMENTATION JP — CSS RÉORGANISÉ
 * ----------------------------------------------------------
 * Fichier : assets/css/jp-forms.css
 * Rôle : Formulaires.
 *
 * Lecture conseillée :
 * 1. fondations et structure du composant ;
 * 2. éléments internes et états ;
 * 3. adaptations responsive et compatibilité.
 *
 * IMPORTANT : l'ordre de cascade est volontairement préservé lorsqu'un déplacement
 * pourrait modifier le rendu. Les doublons retirés sont uniquement ceux dont une
 * déclaration strictement identique existe plus loin dans le même contexte CSS.
  */

/* * FICHIER CSS RÉORGANISÉ
 * Fichier : assets/css/jp-forms.css
 * Rôle : Formulaires et champs interactifs.
 *
 * Organisation :
 * 1. Styles de base du module
 * 2. États et interactions
 * 3. Adaptations responsives, dans l’ordre du fichier d’origine
 *
 * Maintenance : l’ordre des règles est conservé afin de respecter la cascade CSS.
 * Les doublons strictement identiques dans un même bloc ont été supprimés. */

/* *
 * jp-forms.css
 * Rôle : Formulaires.
 *
 * Organisation du fichier :
 * 1. Variables et fondations éventuelles
 * 2. Structure principale du composant
 * 3. États, variantes et interactions
 * 4. Adaptations responsives
 *
 * Les doublons strictement identiques ont été supprimés. Les surcharges
 * volontaires et les fallbacks compatibles ont été conservés pour ne pas
 * modifier le rendu ou le comportement existant. */

/* ==========================================================
   JP FORMS
   Framework commun pour tous les formulaires du site
   ========================================================== */

/* ==========================================================================
   Formulaires et champs
   ========================================================================== */

.jp-form, .jp-jobboardwp-form {
        --jp-form-border: #d8e1ea;
        --jp-form-border-focus: #00a6c8;
        --jp-form-bg: #ffffff;
        --jp-form-bg-soft: #f5f9fc;
        --jp-form-text: #17324d;
        --jp-form-muted: #6b7b8c;
        --jp-form-radius: 16px;
        --jp-form-shadow: 0 12px 30px rgba(14, 40, 65, 0.08);
}

/* Labels */

.jp-form label, .jp-jobboardwp-form label {
        display: block;
        margin-bottom: 8px;
        color: var(--jp-form-text);
        font-size: 15px;
        font-weight: 700;
}

/* Champs */

.jp-form input[type="text"], .jp-form input[type="email"], .jp-form input[type="url"], .jp-form input[type="password"], .jp-form input[type="number"], .jp-form input[type="tel"], .jp-form select, .jp-form textarea, .jp-jobboardwp-form input[type="text"], .jp-jobboardwp-form input[type="email"], .jp-jobboardwp-form input[type="url"], .jp-jobboardwp-form input[type="password"], .jp-jobboardwp-form input[type="number"], .jp-jobboardwp-form input[type="tel"], .jp-jobboardwp-form select, .jp-jobboardwp-form textarea {
        width: 100%;
        min-height: 46px;
        padding: 11px 14px;
        border: 1px solid var(--jp-form-border);
        border-radius: var(--jp-form-radius);
        background: var(--jp-form-bg);
        color: var(--jp-form-text);
        font-size: 15px;
        line-height: 1.45;
        box-shadow: none;
        transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

/*  CIBLE — Offres d’emploi : .jp-form textarea, .jp-jobboardwp-form textarea  */

.jp-form textarea, .jp-jobboardwp-form textarea {
        min-height: 130px;
        resize: vertical;
}

/*  CIBLE — Offres d’emploi : .jp-form input:focus, .jp-form select:focus, .jp-form textarea:focus, .jp-jobboardwp-form input:focus,…  */

.jp-form input:focus, .jp-form select:focus, .jp-form textarea:focus, .jp-jobboardwp-form input:focus, .jp-jobboardwp-form select:focus, .jp-jobboardwp-form textarea:focus {
        outline: none;
        border-color: var(--jp-form-border-focus);
        box-shadow: 0 0 0 3px rgba(0, 166, 200, .16);
}

/* Select */

.jp-form select, .jp-jobboardwp-form select {
        cursor: pointer;
}

/* Aide / description */

.jp-form small, .jp-form .description, .jp-jobboardwp-form small, .jp-jobboardwp-form .description {
        display: block;
        margin-top: 6px;
        color: var(--jp-form-muted);
        font-size: 13px;
        line-height: 1.45;
}

/* Checkboxes / radios */

.jp-form input[type="checkbox"], .jp-form input[type="radio"], .jp-jobboardwp-form input[type="checkbox"], .jp-jobboardwp-form input[type="radio"] {
        width: auto;
        min-height: 0;
        margin-right: 8px;
        accent-color: #00a6c8;
}

/* Boutons formulaire */

/* ==========================================================================
   Boutons et actions
   ========================================================================== */

.jp-form button, .jp-form input[type="submit"], .jp-form input[type="button"], .jp-jobboardwp-form button, .jp-jobboardwp-form input[type="submit"], .jp-jobboardwp-form input[type="button"] {
        border-radius: 999px;
        border: 0;
        background: #003b5c;
        color: #ffffff;
        padding: 10px 20px;
        font-size: 14px;
        font-weight: 800;
        line-height: 1.2;
        cursor: pointer;
        transition: background-color .18s ease, transform .18s ease, box-shadow .18s ease;
}

/*  CIBLE — Offres d’emploi : .jp-form button:hover, .jp-form input[type="submit"]:hover, .jp-form input[type="button"]:hover, .jp-j…  */

.jp-form button:hover, .jp-form input[type="submit"]:hover, .jp-form input[type="button"]:hover, .jp-jobboardwp-form button:hover, .jp-jobboardwp-form input[type="submit"]:hover, .jp-jobboardwp-form input[type="button"]:hover {
        background: #00a6c8;
        transform: translateY(-1px);
        box-shadow: 0 10px 22px rgba(0, 166, 200, .25);
}

/* Messages */

/* ==========================================================================
   Formulaires et champs
   ========================================================================== */

.jp-form .jp-form-message, .jp-jobboardwp-form .jobboardwp-notice, .jp-jobboardwp-form .jobboardwp-message, .jp-jobboardwp-form .jobboardwp-error {
        padding: 14px 16px;
        border-radius: 16px;
        margin-bottom: 18px;
        font-size: 14px;
        line-height: 1.45;
}

/*  CIBLE — Offres d’emploi : .jp-jobboardwp-form .jobboardwp-message  */

.jp-jobboardwp-form .jobboardwp-message {
        background: #eefaf4;
        color: #155c3b;
        border: 1px solid #bee8d2;
}

/*  CIBLE — Offres d’emploi : .jp-jobboardwp-form .jobboardwp-error  */

.jp-jobboardwp-form .jobboardwp-error {
        background: #fff1f1;
        color: #8a1f1f;
        border: 1px solid #f2c4c4;
}
