/* numibee · feuille de style unique du thème */
/* ==========================================================================
   numibee — refonte 2026 · feuille de style globale
   À coller UNE SEULE FOIS dans : Apparence › Personnaliser › CSS additionnel
   (ou Éditeur de site › Styles › CSS additionnel).
   Toutes les classes commencent par "nb-" et tout est rangé sous .nb :
   rien ne touche au reste de ton thème.
   Mise en page : une colonne aérée, fond blanc, texte noir, traits fins.
   La couleur vient uniquement des abeilles et de petits soulignés.
   ========================================================================== */

/* Polices : texte courant en police système (aucun téléchargement), titres en Red Hat Mono
   hébergée sur ton site (aucun appel à Google) : 2 fichiers, 20 Ko au total.
   Dépose le dossier « polices » dans /wp-content/uploads/ (via FTP ou l'extension
   « File Manager »). Seuls les caractères latins sont chargés, avec font-display: swap. */
@font-face { font-family: "Red Hat Mono"; font-weight: 500; font-style: normal; font-display: swap; src: url("polices/red-hat-mono-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Red Hat Mono"; font-weight: 600; font-style: normal; font-display: swap; src: url("polices/red-hat-mono-latin-600-normal.woff2") format("woff2"); }

.nb {
  /* Couleurs : le texte est toujours noir ; la palette ne sert qu'aux accents fins */
  --nb-encre: #000;
  --nb-papier: #fff;
  --nb-trait: #000;
  --nb-trait-doux: #d8d3cc;      /* dérivé du beige de la charte, pour les filets */
  --nb-bleu: #0500d3;
  --nb-rose: #ff83a1;
  --nb-jaune: #ffe012;
  --nb-sapin: #027148;
  --nb-ciel: #92f5ff;
  --nb-accent: var(--nb-rose);    /* couleur d'accent de la page, changée par .nb--ciel, .nb--rose… */
  /* Typographies de la charte */
  --nb-titre: "Red Hat Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  --nb-texte: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;   /* texte courant : police système, la plus familière et la plus légère */
  --nb-main: "Red Hat Mono", ui-monospace, monospace;   /* touches signature (Shantell retirée du web pour l'écoconception) */
  /* Échelle */
  --nb-xs: .8125rem;
  --nb-s: .9375rem;
  --nb-m: 1.0625rem;
  --nb-l: 1.3rem;
  --nb-xl: clamp(1.55rem, 2.6vw, 2.1rem);
  --nb-xxl: clamp(2rem, 4.6vw, 3.25rem);
  --nb-max: 1360px;
  --nb-texte-max: 64ch;

  box-sizing: border-box;
  max-width: var(--nb-max);
  margin-inline: auto;
  padding-inline: clamp(16px, 4vw, 48px);
  color: var(--nb-encre);
  background: var(--nb-papier);
  font-family: var(--nb-texte);
  font-size: var(--nb-m);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
.nb *, .nb *::before, .nb *::after { box-sizing: inherit; }

/* --- Typo : tout en noir, quoi que dise le thème --- */
.nb h1, .nb h2, .nb h3, .nb h4, .nb p, .nb li, .nb blockquote, .nb figcaption, .nb dt, .nb dd, .nb a, .nb span, .nb strong, .nb em { color: var(--nb-encre); }
.nb h1, .nb h2, .nb h3, .nb h4 {
  font-family: var(--nb-titre);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: -.01em;
  text-wrap: balance;
  margin: 0;
}
.nb h1 { font-size: var(--nb-xxl); }
.nb h2 { font-size: var(--nb-xl); }
.nb h3 { font-size: var(--nb-l); font-weight: 600; }
.nb p { margin: 0; max-width: var(--nb-texte-max); }
.nb ul, .nb ol { margin: 0; padding: 0; list-style: none; }
.nb strong { font-weight: 600; }

.nb-surtitre {
  font-family: var(--nb-titre);
  font-size: var(--nb-xs);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .22em;
}
.nb-chapo { font-size: var(--nb-l); line-height: 1.55; }
.nb-signature { font-family: var(--nb-main); font-weight: 500; font-size: var(--nb-l); }

/* Souligné dessiné : la seule touche de couleur dans le texte */
.nb-souligne {
  text-decoration: underline wavy var(--nb-bleu);
  text-decoration-thickness: 2px;
  text-underline-offset: .22em;
  text-decoration-skip-ink: none;
}
.nb-souligne--rose { text-decoration-color: var(--nb-rose); }
.nb-souligne--sapin { text-decoration-color: var(--nb-sapin); }
.nb-souligne--accent { text-decoration-color: var(--nb-accent); text-decoration-thickness: 3px; }
/* Accent par page */
.nb--rose { --nb-accent: var(--nb-rose); }
.nb--ciel { --nb-accent: var(--nb-ciel); }
.nb--jaune { --nb-accent: var(--nb-jaune); }
.nb--sapin { --nb-accent: var(--nb-sapin); }
.nb--bleu { --nb-accent: var(--nb-bleu); }
.nb-coord { font-family: var(--nb-titre); font-size: var(--nb-l); font-weight: 600; overflow-wrap: anywhere; }
.nb--sapin .nb-chiffre__val, .nb.nb--sapin .nb-impact-xl .nb-chiffre__val { -webkit-text-stroke: 0; }
.nb-citation { margin: 0; display: grid; gap: 10px; max-width: 760px; }
.nb-citation blockquote { margin: 0; padding: 0; border: 0; font-family: var(--nb-texte); font-size: var(--nb-l); line-height: 1.5; }
.nb-citation figcaption { font-family: var(--nb-titre); font-size: var(--nb-s); }
.nb-carte--accent { border-color: var(--nb-trait); box-shadow: 6px 6px 0 var(--nb-accent); }
.nb-statut { justify-self: start; font-family: var(--nb-titre); font-size: var(--nb-xs); font-weight: 600; text-transform: uppercase; letter-spacing: .12em; border: 2px solid var(--nb-accent); border-radius: 999px; padding: .2em .8em; }
.nb-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.nb-tags li { font-family: var(--nb-titre); font-size: var(--nb-xs); border: 1.5px solid var(--nb-trait); border-radius: 999px; padding: .3em .85em; }

/* --- Liens et boutons --- */
.nb a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.nb a:hover { text-decoration-thickness: 2px; text-decoration-color: var(--nb-bleu); }
.nb a:focus-visible, .nb .nb-btn:focus-visible {
  outline: 3px solid var(--nb-bleu);
  outline-offset: 3px;
  border-radius: 6px;
}
.nb-actions { display: flex; flex-wrap: wrap; gap: 12px 16px; align-items: center; }
.nb .nb-btn {
  display: inline-flex; align-items: center; gap: .6em;
  padding: .8em 1.3em;
  border: 2px solid var(--nb-trait);
  border-radius: 999px;
  background: transparent;
  font-family: var(--nb-titre);
  font-size: var(--nb-s);
  font-weight: 600;
  letter-spacing: .02em;
  text-decoration: none;
  line-height: 1.2;
  transition: transform .15s ease, box-shadow .15s ease;
}
.nb .nb-btn:hover { transform: translate(-2px, -2px); box-shadow: 4px 4px 0 var(--nb-trait); text-decoration: none; }
.nb .nb-btn--discret { border-color: transparent; padding-inline: .2em; text-decoration: underline; text-underline-offset: .25em; }
.nb .nb-btn--discret:hover { box-shadow: none; transform: none; text-decoration-color: var(--nb-bleu); }
.nb-fleche { display: inline-block; transition: transform .15s ease; }
.nb a:hover .nb-fleche { transform: translateX(3px); }

/* --- Sections --- */
.nb-section { padding-block: clamp(48px, 8vw, 88px); display: grid; gap: 32px; }
.nb-section + .nb-section { border-top: 1.5px dashed var(--nb-trait-doux); }
.nb-entete { display: grid; gap: 14px; max-width: 760px; }

/* --- Illustrations et pictos --- */
.nb-illu { display: block; width: 100%; height: auto; max-width: 100%; }
.nb-picto { width: 44px; height: 44px; flex: none; color: var(--nb-encre); }
.nb-picto--l { width: 64px; height: 64px; }

/* --- Hero --- */
.nb-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(0, .8fr);
  gap: clamp(24px, 5vw, 64px);
  align-items: center;
  padding-block: clamp(40px, 7vw, 84px) clamp(32px, 6vw, 64px);
}
.nb-hero__texte { display: grid; gap: 22px; min-width: 0; }
.nb-hero__illu { max-width: 340px; justify-self: center; width: 100%; }
.nb-pour { font-family: var(--nb-titre); font-size: var(--nb-s); }
.nb-pour span + span::before { content: " · "; }

/* --- Situations (« vous vous reconnaissez ? ») --- */
.nb-situations { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 40px; }
.nb-situation { display: flex; gap: 18px; align-items: flex-start; }
.nb-situation p { font-size: var(--nb-l); line-height: 1.45; }
.nb-situation small { display: block; margin-top: 6px; font-size: var(--nb-s); }

/* --- Le chemin (parcours en étapes) --- */
.nb-chemin { display: grid; gap: 0; counter-reset: etape; position: relative; }
.nb-etape {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  gap: 0 24px;
  position: relative;
  padding-bottom: 44px;
}
.nb-etape::before {           /* le sentier en pointillés */
  content: "";
  position: absolute;
  left: 27px; top: 56px; bottom: 0;
  border-left: 2px dashed var(--nb-trait);
}
.nb-etape__num {
  width: 56px; height: 56px;
  border: 2px solid var(--nb-trait);
  border-radius: 50%;
  display: grid; place-items: center;
  font-family: var(--nb-titre); font-weight: 600; font-size: 1.15rem;
  background: var(--nb-papier);
  position: relative;
}
.nb-etape__corps {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 14px 40px;
  padding-top: 10px;
}
.nb-etape__titre { display: flex; gap: 14px; align-items: center; grid-column: 1 / -1; }
.nb-etape__titre h3 { font-size: var(--nb-xl); font-weight: 500; }
.nb-dire { font-family: var(--nb-main); font-size: var(--nb-l); line-height: 1.45; }
.nb-dire::before { content: "« "; } .nb-dire::after { content: " »"; }
.nb-etiquette { font-family: var(--nb-titre); font-size: var(--nb-xs); text-transform: uppercase; letter-spacing: .18em; margin-bottom: 6px; display: block; }
.nb-propose { display: grid; gap: 12px; align-content: start; }
.nb-propose .nb-etiquette { margin-bottom: -6px; }
[data-etiquette]::before { content: attr(data-etiquette); display: block; margin-bottom: 6px; font-family: var(--nb-titre); font-size: var(--nb-xs); font-weight: 400; text-transform: uppercase; letter-spacing: .18em; }
.nb-propose[data-etiquette]::before { margin-bottom: -6px; }
.nb-formats { display: flex; flex-wrap: wrap; gap: 8px; }
.nb-formats li {
  font-family: var(--nb-titre); font-size: var(--nb-xs);
  border: 1.5px solid var(--nb-trait); border-radius: 999px;
  padding: .3em .85em; line-height: 1.4;
}
.nb-sommet {
  display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 24px; align-items: center;
}
.nb-sommet .nb-picto { width: 56px; height: 56px; }
.nb-sommet p { font-family: var(--nb-titre); font-size: var(--nb-l); font-weight: 500; }
.nb-sommet .nb-illu { width: 150px; }

/* --- Couleur par étape du chemin (accueil) --- */
.nb-etape--rose { --nb-accent: var(--nb-rose); }
.nb-etape--ciel { --nb-accent: var(--nb-ciel); }
.nb-etape--jaune { --nb-accent: var(--nb-jaune); }
.nb-etape--sapin { --nb-accent: var(--nb-sapin); }
.nb-etape[class*="nb-etape--"] .nb-etape__num { box-shadow: 4px 4px 0 var(--nb-accent); }
.nb-etape[class*="nb-etape--"] .nb-etape__titre h3 { text-decoration: underline wavy var(--nb-accent); text-decoration-thickness: 3px; text-underline-offset: .28em; text-decoration-skip-ink: none; }
.nb-etape[class*="nb-etape--"] .nb-formats li { border: 2px solid var(--nb-accent); }
.nb-temoignages--multi .nb-temoignage { border-top-width: 3px; }
.nb-temoignages--multi .nb-temoignage:nth-child(3n+1) { border-top-color: var(--nb-rose); }
.nb-temoignages--multi .nb-temoignage:nth-child(3n+2) { border-top-color: var(--nb-ciel); }
.nb-temoignages--multi .nb-temoignage:nth-child(3n+3) { border-top-color: var(--nb-jaune); }

/* --- Grilles de cartes (traits fins, pas d'aplat) --- */
.nb-grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 20px; }
.nb-grille--3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.nb-grille--2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); }
.nb-carte {
  border: 1.5px solid var(--nb-trait);
  border-radius: 20px;
  padding: 26px;
  display: grid; gap: 12px; align-content: start;
  min-width: 0;
}
.nb-carte h3 { font-size: var(--nb-l); }
.nb-carte p { font-size: var(--nb-m); }
.nb-carte__pied { margin-top: 6px; font-family: var(--nb-titre); font-size: var(--nb-s); font-weight: 600; }
.nb-carte--libre { border: 0; padding: 0; }
.nb-carte--large { grid-column: 1 / -1; }
.nb-meta { font-family: var(--nb-titre); font-size: var(--nb-xs); letter-spacing: .04em; }

/* --- Méthode (étapes horizontales) --- */
.nb-methode { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr)); gap: 28px; counter-reset: m; }
.nb-methode li { display: grid; gap: 8px; align-content: start; padding-top: 18px; border-top: 2px solid var(--nb-trait); counter-increment: m; }
.nb-methode li::before { content: counter(m, decimal-leading-zero); font-family: var(--nb-titre); font-size: var(--nb-s); font-weight: 600; }
.nb-methode h3 { font-size: var(--nb-m); }
.nb-methode p { font-size: var(--nb-s); }

/* --- Liste à puces dessinées --- */
.nb-liste { display: grid; gap: 10px; }
.nb-liste li { padding-left: 28px; position: relative; }
.nb-liste li::before { content: ""; position: absolute; left: 4px; top: .7em; width: 12px; height: 2px; background: var(--nb-encre); border-radius: 2px; }

/* --- Références et témoignages --- */
.nb-refs { display: flex; flex-wrap: wrap; gap: 10px 0; font-family: var(--nb-titre); font-size: var(--nb-s); }
.nb-refs li:not(:last-child)::after { content: "·"; margin-inline: .8em; }
.nb-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.nb-refs-cadre { border: 1.5px solid var(--nb-trait); border-radius: 24px; overflow: hidden; }
.nb .nb-refs-tableau { width: 100%; border-collapse: collapse; table-layout: fixed; margin: 0; border: 0; }
.nb .nb-refs-tableau th, .nb .nb-refs-tableau td { text-align: left; vertical-align: top; padding: 18px 20px; border: 0; background: transparent; }
.nb .nb-refs-tableau th + th, .nb .nb-refs-tableau td + td { border-left: 1.5px dashed var(--nb-trait); }
.nb .nb-refs-tableau th {
  font-family: var(--nb-titre); font-size: var(--nb-xs); font-weight: 600; text-transform: uppercase; letter-spacing: .14em; line-height: 1.5;
  border-bottom: 3px solid var(--nb-accent, var(--nb-trait));
}
.nb .nb-refs-tableau tr, .nb .nb-refs-tableau thead, .nb .nb-refs-tableau tbody { background: transparent !important; border: 0; }
.nb .nb-refs-tableau ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.nb .nb-refs-tableau li { font-size: var(--nb-s); line-height: 1.4; margin: 0; }
.nb-refs--rose { --nb-accent: var(--nb-rose); }
.nb-refs--ciel { --nb-accent: var(--nb-ciel); }
.nb-refs--jaune { --nb-accent: var(--nb-jaune); }
.nb-refs--sapin { --nb-accent: var(--nb-sapin); }
@media (max-width: 760px) {
  .nb .nb-refs-tableau thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .nb .nb-refs-tableau, .nb .nb-refs-tableau tbody, .nb .nb-refs-tableau tr, .nb .nb-refs-tableau td { display: block; width: 100%; }
  .nb .nb-refs-tableau td + td { border-left: 0; border-top: 1.5px dashed var(--nb-trait); }
  .nb .nb-refs-tableau td::before { content: attr(data-titre); display: block; font-family: var(--nb-titre); font-size: var(--nb-xs); font-weight: 600; text-transform: uppercase; letter-spacing: .14em; margin-bottom: 12px; padding-bottom: 8px; border-bottom: 3px solid var(--nb-accent, var(--nb-trait)); }
}
.nb-temoignages { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 36px; }
.nb-temoignage { margin: 0; display: grid; gap: 16px; align-content: start; padding-top: 22px; border-top: 1.5px solid var(--nb-trait); }
.nb-temoignage blockquote { margin: 0; padding: 0; border: 0; font-size: var(--nb-m); line-height: 1.6; font-style: normal; }
.nb-temoignage blockquote p::before { content: "« "; } .nb-temoignage blockquote p::after { content: " »"; }
.nb-temoignage figcaption { font-family: var(--nb-titre); font-size: var(--nb-xs); line-height: 1.5; }
.nb-temoignage figcaption strong { display: block; font-size: var(--nb-s); }

/* --- Bloc d'appel à l'action --- */
.nb-appel {
  display: grid; grid-template-columns: minmax(0, 1fr) 190px; gap: 32px; align-items: center;
  border: 2px dashed var(--nb-trait); border-radius: 28px;
  padding: clamp(24px, 5vw, 48px);
  margin-block: clamp(40px, 7vw, 72px);
}
.nb-appel__texte { display: grid; gap: 18px; min-width: 0; }

/* --- Bloc Qualiopi (hub formations uniquement) --- */
.nb-qualite { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 32px; align-items: start; }
.nb-qualite img { width: 220px; height: auto; }
.nb-mentions { font-family: var(--nb-titre); font-size: var(--nb-xs); line-height: 1.6; display: grid; gap: 6px; }
.nb-mentions p { max-width: 80ch; }

/* --- Bloc texte + portrait --- */
.nb-duo { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, .8fr); gap: clamp(28px, 5vw, 64px); align-items: center; }
.nb-duo .nb-portrait { max-width: 340px; justify-self: end; width: 100%; }
.nb-duo__illu { max-width: 250px; width: 100%; justify-self: center; }
.nb-duo__picto { max-width: 170px; width: 100%; justify-self: center; }
.nb-principes { display: grid; gap: 16px; margin-block: 8px; }
.nb-principes li { display: flex; gap: 16px; align-items: flex-start; }
.nb-principes .nb-picto { width: 36px; height: 36px; }

/* --- Photo de lieu --- */
.nb-photo { margin: 0; display: grid; gap: 10px; }
.nb-duo--photo { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
.nb-photo img { width: 100%; max-width: 100%; height: auto; aspect-ratio: 6 / 5; object-fit: cover; border-radius: 24px; border: 1.5px solid var(--nb-trait); }
.nb-photo figcaption { font-family: var(--nb-titre); font-size: var(--nb-xs); }
.nb-coords { display: grid; gap: 22px; }
.nb-coords li { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 4px 16px; }
.nb-coords li > .nb-picto { grid-row: span 3; }
.nb-coords h3 { font-size: var(--nb-xs); text-transform: uppercase; letter-spacing: .18em; }

/* --- Photos de terrain --- */
.nb-photos { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 24px; }
.nb-photos figure { margin: 0; display: grid; gap: 10px; align-content: start; }
.nb-photos img, .nb-photo--paysage img { width: 100%; max-width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 24px; border: 1.5px solid var(--nb-trait); }
.nb-photos figcaption { font-family: var(--nb-titre); font-size: var(--nb-xs); line-height: 1.5; }

/* --- Portrait --- */
.nb-portrait { margin: 0; display: grid; gap: 10px; }
.nb-portrait img { width: 100%; max-width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 24px; border: 1.5px solid var(--nb-trait); }
.nb-portrait figcaption { font-family: var(--nb-titre); font-size: var(--nb-xs); }

/* --- Frise du parcours --- */
.nb-frise { display: grid; gap: 0; }
.nb-frise li { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 20px; padding-block: 14px; border-top: 1px solid var(--nb-trait-doux); }
.nb-frise li:last-child { border-bottom: 1px solid var(--nb-trait-doux); }
.nb-frise--compact li { grid-template-columns: 110px minmax(0, 1fr); gap: 14px; }
.nb-frise li p { margin: 0; }
.nb-frise span { font-family: var(--nb-titre); font-size: var(--nb-s); font-weight: 600; }

/* --- Impacts (la seule exception au noir : les chiffres en rose de la charte) --- */
.nb-impact-xl { display: grid; justify-items: center; text-align: center; gap: 6px; padding-block: 8px; }
.nb-chiffres { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr)); gap: 28px; }
.nb-chiffre { display: grid; gap: 4px; align-content: start; padding-top: 16px; border-top: 3px solid var(--nb-accent); }
.nb .nb-chiffre__val, .nb .nb-impact-xl .nb-chiffre__val {
  font-family: var(--nb-titre); font-weight: 600; line-height: 1;
  font-size: clamp(2.2rem, 4.5vw, 3rem);
  color: var(--nb-accent);
  -webkit-text-stroke: 1.2px var(--nb-encre);
  paint-order: stroke fill;
  font-variant-numeric: tabular-nums;
}
.nb .nb-impact-xl .nb-chiffre__val { font-size: clamp(3.5rem, 9vw, 5.5rem); -webkit-text-stroke-width: 1.8px; }
.nb-chiffre__lib { font-family: var(--nb-titre); font-size: var(--nb-s); font-weight: 600; }
.nb-chiffre__sous { font-size: var(--nb-xs); }
.nb-impact-xl .nb-chiffre__lib { text-transform: uppercase; letter-spacing: .16em; font-size: var(--nb-xs); max-width: 34ch; }
.nb-motscles { display: flex; flex-wrap: wrap; gap: 8px; }
.nb-motscles li { font-family: var(--nb-texte); font-size: var(--nb-s); border: 2px solid var(--nb-accent); border-radius: 999px; padding: .25em .9em; }
.nb-liste--rose li::before, .nb-liste--accent li::before { background: var(--nb-accent); height: 4px; }
.nb-sous-titre { font-family: var(--nb-titre); font-size: var(--nb-s); font-weight: 600; margin-bottom: 10px; }
.nb-bloc { display: grid; gap: 10px; align-content: start; }
.nb-motscles, .nb-formats { align-items: flex-start; }
.nb-colonnes { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 32px 48px; }
.nb-temoignages--rose .nb-temoignage, .nb-temoignages--accent .nb-temoignage { border-top-color: var(--nb-accent); border-top-width: 3px; }
.nb-badge { display: inline-block; font-family: var(--nb-titre); font-size: var(--nb-xs); font-weight: 600; letter-spacing: .06em; text-transform: none; border: 2px solid var(--nb-accent, var(--nb-trait)); border-radius: 999px; padding: .1em .7em; margin-left: .3em; vertical-align: middle; }
.nb-vedette { margin-bottom: 32px; }
.nb-vedette h3 { font-size: var(--nb-xl); }
.nb-niveau { font-family: var(--nb-titre); font-size: var(--nb-xs); text-transform: uppercase; letter-spacing: .18em; }

/* --- Progression avant / après --- */
.nb-progression { display: grid; gap: 12px; max-width: 640px; }
.nb-progression__ligne { display: grid; grid-template-columns: 70px minmax(0, 1fr) 64px; gap: 12px; align-items: center; font-family: var(--nb-titre); font-size: var(--nb-s); }
.nb-progression__barre { height: 18px; border: 1.5px solid var(--nb-trait); border-radius: 999px; overflow: hidden; }
.nb-progression__barre span { display: block; height: 100%; background: var(--nb-accent); border-right: 1.5px solid var(--nb-trait); }
.nb-progression__ligne strong { text-align: right; font-variant-numeric: tabular-nums; }
.nb-details { border-top: 1.5px solid var(--nb-trait-doux); padding-top: 14px; }
.nb-details summary { cursor: pointer; font-family: var(--nb-titre); font-size: var(--nb-s); font-weight: 600; }
.nb-details summary:focus-visible { outline: 3px solid var(--nb-bleu); outline-offset: 3px; }
.nb-details p { margin-top: 12px; font-size: var(--nb-s); }
.nb-infos { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 20px 32px; }
.nb-infos div { display: grid; gap: 4px; align-content: start; }

/* --- Accessibilité --- */
.nb-visuellement-cache { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (prefers-reduced-motion: reduce) {
  .nb *, .nb .nb-btn { transition: none !important; }
  .nb .nb-btn:hover { transform: none; }
}

/* --- Photo de chaque étape du chemin --- */
.nb-etape__corps--photo { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); }
.nb-etape__photo { grid-column: 1; grid-row: 2 / span 2; margin: 0; align-self: start; }
.nb-etape__corps--photo .nb-etape__dire,
.nb-etape__corps--photo .nb-propose { grid-column: 2; }
.nb-etape__photo img {
  display: block; width: 100%; max-width: 100%; height: auto;
  aspect-ratio: 3 / 2; object-fit: cover;
  border-radius: 24px; border: 2px solid var(--nb-accent, var(--nb-trait));
}
.nb-etape__photo figcaption { font-family: var(--nb-titre); font-size: var(--nb-xs); margin-top: 6px; text-align: right; }

.nb-etape__date { display: block; font-family: var(--nb-titre); font-size: var(--nb-xs); font-weight: 500; letter-spacing: .12em; text-transform: uppercase; margin-top: 8px; text-decoration: none; }
.nb-etape__titre h3:has(.nb-etape__date) { text-decoration: none !important; }
.nb-details { margin-top: 8px; border: 1.5px solid var(--nb-trait); border-radius: 24px; padding: 0 24px; }
.nb-details summary { cursor: pointer; font-family: var(--nb-titre); font-weight: 600; font-size: var(--nb-s); padding: 18px 0; list-style-position: inside; }
.nb-details summary:focus-visible { outline: 3px solid var(--nb-bleu); outline-offset: 4px; border-radius: 8px; }
.nb-details[open] summary { border-bottom: 1.5px dashed var(--nb-trait-doux); margin-bottom: 20px; }
.nb-details[open] { padding-bottom: 24px; }

.nb-carte__photo { margin: 0 0 4px; }
.nb-carte__photo img { display: block; width: 100%; max-width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 16px; border: 1.5px solid var(--nb-trait); }

.nb-logo-partenaire { display: block; width: 100%; max-width: 220px; height: auto; border-radius: 12px; margin-bottom: 4px; }

/* --- Panneau directionnel : un poteau central, des flèches dans tous les sens --- */
/* PANNEAU:DEBUT */
.nb-panneaux { display: grid; gap: 12px; margin-top: 4px; }
.nb-panneaux__titre { font-family: var(--nb-titre); font-size: var(--nb-xs); font-weight: 600; text-transform: uppercase; letter-spacing: .18em; }
.nb-panneaux ul { position: relative; display: grid; gap: 14px; width: min(100%, 540px); margin: 0; padding: 26px 0 46px; list-style: none; }
.nb-panneaux ul::before {            /* le poteau, au centre */
  content: ""; position: absolute; left: calc(50% - 7px); top: 0; bottom: 10px; width: 14px;
  border: 2px solid var(--nb-trait); border-radius: 7px 7px 2px 2px; background: var(--nb-papier);
}
.nb-panneaux ul::after {             /* le sol, en pointillés comme le chemin */
  content: ""; position: absolute; left: calc(50% - 70px); bottom: 8px; width: 140px; border-top: 2px dashed var(--nb-trait-doux);
}
.nb-panneaux li { position: relative; z-index: 1; width: max-content; max-width: 100%; margin: 0; padding: 0; }
.nb-panneaux li::before { content: none; }
/* impairs : vers la droite, accrochés juste à gauche du poteau */
.nb-panneaux li:nth-child(odd)  { margin-left: calc(50% - 22px); }
/* pairs : vers la gauche, accrochés juste à droite du poteau */
.nb-panneaux li:nth-child(even) { margin-left: auto; margin-right: calc(50% - 22px); }
.nb-panneaux li:nth-child(1) { transform: rotate(-4deg); }
.nb-panneaux li:nth-child(2) { transform: rotate(3deg); }
.nb-panneaux li:nth-child(3) { transform: rotate(2deg); }
.nb-panneaux li:nth-child(4) { transform: rotate(-3deg); }
.nb-panneaux li:nth-child(odd)  { transform-origin: 22px 50%; }
.nb-panneaux li:nth-child(even) { transform-origin: calc(100% - 22px) 50%; }

.nb .nb-panneau {
  position: relative; isolation: isolate; display: flex; align-items: center; gap: 10px;
  min-height: 48px; padding: 8px 42px 8px 12px;
  font-family: var(--nb-titre); font-size: var(--nb-s); font-weight: 600; line-height: 1.2; color: var(--nb-encre); text-decoration: none; white-space: nowrap;
  transition: transform .15s ease;
}
.nb .nb-panneau::before, .nb .nb-panneau::after {
  content: ""; position: absolute; z-index: -1;
  clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 50%, calc(100% - 22px) 100%, 0 100%);
}
.nb .nb-panneau::before { inset: 0; background: var(--nb-trait); }                 /* contour */
.nb .nb-panneau::after {                                                          /* planche : blanche, pointe de couleur */
  inset: 2px 3px 2px 2px;
  background: linear-gradient(90deg, var(--nb-papier) 0 calc(100% - 30px), var(--nb-accent) calc(100% - 30px));
}
/* flèche vers la gauche : planche en miroir, numéro côté poteau */
.nb-panneaux li:nth-child(even) .nb-panneau { flex-direction: row-reverse; padding: 8px 12px 8px 42px; }
.nb-panneaux li:nth-child(even) .nb-panneau::before,
.nb-panneaux li:nth-child(even) .nb-panneau::after { clip-path: polygon(22px 0, 100% 0, 100% 100%, 22px 100%, 0 50%); }
.nb-panneaux li:nth-child(even) .nb-panneau::after {
  inset: 2px 2px 2px 3px;
  background: linear-gradient(270deg, var(--nb-papier) 0 calc(100% - 30px), var(--nb-accent) calc(100% - 30px));
}
.nb-panneau__num { flex-shrink: 0; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; border: 2px solid var(--nb-trait); background: var(--nb-papier); font-size: var(--nb-xs); }
.nb .nb-panneau:hover { transform: translateX(6px); }
.nb-panneaux li:nth-child(even) .nb-panneau:hover { transform: translateX(-6px); }
.nb .nb-panneau:hover, .nb .nb-panneau:focus-visible { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .3em; }
.nb .nb-panneau:focus-visible { outline: 3px solid var(--nb-bleu); outline-offset: 4px; border-radius: 6px; }
.nb-panneau--rose { --nb-accent: var(--nb-rose); }
.nb-panneau--ciel { --nb-accent: var(--nb-ciel); }
.nb-panneau--jaune { --nb-accent: var(--nb-jaune); }
.nb-panneau--sapin { --nb-accent: var(--nb-sapin); }
.nb-panneaux__autre { font-size: var(--nb-s); }
.nb-panneaux__autre a { text-underline-offset: .2em; }
@media (max-width: 480px) {
  .nb-panneaux li:nth-child(odd)  { margin-left: 14%; }
  .nb-panneaux li:nth-child(even) { margin-right: 14%; }
  .nb .nb-panneau { white-space: normal; }
}
@media (prefers-reduced-motion: reduce) { .nb .nb-panneau { transition: none; } .nb .nb-panneau:hover, .nb-panneaux li:nth-child(even) .nb-panneau:hover { transform: none; } }
@media print { .nb .nb-panneau::before, .nb .nb-panneau::after { clip-path: none !important; } .nb-panneaux li { transform: none !important; } }
/* PANNEAU:FIN */

/* --- Mobile --- */
@media (max-width: 760px) {
  .nb-hero { grid-template-columns: minmax(0, 1fr); }
  .nb-hero__illu { max-width: 160px; grid-row: 1; justify-self: start; }
  .nb-sommet p { font-size: var(--nb-m); }
  .nb-situations { grid-template-columns: minmax(0, 1fr); }
  .nb-etape { grid-template-columns: 44px minmax(0, 1fr); gap: 0 16px; }
  .nb-etape__num { width: 44px; height: 44px; font-size: 1rem; }
  .nb-etape::before { left: 21px; top: 44px; }
  .nb-etape__corps { grid-template-columns: minmax(0, 1fr); padding-top: 4px; }
  .nb-etape__photo, .nb-etape__corps--photo .nb-etape__dire, .nb-etape__corps--photo .nb-propose { grid-column: 1; grid-row: auto; }
  .nb-sommet { grid-template-columns: 44px minmax(0, 1fr); gap: 16px; }
  .nb-sommet .nb-picto { width: 44px; height: 44px; }
  .nb-sommet .nb-illu { display: none; }
  .nb-appel { grid-template-columns: minmax(0, 1fr); }
  .nb-appel .nb-illu { max-width: 140px; grid-row: 1; }
  .nb-qualite { grid-template-columns: minmax(0, 1fr); }
  .nb-duo { grid-template-columns: minmax(0, 1fr); }
  .nb-duo--photo .nb-photo { max-width: 100%; }
  .nb-duo__picto { display: none; }
  .nb-duo__illu { max-width: 170px; justify-self: start; }
  .nb-duo .nb-portrait { justify-self: start; max-width: 260px; }
  .nb-frise li { grid-template-columns: minmax(0, 1fr); gap: 2px; }
}

/* ==========================================================================
   POLICES UNIFORMES SUR TOUT LE SITE (hors blocs numibee aussi)
   Remplace les polices Google du thème ou d'Elementor par la police système
   pour le texte, et Red Hat Mono (hébergée sur ton site) pour les titres.
   :where() garde ces règles faibles, pour ne pas écraser les blocs numibee.
   ========================================================================== */
:where(body),
:where(body) :where(p, li, td, th, dt, dd, blockquote, figcaption, label, input, textarea, select, button, small, strong, em, b),
:where(body) :where(a, span, div):where(:not([class*="icon"]):not([class*="fa-"]):not([class^="fa"]):not([class*="dashicons"])) {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
}
:where(body) :where(h1, h2, h3, h4, h5, h6, .elementor-heading-title, .entry-title, .wp-block-heading, .site-title),
:where(body) :where(h1, h2, h3, h4, h5, h6) :where(a, span) {
  font-family: "Red Hat Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace !important;
}
/* Menus : thèmes classiques, thèmes blocs et Elementor */
:where(body) :where(.elementor-nav-menu a, .elementor-item, .elementor-sub-item, .wp-block-navigation a,
.main-navigation a, .menu-item > a, #site-navigation a, .header-navigation a, .primary-menu a, nav a) {
  font-family: "Red Hat Mono", ui-monospace, monospace !important;
}

/* ==========================================================================
   EN-TÊTE ET MENU DU THÈME
   Ces règles s'appliquent hors des pages (au header de ton thème).
   Elles visent les noms de classes les plus courants (thèmes blocs,
   Astra, Kadence, GeneratePress, OceanWP…). Si un élément ne change pas,
   envoie-moi le nom de ton thème : j'ajusterai les sélecteurs.
   ========================================================================== */
header.wp-block-template-part, .site-header, #masthead, .ast-primary-header-bar,
#main-header, .header-wrap, .main-header-bar {
  background: #fff !important;
  box-shadow: none !important;
  border-bottom: 1px solid #d8d3cc !important;
}
/* Liens du menu : Red Hat Mono, noir, sans fond */
.wp-block-navigation a, .main-navigation a, .menu-item > a, #site-navigation a,
.header-navigation a, .primary-menu a {
  font-family: "Red Hat Mono", ui-monospace, monospace !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  letter-spacing: .01em !important;
  color: #000 !important;
  background: transparent !important;
  text-decoration: none !important;
}
.wp-block-navigation a:hover, .main-navigation a:hover, .menu-item > a:hover {
  text-decoration: underline !important;
  text-decoration-thickness: 2px !important;
  text-underline-offset: .35em !important;
}
/* Page en cours : le souligné ondulé bleu de la charte */
.current-menu-item > a, .current_page_item > a, .current-menu-ancestor > a,
.wp-block-navigation-item.current-menu-item > a, .wp-block-navigation a[aria-current="page"] {
  text-decoration: underline wavy #0500d3 !important;
  text-decoration-thickness: 2px !important;
  text-underline-offset: .4em !important;
}
.wp-block-navigation a:focus-visible, .main-navigation a:focus-visible, .menu-item > a:focus-visible {
  outline: 3px solid #0500d3 !important;
  outline-offset: 3px;
  border-radius: 6px;
}
/* Sous-menus : blanc, trait noir fin, arrondi */
.sub-menu, .wp-block-navigation__submenu-container, .main-navigation ul ul {
  background: #fff !important;
  border: 1.5px solid #000 !important;
  border-radius: 14px !important;
  box-shadow: 4px 4px 0 #000 !important;
  padding: 8px !important;
}
.sub-menu a, .wp-block-navigation__submenu-container a { padding: 8px 12px !important; }
/* Menu mobile : fond blanc, texte noir */
.wp-block-navigation__responsive-container.is-menu-open, .ast-mobile-header-content,
.mobile-navigation, .drawer-inner, #mobile-drawer {
  background: #fff !important;
  color: #000 !important;
}
.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close,
.menu-toggle, .ast-mobile-menu-trigger-minimal, .menu-toggle-open {
  color: #000 !important;
  background: transparent !important;
  border: 1.5px solid #000 !important;
  border-radius: 999px !important;
}

/* ==========================================================================
   PIED DE PAGE DU THÈME
   Si ton thème affiche déjà un pied de page, ces règles l'harmonisent.
   Pour un rendu identique à l'aperçu, remplace son contenu par le bloc
   « 10-pied-de-page.html » du kit (bloc HTML personnalisé).
   ========================================================================== */
footer.wp-block-template-part, .site-footer, #colophon, .site-footer-wrap, #main-footer {
  background: #fff !important;
  color: #000 !important;
  border-top: 1px solid #d8d3cc !important;
}
footer.wp-block-template-part a, .site-footer a, #colophon a { color: #000 !important; }
/* Neutralise l'ancien fond bleu : groupes colorés, styles en ligne, cadres */
footer .has-background, footer [class*="-background-color"], footer [style*="background"],
.site-footer .has-background, #colophon .has-background {
  background: #fff !important;
  background-color: #fff !important;
  background-image: none !important;
}
footer, footer p, footer li, footer span, footer h2, footer h3, footer h4, footer strong,
footer .has-text-color, footer [class*="-color"]:not([class*="background"]) {
  color: #000 !important;
}
footer a { color: #000 !important; text-decoration: underline; text-underline-offset: .2em; }
footer a:hover { text-decoration-color: #0500d3 !important; text-decoration-thickness: 2px; }
footer [style*="border"], footer .has-border-color { border-color: #d8d3cc !important; }
footer hr, footer .wp-block-separator { border-color: #d8d3cc !important; background: #d8d3cc !important; color: #d8d3cc !important; }
/* Boutons du pied de page : contour noir, sans aplat */
footer .wp-block-button__link, footer .wp-element-button, footer .button {
  background: transparent !important;
  padding: .7em 1.3em !important;
  color: #000 !important;
  border: 2px solid #000 !important;
  border-radius: 999px !important;
  font-family: "Red Hat Mono", ui-monospace, monospace !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}

/* Neutralise le fond bleu du thème : vise tous les conteneurs qui entourent ce pied de page */
body *:has(.nb-footer), body *:has(.nb-pied) {
  background: #fff !important;
  background-color: #fff !important;
  background-image: none !important;
  box-shadow: none !important;
}
body *:has(.nb-footer) > .elementor-background-overlay,
body *:has(.nb-pied) > .elementor-background-overlay { display: none !important; }

/* Bloc pied de page numibee */
.nb-pied { padding-block: 48px 28px; display: grid; gap: 36px; }
.nb-pied__grille { display: grid; grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr)); gap: 32px; }
.nb-pied__marque { display: grid; gap: 12px; align-content: start; }
.nb-pied .nb-pied__nom { font-family: var(--nb-titre); font-size: 1.6rem; font-weight: 600; letter-spacing: -.02em; }
.nb-pied .nb-pied__titre { font-family: var(--nb-titre); font-size: var(--nb-xs); text-transform: uppercase; letter-spacing: .18em; margin-bottom: 10px; }
.nb-pied ul { display: grid; gap: 6px; }
.nb-pied li, .nb-pied p { font-size: var(--nb-s); }
.nb-pied__bas { display: flex; flex-wrap: wrap; gap: 8px 24px; justify-content: space-between; border-top: 1.5px dashed var(--nb-trait-doux); padding-top: 18px; font-family: var(--nb-titre); font-size: var(--nb-xs); }
@media (max-width: 760px) {
  .nb-pied__grille { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .nb-pied__marque, .nb-pied__grille > div:last-child { grid-column: 1 / -1; }
}

/* ==========================================================================
   CARTES D'ARTICLES (bloc « Derniers articles » en grille)
   Même langage que le reste du site : fond blanc, trait noir fin,
   texte noir, un filet de couleur de la charte en haut, ombre décalée au survol.
   ========================================================================== */
.wp-block-latest-posts.is-grid li {
  background: #fff;
  border: 1.5px solid #000;
  border-radius: 20px;
  padding: 28px 26px 24px;
  margin: 0;
  position: relative;
  overflow: hidden;
  min-height: 200px;
  transition: transform .15s ease, box-shadow .15s ease;
}
.wp-block-latest-posts.is-grid li::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
}
.wp-block-latest-posts.is-grid li:nth-child(4n+1)::before { background: #0500d3; }
.wp-block-latest-posts.is-grid li:nth-child(4n+2)::before { background: #ff83a1; }
.wp-block-latest-posts.is-grid li:nth-child(4n+3)::before { background: #ffe012; }
.wp-block-latest-posts.is-grid li:nth-child(4n+4)::before { background: #027148; }
.wp-block-latest-posts.is-grid li:hover {
  transform: translate(-2px, -2px);
  box-shadow: 5px 5px 0 #000;
}
.wp-block-latest-posts__post-title {
  font-family: "Red Hat Mono", ui-monospace, monospace !important;
  font-size: 19px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  color: #000 !important;
  text-decoration: none !important;
  display: block;
  margin: 6px 0 12px !important;
}
.wp-block-latest-posts__post-title:hover { text-decoration: underline !important; text-decoration-color: #0500d3 !important; }
.wp-block-latest-posts__post-date {
  font-family: "Red Hat Mono", ui-monospace, monospace !important;
  font-size: 12px !important;
  color: #000 !important;
  letter-spacing: .14em;
  text-transform: uppercase;
  margin: 0 0 6px !important;
}
.wp-block-latest-posts__post-excerpt {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important;
  font-size: 15px !important;
  color: #000 !important;
  line-height: 1.65 !important;
  margin: 0 !important;
}
@media (prefers-reduced-motion: reduce) {
  .wp-block-latest-posts.is-grid li { transition: none; }
  .wp-block-latest-posts.is-grid li:hover { transform: none; }
}

/* ==========================================================================
   VERROU TYPOGRAPHIQUE
   Le thème (ou Elementor) impose souvent sa police directement sur les p, a,
   li… : ces règles reprennent la main, à l'intérieur des blocs numibee.
   Texte courant : police système. Titres et repères : Red Hat Mono.
   ========================================================================== */
.nb, .nb p, .nb li, .nb a, .nb span, .nb strong, .nb em, .nb small, .nb blockquote,
.nb figcaption, .nb td, .nb th, .nb dt, .nb dd, .nb label, .nb input, .nb textarea,
.nb select, .nb button, .nb summary, .nb div {
  font-family: var(--nb-texte) !important;
}
.nb h1, .nb h2, .nb h3, .nb h4, .nb h5, .nb h6,
.nb .nb-panneau, .nb .nb-panneau *, .nb .nb-panneaux__titre,
.nb h1 *, .nb h2 *, .nb h3 *, .nb h4 *,
.nb .nb-badge,
.nb .nb-btn,
.nb .nb-carte__pied,
.nb .nb-chiffre__lib,
.nb .nb-chiffre__val,
.nb .nb-citation figcaption,
.nb .nb-coord,
.nb .nb-details summary,
.nb .nb-dire,
.nb .nb-etape__date,
.nb .nb-etape__num,
.nb .nb-etape__photo figcaption,
.nb .nb-etiquette, .nb [data-etiquette]::before,
.nb .nb-formats li,
.nb .nb-frise span,
.nb .nb-impact-xl .nb-chiffre__val,
.nb .nb-mentions,
.nb .nb-meta,
.nb .nb-methode li::before,
.nb .nb-niveau,
.nb .nb-photo figcaption,
.nb .nb-photos figcaption,
.nb .nb-pied .nb-pied__nom,
.nb .nb-pied .nb-pied__titre,
.nb .nb-pied__bas,
.nb .nb-portrait figcaption,
.nb .nb-pour,
.nb .nb-progression__ligne,
.nb .nb-refs,
.nb .nb-refs-tableau td::before,
.nb .nb-refs-tableau th,
.nb .nb-signature,
.nb .nb-sommet p,
.nb .nb-sous-titre,
.nb .nb-statut,
.nb .nb-surtitre,
.nb .nb-tags li,
.nb .nb-temoignage figcaption,
.nb h1,
.nb h2,
.nb h3,
.nb h4,
.nb .nb-badge *,
.nb .nb-btn *,
.nb .nb-carte__pied *,
.nb .nb-chiffre__lib *,
.nb .nb-chiffre__val *,
.nb .nb-citation figcaption *,
.nb .nb-coord *,
.nb .nb-details summary *,
.nb .nb-dire *,
.nb .nb-etape__date *,
.nb .nb-etape__num *,
.nb .nb-etape__photo figcaption *,
.nb .nb-etiquette *,
.nb .nb-formats li *,
.nb .nb-frise span *,
.nb .nb-impact-xl .nb-chiffre__val *,
.nb .nb-mentions *,
.nb .nb-meta *,
.nb .nb-niveau *,
.nb .nb-photo figcaption *,
.nb .nb-photos figcaption *,
.nb .nb-pied .nb-pied__nom *,
.nb .nb-pied .nb-pied__titre *,
.nb .nb-pied__bas *,
.nb .nb-portrait figcaption *,
.nb .nb-pour *,
.nb .nb-progression__ligne *,
.nb .nb-refs *,
.nb .nb-refs-tableau th *,
.nb .nb-signature *,
.nb .nb-sommet p *,
.nb .nb-sous-titre *,
.nb .nb-statut *,
.nb .nb-surtitre *,
.nb .nb-tags li *,
.nb .nb-temoignage figcaption *,
.nb h1 *,
.nb h2 *,
.nb h3 *,
.nb h4 * {
  font-family: var(--nb-titre) !important;
}
.nb .nb-citation blockquote,
.nb .nb-motscles li {
  font-family: var(--nb-texte) !important;
}

/* ===== PIED DE PAGE ===== */

/* Neutralise le fond bleu du thème : vise tous les conteneurs qui entourent ce pied de page */
body *:has(.nb-footer), body *:has(.nb-pied) {
  background: #fff !important;
  background-color: #fff !important;
  background-image: none !important;
  box-shadow: none !important;
}
body *:has(.nb-footer) > .elementor-background-overlay,
body *:has(.nb-pied) > .elementor-background-overlay { display: none !important; }
.nb-footer {
  --nbf-encre: #000;
  --nbf-papier: #fff;
  --nbf-doux: #d8d3cc;
  --nbf-bleu: #0500d3;
  --nbf-titre: "Red Hat Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  --nbf-texte: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-family: var(--nbf-texte);
  background: var(--nbf-papier) !important;
  color: var(--nbf-encre) !important;
  border-top: 1px solid var(--nbf-doux);
  padding: 56px 0 0;
  margin-top: 60px;
}
.nb-footer * { box-sizing: border-box; }
.nb-footer p, .nb-footer li, .nb-footer span, .nb-footer strong, .nb-footer a { color: var(--nbf-encre) !important; }
.nb-footer-haut {
  max-width: 1360px;
  margin: 0 auto;
  padding: 0 clamp(16px, 4vw, 32px) 44px;
  display: grid !important;
  grid-template-columns: 1.5fr 1fr 1fr 1fr !important;
  gap: 40px !important;
}
.nb-footer-marque, .nb-footer-col { min-width: 0; }
.nb-footer-logo {
  font-family: var(--nbf-titre);
  font-size: 26px;
  font-weight: 600;
  letter-spacing: -.02em;
  margin: 0 0 14px;
}
.nb-footer-baseline {
  font-size: 15px;
  line-height: 1.6;
  margin: 0 0 22px;
  max-width: 320px;
}
.nb-footer .nb-footer-contact-btn {
  display: inline-flex;
  align-items: center;
  gap: .5em;
  background: transparent;
  border: 2px solid var(--nbf-encre);
  border-radius: 999px;
  font-family: var(--nbf-titre);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  padding: 11px 22px;
  transition: transform .15s ease, box-shadow .15s ease;
}
.nb-footer .nb-footer-contact-btn:hover { transform: translate(-2px, -2px); box-shadow: 4px 4px 0 var(--nbf-encre); }
.nb-footer-col-titre {
  font-family: var(--nbf-titre);
  font-size: 12px;
  letter-spacing: .2em;
  text-transform: uppercase;
  font-weight: 500;
  margin: 0 0 16px;
}
.nb-footer-liens { list-style: none; padding: 0; margin: 0; }
.nb-footer-liens li { margin-bottom: 10px; font-size: 15px; line-height: 1.5; }
.nb-footer-liens a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.nb-footer a:hover { text-decoration-color: var(--nbf-bleu) !important; text-decoration-thickness: 2px; }
.nb-footer a:focus-visible { outline: 3px solid var(--nbf-bleu); outline-offset: 3px; border-radius: 6px; }
/* ===== Engagement zéro cookie : cadre en pointillés, sans aplat ===== */
.nb-footer-cookie { max-width: 1360px; margin: 0 auto; padding: 0 clamp(16px, 4vw, 32px) 44px; }
.nb-footer-cookie-bloc {
  border: 2px dashed var(--nbf-encre);
  border-radius: 24px;
  padding: 26px 30px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 4px 24px;
}
.nb-footer-cookie-bloc::before { content: "🍫"; grid-row: 1 / span 2; font-size: 40px; line-height: 1; }
.nb-footer-cookie-bloc > p { grid-column: 2; min-width: 0; }
.nb-footer-cookie-titre {
  font-family: var(--nbf-titre);
  font-size: 18px;
  font-weight: 600;
  margin: 0 0 6px;
  line-height: 1.3;
}
.nb-footer-cookie-sous { font-size: 15px; line-height: 1.6; margin: 0; }
.nb-footer-cookie-sous strong { font-weight: 600; }
.nb-footer-bas { border-top: 1.5px dashed var(--nbf-doux); }
.nb-footer-bas-inner {
  max-width: 1360px;
  margin: 0 auto;
  padding: 20px clamp(16px, 4vw, 32px) 28px;
}
.nb-footer-credits {
  font-family: var(--nbf-titre);
  font-size: 12px;
  margin: 0;
  display: flex;
  gap: 8px 22px;
  flex-wrap: wrap;
  align-items: center;
}
.nb-footer-credits a { text-decoration: underline; text-underline-offset: .2em; }
.nb-footer-bas-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px; }
.nb-footer-ecoindex { display: flex; align-items: center; gap: 10px; font-family: var(--nbf-titre); font-size: 12px; }
.nb-footer-ecoindex a { text-decoration: underline; text-underline-offset: .2em; }
.nb-footer .nb-visuellement-cache { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (max-width: 860px) {
  .nb-footer-haut { grid-template-columns: 1fr 1fr !important; gap: 32px !important; }
  .nb-footer-marque { grid-column: 1 / -1; }
}
@media (max-width: 520px) {
  .nb-footer-haut { grid-template-columns: 1fr !important; }
  .nb-footer-cookie-bloc { grid-template-columns: minmax(0, 1fr); gap: 10px; padding: 22px; }
  .nb-footer-cookie-bloc::before { grid-row: auto; }
  .nb-footer-cookie-bloc > p { grid-column: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .nb-footer .nb-footer-contact-btn { transition: none; }
  .nb-footer .nb-footer-contact-btn:hover { transform: none; }
}
/* Verrou typographique du pied de page */
.nb-footer, .nb-footer * { font-family: var(--nbf-texte) !important; }
.nb-footer .nb-footer-logo, .nb-footer .nb-footer-contact-btn, .nb-footer .nb-footer-col-titre,
.nb-footer .nb-footer-cookie-titre, .nb-footer .nb-footer-credits, .nb-footer .nb-footer-credits *,
.nb-footer .nb-footer-ecoindex, .nb-footer .nb-footer-ecoindex > span, .nb-footer .nb-footer-ecoindex > span * { font-family: var(--nbf-titre) !important; }


/* ==========================================================================
   THÈME NUMIBEE : la coquille (en-tête, menu, pied, articles)
   ========================================================================== */
:root {
  --nbt-encre: #000; --nbt-papier: #fff; --nbt-trait: #000; --nbt-doux: #d8d3cc; --nbt-bleu: #0500d3;
  --nbt-titre: "Red Hat Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  --nbt-texte: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --nbt-max: 1360px; --nbt-gouttiere: clamp(16px, 4vw, 48px);
}
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--nbt-papier); color: var(--nbt-encre); font-family: var(--nbt-texte); font-size: 1.0625rem; line-height: 1.65; }
img { max-width: 100%; height: auto; }
a { color: var(--nbt-encre); }
a:focus-visible, summary:focus-visible { outline: 3px solid var(--nbt-bleu); outline-offset: 3px; border-radius: 6px; }

.nbt-evitement { position: absolute; left: 8px; top: -60px; z-index: 100; background: #fff; border: 2px solid #000; border-radius: 999px; padding: 8px 18px; font-family: var(--nbt-titre); font-weight: 600; text-decoration: none; }
.nbt-evitement:focus { top: 8px; }

/* En-tête */
.nbt-tete { border-bottom: 1px solid var(--nbt-doux); background: #fff; }
.nbt-tete__inner { max-width: var(--nbt-max); margin: 0 auto; padding: 14px var(--nbt-gouttiere); display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.nbt-logo { display: block; flex-shrink: 0; line-height: 0; }
.nbt-logo__img { width: 120px; height: auto; }
.nbt-menu__liste { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 22px; }
.nbt-menu__liste a { font-family: var(--nbt-titre); font-size: 15px; font-weight: 500; text-decoration: none; color: #000; padding: 6px 0; display: inline-block; }
.nbt-menu__liste a:hover { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .35em; }
.nbt-menu__liste .current-menu-item > a, .nbt-menu__liste .current_page_item > a, .nbt-menu__liste .current-menu-ancestor > a, .nbt-menu__liste a[aria-current="page"] {
  text-decoration: underline wavy var(--nbt-bleu); text-decoration-thickness: 2px; text-underline-offset: .4em;
}
.nbt-menu__liste .sub-menu { list-style: none; margin: 6px 0 0; padding: 8px 14px; border: 1.5px solid #000; border-radius: 14px; background: #fff; }
.nbt-menu--large .menu-item-has-children { position: relative; }
.nbt-menu--large .sub-menu { display: none; position: absolute; left: -14px; top: 100%; min-width: 220px; z-index: 50; box-shadow: 4px 4px 0 #000; }
.nbt-menu--large .menu-item-has-children:hover > .sub-menu, .nbt-menu--large .menu-item-has-children:focus-within > .sub-menu { display: grid; gap: 2px; }
.nbt-menu--mobile { display: none; }
.nbt-menu--mobile summary { cursor: pointer; list-style: none; font-family: var(--nbt-titre); font-weight: 600; font-size: 15px; border: 2px solid #000; border-radius: 999px; padding: 8px 18px; }
.nbt-menu--mobile summary::-webkit-details-marker { display: none; }
.nbt-menu--mobile[open] summary { box-shadow: 3px 3px 0 #000; }
.nbt-menu--mobile nav { position: absolute; left: var(--nbt-gouttiere); right: var(--nbt-gouttiere); margin-top: 12px; z-index: 60; background: #fff; border: 1.5px solid #000; border-radius: 18px; padding: 14px 20px; box-shadow: 4px 4px 0 #000; }
.nbt-menu--mobile .nbt-menu__liste { flex-direction: column; gap: 4px; }
.nbt-menu--mobile .sub-menu { border: 0; padding: 0 0 0 14px; margin: 0; }
@media (max-width: 900px) {
  .nbt-menu--large { display: none; }
  .nbt-menu--mobile { display: block; }
  .nbt-tete__inner { position: relative; padding-block: 8px; }
  .nbt-logo__img { width: 88px; }
}

/* Contenu */
.nbt-contenu { display: block; }
.nbt-contenu > .nb:first-child { padding-top: 0; }

/* Articles et pages simples */
.nbt-prose { max-width: 720px; margin: 0 auto; padding: 56px var(--nbt-gouttiere) 80px; }
.nbt-prose > * + * { margin-top: 1.1em; }
.nbt-prose h1, .nbt-prose h2, .nbt-prose h3, .nbt-prose h4, .nbt-liste h1, .nbt-carte h2 { font-family: var(--nbt-titre); font-weight: 500; line-height: 1.2; letter-spacing: -.01em; text-wrap: balance; }
.nbt-prose h1, .nbt-liste h1 { font-size: clamp(2rem, 5vw, 2.8rem); margin: .2em 0 .6em; }
.nbt-prose h2 { font-size: 1.6rem; margin-top: 1.8em; }
.nbt-prose h3 { font-size: 1.25rem; margin-top: 1.5em; font-weight: 600; }
.nbt-prose a { text-decoration-thickness: 1px; text-underline-offset: .2em; }
.nbt-prose blockquote { margin: 1.5em 0; padding-left: 20px; border-left: 3px solid #000; }
.nbt-prose img, .nbt-une img { border-radius: 18px; }
.nbt-prose figcaption, .nbt-meta, .nbt-surtitre { font-family: var(--nbt-titre); font-size: .8rem; letter-spacing: .04em; }
.nbt-surtitre { text-transform: uppercase; letter-spacing: .22em; margin: 0; }
.nbt-suite { display: flex; justify-content: space-between; gap: 20px; margin-top: 3em !important; padding-top: 20px; border-top: 1.5px dashed var(--nbt-doux); font-family: var(--nbt-titre); font-size: .9rem; }

/* Liste des articles */
.nbt-liste { max-width: var(--nbt-max); margin: 0 auto; padding: 56px var(--nbt-gouttiere) 80px; }
.nbt-cartes { list-style: none; margin: 32px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 28px; }
.nbt-carte { border: 1.5px solid #000; border-radius: 24px; padding: 22px; display: grid; gap: 10px; align-content: start; }
.nbt-carte__image img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 16px; }
.nbt-carte h2 { font-size: 1.2rem; margin: 0; }
.nbt-carte h2 a { text-decoration: none; }
.nbt-carte h2 a:hover { text-decoration: underline; }
.nbt-carte p { margin: 0; }
.nbt-pagination { margin-top: 40px; font-family: var(--nbt-titre); }
.nbt-pagination .page-numbers { display: inline-block; padding: 4px 10px; }
.nbt-pagination .current { border: 2px solid #000; border-radius: 999px; }

.nbt-btn { display: inline-block; border: 2px solid #000; border-radius: 999px; padding: 10px 22px; font-family: var(--nbt-titre); font-weight: 600; text-decoration: none; }
.nbt-btn:hover { box-shadow: 4px 4px 0 #000; }
.nbt-actions { display: flex; gap: 20px; align-items: center; flex-wrap: wrap; }
/* En-tête fixe : le menu reste visible au défilement */
.nbt-tete { position: sticky; top: 0; z-index: 90; }
body.admin-bar .nbt-tete { top: 32px; }
@media (max-width: 782px) { body.admin-bar .nbt-tete { top: 46px; } }
@media (max-width: 600px) { body.admin-bar .nbt-tete { top: 0; } }
/* Les ancres (#nb-chemin…) ne passent pas sous l'en-tête */
html { scroll-padding-top: 110px; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

/* Bouton « revenir en haut » */
.nbt-cache { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.nbt-haut {
  position: fixed; right: clamp(14px, 3vw, 28px); bottom: clamp(14px, 3vw, 28px); z-index: 80;
  width: 48px; height: 48px; display: grid; place-items: center;
  background: #fff; color: #000; border: 2px solid #000; border-radius: 50%;
  box-shadow: 3px 3px 0 #000; font-family: var(--nbt-titre); font-size: 20px; font-weight: 600; text-decoration: none;
}
.nbt-haut:hover { transform: translate(-1px, -1px); box-shadow: 4px 4px 0 var(--nbt-bleu); }
.nbt-haut:focus-visible { outline: 3px solid var(--nbt-bleu); outline-offset: 3px; }
/* N'apparaît qu'après un peu de défilement, sur les navigateurs qui le permettent (sans JavaScript) */
@supports (animation-timeline: scroll()) {
  .nbt-haut { animation: nbt-apparait linear both; animation-timeline: scroll(root); animation-range: 0 400px; }
  @keyframes nbt-apparait { 0%, 60% { opacity: 0; visibility: hidden; } 100% { opacity: 1; visibility: visible; } }
}
@media print { .nbt-haut { display: none; } .nbt-tete { position: static; } }
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition: none !important; } .nbt-haut:hover { transform: none; } }
