/* ════════════════════════════════════════════════════════════════
   pape-france.fr — MENU MOBILE V4
   Remplace mobile-first-v3.css. À charger EN DERNIER.
   ────────────────────────────────────────────────────────────────
   DEUX EN-TÊTES, UN SEUL COMPORTEMENT
   ‣ accueil        → .papefrance-topbar     (absolu sur le hero)
   ‣ pages internes → .papefrance-siteheader (en-tête classique)
   Tout est écrit une seule fois via :is(), pour les deux à la fois.
   Aucun bloc « correctif » spécifique à un en-tête : c'est ce qui
   avait cassé les sous-menus de l'accueil en v3.

   POINT DE BASCULE : 768px — imposé par GenerateBlocks, qui l'expose
   dans le markup : <nav data-gb-mobile-breakpoint="768px">. Au-delà,
   GB rend le menu en mode desktop (dropdowns flottants) et ces règles
   ne doivent surtout pas s'appliquer. La v3 mélangeait 900 et 980px :
   entre 769 et 980px elle imposait la mise en page mobile à un menu
   que GB gérait encore en desktop.
   ⚠️ Si vous changez le point de bascule dans le bloc GB, changez-le
   ici aussi — et dans header-footer-v3.css, qui utilise 768px.

   RÈGLE DE SURVIE — l'état OUVERT/FERMÉ
   Les versions v3 et v4.0 devinaient l'état par des sélecteurs qui,
   pour certains, ne correspondaient à rien : `.gb-menu-item--open`
   n'existe dans aucune version de GenerateBlocks (0 occurrence dans
   plugins/generateblocks-pro/dist/). L'ouverture ne « prenait » donc que
   par la branche :hover/:focus-within, et sur un écran tactile le
   survol simulé ne se retire jamais : l'état visuel se désynchronisait
   d'aria-expanded, et le second appui atteignait le lien parent, qui
   naviguait. C'est le bug d'origine.

   V4.1 : le bloc GB Navigation est réglé en ouverture au CLIC
   (classe .gb-menu--click sur le <ul>). GenerateBlocks fait alors
   lui-même le preventDefault() sur le lien parent et pose une classe
   d'état RÉELLE, relevée dans son bundle :

       li.menu-item.gb-sub-menu--open     ← le marqueur, sur le <li>
       a.gb-menu-link[aria-expanded]      ← l'état ARIA, sur le lien

   On ne cible plus qu'eux. Toute nouvelle règle d'ouverture doit
   s'appuyer sur l'un de ces deux marqueurs, vérifiés dans le DOM
   ouvert, jamais sur une classe supposée.
   ⚠️ Ne pas réintroduire :hover ni :focus-within ici : GB masque
   explicitement le survol en mobile
   (:where(.gb-menu-container--mobile) … :not(.gb-sub-menu--open)),
   et le réactiver rouvre exactement le bug ci-dessus.

   COULEURS
   Plus aucune couleur en dur : tout passe par les tokens --pf-nav-*
   déclarés dans style-v3.css et redéfinis dans charte-v4-dark.css.
   Ajouter une couleur en dur ici casse le menu en thème sombre.
   ════════════════════════════════════════════════════════════════ */

/* ── 0. BURGER EN DESKTOP : FILET DE SÉCURITÉ ──────────────────
   Au-dessus du palier, le burger n'était masqué QUE par le CSS que
   GenerateBlocks génère pour le bloc, et qui porte l'identifiant du
   bloc en clair :

     @media (width > 768px) {
       .gb-navigation-00d3671b .gb-menu-toggle { display: none }
     }

   Cette règle est régénérée à l'enregistrement et mise en cache par
   page (CSS GB en mode fichier, agrégat Autoptimize, page Varnish).
   Changer d'en-tête change l'uniqueId du bloc : le 17 septembre 2026,
   /inscriptions/ servait depuis Varnish un HTML portant le nav
   `00d3671b` (en-tête restauré) avec un CSS portant encore
   `ddcce7a8` (en-tête V4). Plus aucune règle ne visait le bouton, et
   le burger s'affichait en 1440 px, à côté du menu desktop déplié.
   Relevé au navigateur sur la page en cache ; la même page en
   `?nocache=` était correcte.

   La règle ci-dessous masque le burger par la ZONE et non par un
   identifiant de bloc : elle survit à un changement d'en-tête comme
   à un cache décalé. Spécificité (0,2,0) contre (0,1,0) pour le
   `display:flex` que GB pose sur `.gb-menu-toggle-<hash>` : elle
   gagne sans !important – et il ne faut surtout pas en mettre, un
   !important sur `display` empêcherait l'ouverture en mobile. */
@media (min-width: 769px) {
  :is(.papefrance-topbar, .papefrance-siteheader) .gb-menu-toggle { display: none; }
}

@media (max-width: 768px) {

  /* ─────────────────────────────────────────────────────────────
     1. RACCOURCIS DE LECTURE
     .pf-nav  = :is(.papefrance-topbar__nav, .papefrance-siteheader__nav)
     .pf-hdr  = :is(.papefrance-topbar, .papefrance-siteheader)
     .pf-util = :is(.papefrance-utilbar, .papefrance-topbar-util)
     (écrits en toutes lettres ci-dessous, CSS n'a pas d'alias)
     ───────────────────────────────────────────────────────────── */

  /* ── 2. BURGER (menu fermé) : cible tactile 48px, sans boîte ── */
  /* Le bloc GB pose background-color:#000000 sur ce bouton, en base.
     Le transparent !important ci-dessous l'annule — et doit y rester
     même après nettoyage du bloc dans l'éditeur : cette feuille ne
     peut pas dépendre du souvenir d'une action en base. */
  :is(.papefrance-topbar__nav, .papefrance-siteheader__nav) .gb-menu-toggle {
    width: 48px; height: 48px;
    padding: 6px !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }
  /* blanc sur le hero, token sur fond clair (il suit le thème sombre,
     où l'en-tête devient --navy-900 : cf. --pf-nav-burger). Le cas
     [data-fond="clair"] manquait : sur l'accueil V4, la topbar passe
     en blanc plein (header-v4.css §1) et l'icône blanche s'y fondait
     entièrement. */
  .papefrance-topbar:not([data-fond="clair"]) .papefrance-topbar__nav .gb-menu-open-icon svg { color: var(--pf-nav-ink, #fff) !important; }
  .papefrance-topbar[data-fond="clair"] .papefrance-topbar__nav .gb-menu-open-icon svg { color: var(--pf-nav-burger, #123B7A) !important; }
  .papefrance-siteheader__nav .gb-menu-open-icon svg { color: var(--pf-nav-burger, #123B7A) !important; }
  :is(.papefrance-topbar__nav, .papefrance-siteheader__nav) :is(.gb-menu-open-icon, .gb-menu-close-icon) svg {
    width: 28px; height: 28px;
  }

  /* ── 3. PANNEAU — état FERMÉ : ne recouvre rien ─────────────── */
  /* Le bloc de header-footer-v3.css qui forçait ce conteneur en
     position:fixed;inset:0 !important même menu fermé — un calque
     invisible plein écran qui avalait les clics — a été SUPPRIMÉ en
     v4.1. Ce bloc-ci n'a donc plus rien à annuler par la force ; il
     ne fait plus que remettre le conteneur en flux, sobrement.
     Le garde `body:not(:has(...))` reste : sans lui, ces déclarations
     s'appliqueraient aussi au panneau ouvert du §4.
     ⚠️ Aucun !important ici. Un !important sur `position` ou
     `display` dans cet état empêche l'ouverture. */
  body:not(:has(.gb-menu-container--toggled)):not(:has(.gb-menu-toggle[aria-expanded="true"]))
    :is(.papefrance-topbar__nav, .papefrance-siteheader__nav) .gb-menu-container {
    position: static;
    inset: auto;
    min-height: 0;
    background: none;
    padding: 0;
  }

  /* ── 4. PANNEAU — état OUVERT : overlay plein écran bleu ────── */
  /* Marqueurs RÉELS de GenerateBlocks, relevés dans le DOM ouvert :
       <nav class="… gb-navigation--mobile gb-navigation--open">
       <div class="gb-menu-container … gb-menu-container--toggled">
       <button class="gb-menu-toggle … gb-menu-toggle--toggled" aria-expanded="true">
     (GB clone aussi le bouton dans le conteneur, d'où deux toggles.)
     ⚠️ Ne pas réintroduire .gb-menu-open : cette classe n'existe pas,
     elle venait d'une supposition. [data-gb-menu-open], en revanche,
     EST réellement posé sur <body> par GB (il y écrit le type de
     menu, ici « full-overlay ») — il est simplement inutile ici, les
     trois marqueurs ci-dessous suffisent. */
  :is(.papefrance-topbar__nav, .papefrance-siteheader__nav) .gb-menu-container--toggled,
  :is(.papefrance-topbar__nav, .papefrance-siteheader__nav).gb-navigation--open .gb-menu-container,
  :is(.papefrance-topbar__nav, .papefrance-siteheader__nav) .gb-menu-toggle[aria-expanded="true"] ~ .gb-menu-container {
    position: fixed !important;
    inset: 0 !important;
    min-height: 100svh !important;
    z-index: 9998 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    /* flex-start, PAS center. Centré, le panneau se recentre à chaque
       dépliement de sous-menu : mesuré au navigateur, « Le voyage »
       remontait de 167 px sous le doigt au moment même où l'on venait
       d'appuyer dessus. Le second appui tombait alors sur une entrée du
       sous-menu qui venait de glisser à cet endroit — d'où l'impression
       que le menu « part tout seul » vers une page. Ancré en haut, plus
       rien ne bouge sous le doigt. */
    justify-content: flex-start !important;
    /* 112px en bas = place réservée au bouton de don fixe (§9) */
    padding: 96px 28px 112px !important;
    overflow-y: auto !important;
    /* !important indispensable : le bloc GB peint ce conteneur en
       #000000 en base, sur .gb-menu-container--mobile. */
    background: var(--pf-nav-surface, #123B7A) !important;
    background-image: radial-gradient(ellipse at 50% 0%, rgba(255,161,7,.16), transparent 60%) !important;
    color: var(--pf-nav-ink, #fff) !important;
  }

  /* Accueil : .papefrance-topbar est en position:absolute;z-index:5
     dans .papefrance-hero → il crée un contexte d'empilement qui
     enferme le z-index:9998 de l'overlay. On sort le conteneur
     entier au-dessus du reste pendant l'ouverture. */
  body:has(.gb-menu-container--toggled) :is(.papefrance-topbar, .papefrance-siteheader) {
    z-index: 9998 !important;
  }

  /* ⚠️ SUPPRESSION DU backdrop-filter PENDANT L'OUVERTURE — vital.
     header-footer-v3.css pose backdrop-filter:blur() sur
     .papefrance-siteheader. Or un backdrop-filter fait de l'élément
     le BLOC CONTENEUR de ses descendants en position:fixed : l'overlay
     et le bouton de don ne se calent alors plus sur la fenêtre mais
     sur la barre d'en-tête, haute de quelques dizaines de pixels et
     collée en haut (bouton de don affiché en haut au lieu du bas).
     L'accueil n'avait pas le problème : .papefrance-topbar n'a pas de
     backdrop-filter. On le neutralise le temps de l'ouverture. */
  body:has(.gb-menu-container--toggled) :is(.papefrance-topbar, .papefrance-siteheader) {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    filter: none !important;
    /* Même piège pour le transform de l'en-tête masqué au défilement
       (header-footer-v3.css, v4.3) : filet de sécurité si la classe
       papefrance-siteheader--cache restait posée à l'ouverture. */
    transform: none !important;
  }

  /* La barre utilitaire (z-index 6→10) repasserait au-dessus de
     l'overlay et masquerait le haut du menu → on la retire. */
  body:has(.gb-menu-container--toggled) :is(.papefrance-utilbar, .papefrance-topbar-util) {
    display: none !important;
  }

  /* Le bouton jour/nuit (fixed, bottom:20-24px;right:20px, z-index 9998)
     n'a jamais de raison d'être visible menu ouvert : à l'ouverture, le
     bouton de don (§10 ci-dessous) devient lui aussi fixed en bas d'écran,
     z-index 9999, sur la même zone — les deux se chevauchaient. */
  body:has(.gb-menu-container--toggled) .pf-theme-toggle {
    display: none !important;
  }

  /* ── 5. LISTE DE 1er NIVEAU ─────────────────────────────────── */
  :is(.papefrance-topbar__nav, .papefrance-siteheader__nav) .gb-menu {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    width: 100% !important;
    max-width: 520px;
    margin: 0 auto !important;
    padding: 0 !important;
    list-style: none;
  }
  :is(.papefrance-topbar__nav, .papefrance-siteheader__nav) .gb-menu > li {
    width: 100%;
    border-bottom: 1px solid var(--pf-nav-rule, rgba(255,255,255,.16));
  }
  /* Entrée parente : le lien occupe TOUTE la ligne, chevron compris,
     et le sous-menu passe à la ligne (flex-basis 100%).
     Le lien prend toute la largeur parce qu'en mode clic c'est LUI le
     bouton d'ouverture : GB écoute
     `.gb-menu--click .menu-item-has-children > a`. Toute la ligne est
     donc la cible tactile, et non plus un carré de 60 px autour du
     chevron, bordé de deux bandes mortes de 16 px où le doigt
     atteignait le lien et déclenchait la navigation. */
  :is(.papefrance-topbar__nav, .papefrance-siteheader__nav) .gb-menu > li.menu-item-has-children {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    position: relative;
  }
  :is(.papefrance-topbar__nav, .papefrance-siteheader__nav) .gb-menu > li.menu-item-has-children > a {
    flex: 1 1 100%;
  }

  /* ── 6. LIENS DE 1er NIVEAU : 60px, capitales ───────────────── */
  :is(.papefrance-topbar__nav, .papefrance-siteheader__nav) .gb-menu a {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    min-height: 60px;
    padding: 16px 4px !important;
    font-family: 'Jost', 'Futura PT', system-ui, sans-serif;
    font-size: clamp(22px, 6.4vw, 30px) !important;
    font-weight: 700 !important;
    letter-spacing: .01em;
    text-transform: uppercase;
    color: var(--pf-nav-ink, #fff) !important;
    text-decoration: none !important;
  }
  /* chevron décoratif « › » — pointer-events:none IMPÉRATIF,
     sinon il intercepte le clic destiné au lien ou au bouton. */
  :is(.papefrance-topbar__nav, .papefrance-siteheader__nav) .gb-menu a::after {
    content: "›";
    font-size: .9em; line-height: 1;
    color: var(--yellow, #FFA107);
    opacity: .85;
    pointer-events: none;
    transition: transform .2s ease;
  }
  :is(.papefrance-topbar__nav, .papefrance-siteheader__nav) .gb-menu a:hover::after {
    transform: translateX(4px);
  }
  :is(.papefrance-topbar__nav, .papefrance-siteheader__nav) .gb-menu a:hover,
  :is(.papefrance-topbar__nav, .papefrance-siteheader__nav) .gb-menu .current-menu-item > a {
    color: var(--yellow, #FFA107) !important;
  }
  /* pas de « › » sur une entrée parente : elle a déjà son chevron
     d'ouverture (§7), ni dans les sous-menus (§8). */
  :is(.papefrance-topbar__nav, .papefrance-siteheader__nav) .gb-menu li.menu-item-has-children > a::after,
  :is(.papefrance-topbar__nav, .papefrance-siteheader__nav) .gb-menu :is(.gb-sub-menu, .sub-menu) a::after {
    content: none;
  }

  /* ── 7. CHEVRON DES SOUS-MENUS — PUREMENT DÉCORATIF ─────────── */
  /* ⚠️ LE MARKUP DIFFÈRE SELON LE MODE D'OUVERTURE DU BLOC.
     Relevé dans class-classic-menu.php de GenerateBlocks Pro :

       if ( 'click' === $sub_menu_type ) { return $title . $arrow_icon; }
       return $title . $submenu_button;

     soit, dans le <a class="gb-menu-link"> :
       mode CLIC   → svg.gb-submenu-toggle-icon          (enfant direct)
       mode SURVOL → span.gb-submenu-toggle > svg.gb-submenu-toggle-icon

     Le site est en mode clic, mais on cible `.gb-submenu-toggle-icon`,
     présent dans les DEUX : un retour au survol, ou une page encore en
     cache Varnish rendue avant la bascule, garde un chevron habillé.
     Cibler le seul `span` laisserait un chevron nu de 1em, blanc.

     En mode clic c'est le LIEN ENTIER qui bascule le sous-menu — GB
     écoute `.gb-menu--click .menu-item-has-children > a`. Le chevron
     n'a donc plus à être une cible : `pointer-events: none` garantit
     que le clic atteint le <a> où que le doigt tombe sur la ligne. La
     v4.0 faisait l'inverse (cible de 60×60, z-index:3,
     pointer-events:auto) dans un lien haut de 92 px, laissant deux
     bandes mortes de 16 px où l'appui partait dans le lien. */
  :is(.papefrance-topbar__nav, .papefrance-siteheader__nav) .gb-menu
    li.menu-item-has-children > a > .gb-submenu-toggle {
    flex: none;
    width: auto !important; height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center; justify-content: center;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }
  :is(.papefrance-topbar__nav, .papefrance-siteheader__nav) .gb-menu
    li.menu-item-has-children > a .gb-submenu-toggle-icon {
    flex: none;
    width: 26px !important; height: 26px !important;
    color: var(--yellow, #FFA107) !important;
    fill: currentColor;
    transition: transform .22s ease;
    pointer-events: none;   /* le lien encaisse le clic, pas le chevron */
  }
  /* Le span porteur, quand il existe (mode survol) : lui aussi laisse
     passer le clic. */
  :is(.papefrance-topbar__nav, .papefrance-siteheader__nav) .gb-menu
    li.menu-item-has-children > a > .gb-submenu-toggle {
    pointer-events: none;
  }
  /* Icône retournée quand le sous-menu est ouvert. Les deux marqueurs
     réels de GenerateBlocks, et eux seuls : aria-expanded sur le lien
     (mode clic) et .gb-sub-menu--open sur le <li>. */
  :is(.papefrance-topbar__nav, .papefrance-siteheader__nav) .gb-menu
    li.menu-item-has-children > a[aria-expanded="true"] .gb-submenu-toggle-icon,
  :is(.papefrance-topbar__nav, .papefrance-siteheader__nav) .gb-menu
    li.gb-sub-menu--open > a .gb-submenu-toggle-icon {
    transform: rotate(180deg);
  }

  /* ── 8. SOUS-MENUS ──────────────────────────────────────────── */
  /* FERMÉ — en flux, pleine largeur, jamais en dropdown flottant.
     ⚠️ NE JAMAIS METTRE !important SUR CE `display`.
     C'est GenerateBlocks qui ouvre le sous-menu, par style inline
     ou par sa propre CSS. Un `display:none !important` ici bat GB
     et le sous-menu ne s'ouvre plus JAMAIS — c'est exactement ce
     que faisait le bloc « correctif accueil » de la v3, et c'est
     l'unique cause du bug d'origine. Le `display:none` simple sert
     de repli si GB ne masque rien ; il cède devant GB. */
  :is(.papefrance-topbar__nav, .papefrance-siteheader__nav) .gb-menu :is(.gb-sub-menu, ul.sub-menu) {
    display: none;
    position: static !important;
    inset: auto !important;
    flex: 1 1 100%;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 0 6px !important;
    padding: 6px 0 8px !important;
    /* Un cran PLUS CLAIR que le panneau, jamais plus sombre : le
       sous-menu est en avant, pas dessous. La v4.0 posait ici un
       voile rgba(0,0,0,.16) qui, se composant avec le #000000 que le
       bloc GB peint en base sur ses .menu-item, donnait le sous-menu
       noir constaté en thème clair. */
    background: var(--pf-nav-surface-2, #1A4A96) !important;
    border: 0 !important;
    border-radius: 10px !important;
    box-shadow: none !important;
    list-style: none;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  /* OUVERT — les DEUX marqueurs réels de GenerateBlocks en mode clic,
     relevés dans son bundle (dist/classic-menu.js) :

       o.classList.toggle("gb-sub-menu--open")   → sur le li.menu-item
       e.setAttribute("aria-expanded", …)        → sur le a.gb-menu-link

     Le sous-menu est FRÈRE du lien, pas son voisin immédiat au sens
     de « + » : on remonte donc au <li>, par la classe ou par :has().
     Les sélecteurs « toggle + sous-menu » des versions antérieures
     ne pouvaient structurellement jamais correspondre.

     ⚠️ Ne pas ajouter de branche :hover / :focus-within. GB masque
     explicitement le survol en mobile
     (:where(.gb-menu-container--mobile) … :not(.gb-sub-menu--open)
     > .gb-sub-menu{display:none}) ; la rétablir ici écrase cette
     protection, et sur écran tactile le survol simulé ne se retire
     jamais : l'état visuel se désynchronise d'aria-expanded et le
     second appui part dans le lien parent. C'était le bug. */
  :is(.papefrance-topbar__nav, .papefrance-siteheader__nav) .gb-menu
    li.gb-sub-menu--open > :is(.gb-sub-menu, ul.sub-menu),
  :is(.papefrance-topbar__nav, .papefrance-siteheader__nav) .gb-menu
    li:has(> a[aria-expanded="true"]) > :is(.gb-sub-menu, ul.sub-menu) {
    display: block !important;
  }

  /* entrées de sous-menu : plus petites, indentées, filet ambré */
  /* Le `background: transparent` sur le <li> est le correctif direct
     du sous-menu noir : le bloc GB écrit en base
     `.gb-sub-menu-<hash> .menu-item{background-color:#000000}`, et
     aucune règle du thème ne couvrait le <li>. Le garder même après
     nettoyage du bloc dans l'éditeur. */
  :is(.papefrance-topbar__nav, .papefrance-siteheader__nav) .gb-menu :is(.gb-sub-menu, ul.sub-menu) > li {
    border-bottom: 0 !important;
    background: transparent !important;
    color: inherit !important;
  }
  :is(.papefrance-topbar__nav, .papefrance-siteheader__nav) .gb-menu :is(.gb-sub-menu, ul.sub-menu) a {
    min-height: 52px !important;
    padding: 12px 4px 12px 18px !important;
    margin-left: 6px;
    border-left: 2px solid rgba(255,161,7,.5);
    background: transparent !important;
    font-size: clamp(16px, 4.4vw, 19px) !important;
    font-weight: 600 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    color: var(--pf-nav-ink-2, rgba(255,255,255,.92)) !important;
  }
  :is(.papefrance-topbar__nav, .papefrance-siteheader__nav) .gb-menu :is(.gb-sub-menu, ul.sub-menu) a:hover {
    color: var(--pf-nav-ink, #fff) !important;
    border-left-color: var(--yellow, #FFA107);
  }

  /* ── 9. CROIX DE FERMETURE ──────────────────────────────────── */
  :is(.papefrance-topbar__nav, .papefrance-siteheader__nav) .gb-menu-close-icon {
    position: fixed !important;
    top: 14px; right: 14px;
    z-index: 9999 !important;
  }
  :is(.papefrance-topbar__nav, .papefrance-siteheader__nav) .gb-menu-close-icon svg {
    color: var(--pf-nav-ink, #fff) !important;
    width: 30px !important; height: 30px !important;
  }

  /* ── 10. BOUTON DE DON ──────────────────────────────────────── */
  /* Il vit HORS de __nav : l'overlay le masquerait. Menu ouvert →
     il devient une barre basse fixe au-dessus de l'overlay (la
     place lui est réservée par le padding-bottom du §4). */
  :is(.papefrance-topbar__cta, .papefrance-siteheader__cta) {
    position: relative;
    z-index: 2;
  }
  /* NB : sur l'accueil comme sur les pages internes, ce bouton porte
     la MÊME classe papefrance-siteheader__cta (vérifié dans les deux
     sources) — d'où le ciblage des deux classes par sécurité. */
  body:has(.gb-menu-container--toggled) :is(.papefrance-topbar__cta, .papefrance-siteheader__cta) {
    position: fixed !important;
    left: 28px; right: 28px; bottom: 26px; top: auto !important;
    z-index: 9999 !important;
    display: flex !important;
    align-items: center; justify-content: center;
    max-width: 520px;
    margin: 0 auto !important;
    min-height: 56px;
    padding: 16px 28px !important;
    background: var(--yellow, #FFA107) !important;
    color: var(--pf-blue, #123B7A) !important;
    border-radius: 999px !important;
    font-family: 'Jost', 'Futura PT', system-ui, sans-serif;
    font-size: clamp(16px, 4.4vw, 19px) !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: .02em;
    text-decoration: none !important;
    box-shadow: 0 14px 34px -14px rgba(0,0,0,.5) !important;
  }

  /* ── 11. ENTRÉE CTA DANS LE MENU (classe « menu-cta ») ──────── */
  :is(.papefrance-topbar__nav, .papefrance-siteheader__nav) .gb-menu > li.menu-cta {
    border-bottom: 0;
    margin-top: 26px;
  }
  :is(.papefrance-topbar__nav, .papefrance-siteheader__nav) .gb-menu > li.menu-cta > a {
    justify-content: center;
    background: var(--yellow, #FFA107);
    color: var(--pf-blue, #123B7A) !important;
    border-radius: 999px;
    padding: 18px 28px !important;
    font-size: clamp(17px, 4.6vw, 20px) !important;
  }
  :is(.papefrance-topbar__nav, .papefrance-siteheader__nav) .gb-menu > li.menu-cta > a::after {
    content: none;
  }
}
