/* --------------------------------------------------------------------------
   Header system
   -------------------------------------------------------------------------- */
.site-header {
    position: relative;
    z-index: 1000;
    width: 100%;
    transition: background-color 220ms ease, color 220ms ease, box-shadow 220ms ease;
}
.site-header--sticky { position: sticky; top: var(--bmp-sticky-top-offset, 0px); }
.admin-bar .site-header--sticky { top: calc(32px + var(--bmp-sticky-top-offset, 0px)); }
/* Ombre visible par défaut. Elle peut être désactivée dans les réglages du thème. */
.site-header--shadow { box-shadow: 0 8px 28px rgb(0 0 0 / 10%); }

.site-header__top {
    background: var(--bmp-header-top-bg, var(--wp--preset--color--primary));
    color: var(--bmp-header-top-text, #fff);
    transition: background-color 220ms ease, color 220ms ease;
}
.site-header__nav-row {
    background: var(--bmp-header-nav-bg, #fff);
    color: var(--bmp-header-nav-text, #444);
    border-bottom: 1px solid rgb(38 38 38 / 10%);
    transition: background-color 220ms ease, color 220ms ease;
}
.site-header__top-inner,
.site-header__single-row,
.site-header__centered {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    min-height: 80px;
}
.site-header__top-inner,
.site-header__centered { justify-content: space-between; }
.site-header__single-row { justify-content: flex-start; color: var(--bmp-header-nav-text, #444); }
.site-header--01,
.site-header--03,
.site-header--04 { background: var(--bmp-header-nav-bg, #fff); color: var(--bmp-header-nav-text, #444); }

.site-branding { flex: 0 0 auto; min-width: 0; }
.custom-logo-link { display: inline-flex; align-items: center; color: inherit; }
.site-logo-link--recolor { color: var(--bmp-header-logo-color, #009ADE); }
.site-logo-link--footer-recolor { color: var(--bmp-footer-logo-color, #0072A3); }
.site-header.is-scrolled .site-logo-link--recolor { color: var(--bmp-header-logo-scroll-color, #0072A3); }
.custom-logo { display: block; width: auto !important; height: var(--bmp-logo-height-desktop, 58px) !important; max-width: min(100%, 320px); object-fit: contain; }
svg.custom-logo { width: auto !important; max-width: min(100%, 320px); }
.site-title { color: inherit; text-decoration: none; font-weight: 700; }
.site-logo-stack { display: inline-grid; align-items: center; }
.site-logo-stack > * { grid-area: 1 / 1; }
.site-logo-link--alternate { opacity: 0; visibility: hidden; transition: opacity 180ms ease, visibility 180ms ease; }
.site-logo-link--default { opacity: 1; visibility: visible; transition: opacity 180ms ease, visibility 180ms ease; }
.site-header--swap-logo.is-scrolled .site-logo-link--default { opacity: 0; visibility: hidden; }
.site-header--swap-logo.is-scrolled .site-logo-link--alternate { opacity: 1; visibility: visible; }

.site-header__actions { display: flex; align-items: center; gap: 1rem; margin-left: auto; }
.site-header__actions--stack { flex-direction: column; align-items: flex-end; gap: 0.25rem; }

.primary-navigation { position: relative; }
.primary-menu,
.primary-menu ul,
.utility-menu,
.language-switcher ul,
.footer-menu,
.legal-menu { list-style: none; margin: 0; padding: 0; }
.primary-menu { display: flex; align-items: stretch; gap: 0.25rem; min-height: 54px; }
.primary-menu > li { position: relative; display: flex; align-items: stretch; }
.primary-menu > li > a {
    position: relative;
    display: flex;
    align-items: center;
    z-index: 2;
}
.primary-menu a {
    color: inherit;
    text-decoration: none;
    padding: 1rem 0.75rem;
    font-size: 16px;
    font-weight: 600;
    white-space: nowrap;
    transition: color var(--bmp-transition);
}
/* Mise en avant du lien actif / survolé. Le style est choisi dans les réglages du thème. */
.primary-menu > li > a::after {
    content: "";
    position: absolute;
    pointer-events: none;
    opacity: 0;
    background: currentColor;
    transition: opacity var(--bmp-transition), transform var(--bmp-transition), width var(--bmp-transition);
}
.primary-menu > .current-menu-item > a,
.primary-menu > .current-menu-ancestor > a,
.primary-menu > li.is-submenu-open > a,
.primary-menu > li:hover > a,
.primary-menu > li > a:hover,
.primary-menu > li > a:focus-visible { color: var(--bmp-header-hover, #0072a3); }
.site-header--scroll-effect.is-scrolled .primary-menu > .current-menu-item > a,
.site-header--scroll-effect.is-scrolled .primary-menu > .current-menu-ancestor > a,
.site-header--scroll-effect.is-scrolled .primary-menu > li.is-submenu-open > a,
.site-header--scroll-effect.is-scrolled .primary-menu > li:hover > a,
.site-header--scroll-effect.is-scrolled .primary-menu > li > a:hover,
.site-header--scroll-effect.is-scrolled .primary-menu > li > a:focus-visible { color: var(--bmp-header-scroll-hover, #0072a3); }

/* 1. Filet réellement collé au bord inférieur de l’entête. */
.site-header--menu-marker-underline-edge .primary-menu > li > a::after {
    left: 0.65rem;
    right: 0.65rem;
    bottom: 0;
    height: 3px;
    transform: scaleX(.35);
    transform-origin: center;
}
.site-header--menu-marker-underline-edge .primary-menu > .current-menu-item > a::after,
.site-header--menu-marker-underline-edge .primary-menu > .current-menu-ancestor > a::after,
.site-header--menu-marker-underline-edge .primary-menu > li.is-submenu-open > a::after,
.site-header--menu-marker-underline-edge .primary-menu > li:hover > a::after,
.site-header--menu-marker-underline-edge .primary-menu > li > a:focus-visible::after { opacity: 1; transform: scaleX(1); }

/* 2. Soulignement plus éditorial, uniquement sous le texte. */
.site-header--menu-marker-underline-text .primary-menu > li > a::after {
    left: .75rem;
    bottom: .72rem;
    width: calc(100% - 1.5rem);
    height: 2px;
    transform: scaleX(.35);
    transform-origin: left;
}
.site-header--menu-marker-underline-text .primary-menu > .current-menu-item > a::after,
.site-header--menu-marker-underline-text .primary-menu > .current-menu-ancestor > a::after,
.site-header--menu-marker-underline-text .primary-menu > li.is-submenu-open > a::after,
.site-header--menu-marker-underline-text .primary-menu > li:hover > a::after,
.site-header--menu-marker-underline-text .primary-menu > li > a:focus-visible::after { opacity: 1; transform: scaleX(1); }

/* 3. Filet supérieur. */
.site-header--menu-marker-topline .primary-menu > li > a::after {
    left: .65rem;
    right: .65rem;
    top: 0;
    height: 3px;
    transform: scaleX(.35);
}
.site-header--menu-marker-topline .primary-menu > .current-menu-item > a::after,
.site-header--menu-marker-topline .primary-menu > .current-menu-ancestor > a::after,
.site-header--menu-marker-topline .primary-menu > li.is-submenu-open > a::after,
.site-header--menu-marker-topline .primary-menu > li:hover > a::after,
.site-header--menu-marker-topline .primary-menu > li > a:focus-visible::after { opacity: 1; transform: scaleX(1); }

/* 4. Pastille légère. */
.site-header--menu-marker-pill .primary-menu > li > a {
    margin-block: .6rem;
    padding-block: .4rem;
    border-radius: 999px;
}
.site-header--menu-marker-pill .primary-menu > .current-menu-item > a,
.site-header--menu-marker-pill .primary-menu > .current-menu-ancestor > a,
.site-header--menu-marker-pill .primary-menu > li.is-submenu-open > a,
.site-header--menu-marker-pill .primary-menu > li:hover > a,
.site-header--menu-marker-pill .primary-menu > li > a:focus-visible {
    background: color-mix(in srgb, currentColor 12%, transparent);
}
.site-header--menu-marker-pill .primary-menu > li > a::after,
.site-header--menu-marker-text .primary-menu > li > a::after { display: none; }

.submenu-toggle {
    appearance: none;
    border: 0;
    background: transparent;
    color: inherit;
    width: 38px;
    height: 38px;
    position: relative;
    margin-left: -0.4rem;
}
.submenu-toggle-icon::before,
.submenu-toggle-icon::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 10px;
    height: 2px;
    background: currentColor;
    transform: translate(-50%, -50%);
}
.submenu-toggle-icon::after { transform: translate(-50%, -50%) rotate(90deg); transition: transform var(--bmp-transition); }
.submenu-toggle[aria-expanded="true"] .submenu-toggle-icon::after { transform: translate(-50%, -50%) rotate(0); }
.sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 240px;
    padding: 0.5rem !important;
    background: var(--wp--preset--color--white, #fff);
    color: var(--wp--preset--color--text, #444);
    border: 1px solid rgb(38 38 38 / 12%);
    border-radius: 0;
    box-shadow: 0 14px 40px rgb(0 0 0 / 14%);
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity var(--bmp-transition), transform var(--bmp-transition), visibility var(--bmp-transition);
}
.sub-menu a { display: block; padding: 0.7rem 0.8rem; border-radius: 0; }
.submenu-toggle[aria-expanded="true"] + .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }

.language-switcher--classic ul { display: flex; border: 1px solid currentColor; border-radius: 12px; overflow: hidden; }
.language-switcher a {
    display: block;
    min-width: 42px;
    padding: 0.6rem 0.7rem;
    color: inherit;
    text-decoration: none;
    text-align: center;
    font-weight: 600;
}
.language-switcher--classic a[aria-current="page"] { background: var(--wp--preset--color--white, #fff); color: var(--wp--preset--color--primary-dark, #0072a3); }
.easy-read-switch__short { display: none; }
.easy-read-switch {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: 42px;
    padding: 0.45rem 0.9rem;
    color: inherit;
    border: 2px solid currentColor;
    border-radius: 12px;
    text-decoration: none;
    font-weight: 600;
}

/* Entête 01 : ligne unique. Le menu reste immédiatement après le logo ; les actions partent à droite. */
.site-header--01 .primary-navigation { margin-left: 0; margin-right: 0; min-width: 0; align-self: stretch; display: flex; }
.site-header--01 .primary-menu { min-height: 100%; gap: 0.15rem; }
.site-header--01 .primary-menu > li > a { min-height: 100%; padding-inline: 0.65rem; }
.site-header--01 .site-header__single-row { gap: 1rem; }
.site-header--01 .site-header__actions { align-self: center; justify-content: center; }

/* Classique = présentation historique compacte « FR / DE ». */
.site-header--01 .language-switcher--classic ul { align-items: center; border: 0; border-radius: 0; gap: 0.3rem; }
.site-header--01 .language-switcher--classic li { align-items: center; }
.site-header--01 .language-switcher--classic li + li::before { content: "/"; display: inline-flex; align-items: center; min-height: 40px; margin-right: 0.3rem; color: var(--bmp-header-nav-text, #444); line-height: 1; opacity: .72; }
.site-header--01 .language-switcher--classic a { display: inline-flex; align-items: center; min-width: 0; min-height: 40px; padding: 0 .08rem; line-height: 1; }
.site-header--01 .language-switcher--classic a[aria-current="page"] { background: transparent; color: var(--bmp-header-hover, #0072a3); }
.site-header--01 .easy-read-switch { color: var(--bmp-header-hover, #0072a3); min-width: 94px; min-height: 30px; padding: 0.15rem 0.85rem; border-radius: 999px; }
.site-header--01 .easy-read-switch__short { display: inline; }
.site-header--01 .easy-read-switch__long { display: none; }

/* Entête 02 : le filet de navigation touche le bord inférieur de la seconde ligne. */
.site-header--02 .site-header__nav-row > .bmp-container { display: flex; min-height: 54px; }
.site-header--02 .primary-navigation { display: flex; align-self: stretch; }
.site-header--02 .primary-menu { min-height: 100%; }
.site-header--02 .primary-menu > li > a { min-height: 100%; }

/* Entête 03 : logo centré au-dessus d’une navigation centrée. Le gap vertical
   est volontairement compact et configurable dans les réglages du thème. */
.site-header--03 .site-header__centered {
    min-height: 0;
    flex-wrap: wrap;
    justify-content: center;
    column-gap: 1rem;
    row-gap: var(--bmp-header-03-gap, 8px);
    padding-block: .75rem 0;
    transition: row-gap 240ms ease, padding-top 240ms ease;
}
.site-header--03 .site-branding {
    width: 100%;
    display: flex;
    justify-content: center;
    max-height: calc(var(--bmp-logo-height-desktop, 58px) + 8px);
    opacity: 1;
    transform: translateY(0);
    overflow: hidden;
    overflow-anchor: none;
    transition: max-height 240ms ease, opacity 200ms ease;
}
.site-header--03 .site-header__actions { margin-left: 0; }
.site-header--03 .primary-navigation { width: 100%; display: flex; justify-content: center; }

/* Option de réduction de l’entête 03 au défilement. La navigation reste en
   place et le logo se replie sans saut de mise en page. */
.site-header--03.site-header--collapse-logo-on-scroll.is-logo-collapsed .site-branding {
    max-height: 0;
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    transition: max-height 240ms ease, opacity 200ms ease, visibility 0s linear 240ms;
}
.site-header--03.site-header--collapse-logo-on-scroll.is-logo-collapsed .site-header__centered {
    row-gap: 0;
    padding-top: 0;
}

/* Entête 04 : deux moitiés de menu entourent un logo placé dans une colonne
   centrale indépendante. Le logo reste donc au centre du conteneur même si
   les libellés de gauche et de droite n’ont pas la même largeur. */
.site-header--04 .site-header__logo-center-wrap {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    row-gap: .25rem;
    padding-block: .5rem;
}
.site-header--04 .site-header__logo-center-mobile-branding { display: none; }
.site-header--04 .site-header__actions {
    justify-self: end;
    margin-left: 0;
}
.site-header--04 .primary-navigation--logo-center {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: stretch;
}
.site-header--04 .primary-navigation__side {
    min-width: 0;
    display: flex;
    align-items: stretch;
}
.site-header--04 .primary-navigation__side--left { justify-content: flex-end; }
.site-header--04 .primary-navigation__side--right { justify-content: flex-start; }
.site-header--04 .primary-menu--left { justify-content: flex-end; }
.site-header--04 .primary-menu--right { justify-content: flex-start; }
.site-header--04 .primary-navigation__logo {
    width: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-inline: clamp(1rem, 2.5vw, 2.5rem);
}
.site-header--04 .primary-navigation__side--left .sub-menu {
    left: auto;
    right: 0;
}

/* État après défilement : l’ombre apparaît toujours si l’effet de défilement est actif, même si l’ombre initiale a été désactivée. */
.site-header--scroll-effect.is-scrolled { box-shadow: 0 8px 28px rgb(0 0 0 / 10%); }
.site-header--scroll-effect.is-scrolled .site-header__top,
.site-header--scroll-effect.is-scrolled .site-header__nav-row,
.site-header--scroll-effect.is-scrolled.site-header--01,
.site-header--scroll-effect.is-scrolled.site-header--03,
.site-header--scroll-effect.is-scrolled.site-header--04 {
    background: var(--bmp-header-scroll-bg, #fff);
    color: var(--bmp-header-scroll-text, #444);
}
.site-header--scroll-effect.is-scrolled .primary-menu a:hover,
.site-header--scroll-effect.is-scrolled .primary-menu > .current-menu-item > a,
.site-header--scroll-effect.is-scrolled .primary-menu > .current-menu-ancestor > a { color: var(--bmp-header-scroll-hover, #0072a3); }
.site-header--scroll-effect.is-scrolled .easy-read-switch { color: var(--bmp-header-scroll-hover, #0072a3); }

 .menu-toggle {
    display: none;
    min-width: 48px;
    min-height: 48px;
    width: auto;
    border: 0;
    padding: 4px 6px;
    background: transparent;
    color: inherit;
    position: relative;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    transition: color var(--bmp-transition);
}
.menu-toggle-label { white-space: nowrap; }
.menu-toggle-icon {
    position: relative;
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
}
.menu-toggle-lines,
.menu-toggle-lines::before,
.menu-toggle-lines::after {
    position: absolute;
    left: 50%;
    width: 28px;
    height: 2px;
    background: currentColor;
    content: "";
    transform: translateX(-50%);
    transition: transform var(--bmp-transition), top var(--bmp-transition), width var(--bmp-transition), opacity var(--bmp-transition), background-color var(--bmp-transition);
}
.menu-toggle-lines { top: 50%; }
.menu-toggle-lines::before { top: -9px; }
.menu-toggle-lines::after { top: 9px; }
.menu-toggle[aria-expanded="true"] .menu-toggle-lines { background: transparent; }
.menu-toggle[aria-expanded="true"] .menu-toggle-lines::before { top: 0; transform: translateX(-50%) rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-toggle-lines::after { top: 0; transform: translateX(-50%) rotate(-45deg); }
.menu-toggle:hover,
.menu-toggle:focus-visible { color: var(--bmp-header-hover, #0072a3); }
.site-header--scroll-effect.is-scrolled .menu-toggle:hover,
.site-header--scroll-effect.is-scrolled .menu-toggle:focus-visible { color: var(--bmp-header-scroll-hover, #0072a3); }
@media (hover: hover) and (pointer: fine) {
    .menu-toggle[aria-expanded="false"]:hover .menu-toggle-lines,
    .menu-toggle[aria-expanded="false"]:hover .menu-toggle-lines::before,
    .menu-toggle[aria-expanded="false"]:hover .menu-toggle-lines::after { width: 22px; }
    .menu-toggle[aria-expanded="false"]:hover .menu-toggle-lines::before { top: -6px; }
    .menu-toggle[aria-expanded="false"]:hover .menu-toggle-lines::after { top: 6px; }
}

/* Clickable backdrop outside the off-canvas menu. */
.menu-backdrop {
    position: fixed;
    inset: var(--bmp-header-offset, 0px) 0 0;
    z-index: 998;
    width: 100%;
    border: 0;
    padding: 0;
    margin: 0;
    background: var(--bmp-menu-overlay-color, #262626);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 240ms ease, visibility 240ms ease;
}
.menu-open .menu-backdrop { opacity: 0.68; visibility: visible; pointer-events: auto; }

/* --------------------------------------------------------------------------
   Footer system
   -------------------------------------------------------------------------- */
.site-footer { padding-block: clamp(3rem, 6vw, 5rem) 1.5rem; }
.site-footer a { color: var(--bmp-footer-link); }
.site-footer__rule { border-top: 3px solid var(--bmp-footer-accent); }
.site-footer__zone { min-width: 0; max-width: 100%; }
.site-footer__zone *,
.site-footer__bottom *,
.site-footer-02__content * { min-width: 0; }
.site-footer p,
.site-footer a,
.site-footer address,
.site-footer li { overflow-wrap: anywhere; word-break: normal; }
.site-footer img,
.site-footer svg,
.site-footer video,
.site-footer iframe { max-width: 100%; height: auto; }
.site-footer .widget,
.site-footer .widget_block,
.site-footer .wp-block-group,
.site-footer .wp-block-columns,
.site-footer .wp-block-column { max-width: 100%; }

.site-footer__zone > :first-child,
.site-footer__zone > .widget:first-child > :first-child { margin-block-start: 0; }
.site-footer__zone > :last-child,
.site-footer__zone > .widget:last-child > :last-child { margin-block-end: 0; }
.site-footer__zone .widget { margin: 0; }
.site-footer__zone .widget + .widget { margin-top: 1.25rem; }
.site-footer__zone .wp-block-heading,
.site-footer .widget-title {
    color: var(--bmp-footer-accent);
    margin-top: 0;
}
.site-footer__zone .wp-block-heading { text-wrap: balance; }
.site-footer__zone .wp-block-image { margin-block: 0 1rem; }
.site-footer__zone .wp-block-image img { max-width: 100%; height: auto; }
.site-footer__zone .wp-block-list { padding-inline-start: 1.2em; }
.site-footer__zone p { max-inline-size: 58ch; }
.footer-menu { display: grid; gap: 0.5rem; }
.footer-menu a,
.legal-menu a { text-decoration-thickness: 1px; text-underline-offset: 3px; }
.site-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 2.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid color-mix(in srgb, currentColor 18%, transparent);
    font-size: 14px;
}
.legal-menu { display: flex; gap: 1rem; flex-wrap: wrap; }

/* Footer 01: three truly independent Gutenberg columns. */
.site-footer-01__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(2rem, 4vw, 4rem);
    padding-top: 2.5rem;
}

/* Footer 02: brand + shared heading + aligned contact/content columns. */
.site-footer-02__layout {
    display: grid;
    grid-template-columns: minmax(220px, 0.9fr) minmax(0, 1.8fr);
    gap: clamp(2.5rem, 5vw, 5rem);
    padding-top: 2.5rem;
    align-items: start;
}
.site-footer-02__content { min-width: 0; }
.site-footer-02__heading { margin-bottom: 1.25rem; }
.site-footer-02__heading:empty { display: none; margin: 0; }
.site-footer-02__columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(2rem, 4vw, 4rem);
    align-items: start;
}
.site-footer-02__copyright {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: clamp(1.5rem, 3vw, 2.5rem);
    font-size: 14px;
}
.site-footer-02__copyright .widget { margin: 0; }
.site-footer-02__copyright p { max-inline-size: none; margin: 0; }
.site-footer-02__copyright .legal-menu { margin: 0; padding: 0; list-style: none; }

/* Footer 03: one block area, composition delegated to Gutenberg. */
.site-footer-03__content { padding-top: 2.5rem; }
.site-footer-03__content > .widget_block { margin: 0; }

.site-footer--01 {
    --bmp-footer-accent: var(--bmp-footer-01-accent, #90e0ef);
    --bmp-footer-link: var(--bmp-footer-01-link, #90e0ef);
    background: var(--bmp-footer-01-background, #262626);
    color: var(--bmp-footer-01-text, #fff);
}
.site-footer--02 {
    --bmp-footer-accent: var(--bmp-footer-02-accent, #0072a3);
    --bmp-footer-link: var(--bmp-footer-02-link, #0072a3);
    background: var(--bmp-footer-02-background, #fff);
    color: var(--bmp-footer-02-text, #444);
}
.site-footer--03 {
    --bmp-footer-accent: var(--bmp-footer-03-accent, #90e0ef);
    --bmp-footer-link: var(--bmp-footer-03-link, #90e0ef);
    background: var(--bmp-footer-03-background, #262626);
    color: var(--bmp-footer-03-text, #fff);
}

/* Les commandes propres à la navigation par niveaux ne doivent jamais apparaître sur ordinateur. */
.mobile-submenu-back,
.mobile-submenu-parent-page { display: none; }

/* Pendant un changement de point de rupture, aucun panneau ne doit glisser brièvement à l’écran. */
.site-header.is-navigation-switching .primary-navigation,
.site-header.is-navigation-switching .sub-menu,
.site-header.is-navigation-switching .mega-menu-panel { transition: none !important; }

/* --------------------------------------------------------------------------
   Responsive navigation
   -------------------------------------------------------------------------- */


@media (max-width: 782px) {
    .admin-bar .site-header--sticky { top: calc(46px + var(--bmp-sticky-top-offset, 0px)); }
}




/* Entête et pied de page entièrement composables avec des blocs. */
.site-header--blocks > .wp-block-group,
.bmp-entete-libre,
.bmp-pied-de-page-libre { margin-block: 0; }
.site-header--blocks .wp-block-navigation { margin: 0; }

/* --------------------------------------------------------------------------
   Navigation avancée — sous-menus et variantes mobiles
   -------------------------------------------------------------------------- */






/* --------------------------------------------------------------------------
   Méga menus Gutenberg
   -------------------------------------------------------------------------- */






/* Compositions de départ pour les méga menus. */
.bmp-mega-pattern .wp-block-heading {
    margin-bottom: 12px;
}
.bmp-mega-pattern .wp-block-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.bmp-mega-pattern .wp-block-list li + li {
    margin-top: 8px;
}
.bmp-mega-pattern .wp-block-list a {
    display: inline-flex;
    padding-block: 4px;
    text-decoration: none;
}
.bmp-mega-pattern--feature .has-background {
    padding: 24px;
}

/* --------------------------------------------------------------------------
   Entête de page et bouton retour en haut
   -------------------------------------------------------------------------- */
.bmp-page-header {
    position: relative;
    overflow: hidden;
    background: var(--bmp-page-header-background, linear-gradient(90deg,#fff,#cdeffc));
    padding-block: clamp(48px, 7vw, 88px);
}
.bmp-page-header__inner { position: relative; z-index: 2; }
.bmp-page-header__title { margin: 0; }
.bmp-page-header--quarter::after,
.bmp-page-header--ring::after {
    content: "";
    position: absolute;
    pointer-events: none;
    z-index: 1;
    box-sizing: border-box;
    width: var(--bmp-page-header-decoration-size, 420px);
    height: var(--bmp-page-header-decoration-size, 420px);
    flex: 0 0 auto;
    border: calc(var(--bmp-page-header-decoration-size, 420px) * .10) solid var(--bmp-page-header-decoration-color, #009ADE);
    border-radius: 50%;
    opacity: var(--bmp-page-header-decoration-opacity, .55);
}
/*
 * Le quart de cercle est ancré sur le coin supérieur. Sa taille (diamètre)
 * et son décalage vertical sont administrables. La géométrie reste ainsi
 * stable lorsque l'entête change de hauteur.
 */
.bmp-page-header--quarter.bmp-page-header--decoration-right::after {
    top: 0;
    right: 0;
    transform: translate(50%, -50%) translateY(var(--bmp-page-header-decoration-offset-y, 0px));
}
.bmp-page-header--quarter.bmp-page-header--decoration-left::after {
    top: 0;
    left: 0;
    transform: translate(-50%, -50%) translateY(var(--bmp-page-header-decoration-offset-y, 0px));
}
.bmp-page-header--ring.bmp-page-header--decoration-right::after {
    top: 50%;
    right: 0;
    transform: translate(50%, -50%) translateY(var(--bmp-page-header-decoration-offset-y, 0px));
}
.bmp-page-header--ring.bmp-page-header--decoration-left::after {
    top: 50%;
    left: 0;
    transform: translate(-50%, -50%) translateY(var(--bmp-page-header-decoration-offset-y, 0px));
}

/* Décorations facultatives des pieds de page. */
.site-footer.has-footer-decoration {
    position: relative;
    overflow: hidden;
}
.site-footer.has-footer-decoration > .bmp-container {
    position: relative;
    z-index: 2;
}
.site-footer.has-footer-decoration::after {
    content: "";
    position: absolute;
    z-index: 1;
    pointer-events: none;
    box-sizing: border-box;
    border-radius: 50%;
    border-style: solid;
}
.site-footer--01.has-footer-decoration::after {
    width: var(--bmp-footer-01-decoration-size, 360px);
    height: var(--bmp-footer-01-decoration-size, 360px);
    border-width: calc(var(--bmp-footer-01-decoration-size, 360px) * .10);
    border-color: var(--bmp-footer-01-decoration-color, #90E0EF);
    opacity: var(--bmp-footer-01-decoration-opacity, .78);
}
.site-footer--02.has-footer-decoration::after {
    width: var(--bmp-footer-02-decoration-size, 360px);
    height: var(--bmp-footer-02-decoration-size, 360px);
    border-width: calc(var(--bmp-footer-02-decoration-size, 360px) * .10);
    border-color: var(--bmp-footer-02-decoration-color, #90E0EF);
    opacity: var(--bmp-footer-02-decoration-opacity, .78);
}
.site-footer--03.has-footer-decoration::after {
    width: var(--bmp-footer-03-decoration-size, 360px);
    height: var(--bmp-footer-03-decoration-size, 360px);
    border-width: calc(var(--bmp-footer-03-decoration-size, 360px) * .10);
    border-color: var(--bmp-footer-03-decoration-color, #90E0EF);
    opacity: var(--bmp-footer-03-decoration-opacity, .78);
}

/*
 * Les décorations du pied de page sont ancrées au coin inférieur.
 * Un décalage vertical positif les fait descendre davantage hors du cadre.
 */
.site-footer--01.footer-decoration--right::after { right: 0; bottom: 0; transform: translate(50%, 50%) translateY(var(--bmp-footer-01-decoration-offset-y, 0px)); }
.site-footer--01.footer-decoration--left::after  { left: 0; bottom: 0; transform: translate(-50%, 50%) translateY(var(--bmp-footer-01-decoration-offset-y, 0px)); }
.site-footer--02.footer-decoration--right::after { right: 0; bottom: 0; transform: translate(50%, 50%) translateY(var(--bmp-footer-02-decoration-offset-y, 0px)); }
.site-footer--02.footer-decoration--left::after  { left: 0; bottom: 0; transform: translate(-50%, 50%) translateY(var(--bmp-footer-02-decoration-offset-y, 0px)); }
.site-footer--03.footer-decoration--right::after { right: 0; bottom: 0; transform: translate(50%, 50%) translateY(var(--bmp-footer-03-decoration-offset-y, 0px)); }
.site-footer--03.footer-decoration--left::after  { left: 0; bottom: 0; transform: translate(-50%, 50%) translateY(var(--bmp-footer-03-decoration-offset-y, 0px)); }


/* Barre de progression de lecture : en flux puis collante, juste au-dessus de l’entête. */
.bmp-scroll-progress-enabled { --bmp-sticky-top-offset: var(--bmp-scroll-progress-thickness, 4px); }
.bmp-scroll-progress {
    position: sticky;
    top: 0;
    z-index: 1200;
    width: 100%;
    height: var(--bmp-scroll-progress-thickness, 4px);
    background: var(--bmp-scroll-progress-track-color, #FFFFFF);
    pointer-events: none;
    overflow: hidden;
}
.admin-bar .bmp-scroll-progress { top: 32px; }
.bmp-scroll-progress__bar {
    display: block;
    width: 100%;
    height: 100%;
    background: var(--bmp-scroll-progress-color, #009ADE);
    transform: scaleX(0);
    transform-origin: left center;
    will-change: transform;
    transition: transform 90ms linear;
}

/* Bouton retour en haut : neuf positions, avec animation indépendante du positionnement. */
.bmp-back-to-top {
    --bmp-back-x: 0%;
    --bmp-back-y: 0%;
    position: fixed;
    z-index: 1250;
    width: 48px;
    height: 48px;
    border: 2px solid var(--wp--preset--color--primary-dark, #0072A3);
    border-radius: 999px;
    background: var(--wp--preset--color--white, #fff);
    color: var(--wp--preset--color--primary-dark, #0072A3);
    box-shadow: 0 8px 24px rgb(0 0 0 / 14%);
    display: grid;
    place-items: center;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate(var(--bmp-back-x), var(--bmp-back-y)) scale(.92);
    transition: opacity var(--bmp-transition), transform var(--bmp-transition), visibility var(--bmp-transition), background-color var(--bmp-transition), color var(--bmp-transition);
}
.bmp-back-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translate(var(--bmp-back-x), var(--bmp-back-y)) scale(1);
}
.bmp-back-to-top:hover,
.bmp-back-to-top:focus-visible { background: var(--wp--preset--color--primary-dark, #0072A3); color: #fff; }

.bmp-back-to-top--top-left,
.bmp-back-to-top--middle-left,
.bmp-back-to-top--bottom-left { left: max(20px, env(safe-area-inset-left)); }
.bmp-back-to-top--top-right,
.bmp-back-to-top--middle-right,
.bmp-back-to-top--bottom-right { right: max(20px, env(safe-area-inset-right)); }
.bmp-back-to-top--top-center,
.bmp-back-to-top--middle-center,
.bmp-back-to-top--bottom-center { left: 50%; --bmp-back-x: -50%; }

.bmp-back-to-top--top-left,
.bmp-back-to-top--top-center,
.bmp-back-to-top--top-right { top: calc(var(--bmp-header-offset, 0px) + 24px); }
.bmp-back-to-top--middle-left,
.bmp-back-to-top--middle-center,
.bmp-back-to-top--middle-right { top: 50%; --bmp-back-y: -50%; }
.bmp-back-to-top--bottom-left,
.bmp-back-to-top--bottom-center,
.bmp-back-to-top--bottom-right { bottom: max(24px, env(safe-area-inset-bottom)); }

.bmp-back-to-top__icon { width: 12px; height: 12px; border-left: 2px solid currentColor; border-top: 2px solid currentColor; transform: rotate(45deg) translate(2px,2px); }

@media (max-width: 782px) {
    .admin-bar .bmp-scroll-progress { top: 46px; }
}

@media (prefers-reduced-motion: reduce) {
    .bmp-scroll-progress__bar { transition: none; }
    .bmp-back-to-top { transition-duration: 0.01ms; }
    .site-header--03 .site-branding,
    .site-header--03 .site-header__centered { transition-duration: 0.01ms; }
}

/* Les ancres d'un site one page ne passent pas sous l'entête fixe. */
/* Le décalage des ancres est global et géré dans base.css ; le mode one page ne sert ici qu’au suivi de section. */

/* État courant calculé au défilement sur un site one page. */
.primary-menu > .bmp-onepage-current > a { color: var(--bmp-header-hover, #0072A3); }
.site-header--menu-marker-underline-edge .primary-menu > .bmp-onepage-current > a::after,
.site-header--menu-marker-underline-text .primary-menu > .bmp-onepage-current > a::after,
.site-header--menu-marker-topline .primary-menu > .bmp-onepage-current > a::after { opacity: 1; transform: scaleX(1); }
.site-header--menu-marker-pill .primary-menu > .bmp-onepage-current > a { background: color-mix(in srgb, currentColor 12%, transparent); }

/* Le panneau commence sous la ligne de base, sans recouvrir le marqueur du lien parent. */
.primary-menu > li > .sub-menu { z-index: 1; }
.primary-menu > li > a,
.primary-menu > li > .submenu-toggle { z-index: 2; }

/* Blocs et variantes multilingues. */
.language-switcher{--bmp-language-switcher-accent:var(--bmp-header-hover,var(--wp--preset--color--primary-dark,#0072a3));--bmp-language-switcher-bg:var(--wp--preset--color--white,#fff);width:fit-content;max-width:100%;align-self:center}
.language-switcher ul{display:flex;align-items:center;width:fit-content;max-width:100%}
.language-switcher li{display:flex;align-items:center}
.language-switcher a{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-height:40px;text-decoration:none;font-weight:600;line-height:1;box-sizing:border-box;white-space:nowrap}
.language-switcher a:focus-visible{outline:3px solid var(--bmp-language-switcher-accent);outline-offset:3px}
.language-switcher__flag{display:block;width:18px;height:auto;max-height:13px;object-fit:cover}

/* Contrôle segmenté : compact dans un entête, avec la langue active remplie. */
.language-switcher--segmented ul{overflow:hidden;border:2px solid var(--bmp-language-switcher-accent);border-radius:999px;background:var(--bmp-language-switcher-bg)}
.language-switcher--segmented li+li{border-left:2px solid var(--bmp-language-switcher-accent)}
.language-switcher--segmented a{min-width:42px;padding:.42rem .62rem;color:var(--bmp-language-switcher-accent);background:var(--bmp-language-switcher-bg);font-weight:600}
.language-switcher--segmented a[aria-current="page"]{background:var(--bmp-language-switcher-accent);color:#fff;font-weight:700}
.language-switcher--segmented a:not([aria-current="page"]):hover{background:color-mix(in srgb,var(--bmp-language-switcher-accent) 9%,var(--bmp-language-switcher-bg))}

/* Pastilles séparées : deux cibles lisibles mais nettement plus compactes dans l’entête. */
.language-switcher--pills ul{gap:.35rem}
.language-switcher--pills a{min-width:40px;padding:.4rem .58rem;border:2px solid var(--bmp-language-switcher-accent);border-radius:999px;background:transparent;color:var(--bmp-language-switcher-accent)}
.language-switcher--pills a[aria-current="page"]{background:var(--bmp-language-switcher-accent);color:#fff;font-weight:700}
.language-switcher--pills a:not([aria-current="page"]):hover{background:color-mix(in srgb,var(--bmp-language-switcher-accent) 9%,transparent)}

/* Variante minimale : codes texte, séparateur et soulignement discret de la langue active. */
.language-switcher--minimal ul{gap:.28rem}
.language-switcher--minimal li+li::before{content:"/";display:inline-flex;align-items:center;min-height:40px;margin-right:.28rem;color:currentColor;line-height:1;opacity:.55}
.language-switcher--minimal a{position:relative;min-width:36px;padding:.35rem .12rem;color:inherit}
.language-switcher--minimal a[aria-current="page"]{color:var(--bmp-language-switcher-accent);font-weight:700}
.language-switcher--minimal a[aria-current="page"]::after{content:"";position:absolute;left:.12rem;right:.12rem;bottom:2px;height:2px;border-radius:999px;background:currentColor}
.language-switcher--minimal a:hover{color:var(--bmp-language-switcher-accent)}

/* Classique : le rendu de l’entête 01 reste « FR / DE » et suit le même axe vertical. */
.language-switcher--classic a{min-height:40px}

.bmp-language-switcher-block,.bmp-easy-read-block{width:fit-content;max-width:100%}
.bmp-language-block__notice{margin:0;padding:.65rem .8rem;border:1px dashed currentColor;font-size:.9rem;opacity:.8}
.bmp-entete-libre__actions{margin-left:auto}

@media (forced-colors:active){
    .language-switcher a[aria-current="page"]{outline:2px solid ButtonText;outline-offset:-4px}
}


/* Fil d’Ariane automatique basé sur le bloc natif core/breadcrumbs (WordPress 7.0+). */
.bmp-breadcrumbs {
    position: relative;
    z-index: 2;
    font-size: var(--bmp-breadcrumb-font-size, 14px);
    line-height: 1.5;
}
.bmp-breadcrumbs__inner {
    padding-block: var(--bmp-breadcrumb-padding-y, 12px);
}
.bmp-breadcrumbs .wp-block-breadcrumbs {
    margin: 0;
    color: var(--bmp-breadcrumb-link-color, #444444);
}
.bmp-breadcrumbs .wp-block-breadcrumbs ol {
    row-gap: .35em;
}
.bmp-breadcrumbs .wp-block-breadcrumbs a {
    color: var(--bmp-breadcrumb-link-color, #444444);
    text-decoration: none;
    text-underline-offset: .18em;
}
.bmp-breadcrumbs .wp-block-breadcrumbs a:hover,
.bmp-breadcrumbs .wp-block-breadcrumbs a:focus-visible {
    color: var(--bmp-breadcrumb-hover-color, #0072A3);
    text-decoration: underline;
}
.bmp-breadcrumbs .wp-block-breadcrumbs [aria-current="page"] {
    color: var(--bmp-breadcrumb-current-color, #0072A3);
    font-weight: var(--bmp-breadcrumb-current-weight, 600);
}
.bmp-breadcrumbs .wp-block-breadcrumbs li:not(:last-child)::after {
    color: var(--bmp-breadcrumb-separator-color, #707070);
    opacity: 1;
}
@media (max-width: 600px) {
    .bmp-breadcrumbs { font-size: min(var(--bmp-breadcrumb-font-size, 14px), 14px); }
}
