/* ============================================================
   CUSTOM.CSS — Vos modifications personnalisées
   ============================================================
   Ce fichier est VOTRE fichier CSS.
   Ajoutez ici tous vos styles personnalisés.
   Il est chargé EN DERNIER, donc vos règles ont priorité sur Avada.
   ============================================================ */


/* ============================================================
   1. VARIABLES PERSONNALISÉES
   ============================================================ */
:root {
    /* Surcharger les couleurs Avada si besoin :
    --awb-color4: #votre-couleur-principale;
    --awb-color5: #votre-couleur-secondaire;
    */
}

.title-heading-center {
    text-align: center !important;
}

.post-content h1,
.title h1,
h1 {
    color: #ffffff !important;
}

/* ============================================================
   2. ÉLÉMENTS GLOBAUX (menu, footer...)
   ============================================================ */

#div_contenu_header {
    padding-top: 50px !important;
    padding-bottom: 50px !important;
}

css.icon .fontawesome-icon {
    transition: background-color 0.3s ease;
}

.icon:hover .fontawesome-icon {
    background-color: #2c92c4 !important;
    color: #ffffff !important;
}


/* ============================================================
   3. PAGE D'ACCUEIL
   ============================================================ */

#titre_accueil {
    text-align: center !important;
    color: #ffffff;
    margin-bottom: 25px !important;
}

/* Barre de recherche */
#member-search {
    width: 100%;
    max-width: 400px;
    padding: 6px 2px;
    box-sizing: border-box;
}

.search-wrapper {
    position: relative;
    display: inline-block;
    width: 100%;
}

.search-wrapper::after {
    content: "⏷";
    position: absolute;
    right: 0.5em;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
    color: #999;
    font-size: 0.9em;
}

.search-wrapper input {
    padding-right: 1.5em;
}

#titre_accueil_fond_rose {
    text-align: center !important;
    color: #ffffff;
}



/* ============================================================
   4. PAGE À PROPOS
   ============================================================ */
.adime-section-header-apropos {
    --awb-border-radius-top-left: 0px;
    --awb-border-radius-top-right: 0px;
    --awb-border-radius-bottom-right: 0px;
    --awb-border-radius-bottom-left: 0px;
    --awb-padding-top: 100px !important;
    --awb-padding-bottom: 100px !important;
    --awb-background-color: var(--awb-color3);
    --awb-flex-wrap: wrap;
    color: #ffffff !important;
}

.adime-section-header-apropos h1 {
    color: #ffffff !important;
}

/* ============================================================
   5. PAGE NOS EXPERTISES
   ============================================================ */

/* Conteneur : on force l'étirement des li sur la même ligne */
ul.fusion-grid-posts-cards {
    align-items: stretch !important;
}

/* Chaque li devient une colonne flex de hauteur égale */
ul.fusion-grid-posts-cards>li.fusion-post-cards-grid-column {
    display: flex !important;
    flex-direction: column !important;
    height: auto !important;
}

/* Le wrapper interne doit remplir toute la hauteur du li */
ul.fusion-grid-posts-cards>li.fusion-post-cards-grid-column .fusion-column-wrapper {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    flex: 1 1 auto !important;
    justify-content: space-between !important;
}

/* Image : taille fixe, ne s'étire pas */
ul.fusion-grid-posts-cards .fusion-post-card-image {
    flex: 0 0 auto !important;
}

/* Texte/description : prend l'espace disponible, pousse le bouton vers le bas */
ul.fusion-grid-posts-cards .limiter-description {
    flex: 1 1 auto !important;
}

/* Le bouton (wrapper text-align:center) reste collé en bas naturellement */
ul.fusion-grid-posts-cards .fusion-column-wrapper>div:last-child {
    flex: 0 0 auto !important;
}

@media (min-width: 801px) {
    .miniature_expertise>ul {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 24px;
    }

    .miniature_expertise>ul>li {
        flex: 1 1 calc(25% - 24px);
        max-width: calc(25% - 24px);
    }
}


/* ============================================================
   6. PAGE MEMBRES / ANNUAIRE
   ============================================================ */

.limiter-description {
    display: block;
    margin-bottom: 20px;
}

ul.actualite_post>li.post-card>.fusion-column-wrapper {
    border: 1px solid #2c92c4 !important;
    padding: 20px;
}

/* ============================================================
   7. PAGE ACTUALITÉS
   ============================================================ */

.separateur_article {
    margin-bottom: 30px !important;
}


/* ============================================================
   8. PAGE CONTACT
   ============================================================ */


/* ============================================================
   9. NEWSLETTER & DIVERS
   ============================================================ */

.texte_anecdote {
    font-style: italic !important;
}

.fusion-column,
.fusion-builder-row {
    overflow: visible !important;
}

#block_bouton_newsletter {
    cursor: pointer !important;
}

.div_newsletter p:has(input) {
    text-align: center !important;
}

/*.cmplz-btn {
    margin-right: 90px !important;
}*/

#block_bouton_newsletter .off-canvas-content {
    z-index: 0 !important;
}


/* ============================================================
   10. RESPONSIVE MOBILE (max 820px)
   ============================================================ */

@media (max-width: 820px) {
    /* Vos ajustements mobiles ici */
}

/* ============================================================
   11. PAGE PROFIL INDIVIDUEL (Membres)
   ============================================================ */
.content_show_profile .fusion-layout-column .fusion-column-wrapper {
    border: none !important;
}

.content_show_profile {
    margin-left: auto !important;
    margin-right: auto !important;
    display: block !important;
    float: none !important;
    margin-top: 50px !important;
}

.member-profile-main {
    display: block;
}

.member-profile-header-banner {
    background-color: var(--awb-color5, #1b88b7);
    padding: 120px 20px;
    text-align: center;
    color: var(--awb-color1, #ffffff);
    position: relative;
}

.member-profile-header-inner {
    max-width: 1331.2px;
    margin: 0 auto;
}

.member-profile-header-name {
    font-family: var(--awb-typography1-font-family, "Yeseva One", serif);
    font-size: 54px;
    font-weight: 400;
    line-height: 1.2;
    margin: 0 0 10px 0;
    color: var(--awb-color1, #ffffff);
}

.member-profile-header-company {
    font-family: var(--awb-typography1-font-family, "Yeseva One", serif);
    font-size: 34px;
    font-weight: 400;
    line-height: 1.2;
    margin: 0;
    color: var(--awb-color1, #ffffff);
}

.member-profile-header-role {
    font-family: var(--awb-typography1-font-family, "Yeseva One", serif);
    font-size: 24px;
    font-weight: 400;
    line-height: 1.2;
    margin-top: 15px;
    color: var(--awb-custom_color_1, #f9b03c);
    text-transform: uppercase;
}

.member-profile-shell {
    background-color: var(--content_bg_color);
    background-image: var(--bg_pattern);
    background-repeat: var(--bg_repeat);
    padding-left: var(--hundredp_padding-fallback_to_zero);
    padding-right: var(--hundredp_padding-fallback_to_zero);
    padding-top: var(--main_padding-top);
    padding-bottom: var(--main_padding-bottom);
}

.member-profile-frame {
    max-width: 1331.2px;
    margin: 0 auto !important;
}

.member-profile-grid {
    display: grid;
    grid-template-columns: minmax(280px, 1fr) minmax(0, 2fr);
    gap: 32px;
    align-items: start;
}

.member-profile-grid .member-profile-card,
.member-profile-grid .member-profile-card *,
.member-profile-grid .member-profile-panel {
    border: none !important;
    border-width: 0px !important;
    border-style: none !important;
    border-color: transparent !important;
    --awb-border-width-top: 0px !important;
    --awb-border-width-right: 0px !important;
    --awb-border-width-bottom: 0px !important;
    --awb-border-width-left: 0px !important;
    --awb-border-color: transparent !important;
    --awb-border-size: 0px !important;
}

.member-profile-grid .member-contact-card {
    border: none !important;
}

.member-profile-card {
    background: var(--awb-color1);
    box-shadow: none !important;
    overflow: hidden;
    border-radius: 120px 0 0 0;
}

@media (min-width: 992px) {
    .member-profile-card {
        position: sticky !important;
        top: 100px !important;
        z-index: 10 !important;
    }
}

.member-profile-photo {
    width: 100%;
    height: auto;
    object-fit: cover;
    display: block;
}

.member-profile-photo-placeholder {
    width: 100%;
    aspect-ratio: 2 / 3;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--awb-color2), #ffffff);
    color: var(--awb-color3);
    font-family: var(--awb-typography1-font-family);
    font-size: clamp(48px, 8vw, 96px);
    font-weight: 400;
    letter-spacing: -0.03em;
}

.member-profile-panel {
    background: var(--awb-color1);
    box-shadow: none !important;
    overflow: hidden;
    border-radius: 0;
}

.member-profile-panel-inner {
    padding: 56px 48px 44px;
}

.member-profile-logo-wrapper {
    text-align: center;
    margin: 0 auto 50px auto;
    width: 100%;
    max-width: 500px;
    display: block;
}

.member-profile-logo {
    width: 100%;
    max-width: 500px;
    height: auto;
    max-height: 250px;
    object-fit: contain;
    display: block;
    margin: 0 auto;
}

.member-profile-logo-fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 90px;
    width: 100%;
    margin: 0 auto 25px;
    padding: 18px 24px;
    border: 1px solid rgba(0, 0, 0, 0.08);
    color: var(--awb-color8);
    font-family: var(--awb-typography1-font-family);
    font-size: 26px;
    text-align: center;
}

.member-profile-section-title {
    margin: 50px 0 30px;
    font-family: var(--awb-typography1-font-family);
    font-size: 28px;
    font-weight: 400;
    line-height: 1.2;
    color: var(--awb-color8);
}

.member-profile-text {
    font-size: 18px;
    line-height: 1.72;
    color: var(--awb-color8);
}

.member-profile-text p {
    margin-bottom: 20px;
}

.member-profile-text ul,
.member-profile-text ol {
    margin-top: 15px;
    margin-bottom: 15px;
    padding-left: 24px;
    list-style-type: disc;
}

.member-profile-text ol {
    list-style-type: decimal;
}

.member-profile-text li {
    margin-bottom: 8px;
}

.member-profile-text h2,
.member-profile-text h3,
.member-profile-text h4 {
    font-family: var(--awb-typography1-font-family, "Yeseva One", serif);
    font-weight: 400;
    line-height: 1.4;
    margin-top: 35px;
    margin-bottom: 15px;
    color: var(--awb-color8);
}

.member-profile-text h2 {
    font-size: 26px;
}

.member-profile-text h3 {
    font-size: 22px;
}

.member-profile-text h4 {
    font-size: 20px;
}

.member-contact-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-top: 24px;
}

.member-contact-card {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 30px !important;
    font-family: var(--font-body, "Josefin Sans", sans-serif);
    font-size: 16px !important;
    font-weight: 500 !important;
    line-height: 1.2;
    text-decoration: none;
    color: #ffffff !important;
    border-radius: 25px !important;
    box-sizing: border-box;
    width: 100%;
    transition: background-color 0.2s, transform 0.2s !important;
    border: none !important;
    cursor: pointer;
    text-align: center;
}

.member-contact-card:hover {
    transform: translateY(-1px) !important;
}

/* Specific colors */
.member-contact-card.phone-btn {
    background-color: var(--awb-color3, #00a5a5) !important;
}

.member-contact-card.phone-btn:hover {
    background-color: var(--awb-custom_color_1, #f9b03c) !important;
}

.member-contact-card.email-btn {
    background-color: var(--awb-color4, #bd6eaa) !important;
}

.member-contact-card.email-btn:hover {
    background-color: var(--awb-color5, #1b88b7) !important;
}

.member-contact-card.linkedin-btn {
    background-color: var(--awb-color5, #1b88b7) !important;
}

.member-contact-card.linkedin-btn:hover {
    background-color: var(--awb-color4, #bd6eaa) !important;
}

.member-contact-card.website-btn {
    background-color: var(--awb-custom_color_1, #f9b03c) !important;
}

.member-contact-card.website-btn:hover {
    background-color: var(--awb-color4, #bd6eaa) !important;
}

.member-contact-icon {
    font-size: 16px;
}

.member-anecdote-wrapper {
    margin-top: 40px;
    text-align: center;
}

.member-anecdote-text {
    font-size: 20px;
    line-height: 1.72;
    font-style: italic;
    color: var(--awb-color8, #1f2020);
    margin: 0;
}

/* ============================================================
   12. BLOCS RÉUTILISABLES ÉDITEUR (TinyMCE)
   ============================================================ */

.editor-button,
.editor-button,
.adime-editor-btn {
    display: inline-block;
    padding: 0.75rem 1.35rem;
    border-radius: 0.5rem;
    background-color: var(--awb-color5, #1b88b7);
    color: #ffffff !important;
    font-family: 'Josefin Sans', Arial, Helvetica, sans-serif;
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: 0.02em;
    text-decoration: none !important;
    border: 1px solid var(--awb-color5, #1b88b7);
    transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.editor-button:hover,
.editor-button:hover,
.adime-editor-btn:hover {
    background-color: var(--awb-color4, #bd6eaa);
    border-color: var(--awb-color4, #bd6eaa);
    color: #ffffff !important;
    transform: translateY(-1px);
}

.fusion-button.button-flat.fusion-button-default-size.button-default.fusion-button-default.button-5.fusion-button-default-span.fusion-button-default-type.awb-b-icon-pos-left {
    --awb-margin-right: 0px;
    --awb-margin-bottom: 0px;
    --awb-margin-left: 0px;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    position: relative;
    text-decoration: none !important;
    cursor: pointer;
    box-sizing: border-box;
    font-family: var(--button_typography-font-family, "Josefin Sans", Arial, Helvetica, sans-serif);
    font-weight: var(--button_typography-font-weight, 300);
    font-style: var(--button_typography-font-style, normal);
    letter-spacing: var(--button_typography-letter-spacing, 0.015em);
    border-width: var(--button_border_width-top, 0px) var(--button_border_width-right, 4px) var(--button_border_width-bottom, 4px) var(--button_border_width-left, 0px);
    border-style: solid;
    border-radius: var(--button-border-radius-top-left, 0px) var(--button-border-radius-top-right, 0px) var(--button-border-radius-bottom-right, 0px) var(--button-border-radius-bottom-left, 0px);
    text-transform: var(--button_text_transform, none);
    transition: color .2s, font-size .2s, background-color .2s, background-image .2s, border-color .2s, border-width .2s, border-style .2s, border-radius .2s, box-shadow .2s, opacity .2s, transform .2s;
    margin: var(--awb-margin-top, 30px) var(--awb-margin-right) var(--awb-margin-bottom) var(--awb-margin-left);
    background: var(--button_gradient_top_color, var(--awb-color5, #1b88b7));
    border-color: var(--button_border_color, #166f96);
    padding-top: var(--awb-padding-top, var(--button_padding-top, 15px));
    padding-right: var(--awb-padding-right, var(--button_padding-right, 29px));
    padding-bottom: var(--awb-padding-bottom, var(--button_padding-bottom, 13px));
    padding-left: var(--awb-padding-left, var(--button_padding-left, 29px));
    line-height: var(--button_line_height, 1.2);
    font-size: var(--button_font_size, 18px);
    color: var(--button_accent_color, #ffffff) !important;
    box-shadow: none !important;
    outline: 0;
}

.fusion-button.button-flat.fusion-button-default-size.button-default.fusion-button-default.button-5.fusion-button-default-span.fusion-button-default-type.awb-b-icon-pos-left:hover {
    background: var(--button_gradient_top_color_hover, var(--awb-color4, #bd6eaa));
    border-color: var(--button_border_hover_color, #8b4e7c);
    color: var(--button_accent_hover_color, #ffffff) !important;
    transform: translateY(-1px);
}

.fusion-button.button-flat .awb-button__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right: 0.45em;
    line-height: 1;
}

.fusion-button.button-flat .awb-button__icon+.awb-button__icon {
    margin-right: 0.55em;
}

.fusion-button.button-flat .awb-button__text {
    display: inline-block;
}

.editor-quote,
.editor-quote,
.adime-editor-quote {
    margin: 2em 0;
    padding: 15px;
    border-left: 4px solid var(--awb-color4, #bd6eaa);
    background-color: #f5f5f5;
    color: var(--awb-color8, #1f2020);
    font-style: italic;
}

.editor-quote p,
.editor-quote p,
.adime-editor-quote p {
    margin: 0;
    font-family: 'Josefin Sans', Arial, Helvetica, sans-serif;
    font-size: 18px;
    line-height: 1.72;
}

.editor-separator,
.editor-separator,
.adime-editor-separator {
    width: 100%;
    border: 0;
    border-top: 1px solid #000000;
    margin: 2rem 0;
}

.editor-columns,
.editor-columns,
.adime-columns {
    display: grid;
    gap: 1.25rem;
    margin: 1.5rem 0;
}

.editor-columns-2,
.editor-columns-2,
.adime-columns-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.editor-columns-3,
.editor-columns-3,
.adime-columns-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.editor-columns-4,
.editor-columns-4,
.adime-columns-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.editor-column,
.editor-column,
.adime-column {
    padding: 1rem;
}

.editor-column p,
.editor-column p,
.adime-column p {
    margin: 0 0 0.75rem 0;
}

.editor-column>p:first-child,
.adime-column>p:first-child {
    display: none;
}

.editor-column p:last-child,
.editor-column p:last-child,
.adime-column p:last-child {
    margin-bottom: 0;
}

@media (max-width: 900px) {

    .editor-columns,
    .editor-columns,
    .adime-columns {
        grid-template-columns: 1fr !important;
    }
}

.member-expertise-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
}

.member-expertise-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border-radius: 999px;
    background: rgba(0, 165, 165, 0.08);
    color: var(--awb-color3);
    font-size: 15px;
}

.fusion-button {
    font-size: 18px !important;
    padding-top: var(--awb-padding-top) !important;
    padding-right: var(--awb-padding-right) !important;
    padding-bottom: var(--awb-padding-bottom) !important;
    padding-left: var(--awb-padding-left) !important;
}

@media (max-width: 991.98px) {
    .member-profile-grid {
        grid-template-columns: 1fr;
    }

    .member-profile-header-banner {
        padding: 60px 20px;
    }

    .member-profile-header-name {
        font-size: clamp(30px, 6vw, 44px);
    }

    .member-profile-header-company {
        font-size: clamp(20px, 5vw, 28px);
    }

    .member-profile-header-role {
        font-size: clamp(16px, 4vw, 22px);
    }

    .member-profile-panel-inner {
        padding: 36px 24px 28px;
    }

    .member-contact-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .member-contact-grid {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   12. PAGE GOUVERNANCE
   ============================================================ */
.governance-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0;
}

.governance-card-container {
    transition: transform 0.3s;
    height: 100%;
}

.governance-card-container:hover {
    transform: translateY(-5px);
}

@media (max-width: 991px) {
    .governance-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 30px;
    }
}

@media (max-width: 767px) {
    .governance-grid {
        grid-template-columns: 1fr;
        gap: 25px;
    }
}

/* Custom font declaration for retro icons */
@font-face {
    font-family: 'retro';
    src: url('../fonts/retro/retro.eot') format('embedded-opentype'),
        url('../fonts/retro/retro.woff') format('woff'),
        url('../fonts/retro/retro.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

/*
[class^="retro-"], [class*=" retro-"] {
    font-family: 'retro' !important;
    speak: never;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.retro-vision:before {
    content: "\e908";
}
.retro-approach:before {
    content: "\e903";
}
.retro-values:before {
    content: "\e907";
}
.retro-mission:before {
    content: "\e901";
}
.retro-empowering:before {
    content: "\e902";
}
.retro-goals:before {
    content: "\e900";
}
*/
/* ============================================================
   13. STYLES SPÉCIFIQUES GOUVERNANCE
   ============================================================ */
.gouvernance-intro-title {
    font-family: 'Yeseva One', Georgia, serif !important;
    font-size: 26px !important;
    font-weight: normal !important;
    line-height: 36px !important;
    color: var(--awb-color7) !important;
    margin: 0 !important;
    margin-bottom: 80px !important;
}

.governance-card-wrapper {
    background: transparent !important;
    padding: 10px 0 !important;
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    border: none !important;
    box-shadow: none !important;
}

.governance-card-title {
    margin: 0 0 5px 0 !important;
    font-family: 'Josefin Sans', sans-serif !important;
    font-weight: bold !important;
    font-size: 18px !important;
}

.governance-card-company {
    margin: 0 !important;
    font-size: 14px !important;
    color: #777 !important;
    font-family: 'Josefin Sans', sans-serif !important;
    font-weight: normal !important;
}

.governance-card-role {
    font-weight: bold !important;
    color: var(--awb-color4) !important;
    text-transform: uppercase !important;
    margin-bottom: 8px !important;
    font-size: 14px !important;
    text-align: center !important;
    font-family: var(--awb-typography3-font-family) !important;
    letter-spacing: 1px !important;
}

/* ============================================================
   CONTACT FORM 7 — Styles plugin CF7
   ============================================================ */
.wpcf7 .screen-reader-response {
    position: absolute;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    width: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
    word-wrap: normal !important;
    word-break: normal !important;
}

.wpcf7 .hidden-fields-container {
    display: none;
}

.wpcf7 form .wpcf7-response-output {
    margin: 2em 0.5em 1em;
    padding: 0.2em 1em;
    border: 2px solid #00a0d2;
}

.wpcf7 form.init .wpcf7-response-output,
.wpcf7 form.resetting .wpcf7-response-output,
.wpcf7 form.submitting .wpcf7-response-output {
    display: none;
}

.wpcf7 form.sent .wpcf7-response-output {
    border-color: #46b450;
}

.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output {
    border-color: #dc3232;
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output {
    border-color: #ffb900;
}

.wpcf7-form-control-wrap {
    position: relative;
}

.wpcf7-not-valid-tip {
    color: #dc3232;
    font-size: 1em;
    font-weight: normal;
    display: block;
}

.wpcf7-list-item {
    display: inline-block;
    margin: 0 0 0 1em;
}

.wpcf7-list-item:first-child {
    margin-left: 0;
}

.wpcf7-list-item-label::before,
.wpcf7-list-item-label::after {
    content: " ";
}

.wpcf7 input[type="url"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"] {
    direction: ltr;
}

.wpcf7 .wpcf7-submit:disabled {
    cursor: not-allowed;
}

/* ============================================================
   CONTACT FORM 7 — Avada theme integration
   ============================================================ */
.wpcf7 form p {
    margin-bottom: 15px;
}

.wpcf7 form label {
    font-family: var(--awb-typography4-font-family);
    font-size: var(--awb-typography4-font-size);
    font-weight: var(--awb-typography4-font-weight);
    color: var(--awb-color8);
    line-height: var(--awb-typography4-line-height);
}

.wpcf7 .wpcf7-form-control.wpcf7-text,
.wpcf7 .wpcf7-form-control.wpcf7-textarea,
.wpcf7 .wpcf7-form-control.wpcf7-tel,
.wpcf7 .wpcf7-form-control.wpcf7-email {
    width: 100%;
    box-sizing: border-box;
    height: var(--form_input_height, 50px);
    padding: 8px 15px;
    font-size: var(--form_text_size, 16px);
    font-family: var(--awb-typography4-font-family);
    color: var(--form_text_color, var(--awb-color8));
    background-color: var(--form_bg_color, var(--awb-color1));
    border-width: var(--form_border_width-top, 1px) var(--form_border_width-right, 1px) var(--form_border_width-bottom, 1px) var(--form_border_width-left, 1px);
    border-style: solid;
    border-color: var(--form_border_color, var(--awb-color3));
    border-radius: var(--form_border_radius, 6px);
    outline: none;
    transition: border-color 0.2s ease;
}

.wpcf7 .wpcf7-form-control.wpcf7-text:focus,
.wpcf7 .wpcf7-form-control.wpcf7-textarea:focus,
.wpcf7 .wpcf7-form-control.wpcf7-tel:focus,
.wpcf7 .wpcf7-form-control.wpcf7-email:focus {
    border-color: var(--form_focus_border_color, var(--awb-color4));
}

.wpcf7 .wpcf7-form-control.wpcf7-textarea {
    height: auto;
    min-height: 150px;
    resize: vertical;
}

.wpcf7 .wpcf7-form-control.wpcf7-submit {
    display: inline-block;
    padding: var(--button_padding-top, 15px) var(--button_padding-right, 29px) var(--button_padding-bottom, 13px) var(--button_padding-left, 29px);
    font-family: var(--button_typography-font-family, var(--awb-typography3-font-family));
    font-weight: var(--button_typography-font-weight, var(--awb-typography3-font-weight));
    font-size: var(--button_font_size, var(--awb-typography3-font-size));
    letter-spacing: var(--button_typography-letter-spacing, var(--awb-typography3-letter-spacing));
    text-transform: var(--button_text_transform, var(--awb-typography3-text-transform));
    line-height: var(--button_line_height, var(--awb-typography3-line-height));
    color: var(--button_accent_color, var(--awb-color1));
    background: var(--button_gradient_top_color, var(--awb-color5));
    border-width: var(--button_border_width-top, 0px) var(--button_border_width-right, 4px) var(--button_border_width-bottom, 4px) var(--button_border_width-left, 0px);
    border-style: solid;
    border-color: var(--button_border_color);
    border-radius: 0;
    cursor: pointer;
    transition: all 0.2s ease;
}

.wpcf7 .wpcf7-form-control.wpcf7-submit:hover {
    color: var(--button_accent_hover_color, var(--awb-color1));
    background: var(--button_gradient_top_color_hover, var(--awb-color4));
    border-color: var(--button_border_hover_color);
}

/* Radio button styling inside wpcf7 */
.wpcf7 .wpcf7-radio label {
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    line-height: 1;
    vertical-align: middle;
}

.wpcf7 .wpcf7-radio input[type="radio"] {
    accent-color: var(--awb-color3);
    width: 18px;
    height: 18px;
    cursor: pointer;
    margin: 0;
    vertical-align: middle;
    position: relative;
    top: 0;
}

.wpcf7 .wpcf7-list-item {
    vertical-align: middle;
}

.wpcf7 .wpcf7-list-item-label {
    vertical-align: middle;
    line-height: 18px;
}

/* CF7 Conditional Fields — hidden groups */
.wpcf7cf-hidden {
    display: none !important;
    height: 0 !important;
    overflow: hidden !important;
}

/* Conditional group visible - override hidden */
[data-class="wpcf7cf_group"]:not(.wpcf7cf-hidden) {
    display: block !important;
    height: auto !important;
    overflow: visible !important;
}

/* Animation for showing groups */
[data-class="wpcf7cf_group"] {
    transition: opacity 0.2s ease;
}

/* Separator for groups */
[data-class="wpcf7cf_group"] {
    margin-top: 5px;
    padding-top: 5px;
}

/* h3 inside form groups */
.wpcf7 form h3 {
    font-family: var(--h3_typography-font-family, var(--awb-typography1-font-family));
    font-weight: var(--h3_typography-font-weight, var(--awb-typography1-font-weight));
    font-size: var(--h3_typography-font-size, 34px);
    line-height: var(--h3_typography-line-height, 1.3);
    letter-spacing: var(--h3_typography-letter-spacing, var(--awb-typography1-letter-spacing));
    color: var(--h3_typography-color, var(--awb-color8)) !important;
    margin-top: var(--h3_typography-margin-top, 1em);
    margin-bottom: var(--h3_typography-margin-bottom, 1em);
}

/* Fusion slider loading (submit spinner) */
.fusion-slider-loading {
    display: none;
}

/* Fix mobile horizontal overflow & viewport shifting (e.g. iPhone 11) */
@media (max-width: 820px) {
    html, body {
        overflow-x: hidden !important;
        position: relative !important;
        width: 100% !important;
        max-width: 100% !important;
    }
    .fusion-tb-header,
    #div_contenu_header {
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    .fusion-text-4,
    .fusion-text-5,
    .fusion-text-6 {
        --awb-margin-left: 15px !important;
        --awb-margin-right: 15px !important;
        margin-left: 15px !important;
        margin-right: 15px !important;
    }

    /* "L'externalisation c'est quoi ?" responsive grid */
    .post-739 .fusion-builder-column-6 {
        --awb-width-small: 100% !important;
        --awb-order-small: 2 !important;
        width: 100% !important;
        order: 2 !important;
        --awb-spacing-left-small: 0% !important;
        --awb-spacing-right-small: 0% !important;
    }
    .post-739 .fusion-builder-column-7 {
        --awb-width-small: 100% !important;
        --awb-order-small: 1 !important;
        width: 100% !important;
        order: 1 !important;
        --awb-margin-top-large: 0px !important;
        margin-top: 0px !important;
        margin-bottom: 30px !important;
        display: flex !important;
        justify-content: center !important;
    }

    /* "Notre mission", "Nos valeurs", "Notre vision" responsive text margins */
    .post-739 .fusion-text-5,
    .post-739 .fusion-text-6,
    .post-739 .fusion-text-7 {
        --awb-margin-left: 15px !important;
        --awb-margin-right: 15px !important;
        margin-left: 15px !important;
        margin-right: 15px !important;
    }

    /* "Pourquoi externaliser avec..." responsive grid (hide image on mobile) */
    .post-739 .fusion-builder-column-20 {
        display: none !important;
    }

    .post-739 .fusion-builder-column-21 {
        --awb-width-small: 100% !important;
        --awb-order-small: 2 !important;
        width: 100% !important;
        order: 2 !important;
        --awb-padding-top-small: 0px !important;
        padding-top: 0px !important;
    }
}

/* Match search input form height to the search button's natural height */
#input_recherche {
    margin-top: 0 !important;
}
#input_recherche form {
    height: 48px !important;
    box-sizing: border-box !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    align-items: center !important;
}

@media (max-width: 820px) {
    /* Stack search input and button on mobile: input on top, button underneath, touching */
    .adime-search-input-col {
        --awb-width-small: 100% !important;
        width: 100% !important;
        order: 1 !important;
        margin-bottom: 0px !important;
        padding-bottom: 0px !important;
        --awb-spacing-left-small: 0% !important;
        --awb-spacing-right-small: 0% !important;
    }
    .adime-search-input-col .fusion-column-wrapper {
        margin-bottom: 0px !important;
        padding-bottom: 0px !important;
    }
    .adime-search-btn-col {
        --awb-width-small: 100% !important;
        width: 100% !important;
        order: 2 !important;
        margin-top: 0px !important;
        padding-top: 0px !important;
        --awb-spacing-left-small: 0% !important;
        --awb-spacing-right-small: 0% !important;
    }
    .adime-search-btn-col .fusion-column-wrapper {
        margin-top: 0px !important;
        padding-top: 0px !important;
    }
    .adime-search-btn-col div {
        text-align: center !important;
    }
    #bouton_recherche_mob {
        width: 100% !important;
        box-sizing: border-box !important;
        display: inline-flex !important;
        justify-content: center !important;
        align-items: center !important;
    }
}
