/* ==========================================================================
   Voix des animaux — Page Contact
   Styles de la colonne éditoriale et du formulaire Ninja Forms.
   ========================================================================== */

/* --------------------------------------------------- Titre + sur-titre */
.tris-contact-titre .av-subheading {
    text-transform: uppercase;
    letter-spacing: .14em;
    line-height: 1.4;
    margin-bottom: 16px;
}

.tris-contact-titre .av-special-heading-tag {
    font-size: 44px;
    line-height: 1.15;
}

.tris-etapes {
    margin-top: 32px;
}

.tris-etapes .avia-icon-list {
    counter-reset: tris-etape;
    margin: 0;
}

.tris-etapes .avia-icon-list li {
    counter-increment: tris-etape;
    margin-left: 0 !important;
    padding-bottom: 24px !important;
}

.tris-etapes .avia-icon-list li:last-child {
    padding-bottom: 0 !important;
}

/* Le trait vertical que relie les items par défaut n'existe pas dans la maquette. */
.tris-etapes .iconlist-timeline {
    display: none !important;
}

.tris-etapes .iconlist_icon {
    line-height: 1.45em;
    border-radius: 50%;
    box-shadow: none !important;
    text-align: center;
}

#top .tris-etapes .av-iconlist-small .iconlist_icon {
    height: 3em;
    width: 3em;
    line-height: 1.45em;
    margin-right: 1em;
}

.tris-etapes .iconlist_icon .av-icon-char {
    display: none;
}

.tris-etapes .iconlist_icon::before {
    content: counter(tris-etape);
    font-size: 20px;
    font-weight: 600;
    line-height: 45px;
    /* pas de `color` : le numéro hérite de la couleur d'icône réglée dans l'ALB */
}

.tris-etapes .av_iconlist_title {
    font-family: inherit;
    /* la sans du corps de texte, pas la serif de titrage */
    font-size: 15px;
    font-weight: 600;
    line-height: 1.4;
    margin: 0 0 6px;
}

.tris-etapes .iconlist_content p {
    margin: 0;
    font-size: 15px;
    line-height: 1.65;
}

/* --------------------------------------------------- Citation */
.tris-citation-contact {
    margin-top: 34px;
}

.tris-citation-contact .avia-promocontent p {
    margin: 0;
    font-style: italic;
    font-size: 17px;
    line-height: 1.55;
}

/* --------------------------------------------------- Responsive */
@media only screen and (max-width:1024px) {
    .tris-contact-titre .av-special-heading-tag {
        font-size: 34px;
    }

    .tris-citation-contact p {
        font-size: 16px;
    }
}

@media only screen and (max-width:767px) {
    .tris-contact-titre .av-special-heading-tag {
        font-size: 28px;
    }

    .tris-contact-intro {
        margin-bottom: 32px !important;
    }

    .tris-citation-contact .avia_textblock {
        padding: 18px 20px;
    }
}

/* ---------------------------------------------------------
   CONTENEUR
   --------------------------------------------------------- */

#top #nf-form-2-cont {
    --tris-form-ink: #233b37;
    --tris-form-muted: #667571;
    --tris-form-accent: var(--enfold-header-color-primary, #4b5993);
    --tris-form-accent-soft: color-mix(in srgb,
            var(--tris-form-accent) 10%, #ffffff);
    --tris-form-accent-ring: color-mix(in srgb,
            var(--tris-form-accent) 20%, transparent);
    --tris-form-border: #ccd9d6;
    --tris-form-border-soft: #e3ebe9;
    --tris-form-surface: #ffffff;
    --tris-form-surface-soft: #f5f8f7;
    --tris-form-error: #a93f35;

    width: 100%;
    max-width: 100%;
}

#top .tris-contact-formulaire {
    box-shadow: 0 24px 70px -42px rgba(28, 54, 82, .42);
}

#top #nf-form-2-cont .nf-form-content {
    width: 100%;
    padding: 0 !important;
}

#top #nf-form-2-cont .nf-form-title h3 {
    margin: 0 0 10px !important;
    color: var(--tris-form-ink) !important;
    font-size: clamp(24px, 3vw, 32px) !important;
    line-height: 1.15 !important;
}

#top #nf-form-2-cont .nf-form-fields-required {
    margin: 0 0 18px 0 !important;
    color: var(--tris-form-muted) !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
    font-weight: 400 !important;
}

#top #nf-form-2-cont .ninja-forms-req-symbol {
    color: var(--tris-form-accent) !important;
}

#top #nf-form-2-cont #nf-field-5-container p {
    margin: 0 !important;
    color: var(--tris-form-muted) !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
}

#top #nf-form-2-cont input,
#top #nf-form-2-cont textarea {
    caret-color: var(--tris-form-accent);
}

#top #nf-form-2-cont ::selection {
    background: var(--tris-form-accent-soft);
    color: var(--tris-form-ink);
}

/* ---------------------------------------------------------
   LIGNES / CELLULES
   On conserve la structure et l'ordre de Ninja Forms
   --------------------------------------------------------- */

#top #nf-form-2-cont .nf-row {
    width: 100% !important;
    margin: 0 !important;
}

#top #nf-form-2-cont .nf-cells {
    display: flex !important;
    width: 100% !important;
}

#top #nf-form-2-cont .nf-cell {
    box-sizing: border-box !important;
}

/* ---------------------------------------------------------
   ESPACEMENT ENTRE LES CHAMPS
   --------------------------------------------------------- */

#top #nf-form-2-cont .nf-field-container {
    margin-bottom: 18px !important;
}

#top #nf-form-2-cont .nf-row:last-child .nf-field-container {
    margin-bottom: 0 !important;
}

/* Les séparateurs de section Ninja Forms sont des champs HTML contenant un <p>.
   On neutralise la marge globale d'Enfold, puis on recrée un rythme maîtrisé. */
#top #nf-form-2-cont #nf-field-16-container,
#top #nf-form-2-cont #nf-field-17-container,
#top #nf-form-2-cont #nf-field-22-container {
    margin-top: 30px !important;
    margin-bottom: 14px !important;
    padding-top: 22px;
    border-top: 1px solid var(--tris-form-border-soft);
}

#top #nf-form-2-cont #nf-field-16-container {
    margin-top: 4px !important;
    padding-top: 0;
    border-top: 0;
}

#top #nf-form-2-cont #nf-field-16-container p,
#top #nf-form-2-cont #nf-field-17-container p,
#top #nf-form-2-cont #nf-field-22-container p {
    margin: 0 !important;
    color: var(--tris-form-accent) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    letter-spacing: .1em;
    text-transform: uppercase;
}

/* ---------------------------------------------------------
   LABELS
   --------------------------------------------------------- */

#top #nf-form-2-cont .nf-field-label {
    display: block !important;

    margin: 0 0 7px 0 !important;
    padding: 0 !important;
}

#top #nf-form-2-cont .nf-field-label label {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    color: var(--tris-form-ink) !important;
    font-size: 14px !important;
    line-height: 1.3 !important;
    font-weight: 600 !important;
}

/* ---------------------------------------------------------
   INPUTS
   --------------------------------------------------------- */

#top #nf-form-2-cont .nf-field-element input[type="text"],
#top #nf-form-2-cont .nf-field-element input[type="email"],
#top #nf-form-2-cont .nf-field-element input[type="tel"],
#top #nf-form-2-cont .nf-field-element select {

    display: block !important;
    width: 100% !important;
    height: 46px !important;
    margin: 0 !important;
    padding: 0 14px !important;
    box-sizing: border-box !important;
    border: 1px solid var(--tris-form-border) !important;
    border-radius: 10px !important;
    background-color: var(--tris-form-surface) !important;
    color: var(--tris-form-ink) !important;
    font-family: inherit !important;
    font-size: 15px !important;
    font-weight: 400 !important;
    line-height: 46px !important;
    box-shadow: none !important;
    transition: border-color .18s ease, box-shadow .18s ease,
        background-color .18s ease;
}

#top #nf-form-2-cont .nf-field-element select {
    cursor: pointer;
}

/* ---------------------------------------------------------
   PLACEHOLDERS
   --------------------------------------------------------- */

#top #nf-form-2-cont input::placeholder,
#top #nf-form-2-cont textarea::placeholder {
    color: #75817e !important;
    opacity: 1 !important;
}

/* ---------------------------------------------------------
   FOCUS
   --------------------------------------------------------- */

#top #nf-form-2-cont .nf-field-element input:focus,
#top #nf-form-2-cont .nf-field-element textarea:focus,
#top #nf-form-2-cont .nf-field-element select:focus {
    border-color: var(--tris-form-accent) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px var(--tris-form-accent-ring) !important;
}

#top #nf-form-2-cont .nf-field-element input:focus-visible,
#top #nf-form-2-cont .nf-field-element textarea:focus-visible,
#top #nf-form-2-cont .nf-field-element select:focus-visible,
#top #nf-form-2-cont .nf-fu-fileinput-button:focus-visible,
#top #nf-form-2-cont .submit-container input[type="submit"]:focus-visible {
    outline: 2px solid var(--tris-form-accent) !important;
    outline-offset: 3px !important;
}

/* ---------------------------------------------------------
   TEXTAREA
   --------------------------------------------------------- */

#top #nf-form-2-cont .textarea-wrap textarea {

    display: block !important;
    width: 100% !important;
    height: 128px !important;
    min-height: 128px !important;
    margin: 0 !important;
    padding: 13px 14px !important;
    box-sizing: border-box !important;
    border: 1px solid var(--tris-form-border) !important;
    border-radius: 10px !important;
    background: var(--tris-form-surface) !important;
    color: var(--tris-form-ink) !important;
    font-family: inherit !important;
    font-size: 15px !important;
    line-height: 1.45 !important;
    resize: vertical !important;
    box-shadow: none !important;
    transition: border-color .18s ease, box-shadow .18s ease;
}

/* ---------------------------------------------------------
   CHOIX DE PRESTATION
   --------------------------------------------------------- */

#top #nf-form-2-cont .list-radio-wrap .nf-field-element ul {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 18px;
    margin: 0 !important;
}

#top #nf-form-2-cont .list-radio-wrap .nf-field-element li {
    display: flex !important;
    align-items: flex-start;
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
}

#top #nf-form-2-cont .list-radio-wrap input[type="radio"] {
    flex: 0 0 auto;
    width: 17px !important;
    height: 17px !important;
    margin: 2px 9px 0 0 !important;
    accent-color: var(--tris-form-accent);
    cursor: pointer;
}

#top #nf-form-2-cont .list-radio-wrap label {
    margin: 0 !important;
    color: var(--tris-form-ink) !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.45 !important;
    cursor: pointer;
}

/* ---------------------------------------------------------
   ENVOI DE LA PHOTO
   --------------------------------------------------------- */

#top #nf-form-2-cont .nf-fu-fileinput-button {
    min-height: 42px;
    margin: 0 0 8px !important;
    padding: 10px 16px !important;
    border: 1px solid var(--tris-form-border) !important;
    border-radius: 10px !important;
    background: var(--tris-form-surface-soft) !important;
    color: var(--tris-form-accent) !important;
    font-family: inherit !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1.45 !important;
    cursor: pointer;
    transition: border-color .18s ease, background-color .18s ease;
}

#top #nf-form-2-cont .nf-fu-fileinput-button:hover {
    border-color: var(--tris-form-accent) !important;
    background: var(--tris-form-accent-soft) !important;
}

#top #nf-form-2-cont .nf-fu-progress {
    height: 8px;
    margin: 8px 0 0;
    border-radius: 999px;
    background: var(--tris-form-border-soft);
    box-shadow: none;
}

#top #nf-form-2-cont .nf-fu-progress-bar {
    background: var(--tris-form-accent);
    box-shadow: none;
}

/* ---------------------------------------------------------
   VALIDATION ET RETOURS
   --------------------------------------------------------- */

#top #nf-form-2-cont .nf-error .ninja-forms-field {
    border-color: var(--tris-form-error) !important;
}

#top #nf-form-2-cont .nf-error-msg,
#top #nf-form-2-cont .nf-form-errors {
    color: var(--tris-form-error) !important;
    font-size: 13px !important;
    line-height: 1.45 !important;
}

#top #nf-form-2-cont .nf-error-wrap .nf-error-msg {
    margin-top: 6px;
}

#top #nf-form-2-cont .nf-response-msg {
    margin-bottom: 20px;
    padding: 14px 16px;
    border-radius: 10px;
    background: var(--tris-form-surface-soft);
    color: var(--tris-form-ink);
}

#top #nf-form-2-cont .nf-response-msg p {
    margin: 0 !important;
}

/* ---------------------------------------------------------
   CASE À COCHER — CONFIDENTIALITÉ
   --------------------------------------------------------- */

/* La cellule est en flex (style inline) : on force le contenu à prendre toute la largeur */
#top #nf-form-2-cont .nf-cell>nf-fields {
    display: block !important;
    flex: 1 1 100% !important;
    width: 100% !important;
}

/* Grille : case | label, puis description sous le label */
#top #nf-form-2-cont .checkbox-container .checkbox-wrap {
    display: grid !important;
    grid-template-columns: 18px 1fr !important;
    column-gap: 11px !important;
    row-gap: 6px !important;
    align-items: start !important;
}

#top #nf-form-2-cont .checkbox-container .nf-field-element {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
}

#top #nf-form-2-cont .checkbox-container .nf-field-label {
    grid-column: 2 !important;
    grid-row: 1 !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
}

#top #nf-form-2-cont .checkbox-container .nf-field-label label {
    font-size: 13px !important;
    line-height: 1.45 !important;
    font-weight: 500 !important;
    cursor: pointer;
}

#top #nf-form-2-cont .checkbox-container .nf-field-description {
    grid-column: 2 !important;
    grid-row: 2 !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
}

#top #nf-form-2-cont .checkbox-container .nf-field-description p {
    margin: 0 !important;
    color: var(--tris-form-muted) !important;
    line-height: 1.55 !important;
}

/* La case elle-même */
#top #nf-form-2-cont .checkbox-container input[type="checkbox"] {
    display: block !important;
    width: 18px !important;
    height: 18px !important;
    margin: 0 !important;
    accent-color: var(--tris-form-accent);
    cursor: pointer;
}

/* Le message d'erreur s'aligne sous le texte, pas sous la case */
#top #nf-form-2-cont .checkbox-container .nf-error-wrap {
    padding-left: 29px;
}

/* Espace avant le bouton */
#top #nf-form-2-cont .checkbox-container {
    margin-bottom: 18px !important;
}

/* ---------------------------------------------------------
   BOUTON
   --------------------------------------------------------- */

#top #nf-form-2-cont .submit-container {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

#top #nf-form-2-cont .submit-container .nf-field-element {
    width: 100% !important;
}

#top #nf-form-2-cont .submit-container input[type="submit"] {
    display: block !important;
    width: 100% !important;
    min-height: 48px !important;
    margin: 0 !important;
    padding: 0 20px !important;
    box-sizing: border-box !important;
    border: none !important;
    border-radius: 10px !important;
    background: var(--tris-form-accent) !important;
    color: #ffffff !important;
    font-family: inherit !important;
    font-size: 15px !important;
    line-height: 48px !important;
    font-weight: 600 !important;
    text-align: center !important;
    cursor: pointer !important;
    box-shadow: 0 10px 24px -16px rgba(28, 54, 82, .65) !important;
    transition: background-color .18s ease, transform .18s ease,
        box-shadow .18s ease;
}

#top #nf-form-2-cont .submit-container input[type="submit"]:hover {
    background: var(--tris-form-accent) !important;
    transform: translateY(-1px);
    box-shadow: 0 14px 28px -16px rgba(28, 54, 82, .75) !important;
    filter: brightness(.9);
}

#top #nf-form-2-cont .submit-container input[type="submit"]:active {
    transform: translateY(0);
    filter: brightness(.84);
}

#top #nf-form-2-cont .submit-container input[type="submit"]:disabled {
    opacity: .58;
    cursor: not-allowed !important;
    transform: none;
    filter: none;
    box-shadow: none !important;
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media only screen and (max-width: 767px) {

    #top #nf-form-2-cont .nf-cells {
        display: block !important;
    }

    #top #nf-form-2-cont .nf-cell {
        width: 100% !important;
    }

    #top #nf-form-2-cont .list-radio-wrap .nf-field-element ul {
        grid-template-columns: 1fr;
        gap: 9px;
    }

    #top #nf-form-2-cont #nf-field-17-container,
    #top #nf-form-2-cont #nf-field-22-container {
        margin-top: 24px !important;
        padding-top: 18px;
    }

    #top #nf-form-2-cont .nf-field-element input[type="text"],
    #top #nf-form-2-cont .nf-field-element input[type="email"],
    #top #nf-form-2-cont .nf-field-element input[type="tel"],
    #top #nf-form-2-cont .nf-field-element select {
        height: 44px !important;
        line-height: 44px !important;
    }

}

@media (prefers-reduced-motion: reduce) {
    #top #nf-form-2-cont *,
    #top #nf-form-2-cont *::before,
    #top #nf-form-2-cont *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}
