/*
Theme Name: CFTC-ONF
Description: Thème personnalisé pour CFTC-ONF
Version: 1.0
*/

/* ══ VARIABLES ══ */
/* Évite de couper un mot juste après une guillemet ouvrante (ex. "test↵") */
body {
    overflow-wrap: break-word;
    word-break: normal;
}
h1, h2, h3, h4, h5, h6,
.entry-title,
.rs-doc-title,
.svc-form-title,
.home-agenda-chip-label,
.ngc-item-title,
.ag-card-title {
    overflow-wrap: break-word;
    word-break: normal;
    hyphens: manual;
}

/* Fil d’Ariane heros (CFTC-ONF → …) — complété par les classes de page (.svc-breadcrumb, .el-breadcrumb, etc.) */
.cftc-hero-breadcrumb {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.4);
}
.cftc-hero-breadcrumb__home {
    color: rgba(255, 255, 255, 0.58) !important;
    text-decoration: none;
}
.cftc-hero-breadcrumb__home:hover {
    color: #fff !important;
}
.cftc-hero-breadcrumb__link {
    color: rgba(255, 255, 255, 0.78);
    text-decoration: none;
}
.cftc-hero-breadcrumb__link:hover {
    color: #fff;
    text-decoration: underline;
}
.cftc-hero-breadcrumb__sep {
    color: rgba(255, 255, 255, 0.45);
    font-weight: 600;
}
/* Alignement vertical homogène (CFTC-ONF › Wiki / segments) */
.cftc-hero-breadcrumb__home,
.cftc-hero-breadcrumb__link,
.cftc-hero-breadcrumb__current,
.cftc-hero-breadcrumb__sep {
    display: inline-flex;
    align-items: center;
    line-height: 1.15;
    vertical-align: middle;
}
.cftc-hero-breadcrumb__current {
    color: var(--teal, #20b29e);
    font-weight: 600;
}

:root {
    --b1: #212E81;
    --b2: #24318A;
    /* Bandeaux héros : préférer #24318A en dur — en mode sombre --b1/--b2 sont réassignés pour le texte */
    --b3: #0F3F93;
    --b4: #114F9F;
    --b5: #2669B2;
    --teal: #20B29E;
    --yellow: #FBBB1D;
    --green: #2D6A4F;
    --white: #FFFFFF;
    --off: #F2F6FB;
    --dark: #0C1529;
    --text: #1A2340;
    --mid: #4A5568;
    --light: #8896A8;
    --border: #C8DAF0;
    /* Note : !important est invalide dans les variables CSS — retiré */
    --global-body-font-family: 'Axiforma', system-ui, sans-serif;
    --global-heading-font-family: 'Zeitung', Georgia, serif;
    --r: 8px;
    --r-lg: 16px;
    --sh: 0 4px 20px rgba(15, 63, 147, .10);
    --surface: #ffffff;
    --surface-alt: #f7faff;
    --mix: #ffffff;
}

/* ══ Thème sombre (global) — bouton compact, icônes SVG ══ */
.cftc-theme-toggle {
    width: 32px;
    height: 32px;
    border-radius: var(--r);
    border: 1px solid rgba(255, 255, 255, .22);
    background: rgba(255, 255, 255, .1);
    color: rgba(255, 255, 255, .92);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background .2s, border-color .2s, transform .15s;
    padding: 0;
    vertical-align: middle;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
}
.cftc-theme-toggle .cftc-theme-icon {
    display: block;
    flex-shrink: 0;
}
/* Clair : lune visible (passer en sombre) ; sombre : soleil visible */
body:not(.dark) .cftc-theme-toggle .cftc-theme-icon--sun {
    display: none !important;
}
body.dark .cftc-theme-toggle .cftc-theme-icon--moon {
    display: none !important;
}
.cftc-theme-toggle {
    position: relative;
}
.cftc-theme-toggle:hover {
    background: rgba(255, 255, 255, .18);
    border-color: rgba(255, 255, 255, .35);
}
.cftc-theme-toggle:focus-visible {
    outline: 2px solid rgba(255, 255, 255, .7);
    outline-offset: 2px;
}
/* Infobulle thème — desktop hover seulement (pas au clic / sticky touch) */
.cftc-theme-toggle::after {
    content: none;
    display: none;
}
@media (hover: hover) and (pointer: fine) {
    .cftc-theme-toggle::after {
        content: attr(data-tip);
        display: block;
        position: absolute;
        top: calc(100% + 8px);
        bottom: auto;
        right: 0;
        left: auto;
        background: var(--surface, #161d2e);
        color: var(--text, #e8edf5);
        border: 1px solid var(--border, rgba(45, 61, 92, 0.85));
        font-size: 12px;
        font-weight: 600;
        padding: 8px 12px;
        border-radius: 8px;
        white-space: nowrap;
        pointer-events: none;
        opacity: 0;
        transform: translateY(-4px);
        transition: opacity .15s, transform .15s;
        z-index: 9999;
        box-shadow: var(--sh, 0 4px 20px rgba(0, 0, 0, .35));
    }
    .cftc-theme-toggle:hover::after {
        opacity: 1;
        transform: translateY(0);
    }
    .cftc-theme-toggle[data-tip=""]::after {
        content: none;
        display: none;
    }
}

body.dark {
    color-scheme: dark;
    --text: #E8EDF5;
    --mid: #a8b4cc;
    --light: #7a889c;
    --border: #2d3d5c;
    --off: #0f1419;
    --dark: #05080f;
    --surface: #161d2e;
    --surface-alt: #1a2438;
    --mix: #1a2230;
    --sh: 0 4px 24px rgba(0, 0, 0, .35);
}

body.dark .topbar {
    background: #0d1430;
}

/* Navbar dark — fond sombre sur grand écran (bulle logo flotte au-dessus) */
body.dark .navbar-custom {
    background: linear-gradient(90deg, #111a34 0%, #1a2850 50%, #111a34 100%);
    box-shadow: 0 4px 24px rgba(0, 0, 0, .35);
    border-top: 1px solid #2d3d5c;
    border-bottom: 1px solid #2d3d5c;
}
/* Navbar dark — fond sombre aussi sur mobile (pas de bande blanche) */
@media (max-width: 900px) {
    body.dark .navbar-custom {
        background: linear-gradient(90deg, #111a34 0%, #1a2850 50%, #111a34 100%) !important;
        box-shadow: 0 4px 20px rgba(0, 0, 0, .35) !important;
        border-top: 1px solid #2d3d5c !important;
        border-bottom: 1px solid #2d3d5c !important;
    }
    body.dark .nav-mobile-toggle {
        background: rgba(255, 255, 255, .1) !important;
        border-color: rgba(255, 255, 255, .22) !important;
    }
    body.dark .nav-mobile-toggle span { background: #fff !important; }
    body.dark .btn-nav { color: #fff !important; }
}
body.dark .footer,
body.dark .site-footer { background: #0d1430 !important; }
/* Dark mode navbar logo — desktop inchangé (bulle SVG) ; lien jamais stylé */
body.dark .nav-bubble .custom-logo-link,
body.dark .nav-bubble a.custom-logo-link {
    background: transparent !important;
    padding: 0 !important;
    box-shadow: none !important;
    border-radius: 0;
    transform: none !important;
    transition: none !important;
}
body.dark .nav-bubble .custom-logo-link img,
body.dark .nav-bubble img.custom-logo {
    transform: none !important;
    filter: none !important;
    vertical-align: middle;
}

body.dark .nav-user-dropdown,
body.dark .nav-search-form,
body.dark .topbar-search-form,
body.dark .topbar-user-menu {
    background: var(--surface) !important;
    border-color: var(--border) !important;
    border-top-color: var(--b3) !important;
}

body.dark .nav-user-dropdown a,
body.dark .topbar-user-menu a {
    color: var(--text) !important;
    border-bottom-color: var(--border) !important;
}

body.dark .nav-user-dropdown a:hover,
body.dark .topbar-user-menu a:hover {
    background: rgba(15, 63, 147, .15) !important;
    color: var(--text) !important;
}

body.dark .nav-search-form input[type="search"],
body.dark .topbar-search-form input[type="search"] {
    color: var(--text) !important;
}

body.dark .nav-search-form input::placeholder,
body.dark .topbar-search-form input::placeholder {
    color: var(--light) !important;
}

body.dark .cftc-theme-toggle {
    border-color: rgba(255, 255, 255, .35);
    background: rgba(255, 255, 255, .12);
    color: rgba(255, 255, 255, .95);
}

body.dark .cftc-theme-toggle:hover {
    background: rgba(255, 255, 255, .2);
}

/* ══ RESET ══ */
*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

/* ══ Focus clavier — halo cohérent (boutons / liens / [role=button]) ══ */
:focus:not(:focus-visible) {
    outline: none;
}

button:focus-visible,
[type="button"]:focus-visible,
[type="submit"]:focus-visible,
[type="reset"]:focus-visible,
[role="button"]:focus-visible,
summary:focus-visible,
a:focus-visible {
    outline: 2px solid var(--yellow, #FBBB1D);
    outline-offset: 2px;
}

/* ══ STICKY FOOTER ══ */
html {
    min-height: 100%;
}

body {
    font-family: var(--global-body-font-family) !important;
    color: var(--text);
    background: var(--off);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    padding-top: 0;
}

/* Le footer ne doit jamais se comprimer dans le flex */
.footer {
    flex-shrink: 0;
    margin-top: auto; /* colle le footer en bas si la page est courte */
}

/* Sticky footer — footer collé en bas */

h1, h2, h3, h4, h5, h6 {
    font-family: var(--global-heading-font-family) !important;
}

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

/* ══ TOP BAR ══ */
.topbar {
    background: var(--b1);
    padding: 7px var(--cftc-nav-pad, 48px);
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 12px;
    overflow: visible; /* infobulle thème */
    position: relative;
    /* Au-dessus du fond navbar quand la bulle logo chevauche la bande (clics liens topbar) */
    z-index: 4;
}

.topbar-left {
    display: flex;
    gap: 20px;
}

.topbar-right {
    display: flex;
    align-items: center;
    gap: 0;
    overflow: visible;
    position: relative;
    z-index: 1;
}

/* Navbar = élément normal du flux. Au scroll haut uniquement → fixed overlay. */
.cftc-header-anchor {
    position: relative;
    width: 100%;
    flex-shrink: 0;
}
.cftc-header-stack {
    position: relative;
    z-index: 200;
    isolation: isolate;
    width: 100%;
    background: var(--b1, #212E81);
    pointer-events: auto;
    --cftc-nav-pad: 48px;
}
body.dark .cftc-header-stack {
    background: #0d1430;
}
/* Réapparition au scroll haut — fondu doux, sans à-coup */
.cftc-header-stack.is-nav-pinned {
    position: fixed;
    left: 0;
    right: 0;
    top: 0;
    z-index: 400;
    animation: cftcNavPinIn 0.42s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes cftcNavPinIn {
    from {
        transform: translate3d(0, -100%, 0);
        opacity: 0;
    }
    to {
        transform: translate3d(0, 0, 0);
        opacity: 1;
    }
}
html.cftc-reduced-motion .cftc-header-stack.is-nav-pinned {
    animation: none;
}
body.admin-bar .cftc-header-stack.is-nav-pinned {
    top: 32px;
}
@media screen and (max-width: 782px) {
    body.admin-bar .cftc-header-stack.is-nav-pinned {
        top: 46px;
    }
}
@media (max-width: 900px) {
    body.admin-bar .cftc-header-stack.is-nav-pinned {
        top: 46px;
    }
    @media screen and (min-width: 783px) {
        body.admin-bar .cftc-header-stack.is-nav-pinned {
            top: 32px;
        }
    }
    .navbar-custom {
        position: relative !important;
        top: auto !important;
    }
}

.topbar a {
    color: rgba(255,255,255,.65);
    font-weight: 500;
    transition: color .2s;
    text-decoration: none;
}

.topbar a:hover {
    color: white;
}

/* ══ NAVBAR ══ */
.navbar-custom {
    background: linear-gradient(90deg, #2B4A9E 0%, #3D5AAF 50%, #2B4A9E 100%);
    padding: 0 var(--cftc-nav-pad, 48px);
    display: flex;
    align-items: stretch;
    position: relative;
    top: auto;
    z-index: 3;
    box-shadow: 0 4px 20px rgba(0, 0, 0, .25);
    min-height: 80px;
    overflow: visible;
    /* Laisser passer les clics vers la topbar sauf sur les zones interactives (logo, menu, outils) */
    pointer-events: none;
}

.navbar-custom .nav-bubble,
.navbar-custom .nav-content-wrapper {
    pointer-events: auto;
}

/* Capsule logo — géométrie figée : losange 280×257 ancré bas/droite, oiseau centré dans la bulle 200×180 */
.nav-bubble {
    position: absolute;
    left: 150px;
    top: -58px;
    width: 200px;
    height: 180px;
    display: flex;
    align-items: center;
    justify-content: center;
    /* Empilement local sous la navbar — pas au-dessus de la topbar comme couche séparée */
    z-index: 1;
    transform: none !important;
    transition: none !important;
    will-change: auto;
}

/* Forme blanche SVG */
.nav-bubble::before {
    content: "";
    position: absolute;
    bottom: 0;
    right: 0;
    display: block;
    width: 280px;
    height: 257px;
    transition: none !important;
    background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzY2IiBoZWlnaHQ9IjM2NiIgdmlld0JveD0iMCAwIDM2NiAzNjYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsdGVyPSJ1cmwoI2ZpbHRlcjBfZF80MjZfMTYyMikiPjxwYXRoIGQ9Ik0xOCAxMzYuMjEyTDE0MC4yMTIgMTMuOTk5OUwzMjIuNzE4IDE5Ni41MDZDMzU2LjQ2NiAyMzAuMjU0IDM1Ni40NjYgMjg0Ljk3IDMyMi43MTggMzE4LjcxOEMyODguOTcgMzUyLjQ2NiAyMzQuMjU0IDM1Mi40NjYgMjAwLjUwNiAzMTguNzE4TDE4IDEzNi4yMTJaIiBmaWxsPSJ3aGl0ZSIvPjxwYXRoIGQ9Ik0xOC43MDcxIDEzNi4yMTJMMTQwLjIxMiAxNC43MDdMMzIyLjM2NCAxOTYuODZDMzU1LjkxNyAyMzAuNDEyIDM1NS45MTcgMjg0LjgxMiAzMjIuMzY1IDMxOC4zNjRDMjg4LjgxMiAzNTEuOTE3IDIzNC40MTIgMzUxLjkxNyAyMDAuODYgMzE4LjM2NEwxOC43MDcxIDEzNi4yMTJaIiBzdHJva2U9IiNGNkYyRUEiLz48L2c+PGRlZnM+PGZpbHRlciBpZD0iZmlsdGVyMF9kXzQyNl8xNjIyIiB4PSIwLjUiIHk9IjAuNSIgd2lkdGg9IjM2NS4wMjkiIGhlaWdodD0iMzY1LjAyOSIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+PGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUFscGhhIiB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDAiIHJlc3VsdD0iaGFyZEFscGhhIi8+PGZlT2Zmc2V0IGR5PSI0Ii8+PGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iOC43NSIvPjxmZUNvbXBvc2l0ZSBpbjI9ImhhcmRBbHBoYSIgb3BlcmF0b3I9Im91dCIvPjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwIDAgMCAwIDAuMTkxODkgMCAwIDAgMCAwLjE5MDMxNyAwIDAgMCAwIDAuMTg2MzM5IDAgMCAwIDAuMDggMCIvPjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0iZWZmZWN0MV9kcm9wU2hhZG93XzQyNl8xNjIyIi8+PGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2Ryb3BTaGFkb3dfNDI2XzE2MjIiIHJlc3VsdD0ic2hhcGUiLz48L2ZpbHRlcj48L2RlZnM+PC9zdmc+");
    background-size: contain;
    background-repeat: no-repeat;
    z-index: -1;
}

.nav-bubble a {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transform: none !important;
    transition: none !important;
}

.nav-bubble img,
.nav-bubble .custom-logo {
    width: 92px !important;
    height: auto !important;
    object-fit: contain;
    transform: none !important;
    transition: none !important;
}

@media (min-width: 901px) {
    .nav-bubble .custom-logo-link,
    .nav-bubble a.custom-logo-link,
    .nav-bubble .custom-logo-link img,
    .nav-bubble img.custom-logo {
        background: transparent !important;
        padding: 0 !important;
        border: none !important;
        box-shadow: none !important;
        filter: none !important;
        border-radius: 0 !important;
    }
}


.nav-name,
.nav-sub {
    display: none !important;
}

/* ══ MENU ══ */
.nav-content-wrapper {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    flex: 1;
    /* Losange logo : left 150 + bulle 200 → bord droit ~350px. Laisser un vrai trou avant Accueil. */
    margin-left: 360px;
    position: relative;
    z-index: 2;
    overflow: visible;
}

.nav-links {
    display: flex;
    align-items: stretch;
    margin: 0 auto;
}

.nav-links > ul,
.nav-links .menu {
    display: flex;
    align-items: stretch;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 0;
}

.nav-links > ul > li,
.nav-links .menu > li {
    display: flex;
    align-items: stretch;
    position: relative;
}

.nav-links > ul > li > a,
.nav-links .menu > li > a {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 24px;
    font-size: 14px;
    font-weight: 600;
    color: rgba(255, 255, 255, .85);
    border-bottom: 3px solid transparent;
    transition: all .25s ease;
    white-space: nowrap;
    text-decoration: none;
}

.nav-links > ul > li > a:hover,
.nav-links .menu > li > a:hover,
.nav-links .current-menu-item > a,
.nav-links .current-menu-ancestor > a,
.nav-links .current-menu-parent > a,
.nav-links .current_page_item > a {
    color: white;
    border-bottom-color: var(--yellow);
    background: rgba(255, 255, 255, .12);
}

/* ══ SOUS-MENUS ══ */
.nav-links .sub-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    background: var(--b1);
    min-width: 240px;
    padding: 8px 0;
    border-radius: 0 0 8px 8px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .3);
    list-style: none;
    margin: 0;
    z-index: 100;
}
.nav-links .menu > li > .sub-menu {
    padding-top: 10px;
    margin-top: -2px;
}

.nav-links li:hover > .sub-menu,
.nav-links li:focus-within > .sub-menu {
    display: block;
    animation: fadeIn .2s ease;
}

.nav-links .sub-menu li {
    display: block;
    position: relative;
}

.nav-links .sub-menu a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 24px;
    border-bottom: none;
    border-left: 3px solid transparent;
    color: rgba(255, 255, 255, .85);
    transition: all .2s;
    font-size: 13px;
    font-weight: 500;
    white-space: nowrap;
}

.nav-links .sub-menu a:hover,
.nav-links .sub-menu .current-menu-item > a {
    background: rgba(255, 255, 255, .12);
    border-left-color: var(--yellow);
    color: white;
}

.nav-links .sub-menu .sub-menu {
    top: 0;
    left: 100%;
}

.nav-links .menu > .menu-item-has-children > a::after {
    content: '▾';
    margin-left: 7px;
    font-size: 9px;
    line-height: 1;
    opacity: .75;
    display: inline-block;
    transform: none;
    transition: transform .2s;
}
.nav-links .menu > .menu-item-has-children:hover > a::after,
.nav-links .menu > .menu-item-has-children:focus-within > a::after {
    transform: none;
    opacity: 1;
}

.nav-links .sub-menu .menu-item-has-children > a::after {
    content: '›';
    margin-left: auto;
    padding-left: 12px;
    font-size: 16px;
}

.nav-links .sub-menu .menu-item-has-children:hover > a::after {
    transform: translateX(3px);
}

@media (min-width: 1601px) {
    .nav-links .sub-menu,
    .nav-links li:hover > .sub-menu,
    .nav-links li:focus-within > .sub-menu {
        display: none !important;
    }
    .nav-links .menu-item-has-children > a::after {
        display: none !important;
    }
}

/* ══ CTA BOUTON ADHÉRER ══ */
.nav-cta {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.btn-nav {
    background: linear-gradient(135deg, #52B788 0%, #2D6A4F 100%);
    color: white !important;
    font-size: 14px;
    font-weight: 700;
    padding: 14px 32px;
    border-radius: 30px;
    transition: all .3s ease;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    position: relative;
    box-shadow: 3px 3px 0 0 rgba(251, 187, 29, 0.8),
                0 8px 20px rgba(45, 106, 79, .3);
}

.btn-nav:hover {
    filter: brightness(0.85);
    transform: translateY(-2px);
    color: white !important;
    box-shadow: 0 0 0 0 rgba(251, 187, 29, 0),
                0 10px 24px rgba(45, 106, 79, .5);
}

.btn-nav:active {
    transform: translateY(2px);
    filter: brightness(0.75);
    box-shadow: 0 2px 0 0 rgba(251, 187, 29, 0.6),
                0 4px 12px rgba(45, 106, 79, .3);
}

.btn-nav svg {
    transition: transform .3s ease;
    color: white !important;
}

.btn-nav:hover svg {
    transform: rotate(15deg) scale(1.15);
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ══ FOOTER ══ */
.footer {
    font-family: 'Axiforma', system-ui, sans-serif !important;
    background: var(--dark);
    padding: 48px 80px 24px;
    color: rgba(255,255,255,.7);
}

.footer-content {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 40px;
    margin-bottom: 32px;
}

.footer-col h4 {
    color: white;
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 12px;
}

.footer-col p {
    font-size: 13px;
    line-height: 1.6;
}

.footer-menu {
    list-style: none;
}

.footer-menu li {
    margin-bottom: 8px;
}

.footer-menu a {
    font-size: 13px;
    color: rgba(255,255,255,.5);
    transition: color .2s;
    text-decoration: none;
}

.footer-menu a:hover {
    color: white;
}

.footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 24px;
    border-top: 1px solid rgba(255,255,255,.1);
}

.footer-bottom p {
    font-size: 12px;
    color: rgba(255,255,255,.3);
}

.footer-links {
    display: flex;
    gap: 20px;
}

.footer-links a {
    font-size: 11px;
    color: rgba(255,255,255,.3);
    transition: color .2s;
    text-decoration: none;
}

.footer-links a:hover {
    color: rgba(255,255,255,.7);
}

.footer-mosaic {
    height: 3px;
    background: linear-gradient(to right, #212E81, #24318A, #0F3F93, #114F9F, #2669B2, #20B29E, #FBBB1D);
}


/* ══════════════════════════════════════════
   RESPONSIVE — un seul bloc par breakpoint
══════════════════════════════════════════ */

@media (max-width: 1440px) {
    .cftc-header-stack {
        --cftc-nav-pad: 28px;
    }
    .nav-content-wrapper {
        margin-left: 340px;
        gap: 12px;
    }
    .nav-links > ul > li > a,
    .nav-links .menu > li > a {
        padding: 0 14px;
        font-size: 13px;
    }
}

@media (max-width: 1200px) {
    .cftc-header-stack {
        --cftc-nav-pad: 20px;
    }
    .nav-bubble {
        left: 72px;
        width: 168px;
        height: 152px;
    }
    .nav-bubble::before {
        width: 236px;
        height: 216px;
    }
    .nav-content-wrapper {
        margin-left: 300px;
        gap: 10px;
    }

    .nav-links > ul > li > a,
    .nav-links .menu > li > a {
        padding: 0 10px;
        font-size: 12px;
    }
}

@media (min-width: 901px) and (max-width: 1080px) {
    .cftc-header-stack {
        --cftc-nav-pad: 16px;
    }
    .nav-bubble {
        left: 36px;
        width: 148px;
        height: 134px;
        top: -42px;
    }
    .nav-bubble::before {
        width: 208px;
        height: 190px;
    }
    .nav-bubble img,
    .nav-bubble .custom-logo {
        width: 76px !important;
    }
    .nav-content-wrapper {
        margin-left: 250px;
    }
}

@media (max-width: 900px) {
    /* Top bar */
    .topbar {
        padding-left: 20px;
        padding-right: 20px;
        font-size: 11px;
    }

    /* Navbar */
    .navbar-custom {
        padding: 0 16px;
        justify-content: space-between;
    }

    .nav-bubble {
        position: relative;
        left: 0;
        top: 0;
        min-width: 110px;
        height: auto;
    }

    .nav-bubble img,
    .nav-bubble svg {
        width: 45px;
        height: 45px;
    }

    .nav-content-wrapper {
        margin-left: 0;
        gap: 0;
        justify-content: flex-end;
    }

    .nav-sub {
        display: none;
    }

    .btn-nav {
        padding: 10px 20px;
        font-size: 13px;
        box-shadow: 2px 2px 0 0 rgba(251, 187, 29, 0.8),
                    0 6px 16px rgba(45, 106, 79, .3);
    }

    .btn-nav svg {
        width: 16px;
        height: 16px;
    }

    /* Footer */
    .footer {
        padding-left: 20px;
        padding-right: 20px;
    }

    .footer-content {
        grid-template-columns: 1fr;
        gap: 24px;
    }
}

/* Bannière adhésion accueil : styles dans front-page.php (.home-join) */

/* ══════════════════════════════════════════
   FOOTER — à coller dans style.css
══════════════════════════════════════════ */
.footer {
    background: var(--dark);
    padding: 52px 48px 0;  /* padding-bottom: 0, la mosaïque fait le bas */
}

/* Grille 4 colonnes */
.footer-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 40px;
    padding-bottom: 40px;
    /* PAS de border-bottom ici — on gère la séparation sur footer-bottom */
}

/* ── Colonne marque ── */
.footer-brand .custom-logo-link,
.footer-brand .custom-logo-link img {
    max-width: 180px;
    height: auto;
    display: block;
}
.footer-logo-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
}
.footer-logo-icon {
    width: 38px; height: 38px;
    background: var(--b3);
    border-radius: 6px;
    display: flex; align-items: center; justify-content: center;
    font-family: var(--global-heading-font-family);
    font-size: 14px; font-weight: 700;
    color: white;
    flex-shrink: 0;
}
.footer-logo-name {
    font-family: var(--global-heading-font-family);
    font-size: 16px; font-weight: 700;
    color: white;
}
.footer-desc {
    font-size: 13px;
    color: rgba(255,255,255,.45);
    line-height: 1.65;
    margin-bottom: 20px;
    max-width: 260px;
}
.footer-socials {
    display: flex;
    gap: 8px;
}
.footer-soc {
    width: 32px; height: 32px;
    border-radius: 6px;
    background: rgba(255,255,255,.07);
    border: 1px solid rgba(255,255,255,.1);
    display: flex; align-items: center; justify-content: center;
    color: rgba(255,255,255,.5);
    transition: all .2s;
    flex-shrink: 0;
}
.footer-soc:hover {
    background: var(--b4);
    color: white;
    border-color: var(--b4);
}

/* ── Titre de colonne ── */
.footer-col-title {
    font-size: 10px; font-weight: 700;
    letter-spacing: 2px; text-transform: uppercase;
    color: var(--b5);
    margin-bottom: 18px;
    display: block; /* s'assure que c'est bien un bloc au-dessus de la liste */
}

/* ── Listes — reset agressif pour neutraliser les styles WP/thème ── */
.footer-links,
.footer-links li {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    /* CRITIQUE : annule tout display:flex qui viendrait du thème */
    display: block !important;
    float: none !important;
}
.footer-links li {
    margin-bottom: 10px !important;
}
.footer-links a {
    font-size: 13px;
    color: rgba(255,255,255,.5);
    transition: color .2s;
    display: flex !important;
    align-items: center;
    gap: 6px;
    text-decoration: none;
}
.footer-links a:hover { color: white; }
.footer-links a::before {
    content: '›';
    color: var(--b5);
    flex-shrink: 0;
}

/* ── Barre basse — UNE seule séparation ── */
.footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    padding: 20px 0;
    /* UNE seule bordure en haut */
    border-top: 1px solid rgba(255,255,255,.07);
    /* Supprimer tout ce que WP pourrait ajouter en bas */
    border-bottom: none !important;
    margin-bottom: 0;
}
.footer-bottom p {
    font-size: 12px;
    color: rgba(255,255,255,.25);
    margin: 0;
}
.footer-bottom-links {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
}
.footer-bottom-links a {
    font-size: 11px;
    color: rgba(255,255,255,.3);
    transition: color .2s;
    text-decoration: none;
}
.footer-bottom-links a:hover { color: rgba(255,255,255,.7); }

/* ── Mosaïque d'entrée — bande dégradée, toutes pages ── */
.site-mosaic {
    height: 5px;
    background: linear-gradient(to right, #212E81, #24318A, #0F3F93, #114F9F, #2669B2, #20B29E, #FBBB1D);
}

/* ── Mosaïque colorée — tout en bas, colle au footer ── */
.footer-mosaic {
    height: 3px;
    background: linear-gradient(to right, #212E81, #24318A, #0F3F93, #114F9F, #2669B2, #20B29E, #FBBB1D);
}

/* ── Responsive ── */
@media (max-width: 900px) {
    .footer { padding-left: 24px; padding-right: 24px; }
    .footer-grid { grid-template-columns: 1fr 1fr; }
    .footer-bottom { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 480px) {
    .footer-grid { grid-template-columns: 1fr; }
}

/* ══════════════════════════════════════════
   FIX FOOTER — espace avant mosaïque
══════════════════════════════════════════ */
.footer-bottom {
    padding-bottom: 20px;
}


/* ══════════════════════════════════════════
   HERO — encart dernière actu (droite)
══════════════════════════════════════════ */

/* Le hero doit être en flex pour que l'encart se place à droite */
.home-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.home-hero-actu {
    position: relative;
    z-index: 2;
    flex-shrink: 0;
    width: 320px;
    margin-right: 48px;
    animation: fadeUp .7s ease both .5s;
}

.home-hero-actu-link {
    display: block;
    background: rgba(12, 21, 41, .65);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: var(--r-lg);
    overflow: hidden;
    backdrop-filter: blur(10px);
    transition: border-color .25s, transform .25s;
    text-decoration: none;
}
.home-hero-actu-link:hover {
    border-color: rgba(255, 255, 255, .28);
    transform: translateY(-3px);
}

/* Miniature featured image */
.home-hero-actu-img {
    height: 140px;
    background-size: cover;
    background-position: center;
    position: relative;
}
.home-hero-actu-img::after {
    content: '';
    position: absolute; inset: 0;
    background: linear-gradient(to bottom, transparent 40%, rgba(12,21,41,.7) 100%);
}

/* Étiquette "Dernière actu" */
.home-hero-actu-link::before {
    content: '● Dernière actu';
    display: block;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--teal);
    padding: 14px 18px 0;
}

.home-hero-actu-body {
    padding: 12px 18px 18px;
}

.home-hero-actu-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
}
.home-hero-actu-cat {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--yellow);
    background: rgba(251, 187, 29, .12);
    border: 1px solid rgba(251, 187, 29, .25);
    padding: 3px 9px;
    border-radius: 20px;
}
.home-hero-actu-date {
    font-size: 11px;
    color: rgba(255, 255, 255, .35);
}

.home-hero-actu-title {
    font-family: var(--global-heading-font-family);
    font-size: 16px;
    font-weight: 700;
    color: white;
    line-height: 1.3;
    margin-bottom: 8px;
}
.home-hero-actu-excerpt {
    font-size: 12px;
    color: rgba(255, 255, 255, .55);
    line-height: 1.55;
    margin-bottom: 14px;
}
.home-hero-actu-cta {
    font-size: 12px;
    font-weight: 700;
    color: var(--teal);
    display: flex;
    align-items: center;
    gap: 5px;
}
.home-hero-actu-link:hover .home-hero-actu-cta span {
    transform: translateX(3px);
    display: inline-block;
    transition: transform .2s;
}

/* ── Responsive : on masque l'encart en dessous de 900px ── */
@media (max-width: 900px) {
    .home-hero-actu {
        display: none;
    }
    .home-hero {
        justify-content: flex-start;
    }
}
.home-une .home-card-sec-body.grad-0 {
    background: linear-gradient(150deg, rgba(15,63,147,.06) 0%, white 55%) !important;
}
.home-une .home-card-sec-body.grad-1 {
    background: linear-gradient(150deg, rgba(32,178,158,.08) 0%, white 55%) !important;
}
.home-une .home-card-sec-body.grad-2 {
    background: linear-gradient(150deg, rgba(251,187,29,.09) 0%, white 55%) !important;
}
.home-une .home-card-sec-body.grad-3 {
    background: linear-gradient(150deg, rgba(45,106,79,.07) 0%, white 55%) !important;
}
.home-une .home-card-sec-body {
    position: relative !important;
}
.home-une .home-card-sec-body::before {
    content: '' !important;
    position: absolute !important;
    top: 0; left: 0; right: 0;
    height: 3px !important;
    z-index: 1;
}
.home-une .home-card-sec-body.grad-0::before { background: linear-gradient(90deg, #0F3F93, #2669B2) !important; }
.home-une .home-card-sec-body.grad-1::before { background: linear-gradient(90deg, #20B29E, #2669B2) !important; }
.home-une .home-card-sec-body.grad-2::before { background: linear-gradient(90deg, #FBBB1D, #EA4F70) !important; }
.home-une .home-card-sec-body.grad-3::before { background: linear-gradient(90deg, #2D6A4F, #20B29E) !important; }

a.home-card-sec {
    background: unset;
}

/* ══════════════════════════════════════════
   TOPBAR
══════════════════════════════════════════ */
.topbar {
    background: var(--b1);
    padding: 0 var(--cftc-nav-pad, 48px);
    height: 36px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 12px;
    position: relative;
    z-index: auto;
    overflow: visible;
}
.topbar-left {
    display: flex;
    align-items: center;
    gap: 0;
    margin-left: 290px;
}
.topbar-right {
    display: flex;
    align-items: center;
    gap: 0;
    overflow: visible;
    position: relative;
    z-index: 1;
}

.topbar-link {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 5px;
    color: rgba(255,255,255,.6) !important;
    font-size: 11px;
    font-weight: 500;
    padding: 0 14px;
    height: 36px;
    border: 0;
    border-right: 1px solid rgba(255,255,255,.08);
    background: transparent;
    transition: color .2s, background .2s;
    text-decoration: none !important;
    white-space: nowrap;
    line-height: 1;
}
button.topbar-link {
    appearance: none;
    -webkit-appearance: none;
    font-family: inherit;
    cursor: pointer;
}
.topbar-link:first-child { border-left: 1px solid rgba(255,255,255,.08); }
.topbar-link:hover { color: white !important; background: rgba(255,255,255,.05); }

.topbar-theme {
    display: inline-flex;
    align-items: stretch;
    flex-shrink: 0;
    position: relative;
    z-index: 2;
}
.topbar-theme .cftc-theme-toggle {
    width: auto;
    min-width: 36px;
    height: 36px;
    padding: 0 12px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: rgba(255, 255, 255, .6);
}
.topbar-theme .cftc-theme-toggle:hover,
.topbar-theme .cftc-theme-toggle:focus-visible {
    background: rgba(255, 255, 255, .05);
    color: #fff;
    outline: none;
}
.topbar-theme .cftc-theme-toggle .cftc-theme-icon {
    width: 14px;
    height: 14px;
}
body.dark .topbar-theme .cftc-theme-toggle {
    border: 0;
    background: transparent;
    color: rgba(255, 255, 255, .6);
}
body.dark .topbar-theme .cftc-theme-toggle:hover,
body.dark .topbar-theme .cftc-theme-toggle:focus-visible {
    background: rgba(255, 255, 255, .05);
    color: #fff;
}

.topbar-sep {
    color: rgba(255,255,255,.15);
    padding: 0 4px;
    font-size: 14px;
    line-height: 1;
}
.topbar-sep--hidden {
    display: none !important;
}

/* ── Ticker infos urgentes ── */
.topbar-ticker {
    display: flex;
    align-items: center;
    gap: 0;
    height: 36px;
    overflow: hidden;
}
.topbar-ticker-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--b1);
    background: var(--yellow);
    padding: 0 12px;
    height: 36px;
    white-space: nowrap;
    flex-shrink: 0;
    line-height: 1;
}
.topbar-ticker-wrap {
    position: relative;
    height: 36px;
    overflow: hidden;
    min-width: 280px;
    max-width: 420px;
}
.topbar-ticker-inner {
    position: relative;
    height: 36px;
}
.topbar-ticker-item {
    display: flex !important;
    align-items: center;
    height: 36px;
    padding: 0 16px;
    font-size: 11px;
    font-weight: 600;
    color: rgba(255,255,255,.8) !important;
    text-decoration: none !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: color .2s;
}
.topbar-ticker-item:hover { color: white !important; }

/* ── Connexion / utilisateur topbar ── */
.topbar-login {
    display: inline-flex !important;
    align-items: center;
    gap: 6px;
    color: rgba(255,255,255,.75) !important;
    font-size: 11px;
    font-weight: 600;
    padding: 7px 14px;
    border-radius: 4px;
    border: 1px solid rgba(255,255,255,.2);
    background: rgba(255,255,255,.07);
    transition: all .2s;
    text-decoration: none !important;
    white-space: nowrap;
    line-height: 1;
    vertical-align: middle;
}
.topbar-login:hover {
    background: rgba(255,255,255,.15) !important;
    color: white !important;
    border-color: rgba(255,255,255,.35);
}

.topbar-user { position: relative; }
.topbar-user-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: rgba(255,255,255,.8);
    font-size: 11px;
    font-weight: 600;
    padding: 4px 8px 4px 4px;
    border-radius: 4px;
    border: 1px solid rgba(255,255,255,.2);
    background: rgba(255,255,255,.07);
    cursor: pointer;
    transition: all .2s;
    line-height: 1;
    vertical-align: middle;
}
.topbar-user-toggle:hover { background: rgba(255,255,255,.15); color: white; }
.topbar-user-avatar {
    width: 22px; height: 22px;
    border-radius: 50%;
    object-fit: cover;
    border: 1.5px solid rgba(255,255,255,.3);
    flex-shrink: 0;
}

/* Dropdown utilisateur */
.topbar-user-menu {
    position: fixed;
    top: 36px;
    right: 0;
    min-width: 190px;
    background: var(--surface);
    border-radius: var(--r-lg);
    box-shadow: 0 8px 32px rgba(15,63,147,.25);
    border: 1px solid var(--border);
    border-top: 3px solid var(--b3);
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
    transform: translateY(-4px);
    transition: all .2s ease;
    z-index: 250;
}
.topbar-user-menu.is-open {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}
.topbar-user-menu a {
    display: flex !important;
    align-items: center;
    gap: 9px;
    padding: 11px 25px 11px 16px;
    font-size: 12px;
    font-weight: 500;
    color: var(--text) !important;
    border-bottom: 1px solid var(--off);
    transition: all .15s;
    text-decoration: none !important;
    background: transparent !important;
}
.topbar-user-menu a:last-child { border-bottom: none; }
.topbar-user-menu a:hover { background: var(--off) !important; color: var(--b3) !important; }
.topbar-user-menu a svg { color: var(--b5); flex-shrink: 0; }
.topbar-user-sep { height: 1px; background: var(--border); margin: 2px 0; }
.topbar-user-logout { color: #dc2626 !important; }
.topbar-user-logout svg { color: #dc2626 !important; }
.topbar-user-logout:hover { background: #fef2f2 !important; color: #dc2626 !important; }

/* ══════════════════════════════════════════
   NAVBAR — outils (recherche + adhérer)
══════════════════════════════════════════ */
.nav-tools {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
    overflow: visible;
}

/* ── Recherche topbar ── */
.topbar-search {
    position: relative;
    display: flex;
    align-items: center;
}
.topbar-search-toggle {
    width: 30px !important;
    height: 30px !important;
    border-radius: 4px;
    background: rgba(255,255,255,.1) !important;
    border: 1px solid rgba(255,255,255,.2) !important;
    color: rgba(255,255,255,.75) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    transition: all .2s;
    flex-shrink: 0;
    padding: 0 !important;
    line-height: 1 !important;
    font-size: 0 !important;
}
.topbar-search-toggle:hover {
    background: rgba(255,255,255,.2);
    color: white;
}
.topbar-search-toggle svg {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    flex-shrink: 0;
}
.topbar-search-form {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    display: flex;
    align-items: center;
    background: var(--surface);
    border-radius: var(--r);
    overflow: hidden;
    width: 0;
    opacity: 0;
    pointer-events: none;
    transition: width .28s ease, opacity .2s ease;
    box-shadow: 0 4px 24px rgba(0,0,0,.22);
    z-index: 300;
    border-top: 3px solid var(--b3);
}
.topbar-search-form.is-open {
    width: 280px;
    opacity: 1;
    pointer-events: auto;
}
.topbar-search-form input[type="search"] {
    border: none !important;
    outline: none !important;
    padding: 9px 14px;
    font-size: 13px;
    color: var(--text);
    background: transparent !important;
    flex: 1;
    min-width: 0;
    font-family: var(--global-body-font-family);
    box-shadow: none !important;
}
.topbar-search-form input::placeholder { color: var(--light); }
.topbar-search-form button[type="submit"] {
    background: var(--b3) !important;
    border: none !important;
    padding: 9px 12px;
    color: white !important;
    cursor: pointer;
    display: flex;
    align-items: center;
    transition: background .2s;
    flex-shrink: 0;
}
.topbar-search-form button[type="submit"]:hover { background: var(--b4) !important; }

/* ══ RESPONSIVE ══ */
@media (max-width: 900px) {
    .topbar {
        padding: 0 12px;
        height: 34px;
        min-height: 34px;
        flex-wrap: nowrap;
        row-gap: 0;
    }
    .topbar-left {
        padding-left: 0;
        margin-left: 0 !important;
        min-width: 0;
        flex: 1 1 auto;
        overflow-x: auto;
        overflow-y: hidden;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
        gap: 0;
    }
    .topbar-left::-webkit-scrollbar { display: none; }
    .topbar-right {
        margin-left: 0;
        width: auto;
        justify-content: flex-start;
        flex-wrap: nowrap;
        flex-shrink: 0;
    }
    .topbar-ticker{ display:none!important; }
    .topbar-ticker-wrap { min-width: 160px; max-width: 200px; }
    .topbar-link{
        display:inline-flex !important;
        font-size:10px !important;
        padding:0 8px !important;
        height:30px !important;
        white-space:nowrap!important;
    }
    .topbar-link--contact{
        display:none !important;
    }
    .topbar-right{
        display:flex !important;
        gap:0;
        flex-shrink:0;
    }
    .topbar-theme .cftc-theme-toggle,
    .topbar-right .cftc-wx-chip {
        height:30px;
        min-width:30px;
        padding:0 8px;
    }
    .topbar-sep { display: none; }
    .navbar-custom{
        background:linear-gradient(90deg,#2B4A9E 0%,#3D5AAF 50%,#2B4A9E 100%)!important;
        border-top:none;
        border-bottom:none;
        box-shadow:0 4px 20px rgba(0,0,0,.25);
    }
    /* dark mode navbar : réglé dans le bloc global @media 900px ci-dessus */
    .nav-bubble{
        min-width:auto;
        width:auto;
        height:auto;
    }
    .nav-bubble::before{display:none!important}
    .nav-mobile-toggle{
        background:rgba(255,255,255,.12)!important;
        border-color:rgba(255,255,255,.25)!important;
    }
    .nav-mobile-toggle span{background:#fff!important}
    .nav-mobile-theme-wrap{display:inline-flex;align-items:center;margin:0}
    .nav-mobile-menu a{font-size:13px}
    .nav-mobile-actions a{font-size:13px!important;font-weight:600!important}
    .topbar-left .topbar-link{display:inline-flex!important}
}

/* Topbar : entre 901px et XL, le décalage logo reste 290px — on compacte le ticker */
@media (min-width: 901px) and (max-width: 1280px) {
    .topbar {
        min-width: 0;
        gap: 6px;
    }
    .topbar-left {
        min-width: 0;
        flex: 1 1 auto;
        overflow: hidden;
    }
    .topbar-right {
        flex-shrink: 0;
    }
    .topbar-ticker-wrap {
        max-width: min(300px, 28vw);
        min-width: 0;
    }
}
@media (min-width: 901px) and (max-width: 1080px) {
    .topbar-ticker {
        display: none !important;
    }
}
/* ══════════════════════════════════════════
   NAVBAR — Recherche CSS pure + Mon espace
══════════════════════════════════════════ */

/* Recherche */
.nav-search-wrap {
    position: relative;
    display: flex;
    align-items: center;
}
.nav-search-icon {
    width: 36px; height: 36px;
    border-radius: var(--r);
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.2);
    color: white;
    display: flex !important;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    transition: background .2s;
}
.nav-search-icon:hover { background: rgba(255,255,255,.2); }
.nav-search-form {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    display: flex;
    align-items: center;
    background: var(--surface);
    border-radius: var(--r);
    border-top: 3px solid var(--b3);
    overflow: hidden;
    width: 0; opacity: 0; pointer-events: none;
    transition: width .28s ease, opacity .2s ease;
    box-shadow: 0 4px 24px rgba(0,0,0,.2);
    z-index: 500;
}
.nav-search-wrap:focus-within .nav-search-form {
    width: 280px; opacity: 1; pointer-events: auto;
}
.nav-search-form input[type="search"] {
    border: none !important; outline: none !important;
    padding: 10px 14px; font-size: 13px; color: var(--text);
    background: transparent !important; flex: 1; min-width: 0;
    box-shadow: none !important;
}
.nav-search-form input::placeholder { color: var(--light); }
.nav-search-form button[type="submit"] {
    background: var(--b3) !important; border: none !important;
    padding: 10px 12px; color: white !important;
    cursor: pointer; display: flex; align-items: center; flex-shrink: 0;
}
.nav-search-form button[type="submit"]:hover { background: var(--b4) !important; }

/* Bouton Mon espace / Connexion */
.nav-user-wrap {
    position: relative;
    z-index: 10050;
}
.btn-mon-espace {
    display: inline-flex !important;
    align-items: center;
    gap: 7px;
    position: relative;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.25);
    color: white !important;
    font-size: 13px; font-weight: 600;
    padding: 8px 16px;
    border-radius: var(--r);
    cursor: pointer;
    transition: all .2s;
    white-space: nowrap;
}
.btn-mon-espace:hover { background: rgba(255,255,255,.22); }
.nav-ea-notif-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    margin-left: 1px;
    border-radius: 999px;
    background: #EA4F70;
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -.02em;
    flex-shrink: 0;
    box-shadow: 0 1px 6px rgba(234, 79, 112, .45);
}
.btn-mon-espace:hover .nav-ea-notif-badge {
    box-shadow: 0 2px 8px rgba(234, 79, 112, .55);
}

.btn-connexion {
    display: inline-flex !important;
    align-items: center;
    gap: 7px;
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.22);
    color: rgba(255,255,255,.85) !important;
    font-size: 13px; font-weight: 600;
    padding: 8px 16px;
    border-radius: var(--r);
    transition: all .2s;
    text-decoration: none !important;
    white-space: nowrap;
}
.btn-connexion:hover { background: rgba(255,255,255,.2); color: white !important; }

/* Dropdown Mon espace — ancré au bouton (pas fixed, suit le scroll du layout) */
.nav-user-dropdown {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    left: auto;
    min-width: 200px;
    max-width: min(92vw, 260px);
    background: var(--surface);
    border-radius: var(--r-lg);
    box-shadow: 0 8px 32px rgba(15,63,147,.2);
    border: 1px solid var(--border);
    border-top: 3px solid var(--b3);
    overflow: hidden;
    opacity: 0; pointer-events: none;
    transform: translateY(-6px);
    transition: all .2s ease;
    z-index: 10051;
}
.nav-user-wrap.open .nav-user-dropdown {
    opacity: 1; pointer-events: auto; transform: translateY(0);
}
.nav-user-dropdown a {
    display: flex !important;
    align-items: center; gap: 9px;
    padding: 11px 16px;
    font-size: 13px; font-weight: 500;
    color: var(--text) !important;
    border-bottom: 1px solid var(--off);
    transition: all .15s; text-decoration: none !important;
    background: transparent !important;
    width: 100%;
    box-sizing: border-box;
}
.nav-user-dropdown a:last-child { border-bottom: none; }
.nav-user-dropdown a:hover { background: var(--off) !important; color: var(--b3) !important; }
.nav-user-dropdown a svg { color: var(--b5); flex-shrink: 0; }
/* FORCE BANDEAU À CONSULTER VISIBLE */
.home-urgents {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    overflow: visible !important;
    position: relative !important;
    z-index: 100 !important;
    height: auto !important;
    min-height: 48px !important;
}

.home-urgents-inner {
    display: flex !important;
    visibility: visible !important;
}

.home-urgents-links {
    display: flex !important;
    visibility: visible !important;
}

/* ═══════════════════════════════════════════════════════════
   CORRECTIONS ALIGNEMENT VERTICAL DES BOUTONS
   ═══════════════════════════════════════════════════════════ */

/* Force l'alignement vertical parfait pour tous les boutons */
.btn-mon-espace,
.btn-connexion,
.btn-nav,
.nav-user-dropdown a {
    display: inline-flex !important;
    align-items: center !important;
    line-height: 1 !important;
}

/* Alignement des SVG dans les boutons */
.btn-mon-espace svg,
.btn-connexion svg,
.btn-nav svg,
.nav-user-dropdown a svg {
    flex-shrink: 0 !important;
    vertical-align: middle !important;
    display: block !important;
}

/* Alignement du dropdown Mon espace */
.nav-user-dropdown a {
    line-height: 1.3 !important;
}

/* ═══════════════════════════════════════════════════════════
   RECHERCHE AVEC EFFET TOGGLE
   ═══════════════════════════════════════════════════════════ */

/* Ouvre la recherche avec la classe is-open */
.nav-search-wrap.is-open .nav-search-form {
    width: 280px !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}

/* Garde aussi le :focus-within pour compatibilité */
.nav-search-wrap:focus-within .nav-search-form {
    width: 280px !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}

/* ═══════════════════════════════════════════════════════════
   RECHERCHE ÉLÉGANTE INLINE (comme cftcagri.fr)
   ═══════════════════════════════════════════════════════════ */

.nav-search-wrap {
    position: relative;
    display: flex;
    align-items: center;
}

.nav-search-toggle {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.2);
    color: white;
    display: flex !important;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all .2s;
    z-index: 10;
    flex-shrink: 0;
}

.nav-search-toggle:hover {
    background: rgba(255,255,255,.18);
}

.nav-search-box {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 0;
    opacity: 0;
    overflow: hidden;
    transition: all .3s cubic-bezier(0.4, 0, 0.2, 1);
    pointer-events: none;
}

.nav-search-wrap.is-active .nav-search-box {
    width: 320px;
    opacity: 1;
    pointer-events: auto;
}

.nav-search-box form {
    display: flex;
    align-items: center;
    background: var(--surface);
    border-radius: 50px;
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(0,0,0,.15);
    height: 38px;
}

.nav-search-box input[type="search"] {
    flex: 1;
    border: none !important;
    outline: none !important;
    background: transparent !important;
    padding: 0 18px !important;
    font-size: 13px !important;
    color: var(--text) !important;
    box-shadow: none !important;
    height: 38px;
    line-height: 38px;
}

.nav-search-box input::placeholder {
    color: var(--light);
}

.nav-search-box button[type="submit"] {
    width: 38px;
    height: 38px;
    background: #52B788 !important;
    border: none !important;
    color: white !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background .2s;
    flex-shrink: 0;
}

.nav-search-box button[type="submit"]:hover {
    background: #469971 !important;
}

/* Animation du toggle qui disparaît quand la box est ouverte */
.nav-search-wrap.is-active .nav-search-toggle {
    opacity: 0;
    pointer-events: none;
    transform: scale(0.8);
}

/* ═══════════════════════════════════════════════════════════
   RECHERCHE STYLE NAVBAR (rectangulaire arrondi + vert)
   ═══════════════════════════════════════════════════════════ */

.nav-search-wrap {
    position: relative;
    display: flex;
    align-items: center;
}

/* Bouton loupe au repos */
.nav-search-toggle {
    width: 38px;
    height: 38px;
    border-radius: var(--r);
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.2);
    color: white;
    display: flex !important;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all .25s;
    z-index: 10;
    flex-shrink: 0;
}

.nav-search-toggle:hover {
    background: rgba(255,255,255,.18);
}

/* Boîte de recherche */
.nav-search-box {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 0;
    opacity: 0;
    overflow: hidden;
    transition: all .3s cubic-bezier(0.4, 0, 0.2, 1);
    pointer-events: none;
}

.nav-search-wrap.is-active .nav-search-box {
    width: 280px;
    opacity: 1;
    pointer-events: auto;
}

.nav-search-box form {
    display: flex;
    align-items: center;
    background: var(--surface);
    border-radius: var(--r);
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.25);
    height: 38px;
}

/* Icône loupe à l'intérieur du champ */
.nav-search-icon-inside {
    color: var(--light);
    margin-left: 12px;
    margin-right: 8px;
    flex-shrink: 0;
}

.nav-search-box input[type="search"] {
    flex: 1;
    border: none !important;
    outline: none !important;
    background: transparent !important;
    padding: 0 !important;
    font-size: 13px !important;
    color: var(--text) !important;
    box-shadow: none !important;
    height: 38px;
    line-height: 38px;
    min-width: 0;
}

.nav-search-box input::placeholder {
    color: var(--light);
}

/* Bouton submit VERT */
.nav-search-box button[type="submit"] {
    width: 38px;
    height: 38px;
    background: var(--teal) !important;
    border: none !important;
    color: white !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background .2s;
    flex-shrink: 0;
}

.nav-search-box button[type="submit"]:hover {
    background: #1a9984 !important;
}

/* Le toggle reste visible mais passe derrière */
.nav-search-wrap.is-active .nav-search-toggle {
    opacity: 0;
    pointer-events: none;
}

/* ═══════════════════════════════════════════════════════════
   DROPDOWN MON ESPACE - Largeur limitée
   ═══════════════════════════════════════════════════════════ */

.nav-user-dropdown {
    min-width: 200px !important;
    max-width: 220px !important;
    width: auto !important;
}

.nav-user-dropdown a {
    white-space: nowrap !important;
}

/* ═══════════════════════════════════════════════════════════
   CORRECTIONS FINALES
   ═══════════════════════════════════════════════════════════ */

/* Bouton recherche VERT CFTC */
.nav-search-box button[type="submit"] {
    background: #52B788 !important;
}

.nav-search-box button[type="submit"]:hover {
    background: #469971 !important;
}

/* Dropdown Mon espace - Retour au style original sans zones vides */
.nav-user-dropdown {
    min-width: 200px !important;
    max-width: none !important;
    width: 200px !important;
}

.nav-user-dropdown a {
    padding: 11px 16px !important;
}

/* ═══════════════════════════════════════════════════════════
   CORRECTIONS HERO ET FOOTER
   ═══════════════════════════════════════════════════════════ */

/* Bouton "Nous rejoindre" avec hover vert lisible */
.home-hero-btn-secondary:hover {
    border-color: #52B788 !important;
    background: #52B788 !important;
    color: white !important;
}

/* Logo footer sur fond blanc pour visibilité */
footer .custom-logo,
footer .site-logo,
footer img[class*="logo"],
.site-footer .custom-logo,
.site-footer .site-logo,
.site-footer img[class*="logo"] {
    background: var(--surface);
    padding: 12px;
    border-radius: var(--r);
    box-shadow: 0 2px 8px rgba(0,0,0,.08);
}

/* ═══════════════════════════════════════════════════════════
   BOUTONS VERTS CFTC
   ═══════════════════════════════════════════════════════════ */

/* Bouton "En savoir plus" avec hover vert comme "Nous rejoindre" */
.home-btn-outline:hover {
    border-color: #52B788 !important;
    background: #52B788 !important;
    color: white !important;
}

/* Bouton "Adhérer maintenant" en VERT au lieu de blanc */
.home-btn-white {
    background: #52B788 !important;
    color: white !important;
}

.home-btn-white:hover {
    background: #469971 !important;
    color: white !important;
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(82, 183, 136, 0.4) !important;
}

/* ═══════════════════════════════════════════════════════════
   BOUTONS HERO - BLANC + HOVER JAUNE
   ═══════════════════════════════════════════════════════════ */

/* Bouton "Nos actualités" reste blanc avec hover jaune */
.home-hero-btn-primary {
    background: var(--surface) !important;
    color: var(--b2) !important;
}

.home-hero-btn-primary:hover {
    background: #FBBB1D !important;
    color: var(--b1) !important;
    transform: translateY(-2px);
    box-shadow: 0 8px 28px rgba(251, 187, 29, 0.4) !important;
}

/* ═══════════════════════════════════════════════════════════
   RECHERCHE INLINE TOUJOURS VISIBLE (comme cftcagri.fr)
   ═══════════════════════════════════════════════════════════ */

.nav-search-wrap {
    position: relative;
    display: flex;
    align-items: center;
}

.nav-search-form-inline {
    display: flex;
    align-items: center;
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.2);
    border-radius: var(--r);
    height: 38px;
    overflow: hidden;
    transition: all .2s;
}

.nav-search-form-inline:focus-within {
    background: rgba(255,255,255,.15);
    border-color: rgba(255,255,255,.35);
}

/* Loupe à gauche */
.nav-search-icon-left {
    color: rgba(255,255,255,.6);
    margin-left: 12px;
    margin-right: 8px;
    flex-shrink: 0;
}

/* Input */
.nav-search-form-inline input[type="search"] {
    flex: 1;
    border: none !important;
    outline: none !important;
    background: transparent !important;
    padding: 0 !important;
    font-size: 13px !important;
    color: white !important;
    box-shadow: none !important;
    height: 38px;
    line-height: 38px;
    min-width: 0;
    width: 180px;
}

.nav-search-form-inline input::placeholder {
    color: rgba(255,255,255,.5);
}

/* Bouton submit VERT */
.nav-search-form-inline button[type="submit"] {
    width: 38px;
    height: 38px;
    background: #52B788 !important;
    border: none !important;
    color: white !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background .2s;
    flex-shrink: 0;
}

.nav-search-form-inline button[type="submit"]:hover {
    background: #469971 !important;
}

/* ═══════════════════════════════════════════════════════════
   RECHERCHE AVEC LOUPE DANS RECTANGLE QUI RESTE
   ═══════════════════════════════════════════════════════════ */

.nav-search-wrap {
    position: relative;
}

.nav-search-container {
    display: flex;
    align-items: center;
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.2);
    border-radius: var(--r);
    height: 38px;
    width: 38px; /* Juste la loupe au départ */
    overflow: hidden;
    transition: width .3s ease;
    cursor: pointer;
}

/* État ouvert */
.nav-search-container.is-open {
    width: 280px;
    cursor: default;
}

/* Loupe FIXE à gauche - TOUJOURS VISIBLE */
.nav-search-icon-fixed {
    color: rgba(255,255,255,.7);
    margin-left: 12px;
    margin-right: 8px;
    flex-shrink: 0;
    pointer-events: none; /* Laisse passer les clics au container */
}

/* Form qui apparaît */
.nav-search-form-expand {
    display: flex;
    align-items: center;
    flex: 1;
    opacity: 0;
    pointer-events: none;
    transition: opacity .3s ease;
}

.nav-search-container.is-open .nav-search-form-expand {
    opacity: 1;
    pointer-events: auto;
}

/* Input */
.nav-search-form-expand input[type="search"] {
    flex: 1;
    border: none !important;
    outline: none !important;
    background: transparent !important;
    padding: 0 !important;
    font-size: 13px !important;
    color: white !important;
    box-shadow: none !important;
    height: 38px;
    min-width: 0;
}

.nav-search-form-expand input::placeholder {
    color: rgba(255,255,255,.5);
}

/* Bouton VERT */
.nav-search-form-expand button[type="submit"] {
    width: 38px;
    height: 38px;
    background: #52B788 !important;
    border: none !important;
    color: white !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    transition: background .2s;
}

.nav-search-form-expand button[type="submit"]:hover {
    background: #469971 !important;
}

/* ═══════════════════════════════════════════════════════════
   CORRECTION RECHERCHE - Ouverture vers la gauche
   ═══════════════════════════════════════════════════════════ */

.nav-search-wrap {
    position: relative;
    display: flex;
    justify-content: flex-end; /* Aligne à droite */
}

.nav-search-container {
    display: flex;
    align-items: center;
    justify-content: center; /* Centre la loupe */
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.2);
    border-radius: var(--r);
    height: 38px;
    width: 38px;
    overflow: hidden;
    transition: width .3s ease;
    cursor: pointer;
    position: relative;
}

/* État ouvert - S'étend vers la gauche */
.nav-search-container.is-open {
    width: 240px; /* Réduit de 280 à 240px */
    justify-content: flex-start; /* Aligne le contenu à gauche une fois ouvert */
    cursor: default;
}

/* Loupe centrée au repos, puis à gauche quand ouvert */
.nav-search-icon-fixed {
    color: rgba(255,255,255,.7);
    flex-shrink: 0;
    transition: margin .3s ease;
}

.nav-search-container.is-open .nav-search-icon-fixed {
    margin-left: 12px;
    margin-right: 8px;
}

/* ═══════════════════════════════════════════════════════════
   FIX LOUPE VISIBLE
   ═══════════════════════════════════════════════════════════ */

/* Loupe centrée au repos */
.nav-search-icon-fixed {
    color: rgba(255,255,255,.7);
    flex-shrink: 0;
    margin: 0; /* Reset */
    transition: margin .3s ease;
}

/* Loupe à gauche quand ouvert */
.nav-search-container.is-open .nav-search-icon-fixed {
    margin-left: 12px !important;
    margin-right: 8px !important;
}

/* ═══════════════════════════════════════════════════════════
   RECHERCHE FINALE - Input | Loupe | Bouton vert
   ═══════════════════════════════════════════════════════════ */

/* Reset des anciennes règles */
.nav-search-container {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: rgba(255,255,255,.1) !important;
    border: 1px solid rgba(255,255,255,.2) !important;
    border-radius: var(--r) !important;
    height: 38px !important;
    width: 38px !important;
    overflow: hidden !important;
    transition: width .3s ease !important;
    cursor: pointer !important;
}

.nav-search-container.is-open {
    width: 240px !important;
    cursor: default !important;
}

/* Form avec input */
.nav-search-form-expand {
    display: flex !important;
    flex: 1 !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transition: opacity .3s ease !important;
    margin-left: 12px !important;
}

.nav-search-container.is-open .nav-search-form-expand {
    opacity: 1 !important;
    pointer-events: auto !important;
}

.nav-search-form-expand input[type="search"] {
    flex: 1 !important;
    border: none !important;
    outline: none !important;
    background: transparent !important;
    padding: 0 8px 0 0 !important;
    font-size: 13px !important;
    color: white !important;
    box-shadow: none !important;
    height: 38px !important;
    min-width: 0 !important;
}

.nav-search-form-expand input::placeholder {
    color: rgba(255,255,255,.5) !important;
}

/* Loupe au centre fermé, puis entre input et bouton ouvert */
.nav-search-icon-fixed {
    color: rgba(255,255,255,.7) !important;
    flex-shrink: 0 !important;
    margin: 0 !important;
}

.nav-search-container.is-open .nav-search-icon-fixed {
    margin: 0 8px !important;
}

/* Bouton submit vert caché puis visible */
.nav-search-submit-btn {
    width: 0 !important;
    height: 38px !important;
    background: #52B788 !important;
    border: none !important;
    color: white !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    flex-shrink: 0 !important;
    overflow: hidden !important;
    transition: width .3s ease, background .2s !important;
}

.nav-search-container.is-open .nav-search-submit-btn {
    width: 38px !important;
}

.nav-search-submit-btn:hover {
    background: #469971 !important;
}

/* ═══════════════════════════════════════════════════════════
   RECHERCHE EXACTE COMME TES CAPTURES
   ═══════════════════════════════════════════════════════════ */

/* Container = form */
.nav-search-container {
    display: flex !important;
    align-items: center !important;
    background: rgba(255,255,255,.15) !important;
    border: 1px solid rgba(255,255,255,.25) !important;
    border-radius: var(--r) !important;
    height: 38px !important;
    width: 38px !important;
    overflow: hidden !important;
    transition: width .3s ease !important;
    cursor: pointer !important;
}

.nav-search-container.is-open {
    width: 200px !important;
    cursor: text !important;
}

/* Input caché puis visible */
.nav-search-container input[type="search"] {
    flex: 1 !important;
    border: none !important;
    outline: none !important;
    background: transparent !important;
    padding: 0 0 0 12px !important;
    font-size: 13px !important;
    color: white !important;
    box-shadow: none !important;
    height: 38px !important;
    width: 0 !important;
    opacity: 0 !important;
    transition: opacity .3s ease, width .3s ease !important;
}

.nav-search-container.is-open input[type="search"] {
    width: auto !important;
    opacity: 1 !important;
}

.nav-search-container input::placeholder {
    color: rgba(255,255,255,.6) !important;
}

/* Bouton loupe - toujours visible */
.nav-search-icon-btn {
    width: 38px !important;
    height: 38px !important;
    background: transparent !important;
    border: none !important;
    color: rgba(255,255,255,.8) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    flex-shrink: 0 !important;
    transition: background .2s !important;
}

.nav-search-icon-btn:hover {
    background: rgba(255,255,255,.1) !important;
}

/* ═══════════════════════════════════════════════════════════
   VIRER LE POINT PARASITE
   ═══════════════════════════════════════════════════════════ */

.nav-search-container::before,
.nav-search-container::after,
.nav-search-wrap::before,
.nav-search-wrap::after,
.nav-search-icon-btn::before,
.nav-search-icon-btn::after {
    display: none !important;
    content: none !important;
}

.nav-search-container,
.nav-search-wrap {
    list-style: none !important;
}

/* ═══════════════════════════════════════════════════════════
   FIX LOUPE TROP PETITE
   ═══════════════════════════════════════════════════════════ */

.nav-search-icon-btn svg {
    width: 16px !important;
    height: 16px !important;
    min-width: 16px !important;
    min-height: 16px !important;
}

/* S'assurer que le bouton ne compresse pas le SVG */
.nav-search-icon-btn {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    padding: 0 !important;
}

/* ═══════════════════════════════════════════════════════════
   CENTRER PARFAITEMENT LA LOUPE DANS LE CARRÉ
   ═══════════════════════════════════════════════════════════ */

.nav-search-icon-btn {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* Hover sur TOUT le carré */
.nav-search-container:not(.is-open):hover {
    background: rgba(255,255,255,.2) !important;
}

/* ═══════════════════════════════════════════════════════════
   FORCING BRUTAL - CENTRAGE LOUPE
   ═══════════════════════════════════════════════════════════ */

/* Reset total du bouton */
button.nav-search-icon-btn {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    min-height: 38px !important;
    max-width: 38px !important;
    max-height: 38px !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: transparent !important;
    border: none !important;
}

/* SVG centré */
button.nav-search-icon-btn svg {
    display: block !important;
    margin: auto !important;
}

/* Hover sur le container entier quand fermé */
form.nav-search-container:not(.is-open) {
    transition: background .2s !important;
}

form.nav-search-container:not(.is-open):hover {
    background: rgba(255,255,255,.22) !important;
}

form.nav-search-container:not(.is-open):hover button.nav-search-icon-btn {
    background: transparent !important;
}

/* ═══════════════════════════════════════════════════════════
   DÉCALER LA LOUPE VERS LA GAUCHE
   ═══════════════════════════════════════════════════════════ */

button.nav-search-icon-btn svg {
    display: block !important;
    margin: auto !important;
    margin-right: 4px !important; /* Décale vers la gauche */
}

/* ═══════════════════════════════════════════════════════════
   LOUPE - 17px fermé, 14px ouvert
   ═══════════════════════════════════════════════════════════ */

button.nav-search-icon-btn svg {
    display: block !important;
    margin: auto !important;
    margin-right: 17px !important; /* Décale vers la gauche quand fermé */
    transition: margin-right .3s ease !important;
}

/* Quand ouvert, décale à 14px */
.nav-search-container.is-open button.nav-search-icon-btn svg {
    margin-right: 14px !important;
}

/* ═══════════════════════════════════════════════════════════
   CORRECTIONS PAGE D'ACCUEIL
   ═══════════════════════════════════════════════════════════ */

/* 1. FOOTER - Alignement vertical copyright et liens */
.site-footer .site-info,
.site-footer .footer-navigation,
.footer-bottom {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
}

.site-footer .site-info > *,
.site-footer .footer-navigation > * {
    margin: 0 !important;
}

/* 3. BOUTON CONNEXION - Même hauteur que recherche (38px) */
.btn-connexion {
    height: 38px !important;
    padding: 0 16px !important;
    display: inline-flex !important;
    align-items: center !important;
}

/* ══ Icône de carte — léger balancement au survol (accueil, ressourcerie, services, recherche, espace adh.) ══ */
.cftc-card-ico {
    transition: transform 0.28s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    transform-origin: 50% 55%;
}

a.home-ressource-card:not(.home-ressource-card--locked):hover .cftc-card-ico,
.rs-doc-card:not(.rs-doc-card--locked):hover .cftc-card-ico,
.rs-pinned-item:not(.rs-pinned-item--locked):hover .cftc-card-ico,
.svc-droit-header:hover .cftc-card-ico,
.svc-droit-item:not(.svc-droit-item--locked):hover .cftc-card-ico,
.svc-logement-card:not(.svc-card-locked):hover .cftc-card-ico,
.svc-form-item:not(.svc-form-item--locked):hover .cftc-card-ico,
.svc-calc-tile:not(.svc-calc-tile-locked):hover .cftc-card-ico,
a.svc-outil-card:hover .cftc-card-ico,
a.srch-card-flat:hover .cftc-card-ico,
body.ea-page .ea-doc-item:hover .cftc-card-ico {
    transform: scale(1.08) rotate(-3deg);
}

@keyframes cftcCalloutIcoIdle {
    0%, 100% { transform: scale(1) rotate(0deg); }
    35% { transform: scale(1.1) rotate(-4deg); }
    70% { transform: scale(1.05) rotate(3deg); }
}

/* Bulles d’encadré — picto à gauche, mouvement permanent */
.cftc-actu-callout{
    position:relative;
    display:block;
    margin:1.5em 0 1.35em 22px;
    padding:16px 18px 14px 22px;
    border-radius:16px 16px 16px 8px;
    border:1.5px solid color-mix(in srgb,#0F3F93 18%,#fff);
    background:color-mix(in srgb,#0F3F93 7%,#fff);
    font-style:normal;
    box-shadow:0 6px 18px rgba(15,23,42,.05);
    quotes:none;
}
.cftc-actu-callout::before,
.cftc-actu-callout-ico{
    position:absolute;
    left:-20px;
    top:12px;
    right:auto;
    width:34px;
    height:34px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:800;
    font-size:17px;
    line-height:1;
    font-family:Axiforma,system-ui,sans-serif;
    background:#0F3F93;
    color:#fff;
    box-shadow:0 3px 10px rgba(15,63,147,.32);
    transform-origin:50% 55%;
    z-index:1;
    animation:cftcCalloutIcoIdle 2.4s ease-in-out infinite;
}
.cftc-actu-callout::before{content:"i";}
.cftc-actu-callout--question{border-color:color-mix(in srgb,#20B29E 28%,#fff);background:color-mix(in srgb,#20B29E 10%,#fff);}
.cftc-actu-callout--question::before,
.cftc-actu-callout--question .cftc-actu-callout-ico{content:"?";background:#20B29E;box-shadow:0 3px 10px rgba(32,178,158,.32);}
.cftc-actu-callout--warn{border-color:color-mix(in srgb,#c2410c 22%,#fff);background:#fff6eb;}
.cftc-actu-callout--warn::before,
.cftc-actu-callout--warn .cftc-actu-callout-ico{content:"!";background:#c2410c;box-shadow:0 3px 10px rgba(194,65,12,.32);}
.cftc-actu-callout--tip{border-color:color-mix(in srgb,#FBBB1D 40%,#fff);background:#fff8e4;}
.cftc-actu-callout--tip::before,
.cftc-actu-callout--tip .cftc-actu-callout-ico{content:"!";background:#FBBB1D;color:#212E81;box-shadow:0 3px 10px rgba(251,187,29,.38);}
.cftc-actu-callout:has(.cftc-actu-callout-ico)::before{content:none;display:none;}
.cftc-actu-callout-bubble{margin:0;padding:0;background:transparent;border:0;}
.cftc-actu-callout-kicker{
    margin:0 0 6px;
    font-size:11px;
    font-weight:800;
    letter-spacing:.07em;
    text-transform:uppercase;
    color:#0F3F93;
    font-style:normal;
}
.cftc-actu-callout--question .cftc-actu-callout-kicker{color:#0f776d;}
.cftc-actu-callout--warn .cftc-actu-callout-kicker{color:#c2410c;}
.cftc-actu-callout--tip .cftc-actu-callout-kicker{color:#8A6A2A;}
.cftc-actu-callout p{margin:0 0 .5em;font-style:normal;}
.cftc-actu-callout p:last-child{margin-bottom:0;}

/* Survol d’un bloc « réservé adhérent » : oscillation du cadenas / icône (global, ex. accueil, ressourcerie, services) */
@keyframes cftcAdhGateWobble {
    0%,
    100% {
        transform: rotate(0);
    }
    20% {
        transform: rotate(-12deg);
    }
    40% {
        transform: rotate(10deg);
    }
    60% {
        transform: rotate(-7deg);
    }
    80% {
        transform: rotate(5deg);
    }
}

.cftc-open-adh-gate:hover .cftc-card-ico,
.cftc-open-adh-gate:hover .svc-form-icon::before,
.cftc-open-adh-gate:hover .svc-outil-icon {
    animation: cftcAdhGateWobble 0.55s ease;
}

/* Négociations : le bouton gate est séparé du 🔒 — pas de wobble (animation float dans le bloc) */

/* Calculateurs Vos services : tuiles verrouillées sans classe gate (ouverture via JS) */
.svc-calc-tile-locked:hover .svc-calc-tile-icon.cftc-card-ico {
    animation: cftcAdhGateWobble 0.55s ease;
}

/* Surlignage lisible (recherche / surbrillance) */
mark{
    background:#ffd86a;
    color:#1a2340;
    padding:0 2px;
    border-radius:3px;
}
body.dark mark{
    background:#f7b955;
    color:#0f172a;
}

/* ══ Accessibilité : mouvement réduit (WCAG 2.3.3) ══ */
@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto !important;
    }
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        transition-delay: 0ms !important;
    }
    .cftc-theme-toggle:hover,
    .cftc-theme-toggle:hover::after {
        transform: none !important;
    }
    .cftc-card-ico,
    a.home-ressource-card:not(.home-ressource-card--locked):hover .cftc-card-ico,
    .rs-doc-card:not(.rs-doc-card--locked):hover .cftc-card-ico,
    .rs-pinned-item:not(.rs-pinned-item--locked):hover .cftc-card-ico,
    .svc-droit-header:hover .cftc-card-ico,
    .svc-droit-item:not(.svc-droit-item--locked):hover .cftc-card-ico,
    .svc-logement-card:not(.svc-card-locked):hover .cftc-card-ico,
    .svc-form-item:not(.svc-form-item--locked):hover .cftc-card-ico,
    .svc-calc-tile:not(.svc-calc-tile-locked):hover .cftc-card-ico,
    a.svc-outil-card:hover .cftc-card-ico,
    a.srch-card-flat:hover .cftc-card-ico,
    body.ea-page .ea-doc-item:hover .cftc-card-ico {
        transform: none !important;
    }
    .cftc-open-adh-gate:hover .cftc-card-ico,
    .cftc-open-adh-gate:hover .svc-form-icon::before,
    .cftc-open-adh-gate:hover .svc-outil-icon,
    .svc-calc-tile-locked:hover .svc-calc-tile-icon.cftc-card-ico {
        animation: none !important;
    }
}

/* ══ Hotfix mobile navbar/logo (2026-04) ══ */
.nav-bubble .custom-logo-link,
.nav-bubble a.custom-logo-link{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    margin:0!important;
    width:100%;
    height:100%;
}

/* Logo compact + recherche : seulement vraie plage mobile (≤900px), pas 901–1024 */
@media (max-width: 900px){
    .navbar-custom{padding:0 14px!important}
    .nav-bubble{
        position:relative!important;
        left:0!important;
        top:0!important;
        width:84px!important;
        min-width:84px!important;
        height:72px!important;
        display:flex!important;
        align-items:center!important;
        justify-content:center!important;
    }
    .nav-bubble::before{display:none!important}
    /* Mobile : aplat blanc sur l’image logo (lien transparent) */
    .nav-bubble .custom-logo-link,
    .nav-bubble a.custom-logo-link{
        background:transparent!important;
        padding:0!important;
        box-shadow:none!important;
        border:none!important;
    }
    .nav-bubble .custom-logo-link img,
    .nav-bubble img.custom-logo{
        width:52px!important;
        height:auto!important;
        padding:7px 8px!important;
        background:#fff!important;
        border:none!important;
        box-shadow:0 2px 8px rgba(0,0,0,.14)!important;
        filter:none!important;
        border-radius:6px!important;
    }
    body.dark .nav-bubble .custom-logo-link img,
    body.dark .nav-bubble img.custom-logo{
        background:#fff!important;
        box-shadow:0 2px 10px rgba(0,0,0,.22)!important;
        filter:none!important;
    }
    .nav-content-wrapper{
        margin-left:0!important;
        min-width:0;
        width:100%;
        gap:8px;
        align-items:center;
    }
    .nav-tools{
        min-width:0;
        margin-left:auto;
        gap:8px!important;
        flex-wrap:nowrap;
    }
    .nav-search-wrap{min-width:0}
    .nav-search-container{
        max-width:42px;
        overflow:visible;
    }
    .nav-search-container.is-open{
        width:min(74vw,280px)!important;
        max-width:min(74vw,280px)!important;
    }
}

@media (max-width: 900px){
    .topbar{padding-left:12px!important;padding-right:12px!important}
    .navbar-custom{
        min-height:64px!important;
        justify-content:flex-start!important;
    }
    .nav-tools .btn-nav{
        margin-left:8px!important;
        padding:9px 12px!important;
        font-size:12px!important;
    }
    .btn-mon-espace,.btn-connexion{
        padding:7px 10px!important;
        font-size:12px!important;
    }
}

/* Menu mobile hamburger */
.nav-mobile-toggle{
    display:none;
    width:40px;
    height:40px;
    border-radius:10px;
    border:1px solid rgba(255,255,255,.28);
    background:rgba(255,255,255,.1);
    cursor:pointer;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:5px;
    padding:0;
}
.nav-mobile-toggle span{
    width:18px;height:2px;background:#fff;border-radius:2px;display:block;
}
.nav-mobile-panel{
    position:fixed;
    top:0;
    left:0;
    right:0;
    z-index:10070;
    background:var(--surface);
    border-top:1px solid var(--border);
    box-shadow:0 10px 28px rgba(0,0,0,.18);
    max-height:100vh;
    max-height:100dvh;
    overflow:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
    touch-action:pan-y;
}
/* Barre d’admin WP : le panneau commence sous elle (sinon « trou » + double marge) */
body.admin-bar .nav-mobile-panel{
    top:32px;
    max-height:calc(100vh - 32px);
    max-height:calc(100dvh - 32px);
}
@media screen and (max-width:782px){
    body.admin-bar .nav-mobile-panel{
        top:46px;
        max-height:calc(100vh - 46px);
        max-height:calc(100dvh - 46px);
    }
}
.nav-mobile-panel-inner{
    padding:calc(12px + env(safe-area-inset-top,0px)) 16px calc(28px + env(safe-area-inset-bottom,0px));
}
.nav-mobile-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-bottom:12px;
    position:sticky;
    top:0;
    z-index:2;
    padding-bottom:8px;
    margin-top:-2px;
    background:var(--surface);
    border-bottom:1px solid var(--border);
}
.nav-mobile-head strong{font-size:15px;font-weight:700;color:var(--b1);}
.nav-mobile-close{
    width:40px;height:40px;border:none;border-radius:10px;background:var(--off);color:var(--b1);
    font-size:18px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
    flex-shrink:0;
}
body.dark .nav-mobile-panel{
    background:var(--surface,#161d2e)!important;
}
body.dark .nav-mobile-head{
    background:var(--surface,#161d2e)!important;
    border-bottom-color:var(--border,#2d3d5c)!important;
}
body.dark .nav-mobile-head strong{
    color:#fff!important;
}
body.dark .nav-mobile-close{
    background:var(--surface-alt,#1a2438)!important;
    color:#fff!important;
}
body.dark .nav-mobile-kicker{
    color:var(--light,#7a889c)!important;
}
.nav-mobile-kicker{
    margin-top:12px;margin-bottom:8px;font-size:11px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:var(--light);
}
.nav-mobile-search form{display:flex;gap:8px;}
.nav-mobile-search input{
    flex:1;min-width:0;border:1.5px solid var(--border);border-radius:10px;padding:10px 12px;font-size:15px;
}
.nav-mobile-search button{
    border:none;background:var(--b3);color:#fff;border-radius:10px;padding:0 12px;font-size:15px;cursor:pointer;
}
.nav-mobile-links{margin-top:10px;display:flex;flex-direction:column;gap:6px;}
.nav-mobile-menu{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;}
.nav-mobile-menu--extra{margin-top:0;}
.nav-mobile-menu li{margin:0;padding:0;}
.nav-mobile-menu a{
    display:block;padding:12px 14px;border-radius:10px;color:var(--text)!important;background:var(--off);font-weight:600;font-size:15px;line-height:1.35;text-decoration:none;
}
.nav-mobile-menu .sub-menu{
    display:flex!important;
    flex-direction:column;
    gap:4px;
    list-style:none;
    margin:4px 0 6px 12px;
    padding:0;
}
.nav-mobile-menu .sub-menu a{
    font-size:14px;
    font-weight:550;
    padding:10px 14px;
    background:transparent;
    border:1px solid var(--border);
}
.nav-mobile-actions{margin-top:12px;display:flex;flex-direction:column;gap:8px;}
.nav-mobile-actions a{
    display:block;padding:12px 14px;border-radius:10px;border:1.5px solid var(--border);color:var(--text)!important;text-decoration:none;font-weight:600;font-size:15px;line-height:1.35;
}
.nav-mobile-sep{height:1px;background:var(--border);margin:6px 0 2px;}
.nav-mobile-actions a.is-adh{
    background:var(--teal);border-color:var(--teal);color:#fff!important;
}

/* Menu complet + modules hero : à partir de 1430px. En dessous : hamburger, sans élections/vidéo. */
@media (max-width: 1429px){
    .nav-mobile-toggle{display:inline-flex;}
    .nav-mobile-theme-wrap{
        display:inline-flex;
        align-items:center;
        margin: 0;
    }
    .nav-tools .nav-search-wrap,
    .nav-tools .nav-user-wrap,
    .nav-tools .btn-connexion,
    .nav-tools .btn-nav{display:none!important;}
    .nav-links{display:none!important;}
    .nav-content-wrapper{
        margin-left:0!important;
        justify-content:flex-end!important;
        min-width:0!important;
    }
    .navbar-custom .menu,
    .navbar-custom .sub-menu{
        display:none!important;
    }
}

@media (min-width: 1430px){
    .nav-mobile-toggle{display:none;}
    .nav-links{display:flex;}
    .navbar-custom .nav-links > .menu{display:flex;}
}

body.nav-mobile-open{
    overflow:hidden;
}
body.nav-mobile-open #cftc-quickdock,
body.nav-mobile-open #cftc-contact-banner,
body.nav-mobile-open .cftc-fab.cftc-fab--totop,
body.nav-mobile-open .ccn-ai-tab,
body.nav-mobile-open .cftc-ccn-shortcut{
    display:none !important;
}

/* Tres petits ecrans: supprimer tout scroll horizontal parasite */
@media (max-width: 640px){
    html,body,.site,.site-content,.site-main{
        width:100%;
        max-width:100vw;
        overflow-x:hidden!important;
    }
    .navbar-custom,.topbar,.footer,.footer-content,.footer-bottom{
        max-width:100vw!important;
    }
}

/* Espace adherent: remove duplicate Kadence top title band */
body.page-template-espace-adherent-php .entry-hero-container-inner,
body.page-template-espace-adherent-php .entry-header,
body.page-template-espace-adherent-php .title-entry-header,
body.page-template-espace-adherent-php .content-title,
body.page-template-espace-adherent-php .page-header,
body.page-template-espace-adherent-php .site-main-header-wrap{
    display:none!important;
}

/* Front polish pass (1): consistency, softer hovers, dark readability */
.rp-quick,
.rp-dt-filter,
.svc-quick,
.svc-forms-cat,
.svc-media-tab,
.wk-back-link,
.wk-doc-timeline-btn {
    transition: background .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease, transform .12s ease !important;
}

.rp-quick:hover,
.svc-quick:hover,
.wk-back-link:hover {
    transform: translateY(-1px) !important;
}

.svc-form-dl:hover,
.svc-logement-cta:hover,
.svc-droit-item-link:hover,
.wk-doc-timeline-btn:hover {
    filter: saturate(.92) brightness(.95);
}

body.dark .rp-dt-filter:not(.active),
body.dark .svc-forms-cat:not(.active),
body.dark .svc-media-tab:not(.active),
body.dark .svc-quick:not(.active) {
    background: var(--surface-alt) !important;
    color: var(--mid) !important;
    border-color: var(--border) !important;
}

body.dark .svc-forms-cat.active,
body.dark .svc-media-tab.active,
body.dark .rp-dt-filter.active,
body.dark .svc-quick.active {
    background: color-mix(in srgb, var(--b3) 72%, #0e1523) !important;
    border-color: color-mix(in srgb, var(--b3) 70%, #0e1523) !important;
    color: #f3f7ff !important;
}

/* Avoid small text clipping in action chips/buttons */
.svc-form-dl,
.svc-logement-cta,
.svc-droit-item-link,
.wk-theme-pill,
.wk-chip,
.rp-prem-badge,
.rp-badge {
    line-height: 1.28;
}

/* Smart search suggestions (navbar + home + recherche) */
.cftc-smart-form {
    position: relative;
}
.cftc-smart-anchor {
    position: relative;
}
.nav-search-wrap.cftc-smart-anchor,
.cftc-smart-anchor {
    overflow: visible;
}
.cftc-smart-panel {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    right: auto;
    z-index: 10020;
    border: 1px solid rgba(0, 0, 0, .1);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(0, 0, 0, .14);
    overflow: hidden;
    min-width: min(420px, calc(100vw - 24px));
    max-width: min(520px, calc(100vw - 16px));
    max-height: min(56vh, 360px);
    box-sizing: border-box;
}
.cftc-smart-panel__head {
    padding: 8px 10px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .6px;
    text-transform: uppercase;
    color: var(--mid, #64748b);
    background: #f7faff;
    border-bottom: 1px solid rgba(0, 0, 0, .08);
}
.cftc-smart-panel__list {
    display: flex;
    flex-direction: column;
    overflow: auto;
}
.cftc-smart-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 10px 12px;
    text-decoration: none;
    color: var(--text, #1a2340);
    border-top: 1px solid rgba(0, 0, 0, .05);
}
.cftc-smart-item:first-child {
    border-top: none;
}
.cftc-smart-item:hover {
    background: #f2f6fb;
}
.cftc-smart-item__main {
    display: flex;
    align-items: center;
    min-width: 0;
    flex: 1 1 auto;
}
.cftc-smart-item__label {
    font-size: 13px;
    font-weight: 700;
    display: block;
    line-height: 1.25;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
}
.cftc-smart-item__meta {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    font-size: 11px;
    color: var(--mid, #64748b);
    white-space: nowrap;
    flex-shrink: 0;
    min-width: 0;
    text-align: right;
    padding-left: 10px;
    margin-top: 0;
}
.cftc-smart-panel .cftc-smart-item__meta-icon,
.cftc-smart-panel .cftc-smart-item__meta-text,
.cftc-smart-panel .cftc-smart-item__label {
    position: relative;
    top: 0 !important;
}
.cftc-smart-panel .cftc-smart-item__meta-text {
    line-height: 1.2;
}
.cftc-smart-item__meta-icon {
    width: 15px;
    height: 15px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    flex-shrink: 0;
}
.cftc-smart-item__meta-text {
    display: inline-block;
}
.cftc-smart-item--empty {
    color: var(--mid, #64748b);
    font-size: 12px;
}
body.dark .cftc-smart-panel {
    background: var(--surface, #111827);
    border-color: var(--border, #2b3548);
}
body.dark .cftc-smart-panel__head {
    background: var(--surface-alt, #0f172a);
    color: var(--mid, #93a4c8);
    border-bottom-color: var(--border, #2b3548);
}
body.dark .cftc-smart-item {
    color: var(--text, #e4ecff);
    border-top-color: var(--border, #2b3548);
}
body.dark .cftc-smart-item:hover {
    background: var(--surface-alt, #1b2436);
}
body.dark .cftc-smart-item__meta,
body.dark .cftc-smart-item--empty {
    color: var(--mid, #93a4c8);
}

/* ── Icône / emoji séparé du texte dans les conteneurs flex (span.cftc-ico) ── */
.cftc-ico {
    display: inline-block;
    flex-shrink: 0;
    line-height: 1;
    vertical-align: middle;
    position: relative;
    top: 0;
}

.home-ressearch-tag,
.home-hero-btn-primary,
.home-hero-btn-secondary,
.topbar-link,
.btn-nav,
.btn-connexion,
.nav-user-dropdown a,
.ng-dossier-cta,
.ng-accord-btn,
.srch-card-rep-cta,
.srch-btn,
.svc-aide-btn,
.svc-form-dl,
.svc-locked-btn,
.rp-prem-btn-sec {
    display: inline-flex;
    align-items: center;
    gap: 0.4em;
    line-height: 1.25;
}

.ng-tab .cftc-ico,
.rp-quick .cftc-ico,
.ng-follow-btn .cftc-ico,
.srch-btn .cftc-ico,
.svc-aide-btn .cftc-ico {
    top: 0 !important;
}

.topbar-link svg,
.btn-nav svg,
.btn-connexion svg,
.nav-user-dropdown a svg,
.ng-tab svg,
.rp-quick svg,
.svc-quick svg,
.ng-follow-btn svg,
.srch-btn svg,
.home-hero-btn-primary svg,
.home-hero-btn-secondary svg,
.ng-dossier-cta svg,
.ng-accord-btn svg,
.srch-card-rep-cta svg,
.svc-aide-btn svg,
.svc-form-dl svg,
.svc-locked-btn svg,
.rp-prem-btn-sec svg {
    display: block;
    flex-shrink: 0;
    vertical-align: middle;
}

.topbar-link > .cftc-ico,
.btn-nav > .cftc-ico,
.btn-connexion > .cftc-ico,
.ng-tab > .cftc-ico,
.rp-quick > .cftc-ico,
.svc-quick > .cftc-ico,
.ng-follow-btn > .cftc-ico,
.svc-aide-btn > .svc-aide-ico {
    align-self: center;
}

/* ── Tooltip global — bulle JS (.cftc-tip + data-tip="…") ── */
.cftc-tooltip-bubble {
    position: absolute;
    z-index: 99999;
    pointer-events: none;
    background: linear-gradient(135deg, #1e2d5a 0%, #152042 100%);
    color: #f1f5f9;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.35;
    white-space: nowrap;
    padding: 6px 10px;
    border-radius: 9px;
    border: 1px solid rgba(38,105,178,.35);
    box-shadow: 0 8px 24px rgba(8,15,35,.35);
    max-width: 85vw;
    opacity: 0;
    transition: opacity .16s ease, transform .16s ease;
    transform: translateY(4px);
}
.cftc-tooltip-bubble.is-visible {
    opacity: 1;
    transform: translateY(0);
}
/* Flèche */
.cftc-tooltip-bubble::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 6px solid transparent;
    border-top-color: #1e2d5a;
}
body.dark .cftc-tooltip-bubble {
    background: linear-gradient(135deg, #1a2336 0%, #121a2b 100%);
    color: #e8eef5;
    border-color: rgba(38,105,178,.2);
    box-shadow: 0 10px 28px rgba(0,0,0,.45);
}
body.dark .cftc-tooltip-bubble::after {
    border-top-color: #1a2336;
}

/* Onglet flottant CCN — bandeau vertical au survol, animation légère en continu */
.cftc-ccn-shortcut,
.cftc-ccn-shortcut:hover,
.cftc-ccn-shortcut:focus,
.cftc-ccn-shortcut:active,
.cftc-ccn-shortcut:visited,
.cftc-ccn-shortcut:focus-visible {
    appearance: none !important;
    -webkit-appearance: none !important;
    background-image: none !important;
    text-transform: none !important;
    text-shadow: none !important;
    text-decoration: none !important;
    color: #fff !important;
    filter: none !important;
}
.cftc-ccn-shortcut {
    position: fixed;
    top: 50%;
    right: 0;
    z-index: 9000;
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    width: 38px;
    height: auto;
    min-height: 0;
    max-height: 42px;
    max-width: none;
    margin: 0;
    padding: 12px 0;
    border: 0;
    border-radius: 19px 0 0 19px;
    background: linear-gradient(135deg, #52B788 0%, #2D6A4F 100%) !important;
    background-color: #2D6A4F !important;
    cursor: pointer;
    font-family: inherit;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1.15;
    box-shadow: -3px 0 14px rgba(45, 106, 79, 0.42), 0 0 18px rgba(82, 183, 136, 0.28);
    transform: translateY(-50%);
    overflow: hidden;
    white-space: nowrap;
    box-sizing: border-box;
    animation: cftcCcnGlow 2.8s ease-in-out infinite;
    transition: max-height 0.32s ease, padding 0.32s ease, background 0.18s ease;
}
.cftc-ccn-shortcut__pulse {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(
        180deg,
        rgba(255, 255, 255, 0.32) 0%,
        rgba(82, 183, 136, 0.12) 46%,
        rgba(45, 106, 79, 0.18) 100%
    );
    background-size: 100% 240%;
    animation: cftcCcnSheen 3.6s ease-in-out infinite;
    opacity: 0.85;
}
.cftc-ccn-shortcut:hover,
.cftc-ccn-shortcut:focus-visible {
    max-height: 560px;
    padding: 16px 0 22px;
    background: linear-gradient(135deg, #5ec99a 0%, #245A41 100%) !important;
    background-color: #245A41 !important;
    animation: none;
    box-shadow: -5px 0 22px rgba(45, 106, 79, 0.55), 0 0 26px rgba(82, 183, 136, 0.4);
}
.cftc-ccn-shortcut:focus-visible {
    outline: 2px solid #fbbb1d;
    outline-offset: -3px;
}
.cftc-ccn-shortcut__ico {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    animation: cftcCcnIco 2.6s ease-in-out infinite;
}
.cftc-ccn-shortcut__lbl {
    position: relative;
    z-index: 1;
    flex: 0 0 auto;
    writing-mode: vertical-rl;
    text-orientation: mixed;
    transform: rotate(180deg);
    white-space: nowrap;
    opacity: 0;
    overflow: visible;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-size: 11px;
    line-height: 1;
    padding: 2px 0;
    transition: opacity 0.22s ease 0.06s;
}
.cftc-ccn-shortcut:hover .cftc-ccn-shortcut__lbl,
.cftc-ccn-shortcut:focus-visible .cftc-ccn-shortcut__lbl {
    opacity: 1;
}
@keyframes cftcCcnSheen {
    0%, 100% { background-position: 0% 0%; }
    50% { background-position: 0% 100%; }
}
@keyframes cftcCcnIco {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-2px); }
}
@keyframes cftcCcnGlow {
    0%, 100% {
        box-shadow: -3px 0 12px rgba(45, 106, 79, 0.36), 0 0 14px rgba(82, 183, 136, 0.22);
    }
    50% {
        box-shadow: -5px 0 20px rgba(45, 106, 79, 0.62), 0 0 26px rgba(82, 183, 136, 0.48);
    }
}
@media (prefers-reduced-motion: reduce) {
    .cftc-ccn-shortcut__pulse,
    .cftc-ccn-shortcut__ico {
        animation: none;
    }
    .cftc-ccn-shortcut {
        animation: none;
        transition: none;
        box-shadow: -3px 0 14px rgba(45, 106, 79, 0.42), 0 0 18px rgba(82, 183, 136, 0.28);
    }
}
body.dark .cftc-ccn-shortcut {
    background: linear-gradient(135deg, #52B788 0%, #2D6A4F 100%) !important;
    background-color: #2D6A4F !important;
    color: #fff !important;
}
body.dark .cftc-ccn-shortcut:hover,
body.dark .cftc-ccn-shortcut:focus-visible {
    background: linear-gradient(135deg, #5ec99a 0%, #245A41 100%) !important;
    background-color: #245A41 !important;
}
@media (min-width: 1025px) {
    .cftc-ccn-shortcut { display: flex; }
}
@media print {
    .cftc-ccn-shortcut { display: none !important; }
}