/*
 Theme Name:   GeneratePress Child
 Theme URI:    https://generatepress.com
 Description:  Thème pape-france.fr - GeneratePress child theme
 Author:       Grégoire Thiriez
 Author URI:   https://eglise.catholique.fr
 Template:     generatepress
 Version:      3.0
*/

/* ─── FONTS : LeonXIV ─── */
@font-face {
  font-display: swap;
  font-family: 'LeonXIV';
/*  src: url('../generatepress_child/assets/fonts/LeonXIV-V1.otf') format('opentype');*/
  font-style: normal;
  font-weight: 300;
  src: url('../generatepress_child/assets/fonts/LeonXIV-V1.woff2') format('woff2');
}

/* ─── FONTS : Jost ─── */
@font-face {
  font-display: swap;
  font-family: 'Jost';
  font-style: normal;
  font-weight: 300;
  src: url('../generatepress_child/assets/fonts/jost-v20-latin-300.woff2') format('woff2');
}
@font-face {
  font-display: swap;
  font-family: 'Jost';
  font-style: normal;
  font-weight: 400;
  src: url('../generatepress_child/assets/fonts/jost-v20-latin-regular.woff2') format('woff2');
}
@font-face {
  font-display: swap;
  font-family: 'Jost';
  font-style: normal;
  font-weight: 500;
  src: url('../generatepress_child/assets/fonts/jost-v20-latin-500.woff2') format('woff2');
}
@font-face {
  font-display: swap;
  font-family: 'Jost';
  font-style: normal;
  font-weight: 600;
  src: url('../generatepress_child/assets/fonts/jost-v20-latin-600.woff2') format('woff2');
}
@font-face {
  font-display: swap;
  font-family: 'Jost';
  font-style: normal;
  font-weight: 700;
  src: url('../generatepress_child/assets/fonts/jost-v20-latin-700.woff2') format('woff2');
}
@font-face {
  font-display: swap;
  font-family: 'Jost';
  font-style: normal;
  font-weight: 800;
  src: url('../generatepress_child/assets/fonts/jost-v20-latin-800.woff2') format('woff2');
}

/* ─── TOKENS V2 ─── */
:root {
  --navy:         #0F2D85;
  --navy-900:     #091d5a;
  --navy-050:     #eef1fb;
  --pf-blue:      #123B7A;   /* nav mobile (icône, fond du menu, texte sur CTA jaune) : n'était déclaré nulle part, seul le fallback var() portait la valeur */
  --navy-AAA:     #0D2877;   /* variante accessible de --navy, texte/contour sur fond CTA jaune */
  --red:          #F71021;
  --red-AA:       #C60613;
  --red-AAA:      #9D0610;
  --cyan:         #1ACCFF;
  --cyan-AA:      #0094BD;
  /* « LA VIE » sur la photo du héros mobile (hero-v4-mobile-photo.css,
     piste A) : --cyan-AA n'y tient que 2,5:1 sous le voile à 80 %.
     #007FA3 : 3,3:1 au pire pixel à 390 px, 4,6:1 sur blanc pur. */
  --cyan-sur-photo: #007FA3;
  --green:        #00B5B0;
  --yellow:       #FFA107;
  --yellow-hover: #ffb735;   /* survol des CTA jaunes, distinct de --yellow-AA (contraste texte) */
  --yellow-AA:    #C27800;
  --yellow-AAA:   #995E00;
  /* Le jaune du drapeau pontifical, plus franc et plus lumineux que le
     --yellow ambré des appels au don. Réservé aux commandes qui doivent
     se remarquer sur une carte, où l'ambre se confond avec le bâti. */
  --vatican:      #FFE000;

  --primary:      var(--navy);
  --primary-deep: var(--navy-900);
  --primary-soft: var(--cyan);
  --primary-tint: var(--navy-050);
  --primary-wash: #f4f7fe;

  --cream:        #f5f4ef;
  --paper:        #ffffff;
  --ink:          var(--navy);
  --ink-soft:     #47506f;
  --ink-mute:     #7b83a0;
  --ink-mute-AAA: #515870;
  --rule:         rgba(15,45,133,0.14);

  /* ── NAVIGATION MOBILE ──────────────────────────────────────────
     Le panneau plein écran et son sous-menu avaient une quinzaine de
     couleurs écrites en dur dans mobile-first-v4.css : #fff, rgba
     noirs, rgba blancs. Aucune ne suivait le thème, et le voile
     rgba(0,0,0,.16) du sous-menu se composait avec le fond noir que
     le bloc GenerateBlocks pose en base sur ses .menu-item — d'où un
     sous-menu qui restait noir en thème clair.

     Six tokens, redéfinis sous html.pf-dark comme tous les autres.
     Règle : --pf-nav-surface-2 est TOUJOURS plus clair que
     --pf-nav-surface. Le sous-menu se distingue en s'éclaircissant,
     jamais en s'assombrissant : il est en avant du panneau, pas
     dessous. Assombrir était le geste d'origine, c'est ce qui donnait
     l'impression d'un trou noir dans le menu.

     --pf-blue reste la valeur de référence du panneau : il est encore
     consommé ailleurs (texte sur le CTA jaune du menu). */
  --pf-nav-surface:   var(--pf-blue);         /* fond du panneau plein écran */
  --pf-nav-surface-2: #1A4A96;                /* fond du sous-menu, un cran PLUS CLAIR */
  --pf-nav-ink:       #ffffff;                /* texte de niveau 1 */
  --pf-nav-ink-2:     rgba(255,255,255,.92);  /* texte de sous-menu */
  --pf-nav-rule:      rgba(255,255,255,.16);  /* filets entre entrées */
  --pf-nav-burger:    var(--pf-blue);         /* icône hamburger, menu FERMÉ, sur en-tête clair */

  /* Hauteur de l'en-tête collant, pour tout ce qui viendrait se coller
     sous lui. Plus aucun consommateur aujourd'hui : la carte du parcours,
     seule à s'en servir, a perdu son position:sticky en mobile — il
     recouvrait la légende et la rendait incliquable. Le token reste
     déclaré parce que la valeur est vraie et qu'un composant collant
     futur en aura besoin ; il n'y a rien à corriger si on le supprime. */
  --pf-header-h: 64px;

  --unesco:      var(--navy);
  --paris :      var(--green);
  --saint-denis: var(--yellow);
  --lourdes:     var(--cyan);
  --metz:        var(--red);

  --maxw: 1180px;
  --pad:  48px;
}

/* ─── BASE ─── */
.papefrance-page {
  font-family: 'Jost', system-ui, sans-serif;
  color: var(--ink);
  background: var(--paper);
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  margin: 0;
  padding: 0;
}
.papefrance-page * { box-sizing: border-box; }
.papefrance-page img { display: block; max-width: 100%; height: auto; }

.page-id-204 .entry-header,
.page-id-204 .breadcrumbs { display: none !important; }

.entry-content:not(:first-child) { margin-top: 0; }

hr {
  border-top: 1px solid var(--rule) !important;
  width: 80%;
  margin-left: auto;
  margin-right: auto;
}
blockquote {
  margin: 0;
}

/* ─── TYPOGRAPHIE ─── */
.papefrance-hero__title.gb-headline, .papefrance-hero__title.gb-text,
.papefrance-h2.gb-headline, .papefrance-h2.gb-text,
.papefrance-h2--sm,
.papefrance-etape__city,
.papefrance-hub__card h3,
.papefrance-topbar__brand-main {
  font-family: 'LeonXIV', sans-serif !important;
  font-style: normal !important;
  font-weight: normal;
  text-transform: uppercase !important;
  letter-spacing: 0.01em !important;
  word-wrap: normal;
}

.papefrance-page,
.papefrance-page .papefrance-eyebrow,
.papefrance-annonce__body p,
.papefrance-etape__role,
.papefrance-hub__card p,
.papefrance-qa__body,
.papefrance-newsletter__sub {
  font-family: 'Jost', system-ui, sans-serif !important;
}

.papefrance-countdown__unit .num {
  font-family: 'Jost', sans-serif !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
}

/* ─── EYEBROW ─── */
.papefrance-eyebrow {
  font-family: 'Jost', sans-serif;
  font-size: 12px !important;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--primary-deep);
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin: 0;
}
.papefrance-eyebrow::before {
  content: "";
  width: 28px;
  height: 1px;
  background: currentColor;
  opacity: 0.6;
}
.papefrance-eyebrow--light { color: rgba(255,255,255,.85); }
.papefrance-eyebrow--light::before { background: rgba(255,255,255,.7); }

/* ─── HERO ─── */
.papefrance-hero {
  position: relative;
  height: 100vh;
  min-height: 720px;
  max-height: 1080px;
  overflow: hidden;
  color: var(--paper);
  margin: 0 !important;
  padding: 0 !important;
  background: var(--navy);
}
.papefrance-hero__media,
.papefrance-hero__media img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  z-index: 0;
}
.papefrance-hero__overlay {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg,
    rgba(9,29,90,.72) 0%,
    rgba(9,29,90,.32) 38%,
    rgba(9,29,90,.55) 70%,
    rgba(9,29,90,.95) 100%) !important;
  pointer-events: none;
}
.papefrance-hero__inner {
  position: relative; z-index: 2;
  height: 100%;
  max-width: 1280px;
  margin: 0 auto !important;
  padding: 0 48px 72px !important;
  display: flex !important;
  flex-direction: column;
  justify-content: flex-end;
}
.papefrance-hero__inner::before {
  content: "";
  position: absolute; inset: 0;
  z-index: -1;
  background:
    radial-gradient(circle at 88% 12%, rgba(26,204,255,.20), transparent 40%),
    radial-gradient(circle at 10% 92%, rgba(0,181,176,.16), transparent 42%);
  pointer-events: none;
}
.papefrance-hero__title.gb-headline, .papefrance-hero__title.gb-text {
  font-size: clamp(46px, 8vw, 116px) !important;
  line-height: 0.92 !important;
  letter-spacing: -0.015em;
  margin: 24px 0 36px !important;
  max-width: 15ch;
  text-wrap: balance;
}
.papefrance-hero__title .is-italic {
  font-style: normal !important;
  color: var(--yellow) !important;
}
.papefrance-hero .papefrance-eyebrow--light { color: var(--cyan); }
.papefrance-hero .papefrance-eyebrow--light::before { background: var(--yellow); }
.papefrance-hero__meta {
  display: flex; align-items: flex-end; gap: 64px; flex-wrap: wrap;
  padding-top: 28px;
  border-top: 1px solid rgba(255,255,255,.25);
}
.papefrance-dates { display: flex; flex-direction: column; gap: 6px; }
.papefrance-dates__label {
  font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase;
  color: rgba(255,255,255,.65); font-weight: 600;
}
.papefrance-dates__value {
  font-size: 32px; font-weight: 500; letter-spacing: 0.01em;
  color: var(--paper);
}
.papefrance-countdown { display: flex; gap: 28px; margin-left: auto; }
.papefrance-countdown__unit { text-align: center; min-width: 64px; }
.papefrance-countdown__unit .num {
  font-size: 56px; line-height: 1; font-weight: 500;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
  color: var(--paper);
}
.papefrance-countdown__unit .lbl {
  margin-top: 8px;
  font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase;
  color: rgba(255,255,255,.65); font-weight: 600;
}
.papefrance-countdown__sep {
  color: rgba(255,255,255,.3);
  font-size: 32px; align-self: center; margin-top: -10px;
}

/* ─── TOPBAR (sur photo hero) ─── */
.papefrance-topbar {
  position: absolute; top: 0; left: 0; right: 0;
  z-index: 5;
  padding: 22px 48px;
  display: flex; align-items: center; justify-content: space-between;
  gap: 32px;
  color: rgba(255,255,255,.9);
}
.papefrance-topbar__brand {
  display: flex;
  align-items: center;
  gap: 13px;
  text-decoration: none;
  color: inherit;
  line-height: 1.1;
}
.papefrance-brand-logo {
  flex: none !important;
  display: block !important;
/*  max-height: 66px !important;*/
  height: 74px !important;  
  max-height: 74px !important;
  width: auto !important;
  background: none !important;
}
.papefrance-topbar__brand-main {
  font-size: 20px; font-weight: 600;
  letter-spacing: 0.015em;
  color: #fff;
  white-space: nowrap;
}
.papefrance-topbar__brand-sub {
  font-size: 11px; font-weight: 600;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: rgba(255,255,255,.72);
  white-space: nowrap;
}
.papefrance-topbar__nav {
  display: flex; align-items: center;
  gap: 26px;
  font-size: 13px; font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.papefrance-topbar__nav a {
  color: rgba(255,255,255,.85); text-decoration: none;
  white-space: nowrap;
  transition: color .2s;
}
.papefrance-topbar__nav a:hover { color: #fff; }
.papefrance-topbar__cta,
.papefrance-topbar__nav a.papefrance-topbar__cta {
  background: var(--yellow) !important;
  color: var(--navy-900) !important;
  border: none !important;
  padding: 9px 18px;
  border-radius: 999px;
  font-weight: 700;
  transition: background .2s;
}
.papefrance-topbar__cta:hover,
.papefrance-topbar__nav a.papefrance-topbar__cta:hover {
  background: var(--yellow-hover, #ffb735) !important;
  border: none !important;
}
/* .papefrance-topbar__toggle : SUPPRIMÉ en v4.1. Burger fait main,
   jamais câblé : aucun JS du site ne pose [data-open]. Il s'affichait
   pourtant sous 980 px, à côté du burger fonctionnel de
   GenerateBlocks. Voir la note équivalente dans header-footer-v3.css. */

/* ─── UTILBAR ─── */
.papefrance-utilbar {
  font-family: 'Jost', sans-serif;
  font-size: 11px; font-weight: 600;
  letter-spacing: 0.18em; text-transform: uppercase;
}
.papefrance-utilbar__in {
  max-width: 1280px; margin: 0 auto;
  padding: 9px 48px;
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
}
.papefrance-utilbar__in .cities { display: inline-flex; gap: 10px; }
.papefrance-topbar-util {
  position: absolute; top: 0; left: 0; right: 0; z-index: 6;
  background: rgba(9,29,90,0.55);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  border-bottom: 1px solid rgba(255,255,255,0.16);
  color: rgba(255,255,255,0.85);
}
.papefrance-topbar-util .cities { color: #fff; }
.papefrance-hero .papefrance-topbar { top: 38px; }
.papefrance-siteheader-util {
  background: var(--navy);
  color: rgba(255,255,255,0.9);
}
.papefrance-siteheader-util .cities { color: #fff; }

/* ─── ANNONCE ─── */
.papefrance-annonce {
  background: var(--paper);
  padding: 140px 48px 120px !important;
  margin: 0 !important;
}
.papefrance-annonce__grid {
  max-width: var(--maxw);
  margin: 0 auto !important;
  display: grid !important;
  grid-template-columns: 1fr 1.6fr;
  gap: 80px;
  align-items: start;
}
.papefrance-annonce__side .papefrance-eyebrow { margin-bottom: 28px; }
.papefrance-h2.gb-headline, .papefrance-h2.gb-text {
  font-size: 44px;
  line-height: 1.05;
  letter-spacing: -0.01em;
  color: var(--ink);
  margin: 0;
  text-wrap: balance;
  word-wrap: normal;
}
.papefrance-h2 em {
  font-style: normal;
  color: var(--primary);
  color: var(--cyan);
  color: var(--cyan-AA);
}
.papefrance-annonce__body { padding-top: 8px; }
.papefrance-lead.gb-headline, .papefrance-lead.gb-text {
  font-size: 28px;
  line-height: 1.35;
  color: var(--ink);
  font-weight: 400;
  margin: 0 0 32px;
  text-wrap: pretty;
}
.papefrance-lead .drop {
  font-size: 64px; line-height: 0.85;
  float: left; padding: 6px 12px 0 0;
  color: var(--primary); font-weight: 500;
}
.papefrance-p.gb-headline, .papefrance-p.gb-text {
  color: var(--ink-soft) !important;
  font-size: 16px !important;
  line-height: 1.7 !important;
  margin: 0 0 18px !important;
  max-width: 58ch;
}
.papefrance-meta {
  margin: 40px 0 0 !important;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  padding-top: 32px;
  border-top: 1px solid var(--rule);
}
.papefrance-meta dt {
  font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--ink-mute); font-weight: 600;
  margin-bottom: 8px;
}
.papefrance-meta dd {
  margin: 0;
  font-size: 22px; color: var(--ink); line-height: 1.2;
}

/* ─── ÉTAPES ─── */
.papefrance-etapes {
  background: var(--cream);
  padding: 140px 48px !important;
  margin: 0 !important;
}
.papefrance-etapes__head {
  max-width: var(--maxw);
  margin: 0 auto 64px !important;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 40px;
  flex-wrap: wrap;
}
.papefrance-etapes__head h2 { color: var(--navy); }
/*.papefrance-etapes__lead { max-width: 40ch; }*/
.papefrance-etapes__lead .papefrance-eyebrow { margin-bottom: 24px; }
.papefrance-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--primary-deep);
  background: var(--primary-tint);
  padding: 8px 16px;
  border-radius: 999px;
  white-space: nowrap;
}
.papefrance-tag::before {
  content: "";
  width: 7px; height: 7px; border-radius: 999px;
  background: var(--primary);
}
.papefrance-etapes__grid {
  max-width: var(--maxw);
  margin: 0 auto !important;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-columns: repeat(6, 1fr);
  gap: 28px;
}
@media (min-width: 900px) {
  .papefrance-etapes__grid > * {
    grid-column: span 2;
  }
  .papefrance-etapes__grid > :nth-child(4) {
    grid-column: 2 / span 2;
  }
}
.papefrance-etape {
  background: var(--paper);
  border-radius: 5px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 1px 0 var(--rule), 0 24px 50px -32px rgba(20,17,50,.30);
  transition: transform .25s ease, box-shadow .25s ease;
  border-top: 4px solid var(--navy);
  text-decoration: none;
}
.papefrance-etape:nth-child(2) { border-top-color: var(--green);  }
.papefrance-etape:nth-child(3) { border-top-color: var(--yellow); }
.papefrance-etape:nth-child(4) { border-top-color: var(--cyan);   }
.papefrance-etape:nth-child(5) { border-top-color: var(--red);    }
.papefrance-etape:hover {
  transform: translateY(-4px);
  box-shadow: 0 1px 0 var(--rule), 0 36px 64px -30px rgba(20,17,50,.40);
}
.papefrance-etape__img {
  width: 100%;
  height: 230px;
  object-fit: cover;
  display: block;
}
.papefrance-etape__body {
  padding: 28px 28px 30px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.papefrance-etape__num {
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.16em;
  color: var(--navy);
  margin-bottom: 10px;
}
.papefrance-etape:nth-child(2) .papefrance-etape__num {
  color: #0a86ad;
  color: #0A80A4; /* AA */
/*  color: #065F7A;*/ /* AAA */
  color: var(--green);
}
.papefrance-etape:nth-child(3) .papefrance-etape__num { color: #00807c; color: var(--yellow); }
.papefrance-etape:nth-child(4) .papefrance-etape__num { color: var(--cyan); }
.papefrance-etape:nth-child(5) .papefrance-etape__num { color: var(--red); }
.papefrance-etape__city {
  font-size: 34px;
  line-height: 1.05;
  color: var(--ink);
  margin: 0 0 10px;
  letter-spacing: -0.01em;
}
.papefrance-etape__role {
  font-size: 15px;
  color: var(--ink-soft);
  line-height: 1.55;
  margin: 0 0 22px;
  flex: 1;
}
.papefrance-etape__date {
  display: flex;
  align-items: center;
  gap: 10px;
  padding-top: 18px;
  border-top: 1px solid var(--rule);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--ink);
}
.papefrance-etape__date svg { width: 16px; height: 16px; color: var(--primary); flex: none; }

/* ─── PROGRAMME ─── */
.papefrance-programme {
  background: var(--navy-050);
  padding: 140px 48px !important;
  margin: 0 !important;
}
.papefrance-programme__inner { max-width: 760px; margin: 0 auto; }

/* ─── HUB ─── */
.papefrance-hub {
  background: var(--paper);
  padding: 140px 48px !important;
  margin: 0 !important;
}
.papefrance-hub__inner { max-width: var(--maxw); margin: 0 auto; }
.papefrance-hub__head { max-width: 620px; margin-bottom: 56px; }
.papefrance-hub__head .papefrance-eyebrow { margin-bottom: 24px; }
.papefrance-hub__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--rule);
  border: 1px solid var(--rule);
  border-radius: 6px;
  overflow: hidden;
}
.papefrance-hub__card {
  background: var(--paper);
  padding: 40px 36px 38px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  text-decoration: none !important;
  color: inherit;
  min-height: 220px;
  transition: background .2s ease;
}
.papefrance-hub__card:hover { background: var(--primary-wash); }
.papefrance-hub__icon {
  width: 34px; height: 34px;
  color: var(--primary);
  flex: none;
  display: inline-block;
}
.papefrance-hub__icon svg { width: 100%; height: 100%; display: block; }
.papefrance-hub__card h3 {
  font-size: 27px;
  line-height: 1.1;
  margin: 0;
  color: var(--ink);
  letter-spacing: -0.005em;
}
.papefrance-hub__card p {
  font-size: 14px;
  color: var(--ink-soft);
  line-height: 1.55;
  margin: 0;
  flex: 1;
}
.papefrance-hub__go {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--primary-deep);
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.papefrance-hub__go .arrow { transition: transform .2s; display: inline-block; }
.papefrance-hub__card:hover .papefrance-hub__go .arrow { transform: translateX(4px); }

/* ─── FAQ ─── */
.papefrance-faq {
  background: var(--cream);
  padding: 140px 48px !important;
  margin: 0 !important;
}
.papefrance-faq__inner { max-width: 900px; margin: 0 auto; }
.papefrance-faq__head { margin-bottom: 48px; }
.papefrance-faq__head .papefrance-eyebrow { margin-bottom: 24px; }
.papefrance-qa { border-top: 1px solid var(--rule); }
.papefrance-qa:last-of-type { border-bottom: 1px solid var(--rule); }
.papefrance-qa summary {
  list-style: none;
  cursor: pointer;
  padding: 26px 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 28px;
  font-size: clamp(20px, 2.4vw, 26px);
  font-weight: 500;
  color: var(--ink);
  line-height: 1.2;
  transition: color .2s;
}
.papefrance-qa summary::-webkit-details-marker { display: none; }
.papefrance-qa summary:hover { color: var(--primary-deep); }
.papefrance-qa__plus {
  flex: none;
  width: 22px; height: 22px;
  position: relative;
  margin-top: 4px;
  transition: transform .25s ease;
}
.papefrance-qa__plus::before, .papefrance-qa__plus::after {
  content: "";
  position: absolute;
  background: var(--primary);
  border-radius: 2px;
}
.papefrance-qa__plus::before { top: 50%; left: 0; right: 0; height: 2px; transform: translateY(-50%); }
.papefrance-qa__plus::after  { left: 50%; top: 0; bottom: 0; width: 2px; transform: translateX(-50%); transition: opacity .25s ease; }
.papefrance-qa[open] .papefrance-qa__plus { transform: rotate(90deg); }
.papefrance-qa[open] .papefrance-qa__plus::after { opacity: 0; }
.papefrance-qa__body {
  padding: 0 50px 28px 0;
  color: var(--ink-soft);
  font-size: 16px;
  line-height: 1.65;
  max-width: 68ch;
}
.papefrance-qa__body a { color: var(--primary-deep); text-underline-offset: 3px; }

/* ─── CITATION ─── */
.papefrance-quote {
  background: var(--navy-050);
  padding: 140px 48px !important;
  position: relative;
  overflow: hidden;
  margin: 0 !important;
}
.papefrance-quote__mark {
  position: absolute;
  top: -60px; left: 4vw;
  font-size: 480px; line-height: 1;
  color: var(--navy); opacity: 0.06;
  pointer-events: none; user-select: none;
}
.papefrance-quote__wrap {
  max-width: 980px;
  margin: 0 auto !important;
  position: relative;
}
.papefrance-quote__wrap .papefrance-eyebrow { margin-bottom: 36px; }
.papefrance-pull {
  margin: 0;
  font-family: 'Jost', sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: clamp(28px, 3.4vw, 44px);
  line-height: 1.25;
  letter-spacing: -0.005em;
  color: var(--ink);
  text-wrap: pretty;
  border: 0; padding: 0;
}
.papefrance-pull .hl {
  background: linear-gradient(180deg, transparent 62%, var(--yellow) 62%);
  padding: 0 4px;
}
.papefrance-pull em { font-style: italic; }
.papefrance-attribution {
  margin-top: 56px;
  display: flex; align-items: center; gap: 20px;
  padding-top: 28px;
  border-top: 1px solid var(--rule);
}
.papefrance-attribution__photo {
  width: 64px; height: 64px;
  border-radius: 999px;
  object-fit: cover;
  flex: none;
}
.papefrance-attribution__name {
  font-size: 22px; color: var(--ink); font-weight: 500;
}
.papefrance-attribution__role {
  font-size: 13px; color: var(--ink-soft); line-height: 1.5;
}

/* ─── CTA DON ─── */
.papefrance-cta {
  background: var(--green);
  background: var(--cyan); /* AA */
  padding: 140px 48px !important;
  padding-bottom: 70px !important;
  text-align: center;
  margin: 0 !important;
  color: #fff;
}
.papefrance-cta__inner {
  max-width: 760px !important;
  margin: 0 auto !important;
}
.papefrance-cta .papefrance-eyebrow { margin-bottom: 28px; }
.papefrance-h2--center { text-align: center; }
/*.papefrance-cta .papefrance-h2,
.papefrance-cta .papefrance-h2.gb-headline,
.papefrance-cta .papefrance-h2.gb-text {
  color: #fff !important;
}*/
.papefrance-cta .papefrance-h2 em {
  color: var(--red);
  color: var(--red-AA, #C60613); /* AA */
/*  color: var(--red-AAA, #9D0610);*/ /* AAA */
}
.papefrance-cta .papefrance-sub {
  color: rgba(255,255,255,0.82) !important;
  color: var(--navy-AAA, #0D2877) !important; /* AAA */
}
.papefrance-sub.gb-headline, .papefrance-sub.gb-text {
  font-size: 18px !important;
  color: var(--ink-soft);
  max-width: 52ch;
  margin: 20px auto 48px !important;
  line-height: 1.6 !important;
}
.papefrance-cta__row {
  display: inline-flex !important;
  gap: 16px;
  flex-wrap: wrap;
  justify-content: center;
}

/* ─── BOUTONS ─── */
.papefrance-btn {
  appearance: none;
  border: none;
  font-family: 'Jost', sans-serif !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  letter-spacing: 0.01em;
  padding: 18px 32px !important;
  border-radius: 999px !important;
  cursor: pointer;
  transition: all .2s ease;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center;
  gap: 10px;
  line-height: 1 !important;
}
.papefrance-btn__arrow { transition: transform .2s; display: inline-block; }
.papefrance-btn:hover .papefrance-btn__arrow { transform: translateX(3px); }

.papefrance-btn--primary { background: var(--navy) !important; color: var(--paper) !important; }
.papefrance-btn--primary:hover { background: var(--navy-900) !important; transform: translateY(-1px); color: var(--paper) !important; }

.papefrance-btn--ghost { background: transparent !important; color: var(--navy) !important; box-shadow: inset 0 0 0 2px var(--navy); }
.papefrance-btn--ghost:hover { background: var(--navy) !important; color: #fff !important; }

.papefrance-btn--cta { background: var(--yellow) !important; color: var(--navy-900) !important; }
.papefrance-btn--cta:hover { background: var(--yellow-hover, #ffb735) !important; color: var(--navy-900) !important; }

.papefrance-cta .papefrance-btn--primary { background: var(--yellow) !important; color: var(--navy-900) !important; }
.papefrance-cta .papefrance-btn--ghost {
  color: #fff !important;
  box-shadow: inset 0 0 0 2px rgba(255,255,255,0.6);
  color: var(--navy-AAA, #0D2877) !important;
  box-shadow: inset 0 0 0 2px var(--navy-AAA, #0D2877);
}
.papefrance-cta .papefrance-btn--ghost:hover {
  background: rgba(255,255,255,0.12) !important;
  transform: translateY(-1px);
}

.papefrance-topbar__nav .papefrance-btn--primary { background: var(--primary-deep) !important; color: var(--paper) !important; }
.papefrance-topbar__nav .papefrance-btn--primary:hover { background: var(--primary-deep) !important; transform: translateY(-1px); color: var(--paper) !important; }
.papefrance-topbar__nav .papefrance-btn--ghost { background: transparent !important; color: var(--paper) !important; box-shadow: unset; }
.papefrance-topbar__nav .papefrance-btn--ghost:hover { background: var(--navy) !important; color: var(--paper) !important; }

/* ─── NEWSLETTER ─── */
.papefrance-newsletter {
  background: var(--green);
  background: var(--cyan);
  padding: 140px 48px !important;
  padding-top: 70px !important;
  color: #fff;
  overflow: hidden;
  margin: 0 !important;
}
.papefrance-newsletter::before {
  content: "";
  position: absolute; inset: 0;
  background-image:
    radial-gradient(circle at 20% 30%, rgba(255,255,255,.08) 0%, transparent 40%),
    radial-gradient(circle at 80% 70%, rgba(255,255,255,.06) 0%, transparent 40%);
  pointer-events: none;
}
.papefrance-newsletter__card {
  max-width: 580px;
  margin: 0 auto;
  background: var(--paper);
  color: var(--ink);
  border-radius: 4px;
  padding: 56px 56px 48px;
  position: relative;
  box-shadow: 0 30px 80px -20px rgba(20,17,50,.45);
}
.papefrance-newsletter__card .papefrance-eyebrow { margin-bottom: 16px; }
.papefrance-h2--sm {
  font-size: 36px;
  line-height: 1.1;
  margin: 0 0 8px;
  letter-spacing: -0.01em;
}
.papefrance-newsletter__sub {
  color: var(--ink-soft);
  font-size: 15px;
  margin: 0 0 28px;
  line-height: 1.55;
}
.papefrance-form__field { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; }
.papefrance-form__field label {
  font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase;
  font-weight: 600; color: var(--ink-mute);
}
.papefrance-form__field input {
  appearance: none;
  border: 0;
  border-bottom: 1px solid var(--ink);
  background: transparent;
  border-radius: 0;
  padding: 8px 0;
  font-family: 'Jost', sans-serif;
  font-size: 17px;
  color: var(--ink);
  outline: none;
  transition: border-color .2s;
  width: 100%;
}
.papefrance-form__field input:focus { border-color: var(--primary); }
.papefrance-form__legal {
  font-size: 12px;
  color: var(--ink-mute);
  line-height: 1.55;
  margin: 16px 0 24px;
}
.papefrance-form__submit { width: 100%; justify-content: center; }

/* ─── DEVISE ─── */
.papefrance-devise {
  background: var(--cream);
  padding: 96px 24px;
  text-align: center;
}
.papefrance-devise__inner { max-width: 880px; margin: 0 auto; }
.papefrance-devise__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: 'Jost', system-ui, sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--navy-900);
  margin-bottom: 28px;
}
.papefrance-devise__eyebrow::before,
.papefrance-devise__eyebrow::after {
  content: "";
  width: 28px;
  height: 1px;
  background: currentColor;
  opacity: 0.6;
}
.papefrance-devise__quote {
  font-family: 'LeonXIV', sans-serif;
  font-weight: 500;
  font-style: italic;
  font-size: clamp(34px, 5.5vw, 60px);
  line-height: 1.12;
  letter-spacing: -0.01em;
  color: var(--ink);
  margin: 0;
  border: 0;
  padding: 0;
  text-wrap: balance;
  word-wrap: normal;
}
.papefrance-devise__ref {
  display: block;
  margin-top: 22px;
  font-family: 'Jost', system-ui, sans-serif;
  font-style: normal;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-mute);
}

/* ════════════════════════════════════════════════════════════════
   2. BARRE D'ACCÈS RAPIDE aux pages publiées
   (à placer juste sous le hero – markup dans le pattern fourni)
   ════════════════════════════════════════════════════════════════ */
.pf-quicklinks{
  background:var(--cream,#f5f4ef);
  padding:clamp(40px,7vw,64px) 24px;
  counter-reset:pfql;
}
.pf-quicklinks__in{
  max-width:1180px; margin:0 auto;
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:clamp(14px,2vw,22px);
}

/* Filet 4-couleurs de la charte, comme les titres de la FAQ */
.pf-quicklinks__in::before{
  content:''; grid-column:1/-1;
  width:84px; height:4px; margin-bottom:6px;
  background:linear-gradient(90deg,
    var(--navy,#0F2D85) 0 25%, var(--red,#F71021) 25% 50%,
    var(--cyan,#1ACCFF) 50% 75%, var(--yellow,#FFA107) 75%);
}

.pf-quicklink{
  --ql-accent:var(--navy,#0F2D85);
  counter-increment:pfql;
  position:relative;
  display:flex; flex-direction:column; gap:8px;
  padding:26px 26px 24px;
  background:#fff;
  border:1px solid var(--rule,rgba(15,45,133,.14));
  border-top:3px solid var(--ql-accent);
  border-radius:4px;
  box-shadow:0 18px 40px -34px rgba(15,45,133,.45);
  text-decoration:none; color:var(--ink,#0F2D85);
  transition:transform .22s ease, box-shadow .22s ease, background .18s;
}
.pf-quicklink:hover{
  transform:translateY(-4px);
  box-shadow:0 26px 50px -30px rgba(15,45,133,.5);
}

/* accent par carte : bleu · cyan · jaune */
.pf-quicklink:nth-of-type(2){ --ql-accent:var(--cyan,#1ACCFF); }
.pf-quicklink:nth-of-type(3){ --ql-accent:var(--yellow,#FFA107); }
.pf-quicklink:nth-of-type(4){ --ql-accent:var(--red,#FFA107); }

/* numéro 01/02/03 en pastille, comme les rubriques FAQ */
.pf-quicklink::before{
  content:counter(pfql,decimal-leading-zero);
  align-self:flex-start;
  font-family:'Jost',sans-serif; font-size:13px; font-weight:700;
  letter-spacing:.02em; color:var(--ql-accent);
  padding:.25em .5em; border-radius:3px;
  background:var(--primary-tint,#eef1fb);
}

.pf-quicklink__label{
  font-family:'Jost','Futura PT',system-ui,sans-serif;
  font-size:clamp(19px,4.4vw,24px); font-weight:700; text-transform:uppercase;
  line-height:1.12; color:var(--primary,#0F2D85);
  display:flex; align-items:baseline; justify-content:space-between; gap:14px;
}
.pf-quicklink__label::after{
  content:"→"; flex:none; color:var(--ql-accent);
  transition:transform .2s ease;
}
.pf-quicklink:hover .pf-quicklink__label::after{ transform:translateX(5px); }
.pf-quicklink__desc{ font-size:14.5px; line-height:1.55; color:var(--ink-soft,#47506f); }

/* Mobile : une colonne, cible tactile large */
@media (max-width:900px){
  .pf-quicklinks__in{ grid-template-columns:1fr; }
  .pf-quicklink{ padding:20px 20px 18px; min-height:76px; }
}

/* ════════════════════════════════════════════════════════════════
   3. RENVOI VERS /programme/ (remplace la timeline sur l'accueil)
   ════════════════════════════════════════════════════════════════ */
.pf-prog-teaser {
  background: var(--primary-tint);
  padding: clamp(56px,9vw,96px) 24px;
}
.pf-prog-teaser__in {
  max-width:1180px; margin:0 auto;
  display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(28px,5vw,64px);
  align-items:center;
}
.pf-prog-teaser__title {
  font-family: 'Jost','Futura PT',system-ui,sans-serif;
  font-weight: 800; text-transform: uppercase;
  font-size: clamp(28px,5.4vw,46px); line-height: 1.04;
  color: var(--ink, #0F2D85); margin: 14px 0 14px;
}
.pf-prog-teaser__title em { color:var(--yellow,#FFA107); font-style:italic; }
.pf-prog-teaser__text { font-size:16px; line-height:1.65; margin:0 0 26px; max-width:46ch; }

/* Aperçu : 3 jalons condensés, pas la timeline complète */
.pf-prog-peek{ display:flex; flex-direction:column; gap:10px; }
.pf-prog-peek__row{
  display:flex; align-items:baseline; gap:14px;
  background:#fff; border-radius:10px; padding:14px 18px;
  border-left:4px solid var(--yellow,#FFA107);
}
.pf-prog-peek__day{
  flex:none; min-width:88px;
  font-family:'Jost','Futura PT',system-ui,sans-serif;
  font-size:13px; font-weight:700; text-transform:uppercase;
  color:var(--yellow,#FFA107);
}
.pf-prog-peek__what{ font-size:15px; line-height:1.45; font-weight:600; }
.pf-prog-peek__more{
  margin-top:4px; font-size:13px; color:#6b7793; text-align:right;
}

@media (max-width:900px){
  .pf-prog-teaser__in{ grid-template-columns:1fr; }
  .pf-prog-peek__row{ padding:13px 15px; }
  .pf-prog-peek__day{ min-width:76px; font-size:12px; }
}

/*
 * Infobox
 */
.pf-infobox{
  --ib-accent:var(--navy,#0F2D85);
  position:relative;
  background:#fff;
  border:1px solid var(--rule,rgba(15,45,133,.14));
  border-left:4px solid var(--ib-accent);
  border-radius:4px;
  box-shadow:0 18px 44px -36px rgba(15,45,133,.45);
  margin:32px 0;
  overflow:hidden;
}
.pf-infobox--warn{ --ib-accent:var(--yellow,#FFA107); }
.pf-infobox--info{ --ib-accent:var(--cyan,#1ACCFF); }

/* ── Barre de tête : lieu + horaire ───────────────────────────── */
.pf-infobox__head{
  display:flex; flex-wrap:wrap; align-items:baseline; gap:8px 18px;
  padding:16px clamp(20px,3vw,28px);
  background:var(--primary-tint,#eef1fb);
  border-bottom:1px solid var(--rule,rgba(15,45,133,.14));
}
.pf-infobox__place{
  font-family:'Jost','Futura PT',system-ui,sans-serif;
  font-size:clamp(15px,3.6vw,17px); font-weight:700;
  line-height:1.25; color:var(--primary,#0F2D85);
}
.pf-infobox__time{
  display:inline-flex; align-items:center; gap:7px;
  margin-left:auto;
  font-family:'Jost',system-ui,sans-serif;
  font-size:14px; font-weight:700; letter-spacing:.04em;
  color:var(--ib-accent);
/*  color:var(--primary-deep,#091d5a);*/
  white-space:nowrap;
}
.pf-infobox__time::before{
  content:""; width:7px; height:7px; border-radius:50%;
  background:currentColor;
  background:var(--ib-accent); flex:none;
}

/* ── Corps ────────────────────────────────────────────────────── */
.pf-infobox__body{
  padding:clamp(20px,3vw,28px);
  display:flex; flex-direction:column; gap:14px;
}
.pf-infobox__body > *{ margin:0; }
.pf-infobox__body p{
  font-size:15.5px; line-height:1.62; color:var(--ink-soft,#47506f);
}
.pf-infobox__body strong{ color:var(--ink,#0F2D85); font-weight:700; }

/* mention forte : gratuité / recommandation */
.pf-infobox__lead{
  font-size:16.5px !important; line-height:1.55 !important;
  color:var(--ink,#0F2D85) !important;
  padding-left:16px;
  border-left:3px solid var(--ib-accent);
}

/* lien d'inscription mis en avant */
.pf-infobox__link, .pf-infobox a {
  display:inline-flex; align-items:baseline; gap:8px;
  font-family:'Jost',system-ui,sans-serif; font-weight:700;
  font-size:16px; color:var(--primary,#0F2D85) !important;
  text-decoration:underline;
  text-decoration-color:var(--ib-accent);
  text-decoration-thickness:2px; text-underline-offset:4px !important;
}
.pf-infobox__link::after, .pf-infobox a::after { content:"↗"; text-decoration:none; }
.pf-infobox__link:hover, .pf-infobox a:hover {
  color:var(--ib-accent) !important;
/*  color:var(--primary-deep,#091d5a);*/
  text-decoration-color:var(--ib-accent) !important;
}

/* listes internes (ex. « en groupe ») */
.pf-infobox__body ul{
  margin:0; padding-left:1.15em;
  /*font-size:15.5px;*/ line-height:1.6; color:var(--ink-soft,#47506f);
}
.pf-infobox__body li{ margin-bottom:6px; }
.pf-infobox__body li::marker{ color:var(--ib-accent); }

/* note secondaire (équité des secteurs, précisions) */
.pf-infobox__note{
  font-size:15px !important; line-height:1.55 !important;
  color:var(--ink-mute,#6a7391) !important;
  color:var(--ink-soft,#47506f) !important;
  padding-top:14px;
  border-top:1px dashed var(--rule,rgba(15,45,133,.18));
}

/* ── Mobile ───────────────────────────────────────────────────── */
@media (max-width:640px){
  .pf-infobox{ margin:24px 0; }
  .pf-infobox__head{ flex-direction:column; align-items:flex-start; gap:6px; }
  .pf-infobox__time{ margin-left:0; }
}


/*
 * Inside article
 */
.pf-inside-theme {
  --ql-accent: var(--navy, #0F2D85);
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 26px 26px 24px;
  background: #fff;
  border: 1px solid var(--rule, rgba(15, 45, 133, .14));
  border-left: 3px solid var(--ql-accent);
  border-radius: 4px;
  box-shadow: 0 18px 40px -34px rgba(15, 45, 133, .45);
  text-decoration: none;
  color: var(--ink, #0F2D85);
  transition: transform .22s ease, box-shadow .22s ease, background .18s;
}
.pf-inside-theme:hover {
  transform: translateY(-4px);
  box-shadow: 0 26px 50px -30px rgba(15, 45, 133, .5);
}
.pf-inside-theme a {
  text-decoration: none;
}
.pf-inside-theme a:hover {
  text-decoration: underline;
}

/* */

/* ─── Surcharger GENERATE-BACK-TO-TOP  ─── */
.generate-back-to-top {
  bottom: 80px;
  right: 20px;
  line-height: 44px;
  width: 44px;
}

.generate-back-to-top,
.generate-back-to-top:visited {
    background-color: var(--navy) !important;
    color: var(--cream) !important;
}

.generate-back-to-top:hover,
.generate-back-to-top:focus {
    background-color: rgba( 0, 0, 0, 0.6 );
    color: var(--paper);
}

/* ─── STRIPE ─── */
.papefrance-stripe { display: flex; height: 8px; width: 100%; }
.papefrance-stripe i { flex: 1; }
.papefrance-stripe i:nth-child(1) { background: var(--navy); }
.papefrance-stripe i:nth-child(2) { background: var(--red); }
.papefrance-stripe i:nth-child(3) { background: var(--cyan); }
.papefrance-stripe i:nth-child(4) { background: var(--green); }
.papefrance-stripe i:nth-child(5) { background: var(--yellow); }


:root { --pf-flag-h: 6px; }
/* Bandes fixes haut/bas : le body réserve leur place (rien n'est masqué au
   repos) et tout élément sticky se cale sous la bande haute, cf. --pf-flag-h. */
html { scroll-padding-top: var(--pf-flag-h); scroll-padding-bottom: var(--pf-flag-h); }
body { padding-top: var(--pf-flag-h); padding-bottom: var(--pf-flag-h); }
.pf-flag--france, .pf-flag--vatican {
  display: flex;
  height: var(--pf-flag-h);
  position: fixed;
  width: 100%;
  z-index: 100; /* au-dessus des en-têtes (50), sous overlay menu et don (9999) */
}
.pf-flag--france i, .pf-flag--vatican i { flex: 1; }
.pf-flag--france { bottom: 0; }
.admin-bar .pf-flag--vatican { top: 32px; }
.pf-flag--vatican { top: 0; }

.pf-flag--france i:nth-child(1) { background: #000091; }
.pf-flag--france i:nth-child(2) { background: #fff; }
.pf-flag--france i:nth-child(3) { background: #e1000f; }

.pf-flag--vatican i:nth-child(1) { background: #fff200; }
.pf-flag--vatican i:nth-child(2) { background: #fff; }

/* Le blanc se perd sur fond clair : filet intérieur, invisible sur fond sombre */
.pf-flag--vatican i:nth-child(2) {
  box-shadow: inset 0 -1px 0 rgba(15,45,133,.25);
}
.pf-flag--france i:nth-child(2) {
  box-shadow: inset 0 1px 0 rgba(15,45,133,.25);
}


/* TARTEAUCITRON : déplacé dans tarteaucitron-v4.css, qui remplace ces
   surcharges éparses par une couche de variables --tac-*. */

.youtube_player { aspect-ratio: 16 / 9; }
.youtube_player iframe {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  border: none;
}

/* ─── RESPONSIVE ─── */
@media (max-width: 980px) {
  .papefrance-topbar { gap: 16px; }
  .papefrance-topbar__brand { min-width: 0; }
  .papefrance-topbar__brand-main,
  .papefrance-topbar__brand-sub { white-space: normal; }
  /* Le burger fait main et son état [data-open] ont été supprimés
     (voir plus haut). La mise en colonne des liens est descendue à
     768 px, en fin de fichier : entre 769 et 980 px, GenerateBlocks
     rend encore le menu en desktop et ces règles lui imposaient une
     mise en page mobile — c'est le mélange 900/980 px que la v4
     déclarait avoir corrigé et qui subsistait ici. */
  .papefrance-topbar__cta {
    text-align: center; justify-content: center;
    margin-top: 16px; padding: 14px 18px;
  }
  .papefrance-topbar__nav a.papefrance-topbar__cta {
    margin-top: 16px;
    padding: 13px 18px;
    border-radius: 999px;
    text-align: center;
  }
}

@media (max-width: 900px) {
  .papefrance-topbar { padding: 18px 24px; }
  .papefrance-topbar__brand-main { font-size: 17px; }
  .papefrance-topbar__brand-sub { font-size: 9.5px; letter-spacing: 0.1em; }
  .papefrance-hero__inner { padding: 0 24px 48px !important; }
  .papefrance-hero__meta { gap: 32px; }
  .papefrance-countdown { margin-left: 0; gap: 0.6rem; }
  .papefrance-countdown__unit { min-width: 50px; }
  .papefrance-countdown__unit .num { font-size: 40px; }

  .papefrance-annonce { padding: 80px 24px !important; }
  .papefrance-annonce__grid { grid-template-columns: 1fr !important; gap: 40px; }
  .papefrance-meta { grid-template-columns: 1fr 1fr; }

  .papefrance-etapes { padding: 80px 24px !important; }
  .papefrance-etapes__grid { grid-template-columns: 1fr; gap: 20px; }
  .papefrance-programme { padding: 80px 24px !important; }
  .papefrance-hub { padding: 80px 24px !important; }
  .papefrance-hub__grid { grid-template-columns: 1fr; }
  .papefrance-faq { padding: 80px 24px !important; }

  .papefrance-quote { padding: 80px 24px !important; }
  .papefrance-quote__mark { font-size: 280px; top: -30px; }

  .papefrance-cta { padding: 80px 24px !important; }
  .papefrance-newsletter { padding: 80px 24px !important; }
  .papefrance-newsletter__card { padding: 40px 28px; }
  .papefrance-devise { padding: 64px 24px; }

  .papefrance-utilbar__in { padding: 8px 22px; font-size: 10px; letter-spacing: 0.12em; }
  .papefrance-utilbar__in { letter-spacing: 0.03em; font-size: 9px; }
/*  .page-id-1234 .papefrance-utilbar__in { padding: 5px 22px; font-size: 10px; letter-spacing: 0.12em; }*/
/*  .papefrance-utilbar__in .cities { display: none; }*/
}


/* ─── 768 px : le SEUL palier du menu ───────────────────────────────
   Imposé par GenerateBlocks (<nav data-gb-mobile-breakpoint="768px">).
   Ces règles vivaient dans le bloc 980 px ci-dessus, où elles
   imposaient la mise en page mobile à un menu que GB rendait encore
   en desktop entre 769 et 980 px. */
@media (max-width: 768px) {
  .papefrance-topbar__nav a {
    padding: 15px 2px;
    font-size: 15px;
    border-bottom: 1px solid var(--pf-nav-rule, rgba(255,255,255,.12));
  }
}

/* Bandeau "mq" inspiré de Claude Design */
.mq { background: var(--navy-900); color: #fff; font-size: 13px; padding: 10px var(--pad); text-align: center; }
.mq b { color: var(--yellow); }
