/* ============================================================
   Nous contacter — styles v8
   ============================================================ */

/* Wrapper page contacter — header fixé 7.5vh + 48px d'écart avant le titre + 48px avant le footer */
.contact-page {
    padding-top: calc(7.5vh + 48px);
    padding-bottom: 48px;
}
/* Bloque le margin-collapse entre le bas du formulaire et le padding-bottom du conteneur */
.contact-page::after {
    content: "";
    display: block;
    height: 0;
}

/* Titre page — centré, en haut du formulaire */
.contact-title {
    display: block;
    text-align: center;
    color: var(--ink, #0A0A0A);
    font-size: 32px;
    font-weight: 700;
    margin: 0 0 12px;
    padding: 0;
}

/* Sous-titre / introduction sous le titre principal */
.contact-intro {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 28px;
    font-size: 15px;
    line-height: 1.5;
}

/* Note explicative discrète sous une ligne de champs */
.contact-hint {
    color: var(--text-muted, #5C5648);
    font-size: 12px;
    margin: -10px 0 0;
    text-align: left;
    padding: 0 4px;
}

/* Titre de section dans le formulaire (Identification, Activité…) */
.contact-section-title {
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--accent, #0A0A0A);
    margin: 8px 0 4px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--border, #E5E2DA);
}

/* Mention champs obligatoires — centrée, rouge */
.contact-oblig {
    color: var(--err);
    text-align: center;
    margin: 0 0 48px;
    font-size: 14px;
}
.contact-oblig span {
    font-weight: 700;
}

/* Formulaire global */
.contact-form {
    display: flex;
    flex-direction: column;
    gap: 20px;
    max-width: 1000px;
    margin: 0 auto;
}

/* Ligne : 2 colonnes côte à côte */
.contact-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}
@media (max-width: 720px) {
    .contact-row {
        grid-template-columns: 1fr;
    }
}

/* Cellule combinée Civilité + Prénom (sur la même cellule gauche de la ligne 1) */
.contact-field--civnom {
    display: grid;
    grid-template-columns: 150px 1fr;
    gap: 12px;
    align-items: stretch;
}
@media (max-width: 720px) {
    .contact-field--civnom {
        grid-template-columns: 1fr;
    }
}

/* Largeur 100% garantie sur inputs/select/textarea dans le form */
.contact-form .field,
.contact-form input[type="text"].field,
.contact-form input[type="email"].field,
.contact-form select.field,
.contact-form textarea.field {
    width: 100%;
    box-sizing: border-box;
}

/* Textarea message */
textarea.contact-textarea {
    min-height: 220px;
    resize: vertical;
}

/* Champs pleine largeur */
.contact-full {
    width: 100%;
}

/* ---- Bloc captcha ALTCHA ---- */
.contact-captcha {
    display: flex;
    justify-content: center;
    margin: 16px 0;
}
.contact-captcha-box {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    min-width: 320px;
    border: 1px solid var(--line2, #D8D3C6);
    border-radius: 8px;
    background: #fff;
}
.contact-captcha-box input[type="number"] {
    flex: 1;
    border: 0;
    border-bottom: 1px solid var(--line2, #D8D3C6);
    background: transparent;
    padding: 4px 0;
    font-family: inherit;
    font-size: 14px;
    outline: none;
}
.contact-captcha-box input[type="number"]:focus {
    border-bottom-color: var(--ink, #0A0A0A);
}

/* ---- Bouton envoyer — centré ---- */
.contact-submit {
    display: flex;
    justify-content: center;
    margin-top: 8px;
    margin-bottom: 0;
}

/* ---- S'inscrire comme journaliste : mention étudiant (page partagée) ---- */
.etudiant {
    display: flex;
    align-items: center;
    gap: 8px;
}
.etudiant label {
    font-size: 13px;
    color: var(--err) !important;
    font-style: italic;
}

/* Empêche double marge du drop-wrapper dans un card-section paddé (si utilisé) */
.card-section .drop-wrapper {
    margin-left: 0;
    margin-right: 0;
}
