/**
 * Franchise Expert — adaptation de la charte historique au thème Kadence.
 * Source de référence : ancien thème BlankSlate de franchise-expert.fr.
 *
 * Ce fichier ne recrée pas à lui seul le contenu, le menu ou le carrousel :
 * il applique les couleurs, polices, dimensions et habillages aux composants Kadence.
 */

/* ==========================================================
   1. VARIABLES DE CHARTE ET VARIABLES GLOBALES KADENCE
   ========================================================== */
:root {
    /* Couleurs historiques relevées dans l'ancien site. */
    --fe-logo-blue: #005ba2;
    --fe-interface-blue: #1b5aa4;
    --fe-dark-blue: #195076;
    --fe-secondary-blue: #2d64a5;
    --fe-orange: #e59728;
    --fe-medium-grey: #828588;
    --fe-logo-grey: #bdbcbc;
    --fe-text: #474747;
    --fe-dark-text: #222222;
    --fe-light-grey: #ececec;
    --fe-panel-grey: #e3e3e3;
    --fe-pale-blue: #d4e4f0;
    --fe-white: #ffffff;

    /* Palette Kadence : l'orange reste une couleur de rubrique dédiée. */
    --global-palette1: #005ba2;
    --global-palette2: #195076;
    --global-palette3: #222222;
    --global-palette4: #474747;
    --global-palette5: #828588;
    --global-palette6: #bdbcbc;
    --global-palette7: #e3e3e3;
    --global-palette8: #ececec;
    --global-palette9: #ffffff;

    --global-body-font-family: "Quattrocento Sans", Arial, sans-serif;
    --global-heading-font-family: "Raleway", Arial, sans-serif;
    --global-content-width: 940px;
    --global-content-narrow-width: 940px;
    --global-content-edge-padding: 20px;
}

/* ==========================================================
   2. BASE TYPOGRAPHIQUE HISTORIQUE
   ========================================================== */
html {
    scroll-behavior: smooth;
}

body,
.editor-styles-wrapper {
    font-family: "Quattrocento Sans", Arial, sans-serif;
    font-size: 15px;
    line-height: 1.4667;
    color: var(--fe-text);
}

body {
    border-top: 4px solid var(--fe-interface-blue);
}

body a,
.editor-styles-wrapper a {
    color: var(--fe-dark-text);
    text-decoration: none;
}

body a:hover,
body a:focus,
.editor-styles-wrapper a:hover,
.editor-styles-wrapper a:focus {
    color: var(--fe-interface-blue);
}

h1, h2, h3, h4, h5, h6,
.editor-styles-wrapper h1,
.editor-styles-wrapper h2,
.editor-styles-wrapper h3,
.editor-styles-wrapper h4,
.editor-styles-wrapper h5,
.editor-styles-wrapper h6 {
    font-family: "Raleway", Arial, sans-serif;
    color: var(--fe-interface-blue);
    line-height: 1.25;
}

h1, .entry-title, .wp-block-post-title {
    font-size: 20px;
    font-weight: 400;
}

h2 {
    font-size: 20px;
    font-weight: 400;
}

h3 {
    font-size: 20px;
    font-weight: 400;
}

h4 {
    font-size: 18px;
    font-weight: 400;
}

h5 {
    font-size: 16px;
    font-weight: 700;
}

h6 {
    font-size: 15px;
    font-weight: 700;
}

p,
.entry-content p,
.wp-block-post-content p {
    line-height: 22px;
}

strong, b {
    font-weight: 700;
}

/* ==========================================================
   3. LARGEURS ET CONTENEURS
   ========================================================== */
.site-header-row-layout-contained,
.site-footer-row-layout-contained,
.site-top-footer-wrap .site-container,
.site-middle-footer-wrap .site-container,
.site-bottom-footer-wrap .site-container {
    max-width: 1280px;
}

.content-container.site-container,
.site-main > .page,
.site-main > .post,
.single-content,
.entry-content-wrap {
    max-width: 940px;
}

.content-container.site-container {
    margin-left: auto;
    margin-right: auto;
}

/* Conserve le fond général très clair et les cartes blanches visibles sur la préproduction. */
#inner-wrap,
.site-main-header-wrap,
.content-bg {
    background: var(--fe-light-grey);
}

.entry-content-wrap,
.single-content,
.content-style-boxed .entry-content-wrap {
    background: var(--fe-white);
}

/* ==========================================================
   4. EN-TÊTE ET IDENTITÉ
   ========================================================== */
.site-header-wrap,
.site-header,
.site-main-header-wrap {
    background: var(--fe-white);
}

.site-branding a.brand img,
.site-branding .custom-logo {
    height: auto;
    max-width: 147px;
}

.site-branding .site-title,
.site-branding .site-description {
    font-family: "Quattrocento Sans", Arial, sans-serif;
}

.site-branding .site-description {
    color: #999999;
}

/* Boutons d'appel à l'action historiques : Nous contacter / Recevoir la plaquette. */
.header-button,
.header-html-inner .button,
.fe-header-cta,
.wp-block-button.fe-header-cta .wp-block-button__link {
    min-width: 157px;
    min-height: 52px;
    border: 0;
    border-radius: 0;
    background: var(--fe-light-grey);
    color: var(--fe-dark-text);
    font-family: "Raleway", Arial, sans-serif;
    font-size: 10px;
    font-weight: 400;
    line-height: 1.2;
    text-transform: uppercase;
}

.header-button:hover,
.header-button:focus,
.header-html-inner .button:hover,
.header-html-inner .button:focus,
.fe-header-cta:hover,
.fe-header-cta:focus,
.wp-block-button.fe-header-cta .wp-block-button__link:hover,
.wp-block-button.fe-header-cta .wp-block-button__link:focus {
    background: var(--fe-interface-blue);
    color: var(--fe-white);
}

/* ==========================================================
   5. MENU PRINCIPAL KADENCE
   ========================================================== */
.main-navigation,
.mobile-navigation {
    font-family: "Raleway", Arial, sans-serif;
}

.main-navigation .primary-menu-container > ul {
    border-top: 1px solid #225e9b;
    border-bottom: 1px solid var(--fe-interface-blue);
}

.main-navigation .primary-menu-container > ul > li.menu-item > a {
    min-height: 54px;
    padding: 0 5px;
    color: var(--fe-dark-text);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
}

.main-navigation .primary-menu-container > ul > li.menu-item:hover > a,
.main-navigation .primary-menu-container > ul > li.current-menu-item > a,
.main-navigation .primary-menu-container > ul > li.current-menu-ancestor > a {
    color: var(--fe-interface-blue);
}

.main-navigation .sub-menu {
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.main-navigation .sub-menu a {
    padding: 6px;
    background: var(--fe-light-grey);
    color: var(--fe-dark-text);
    font-size: 11px;
}

.main-navigation .sub-menu li:hover > a,
.main-navigation .sub-menu .current-menu-item > a,
.main-navigation .sub-menu .current-menu-ancestor > a {
    background: var(--fe-interface-blue);
    color: var(--fe-white);
}

.mobile-toggle-open-container .menu-toggle-open,
.mobile-toggle-open-container .menu-toggle-open:hover {
    border-radius: 0;
    background: var(--fe-light-grey);
    color: var(--fe-dark-text);
}

/* ==========================================================
   6. TITRES DE PAGE ET CONTENU
   ========================================================== */
.entry-hero,
.entry-hero-container-inner {
    background: var(--fe-light-grey);
}

.entry-hero .entry-title,
.page-title,
.wp-block-post-title,
.fe-entry-title {
    margin: 0;
    padding: 10px 20px;
    border-top: 1px solid var(--fe-interface-blue);
    border-bottom: 1px solid var(--fe-interface-blue);
    color: var(--fe-interface-blue);
    font-family: "Raleway", Arial, sans-serif;
    font-size: 20px;
    font-weight: 400;
    line-height: 1.25;
    text-align: left;
    text-transform: uppercase;
}

.fe-entry-subtitle,
.entry-hero .entry-meta,
.page-header .archive-description {
    margin-bottom: 10px;
    padding: 0 40px;
    background: var(--fe-light-grey);
    color: var(--fe-interface-blue);
    font-family: "Raleway", Arial, sans-serif;
    font-size: 16px;
    line-height: 40px;
    text-align: left;
    text-transform: uppercase;
}

.single-content ul,
.single-content ol,
.entry-content ul,
.entry-content ol {
    line-height: 22px;
}

.single-content ul,
.entry-content ul {
    list-style: disc;
    list-style-position: inside;
}

/* ==========================================================
   7. BOUTONS
   ========================================================== */
.wp-block-button__link,
.button,
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
    border: 0;
    border-radius: 0;
    background: var(--fe-interface-blue);
    color: var(--fe-white);
    font-family: "Raleway", Arial, sans-serif;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

.wp-block-button__link:hover,
.wp-block-button__link:focus,
.button:hover,
.button:focus,
button:hover,
button:focus,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover {
    background: var(--fe-dark-blue);
    color: var(--fe-white);
}

/* ==========================================================
   8. CARROUSEL / IMAGE VEDETTE
   Ajouter la classe CSS "fe-featured-slider" au bloc Kadence.
   ========================================================== */
.fe-featured-slider,
.fe-featured-image {
    margin: 20px auto;
    background: var(--fe-light-grey);
}

.fe-featured-slider img,
.fe-featured-image img {
    display: block;
    width: 100%;
    height: auto;
}

.fe-featured-slider .kb-gallery-caption,
.fe-featured-slider figcaption,
.fe-featured-slider .splide__slide__caption,
.fe-featured-image .fe-baseline {
    padding: 15px 12px;
    background: var(--fe-interface-blue);
    color: var(--fe-white);
    font-family: "Quattrocento Sans", Arial, sans-serif;
    font-size: 17px;
    line-height: 1.2;
    text-align: left;
}

/* ==========================================================
   9. PAGE D'ACCUEIL — CLASSES À ATTRIBUER AUX BLOCS
   ========================================================== */
.fe-home-heading {
    margin: 0;
    padding: 10px 40px;
    border: 0;
    background: var(--fe-light-grey);
    color: var(--fe-interface-blue);
    font-family: "Raleway", Arial, sans-serif;
    font-size: 16px;
    text-transform: uppercase;
}

.fe-service-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px 2px;
    margin-bottom: 20px;
}

.fe-service-card {
    --fe-card-color: var(--fe-orange);
}

.fe-service-card.is-grey {
    --fe-card-color: var(--fe-medium-grey);
}

.fe-service-card__title {
    margin: 0;
    padding: 10px 0 10px 10px;
    border-top: 1px solid var(--fe-card-color);
    border-bottom: 1px solid var(--fe-card-color);
    color: var(--fe-card-color);
    font-family: "Raleway", Arial, sans-serif;
    font-size: 24px;
    font-weight: 400;
    line-height: 25px;
    text-transform: uppercase;
}

.fe-service-card__links {
    margin: 0;
    padding: 0;
    list-style: none;
    background: var(--fe-card-color);
}

.fe-service-card__links li {
    padding: 0 30px;
}

.fe-service-card__links a {
    display: block;
    padding: 15px 0;
    border-bottom: 1px solid var(--fe-white);
    color: var(--fe-white);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

.fe-service-card__links li:first-child {
    background: var(--fe-light-grey);
}

.fe-service-card__links li:first-child a {
    color: var(--fe-card-color);
}

.fe-service-card__links li:first-child a,
.fe-service-card__links li:last-child a {
    border-bottom: 0;
}

.fe-home-content {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 40px;
    background: var(--fe-panel-grey);
}

.fe-home-content > * {
    padding-bottom: 20px;
    background: var(--fe-panel-grey);
}

.fe-home-content > *:nth-child(odd) {
    border-right: 1px solid var(--fe-dark-blue);
}

.fe-home-content h4 {
    margin: 0 20px;
    padding: 15px 0 10px;
    border-bottom: 1px solid var(--fe-dark-blue);
    color: var(--fe-dark-blue);
    font-size: 18px;
    text-align: center;
}

.fe-home-content p {
    padding: 0 40px 20px;
    color: var(--fe-text);
    font-size: 14px;
    line-height: 22px;
}

.fe-home-intro {
    overflow: hidden;
    border-top: 1px solid var(--fe-secondary-blue);
    border-bottom: 1px solid var(--fe-secondary-blue);
    background: var(--fe-pale-blue);
    color: var(--fe-dark-blue);
}

.fe-home-intro h4 {
    margin: 0;
    padding: 15px 20px;
    background: var(--fe-secondary-blue);
    color: var(--fe-white);
    font-size: 21px;
}

/* ==========================================================
   10. FLUENT FORMS — ADAPTATION DE LA CHARTE
   ========================================================== */
.fluentform .ff-el-form-control {
    border-radius: 0;
    border-color: var(--fe-logo-grey);
    font-family: "Quattrocento Sans", Arial, sans-serif;
}

.fluentform .ff-btn-submit {
    border-radius: 0;
    background: var(--fe-interface-blue);
    color: var(--fe-white);
    font-family: "Raleway", Arial, sans-serif;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

.fluentform .ff-btn-submit:hover,
.fluentform .ff-btn-submit:focus {
    background: var(--fe-dark-blue);
}

/* ==========================================================
   11. PIED DE PAGE
   ========================================================== */
.site-footer-wrap {
    margin-top: 35px;
    background: #aaaaaa;
}

.site-footer-top-section,
.site-top-footer-wrap {
    background: var(--fe-white);
}

.site-footer-wrap a {
    color: var(--fe-white);
}

.site-footer-wrap a:hover,
.site-footer-wrap a:focus {
    color: var(--fe-dark-text);
}

.fe-footer-baseline {
    background: var(--fe-interface-blue);
    color: var(--fe-white);
    font-size: 15px;
    line-height: 23px;
    text-align: center;
}

.site-footer-wrap .widget-title {
    color: #363837;
    font-family: "Quattrocento Sans", Arial, sans-serif;
    font-size: 14px;
    font-weight: 400;
    text-transform: uppercase;
}

.site-footer-wrap .widget_nav_menu a,
.footer-navigation a {
    font-size: 12px;
}

.site-bottom-footer-wrap,
.site-bottom-footer-inner-wrap {
    color: var(--fe-white);
}

/* ==========================================================
   12. RESPONSIVE — POINTS DE RUPTURE HISTORIQUES
   ========================================================== */
@media (min-width: 768px) {
    .fe-featured-slider .kb-gallery-caption,
    .fe-featured-slider figcaption,
    .fe-featured-slider .splide__slide__caption,
    .fe-featured-image .fe-baseline {
        float: left;
        width: 174px;
        box-sizing: border-box;
    }

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

@media (min-width: 960px) {
    .fe-home-content h4 {
        font-size: 18px;
    }
}

@media (max-width: 959px) {
    .main-navigation .primary-menu-container > ul {
        border: 0;
    }

    .fe-home-content {
        grid-template-columns: 1fr;
    }

    .fe-home-content > *:nth-child(odd) {
        border-right: 0;
    }
}

@media (max-width: 767px) {
    :root {
        --global-content-edge-padding: 20px;
    }

    .fe-service-grid {
        grid-template-columns: 1fr;
    }

    .entry-hero .entry-title,
    .page-title,
    .wp-block-post-title,
    .fe-entry-title {
        text-align: center;
    }

    .fe-entry-subtitle,
    .entry-hero .entry-meta,
    .page-header .archive-description {
        padding: 0 20px;
        text-align: center;
    }
}

/* ==========================================================
   13. CORRECTIFS KADENCE V1.1 — EN-TÊTE ET ESPACEMENTS
   Ces règles adaptent la charte historique au balisage actuel
   de Kadence sans modifier les réglages enregistrés dans WordPress.
   ========================================================== */

/* Le site historique utilise un fond de page blanc. Seuls les bandeaux
   et modules explicitement prévus sont gris. */
#inner-wrap,
.site,
.site-main,
.content-bg,
.site-main-header-wrap {
    background: var(--fe-white);
}

/* Annule les grandes hauteurs et marges du bandeau de titre Kadence. */
.entry-hero,
.entry-hero-container-inner {
    min-height: 0;
    background: var(--fe-white);
}

.entry-hero-container-inner > .site-container,
.entry-hero-container-inner .entry-header {
    width: 100%;
    max-width: 940px;
    min-height: 0;
    margin-right: auto;
    margin-left: auto;
    padding-top: 20px;
    padding-bottom: 20px;
    box-sizing: border-box;
}

/* Sur l'accueil, le titre historique est un bandeau gris compact,
   sans les deux filets utilisés sur les pages intérieures. */
.home .entry-hero .entry-title,
.home .entry-hero-container-inner .entry-title,
.home .page-title,
.home .wp-block-post-title {
    width: 100%;
    margin: 0;
    padding: 9px 40px;
    border: 0;
    background: var(--fe-light-grey);
    color: var(--fe-interface-blue);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.35;
    text-align: left;
    text-transform: uppercase;
    box-sizing: border-box;
}

/* Réduit les marges verticales Kadence autour du contenu. */
.content-area,
.site-main {
    margin-top: 0;
    margin-bottom: 0;
}

.content-container.site-container {
    padding-top: 20px;
    padding-bottom: 20px;
}

/* Retire l'apparence de carte imposée par le mode "boxed" de Kadence. */
.entry-content-wrap,
.content-style-boxed .entry-content-wrap,
.single-content {
    border-radius: 0;
    box-shadow: none;
}

.home .entry-content-wrap,
.home .content-style-boxed .entry-content-wrap {
    padding: 0;
    background: transparent;
}

.home .entry-content,
.home .single-content {
    margin-top: 0;
    background: var(--fe-white);
}

/* Structure le menu sur une seule rangée. Les libellés longs peuvent
   passer sur deux lignes à l'intérieur de leur propre cellule. */
.site-header-main-section-right,
.site-header-section,
.main-navigation,
.main-navigation .primary-menu-container {
    min-width: 0;
}

.main-navigation,
.main-navigation .primary-menu-container {
    width: 100%;
}

.main-navigation .primary-menu-container > ul {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    width: 100%;
}

.main-navigation .primary-menu-container > ul > li.menu-item {
    display: flex;
    flex: 1 1 0;
    min-width: 0;
}

.main-navigation .primary-menu-container > ul > li.menu-item > a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-width: 0;
    min-height: 54px;
    padding: 6px 7px;
    line-height: 1.2;
    text-align: center;
    white-space: normal;
    box-sizing: border-box;
}

/* Rétablit la taille physique du logo historique sans le déformer. */
.site-branding a.brand img,
.site-branding .custom-logo {
    width: 147px;
    max-width: 147px;
    max-height: none;
    object-fit: contain;
}

/* Empêche Kadence de réserver une hauteur excessive dans la rangée. */
.site-main-header-inner-wrap,
.site-header-row-container-inner {
    min-height: 0;
}

@media (max-width: 959px) {
    .site-branding a.brand img,
    .site-branding .custom-logo {
        width: 120px;
        max-width: 120px;
    }

    .main-navigation .primary-menu-container > ul {
        display: block;
    }

    .main-navigation .primary-menu-container > ul > li.menu-item {
        display: block;
    }
}

@media (max-width: 767px) {
    .entry-hero-container-inner > .site-container,
    .entry-hero-container-inner .entry-header {
        padding: 15px 20px;
    }

    .home .entry-hero .entry-title,
    .home .entry-hero-container-inner .entry-title,
    .home .page-title,
    .home .wp-block-post-title {
        padding: 9px 20px;
        text-align: center;
    }
}

/* ==========================================================
   14. CORRECTIFS KADENCE V1.2 — BANDEAU DE TITRE DE L’ACCUEIL
   Kadence conserve une hauteur de "hero" enregistrée dans le
   Personnalisateur. Les règles ci-dessous la neutralisent sur
   la page d’accueil et rétablissent le bandeau compact historique.
   ========================================================== */
body.home .entry-hero {
    width: 100%;
    max-width: 940px;
    min-height: 0 !important;
    height: auto !important;
    margin: 20px auto 0 !important;
    padding: 0 !important;
    background: transparent !important;
}

body.home .entry-hero-container-inner,
body.home .entry-hero-container-inner > .site-container,
body.home .entry-hero .hero-container,
body.home .entry-hero .entry-header {
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    box-sizing: border-box;
}

body.home .entry-hero .entry-header {
    display: block !important;
    width: 100% !important;
}

body.home .entry-hero .hero-section-overlay {
    display: none !important;
}

body.home .entry-hero .entry-title,
body.home .entry-hero-container-inner .entry-title,
body.home .page-title,
body.home .wp-block-post-title {
    display: block !important;
    width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 9px 40px !important;
    border: 0 !important;
    background: var(--fe-light-grey) !important;
    color: var(--fe-interface-blue) !important;
    font-family: "Raleway", Arial, sans-serif !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    line-height: 22px !important;
    text-align: left !important;
    text-transform: uppercase !important;
    box-sizing: border-box;
}

body.home .content-container.site-container {
    padding-top: 20px !important;
}

@media (max-width: 767px) {
    body.home .entry-hero {
        margin-top: 15px !important;
    }

    body.home .entry-hero .entry-title,
    body.home .entry-hero-container-inner .entry-title,
    body.home .page-title,
    body.home .wp-block-post-title {
        padding-right: 20px !important;
        padding-left: 20px !important;
        text-align: center !important;
    }
}

/* ==========================================================
   15. CORRECTIFS KADENCE V1.3 — EN-TÊTE STRUCTUREL ET MENUS
   Le CSS seul ne pouvait pas reproduire l'en-tête historique :
   la version 1.3 utilise un en-tête dédié, tout en conservant
   le menu WordPress « Principal » et les réglages Kadence du contenu.
   ========================================================== */

/* Masque uniquement l'en-tête natif Kadence pour éviter le doublon. */
.site-header-wrap,
#masthead.site-header,
#mobile-header {
    display: none !important;
}

.fe-site-header {
    position: relative;
    z-index: 1000;
    width: 100%;
    background: var(--fe-white);
    font-family: "Raleway", Arial, sans-serif;
}

.fe-header-branding {
    display: grid;
    grid-template-columns: 210px minmax(0, 1fr) 157px;
    column-gap: 18px;
    align-items: start;
    width: 100%;
    max-width: 1280px;
    min-height: 176px;
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
}

.fe-header-logo {
    padding-top: 30px;
    text-align: left;
}

.fe-header-logo a {
    display: inline-block;
    line-height: 0;
}

.fe-header-logo img,
.fe-header-logo .custom-logo {
    display: block;
    width: 147px;
    max-width: 147px;
    height: auto;
}

.fe-header-logo-fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 147px;
    min-height: 137px;
    padding: 12px;
    box-sizing: border-box;
    background: var(--fe-interface-blue);
    color: var(--fe-white) !important;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-transform: uppercase;
}

.fe-header-copy {
    padding-top: 18px;
    text-align: center;
}

.fe-header-title {
    color: #111111;
    font-family: "Quattrocento Sans", Arial, sans-serif;
    font-size: 32px;
    font-weight: 400;
    line-height: 1.08;
}

.fe-header-subtitle {
    margin-top: 2px;
    color: #999999;
    font-family: "Quattrocento Sans", Arial, sans-serif;
    font-size: 21px;
    font-weight: 400;
    line-height: 1.15;
}

.fe-header-actions {
    display: flex;
    flex-direction: column;
    gap: 15px;
    padding-top: 20px;
}

.fe-header-action {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 157px;
    min-height: 52px;
    padding: 8px 10px;
    box-sizing: border-box;
    background: var(--fe-light-grey);
    color: var(--fe-dark-text) !important;
    font-size: 10px;
    font-weight: 400;
    line-height: 1.25;
    text-align: center;
    text-transform: uppercase;
}

.fe-header-action:hover,
.fe-header-action:focus {
    background: var(--fe-interface-blue);
    color: var(--fe-white) !important;
}

.fe-primary-navigation {
    position: relative;
    z-index: 1002;
    width: 100%;
    max-width: 940px;
    margin: -68px auto 0;
    padding-bottom: 14px;
}

.fe-menu-toggle {
    display: none;
}

.fe-nav-panel {
    width: 100%;
}

.fe-primary-menu,
.fe-primary-menu ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.fe-primary-menu {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    width: 100%;
    border-top: 1px solid #225e9b;
    border-bottom: 1px solid var(--fe-interface-blue);
}

.fe-primary-menu > li {
    position: relative;
    display: flex;
    align-items: stretch;
    min-width: 0;
}

.fe-primary-menu > li > a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    padding: 0 7px;
    box-sizing: border-box;
    color: var(--fe-dark-text) !important;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-transform: uppercase;
    white-space: nowrap;
}

.fe-primary-menu > li:hover > a,
.fe-primary-menu > li:focus-within > a,
.fe-primary-menu > li.current-menu-item > a,
.fe-primary-menu > li.current-menu-ancestor > a {
    color: var(--fe-interface-blue) !important;
}

/* Sous-menus verticaux, lisibles et indépendants de l'ancien bandeau horizontal. */
.fe-primary-menu .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 1100;
    display: block !important;
    width: 315px;
    min-width: 315px;
    padding: 6px 0;
    border: 1px solid #d8d8d8;
    border-top: 3px solid var(--fe-interface-blue);
    background: var(--fe-white) !important;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.16);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(8px);
    transition: opacity 150ms ease, transform 150ms ease, visibility 150ms ease;
}

.fe-primary-menu > li:nth-last-child(-n+2) > .sub-menu {
    right: 0;
    left: auto;
}

.fe-primary-menu > li:hover > .sub-menu,
.fe-primary-menu > li:focus-within > .sub-menu,
.fe-primary-menu > li.fe-submenu-open > .sub-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}

.fe-primary-menu .sub-menu li {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
}

.fe-primary-menu .sub-menu a {
    display: block;
    width: 100%;
    min-height: 0;
    padding: 11px 15px;
    box-sizing: border-box;
    border-bottom: 1px solid var(--fe-white);
    background: #f0f0f0 !important;
    color: #222222 !important;
    font-family: "Raleway", Arial, sans-serif;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.35;
    text-align: left;
    text-transform: none;
    white-space: normal;
}

.fe-primary-menu .sub-menu li:last-child > a {
    border-bottom: 0;
}

.fe-primary-menu .sub-menu a:hover,
.fe-primary-menu .sub-menu a:focus,
.fe-primary-menu .sub-menu .current-menu-item > a,
.fe-primary-menu .sub-menu .current-menu-ancestor > a {
    background: var(--fe-interface-blue) !important;
    color: var(--fe-white) !important;
}

.fe-submenu-toggle {
    display: none;
}

@media (max-width: 1100px) and (min-width: 960px) {
    .fe-header-branding {
        grid-template-columns: 175px minmax(0, 1fr) 145px;
        column-gap: 10px;
    }

    .fe-header-title {
        font-size: 28px;
    }

    .fe-header-subtitle {
        font-size: 18px;
    }

    .fe-header-action {
        width: 145px;
    }

    .fe-primary-menu > li > a {
        padding-right: 5px;
        padding-left: 5px;
        font-size: 9px;
    }
}

@media (max-width: 959px) {
    .fe-site-header {
        border-bottom: 1px solid var(--fe-interface-blue);
    }

    .fe-header-branding {
        grid-template-columns: 130px minmax(0, 1fr);
        min-height: 128px;
        padding: 0 20px;
    }

    .fe-header-logo {
        padding-top: 16px;
    }

    .fe-header-logo img,
    .fe-header-logo .custom-logo,
    .fe-header-logo-fallback {
        width: 112px;
        max-width: 112px;
    }

    .fe-header-logo-fallback {
        min-height: 105px;
        font-size: 15px;
    }

    .fe-header-copy {
        padding-top: 24px;
        padding-right: 42px;
    }

    .fe-header-title {
        font-size: 25px;
    }

    .fe-header-subtitle {
        font-size: 17px;
    }

    .fe-header-actions {
        display: none;
    }

    .fe-primary-navigation {
        max-width: none;
        margin: 0;
        padding: 0 20px 14px;
        box-sizing: border-box;
    }

    .fe-menu-toggle {
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        min-height: 42px;
        padding: 8px 12px;
        border: 0;
        background: var(--fe-light-grey);
        color: var(--fe-dark-text);
        font-family: "Raleway", Arial, sans-serif;
        font-size: 13px;
        font-weight: 700;
        text-transform: uppercase;
        cursor: pointer;
    }

    .fe-menu-toggle::after {
        content: "☰";
        font-size: 20px;
        font-weight: 400;
    }

    .fe-menu-toggle[aria-expanded="true"]::after {
        content: "×";
        font-size: 26px;
    }

    .fe-nav-panel {
        display: none;
    }

    .fe-primary-navigation.fe-nav-open .fe-nav-panel {
        display: block;
    }

    .fe-primary-menu {
        display: block;
        border-top: 0;
        border-bottom: 1px solid var(--fe-interface-blue);
    }

    .fe-primary-menu > li {
        position: relative;
        display: block;
        width: 100%;
        border-top: 1px solid #d8d8d8;
    }

    .fe-primary-menu > li > a {
        display: block;
        min-height: 0;
        padding: 12px 45px 12px 12px;
        font-size: 13px;
        line-height: 1.3;
        text-align: left;
        white-space: normal;
    }

    .fe-submenu-toggle {
        position: absolute;
        top: 1px;
        right: 0;
        z-index: 2;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 44px;
        height: 43px;
        padding: 0;
        border: 0;
        background: transparent;
        color: var(--fe-interface-blue);
        font-size: 20px;
        cursor: pointer;
    }

    .fe-submenu-toggle::before {
        content: "+";
    }

    .fe-submenu-toggle[aria-expanded="true"]::before {
        content: "−";
    }

    .fe-primary-menu .sub-menu,
    .fe-primary-menu > li:nth-last-child(-n+2) > .sub-menu {
        position: static;
        display: none !important;
        width: 100%;
        min-width: 0;
        padding: 0;
        border: 0;
        border-top: 1px solid var(--fe-interface-blue);
        box-shadow: none;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: none;
    }

    .fe-primary-menu > li.fe-submenu-open > .sub-menu {
        display: block !important;
    }

    .fe-primary-menu .sub-menu a {
        padding: 11px 18px 11px 28px;
        font-size: 13px;
    }
}

@media (max-width: 560px) {
    .fe-header-branding {
        grid-template-columns: 100px minmax(0, 1fr);
        min-height: 108px;
        padding-right: 14px;
        padding-left: 14px;
    }

    .fe-header-logo img,
    .fe-header-logo .custom-logo,
    .fe-header-logo-fallback {
        width: 88px;
        max-width: 88px;
    }

    .fe-header-logo-fallback {
        min-height: 84px;
        font-size: 12px;
    }

    .fe-header-copy {
        padding-top: 22px;
        padding-right: 0;
    }

    .fe-header-title {
        font-size: 20px;
    }

    .fe-header-subtitle {
        font-size: 14px;
    }

    .fe-primary-navigation {
        padding-right: 14px;
        padding-left: 14px;
    }
}

/* ==========================================================
   16. ACCUEIL V1.4 — CARROUSEL ET STRUCTURE HISTORIQUE
   ========================================================== */
.fe-home-slider {
    position: relative;
    z-index: 20;
    width: calc(100% - 40px);
    max-width: 940px;
    margin: 20px auto;
    background: var(--fe-light-grey);
}

.fe-home-slider__viewport {
    overflow: hidden;
    width: 100%;
}

.fe-home-slider__track {
    display: flex;
    width: 100%;
    transition: transform 500ms ease;
    will-change: transform;
}

.fe-home-slide {
    display: grid;
    flex: 0 0 100%;
    grid-template-columns: 174px minmax(0, 1fr);
    width: 100%;
    min-width: 100%;
    margin: 0;
    background: var(--fe-light-grey);
}

.fe-home-slide__baseline {
    min-height: 339px;
    padding: 15px 12px;
    box-sizing: border-box;
    background: var(--fe-interface-blue);
    color: var(--fe-white);
    font-family: "Quattrocento Sans", Arial, sans-serif;
    font-size: 17px;
    line-height: 1.08;
    text-align: left;
}

.fe-home-slide__media {
    display: block;
    min-width: 0;
    line-height: 0;
}

.fe-home-slide__media img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 769 / 339;
    object-fit: cover;
}

.fe-slider-control {
    position: absolute;
    top: 50%;
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 52px;
    margin-top: -26px;
    padding: 0;
    border: 0;
    background: rgba(0, 0, 0, 0.35);
    color: #fff;
    font-family: Arial, sans-serif;
    font-size: 36px;
    font-weight: 400;
    line-height: 1;
    opacity: 0;
    cursor: pointer;
    transition: opacity 150ms ease, background 150ms ease;
}

.fe-home-slider:hover .fe-slider-control,
.fe-home-slider:focus-within .fe-slider-control {
    opacity: 1;
}

.fe-slider-control:hover,
.fe-slider-control:focus {
    background: rgba(27, 90, 164, 0.9);
}

.fe-slider-control:disabled {
    opacity: 0 !important;
    cursor: default;
}

.fe-slider-prev {
    left: 174px;
}

.fe-slider-next {
    right: 0;
}

body.home .entry-content-wrap,
body.home .single-content,
body.home .entry-content {
    overflow: visible;
}

.fe-home-services {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px 2px;
    width: 100%;
    margin: 20px 0;
}

.fe-service-card {
    --fe-card-color: var(--fe-orange);
    min-width: 0;
}

.fe-service-card--grey {
    --fe-card-color: var(--fe-medium-grey);
}

.fe-service-card__title {
    margin: 0;
    padding: 10px 0 10px 0;
    border-top: 1px solid var(--fe-card-color);
    border-bottom: 1px solid var(--fe-card-color);
    color: var(--fe-card-color);
    font-family: "Raleway", Arial, sans-serif;
    font-size: 24px;
    font-weight: 400;
    line-height: 25px;
    text-transform: uppercase;
}

.fe-service-card__links {
    margin: 0;
    padding: 0;
    list-style: none !important;
    background: var(--fe-card-color);
}

.fe-service-card__links li {
    margin: 0;
    padding: 0 30px;
    list-style: none !important;
}

.fe-service-card__links a {
    display: block;
    padding: 15px 0;
    border-bottom: 1px solid var(--fe-white);
    color: var(--fe-white) !important;
    font-family: "Raleway", Arial, sans-serif;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.35;
    text-transform: uppercase;
}

.fe-service-card__links li:first-child {
    background: var(--fe-light-grey);
}

.fe-service-card__links li:first-child a {
    color: var(--fe-card-color) !important;
}

.fe-service-card__links li:first-child a,
.fe-service-card__links li:last-child a {
    border-bottom: 0;
}

.fe-service-card__links a:hover,
.fe-service-card__links a:focus {
    text-decoration: underline;
}

.fe-home-intro {
    display: grid;
    grid-template-columns: 264px minmax(0, 1fr);
    clear: both;
    margin: 20px 0 0;
    border-top: 1px solid var(--fe-secondary-blue);
    border-bottom: 1px solid var(--fe-secondary-blue);
    background: var(--fe-pale-blue);
    color: var(--fe-dark-blue);
}

.fe-home-intro__figure {
    margin: 0 40px 0 0;
    background: var(--fe-pale-blue);
}

.fe-home-intro__figure img {
    display: block;
    width: 264px;
    max-width: 100%;
    height: auto;
}

.fe-home-intro__figure figcaption {
    padding: 5px 4px 8px;
    font-size: 11px;
    text-align: center;
}

.fe-home-intro__body h3 {
    margin: 0;
    padding: 15px 20px 15px 0;
    background: var(--fe-secondary-blue);
    color: var(--fe-white);
    font-size: 18px;
    font-weight: 400;
}

.fe-home-intro__body p {
    margin: 0;
    padding: 18px 20px 8px 0;
    color: var(--fe-dark-blue);
    font-weight: 700;
}

.fe-home-intro__links {
    padding: 8px 20px 16px 0;
    font-size: 12px;
    line-height: 20px;
    text-transform: uppercase;
}

.fe-home-intro__links a {
    padding-left: 5px;
    color: #225e9b !important;
    font-weight: 700;
}

.fe-home-content-legacy {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: hidden;
    margin-top: 40px;
    background: var(--fe-panel-grey);
}

.fe-home-content-legacy > h4,
.fe-home-content-legacy > p {
    grid-column: 1 / -1;
}

.fe-home-content-legacy > h4 {
    margin: 0 20px;
    padding: 15px 0 10px;
    border-bottom: 1px solid var(--fe-dark-blue);
    color: var(--fe-dark-blue);
    font-size: 18px;
    text-align: center;
}

.fe-home-content-legacy > p {
    margin: 0;
    padding: 20px 40px;
    color: var(--fe-dark-blue);
    font-size: 14px;
    line-height: 22px;
}

.fe-home-content-legacy .left,
.fe-home-content-legacy .right {
    min-width: 0;
    background: var(--fe-panel-grey);
}

.fe-home-content-legacy .left {
    border-right: 1px solid var(--fe-dark-blue);
}

.fe-home-content-legacy .left p,
.fe-home-content-legacy .right p {
    margin: 0;
    padding: 0 40px 20px;
    color: var(--fe-text);
    font-size: 14px;
    line-height: 22px;
}

.fe-home-content-legacy .left p:first-child,
.fe-home-content-legacy .right p:first-child {
    padding-top: 0;
}

.fe-home-content-legacy .left strong,
.fe-home-content-legacy .right strong {
    display: block;
    color: var(--fe-dark-blue);
    font-weight: 700;
}

@media (prefers-reduced-motion: reduce) {
    .fe-home-slider__track {
        transition: none;
    }
}

@media (max-width: 767px) {
    .fe-home-slider {
        width: calc(100% - 28px);
        margin-top: 14px;
        margin-bottom: 14px;
    }

    .fe-home-slide {
        grid-template-columns: 1fr;
    }

    .fe-home-slide__baseline {
        min-height: 0;
        padding: 12px 14px;
        font-size: 16px;
    }

    .fe-slider-prev {
        left: 0;
    }

    .fe-home-services,
    .fe-home-content-legacy,
    .fe-home-intro {
        grid-template-columns: 1fr;
    }

    .fe-service-card__title {
        font-size: 20px;
    }

    .fe-home-intro__figure {
        margin-right: 0;
    }

    .fe-home-intro__figure img {
        width: 100%;
    }

    .fe-home-intro__body h3,
    .fe-home-intro__body p,
    .fe-home-intro__links {
        padding-right: 20px;
        padding-left: 20px;
    }

    .fe-home-content-legacy .left {
        border-right: 0;
        border-bottom: 1px solid var(--fe-dark-blue);
    }
}


/* ==========================================================
   17. CORRECTIFS V1.5 — FIDÉLITÉ DESKTOP ET BLOCS D'ACCUEIL
   ========================================================== */

/* L'ancien thème justifiait tout le contenu éditorial. On limite ici
   la justification aux paragraphes afin de ne pas déformer menus et boutons. */
body:not(.wp-admin) .entry-content p,
body:not(.wp-admin) .wp-block-post-content p,
.fe-home-intro__body p,
.fe-home-content-legacy p {
    text-align: justify;
    text-justify: inter-word;
    -webkit-hyphens: auto;
    hyphens: auto;
}

/* En-tête historique : le conteneur de 1280 px n'avait pas de retrait
   horizontal. Le logo d'origine franchise-expert.jpg mesure 127 × 126 px. */
@media (min-width: 1280px) {
    .fe-header-branding {
        grid-template-columns: 210px minmax(0, 1fr) 157px;
        column-gap: 0;
        padding-right: 0;
        padding-left: 0;
    }

    .fe-header-logo img,
    .fe-header-logo .custom-logo,
    .fe-header-logo-fallback {
        width: 127px;
        max-width: 127px;
    }

    .fe-header-logo-fallback {
        min-height: 126px;
    }

    .fe-header-actions {
        justify-self: end;
    }
}

/* Comme dans l'ancien CSS, le menu ne remonte entre le logo et les boutons
   qu'à partir de 1280 px. Cela évite tout chevauchement aux largeurs intermédiaires. */
@media (min-width: 960px) and (max-width: 1279px) {
    .fe-primary-navigation {
        margin-top: 0;
    }
}

/* Kadence conservait environ 20 px de retrait de chaque côté du contenu.
   Les modules historiques occupaient réellement les 940 px, comme le carrousel. */
@media (min-width: 768px) {
    body.home .fe-home-services,
    body.home .fe-home-intro,
    body.home .fe-home-content-legacy {
        width: calc(100% + 40px);
        max-width: 940px;
        margin-right: -20px;
        margin-left: -20px;
    }
}

/* Reprise stricte de la géométrie de #home-nav de l'ancien thème. */
body.home .entry-content .fe-home-services {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 2px;
    row-gap: 20px;
}

body.home .entry-content .fe-service-card {
    min-width: 0;
    overflow: hidden;
    text-align: left;
}

body.home .entry-content .fe-service-card__title {
    min-height: 47px;
    margin: 0;
    padding: 10px 0 10px 10px;
    box-sizing: border-box;
    font-size: 20px;
    line-height: 25px;
    text-align: left;
}

/* Ces sélecteurs plus précis neutralisent le retrait de listes ajouté par Kadence,
   responsable de la bande orange/grise parasite sur le côté du premier lien. */
body.home .entry-content ul.fe-service-card__links {
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box;
}

body.home .entry-content ul.fe-service-card__links > li {
    display: block;
    width: 100%;
    margin: 0 !important;
    padding: 0 30px !important;
    box-sizing: border-box;
    background: var(--fe-card-color);
    list-style: none !important;
}

body.home .entry-content ul.fe-service-card__links > li:first-child {
    background: var(--fe-light-grey);
}

body.home .entry-content ul.fe-service-card__links > li > a {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 47px;
    padding: 10px 0;
    box-sizing: border-box;
    line-height: 1.25;
    text-align: left;
}

body.home .entry-content ul.fe-service-card__links > li:first-child > a,
body.home .entry-content ul.fe-service-card__links > li:last-child > a {
    border-bottom: 0;
}

@media (max-width: 767px) {
    body.home .fe-home-services,
    body.home .fe-home-intro,
    body.home .fe-home-content-legacy {
        width: 100%;
        margin-right: 0;
        margin-left: 0;
    }

    body.home .entry-content .fe-home-services {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================
   19. INTERACTIONS V1.6 — BLOCS CLIQUABLES ET ÉTATS ACTIFS
   ========================================================== */

/* Les deux accès rapides historiques commencent plus bas que le titre :
   ils chevauchent verticalement la zone du menu, comme sur le site source. */
@media (min-width: 960px) {
    .fe-header-actions {
        padding-top: 48px;
    }
}

/* Transition commune aux éléments d'interface, sans modifier les liens
   éditoriaux insérés au fil du texte. */
.fe-header-action,
.fe-primary-menu > li > a,
.fe-primary-menu .sub-menu a,
body.home .entry-content ul.fe-service-card__links > li,
body.home .entry-content ul.fe-service-card__links > li > a,
#secondary .widget_nav_menu a,
.primary-sidebar .widget_nav_menu a,
.fe-side-menu a,
.fe-clickable-menu a {
    transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease;
}

/* Accès rapides : le bleu est conservé sur la page active. */
.fe-header-action.is-current,
.fe-header-action[aria-current="page"] {
    background: var(--fe-interface-blue);
    color: var(--fe-white) !important;
}

/* Menu principal : toute la cellule change de couleur au survol et reste
   colorée pour la rubrique courante ou l'un de ses descendants. */
.fe-primary-menu > li:hover > a,
.fe-primary-menu > li:focus-within > a,
.fe-primary-menu > li.current-menu-item > a,
.fe-primary-menu > li.current-menu-ancestor > a,
.fe-primary-menu > li.current_page_item > a,
.fe-primary-menu > li.current_page_ancestor > a {
    background: var(--fe-light-grey);
    color: var(--fe-interface-blue) !important;
}

/* Les quatre cartes de l'accueil ont désormais quatre lignes homogènes.
   La teinte claire historique n'apparaît qu'au survol, au clavier ou sur
   l'élément actif. */
body.home .entry-content ul.fe-service-card__links > li,
body.home .entry-content ul.fe-service-card__links > li:first-child {
    background: var(--fe-card-color);
}

body.home .entry-content ul.fe-service-card__links > li > a,
body.home .entry-content ul.fe-service-card__links > li:first-child > a {
    color: var(--fe-white) !important;
    text-decoration: none !important;
}

body.home .entry-content ul.fe-service-card__links > li:hover,
body.home .entry-content ul.fe-service-card__links > li:focus-within,
body.home .entry-content ul.fe-service-card__links > li.is-current,
body.home .entry-content ul.fe-service-card__links > li.current-menu-item,
body.home .entry-content ul.fe-service-card__links > li.current_page_item,
body.home .entry-content ul.fe-service-card__links > li:has(> a[aria-current="page"]) {
    background: var(--fe-light-grey);
}

body.home .entry-content ul.fe-service-card__links > li:hover > a,
body.home .entry-content ul.fe-service-card__links > li:focus-within > a,
body.home .entry-content ul.fe-service-card__links > li.is-current > a,
body.home .entry-content ul.fe-service-card__links > li.current-menu-item > a,
body.home .entry-content ul.fe-service-card__links > li.current_page_item > a,
body.home .entry-content ul.fe-service-card__links > li > a[aria-current="page"] {
    color: var(--fe-card-color) !important;
    text-decoration: none !important;
}

/* Menus latéraux des pages internes. Ces règles fonctionnent avec un menu
   WordPress de la barre latérale ou avec les classes dédiées fe-side-menu /
   fe-clickable-menu. WordPress conserve l'état grâce à current-menu-item,
   current_page_item et aria-current. */
body {
    --fe-side-menu-color: var(--fe-interface-blue);
}

body.fe-section-orange {
    --fe-side-menu-color: var(--fe-orange);
}

body.fe-section-grey {
    --fe-side-menu-color: var(--fe-medium-grey);
}

#secondary .widget_nav_menu ul,
.primary-sidebar .widget_nav_menu ul,
.fe-side-menu,
.fe-side-menu ul,
.fe-clickable-menu,
.fe-clickable-menu ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

#secondary .widget_nav_menu li,
.primary-sidebar .widget_nav_menu li,
.fe-side-menu li,
.fe-clickable-menu li {
    margin: 0;
    padding: 0;
    border-bottom: 1px solid var(--fe-white);
    background: var(--fe-side-menu-color);
    list-style: none;
}

#secondary .widget_nav_menu a,
.primary-sidebar .widget_nav_menu a,
.fe-side-menu a,
.fe-clickable-menu a {
    display: block;
    width: 100%;
    padding: 12px 16px;
    box-sizing: border-box;
    background: transparent;
    color: var(--fe-white) !important;
    font-family: "Raleway", Arial, sans-serif;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.3;
    text-decoration: none !important;
    text-transform: uppercase;
}

#secondary .widget_nav_menu li:hover,
#secondary .widget_nav_menu li:focus-within,
#secondary .widget_nav_menu li.current-menu-item,
#secondary .widget_nav_menu li.current-menu-ancestor,
#secondary .widget_nav_menu li.current_page_item,
#secondary .widget_nav_menu li.current_page_ancestor,
.primary-sidebar .widget_nav_menu li:hover,
.primary-sidebar .widget_nav_menu li:focus-within,
.primary-sidebar .widget_nav_menu li.current-menu-item,
.primary-sidebar .widget_nav_menu li.current-menu-ancestor,
.primary-sidebar .widget_nav_menu li.current_page_item,
.primary-sidebar .widget_nav_menu li.current_page_ancestor,
.fe-side-menu li:hover,
.fe-side-menu li:focus-within,
.fe-side-menu li.is-current,
.fe-side-menu li.current-menu-item,
.fe-side-menu li.current-menu-ancestor,
.fe-side-menu li.current_page_item,
.fe-side-menu li.current_page_ancestor,
.fe-clickable-menu li:hover,
.fe-clickable-menu li:focus-within,
.fe-clickable-menu li.is-current,
.fe-clickable-menu li.current-menu-item,
.fe-clickable-menu li.current-menu-ancestor,
.fe-clickable-menu li.current_page_item,
.fe-clickable-menu li.current_page_ancestor {
    background: var(--fe-light-grey);
}

#secondary .widget_nav_menu li:hover > a,
#secondary .widget_nav_menu li:focus-within > a,
#secondary .widget_nav_menu li.current-menu-item > a,
#secondary .widget_nav_menu li.current-menu-ancestor > a,
#secondary .widget_nav_menu li.current_page_item > a,
#secondary .widget_nav_menu li.current_page_ancestor > a,
#secondary .widget_nav_menu a[aria-current="page"],
.primary-sidebar .widget_nav_menu li:hover > a,
.primary-sidebar .widget_nav_menu li:focus-within > a,
.primary-sidebar .widget_nav_menu li.current-menu-item > a,
.primary-sidebar .widget_nav_menu li.current-menu-ancestor > a,
.primary-sidebar .widget_nav_menu li.current_page_item > a,
.primary-sidebar .widget_nav_menu li.current_page_ancestor > a,
.primary-sidebar .widget_nav_menu a[aria-current="page"],
.fe-side-menu li:hover > a,
.fe-side-menu li:focus-within > a,
.fe-side-menu li.is-current > a,
.fe-side-menu li.current-menu-item > a,
.fe-side-menu li.current-menu-ancestor > a,
.fe-side-menu li.current_page_item > a,
.fe-side-menu li.current_page_ancestor > a,
.fe-side-menu a[aria-current="page"],
.fe-clickable-menu li:hover > a,
.fe-clickable-menu li:focus-within > a,
.fe-clickable-menu li.is-current > a,
.fe-clickable-menu li.current-menu-item > a,
.fe-clickable-menu li.current-menu-ancestor > a,
.fe-clickable-menu li.current_page_item > a,
.fe-clickable-menu li.current_page_ancestor > a,
.fe-clickable-menu a[aria-current="page"] {
    color: var(--fe-side-menu-color) !important;
}

/* Le navigateur Safari ne gère pas toujours :has dans les anciennes versions :
   le JavaScript ajoute aussi la classe is-current au parent du lien actif. */


/* ==========================================================
   20. CORRECTIF V1.6.1 — SOULIGNEMENT CONSERVÉ AU SURVOL
   ========================================================== */

/* Le changement de fond et de couleur reste le signal principal ;
   le libellé est également souligné au survol ou au focus clavier. */
.fe-header-action:hover,
.fe-header-action:focus-visible,
.fe-primary-menu > li > a:hover,
.fe-primary-menu > li:focus-within > a,
.fe-primary-menu .sub-menu a:hover,
.fe-primary-menu .sub-menu a:focus-visible,
body.home .entry-content ul.fe-service-card__links > li:hover > a,
body.home .entry-content ul.fe-service-card__links > li:focus-within > a,
#secondary .widget_nav_menu li:hover > a,
#secondary .widget_nav_menu li:focus-within > a,
.primary-sidebar .widget_nav_menu li:hover > a,
.primary-sidebar .widget_nav_menu li:focus-within > a,
.fe-side-menu li:hover > a,
.fe-side-menu li:focus-within > a,
.fe-clickable-menu li:hover > a,
.fe-clickable-menu li:focus-within > a {
    text-decoration-line: underline !important;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

/* L’état actif conserve sa couleur même sans survol ; le soulignement
   n’apparaît que lorsqu’on pointe ou sélectionne au clavier. */


/* ==========================================================
   21. CORRECTIFS V1.7 — EN-TÊTE, CARROUSEL EN BOUCLE ET FOOTER
   ========================================================== */

/* Le second accès rapide occupe exactement la même bande horizontale que
   Accueil et les six rubriques principales. */
@media (min-width: 960px) {
    .fe-header-actions {
        position: relative;
        display: block;
        padding-top: 20px;
    }

    .fe-header-action:first-child {
        position: absolute;
        top: 20px;
        right: 0;
    }

    .fe-header-action:last-child {
        position: absolute;
        top: 108px;
        right: 0;
        min-height: 54px;
    }
}

/* La colonne gauche du carrousel reste grise ; seule l'étiquette de texte est
   bleue et sa hauteur dépend du contenu, comme sur le modèle historique. */
.fe-home-slide {
    align-items: stretch;
    background: var(--fe-light-grey);
}

.fe-home-slide__baseline {
    align-self: start;
    min-height: 0;
    padding: 13px 12px 14px;
}

.fe-home-slide__media {
    grid-column: 2;
    grid-row: 1;
}

/* Les deux flèches sont toujours présentes et le JavaScript boucle dans les
   deux directions. */
.fe-slider-control,
.fe-home-slider:hover .fe-slider-control,
.fe-home-slider:focus-within .fe-slider-control {
    opacity: 0.88;
}

.fe-slider-control:disabled {
    opacity: 0.88 !important;
    cursor: pointer;
}

.fe-slider-prev {
    left: 174px;
}

.fe-slider-next {
    right: 0;
}

/* Kadence ne doit plus afficher un second pied de page. */
.site-footer-wrap,
#colophon {
    display: none !important;
}

.fe-site-footer {
    clear: both;
    width: 100%;
    margin-top: 48px;
    font-family: "Quattrocento Sans", Arial, sans-serif;
}

.fe-footer-credibility {
    border-top: 1px solid #dddddd;
    background: var(--fe-white);
}

.fe-footer-credibility__inner {
    display: flex;
    align-items: center;
    gap: 14px;
    width: calc(100% - 40px);
    max-width: 940px;
    min-height: 64px;
    margin: 0 auto;
}

.fe-footer-credibility__inner p {
    margin: 0;
    color: var(--fe-text);
}

.fe-footer-credibility__inner > img {
    width: auto;
    max-width: 78px;
    max-height: 46px;
}

.fe-footer-linkedin {
    margin-left: auto;
    line-height: 0;
}

.fe-footer-linkedin img {
    width: 30px;
    height: 30px;
}

.fe-site-footer .fe-footer-baseline {
    padding: 10px 20px;
    background: var(--fe-interface-blue);
    color: var(--fe-white);
    font-size: 16px;
    line-height: 1.35;
    text-align: center;
}

.fe-footer-main {
    background: #a9aaac;
}

.fe-footer-main__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    width: calc(100% - 40px);
    max-width: 940px;
    min-height: 82px;
    margin: 0 auto;
}

.fe-footer-legal {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 18px;
}

.fe-footer-legal a {
    color: var(--fe-white) !important;
    font-size: 13px;
    text-decoration: none;
}

.fe-footer-legal a:hover,
.fe-footer-legal a:focus-visible {
    color: var(--fe-dark-text) !important;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.fe-footer-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 0 0 auto;
}

.fe-footer-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 9px 16px;
    border: 1px solid var(--fe-interface-blue);
    box-sizing: border-box;
    font-family: "Raleway", Arial, sans-serif;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-transform: uppercase;
    transition: background-color 160ms ease, color 160ms ease;
}

.fe-footer-cta--secondary {
    background: transparent;
    color: var(--fe-interface-blue) !important;
}

.fe-footer-cta--primary {
    background: var(--fe-interface-blue);
    color: var(--fe-white) !important;
}

.fe-footer-cta:hover,
.fe-footer-cta:focus-visible {
    background: var(--fe-white);
    color: var(--fe-interface-blue) !important;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.fe-footer-copyright {
    padding: 14px 20px;
    background: #8d8f91;
    color: var(--fe-white);
    font-size: 12px;
    text-align: center;
}

@media (max-width: 767px) {
    .fe-home-slide {
        grid-template-columns: 1fr;
    }

    .fe-home-slide__baseline {
        grid-column: 1;
        grid-row: 1;
    }

    .fe-home-slide__media {
        grid-column: 1;
        grid-row: 2;
    }

    .fe-slider-prev {
        left: 0;
    }

    .fe-footer-credibility__inner,
    .fe-footer-main__inner {
        width: calc(100% - 28px);
    }

    .fe-footer-main__inner {
        flex-direction: column;
        align-items: stretch;
        padding: 20px 0;
    }

    .fe-footer-actions {
        flex-wrap: wrap;
    }

    .fe-footer-cta {
        flex: 1 1 180px;
    }
}


/* ==========================================================
   22. VERSION 1.8 — PLAN DU SITE ET NAVIGATION HORIZONTALE
   ========================================================== */

.fe-section-tabs {
    --fe-tabs-accent: var(--fe-interface-blue);
    width: calc(100% - 40px);
    max-width: 940px;
    margin: 0 auto 18px;
    border-bottom: 1px solid var(--fe-tabs-accent);
    background: #e8e8e8;
}

.fe-section-orange .fe-section-tabs {
    --fe-tabs-accent: var(--fe-orange);
}

.fe-section-grey .fe-section-tabs {
    --fe-tabs-accent: var(--fe-medium-grey);
}

.fe-section-tabs__list {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: center;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.fe-section-tabs__list li {
    margin: 0;
    padding: 0;
}

.fe-section-tabs__list a {
    display: flex;
    align-items: center;
    min-height: 38px;
    padding: 8px 11px;
    box-sizing: border-box;
    color: #3c3f42 !important;
    font-family: "Raleway", Arial, sans-serif;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    transition: background-color 160ms ease, color 160ms ease;
}

.fe-section-tabs__list a:hover,
.fe-section-tabs__list a:focus-visible,
.fe-section-tabs__list .is-current > a,
.fe-section-tabs__list a[aria-current="page"] {
    background: var(--fe-tabs-accent);
    color: var(--fe-white) !important;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Ligne de crédibilité en trois zones :
   dirigeant à gauche, LinkedIn centré, référence FFF à droite. */
.fe-footer-credibility__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 22px;
    min-height: 72px;
}

.fe-footer-credibility__left {
    justify-self: start;
    color: var(--fe-text);
}

.fe-footer-linkedin {
    justify-self: center;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-left: 0;
    color: var(--fe-interface-blue) !important;
    font-family: "Raleway", Arial, sans-serif;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

.fe-footer-linkedin:hover,
.fe-footer-linkedin:focus-visible {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.fe-footer-linkedin img {
    width: 30px;
    height: 30px;
}

.fe-footer-fff {
    justify-self: end;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    color: var(--fe-text);
    text-align: right;
}

.fe-footer-fff span {
    max-width: 190px;
}

.fe-footer-fff img {
    width: auto;
    max-width: 78px;
    max-height: 46px;
}

/* Plan du site complet : les six rubriques principales et leurs enfants. */
.fe-footer-sitemap {
    background: #ececec;
    border-bottom: 1px solid #d2d2d2;
}

.fe-footer-sitemap__inner {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 30px 34px;
    width: calc(100% - 40px);
    max-width: 1180px;
    margin: 0 auto;
    padding: 34px 0 38px;
}

.fe-footer-sitemap__section h2 {
    margin: 0 0 12px;
    padding: 0 0 9px;
    border-bottom: 1px solid var(--fe-interface-blue);
    font-family: "Raleway", Arial, sans-serif;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.25;
    text-transform: uppercase;
}

.fe-footer-sitemap__section h2 a {
    color: var(--fe-interface-blue) !important;
    text-decoration: none;
}

.fe-footer-sitemap__section ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.fe-footer-sitemap__section li {
    margin: 0;
    border-bottom: 1px solid #d4d4d4;
}

.fe-footer-sitemap__section li:last-child {
    border-bottom: 0;
}

.fe-footer-sitemap__section li a {
    display: block;
    padding: 7px 0;
    color: #44484c !important;
    font-size: 12px;
    line-height: 1.35;
    text-decoration: none;
}

.fe-footer-sitemap__section a:hover,
.fe-footer-sitemap__section a:focus-visible {
    color: var(--fe-interface-blue) !important;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Les deux appels à l’action ont exactement le même bouton bleu. */
.fe-footer-cta,
.fe-footer-cta--secondary,
.fe-footer-cta--primary {
    border: 1px solid var(--fe-interface-blue);
    background: var(--fe-interface-blue);
    color: var(--fe-white) !important;
}

.fe-footer-cta:hover,
.fe-footer-cta:focus-visible,
.fe-footer-cta--secondary:hover,
.fe-footer-cta--secondary:focus-visible,
.fe-footer-cta--primary:hover,
.fe-footer-cta--primary:focus-visible {
    border-color: var(--fe-white);
    background: var(--fe-white);
    color: var(--fe-interface-blue) !important;
    text-decoration: underline;
    text-underline-offset: 3px;
}

@media (max-width: 959px) {
    .fe-section-tabs {
        width: calc(100% - 28px);
    }

    .fe-footer-sitemap__inner {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: calc(100% - 28px);
    }
}

@media (max-width: 639px) {
    .fe-section-tabs__list {
        display: block;
    }

    .fe-section-tabs__list a {
        justify-content: flex-start;
        text-align: left;
    }

    .fe-footer-credibility__inner {
        grid-template-columns: 1fr;
        justify-items: center;
        gap: 14px;
        padding: 20px 0;
        text-align: center;
    }

    .fe-footer-credibility__left,
    .fe-footer-linkedin,
    .fe-footer-fff {
        justify-self: center;
    }

    .fe-footer-fff {
        justify-content: center;
        text-align: center;
    }

    .fe-footer-sitemap__inner {
        grid-template-columns: 1fr;
    }
}


/* ==========================================================
   23. VERSION 1.8.2 — RETOUR AU FOOTER HISTORIQUE
   ========================================================== */

/* La phrase bleue possède désormais une vraie marge interne et ne peut plus
   toucher le bord du bandeau, même si une règle générale du thème intervient. */
#fe-site-footer .fe-footer-baseline {
    box-sizing: border-box;
    width: 100%;
    padding: 0 !important;
    line-height: 23px;
    text-align: center !important;
}

#fe-site-footer .fe-footer-baseline > span {
    display: block;
    box-sizing: border-box;
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    padding: 2px 24px;
    text-align: center;
}

/* Comme sur l’original : LinkedIn au centre ; la mention complète
   Pascal H. Lambert + Collège des Experts + logo FFF reste à droite. */
#fe-site-footer .fe-footer-credibility__inner {
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    max-width: 1280px;
}

#fe-site-footer .fe-footer-credibility__spacer {
    justify-self: start;
}

#fe-site-footer .fe-footer-linkedin {
    justify-self: center;
}

#fe-site-footer .fe-footer-fff {
    justify-self: end;
}

#fe-site-footer .fe-footer-fff span {
    max-width: 285px;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
}

#fe-site-footer .fe-footer-fff strong {
    color: var(--fe-interface-blue);
}

/* Plan du site reproduit sur une seule ligne à six colonnes, comme le thème
   historique : fond gris, titres sombres en capitales, puces et liens blancs. */
#fe-site-footer .fe-footer-sitemap {
    background: #aaaaaa;
    border-bottom: 0;
}

#fe-site-footer .fe-footer-sitemap__inner {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0;
    box-sizing: border-box;
    width: calc(100% - 40px);
    max-width: 1280px;
    margin: 20px auto;
    padding: 0;
}

#fe-site-footer .fe-footer-sitemap__section {
    box-sizing: border-box;
    min-width: 0;
    padding: 20px 10px 0 20px;
}

#fe-site-footer .fe-footer-sitemap__section h2 {
    margin: 0;
    padding: 0;
    border: 0;
    font-family: "Quattrocento Sans", Arial, sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 24px;
    text-transform: uppercase;
}

#fe-site-footer .fe-footer-sitemap__section h2 a {
    color: #363837 !important;
    text-decoration: none !important;
}

#fe-site-footer .fe-footer-sitemap__section ul {
    margin: 0;
    padding: 0 0 0 18px;
    color: #ffffff;
    font-size: 13px;
    list-style: disc outside;
}

#fe-site-footer .fe-footer-sitemap__section li,
#fe-site-footer .fe-footer-sitemap__section li:last-child {
    margin: 0;
    border: 0;
}

#fe-site-footer .fe-footer-sitemap__section li a {
    display: inline;
    padding: 0;
    color: #ffffff !important;
    font-size: 12px;
    line-height: 1.35;
    text-decoration: none !important;
}

/* Tous les liens du plan réagissent réellement au survol. */
#fe-site-footer .fe-footer-sitemap__section h2 a:hover,
#fe-site-footer .fe-footer-sitemap__section h2 a:focus-visible,
#fe-site-footer .fe-footer-sitemap__section li a:hover,
#fe-site-footer .fe-footer-sitemap__section li a:focus-visible {
    color: var(--fe-interface-blue) !important;
    text-decoration: underline !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 3px !important;
}

/* Liens juridiques : changement visible de fond, de contour et soulignement. */
#fe-site-footer .fe-footer-legal a {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 5px 8px;
    border: 1px solid transparent;
    box-sizing: border-box;
    transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}

#fe-site-footer .fe-footer-legal a:hover,
#fe-site-footer .fe-footer-legal a:focus-visible {
    border-color: #ffffff !important;
    background: var(--fe-interface-blue) !important;
    color: #ffffff !important;
    text-decoration: underline !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 3px !important;
}

/* Les deux boutons bleus changent nettement au survol. */
#fe-site-footer .fe-footer-actions .fe-footer-cta:hover,
#fe-site-footer .fe-footer-actions .fe-footer-cta:focus-visible {
    border-color: var(--fe-interface-blue) !important;
    background: #ffffff !important;
    color: var(--fe-interface-blue) !important;
    text-decoration: underline !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 3px !important;
    transform: translateY(-1px);
}

@media (max-width: 1099px) {
    #fe-site-footer .fe-footer-sitemap__inner {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 639px) {
    #fe-site-footer .fe-footer-fff {
        justify-self: center;
    }

    #fe-site-footer .fe-footer-sitemap__inner {
        grid-template-columns: 1fr;
    }
}


/* ==========================================================
   24. VERSION 1.8.3 — FINITIONS DE LA PAGE D’ACCUEIL
   ========================================================== */

/* Bandeau légèrement plus haut : le texte respire verticalement. */
#fe-site-footer .fe-footer-baseline {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
}

#fe-site-footer .fe-footer-baseline > span {
    padding-top: 6px;
    padding-bottom: 6px;
    line-height: 24px;
}

/* Rétablissement du filet entre la première et la deuxième ligne
   de chacun des quatre blocs orange et gris. */
body.home .fe-service-card__links li:first-child > a {
    border-bottom: 1px solid rgba(255, 255, 255, 0.92) !important;
}

/* LinkedIn demeure rigoureusement centré dans la page.
   La mention complète et le logo FFF sont groupés, sur une seule ligne,
   et justifiés à droite. */
#fe-site-footer .fe-footer-credibility__inner {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    box-sizing: border-box;
    width: calc(100% - 40px);
    max-width: 1280px;
}

#fe-site-footer .fe-footer-credibility__spacer {
    display: none;
}

#fe-site-footer .fe-footer-linkedin {
    position: absolute;
    left: 50%;
    justify-self: auto;
    margin: 0;
    transform: translateX(-50%);
}

#fe-site-footer .fe-footer-fff {
    display: flex;
    flex: 0 0 auto;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    max-width: none;
    margin-left: auto;
    white-space: nowrap;
}

#fe-site-footer .fe-footer-fff span {
    max-width: none;
    white-space: nowrap;
}

/* Le plan du site et le bandeau juridique forment désormais un seul ensemble
   gris. Le filet blanc remplace l’espace vide et le contenu conserve une
   marge confortable au-dessus du filet. */
#fe-site-footer .fe-footer-sitemap {
    box-sizing: border-box;
    margin: 0 !important;
    padding: 20px 0 22px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.92);
    background: #aaaaaa;
}

#fe-site-footer .fe-footer-sitemap__inner {
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    width: calc(100% - 40px);
    margin: 0 auto !important;
    padding: 0 !important;
}

#fe-site-footer .fe-footer-sitemap__section {
    padding-top: 0;
}

#fe-site-footer .fe-footer-main,
#fe-site-footer .fe-footer-sitemap + .fe-footer-main {
    margin-top: 0 !important;
    border-top: 0;
    background: #aaaaaa;
}

/* Le plan reste sur une seule rangée dès l’affichage tablette/paysage,
   comme sur le site historique. */
@media (min-width: 700px) {
    #fe-site-footer .fe-footer-sitemap__inner {
        grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 900px) {
    #fe-site-footer .fe-footer-credibility__inner {
        width: calc(100% - 24px);
    }

    #fe-site-footer .fe-footer-fff span {
        font-size: 11px;
    }

    #fe-site-footer .fe-footer-fff img {
        max-width: 60px;
        max-height: 40px;
    }
}

@media (max-width: 699px) {
    #fe-site-footer .fe-footer-sitemap__inner {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    #fe-site-footer .fe-footer-credibility__inner {
        display: grid;
        grid-template-columns: 1fr;
        justify-items: center;
    }

    #fe-site-footer .fe-footer-linkedin {
        position: static;
        transform: none;
    }

    #fe-site-footer .fe-footer-fff,
    #fe-site-footer .fe-footer-fff span {
        white-space: normal;
    }

    #fe-site-footer .fe-footer-fff {
        justify-self: center;
        justify-content: center;
        text-align: center;
    }
}

@media (max-width: 439px) {
    #fe-site-footer .fe-footer-sitemap__inner {
        grid-template-columns: 1fr !important;
    }
}


/* ==========================================================
   25. VERSION 1.8.4 — ÉTATS DE SURVOL DU BAS DE PAGE
   ========================================================== */

/* Les liens restent au-dessus de toute couche décorative éventuelle. */
#fe-site-footer .fe-footer-main__inner,
#fe-site-footer .fe-footer-legal,
#fe-site-footer .fe-footer-actions {
    position: relative;
    z-index: 2;
}

#fe-site-footer .fe-footer-main a {
    position: relative;
    z-index: 3;
    pointer-events: auto;
    cursor: pointer;
    transition:
        background-color 160ms ease,
        border-color 160ms ease,
        color 160ms ease,
        transform 160ms ease,
        box-shadow 160ms ease !important;
}

/* Mentions légales, CGU et CGV :
   au repos, lien simple ; au survol, véritable petit bouton blanc. */
#fe-site-footer .fe-footer-legal a,
#fe-site-footer .fe-footer-legal a:visited {
    display: inline-flex !important;
    align-items: center;
    min-height: 34px;
    padding: 6px 10px !important;
    border: 1px solid transparent !important;
    border-radius: 0;
    box-sizing: border-box;
    background: transparent !important;
    color: #ffffff !important;
    text-decoration: none !important;
}

#fe-site-footer .fe-footer-legal a:hover,
#fe-site-footer .fe-footer-legal a:focus,
#fe-site-footer .fe-footer-legal a:focus-visible {
    border-color: #ffffff !important;
    background: #ffffff !important;
    color: var(--fe-interface-blue) !important;
    box-shadow: inset 0 -2px 0 var(--fe-interface-blue) !important;
    text-decoration: underline !important;
    text-decoration-color: var(--fe-interface-blue) !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 3px !important;
    transform: translateY(-1px);
}

/* Les deux CTA restent identiques et bleus au repos.
   Le passage à l’orange rend l’état survolé immédiatement visible. */
#fe-site-footer .fe-footer-actions .fe-footer-cta,
#fe-site-footer .fe-footer-actions .fe-footer-cta:visited {
    border: 1px solid var(--fe-interface-blue) !important;
    background: var(--fe-interface-blue) !important;
    color: #ffffff !important;
    box-shadow: none !important;
    text-decoration: none !important;
}

#fe-site-footer .fe-footer-actions .fe-footer-cta:hover,
#fe-site-footer .fe-footer-actions .fe-footer-cta:focus,
#fe-site-footer .fe-footer-actions .fe-footer-cta:focus-visible {
    border-color: var(--fe-orange) !important;
    background: var(--fe-orange) !important;
    color: #ffffff !important;
    box-shadow: inset 0 -2px 0 #ffffff !important;
    text-decoration: underline !important;
    text-decoration-color: #ffffff !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 3px !important;
    transform: translateY(-2px);
}

/* État actif au clavier ou pendant le clic. */
#fe-site-footer .fe-footer-main a:active {
    transform: translateY(0) !important;
    box-shadow: inset 0 2px 3px rgba(0, 0, 0, 0.18) !important;
}


/* ==========================================================
   26. VERSION 1.8.5 — LIENS DU BLOC PASCAL H. LAMBERT
   ========================================================== */

/* Il s’agit bien des cinq liens placés dans le bloc avec la photo de Pascal,
   sous le texte « Franchise Expert accompagne les réseaux... ». */
body.home .fe-home-intro__links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}

body.home .fe-home-intro__links-label {
    margin-right: 2px;
    color: var(--fe-dark-blue);
    font-weight: 700;
}

/* Au repos, les liens conservent l’aspect éditorial bleu du site historique. */
body.home .fe-home-intro__links > a,
body.home .fe-home-intro__links > a:visited {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 4px 8px !important;
    border: 1px solid transparent;
    box-sizing: border-box;
    background: transparent;
    color: var(--fe-interface-blue) !important;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none !important;
    transition:
        background-color 160ms ease,
        border-color 160ms ease,
        color 160ms ease,
        transform 160ms ease;
}

/* Au survol, chaque lien prend réellement la forme d’un bouton bleu,
   avec texte blanc et soulignement. */
body.home .fe-home-intro__links > a:hover,
body.home .fe-home-intro__links > a:focus,
body.home .fe-home-intro__links > a:focus-visible {
    border-color: var(--fe-interface-blue);
    background: var(--fe-interface-blue);
    color: var(--fe-white) !important;
    text-decoration: underline !important;
    text-decoration-color: var(--fe-white) !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 3px !important;
    transform: translateY(-1px);
}

/* Préparation de l’état actif pour les pages correspondantes. */
body.home .fe-home-intro__links > a[aria-current="page"],
body.home .fe-home-intro__links > a.is-current {
    border-color: var(--fe-interface-blue);
    background: var(--fe-interface-blue);
    color: var(--fe-white) !important;
    text-decoration: underline !important;
    text-underline-offset: 3px !important;
}

body.home .fe-home-intro__links > a:active {
    transform: translateY(0);
}


/* ==========================================================
   27. VERSION 1.8.6 — RETRAIT DU TITRE DU BLOC PASCAL
   ========================================================== */

/* La règle historique utilisait un padding gauche nul sur ordinateur.
   Le titre bleu touchait donc le bord gauche de son propre cadre. */
body.home .fe-home-intro__body > h3 {
    box-sizing: border-box;
    width: 100%;
    padding: 15px 20px !important;
}


/* ==========================================================
   28. VERSION 2.0 — VRAIS MODÈLES WORDPRESS
   ========================================================== */

.fe-page-template {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    background: var(--fe-white);
}

.fe-home-page-template__article {
    width: calc(100% - 40px);
    max-width: 940px;
    margin: 0 auto;
    padding: 0;
}

.fe-home-page-template__title {
    width: 100%;
    margin: 20px 0;
    padding: 0;
}

.fe-home-page-template__title h1 {
    width: 100%;
    margin: 0;
    padding: 9px 40px;
    border: 0;
    box-sizing: border-box;
    background: var(--fe-light-grey);
    color: var(--fe-interface-blue);
    font-family: "Quattrocento Sans", Arial, sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.35;
    text-align: left;
    text-transform: uppercase;
}

.fe-home-page-template .entry-content {
    width: 100%;
    margin: 0;
    padding: 0;
}

/* Page de rubrique : onglets dans l’en-tête, puis fil d’Ariane,
   image d’univers, menu latéral et contenu. */
.fe-section-page-template__inner {
    width: calc(100% - 40px);
    max-width: 940px;
    margin: 0 auto;
    padding: 0 0 36px;
}

.fe-breadcrumb {
    margin: 12px 0 10px;
    padding: 0;
    color: #6c7074;
    font-size: 12px;
    line-height: 1.4;
}

.fe-breadcrumb ol {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.fe-breadcrumb li {
    display: inline-flex;
    align-items: center;
    margin: 0;
    padding: 0;
}

.fe-breadcrumb li:not(:last-child)::after {
    content: "›";
    margin: 0 7px;
    color: #9b9da0;
}

.fe-breadcrumb a {
    color: var(--fe-interface-blue) !important;
    text-decoration: none;
}

.fe-breadcrumb a:hover,
.fe-breadcrumb a:focus-visible {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.fe-breadcrumb [aria-current="page"] {
    color: #55595d;
    font-weight: 700;
}

.fe-section-hero {
    width: 100%;
    margin: 0 0 20px;
    padding: 0;
    overflow: hidden;
    background: var(--fe-light-grey);
    line-height: 0;
}

.fe-section-hero img {
    display: block;
    width: 100%;
    height: clamp(180px, 27vw, 300px);
    object-fit: cover;
    object-position: center;
}

.fe-section-page-template__layout {
    display: grid;
    grid-template-columns: 250px minmax(0, 1fr);
    gap: 30px;
    align-items: start;
}

.fe-section-page-template__sidebar {
    min-width: 0;
}

.fe-section-side-nav {
    --fe-side-menu-color: var(--fe-interface-blue);
    width: 100%;
}

body.fe-section-orange .fe-section-side-nav {
    --fe-side-menu-color: var(--fe-orange);
}

body.fe-section-grey .fe-section-side-nav {
    --fe-side-menu-color: var(--fe-medium-grey);
}

.fe-section-side-nav__title {
    margin: 0 0 1px;
    padding: 0;
    background: var(--fe-side-menu-color);
    font-family: "Raleway", Arial, sans-serif;
    font-size: 14px;
    line-height: 1.25;
    text-transform: uppercase;
}

.fe-section-side-nav__title a {
    display: block;
    width: 100%;
    padding: 14px 16px;
    box-sizing: border-box;
    color: var(--fe-white) !important;
    text-decoration: none !important;
}

.fe-section-side-nav__title:hover,
.fe-section-side-nav__title:focus-within,
.fe-section-side-nav__title.is-current {
    background: var(--fe-light-grey);
}

.fe-section-side-nav__title:hover a,
.fe-section-side-nav__title:focus-within a,
.fe-section-side-nav__title.is-current a,
.fe-section-side-nav__title a[aria-current="page"] {
    color: var(--fe-side-menu-color) !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

.fe-section-page-template__article {
    min-width: 0;
    margin: 0;
    padding: 0;
}

.fe-section-page-template__header {
    margin: 0 0 18px;
    padding: 0;
}

.fe-section-page-template__kicker {
    margin: 0 0 6px;
    color: var(--fe-side-menu-color);
    font-family: "Raleway", Arial, sans-serif;
    font-size: 17px;
    font-weight: 400;
    line-height: 1.3;
}

.fe-section-page-template__header h1 {
    margin: 0;
    padding: 0 0 10px;
    border-bottom: 1px solid var(--fe-side-menu-color);
    color: #3d4043;
    font-family: "Raleway", Arial, sans-serif;
    font-size: 30px;
    font-weight: 400;
    line-height: 1.15;
}

.fe-section-page-template__article .entry-content {
    margin: 0;
    padding: 0;
    color: var(--fe-text);
    text-align: justify;
}

.fe-section-page-template__article .entry-content > :first-child {
    margin-top: 0;
}

@media (max-width: 767px) {
    .fe-home-page-template__article,
    .fe-section-page-template__inner {
        width: calc(100% - 28px);
    }

    .fe-home-page-template__title h1 {
        padding-right: 18px;
        padding-left: 18px;
    }

    .fe-section-page-template__layout {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .fe-section-page-template__sidebar {
        order: 2;
    }

    .fe-section-page-template__article {
        order: 1;
    }

    .fe-section-hero img {
        height: auto;
        aspect-ratio: 16 / 7;
    }
}


/* ==========================================================
   29. VERSION 2.1 — MENU DROIT DE NIVEAU 3 ET COOKIES
   ========================================================== */

/* Contenu à gauche, onglets de troisième niveau à droite. */
.fe-section-page-template__layout {
    grid-template-columns: minmax(0, 1fr) 250px !important;
}

.fe-section-page-template__layout.has-no-sidebar {
    grid-template-columns: minmax(0, 1fr) !important;
}

.fe-section-page-template__article {
    grid-column: 1;
}

.fe-section-page-template__sidebar {
    grid-column: 2;
}

/* Onglets latéraux proches du rendu historique :
   fond blanc, texte éditorial, filets séparateurs. */
.fe-section-page-template .fe-section-side-nav {
    width: 100%;
    background: transparent;
}

.fe-section-page-template .fe-section-side-nav .fe-side-menu {
    margin: 0;
    padding: 0;
    border-top: 1px solid #828588;
    list-style: none;
}

.fe-section-page-template .fe-section-side-nav .fe-side-menu > li {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-bottom: 1px solid #828588 !important;
    background: transparent !important;
    list-style: none !important;
}

.fe-section-page-template .fe-section-side-nav .fe-side-menu > li > a,
.fe-section-page-template .fe-section-side-nav .fe-side-menu > li > a:visited {
    display: block;
    width: 100%;
    padding: 11px 12px;
    box-sizing: border-box;
    background: transparent !important;
    color: var(--fe-text) !important;
    font-family: "Quattrocento Sans", Arial, sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.35;
    text-decoration: none !important;
    text-transform: uppercase;
    transition: background-color 150ms ease, color 150ms ease;
}

.fe-section-page-template .fe-section-side-nav .fe-side-menu > li:hover,
.fe-section-page-template .fe-section-side-nav .fe-side-menu > li:focus-within {
    background: var(--fe-interface-blue) !important;
}

.fe-section-page-template .fe-section-side-nav .fe-side-menu > li:hover > a,
.fe-section-page-template .fe-section-side-nav .fe-side-menu > li:focus-within > a {
    background: var(--fe-interface-blue) !important;
    color: var(--fe-white) !important;
    text-decoration: underline !important;
    text-decoration-color: var(--fe-white) !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 3px !important;
}

.fe-section-page-template .fe-section-side-nav .fe-side-menu > li.is-current,
.fe-section-page-template .fe-section-side-nav .fe-side-menu > li:has(> a[aria-current="page"]) {
    background: var(--fe-interface-blue) !important;
}

.fe-section-page-template .fe-section-side-nav .fe-side-menu > li.is-current > a,
.fe-section-page-template .fe-section-side-nav .fe-side-menu > li > a[aria-current="page"] {
    background: var(--fe-interface-blue) !important;
    color: var(--fe-white) !important;
    font-weight: 700;
    text-decoration: none !important;
}

/* Tableau Cookies. */
.fe-cookie-table-wrap {
    width: 100%;
    overflow-x: auto;
}

.fe-cookie-inventory table {
    width: 100%;
    min-width: 760px;
    border-collapse: collapse;
}

.fe-cookie-inventory th,
.fe-cookie-inventory td {
    padding: 10px;
    border: 1px solid #c7c8ca;
    vertical-align: top;
    text-align: left;
}

.fe-cookie-inventory th {
    background: var(--fe-interface-blue);
    color: var(--fe-white);
    font-family: "Raleway", Arial, sans-serif;
}

/* Bouton de la page Préférences Cookies. */
.fe-cookie-open-button {
    min-height: 42px;
    padding: 9px 16px;
    border: 1px solid var(--fe-interface-blue);
    background: var(--fe-interface-blue);
    color: var(--fe-white);
    font-family: "Raleway", Arial, sans-serif;
    font-weight: 700;
    text-transform: uppercase;
    cursor: pointer;
}

.fe-cookie-open-button:hover,
.fe-cookie-open-button:focus-visible {
    background: var(--fe-white);
    color: var(--fe-interface-blue);
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Bannière et panneau de personnalisation. */
.fe-cookie-layer[hidden],
.fe-cookie-banner[hidden],
.fe-cookie-modal[hidden] {
    display: none !important;
}

.fe-cookie-layer {
    position: fixed;
    inset: 0;
    z-index: 999999;
    pointer-events: none;
}

.fe-cookie-banner {
    position: absolute;
    right: 20px;
    bottom: 20px;
    left: 20px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 24px;
    align-items: center;
    max-width: 1180px;
    margin: 0 auto;
    padding: 22px;
    border-top: 4px solid var(--fe-interface-blue);
    box-sizing: border-box;
    background: var(--fe-white);
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.24);
    pointer-events: auto;
}

.fe-cookie-banner h2,
.fe-cookie-modal h2,
.fe-cookie-modal h3 {
    font-family: "Raleway", Arial, sans-serif;
}

.fe-cookie-banner h2 {
    margin: 0 0 8px;
    color: var(--fe-interface-blue);
    font-size: 21px;
}

.fe-cookie-banner p {
    margin: 0 0 6px;
}

.fe-cookie-banner__actions,
.fe-cookie-modal__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}

.fe-cookie-banner button,
.fe-cookie-modal__actions button {
    min-height: 42px;
    padding: 9px 14px;
    border: 1px solid var(--fe-interface-blue);
    background: var(--fe-interface-blue);
    color: var(--fe-white);
    font-weight: 700;
    cursor: pointer;
}

.fe-cookie-banner button:hover,
.fe-cookie-banner button:focus-visible,
.fe-cookie-modal__actions button:hover,
.fe-cookie-modal__actions button:focus-visible {
    background: var(--fe-white);
    color: var(--fe-interface-blue);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.fe-cookie-modal {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 20px;
    background: rgba(0, 0, 0, 0.52);
    pointer-events: auto;
}

.fe-cookie-modal__panel {
    position: relative;
    width: min(720px, 100%);
    max-height: calc(100vh - 40px);
    overflow-y: auto;
    padding: 28px;
    box-sizing: border-box;
    background: var(--fe-white);
    box-shadow: 0 12px 36px rgba(0, 0, 0, 0.32);
}

.fe-cookie-modal__close {
    position: absolute;
    top: 8px;
    right: 10px;
    border: 0;
    background: transparent;
    color: #444;
    font-size: 30px;
    line-height: 1;
    cursor: pointer;
}

.fe-cookie-category {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 20px;
    align-items: center;
    padding: 16px 0;
    border-top: 1px solid #d2d3d4;
}

.fe-cookie-category h3 {
    margin: 0 0 5px;
    color: var(--fe-interface-blue);
    font-size: 16px;
}

.fe-cookie-category p {
    margin: 0;
}

.fe-cookie-category input {
    width: 24px;
    height: 24px;
    accent-color: var(--fe-interface-blue);
}

.fe-cookie-media-placeholder {
    display: grid;
    place-items: center;
    min-height: 180px;
    padding: 20px;
    box-sizing: border-box;
    background: #ececec;
    color: var(--fe-text);
    text-align: center;
}

.fe-cookie-media-placeholder button {
    min-height: 38px;
    padding: 8px 13px;
    border: 1px solid var(--fe-interface-blue);
    background: var(--fe-interface-blue);
    color: var(--fe-white);
    cursor: pointer;
}

@media (max-width: 767px) {
    .fe-section-page-template__layout,
    .fe-section-page-template__layout.has-no-sidebar {
        grid-template-columns: 1fr !important;
    }

    .fe-section-page-template__article,
    .fe-section-page-template__sidebar {
        grid-column: 1;
    }

    .fe-section-page-template__article {
        order: 1;
    }

    .fe-section-page-template__sidebar {
        order: 2;
    }

    .fe-cookie-banner {
        grid-template-columns: 1fr;
        gap: 15px;
        right: 10px;
        bottom: 10px;
        left: 10px;
    }

    .fe-cookie-banner__actions,
    .fe-cookie-modal__actions {
        display: grid;
        grid-template-columns: 1fr;
    }
}


/* ==========================================================
   30. VERSION 2.2 — HIÉRARCHIE DES TITRES ET SERVICES COOKIES
   ========================================================== */

/* Onglets de niveau 2 au-dessus de l’image :
   casse originale, fond gris, survol bleu souligné, actif bleu non souligné. */
.fe-section-tabs {
    background: #e8e8e8 !important;
}

.fe-section-tabs__list a,
.fe-section-tabs__list a:visited {
    background: transparent !important;
    color: #3f4347 !important;
    font-family: "Quattrocento Sans", Arial, sans-serif !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    text-transform: none !important;
    text-decoration: none !important;
}

.fe-section-tabs__list li:not(:last-child) {
    border-right: 1px solid #d0d1d2;
}

.fe-section-tabs__list li:not(.is-current) > a:hover,
.fe-section-tabs__list li:not(.is-current) > a:focus-visible {
    background: var(--fe-interface-blue) !important;
    color: var(--fe-white) !important;
    text-decoration: underline !important;
    text-decoration-color: var(--fe-white) !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 3px !important;
}

.fe-section-tabs__list .is-current > a,
.fe-section-tabs__list a[aria-current="page"] {
    background: var(--fe-interface-blue) !important;
    color: var(--fe-white) !important;
    font-weight: 700 !important;
    text-decoration: none !important;
}

/* Sous l’image : titre de niveau 2 en bleu sur fond gris. */
.fe-section-page-template__header {
    margin-bottom: 20px;
}

.fe-section-page-template__level-two {
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    padding: 10px 14px;
    background: #e8e8e8;
    color: var(--fe-interface-blue);
    font-family: "Raleway", Arial, sans-serif;
    font-size: 18px;
    font-weight: 400;
    line-height: 1.25;
    text-transform: uppercase;
}

/* Titre de niveau 3 en bleu, encadré par des filets. */
.fe-section-page-template__header h1.fe-section-page-template__level-three {
    box-sizing: border-box;
    width: 100%;
    margin: 8px 0 0;
    padding: 10px 2px;
    border-top: 1px solid var(--fe-interface-blue);
    border-bottom: 1px solid var(--fe-interface-blue);
    color: var(--fe-interface-blue);
    font-family: "Raleway", Arial, sans-serif;
    font-size: 25px;
    font-weight: 400;
    line-height: 1.2;
    text-transform: uppercase;
}

/* Le menu de niveau 3 reste à droite et conserve ses états demandés. */
.fe-section-page-template .fe-section-side-nav .fe-side-menu > li > a {
    color: var(--fe-text) !important;
}

.fe-section-page-template .fe-section-side-nav .fe-side-menu > li:hover > a,
.fe-section-page-template .fe-section-side-nav .fe-side-menu > li:focus-within > a {
    color: var(--fe-white) !important;
    text-decoration: underline !important;
}

.fe-section-page-template .fe-section-side-nav .fe-side-menu > li.is-current > a,
.fe-section-page-template .fe-section-side-nav .fe-side-menu > li > a[aria-current="page"] {
    color: var(--fe-white) !important;
    text-decoration: none !important;
}

/* Métadonnée explicative de chaque service dans le panneau Cookies. */
.fe-cookie-service-meta {
    margin-top: 5px;
    color: #6b6f73;
    font-size: 12px;
    font-style: italic;
}

.fe-cookie-category code {
    padding: 1px 4px;
    background: #eeeeee;
    color: #333333;
    font-size: 12px;
}

.fe-cookie-inventory table {
    min-width: 1080px;
}

.fe-cookie-inventory th:first-child,
.fe-cookie-inventory td:first-child {
    font-weight: 700;
}


/* ==========================================================
   31. VERSION 2.3 — CALIBRAGE SUR LE STYLE HISTORIQUE
   ========================================================== */

.fe-section-page-template {
    font-family: "Quattrocento Sans", Arial, sans-serif;
    font-size: 15px;
}

/* Onglets N2 : petits blocs gris sans bandeau continu ni filet inférieur. */
.fe-section-tabs {
    width: calc(100% - 40px);
    max-width: 940px;
    margin: 0 auto !important;
    padding: 12px 0 !important;
    border: 0 !important;
    background: transparent !important;
}

.fe-section-tabs__list {
    justify-content: flex-start !important;
    align-items: flex-start !important;
    gap: 0 !important;
    background: transparent !important;
}

.fe-section-tabs__list li,
.fe-section-tabs__list li:not(:last-child) {
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
}

.fe-section-tabs__list a,
.fe-section-tabs__list a:visited {
    min-height: 0 !important;
    padding: 6px !important;
    background: #ececec !important;
    color: #222222 !important;
    font-family: "Raleway", Arial, sans-serif !important;
    font-size: 11px !important;
    font-weight: 400 !important;
    line-height: 16px !important;
    text-transform: none !important;
    text-decoration: none !important;
}

.fe-section-tabs__list li:not(.is-current) > a:hover,
.fe-section-tabs__list li:not(.is-current) > a:focus-visible {
    background: #1b5aa4 !important;
    color: #ffffff !important;
    text-decoration: underline !important;
    text-decoration-color: #ffffff !important;
    text-underline-offset: 3px !important;
}

.fe-section-tabs__list .is-current > a,
.fe-section-tabs__list a[aria-current="page"] {
    background: #1b5aa4 !important;
    color: #ffffff !important;
    font-weight: 400 !important;
    text-decoration: none !important;
}

/* Fil d'Ariane sans bandeau gris intermédiaire. */
.fe-breadcrumb {
    margin: 8px 0 10px !important;
    padding: 0 !important;
    background: transparent !important;
}

/* Visuel d'univers : cartouche 174 px, image et bande grise inférieure. */
.fe-section-hero {
    width: 100%;
    margin: 0 0 10px !important;
    padding: 0;
    overflow: hidden;
    background: #ececec;
}

.fe-section-hero__row {
    display: grid;
    grid-template-columns: 174px minmax(0, 1fr);
    align-items: stretch;
    background: #ececec;
}

.fe-section-hero__baseline {
    align-self: start;
    box-sizing: border-box;
    margin: 0;
    padding: 15px 12px;
    background: #1b5aa4;
    color: #ffffff;
    font-family: "Quattrocento Sans", Arial, sans-serif;
    font-size: 17px;
    font-weight: 400;
    line-height: 1.12;
    text-align: left;
}

.fe-section-hero__media {
    min-width: 0;
    line-height: 0;
    text-align: right;
}

.fe-section-hero__media img {
    display: block;
    width: 100%;
    height: auto;
    min-height: 220px;
    max-height: 330px;
    object-fit: cover;
    object-position: center;
}

.fe-section-hero__underbar {
    width: 100%;
    height: 14px;
    background: #ececec;
}

/* Contenu à gauche et navigation N3 à droite, comme l'original. */
.fe-section-page-template__layout {
    grid-template-columns: minmax(0, 1fr) 230px !important;
    gap: 10px !important;
}

/* Titre N2 : 16 px, bleu, capitales, fond gris, hauteur 40 px. */
.fe-section-page-template__level-two {
    box-sizing: border-box;
    min-height: 40px;
    margin: 0 0 10px;
    padding: 0 40px;
    background: #ececec;
    color: #1b5aa4;
    font-family: "Raleway", Arial, sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 40px;
    text-align: left;
    text-transform: uppercase;
}

/* Titre N3 : 20 px, bleu, entre deux filets. */
.fe-section-page-template__header h1.fe-section-page-template__level-three {
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    padding: 10px 0;
    border-top: 1px solid #1b5aa4;
    border-bottom: 1px solid #1b5aa4;
    color: #1b5aa4;
    font-family: "Raleway", Arial, sans-serif;
    font-size: 20px;
    font-weight: 400;
    line-height: 1.2;
    text-align: left;
    text-transform: uppercase;
}

/* Corps historique : 15 px, interligne 22 px. */
.fe-section-page-template__article .entry-content {
    margin: 20px 0;
    color: #222222;
    font-family: "Quattrocento Sans", Arial, sans-serif;
    font-size: 15px;
    line-height: 22px;
    text-align: justify;
}

.fe-section-page-template__article .entry-content p {
    margin: 0;
    padding: 10px 20px 10px 0;
    font-size: 15px;
    line-height: 22px;
}

.fe-section-page-template__article .entry-content ul,
.fe-section-page-template__article .entry-content ol {
    padding: 10px 20px 10px 0;
    line-height: 22px;
}

/* Menu N3 : largeur 230 px, 13 px, interligne 20 px, filets #CCC. */
.fe-section-page-template .fe-section-side-nav {
    width: 230px;
    margin-top: 20px;
}

.fe-section-page-template .fe-section-side-nav .fe-side-menu {
    border-top: 0 !important;
}

.fe-section-page-template .fe-section-side-nav .fe-side-menu > li,
.fe-section-page-template .fe-section-side-nav .fe-side-menu > li:first-child {
    padding: 0 !important;
    border-top: 0 !important;
    border-bottom: 1px solid #cccccc !important;
}

.fe-section-page-template .fe-section-side-nav .fe-side-menu > li > a,
.fe-section-page-template .fe-section-side-nav .fe-side-menu > li > a:visited {
    padding: 8px 0 !important;
    color: #222222 !important;
    font-family: "Quattrocento Sans", Arial, sans-serif;
    font-size: 13px !important;
    font-weight: 400;
    line-height: 20px !important;
    text-transform: uppercase;
}

.fe-section-page-template .fe-section-side-nav .fe-side-menu > li:hover > a,
.fe-section-page-template .fe-section-side-nav .fe-side-menu > li:focus-within > a {
    padding-right: 10px !important;
    padding-left: 10px !important;
    color: #ffffff !important;
    text-decoration: underline !important;
}

.fe-section-page-template .fe-section-side-nav .fe-side-menu > li.is-current > a,
.fe-section-page-template .fe-section-side-nav .fe-side-menu > li > a[aria-current="page"] {
    padding-right: 10px !important;
    padding-left: 10px !important;
    color: #ffffff !important;
    font-weight: 700;
    text-decoration: none !important;
}

@media (max-width: 767px) {
    .fe-section-tabs {
        width: calc(100% - 28px);
    }

    .fe-section-hero__row {
        grid-template-columns: 1fr;
    }

    .fe-section-hero__baseline {
        width: 100%;
    }

    .fe-section-hero__media img {
        min-height: 0;
        max-height: none;
    }

    .fe-section-page-template__layout,
    .fe-section-page-template__layout.has-no-sidebar {
        grid-template-columns: 1fr !important;
    }

    .fe-section-page-template__level-two {
        padding: 8px 18px;
        line-height: 24px;
        text-align: center;
    }

    .fe-section-page-template__header h1.fe-section-page-template__level-three {
        padding-right: 12px;
        padding-left: 12px;
        text-align: center;
    }

    .fe-section-page-template .fe-section-side-nav {
        width: 100%;
    }

    .fe-section-page-template__article .entry-content p,
    .fe-section-page-template__article .entry-content ul,
    .fe-section-page-template__article .entry-content ol {
        padding-right: 0;
    }
}


/* ==========================================================
   32. VERSION 2.3.1 — ONGLETS NIVEAU 2 SUR UNE SEULE LIGNE
   ========================================================== */

@media (min-width: 768px) {
    .fe-section-tabs__list {
        display: flex !important;
        flex-wrap: nowrap !important;
        width: 100%;
        overflow-x: auto;
        overflow-y: hidden;
        scrollbar-width: thin;
    }

    .fe-section-tabs__list > li {
        flex: 0 0 auto;
        white-space: nowrap;
    }

    .fe-section-tabs__list > li > a {
        padding-right: 5px !important;
        padding-left: 5px !important;
        white-space: nowrap !important;
    }
}


/* ==========================================================
   33. VERSION 2.3.2 — CONTRAT PROTÉGÉ : NIVEAU 1 ACTIF
   ========================================================== */

/*
 * CONTRAT NR-MENU-001
 * La rubrique métier de niveau 1 courante reste grisée, y compris lorsqu'une
 * page de niveau 2 ou 3 est affichée après redirection de la page racine.
 * Ce bloc doit rester le dernier bloc visant cet état dans la feuille.
 */
.fe-site-header .fe-primary-navigation .fe-primary-menu > li.is-current-section > a,
.fe-site-header .fe-primary-navigation .fe-primary-menu > li.is-current-section:hover > a,
.fe-site-header .fe-primary-navigation .fe-primary-menu > li.is-current-section:focus-within > a,
.fe-site-header .fe-primary-navigation .fe-primary-menu > li.fe-current-section > a,
.fe-site-header .fe-primary-navigation .fe-primary-menu > li.fe-current-section:hover > a,
.fe-site-header .fe-primary-navigation .fe-primary-menu > li.fe-current-section:focus-within > a {
    background-color: #ececec !important;
    color: #1b5aa4 !important;
    text-decoration: none !important;
}


/* ==========================================================
   34. VERSION 2.3.3 — CONTRATS EN-TÊTE ET CARTES D’ACCUEIL
   ========================================================== */

/*
 * CONTRAT NR-HEADER-001
 * Le centre du bouton « Recevoir la plaquette » reste aligné sur le centre
 * des libellés Accueil + six rubriques. Le bouton « Nous contacter » reste
 * exactement 15 px au-dessus : 41 + 52 + 15 = 108.
 */
@media (min-width: 960px) {
    .fe-site-header .fe-header-actions {
        position: relative;
        display: block;
        min-height: 162px;
        padding-top: 0 !important;
    }

    .fe-site-header .fe-header-actions .fe-header-action:first-child {
        position: absolute;
        top: 41px !important;
        right: 0;
        min-height: 52px;
    }

    .fe-site-header .fe-header-actions .fe-header-action:last-child {
        position: absolute;
        top: 108px !important;
        right: 0;
        min-height: 54px;
    }
}

/*
 * CONTRATS NR-HOME-001 et NR-HOME-002
 * Les libellés et destinations sont produits côté serveur depuis WordPress.
 * Aucune règle visuelle des quatre cartes n’est modifiée dans cette version.
 */


/* ==========================================================
   35. VERSION 2.3.4 — BOUTONS D’ACCÈS RAPIDE ET BLOC ORANGE 1
   ========================================================== */

/*
 * CONTRAT NR-HEADER-002
 * Les deux boutons en haut à droite gagnent en présence visuelle sans
 * modifier leur largeur, leur alignement, ni l’écart vertical validé.
 */
.fe-site-header .fe-header-actions .fe-header-action a,
.fe-site-header .fe-header-actions .fe-header-action .wp-block-button__link {
    font-size: 16px !important;
    font-weight: 600 !important;
    letter-spacing: 0.01em;
}

/*
 * CONTRAT NR-HOME-004
 * Le titre du premier bloc orange correspond à la rubrique de niveau 1
 * « Devenir franchiseur ». La première ligne intérieure reste alimentée par
 * la page de niveau 2 actuelle.
 *
 * Aucune retouche purement CSS n’est nécessaire sur la carte elle-même ;
 * la correction fonctionnelle est portée côté PHP.
 */


/* ==========================================================
   36. VERSION 2.3.5 — CADRE « BIENVENUE AUX FRANCHISEURS »
   ========================================================== */

/*
 * CONTRAT NR-HOME-005
 * Dans le cadre « Bienvenue aux franchiseurs », on conserve le titre de cadre
 * à 18 px et on augmente uniquement les quatre intertitres métier de 14 px à
 * 16 px, sans modifier le corps des paragraphes.
 */
body.home .fe-home-content-legacy > h4 {
    font-size: 18px !important;
}

body.home .fe-home-content-legacy .left strong,
body.home .fe-home-content-legacy .right strong {
    font-size: 16px !important;
    line-height: 1.35;
}


/* ==========================================================
   37. VERSION 2.3.6 — RÉALIGNEMENT DU BAS DE PAGE
   ========================================================== */

/*
 * CONTRAT NR-FOOTER-001
 * 1) Suppression de la bande grise plein écran visible au-dessus de LinkedIn
 *    en annulant la marge haute résiduelle du footer.
 * 2) Réalignement du bas de page sur la même largeur de travail que le
 *    contenu principal de l’accueil afin d’éviter l’impression de décalage à
 *    partir des blocs orange.
 */
#fe-site-footer {
    margin-top: 0 !important;
}

#fe-site-footer .fe-footer-credibility {
    margin-top: 0 !important;
    border-top: 0;
    background: #ffffff;
}

#fe-site-footer .fe-footer-credibility__inner,
#fe-site-footer .fe-footer-baseline > span,
#fe-site-footer .fe-footer-sitemap__inner,
#fe-site-footer .fe-footer-main__inner {
    max-width: 940px !important;
}

#fe-site-footer .fe-footer-sitemap__inner,
#fe-site-footer .fe-footer-main__inner {
    box-sizing: border-box;
    width: calc(100% - 40px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}


/* ==========================================================
   38. VERSION 2.3.7 — CORRECTION RÉELLE DE L’AXE DE L’ACCUEIL
   ========================================================== */

/*
 * CONTRAT NR-HOME-006
 *
 * Cause exacte du décalage :
 * une ancienne règle destinée au conteneur Kadence ajoutait 40 px de largeur
 * et deux marges négatives de 20 px aux trois modules placés après le bandeau
 * d’introduction. Dans le vrai modèle WordPress créé depuis, le conteneur fait
 * déjà 940 px : cette compensation est devenue fausse et décalait tout le
 * contenu de 20 px vers la gauche.
 *
 * Les blocs orange/gris, le bloc Pascal H. Lambert et le cadre
 * « Bienvenue aux franchiseurs » reprennent donc strictement la largeur et
 * l’axe du bandeau situé au-dessus.
 */
@media (min-width: 768px) {
    body.home .fe-home-page-template__article .fe-home-services,
    body.home .fe-home-page-template__article .fe-home-intro,
    body.home .fe-home-page-template__article .fe-home-content-legacy {
        width: 100% !important;
        max-width: 100% !important;
        margin-right: 0 !important;
        margin-left: 0 !important;
    }
}

/*
 * CONTRAT NR-FOOTER-002
 *
 * La suppression de la bande vide au-dessus de LinkedIn est conservée,
 * mais le rétrécissement général du footer introduit en 2.3.6 est annulé :
 * le plan du site et la ligne de crédibilité retrouvent leur largeur
 * historique indépendante du contenu éditorial.
 */
#fe-site-footer {
    margin-top: 0 !important;
}

#fe-site-footer .fe-footer-credibility {
    margin-top: 0 !important;
    border-top: 0 !important;
    background: #ffffff !important;
}

#fe-site-footer .fe-footer-credibility__inner,
#fe-site-footer .fe-footer-baseline > span,
#fe-site-footer .fe-footer-sitemap__inner {
    max-width: 1280px !important;
}

#fe-site-footer .fe-footer-main__inner {
    max-width: 940px !important;
}


/* ==========================================================
   39. VERSION 2.3.8 — LOGOS VECTORIELS ET FAVICON DE MARQUE
   ========================================================== */

/* CONTRAT NR-BRAND-001 — logo principal vectoriel fourni par l’utilisateur. */
#fe-site-header .fe-header-logo .fe-custom-logo {
    display: block;
    width: 147px;
    max-width: 147px;
    height: auto;
}

/* CONTRAT NR-BRAND-002 — les logos du footer proviennent de l’extension. */
#fe-site-footer .fe-footer-linkedin img {
    display: block;
    width: 30px;
    height: 30px;
    object-fit: contain;
}

#fe-site-footer .fe-footer-fff img {
    display: block;
    width: auto;
    max-width: 78px;
    max-height: 46px;
    object-fit: contain;
}
