/*
 * legacy-conflicts.css
 * Applique le design system du nouveau site SOC aux templates PHP legacy.
 * Scopé à .main pour ne jamais affecter les pages Elementor.
 *
 * Tokens identiques à soc-content.css pour une cohérence visuelle complète.
 */


/* ==========================================================================
   0. TOKENS (miroir de soc-content)
   ========================================================================== */
.main {
    --lg-font-title : 'Raleway', system-ui, sans-serif;
    --lg-font-body  : 'Inter',   system-ui, sans-serif;

    --lg-red        : #CB1524;
    --lg-red-hover  : #a8101c;
    --lg-red-light  : rgba(203,21,36,.08);
    --lg-dark       : #24282D;
    --lg-text       : #5D5D56;
    --lg-muted      : #9b9b94;
    --lg-border     : #e8e8e4;
    --lg-bg-page    : #f5f5f3;
    --lg-bg-white   : #ffffff;

    --lg-radius-card : 22px;
    --lg-radius-btn  : 10px;
    --lg-grid-gap    : 20px;

    --lg-shadow-sm  : 0 1px 3px rgba(36,40,45,.05), 0 2px 10px rgba(36,40,45,.06);
    --lg-shadow-md  : 0 2px 8px rgba(36,40,45,.07), 0 6px 28px rgba(36,40,45,.09);
    --lg-shadow-lg  : 0 4px 14px rgba(36,40,45,.10), 0 18px 52px rgba(36,40,45,.14);
}


/* ==========================================================================
   1. BASE — Police, couleur, box-sizing
   ========================================================================== */
.main {
    display: block;
    width: 100%;
    overflow-x: hidden;
    font-family: var(--lg-font-body);
    color: var(--lg-text);
    font-size: 1rem;
    line-height: 1.75;
}

.main *,
.main *::before,
.main *::after {
    box-sizing: border-box;
}

.main img {
    max-width: 100%;
    height: auto;
}

.main a {
    color: inherit;
    text-decoration: none;
}


/* ==========================================================================
   2. TITRES — Raleway 900
   ========================================================================== */
.main h1,
.main h2,
.main h3,
.main h4,
.main h5,
.main h6,
.main .h1,
.main .h2,
.main .h3,
.main .h4,
.main .h5 {
    font-family: var(--lg-font-title);
    font-weight: 900;
    color: var(--lg-dark);
    line-height: 1.12;
    margin-top: 0;
}

.main h2, .main .h2 { font-size: clamp(1.875rem, 3vw, 2.5rem); }
.main h3, .main .h3 { font-size: 1.4375rem; }
.main h4, .main .h4 { font-size: 1.125rem; }
.main h5, .main .h5 { font-size: 1rem; }


/* ==========================================================================
   3. LISTES — supprime double puce (liste native + ::before legacy)
   ========================================================================== */
.main ul:not(.gform_fields):not(.gfield_checkbox):not(.gfield_radio),
.main ol:not(.gform_fields),
.main .wysiwyg ul:not(.gform_fields),
.main .wysiwyg ol:not(.gform_fields),
.main ul.primary-list {
    list-style: none !important;
    padding-left: 0 !important;
    margin-left: 0 !important;
}

.main ol,
.main .wysiwyg ol {
    counter-reset: step !important;
}


/* ==========================================================================
   4. CARTES LEGACY (.card.card-basic)
   Générées par soc_legacy_card_basic() — re-stylisées façon soc-card moderne
   ========================================================================== */
.main .card.card-basic,
.main .card-basic {
    background: var(--lg-bg-white) !important;
    border-radius: var(--lg-radius-card) !important;
    border: 1px solid var(--lg-border) !important;
    box-shadow: var(--lg-shadow-sm) !important;
    overflow: hidden;
    transition: box-shadow .2s, transform .2s;
    position: relative;
}

.main .card.card-basic:hover,
.main .card-basic:hover {
    box-shadow: var(--lg-shadow-md) !important;
    transform: translateY(-2px);
}

/* Image de la carte */
.main .card__img {
    overflow: hidden;
    flex-shrink: 0;
}

.main .card__img img {
    display: block;
    width: 100%;
    height: 200px;
    object-fit: cover;
    border-radius: 0 !important;
    transition: transform .35s;
}

.main .card.card-basic:hover .card__img img {
    transform: scale(1.03);
}

/* Contenu texte de la carte */
.main .card__content {
    padding: 1.25rem 1.5rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: .5rem;
    flex: 1;
}

/* Tag catégorie */
.main .card__type,
.main .card__type span,
.main .card__cat {
    display: inline-flex;
    align-items: center;
    padding: .25em .75em;
    font-family: var(--lg-font-body);
    font-size: .6875rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--lg-red) !important;
    border: 1.5px solid var(--lg-red);
    border-radius: 100px;
    background: transparent;
    line-height: 1;
    width: fit-content;
}

/* Titre de la carte */
.main .card__title,
.main .card__title.h4,
.main .card__title.h5 {
    font-family: var(--lg-font-title) !important;
    font-weight: 900 !important;
    font-size: 1.0625rem !important;
    color: var(--lg-dark) !important;
    line-height: 1.25 !important;
    margin: 0 !important;
}

.main .card__title a,
.main .card__title a:hover {
    color: inherit;
    text-decoration: none;
}
.main .card__title a:hover { color: var(--lg-red); }

/* Extrait / description */
.main .card__excerpt,
.main .card__description {
    font-size: .875rem;
    color: var(--lg-text);
    line-height: 1.65;
    margin: 0;
    flex: 1;
}

/* Date */
.main .card__date {
    font-size: .75rem;
    color: var(--lg-muted);
}

/* Lien "Lire la suite" */
.main .card__read-more,
.main .card__button,
.main a.card__read-more {
    display: inline-flex;
    align-items: center;
    gap: .3em;
    font-family: var(--lg-font-body);
    font-size: .875rem;
    font-weight: 600;
    color: var(--lg-red) !important;
    background: none !important;
    border: none !important;
    padding: 0 !important;
    margin-top: auto;
    border-radius: 0 !important;
    box-shadow: none !important;
    text-transform: none;
}

.main .card__read-more::before {
    content: '›';
    font-size: 1.1em;
}

/* Lien fantôme couvrant toute la carte */
.main .full-link {
    position: absolute;
    inset: 0;
    z-index: 1;
}


/* ==========================================================================
   5. FILTRES PAR CATÉGORIE (.list-filters)
   Blog : radio buttons stylisés | News : select + newsletter
   ========================================================================== */

.main .list-filters {
    background: none !important;
    padding: 1.5rem 0;
}

.main .list-filters__bg { display: none; }

.main .w-list-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
}

.main .w-list-filters p,
.main .w-list-filters > p {
    font-family: var(--lg-font-body);
    font-size: .875rem;
    font-weight: 600;
    color: var(--lg-muted);
    margin: 0;
    white-space: nowrap;
}

/* Boutons radio blog (étiquettes pills) */
.main .list-filters .btn,
.main .list-filters .btn--outline {
    display: inline-flex !important;
    align-items: center;
    padding: .45em 1.1em !important;
    font-family: var(--lg-font-body) !important;
    font-size: .8125rem !important;
    font-weight: 600 !important;
    text-decoration: none;
    border: 1.5px solid var(--lg-border) !important;
    border-radius: 100px !important;
    color: var(--lg-text) !important;
    background: var(--lg-bg-white) !important;
    cursor: pointer;
    transition: border-color .15s, color .15s, background .15s;
    line-height: 1.4;
    letter-spacing: 0;
    text-transform: uppercase;
}

.main .list-filters .btn:hover,
.main .list-filters .btn--outline:hover {
    border-color: var(--lg-dark) !important;
    color: var(--lg-dark) !important;
}

.main .list-filters .btn--outline input[type="radio"] {
    display: none;
}

/* État actif (JS ajoute une classe ou :has sur l'input checked) */
.main .list-filters .btn--outline:has(input:checked),
.main .list-filters .btn--outline.active,
.main .list-filters .btn.active {
    background: var(--lg-dark) !important;
    border-color: var(--lg-dark) !important;
    color: #fff !important;
}

/* Select news */
.main .list-filters select {
    padding: .45em 1.1em;
    font-family: var(--lg-font-body);
    font-size: .8125rem;
    font-weight: 500;
    border: 1.5px solid var(--lg-border);
    border-radius: var(--lg-radius-btn);
    background: var(--lg-bg-white);
    color: var(--lg-text);
    cursor: pointer;
    appearance: auto;
}

/* Lien newsletter */
.main .with-picto.link {
    font-size: .8125rem;
    font-weight: 600;
    color: var(--lg-red);
}


/* ==========================================================================
   6. GRILLE D'ARTICLES (.w-list)
   ========================================================================== */
.main .w-list {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: var(--lg-grid-gap);
}

@media (max-width: 640px) {
    .main .w-list { grid-template-columns: 1fr; }
}


/* ==========================================================================
   7. PAGE HEADER — typographie recalée sur tokens
   ========================================================================== */
.main .page-header__title,
.main .page-header__title.h1 {
    font-family: var(--lg-font-title) !important;
    font-weight: 900 !important;
    color: var(--lg-dark) !important;
    font-size: clamp(2rem, 5vw, 3.25rem) !important;
    line-height: 1.08 !important;
    margin: 0 !important;
}

.main .page-header__description {
    font-family: var(--lg-font-body) !important;
    font-size: 1rem !important;
    color: var(--lg-text) !important;
    line-height: 1.7 !important;
}

/* Breadcrumb */
.main .breadcrumb {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0;
    margin: 0;
    padding: 0;
}

.main .breadcrumb,
.main .breadcrumb span,
.main .breadcrumb a {
    font-family: var(--lg-font-body);
    font-size: .8125rem;
    font-weight: 500;
    color: var(--lg-muted);
    text-decoration: none;
}

/* Séparateur › Yoast SEO */
.main .breadcrumb .breadcrumb-separator {
    margin: 0 .3em;
    color: var(--lg-muted);
    opacity: .55;
    font-weight: 400;
}

/* Liens cliquables */
.main .breadcrumb a {
    color: var(--lg-text);
    transition: color .15s;
}
.main .breadcrumb a:hover { color: var(--lg-red); }

/* Dernier item (page active) */
.main .breadcrumb .breadcrumb_last,
.main .breadcrumb span:last-child:not(.breadcrumb-separator) {
    color: var(--lg-muted);
    font-weight: 400;
}


/* ==========================================================================
   8. WYSIWYG — contenu riche dans les blocs flex legacy
   ========================================================================== */
.main .wysiwyg {
    font-family: var(--lg-font-body);
    font-size: 1rem;
    color: var(--lg-text);
    line-height: 1.8;
}

.main .wysiwyg h2,
.main .wysiwyg h3,
.main .wysiwyg h4 {
    font-family: var(--lg-font-title);
    font-weight: 900;
    color: var(--lg-dark);
}

.main .wysiwyg a {
    color: var(--lg-red);
    text-decoration: underline;
}

.main .wysiwyg strong,
.main .wysiwyg b {
    font-weight: 700;
    color: var(--lg-dark);
}


/* ==========================================================================
   9. BOUTONS LEGACY (.btn)
   ========================================================================== */
.main .btn--primary {
    background: var(--lg-red) !important;
    color: #fff !important;
    border-radius: var(--lg-radius-btn) !important;
    font-family: var(--lg-font-body) !important;
    font-weight: 600 !important;
    box-shadow: var(--lg-shadow-sm) !important;
    transition: background .18s, transform .15s, box-shadow .18s !important;
}

.main .btn--primary:hover {
    background: var(--lg-red-hover) !important;
    transform: translateY(-1px) !important;
    box-shadow: var(--lg-shadow-md) !important;
}

.main .btn--full {
    background: var(--lg-bg-white) !important;
    color: var(--lg-dark) !important;
    border-radius: var(--lg-radius-btn) !important;
    font-family: var(--lg-font-body) !important;
    font-weight: 600 !important;
    box-shadow: inset 0 0 0 1.5px var(--lg-border) !important;
    transition: box-shadow .18s, transform .15s !important;
}

.main .btn--full:hover {
    box-shadow: inset 0 0 0 1.5px var(--lg-dark) !important;
    transform: translateY(-1px) !important;
}

/* Boutons CTA dans les blocs flex legacy (flex-latest, flex-pages) */
.main .card.card-basic .card__button,
.main .flex-pages__card .card__button,
.main .flex-latest__card .card__button {
    display: inline-flex !important;
    padding: .55em 1.25em !important;
    background: var(--lg-red) !important;
    color: #fff !important;
    border: none !important;
    border-radius: var(--lg-radius-btn) !important;
    font-family: var(--lg-font-body) !important;
    font-size: .875rem !important;
    font-weight: 600 !important;
    margin-top: .5rem !important;
    box-shadow: none !important;
    cursor: pointer;
}


/* ==========================================================================
   10. PAGINATION LEGACY
   ========================================================================== */
.main .pagination,
.main .w-pagination {
    display: flex;
    justify-content: center;
    gap: .35rem;
    margin-top: 2.5rem;
    flex-wrap: wrap;
}

.main .pagination a,
.main .pagination span,
.main .w-pagination a,
.main .w-pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    height: 38px;
    padding: 0 .6em;
    font-family: var(--lg-font-body);
    font-size: .875rem;
    font-weight: 500;
    border-radius: var(--lg-radius-btn);
    border: 1.5px solid var(--lg-border);
    color: var(--lg-text);
    background: var(--lg-bg-white);
    transition: border-color .15s, color .15s;
}

.main .pagination a:hover,
.main .w-pagination a:hover {
    border-color: var(--lg-dark);
    color: var(--lg-dark);
}

.main .pagination .current,
.main .w-pagination .current {
    background: var(--lg-dark);
    border-color: var(--lg-dark);
    color: #fff;
}


/* ==========================================================================
   11. DETAILS / SUMMARY (accordéons wysiwyg)
   ========================================================================== */
.main details {
    border: 1px solid var(--lg-border);
    border-radius: var(--lg-radius-card);
    background: var(--lg-bg-white);
    box-shadow: var(--lg-shadow-sm);
    overflow: hidden;
    margin: .6rem 0;
    transition: box-shadow .2s;
}

.main details[open] {
    box-shadow: var(--lg-shadow-md);
}

.main summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.1rem 1.5rem;
    cursor: pointer;
    font-family: var(--lg-font-body);
    font-weight: 500;
    font-size: 1rem;
    color: var(--lg-dark);
    list-style: none;
    user-select: none;
}

.main summary::-webkit-details-marker { display: none; }

.main summary::after {
    content: '+';
    font-size: 1.3em;
    font-weight: 400;
    line-height: 1;
    flex-shrink: 0;
    margin-left: 1rem;
    color: var(--lg-red);
    transition: transform .25s;
}

.main details[open] summary::after {
    transform: rotate(45deg);
}

.main .faq-answer {
    padding: 1rem 1.5rem 1.25rem;
    font-size: 1rem;
    color: var(--lg-text);
    line-height: 1.75;
    border-top: 1px solid var(--lg-border);
}


/* ==========================================================================
   12. FORMULAIRES GRAVITY FORMS
   ========================================================================== */
.main .gform_wrapper input,
.main .gform_wrapper textarea,
.main .gform_wrapper select,
.main .gform_wrapper button {
    box-sizing: border-box;
    font-family: var(--lg-font-body);
}

.main .gform_wrapper .gform_submit_button,
.main .gform_wrapper input[type="submit"] {
    background: var(--lg-red) !important;
    color: #fff !important;
    border: none !important;
    border-radius: var(--lg-radius-btn) !important;
    font-family: var(--lg-font-body) !important;
    font-weight: 600 !important;
    cursor: pointer;
    transition: background .18s !important;
}

.main .gform_wrapper .gform_submit_button:hover,
.main .gform_wrapper input[type="submit"]:hover {
    background: var(--lg-red-hover) !important;
}


/* ==========================================================================
   13. NO-RESULT
   ========================================================================== */
.main .no-result {
    font-family: var(--lg-font-body);
    color: var(--lg-muted);
    font-size: 1rem;
    text-align: center;
    padding: 3rem 0;
}


/* ==========================================================================
   14. ONGLETS — flex-anchor devient une barre d'onglets sticky
   ========================================================================== */
.main .flex-anchor {
    position: sticky;
    top: 0;
    z-index: 30;
    background: var(--lg-bg-white);
    border-bottom: 2px solid var(--lg-border);
    margin: 0 !important;
    padding: 0 !important;
    box-shadow: 0 2px 8px rgba(36,40,45,.06);
}

.main .flex-anchor .container {
    display: flex !important;
    align-items: stretch;
    gap: 0;
    overflow-x: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.main .flex-anchor .container::-webkit-scrollbar { display: none; }

.main .anchor-name {
    display: inline-flex !important;
    align-items: center;
    padding: 1rem 1.375rem !important;
    font-family: var(--lg-font-body) !important;
    font-size: .9375rem !important;
    font-weight: 600 !important;
    color: var(--lg-text) !important;
    cursor: pointer;
    white-space: nowrap;
    user-select: none;
    /* Indicateur actif */
    border-bottom: 2.5px solid transparent !important;
    margin-bottom: -2px;
    /* Reset legacy */
    text-transform: none !important;
    letter-spacing: 0 !important;
    background: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    transition: color .2s, border-color .2s !important;
}

.main .anchor-name:hover {
    color: var(--lg-dark) !important;
    border-bottom-color: var(--lg-border) !important;
}

.main .anchor-name.is-active {
    color: var(--lg-red) !important;
    border-bottom-color: var(--lg-red) !important;
}

/* Panneau masqué (géré par JS) */
.main .w-flex.tab-panel--hidden {
    display: none !important;
}


/* ==========================================================================
   15. FAQ — .card-faq (flex-faq-list)
   ========================================================================== */
.main .flex-faq-list__title {
    font-family: var(--lg-font-title) !important;
    font-weight: 900 !important;
    font-size: clamp(1.5rem, 2.5vw, 2rem) !important;
    color: var(--lg-dark) !important;
    margin-bottom: 1.5rem !important;
}

.main .card-faq {
    border: 1px solid var(--lg-border) !important;
    border-radius: var(--lg-radius-card) !important;
    background: var(--lg-bg-white) !important;
    box-shadow: var(--lg-shadow-sm) !important;
    overflow: hidden;
    margin: .5rem 0 !important;
    transition: box-shadow .2s;
}

.main .card-faq.is-open {
    box-shadow: var(--lg-shadow-md) !important;
}

.main .card-faq .card__header {
    display: flex !important;
    justify-content: space-between;
    align-items: center;
    padding: 1.15rem 1.5rem !important;
    cursor: pointer;
    user-select: none;
    gap: 1rem;
}

.main .card-faq .card__title {
    font-family: var(--lg-font-body) !important;
    font-weight: 600 !important;
    font-size: 1rem !important;
    color: var(--lg-dark) !important;
    margin: 0 !important;
    line-height: 1.5 !important;
}

/* Indicateur + / × via ::after (remplace l'icône de police legacy) */
.main .card-faq .card__arrow {
    display: none !important;
}
.main .card-faq .card__header::after {
    content: '+';
    font-size: 1.3em;
    font-weight: 400;
    line-height: 1;
    flex-shrink: 0;
    color: var(--lg-red) !important;
    transition: transform .25s;
    font-style: normal;
}
.main .card-faq.is-open .card__header::after {
    transform: rotate(45deg);
}

/* Contenu : height 0 par défaut (is-first inclus — legacy CSS l'ouvre par défaut).
   display:block annule le display:flex hérité de .card__content (blocs blog).
   PAS de !important sur height : le JS anime via style="height: 0 / NNpx / auto". */
.main .card-faq .card__content,
.main .card-faq.is-first .card__content {
    display: block !important;
    height: 0;
    overflow: hidden !important;
    transition: height .3s ease !important;
}

.main .card-faq .card__content__inner {
    padding: 1rem 1.5rem 1.25rem !important;
    font-family: var(--lg-font-body) !important;
    font-size: 1rem !important;
    color: var(--lg-text) !important;
    line-height: 1.75 !important;
    border-top: 1px solid var(--lg-border);
}


/* ==========================================================================
   16. LIVESEARCH — états par défaut
   La bibliothèque adeliom-livesearch-js alterne la classe .is-visible
   et l'attribut hidden pour afficher/masquer ces éléments.
   ========================================================================== */

/* Masqués par défaut */
[js-livesearch-noresult],
.main [js-livesearch-noresult] {
    display: none !important;
}

[js-livesearch-loading],
.main [js-livesearch-loading] {
    display: none !important;
}

/* Affichés quand la bibliothèque ajoute .is-visible */
[js-livesearch-noresult].is-visible,
.main [js-livesearch-noresult].is-visible {
    display: block !important;
}

[js-livesearch-loading].is-visible,
.main [js-livesearch-loading].is-visible {
    display: grid !important;
}


/* ==========================================================================
   17. BREADCRUMB — empêche le débordement sur l'image hero
   ========================================================================== */
.main .lm-hero__crumb {
    max-width: 100%;
    overflow: hidden;
}

.main .lm-hero__crumb .breadcrumb {
    display: flex;
    flex-wrap: wrap;
    max-width: 100%;
    overflow-wrap: anywhere;
}

/* Tronque le dernier item (page courante) si trop long */
.main .lm-hero__crumb .breadcrumb .breadcrumb_last {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex-shrink: 1;
    min-width: 0;
}

/* page-header legacy : même protection */
.main .page-header__breadcrumb {
    max-width: 100%;
    overflow: hidden;
}

.main .page-header__breadcrumb .breadcrumb {
    flex-wrap: wrap;
    max-width: 100%;
    overflow-wrap: anywhere;
}


/* ==========================================================================
   18. BLOCS FLEX MODERNES
   Styles partagés par tous les blocs .w-flex : espacement, titres, layout.
   ========================================================================== */

/* Espacement uniforme entre blocs — réduit par rapport au legacy */
.main .w-flex {
    padding: clamp(1.5rem, 3vw, 2.5rem) 0;
}

/* Container centré, padding horizontal responsive */
.main .w-flex .container {
    max-width: 1200px;
    margin: 0 auto;
    padding-left: clamp(1rem, 3vw, 1.5rem);
    padding-right: clamp(1rem, 3vw, 1.5rem);
    width: 100%;
    box-sizing: border-box;
}

/* Titres de section dans les blocs flex */
.main .w-flex .h2,
.main .w-flex h2:not(.lm-hero__title) {
    font-family: var(--lg-font-title) !important;
    font-weight: 900 !important;
    color: var(--lg-dark) !important;
    font-size: clamp(1.75rem, 3vw, 2.5rem) !important;
    line-height: 1.12 !important;
    margin-top: 0 !important;
    margin-bottom: 1.25rem !important;
}

.main .w-flex .headline {
    font-family: var(--lg-font-body);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--lg-red);
    margin-bottom: .5rem !important;
    display: block;
}

/* Couleur "color-primary" et "color-secondary-01" → tokens */
.main .color-primary   { color: var(--lg-red)  !important; }
.main .color-secondary-01 { color: var(--lg-dark) !important; }


/* ------------------------------------------------------------------
   18a. DOUBLE COLUMN (.flex-double-column)
   ------------------------------------------------------------------ */
.main .flex-double-column .w-double-column {
    width: 100%;
}

.main .flex-double-column__desc {
    color: var(--lg-text);
    font-size: 1rem;
    line-height: 1.8;
    margin-bottom: 2rem !important;
}

.main .flex-double-column__row {
    display: flex !important;
    flex-wrap: wrap;
    gap: clamp(1.5rem, 4vw, 3rem);
    align-items: start;
}

.main .flex-double-column__left,
.main .flex-double-column__right {
    flex: 1 1 280px;
    min-width: 0;
}

.main .flex-double-column__left,
.main .flex-double-column__right {
    min-width: 0;
}


/* ------------------------------------------------------------------
   18b. TEXT + IMAGE (.flex-text-image)
   ------------------------------------------------------------------ */
.main .flex-text-image {
    overflow: hidden;
}

.main .flex-text-image__row {
    display: flex !important;
    flex-wrap: wrap;
    gap: clamp(2rem, 5vw, 4rem);
    align-items: center;
}

.main .flex-text-image__text,
.main .flex-text-image__image,
.main .flex-text-image__image--with-square {
    flex: 1 1 280px;
    min-width: 0;
}

/* Image en premier sur mobile quand position=right */
@media (max-width: 768px) {
    .main .flex-text-image__row--right .flex-text-image__image {
        order: -1;
    }
}

.main .flex-text-image__text {
    min-width: 0;
}

.main .flex-text-image__image img,
.main .flex-text-image__image--with-square img {
    border-radius: 16px !important;
    box-shadow: var(--lg-shadow-md) !important;
    width: 100%;
    height: auto;
    display: block;
}

/* Fond latéral droit (position=right non-illustration) */
.main .flex-text-image__background {
    display: none;
}


/* ------------------------------------------------------------------
   18c. TITRE + TEXTE (.flex-title-text, .flex-title-cta)
   ------------------------------------------------------------------ */
.main .flex-title-text .row {
    display: flex !important;
    flex-wrap: wrap;
    gap: clamp(2rem, 5vw, 4rem);
    align-items: flex-start;
}

.main .flex-title-text__title {
    flex: 0 0 auto;
    width: clamp(200px, 28%, 320px);
    min-width: 0;
}

.main .flex-title-text__text {
    flex: 1 1 280px;
    min-width: 0;
}

.main .flex-title-text.cta-block .row {
    justify-content: space-between;
    align-items: center;
}

.main .flex-title-text.cta-block .flex-title-text__title {
    width: auto;
    flex: 1 1 auto;
}


/* ------------------------------------------------------------------
   18d. CALL TO ACTION (.flex-cta)
   ------------------------------------------------------------------ */
.main .flex-cta {
    background: var(--lg-dark) !important;
    color: #fff;
}

.main .flex-cta .container { text-align: center; }

.main .flex-cta__container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.25rem;
}

.main .flex-cta__title {
    font-family: var(--lg-font-title) !important;
    font-weight: 900 !important;
    font-size: clamp(1.5rem, 3vw, 2.25rem) !important;
    color: #fff !important;
    margin: 0 !important;
    line-height: 1.15;
}

.main .flex-cta .wysiwyg {
    color: rgba(255,255,255,.80);
    max-width: 60ch;
}

.main .flex-cta .btn--primary {
    background: var(--lg-red) !important;
    color: #fff !important;
    padding: .7em 1.75em !important;
    font-size: 1rem !important;
    border-radius: var(--lg-radius-btn) !important;
}


/* ------------------------------------------------------------------
   18e. WYSIWYG seul (.flex-wysiwyg) — pleine largeur, sans marges
   La grille legacy (legacy-global.css) fixe un flex-basis à 66,67% à
   partir de 960px : on doit aussi écraser "flex", pas seulement
   max-width/margin, sinon la largeur reste bloquée à ~60%.
   ------------------------------------------------------------------ */
.main .flex-wysiwyg .wysiwyg {
    max-width: 100% !important;
    flex: 0 0 100% !important;
    margin: 0 !important;
}


/* ------------------------------------------------------------------
   18f. HIGHLIGHT / CARDS (.flex-highlight)
   ------------------------------------------------------------------ */
.main .flex-highlight .row {
    display: flex !important;
    flex-wrap: wrap;
    gap: var(--lg-grid-gap);
}

.main .flex-highlight .row > * {
    flex: 1 1 240px;
    min-width: 0;
}

.main .flex-highlight .card {
    background: var(--lg-bg-white) !important;
    border: 1px solid var(--lg-border) !important;
    border-radius: var(--lg-radius-card) !important;
    box-shadow: var(--lg-shadow-sm) !important;
    padding: 1.5rem !important;
    transition: box-shadow .2s, transform .2s;
}

.main .flex-highlight .card:hover {
    box-shadow: var(--lg-shadow-md) !important;
    transform: translateY(-2px);
}

.main .flex-highlight .card__icon {
    width: 48px;
    height: 48px;
    margin-bottom: 1rem;
}

.main .flex-highlight .card__title {
    font-family: var(--lg-font-title) !important;
    font-weight: 900 !important;
    font-size: 1.1rem !important;
    color: var(--lg-dark) !important;
    margin-bottom: .5rem !important;
}


/* ------------------------------------------------------------------
   18g. ALTERNANCE blocs (fond blanc / fond gris)
   ------------------------------------------------------------------ */
.main .w-flex:nth-child(even):not(.flex-cta):not(.flex-anchor) {
    background: var(--lg-bg-page);
}
.main .w-flex:nth-child(odd):not(.flex-cta):not(.flex-anchor) {
    background: var(--lg-bg-white);
}


/* ------------------------------------------------------------------
   18h. PARTENAIRES / LOGOS (.flex-partners) — pleine largeur
   ------------------------------------------------------------------ */
.main .flex-partners {
    background: var(--lg-bg-white) !important;
    padding: clamp(1rem, 2vw, 1.75rem) 0 !important;
}

/* Supprime la contrainte container pour occuper toute la largeur */
.main .flex-partners > .container {
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    overflow: hidden;
}

.main .flex-partners .flex-partners__title {
    text-align: center;
    padding: 0 clamp(1rem, 3vw, 1.5rem);
    margin-bottom: .75rem !important;
}

.main .flex-partners .flex-partners__title .h2,
.main .flex-partners .flex-partners__title h2 {
    font-size: clamp(1.125rem, 2vw, 1.5rem) !important;
    color: var(--lg-muted) !important;
    font-weight: 600 !important;
}


/* ------------------------------------------------------------------
   18i. TEXTES — taille minimale augmentée dans les blocs flex
   ------------------------------------------------------------------ */
.main .w-flex p,
.main .w-flex li,
.main .w-flex address {
    font-size: 1.0625rem;
    line-height: 1.8;
}

.main .w-flex .wysiwyg p {
    font-size: 1.0625rem;
    line-height: 1.8;
}


/* ==========================================================================
   19. BLOC TÉMOIGNAGES / HOME-PRODUCTS — slider sans fond
   ========================================================================== */

/* Section : fond page standard, pas de couleur dominante */
.main .home-products {
    background: var(--lg-bg-page) !important;
}

.main .home-products .w-products {
    background: transparent !important;
    padding: 0 !important;
    overflow: visible;
    text-align: center;
    margin: 0 !important;
    width: 100% !important;
}

/* Cache l'image de fond et le pseudo-element legacy */
.main .home-products .w-products__bg,
.main .home-products .w-products::before {
    display: none !important;
}

/* Wrap centré */
.main .home-products .w-products .wrap {
    max-width: 760px;
    margin: 0 auto;
    position: static;
    z-index: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* Titre de section témoignages (.headline sert ici de titre principal) */
.main .home-products .headline {
    font-family: var(--lg-font-title) !important;
    font-weight: 900 !important;
    font-size: clamp(1.5rem, 2.5vw, 2rem) !important;
    color: var(--lg-dark) !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    margin-bottom: 1.5rem !important;
}
/* Supprime le ::before coloré legacy (barre rouge) */
.main .home-products .headline::before {
    display: none !important;
}

/* ---- SLIDER ---- */
.main .home-products .testi-slider {
    width: 100%;
    position: relative;
    margin-bottom: .75rem;
}

/* Chaque slide masqué par défaut */
.main .home-products .testi-slide {
    display: none;
}

.main .home-products .testi-slide--active {
    display: block;
    animation: testiFade .4s ease;
}

@keyframes testiFade {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Blockquote stylistique */
.main .home-products .testi-slide blockquote {
    background: var(--lg-bg-white) !important;
    border: 1px solid var(--lg-border) !important;
    border-top: 3px solid var(--lg-red) !important;
    border-radius: 20px !important;
    padding: 2.25rem 2rem 1.75rem !important;
    margin: 0 !important;
    position: relative;
    box-shadow: var(--lg-shadow-sm) !important;
    text-align: left;
}

.main .home-products .testi-slide blockquote p {
    font-family: var(--lg-font-body) !important;
    font-size: 1.0625rem !important;
    font-style: italic !important;
    color: var(--lg-text) !important;
    line-height: 1.75 !important;
    margin: 0 !important;
}

/* ---- NAVIGATION (flèches + dots) ---- */
.main .home-products .testi-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin-bottom: 1.75rem;
}

.main .home-products .testi-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 1.5px solid var(--lg-border);
    background: var(--lg-bg-white);
    color: var(--lg-dark);
    cursor: pointer;
    font-size: 1.125rem;
    line-height: 1;
    transition: border-color .15s, background .15s, color .15s;
    flex-shrink: 0;
    padding: 0;
}

.main .home-products .testi-arrow:hover {
    border-color: var(--lg-dark);
    background: var(--lg-dark);
    color: #fff;
}

.main .home-products .testi-dots {
    display: flex;
    align-items: center;
    gap: .4rem;
}

.main .home-products .testi-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--lg-border);
    border: none;
    cursor: pointer;
    padding: 0;
    transition: background .2s, width .2s, border-radius .2s;
    flex-shrink: 0;
}

.main .home-products .testi-dot--active {
    background: var(--lg-red) !important;
    width: 20px;
    border-radius: 4px;
}

/* Counter "1 / 4" */
.main .home-products .testi-counter {
    font-family: var(--lg-font-body);
    font-size: .8125rem;
    font-weight: 600;
    color: var(--lg-muted);
    min-width: 2.5rem;
    text-align: center;
}

/* ---- BOUTON centré sous les dots ---- */
.main .home-products .w-products .wrap > a.btn {
    display: inline-flex !important;
    align-self: center;
    padding: .75em 2em !important;
    background: var(--lg-red) !important;
    color: #fff !important;
    border: none !important;
    border-radius: var(--lg-radius-btn) !important;
    font-family: var(--lg-font-body) !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    box-shadow: var(--lg-shadow-sm) !important;
    transition: background .18s, transform .15s, box-shadow .18s !important;
    text-decoration: none;
}

.main .home-products .w-products .wrap > a.btn:hover {
    background: var(--lg-red-hover) !important;
    transform: translateY(-1px) !important;
    box-shadow: var(--lg-shadow-md) !important;
}


/* ==========================================================================
   20. RESET OFFSETS BOOTSTRAP LEGACY
   Le site original utilisait un grid 12 colonnes avec offset (col-8 offset-2,
   col-10 offset-1…). Ces margin-left et width % décalent tous les blocs
   vers la droite. On les annule ici pour un rendu centré pleine largeur.
   ========================================================================== */

/* double-column */
.main .flex-double-column .w-double-column {
    margin-left: 0 !important;
    width: 100% !important;
}

/* témoignages / home-products */
.main .home-products .w-products {
    margin-left: 0 !important;
    width: 100% !important;
}

/* partenaires : titre + slider */
.main .flex-partners__title {
    margin-left: 0 !important;
    text-align: center !important;
}
.main .flex-partners__slider,
.main .flex-partners .partners-swiper {
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
}

/* latest (actualités) : titre */
.main .flex-latest__title {
    margin-left: 0 !important;
    width: 100% !important;
}

/* text-image : marges internes */
.main .flex-text-image__text {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* title-text : titre colonne gauche + bloc cta centré */
.main .flex-title-text__title {
    margin-left: 0 !important;
    max-width: none !important;
    flex: none !important;
}
.main .flex-title-text.cta-block .row {
    margin-left: 0 !important;
    max-width: 100% !important;
    flex: none !important;
}

/* page-list dans articles */
.main .single-news .page-list .inner,
.main .flex-page-list .inner {
    margin-left: 0 !important;
    max-width: 100% !important;
    flex: none !important;
}
