/* ============================================================
   styles-resultats-v6.css
   Refonte structurelle des pages de résultats v5.
   Inspirée des maquettes parlons peu × mm.
   Patterns : topbar pleine couleur, hero monumental, layout
   2 colonnes éditorial, cartouches aplats francs.
   ============================================================ */

/* ─── corps des pages de résultats ─── */
.r5-page {
  min-height: 100vh;
  font-family: var(--body);
}
.r5-page--cream { background: var(--pp-cream); color: var(--pp-ink); }
.r5-page--ink   { background: var(--pp-ink);   color: var(--pp-cream); }
.r5-page--coral { background: var(--pp-coral); color: var(--pp-ink); }
.r5-page--yellow { background: var(--pp-yellow); color: var(--pp-ink); }
.r5-page--pink  { background: var(--pp-pink);  color: var(--pp-cream); }

/* topbar adaptée au fond de la page */
.r5-page .topbar {
  background: transparent;
  position: absolute;
  padding: 20px 32px;
}
.r5-page--cream .topbar-monogram { color: var(--pp-ink); }
.r5-page--cream .topbar-back     { color: var(--pp-ink); }
.r5-page--coral .topbar-monogram { color: var(--pp-ink); }
.r5-page--coral .topbar-back     { color: var(--pp-ink); }
.r5-page--ink   .topbar-monogram { color: var(--pp-cream); }
.r5-page--ink   .topbar-back     { color: var(--pp-cream); }

/* ─── meta header (sous le wordmark de la topbar) ─── */
.r5-meta {
  position: absolute;
  top: 48px;
  left: 32px;
  z-index: 11;
  font-family: var(--mono);
  font-size: 9.5px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  line-height: 1.45;
  opacity: 0.78;
}

/* ─── pill miroir reflété (en haut à droite) ─── */
.r5-pill-status {
  position: absolute;
  top: 22px;
  right: 32px;
  z-index: 12;
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 6px 14px;
  border-radius: 100px;
  background: var(--pp-ink);
  color: var(--pp-cream);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.r5-page--ink .r5-pill-status   { background: var(--pp-yellow); color: var(--pp-ink); }
.r5-page--coral .r5-pill-status { background: var(--pp-ink); color: var(--pp-cream); }
.r5-page--cream .r5-pill-status { background: var(--pp-ink); color: var(--pp-cream); }

/* ─── hero monumental ─── */
.r5-hero {
  padding: 130px 48px 48px;
  max-width: 1280px;
  margin: 0 auto;
}
.r5-hero-title {
  font-family: var(--display);
  font-weight: 800;
  font-size: clamp(56px, 9vw, 120px);
  line-height: 0.92;
  letter-spacing: -0.045em;
  text-transform: lowercase;
  margin: 0 0 48px 0;
  max-width: 1100px;
}
.r5-hero-title .virg {
  font-family: var(--virg);
  font-style: italic;
  font-size: 1.2em;
  margin-left: 0.05em;
  line-height: 0;
  display: inline-block;
}
.r5-page--cream .r5-hero-title { color: var(--pp-ink); }
.r5-page--ink   .r5-hero-title { color: var(--pp-cream); }
.r5-page--coral .r5-hero-title { color: var(--pp-ink); }
.r5-page--cream .r5-hero-title .virg { color: var(--pp-pink); }
.r5-page--ink   .r5-hero-title .virg { color: var(--pp-pink); }
.r5-page--coral .r5-hero-title .virg { color: var(--pp-pink); }

/* surligneur jaune monumental sur 1 mot du titre */
.r5-hero-title .highlight {
  background: var(--pp-yellow);
  color: var(--pp-ink);
  padding: 0 0.12em;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}
.r5-hero-title .highlight--ink {
  background: var(--pp-ink);
  color: var(--pp-cream);
}
.r5-hero-title .highlight--pink {
  background: var(--pp-pink);
  color: var(--pp-cream);
}

/* ─── grille body 2 colonnes ─── */
.r5-grid {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 48px 80px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 420px);
  gap: 28px;
}
.r5-grid--equal { grid-template-columns: 1fr 1fr; }
.r5-grid--left-heavy { grid-template-columns: 7fr 5fr; }
.r5-grid--right-heavy { grid-template-columns: 4fr 6fr; }

@media (max-width: 900px) {
  .r5-grid, .r5-grid--equal, .r5-grid--left-heavy, .r5-grid--right-heavy {
    grid-template-columns: 1fr;
  }
}

/* ─── BFI-2 : barres pleines colorées (inspiré maquette I) ─── */
.r5-bars {
  display: grid;
  gap: 10px;
}
.r5-bar {
  display: grid;
  grid-template-columns: 1fr 70px;
  align-items: center;
  height: 60px;
  padding: 0 22px;
  border-radius: 0;
  position: relative;
  overflow: hidden;
}
.r5-bar-name {
  font-family: var(--display);
  font-weight: 700;
  font-size: 20px;
  letter-spacing: -0.025em;
  text-transform: lowercase;
  display: inline-flex;
  align-items: baseline;
  z-index: 1;
}
.r5-bar-name .virg {
  font-family: var(--virg);
  font-style: italic;
  font-size: 1.4em;
  color: var(--pp-pink);
  line-height: 0;
  margin-left: 0.05em;
}
.r5-bar-score {
  font-family: var(--display);
  font-weight: 800;
  font-size: 28px;
  letter-spacing: -0.025em;
  text-align: right;
  z-index: 1;
}
/* la couleur de la barre est définie inline via style="background-color: ..." */

/* ─── lecture card (encadré noir avec narration) ─── */
.r5-lecture {
  background: var(--pp-ink);
  color: var(--pp-cream);
  padding: 22px 24px;
  border-radius: 0;
}
.r5-lecture-kicker {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--pp-yellow);
  margin: 0 0 12px;
  display: block;
}
.r5-lecture-text {
  font-family: var(--body);
  font-size: 14.5px;
  line-height: 1.65;
  color: var(--pp-cream);
  margin: 0 0 10px;
}
.r5-lecture-text:last-child { margin-bottom: 0; }
.r5-lecture-text strong { color: var(--pp-yellow); font-weight: 600; }
.r5-lecture-text em { font-style: italic; }
.r5-lecture-text .highlight {
  background: var(--pp-yellow);
  color: var(--pp-ink);
  padding: 0 4px;
}

/* observation card (encadré jaune) */
.r5-observation {
  background: var(--pp-yellow);
  color: var(--pp-ink);
  padding: 16px 20px;
  margin-top: 10px;
}
.r5-observation-kicker {
  font-family: var(--mono);
  font-size: 9.5px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--pp-ink);
  margin: 0 0 8px;
  display: block;
}
.r5-observation-text {
  font-family: var(--body);
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--pp-ink);
  margin: 0;
}

/* actions sous lecture */
.r5-actions {
  display: flex;
  gap: 10px;
  margin-top: 18px;
  flex-wrap: wrap;
}
.r5-btn {
  font-family: var(--display);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: -0.02em;
  text-transform: lowercase;
  padding: 12px 20px;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: opacity 180ms ease;
}
.r5-btn:hover { opacity: 0.85; }
.r5-btn--ink    { background: var(--pp-ink);    color: var(--pp-cream); }
.r5-btn--cream  { background: var(--pp-cream);  color: var(--pp-ink); }
.r5-btn--yellow { background: var(--pp-yellow); color: var(--pp-ink); }
.r5-btn--pink   { background: var(--pp-pink);   color: var(--pp-cream); }
.r5-btn--ghost-ink   { background: transparent; color: var(--pp-ink); border: 2px solid var(--pp-ink); }
.r5-btn--ghost-cream { background: transparent; color: var(--pp-cream); border: 2px solid var(--pp-cream); }

/* ─── section facettes (BFI-2) ─── */
.r5-section {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 48px 56px;
}
.r5-section-title {
  font-family: var(--display);
  font-weight: 700;
  font-size: clamp(28px, 4vw, 44px);
  letter-spacing: -0.035em;
  text-transform: lowercase;
  margin: 0 0 24px;
  display: flex;
  align-items: baseline;
}
.r5-section-title .virg {
  font-family: var(--virg);
  font-style: italic;
  font-size: 1.2em;
  color: var(--pp-pink);
  line-height: 0;
  margin-left: 0.05em;
}
.r5-page--cream .r5-section-title { color: var(--pp-ink); }
.r5-page--ink .r5-section-title { color: var(--pp-cream); }
.r5-page--coral .r5-section-title { color: var(--pp-ink); }

.r5-facets {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.r5-facet {
  padding: 18px 22px;
  border-radius: 0;
}
.r5-facet[data-cat="haut"] { background: var(--pp-yellow); color: var(--pp-ink); }
.r5-facet[data-cat="bas"]  { background: var(--pp-pink); color: var(--pp-cream); }
.r5-facet[data-cat="moyen"], .r5-facet[data-cat="medium"] { background: var(--pp-ink); color: var(--pp-cream); }
.r5-facet-meta {
  font-family: var(--mono);
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin: 0 0 6px;
  opacity: 0.75;
}
.r5-facet-name {
  font-family: var(--display);
  font-weight: 700;
  font-size: 18px;
  letter-spacing: -0.025em;
  text-transform: lowercase;
  margin: 0 0 8px;
  display: inline-flex;
  align-items: baseline;
}
.r5-facet-name .virg {
  font-family: var(--virg);
  font-style: italic;
  font-size: 1.4em;
  line-height: 0;
  margin-left: 0.05em;
}
.r5-facet[data-cat="haut"] .r5-facet-name .virg { color: var(--pp-pink); }
.r5-facet[data-cat="bas"]  .r5-facet-name .virg { color: var(--pp-yellow); }
.r5-facet[data-cat="moyen"] .r5-facet-name .virg,
.r5-facet[data-cat="medium"] .r5-facet-name .virg { color: var(--pp-yellow); }
.r5-facet-text {
  font-family: var(--body);
  font-size: 13px;
  line-height: 1.55;
  margin: 0;
  opacity: 0.92;
}

@media (max-width: 900px) {
  .r5-facets { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .r5-facets { grid-template-columns: 1fr; }
}

/* ─── ECR-R : plot 2D anxiété × évitement ─── */
.r5-plot {
  background: var(--pp-cream);
  color: var(--pp-ink);
  padding: 18px;
  position: relative;
  aspect-ratio: 1.1 / 1;
  min-height: 380px;
}
.r5-page--ink .r5-plot {
  background: transparent;
  border: 1px solid rgba(255, 245, 225, 0.15);
  color: var(--pp-cream);
}
.r5-plot-kicker {
  position: absolute;
  top: 14px;
  left: 18px;
  font-family: var(--mono);
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  opacity: 0.65;
}
.r5-plot-zone {
  position: absolute;
  inset: 36px 36px 36px 50px;
  background-image:
    linear-gradient(rgba(255, 245, 225, 0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 245, 225, 0.06) 1px, transparent 1px);
  background-size: calc(100% / 8) calc(100% / 8);
  border: 1px solid rgba(255, 245, 225, 0.12);
}
.r5-page--cream .r5-plot-zone {
  background-image:
    linear-gradient(rgba(0,0,0,0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,0,0,0.06) 1px, transparent 1px);
  border-color: rgba(0,0,0,0.12);
}
.r5-plot-corner {
  position: absolute;
  font-family: var(--mono);
  font-size: 9.5px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  opacity: 0.6;
}
.r5-plot-corner--tl { top: 14px; left: 50px; }
.r5-plot-corner--tr { top: 14px; right: 38px; text-align: right; }
.r5-plot-corner--bl { bottom: 18px; left: 50px; }
.r5-plot-corner--br { bottom: 18px; right: 38px; text-align: right; }
.r5-plot-axis-x {
  position: absolute;
  bottom: 4px;
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--mono);
  font-size: 9.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  opacity: 0.55;
}
.r5-plot-axis-y {
  position: absolute;
  left: 18px;
  top: 50%;
  transform: translateY(-50%) rotate(-90deg);
  transform-origin: center;
  font-family: var(--mono);
  font-size: 9.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  opacity: 0.55;
}
.r5-plot-point {
  position: absolute;
  width: 18px;
  height: 18px;
  background: var(--pp-pink);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 24px rgba(255, 79, 139, 0.45);
}
.r5-plot-point-label {
  position: absolute;
  font-family: var(--mono);
  font-size: 9.5px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--pp-yellow);
  transform: translate(8px, -50%);
  white-space: nowrap;
}

/* style card (ECR-R, à droite du plot) */
.r5-style-card {
  background: var(--pp-yellow);
  color: var(--pp-ink);
  padding: 22px 26px;
}
.r5-style-kicker {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--pp-ink);
  margin: 0 0 8px;
  display: block;
}
.r5-style-name {
  font-family: var(--display);
  font-weight: 800;
  font-size: clamp(40px, 5vw, 64px);
  letter-spacing: -0.04em;
  line-height: 0.95;
  text-transform: lowercase;
  color: var(--pp-ink);
  margin: 0 0 6px;
  display: inline-flex;
  align-items: baseline;
}
.r5-style-name .virg {
  font-family: var(--virg);
  font-style: italic;
  font-size: 1.1em;
  color: var(--pp-pink);
  line-height: 0;
  margin-left: 0.04em;
}
.r5-style-coords {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.1em;
  color: var(--pp-ink);
  opacity: 0.7;
  margin: 0;
}

.r5-style-narration {
  font-family: var(--body);
  font-size: 14.5px;
  line-height: 1.6;
  margin: 18px 0 0;
  color: var(--pp-cream);
}
.r5-page--cream .r5-style-narration { color: var(--pp-ink); }

.r5-savoir {
  background: rgba(255, 245, 225, 0.05);
  border-left: 2px solid var(--pp-pink);
  padding: 14px 18px;
  margin-top: 18px;
  font-family: var(--mono);
  font-size: 11.5px;
  line-height: 1.55;
  color: var(--pp-cream);
}
.r5-savoir-kicker {
  font-family: var(--mono);
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--pp-pink);
  margin: 0 0 6px;
  display: block;
}

/* ─── PVQ-RR : top valeurs numérotées ─── */
.r5-rank-card {
  background: var(--pp-ink);
  padding: 22px 24px;
  color: var(--pp-cream);
}
.r5-rank-kicker {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--pp-yellow);
  margin: 0 0 18px;
  display: block;
}
.r5-rank-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
}
.r5-rank-row {
  display: grid;
  grid-template-columns: 28px 1fr 36px;
  align-items: center;
  gap: 14px;
  padding: 12px 0;
  border-top: 1px solid rgba(255, 245, 225, 0.08);
  position: relative;
}
.r5-rank-row:first-child {
  border-top: none;
}
.r5-rank-row--top1 {
  background: var(--pp-pink);
  color: var(--pp-cream);
  margin: 0 -24px;
  padding: 14px 24px;
  border: none;
}
.r5-rank-row--top1 + .r5-rank-row { border-top: none; }
.r5-rank-num {
  font-family: var(--mono);
  font-size: 13px;
  font-weight: 500;
  opacity: 0.6;
}
.r5-rank-row--top1 .r5-rank-num { color: var(--pp-cream); opacity: 0.9; }
.r5-rank-name {
  font-family: var(--display);
  font-weight: 700;
  font-size: 18px;
  letter-spacing: -0.025em;
  text-transform: lowercase;
  display: inline-flex;
  align-items: baseline;
}
.r5-rank-name .virg {
  font-family: var(--virg);
  font-style: italic;
  font-size: 1.4em;
  color: var(--pp-pink);
  line-height: 0;
  margin-left: 0.05em;
}
.r5-rank-row--top1 .r5-rank-name .virg { color: var(--pp-yellow); }
.r5-rank-score {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 500;
  text-align: right;
  opacity: 0.85;
}
.r5-rank-score--low { color: var(--pp-coral); }

/* cercle de schwartz simplifié */
.r5-radial {
  aspect-ratio: 1 / 1;
  max-width: 380px;
  margin: 0 auto;
}

/* ─── BPNSFS : carte identité + 3 besoins ─── */
.r5-identity {
  background: var(--pp-ink);
  color: var(--pp-cream);
  padding: 28px 32px;
}
.r5-identity-kicker {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--pp-yellow);
  margin: 0 0 18px;
  display: block;
}
.r5-identity-text {
  font-family: var(--display);
  font-weight: 700;
  font-size: clamp(28px, 3.4vw, 40px);
  line-height: 1.05;
  letter-spacing: -0.035em;
  text-transform: lowercase;
  color: var(--pp-cream);
  margin: 0;
}
.r5-identity-text .highlight {
  background: var(--pp-yellow);
  color: var(--pp-ink);
  padding: 0 8px;
}
.r5-identity-text .highlight--pink {
  background: var(--pp-pink);
  color: var(--pp-cream);
}
.r5-identity-text .virg {
  font-family: var(--virg);
  font-style: italic;
  font-size: 1.2em;
  color: var(--pp-pink);
  line-height: 0;
  margin-left: 0.05em;
}
.r5-identity-meta {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--pp-cream);
  opacity: 0.55;
  margin-top: 22px;
}

.r5-needs-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}
@media (max-width: 700px) { .r5-needs-grid { grid-template-columns: 1fr; } }

.r5-need {
  padding: 18px 22px;
}
.r5-need[data-q="nourri"]        { background: var(--pp-yellow); color: var(--pp-ink); }
.r5-need[data-q="ambivalent"]    { background: var(--pp-cream); color: var(--pp-ink); }
.r5-need[data-q="en_souffrance"] { background: var(--pp-pink); color: var(--pp-cream); }
.r5-need[data-q="tiede"]         { background: var(--pp-ink); color: var(--pp-cream); border: 1px solid rgba(255,245,225,0.12); }
.r5-need-meta {
  font-family: var(--mono);
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin: 0 0 6px;
  opacity: 0.75;
}
.r5-need-name {
  font-family: var(--display);
  font-weight: 700;
  font-size: 20px;
  letter-spacing: -0.025em;
  text-transform: lowercase;
  margin: 0 0 6px;
  display: inline-flex;
  align-items: baseline;
}
.r5-need-name .virg {
  font-family: var(--virg);
  font-style: italic;
  font-size: 1.4em;
  line-height: 0;
  margin-left: 0.05em;
}
.r5-need[data-q="nourri"] .r5-need-name .virg     { color: var(--pp-pink); }
.r5-need[data-q="ambivalent"] .r5-need-name .virg { color: var(--pp-pink); }
.r5-need[data-q="en_souffrance"] .r5-need-name .virg { color: var(--pp-yellow); }
.r5-need[data-q="tiede"] .r5-need-name .virg      { color: var(--pp-yellow); }
.r5-need-text {
  font-family: var(--body);
  font-size: 13.5px;
  line-height: 1.55;
  margin: 0;
  opacity: 0.9;
}

/* ─── tags secondaires (PVQ "5 plus discrètes" en pills) ─── */
.r5-tag-list {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.r5-tag {
  font-family: var(--mono);
  font-size: 9.5px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 6px 12px;
  border-radius: 100px;
  background: transparent;
  border: 1px solid currentColor;
  opacity: 0.7;
}

/* ─── footer minimal des pages résultats ─── */
.r5-footer {
  max-width: 1280px;
  margin: 0 auto;
  padding: 40px 48px 80px;
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

/* ─── share widget refondu (3 onglets éditorial) ─── */
.r5-share {
  background: var(--mm-deep);
  color: var(--pp-cream);
  padding: 56px 0;
}
.r5-share-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 48px;
}
.r5-share-title {
  font-family: var(--display);
  font-weight: 700;
  font-size: clamp(26px, 3vw, 36px);
  letter-spacing: -0.035em;
  text-transform: lowercase;
  color: var(--pp-cream);
  margin: 0 0 18px;
}
.r5-share-title .virg {
  font-family: var(--virg);
  font-style: italic;
  font-size: 1.2em;
  color: var(--pp-pink);
  line-height: 0;
  margin-left: 0.05em;
}
.r5-share-tabs {
  display: flex;
  gap: 4px;
  margin-bottom: 0;
  border-bottom: 1px solid rgba(255,245,225,0.12);
}
.r5-share-tab {
  background: transparent;
  border: none;
  padding: 12px 18px;
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--pp-cream);
  opacity: 0.55;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  transition: opacity 180ms ease, color 180ms ease, border-color 180ms ease;
}
.r5-share-tab:hover { opacity: 0.9; }
.r5-share-tab.active {
  opacity: 1;
  color: var(--pp-yellow);
  border-bottom-color: var(--pp-yellow);
}
.r5-share-panel {
  background: var(--mm-deep-2);
  padding: 22px 26px;
  margin-top: 0;
  white-space: pre-wrap;
  font-family: var(--body);
  font-size: 14.5px;
  line-height: 1.65;
  color: var(--pp-cream);
  opacity: 0.92;
  display: none;
}
.r5-share-panel.active { display: block; }
.r5-share-actions {
  display: flex;
  gap: 10px;
  margin-top: 14px;
  flex-wrap: wrap;
}

/* ─── encadrés contextuels (à propos, nuances, ce que ce test ne te dit pas) ─── */
.r5-callouts {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 48px 56px;
  display: grid;
  gap: 12px;
}
.r5-callout {
  padding: 22px 28px;
  border-radius: 0;
}
.r5-callout--learn {
  background: var(--pp-cream);
  color: var(--pp-ink);
  border-left: 3px solid var(--pp-yellow);
}
.r5-callout--warn {
  background: var(--pp-cream);
  color: var(--pp-ink);
  border-left: 3px solid var(--pp-coral);
}
.r5-callout--mute {
  background: var(--mm-deep);
  color: var(--pp-cream);
  border-left: 3px solid rgba(255,245,225,0.25);
  opacity: 0.92;
}
.r5-page--ink .r5-callout--learn,
.r5-page--ink .r5-callout--warn { color: var(--pp-ink); }
/* renforce contre la règle générique `.r5-page--ink * { color: cream }` */
.r5-page--ink .r5-callout--learn *,
.r5-page--ink .r5-callout--warn * { color: var(--pp-ink) !important; }
.r5-page--ink .r5-callout--learn .r5-callout-kicker { color: var(--pp-ink) !important; opacity: 0.7; }
.r5-page--ink .r5-callout--warn .r5-callout-kicker { color: var(--pp-coral) !important; }
.r5-page--ink .r5-callout--learn strong,
.r5-page--ink .r5-callout--warn strong { color: var(--pp-ink) !important; }
.r5-callout-kicker {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin: 0 0 10px;
  display: block;
}
.r5-callout--learn .r5-callout-kicker { color: var(--pp-ink); opacity: 0.7; }
.r5-callout--warn .r5-callout-kicker { color: var(--pp-coral); }
.r5-callout--mute .r5-callout-kicker { color: var(--pp-cream); opacity: 0.5; }
.r5-callout-title {
  font-family: var(--display);
  font-weight: 700;
  font-size: 19px;
  letter-spacing: -0.025em;
  text-transform: lowercase;
  margin: 0 0 10px;
}
.r5-callout p {
  font-family: var(--body);
  font-size: 14px;
  line-height: 1.6;
  margin: 0 0 8px;
  opacity: 0.88;
}
.r5-callout p:last-child { margin-bottom: 0; }
.r5-callout strong { font-weight: 700; }

@media (max-width: 900px) {
  .r5-hero, .r5-grid, .r5-section, .r5-footer, .r5-callouts, .r5-share-inner { padding-left: 24px; padding-right: 24px; }
  .r5-meta { left: 18px; top: 44px; }
  .r5-pill-status { right: 18px; }
}

/* ============================================================
   composants pour le contenu complet (passes ultérieures)
   ============================================================ */

/* ─── dimension : bloc complet pour chaque grand domaine ─── */
.r5-dims { display: grid; gap: 14px; }
.r5-dim {
  background: var(--mm-deep);
  border-left: 4px solid var(--pp-yellow);
  padding: 28px 32px;
}
.r5-page--cream .r5-dim { background: var(--pp-paper); border-left-color: var(--pp-ink); }
.r5-page--ink .r5-dim   { background: var(--mm-deep-2); border-left-color: var(--pp-yellow); }
.r5-page--coral .r5-dim { background: var(--pp-paper); border-left-color: var(--pp-ink); }

.r5-dim[data-cat="haut"]  { border-left-color: var(--pp-yellow); }
.r5-dim[data-cat="bas"]   { border-left-color: var(--pp-pink); }
.r5-dim[data-cat="moyen"] { border-left-color: var(--pp-cream); }
.r5-page--cream .r5-dim[data-cat="bas"]   { border-left-color: var(--pp-pink); }
.r5-page--cream .r5-dim[data-cat="haut"]  { border-left-color: var(--pp-ink); }

/* alerte forte : besoin en souffrance / fragilité = bloc noir, écriture blanche, où qu'il soit */
.r5-page--cream .r5-dim[data-cat="bas"],
.r5-page--coral .r5-dim[data-cat="bas"] {
  background: var(--pp-ink);
  border-left-color: var(--pp-pink);
}

.r5-dim-head {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 18px;
  align-items: baseline;
  margin-bottom: 8px;
}
.r5-dim-name {
  font-family: var(--display);
  font-weight: 700;
  font-size: clamp(26px, 3vw, 36px);
  letter-spacing: -0.035em;
  text-transform: lowercase;
  margin: 0;
  display: inline-flex;
  align-items: baseline;
}
.r5-dim-name .virg {
  font-family: var(--virg);
  font-style: italic;
  font-size: 1.2em;
  color: var(--pp-pink);
  line-height: 0;
  margin-left: 0.05em;
}
.r5-dim-score {
  font-family: var(--display);
  font-weight: 800;
  font-size: clamp(28px, 3.5vw, 44px);
  letter-spacing: -0.02em;
}
.r5-dim-score sup {
  font-family: var(--mono);
  font-size: 0.4em;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-left: 2px;
  opacity: 0.6;
}
.r5-dim-tagline {
  font-family: var(--body);
  font-size: 15px;
  line-height: 1.5;
  opacity: 0.78;
  margin: 0 0 18px;
  max-width: 720px;
  font-style: italic;
}
.r5-dim-level-pill {
  font-family: var(--mono);
  font-size: 9.5px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 100px;
  background: var(--pp-yellow);
  color: var(--pp-ink);
  display: inline-block;
  margin-bottom: 18px;
}
.r5-dim[data-cat="bas"] .r5-dim-level-pill { background: var(--pp-pink); color: var(--pp-cream); }
.r5-dim[data-cat="moyen"] .r5-dim-level-pill { background: var(--pp-cream); color: var(--pp-ink); }

.r5-dim-narration {
  font-family: var(--body);
  font-size: 15px;
  line-height: 1.7;
  margin: 0 0 24px;
  max-width: 760px;
}
.r5-dim-narration strong { font-weight: 600; }
.r5-dim-narration em { font-style: italic; }
.r5-page--ink .r5-dim-narration { color: var(--pp-cream); opacity: 0.88; }
.r5-page--ink .r5-dim-narration strong { color: var(--pp-yellow); opacity: 1; }
.r5-page--cream .r5-dim-narration { color: var(--pp-ink); }
.r5-page--coral .r5-dim-narration { color: var(--pp-ink); }

.r5-dim-general {
  font-family: var(--body);
  font-size: 13.5px;
  line-height: 1.55;
  opacity: 0.7;
  margin: 0 0 20px;
  max-width: 760px;
  padding-left: 14px;
  border-left: 2px solid currentColor;
  border-left-color: rgba(255, 245, 225, 0.18);
}
.r5-page--cream .r5-dim-general,
.r5-page--coral .r5-dim-general { border-left-color: rgba(0, 0, 0, 0.15); }

/* facettes intégrées (sous-grille) */
.r5-dim-facets {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin: 18px 0 22px;
}
@media (max-width: 720px) { .r5-dim-facets { grid-template-columns: 1fr; } }

.r5-dim-facet {
  padding: 14px 18px;
  background: rgba(255, 245, 225, 0.05);
}
.r5-page--cream .r5-dim-facet, .r5-page--coral .r5-dim-facet { background: rgba(0,0,0,0.05); }
.r5-dim-facet[data-cat="haut"]  { border-top: 3px solid var(--pp-yellow); }
.r5-dim-facet[data-cat="bas"]   { border-top: 3px solid var(--pp-pink); }
.r5-dim-facet[data-cat="moyen"] { border-top: 3px solid currentColor; opacity: 0.85; }
.r5-dim-facet-name {
  font-family: var(--display);
  font-weight: 700;
  font-size: 14px;
  text-transform: lowercase;
  letter-spacing: -0.015em;
  margin: 0 0 4px;
  display: inline-flex;
  align-items: baseline;
}
.r5-dim-facet-name .virg {
  font-family: var(--virg);
  font-style: italic;
  font-size: 1.4em;
  color: var(--pp-pink);
  line-height: 0;
  margin-left: 0.05em;
}
.r5-dim-facet-score {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.08em;
  opacity: 0.6;
  margin: 0 0 8px;
}
.r5-dim-facet-text {
  font-family: var(--body);
  font-size: 12.5px;
  line-height: 1.5;
  margin: 0;
  opacity: 0.85;
}

/* implications scientifiques */
.r5-impl-section { margin-top: 20px; }
.r5-impl-kicker {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin: 0 0 12px;
  opacity: 0.7;
  display: block;
}
.r5-impl-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 10px;
}
.r5-impl-item {
  padding: 12px 16px;
  background: rgba(252, 232, 62, 0.08);
  border-left: 2px solid var(--pp-yellow);
}
.r5-page--cream .r5-impl-item, .r5-page--coral .r5-impl-item { background: rgba(0,0,0,0.04); border-left-color: var(--pp-ink); }
.r5-impl-title {
  font-family: var(--display);
  font-weight: 700;
  font-size: 13px;
  text-transform: lowercase;
  letter-spacing: -0.015em;
  margin: 0 0 4px;
}
.r5-impl-text {
  font-family: var(--body);
  font-size: 12.5px;
  line-height: 1.55;
  margin: 0;
  opacity: 0.88;
}

/* prompt LLM */
.r5-llm {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 48px 56px;
}
.r5-llm-intro {
  font-family: var(--body);
  font-size: 14.5px;
  line-height: 1.6;
  margin: 0 0 18px;
  opacity: 0.88;
  max-width: 720px;
}
.r5-llm-box {
  background: var(--mm-deep);
  color: var(--pp-cream);
  font-family: var(--mono);
  font-size: 12px;
  line-height: 1.55;
  padding: 22px 26px;
  white-space: pre-wrap;
  max-height: 360px;
  overflow-y: auto;
  border: 1px dashed rgba(255,245,225,0.2);
  margin-bottom: 14px;
}
.r5-page--cream .r5-llm-box, .r5-page--coral .r5-llm-box { background: var(--pp-ink); }

/* références scientifiques */
.r5-refs {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 48px 56px;
}
.r5-refs-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 10px;
  max-width: 900px;
}
.r5-refs-list li {
  font-family: var(--body);
  font-size: 12.5px;
  line-height: 1.55;
  opacity: 0.78;
  padding-left: 18px;
  position: relative;
}
.r5-refs-list li::before {
  content: "◇";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--pp-yellow);
  font-size: 11px;
}
.r5-refs-list a {
  color: currentColor;
  text-decoration: underline;
  text-decoration-color: var(--pp-yellow);
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

/* préambule (orbe + texte intro) */
.r5-preamble {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 48px 32px;
  display: grid;
  grid-template-columns: 92px 1fr;
  gap: 28px;
  align-items: start;
}
.r5-preamble-icon { width: 92px; height: 92px; opacity: 0.9; }
.r5-preamble-icon svg { width: 100%; height: 100%; display: block; }
.r5-preamble-kicker {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin: 0 0 10px;
  display: block;
  opacity: 0.75;
}
.r5-preamble-lede {
  font-family: var(--body);
  font-size: 15px;
  line-height: 1.65;
  margin: 0;
  opacity: 0.88;
  max-width: 720px;
}
@media (max-width: 720px) {
  .r5-preamble { grid-template-columns: 1fr; padding-bottom: 20px; }
  .r5-preamble-icon { width: 64px; height: 64px; }
}

/* ============================================================
   v10 : intro sous le titre + variations dimensions + ref-cta
   ============================================================ */

/* intro juste sous le titre du hero */
.r5-hero-intro {
  font-family: var(--body);
  font-size: 15.5px;
  line-height: 1.65;
  margin: -28px 0 24px;
  max-width: 720px;
  opacity: 0.88;
}
.r5-hero-intro strong { font-weight: 600; color: var(--pp-pink); }

/* ─── refonte visuelle des blocs dimension : couleurs variées par catégorie ─── */
.r5-dim {
  position: relative;
  padding: 32px 36px 36px;
  border-left: none;
  overflow: hidden;
}

/* fond crème de base */
.r5-page--cream .r5-dim { background: var(--pp-paper); color: var(--pp-ink); }
.r5-page--ink   .r5-dim { background: var(--mm-deep-2); color: var(--pp-cream); }
.r5-page--coral .r5-dim { background: var(--pp-paper); color: var(--pp-ink); }

/* (la variation cyclique odd/even a été retirée : elle créait des fonds noirs imprévus
   qui rentraient en conflit avec les data-cat et rendaient le texte illisible.
   les blocs sont désormais colorés uniquement par leur data-cat) */

/* dimension catégorisée "haut" sur fond jaune plein */
.r5-dim[data-cat="haut"] {
  background: var(--pp-yellow);
  color: var(--pp-ink);
}
.r5-dim[data-cat="haut"] .r5-dim-name { color: var(--pp-ink); }
.r5-dim[data-cat="haut"] .r5-dim-score { color: var(--pp-ink); }
.r5-dim[data-cat="haut"] .r5-dim-tagline { color: var(--pp-ink); opacity: 0.7; }
.r5-dim[data-cat="haut"] .r5-dim-narration { color: var(--pp-ink); opacity: 1; }
.r5-dim[data-cat="haut"] .r5-dim-narration strong { color: var(--pp-pink); }
.r5-dim[data-cat="haut"] .r5-dim-general { color: var(--pp-ink); opacity: 0.7; border-left-color: rgba(27,27,27,0.2); }
.r5-dim[data-cat="haut"] .r5-dim-level-pill { background: var(--pp-ink); color: var(--pp-cream); }

/* dimension catégorisée "bas" sur fond rose plein */
.r5-dim[data-cat="bas"] {
  background: var(--pp-pink);
  color: var(--pp-cream);
}
.r5-dim[data-cat="bas"] .r5-dim-name { color: var(--pp-cream); }
.r5-dim[data-cat="bas"] .r5-dim-score { color: var(--pp-yellow); }
.r5-dim[data-cat="bas"] .r5-dim-tagline { color: var(--pp-cream); opacity: 0.85; }
.r5-dim[data-cat="bas"] .r5-dim-narration { color: var(--pp-cream); opacity: 0.95; }
.r5-dim[data-cat="bas"] .r5-dim-narration strong { color: var(--pp-yellow); }
.r5-dim[data-cat="bas"] .r5-dim-general { color: var(--pp-cream); opacity: 0.75; border-left-color: rgba(255,245,225,0.3); }
.r5-dim[data-cat="bas"] .r5-dim-level-pill { background: var(--pp-yellow); color: var(--pp-ink); }

/* dimension "moyen" sur fond coral plein */
.r5-dim[data-cat="moyen"] {
  background: var(--pp-coral);
  color: var(--pp-ink);
}
.r5-dim[data-cat="moyen"] .r5-dim-name { color: var(--pp-ink); }
.r5-dim[data-cat="moyen"] .r5-dim-score { color: var(--pp-ink); }
.r5-dim[data-cat="moyen"] .r5-dim-tagline { color: var(--pp-ink); opacity: 0.75; }
.r5-dim[data-cat="moyen"] .r5-dim-narration { color: var(--pp-ink); opacity: 1; }
.r5-dim[data-cat="moyen"] .r5-dim-narration strong { color: var(--pp-ink); font-weight: 700; }
.r5-dim[data-cat="moyen"] .r5-dim-general { color: var(--pp-ink); opacity: 0.7; border-left-color: rgba(27,27,27,0.2); }
.r5-dim[data-cat="moyen"] .r5-dim-level-pill { background: var(--pp-ink); color: var(--pp-cream); }

/* facettes : adapter au fond du parent */
.r5-dim[data-cat="haut"] .r5-dim-facet,
.r5-dim[data-cat="moyen"] .r5-dim-facet { background: rgba(27,27,27,0.08); color: var(--pp-ink); }
.r5-dim[data-cat="bas"] .r5-dim-facet { background: rgba(255,245,225,0.1); color: var(--pp-cream); }
.r5-dim[data-cat="haut"] .r5-dim-facet[data-cat="haut"]  { border-top-color: var(--pp-pink); }
.r5-dim[data-cat="haut"] .r5-dim-facet[data-cat="bas"]   { border-top-color: var(--pp-ink); }
.r5-dim[data-cat="haut"] .r5-dim-facet-name .virg { color: var(--pp-pink); }
.r5-dim[data-cat="bas"] .r5-dim-facet[data-cat="haut"]   { border-top-color: var(--pp-yellow); }
.r5-dim[data-cat="bas"] .r5-dim-facet[data-cat="bas"]    { border-top-color: var(--pp-cream); }
.r5-dim[data-cat="bas"] .r5-dim-facet-name .virg { color: var(--pp-yellow); }
.r5-dim[data-cat="moyen"] .r5-dim-facet[data-cat="haut"] { border-top-color: var(--pp-pink); }
.r5-dim[data-cat="moyen"] .r5-dim-facet[data-cat="bas"]  { border-top-color: var(--pp-ink); }
.r5-dim[data-cat="moyen"] .r5-dim-facet-name .virg { color: var(--pp-ink); }

/* impl : variantes selon parent */
.r5-dim[data-cat="haut"] .r5-impl-item { background: rgba(27,27,27,0.06); border-left-color: var(--pp-pink); }
.r5-dim[data-cat="haut"] .r5-impl-kicker { color: var(--pp-pink); }
.r5-dim[data-cat="bas"] .r5-impl-item { background: rgba(255,245,225,0.08); border-left-color: var(--pp-yellow); }
.r5-dim[data-cat="bas"] .r5-impl-kicker { color: var(--pp-yellow); }
.r5-dim[data-cat="moyen"] .r5-impl-item { background: rgba(27,27,27,0.06); border-left-color: var(--pp-ink); }
.r5-dim[data-cat="moyen"] .r5-impl-kicker { color: var(--pp-ink); }

/* grand numéro romain en filigrane à droite (touche éditoriale) */
.r5-dim::after {
  content: attr(data-roman);
  position: absolute;
  top: 12px;
  right: 24px;
  font-family: var(--display);
  font-weight: 800;
  font-size: 96px;
  letter-spacing: -0.05em;
  line-height: 1;
  text-transform: lowercase;
  opacity: 0.08;
  pointer-events: none;
}

/* ─── bouton CTA vers references.html ─── */
.r5-refs-cta {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 48px 56px;
}
.r5-refs-cta-inner {
  background: var(--mm-deep);
  color: var(--pp-cream);
  padding: 28px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}
.r5-page--cream .r5-refs-cta-inner,
.r5-page--coral .r5-refs-cta-inner { background: var(--pp-ink); }
.r5-refs-cta-text {
  font-family: var(--body);
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--pp-cream);
  margin: 0;
  max-width: 560px;
}
.r5-refs-cta-text strong { color: var(--pp-yellow); font-weight: 600; }

/* ============================================================
   v13 : recap schéma + détails pliables 5 couleurs + boutons pink global
   ============================================================ */

/* ─── recap schéma d'ensemble (radar pentagonal) ─── */
.r5-recap {
  max-width: 1280px;
  margin: 0 auto 8px;
  padding: 0 48px 56px;
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 36px;
  align-items: center;
}
@media (max-width: 900px) {
  .r5-recap { grid-template-columns: 1fr; padding-bottom: 32px; }
}
.r5-recap-chart {
  aspect-ratio: 1 / 1;
  max-width: 320px;
}
.r5-recap-chart svg { width: 100%; height: 100%; display: block; }
.r5-recap-list {
  display: grid;
  gap: 8px;
}
.r5-recap-row {
  display: grid;
  grid-template-columns: 14px 1fr auto;
  align-items: center;
  gap: 14px;
  padding: 8px 0;
  border-bottom: 1px solid currentColor;
  border-bottom-color: rgba(0,0,0,0.08);
}
.r5-page--ink .r5-recap-row { border-bottom-color: rgba(255,245,225,0.15); }
.r5-recap-dot {
  width: 14px; height: 14px;
  border-radius: 50%;
}
.r5-recap-name {
  font-family: var(--display);
  font-weight: 700;
  font-size: 16px;
  letter-spacing: -0.02em;
  text-transform: lowercase;
}
.r5-recap-score {
  font-family: var(--mono);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.04em;
}

/* ─── détails pliables (remplacement des r5-dim plats) ─── */
.r5-fold {
  border: none;
  padding: 0;
  margin: 0;
  overflow: hidden;
}
.r5-fold-summary {
  list-style: none;
  cursor: pointer;
  padding: 24px 32px;
  display: grid;
  grid-template-columns: 36px 1fr auto auto;
  align-items: center;
  gap: 18px;
}
.r5-fold-summary::-webkit-details-marker { display: none; }
.r5-fold-num {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.14em;
  opacity: 0.6;
}
.r5-fold-name {
  font-family: var(--display);
  font-weight: 700;
  font-size: clamp(20px, 2.4vw, 28px);
  letter-spacing: -0.025em;
  text-transform: lowercase;
  margin: 0;
  display: inline-flex;
  align-items: baseline;
}
.r5-fold-name .virg {
  font-family: var(--virg);
  font-style: italic;
  font-size: 1.4em;
  line-height: 0;
  margin-left: 0.05em;
}
.r5-fold-score {
  font-family: var(--display);
  font-weight: 800;
  font-size: clamp(22px, 2.6vw, 32px);
  letter-spacing: -0.02em;
}
.r5-fold-score sup {
  font-family: var(--mono);
  font-size: 0.4em;
  letter-spacing: 0.08em;
  opacity: 0.6;
  text-transform: uppercase;
}
.r5-fold-chev {
  font-size: 18px;
  transition: transform 200ms ease;
  opacity: 0.8;
}
.r5-fold[open] .r5-fold-chev { transform: rotate(180deg); }
.r5-fold-body {
  padding: 0 32px 28px;
}
.r5-fold-tagline {
  font-family: var(--body);
  font-size: 14.5px;
  font-style: italic;
  opacity: 0.78;
  margin: 0 0 18px;
  max-width: 720px;
}
.r5-fold-narration {
  font-family: var(--body);
  font-size: 15px;
  line-height: 1.7;
  margin: 0 0 18px;
  max-width: 760px;
}
.r5-fold-narration strong { font-weight: 700; }
.r5-fold-narration em { font-style: italic; }
.r5-fold-general {
  font-family: var(--body);
  font-size: 13.5px;
  line-height: 1.6;
  opacity: 0.75;
  margin: 0 0 22px;
  max-width: 760px;
  padding-left: 14px;
  border-left: 2px solid currentColor;
  border-left-color: rgba(0,0,0,0.15);
}

/* 5 variantes couleurs pour les 5 facettes BFI-2 (ordre O C E A N) */
.r5-fold--O { background: var(--pp-yellow); color: var(--pp-ink); }
.r5-fold--C { background: var(--pp-pink);   color: var(--pp-cream); }
.r5-fold--E { background: var(--pp-coral);  color: var(--pp-ink); }
.r5-fold--A { background: var(--pp-cream);  color: var(--pp-ink); border: 1px solid var(--pp-ink); }
.r5-fold--N { background: var(--pp-ink);    color: var(--pp-cream); }

.r5-fold--O .r5-fold-name .virg { color: var(--pp-pink); }
.r5-fold--C .r5-fold-name .virg { color: var(--pp-yellow); }
.r5-fold--E .r5-fold-name .virg { color: var(--pp-ink); }
.r5-fold--A .r5-fold-name .virg { color: var(--pp-pink); }
.r5-fold--N .r5-fold-name .virg { color: var(--pp-yellow); }

.r5-fold--C .r5-fold-general,
.r5-fold--N .r5-fold-general { border-left-color: rgba(255,245,225,0.25); }

/* facettes secondaires à l'intérieur du fold */
.r5-fold-facets {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin: 0 0 20px;
}
@media (max-width: 720px) { .r5-fold-facets { grid-template-columns: 1fr; } }

.r5-fold-facet {
  padding: 14px 18px;
  background: rgba(0,0,0,0.06);
}
.r5-fold--N .r5-fold-facet, .r5-fold--C .r5-fold-facet { background: rgba(255,245,225,0.1); }
.r5-fold-facet-name {
  font-family: var(--display);
  font-weight: 700;
  font-size: 14px;
  text-transform: lowercase;
  letter-spacing: -0.015em;
  margin: 0 0 4px;
}
.r5-fold-facet-score {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.08em;
  opacity: 0.65;
  margin: 0 0 6px;
}
.r5-fold-facet-text {
  font-family: var(--body);
  font-size: 12.5px;
  line-height: 1.55;
  margin: 0;
  opacity: 0.9;
}

.r5-fold-impls {
  margin-top: 20px;
}
.r5-fold-impls-kicker {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin: 0 0 10px;
  opacity: 0.7;
  display: block;
}
.r5-fold-impl-list { display: grid; gap: 8px; list-style: none; padding: 0; margin: 0; }
.r5-fold-impl-item {
  padding: 12px 16px;
  background: rgba(0,0,0,0.05);
  border-left: 2px solid currentColor;
  border-left-color: rgba(0,0,0,0.3);
}
.r5-fold--N .r5-fold-impl-item, .r5-fold--C .r5-fold-impl-item {
  background: rgba(255,245,225,0.08);
  border-left-color: rgba(255,245,225,0.4);
}
.r5-fold-impl-title {
  font-family: var(--display);
  font-weight: 700;
  font-size: 13px;
  text-transform: lowercase;
  letter-spacing: -0.015em;
  margin: 0 0 4px;
}
.r5-fold-impl-text {
  font-family: var(--body);
  font-size: 12.5px;
  line-height: 1.55;
  margin: 0;
  opacity: 0.88;
}

/* ============================================================
   v17 : SYSTÈME DE CONTRASTE HERMÉTIQUE
   un seul bloc qui définit pour chaque bloc à fond non-transparent
   la couleur de texte garantie. priorité maximale via !important.
   indépendant de la page hôte (cream/coral/ink/pink/yellow).
   ============================================================ */

/* ───────────────────────────────────────────────────────────────
   PAGES — fond + texte de base.
   Aucun "* { color: ... }" : la cascade interne reste libre.
   ─────────────────────────────────────────────────────────────── */
.r5-page--cream  { background: var(--pp-cream);  color: var(--pp-ink); }
.r5-page--coral  { background: var(--pp-coral);  color: var(--pp-ink); }
.r5-page--yellow { background: var(--pp-yellow); color: var(--pp-ink); }
.r5-page--ink    { background: var(--pp-ink);    color: var(--pp-cream); }
.r5-page--pink   { background: var(--pp-pink);   color: var(--pp-cream); }

/* ───────────────────────────────────────────────────────────────
   1. BLOCS À FOND CLAIR — texte ink (peu importe la page hôte)
   cream + yellow + coral + paper
   ─────────────────────────────────────────────────────────────── */
.r5-callout--learn,
.r5-callout--warn,
.r5-need[data-q="nourri"],
.r5-need[data-q="ambivalent"],
.r5-facet[data-cat="haut"],
.r5-rank-card.r5-rank-card--light,
.r5-style-card,
.r5-fold--O,
.r5-fold--A,
.r5-fold--E,
.r5-btn--cream,
.r5-btn--yellow,
.r5-btn--ghost-ink,
.r5-page--cream .r5-dim:not([data-cat="bas"]),
.r5-page--coral .r5-dim:not([data-cat="bas"]) {
  color: var(--pp-ink);
}
.r5-callout--learn *,
.r5-callout--warn *,
.r5-need[data-q="nourri"] *,
.r5-need[data-q="ambivalent"] *,
.r5-facet[data-cat="haut"] *,
.r5-style-card *,
.r5-fold--O *,
.r5-fold--A *,
.r5-fold--E *,
.r5-btn--cream *,
.r5-btn--yellow *,
.r5-btn--ghost-ink *,
.r5-page--cream .r5-dim:not([data-cat="bas"]) *:not(strong),
.r5-page--coral .r5-dim:not([data-cat="bas"]) *:not(strong) {
  color: var(--pp-ink) !important;
}
/* dans les blocs en souffrance (fond ink) : tous les enfants en cream, strong en jaune */
.r5-page--cream .r5-dim[data-cat="bas"] *,
.r5-page--coral .r5-dim[data-cat="bas"] *,
.r5-page--ink .r5-dim[data-cat="bas"] * { color: var(--pp-cream) !important; }
.r5-page--cream .r5-dim[data-cat="bas"] strong,
.r5-page--coral .r5-dim[data-cat="bas"] strong,
.r5-page--ink .r5-dim[data-cat="bas"] strong { color: var(--pp-yellow) !important; font-weight: 700; }
/* idem pour les blocs --dim sur page ink : strong en jaune (le bloc est foncé) */
.r5-page--ink .r5-dim strong { color: var(--pp-yellow) !important; font-weight: 700; }

/* ───────────────────────────────────────────────────────────────
   2. BLOCS À FOND FONCÉ — texte cream (peu importe la page hôte)
   ink + mm-deep + mm-deep-2 + pink
   ─────────────────────────────────────────────────────────────── */
.r5-identity,
.r5-lecture,
.r5-llm-box,
.r5-refs-cta-inner,
.r5-share,
.r5-share-panel,
.r5-callout--mute,
.r5-rank-card,
.r5-rank-row--top1,
.r5-need[data-q="en_souffrance"],
.r5-need[data-q="tiede"],
.r5-facet[data-cat="bas"],
.r5-facet[data-cat="moyen"],
.r5-fold--N,
.r5-fold--C,
.r5-page--cream .r5-dim[data-cat="bas"],
.r5-page--coral .r5-dim[data-cat="bas"],
.r5-page--ink .r5-dim,
.r5-btn--ink,
.r5-btn--pink,
.r5-btn--ghost-cream,
.r5-pill-status,
.topbar {
  color: var(--pp-cream);
}
.r5-identity *,
.r5-lecture *,
.r5-llm-box *,
.r5-refs-cta-inner *,
.r5-share *,
.r5-share-panel *,
.r5-callout--mute *,
.r5-rank-card *,
.r5-rank-row--top1 *,
.r5-need[data-q="en_souffrance"] *,
.r5-need[data-q="tiede"] *,
.r5-facet[data-cat="bas"] *,
.r5-facet[data-cat="moyen"] *,
.r5-fold--N *,
.r5-fold--C *,
.r5-page--cream .r5-dim[data-cat="bas"] *:not(strong),
.r5-page--coral .r5-dim[data-cat="bas"] *:not(strong),
.r5-page--ink .r5-dim *:not(strong),
.r5-btn--ink *,
.r5-btn--pink *,
.r5-btn--ghost-cream * {
  color: var(--pp-cream) !important;
}

/* ───────────────────────────────────────────────────────────────
   3. ACCENTS QUI ÉCHAPPENT À LA CASCADE (réinjection ciblée)
   virgules, kickers, surlignages, scores
   ─────────────────────────────────────────────────────────────── */

/* virgules signature : toujours roses (sauf déjà rose) */
.r5-callout--learn .virg,
.r5-callout--warn .virg,
.r5-need[data-q="nourri"] .virg,
.r5-need[data-q="ambivalent"] .virg,
.r5-facet[data-cat="haut"] .virg,
.r5-style-card .virg,
.r5-fold--O .virg,
.r5-fold--A .virg,
.r5-fold--E .virg,
.r5-dim .virg,
.r5-identity .virg,
.r5-lecture .virg,
.r5-llm-box .virg,
.r5-refs-cta-inner .virg,
.r5-share .virg,
.r5-callout--mute .virg,
.r5-rank-card .virg,
.r5-need[data-q="en_souffrance"] .virg,
.r5-need[data-q="tiede"] .virg,
.r5-facet[data-cat="bas"] .virg,
.r5-facet[data-cat="moyen"] .virg,
.r5-fold--N .virg,
.r5-fold--C .virg { color: var(--pp-pink) !important; }
/* exception : sur fond pink, la virgule passe en jaune pour rester visible */
.r5-need[data-q="en_souffrance"] .virg,
.r5-rank-row--top1 .virg,
.r5-facet[data-cat="bas"] .virg,
.r5-fold--C .virg,
.r5-btn--pink .virg { color: var(--pp-yellow) !important; }

/* kickers monospace : jaune sur fond foncé, ink atténué sur fond clair */
.r5-lecture-kicker,
.r5-identity-kicker,
.r5-share-title + * .r5-share-kicker,
.r5-rank-kicker { color: var(--pp-yellow) !important; }
.r5-callout--learn .r5-callout-kicker,
.r5-callout--warn .r5-callout-kicker,
.r5-need[data-q="nourri"] .r5-need-meta,
.r5-need[data-q="ambivalent"] .r5-need-meta { color: var(--pp-ink) !important; opacity: 0.7; }
.r5-callout--warn .r5-callout-kicker { color: var(--pp-coral) !important; opacity: 1; }
.r5-callout--mute .r5-callout-kicker,
.r5-need[data-q="en_souffrance"] .r5-need-meta,
.r5-need[data-q="tiede"] .r5-need-meta { color: var(--pp-cream) !important; opacity: 0.7; }

/* strong : jaune sur fond foncé, ink sur fond clair */
.r5-lecture-text strong,
.r5-refs-cta-text strong,
.r5-identity strong,
.r5-share strong,
.r5-llm-box strong,
.r5-need[data-q="en_souffrance"] strong,
.r5-need[data-q="tiede"] strong,
.r5-rank-card strong,
.r5-rank-row--top1 strong,
.r5-callout--mute strong,
.r5-facet[data-cat="bas"] strong,
.r5-facet[data-cat="moyen"] strong,
.r5-fold--N strong,
.r5-fold--C strong { color: var(--pp-yellow) !important; }
.r5-callout--learn strong,
.r5-callout--warn strong,
.r5-need[data-q="nourri"] strong,
.r5-need[data-q="ambivalent"] strong,
.r5-facet[data-cat="haut"] strong,
.r5-style-card strong,
.r5-fold--O strong,
.r5-fold--A strong,
.r5-fold--E strong,
.r5-dim strong { color: var(--pp-ink) !important; font-weight: 700; }

/* surlignages .highlight (background pill jaune/pink) */
.r5-identity-text .highlight { background: var(--pp-yellow) !important; color: var(--pp-ink) !important; }
.r5-identity-text .highlight--pink { background: var(--pp-pink) !important; color: var(--pp-cream) !important; }

/* pill-status : selon page */
.r5-page--ink .r5-pill-status   { background: var(--pp-yellow); color: var(--pp-ink) !important; }
.r5-page--coral .r5-pill-status { background: var(--pp-ink); color: var(--pp-cream) !important; }
.r5-page--cream .r5-pill-status { background: var(--pp-ink); color: var(--pp-cream) !important; }
.r5-page--ink .r5-pill-status * { color: var(--pp-ink) !important; }
.r5-page--cream .r5-pill-status *,
.r5-page--coral .r5-pill-status * { color: var(--pp-cream) !important; }

/* style-card variants (attachement) */
.r5-style-coords { opacity: 0.85; font-weight: 600; }

/* dim-level-pill : adapter selon variant */
.r5-dim[data-cat="haut"] .r5-dim-level-pill { background: var(--pp-yellow); color: var(--pp-ink) !important; }
.r5-dim[data-cat="bas"] .r5-dim-level-pill  { background: var(--pp-pink); color: var(--pp-cream) !important; }
.r5-dim[data-cat="moyen"] .r5-dim-level-pill { background: var(--pp-cream); color: var(--pp-ink) !important; }

/* plot attachement : labels coins (lisibles dans tout contexte) */
.r5-plot-kicker { display: none; }
.r5-plot-corner--tl { top: 10px; left: 12px; max-width: 80px; line-height: 1.2; }
.r5-plot-corner--tr { top: 10px; right: 12px; max-width: 80px; line-height: 1.2; text-align: right; }
.r5-plot-corner--bl { bottom: 32px; left: 12px; max-width: 80px; line-height: 1.2; }
.r5-plot-corner--br { bottom: 32px; right: 12px; max-width: 80px; line-height: 1.2; text-align: right; }

/* topbar : couleur selon page (déjà fait en haut, on renforce) */
.r5-page--cream .topbar-monogram, .r5-page--cream .topbar-back { color: var(--pp-ink) !important; }
.r5-page--coral .topbar-monogram, .r5-page--coral .topbar-back { color: var(--pp-ink) !important; }
.r5-page--yellow .topbar-monogram, .r5-page--yellow .topbar-back { color: var(--pp-ink) !important; }
.r5-page--ink .topbar-monogram, .r5-page--ink .topbar-back { color: var(--pp-cream) !important; }
.r5-page--pink .topbar-monogram, .r5-page--pink .topbar-back { color: var(--pp-cream) !important; }
.topbar-monogram .virg { color: var(--pp-pink) !important; }

/* ============================================================
   v18 : OVERRIDE FINAL — placé en toute fin pour gagner par ordre
   force la lisibilité absolue dans les blocs "en souffrance" / fragilité
   ============================================================ */
body.r5-page .r5-dim[data-cat="bas"] {
  background: var(--pp-ink) !important;
  border-left: 4px solid var(--pp-pink) !important;
}
body.r5-page .r5-dim[data-cat="bas"],
body.r5-page .r5-dim[data-cat="bas"] *,
body.r5-page .r5-dim[data-cat="bas"] p,
body.r5-page .r5-dim[data-cat="bas"] div,
body.r5-page .r5-dim[data-cat="bas"] span,
body.r5-page .r5-dim[data-cat="bas"] .r5-dim-narration,
body.r5-page .r5-dim[data-cat="bas"] .r5-dim-name {
  color: var(--pp-cream) !important;
  opacity: 1 !important;
}
body.r5-page .r5-dim[data-cat="bas"] strong,
body.r5-page .r5-dim[data-cat="bas"] .r5-dim-narration strong {
  color: var(--pp-yellow) !important;
  font-weight: 700 !important;
  opacity: 1 !important;
}
body.r5-page .r5-dim[data-cat="bas"] .r5-dim-name .virg { color: var(--pp-yellow) !important; }
body.r5-page .r5-dim[data-cat="bas"] .r5-dim-level-pill {
  background: var(--pp-pink) !important;
  color: var(--pp-cream) !important;
}

/* ============================================================
   reflet-croisé v5 — carte identitaire tranchée + constellation
   ============================================================ */

/* carte identitaire tranchée : fond ink plein avec bord jaune épais */
.r5-cross-portrait {
  background: var(--pp-ink);
  border-left: 6px solid var(--pp-yellow);
  padding: 44px 48px 36px;
  max-width: 980px;
  margin: 0 auto;
  position: relative;
}
.r5-cross-portrait::before {
  content: "v";
  position: absolute;
  top: 20px;
  right: 28px;
  font-family: var(--display);
  font-weight: 800;
  font-size: 84px;
  line-height: 1;
  color: var(--pp-pink);
  opacity: 0.22;
  letter-spacing: -0.04em;
}
.r5-cross-portrait-kicker {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--pp-yellow);
  margin: 0 0 22px;
  display: block;
}
.r5-cross-portrait-headline {
  font-family: var(--display);
  font-weight: 700;
  font-size: clamp(26px, 3.4vw, 40px);
  line-height: 1.1;
  letter-spacing: -0.03em;
  text-transform: lowercase;
  color: var(--pp-cream) !important;
  margin: 0 0 18px;
  max-width: 820px;
}
.r5-cross-portrait-headline strong {
  background: var(--pp-yellow);
  color: var(--pp-ink) !important;
  padding: 0 0.18em;
  font-weight: 700;
}
.r5-cross-portrait-line {
  font-family: var(--body);
  font-size: 15.5px;
  line-height: 1.55;
  color: var(--pp-cream) !important;
  margin: 0 0 10px;
  max-width: 760px;
  opacity: 0.92;
}
.r5-cross-portrait-line strong {
  color: var(--pp-yellow) !important;
  font-weight: 700;
}
.r5-cross-portrait-line .virg { color: var(--pp-pink) !important; }
.r5-cross-portrait-sig {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--pp-cream) !important;
  opacity: 0.5;
  margin: 26px 0 0;
  line-height: 1.4;
}

/* constellation : conteneur centré, fond plus dense */
.r5-cross-constellation {
  background: rgba(255, 245, 225, 0.03);
  border: 1px solid rgba(255, 245, 225, 0.08);
  padding: 28px 16px;
  max-width: 1100px;
  margin: 0 auto 18px;
}
.r5-cross-constellation-legend {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  gap: 28px;
  flex-wrap: wrap;
  justify-content: center;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  color: var(--pp-cream);
  opacity: 0.78;
}
.r5-cross-constellation-legend > div {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.r5-cross-dot {
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
}

@media (max-width: 768px) {
  .r5-cross-portrait { padding: 28px 22px; }
  .r5-cross-portrait::before { font-size: 56px; top: 14px; right: 16px; }
  .r5-cross-constellation { padding: 14px 6px; }
}

/* ============================================================
   reflet-croisé — 3 designs spécifiques (marquants/différenciants/forces)
   ============================================================ */

/* ─── SECTION 1 — MARQUANTS : pavés polaroid, grille 2 colonnes ─── */
.r5-cross-marquants {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 14px;
}
.r5-cross-marquant {
  padding: 22px 24px;
  border: 1.5px solid;
  background: rgba(255, 245, 225, 0.04);
}
.r5-cross-marquant[data-test="bfi"] { border-color: var(--pp-yellow); background: rgba(252, 232, 62, 0.10); }
.r5-cross-marquant[data-test="ecr"] { border-color: var(--pp-pink); background: rgba(255, 79, 139, 0.10); }
.r5-cross-marquant[data-test="bpnsfs"] { border-color: var(--pp-coral); background: rgba(255, 110, 64, 0.10); }
.r5-cross-marquant[data-test="pvq"] { border-color: var(--pp-cream); background: rgba(255, 245, 225, 0.08); }
.r5-cross-marquant[data-test="synthèse"],
.r5-cross-marquant[data-test="synthese"] { border-color: var(--pp-cream); background: rgba(255, 245, 225, 0.08); }
.r5-cross-marquant-kicker {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  margin: 0 0 10px;
  display: block;
}
.r5-cross-marquant[data-test="bfi"] .r5-cross-marquant-kicker { color: var(--pp-yellow); }
.r5-cross-marquant[data-test="ecr"] .r5-cross-marquant-kicker { color: var(--pp-pink); }
.r5-cross-marquant[data-test="bpnsfs"] .r5-cross-marquant-kicker { color: var(--pp-coral); }
.r5-cross-marquant[data-test="pvq"] .r5-cross-marquant-kicker { color: var(--pp-cream); opacity: 0.75; }
.r5-cross-marquant-title {
  font-family: var(--display);
  font-weight: 800;
  font-size: clamp(20px, 2.2vw, 26px);
  line-height: 1.05;
  letter-spacing: -0.025em;
  text-transform: lowercase;
  color: var(--pp-cream) !important;
  margin: 0 0 14px;
}
.r5-cross-marquant-title .virg {
  font-family: var(--virg);
  font-style: italic;
  color: var(--pp-pink) !important;
  font-size: 1.2em;
  line-height: 0;
  margin-left: 0.05em;
}
.r5-cross-marquant-text {
  font-family: var(--body);
  font-size: 14px;
  line-height: 1.6;
  color: var(--pp-cream) !important;
  opacity: 0.88;
  margin: 0;
}

/* ─── SECTION 2 — DIFFÉRENCIANTS : fiche spécimen avec barre population ─── */
.r5-cross-differenciant {
  padding: 24px 28px;
  border: 1px solid rgba(255, 245, 225, 0.18);
  background: rgba(255, 245, 225, 0.03);
}
.r5-cross-differenciant-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 12px;
}
.r5-cross-differenciant-kicker {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--pp-yellow) !important;
  margin: 0 0 6px;
  display: block;
}
.r5-cross-differenciant-title {
  font-family: var(--display);
  font-weight: 800;
  font-size: clamp(22px, 2.6vw, 30px);
  line-height: 1.05;
  letter-spacing: -0.03em;
  text-transform: lowercase;
  color: var(--pp-cream) !important;
  margin: 0;
}
.r5-cross-differenciant-title .virg {
  font-family: var(--virg);
  font-style: italic;
  color: var(--pp-pink) !important;
  font-size: 1.2em;
  line-height: 0;
}
.r5-cross-differenciant-source {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--pp-cream) !important;
  opacity: 0.55;
  flex-shrink: 0;
  white-space: nowrap;
}
.r5-cross-bar {
  margin: 36px 0 18px;
  position: relative;
}
.r5-cross-bar-track {
  height: 4px;
  background: rgba(255, 245, 225, 0.18);
  position: relative;
}
.r5-cross-bar-tick {
  position: absolute;
  top: -4px;
  width: 1px;
  height: 12px;
  background: rgba(255, 245, 225, 0.5);
}
.r5-cross-bar-point {
  position: absolute;
  top: -8px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--pp-yellow);
  border: 3px solid var(--pp-ink);
  transform: translateX(-50%);
  box-shadow: 0 0 0 1px var(--pp-yellow);
}
.r5-cross-bar-label {
  position: absolute;
  top: -28px;
  transform: translateX(-50%);
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--pp-yellow) !important;
  white-space: nowrap;
}
.r5-cross-bar-axis {
  display: flex;
  justify-content: space-between;
  margin-top: 10px;
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.14em;
  color: var(--pp-cream) !important;
  opacity: 0.5;
  text-transform: uppercase;
}
.r5-cross-differenciant-text {
  font-family: var(--body);
  font-size: 14.5px;
  line-height: 1.6;
  color: var(--pp-cream) !important;
  opacity: 0.88;
  margin: 0;
}

/* ─── SECTION 3 — FORCES : pavés colorés pleins ─── */
.r5-cross-forces {
  display: grid;
  gap: 12px;
}
.r5-cross-force {
  padding: 28px 32px;
}
.r5-cross-force[data-tone="yellow"] { background: var(--pp-yellow); }
.r5-cross-force[data-tone="pink"]   { background: var(--pp-pink); }
.r5-cross-force[data-tone="coral"]  { background: var(--pp-coral); }
.r5-cross-force[data-tone="cream"]  { background: var(--pp-cream); }
.r5-cross-force[data-tone="ink"]    { background: var(--pp-ink); border: 1px solid rgba(255, 245, 225, 0.2); }

.r5-cross-force-kicker {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  margin: 0 0 10px;
  display: block;
}
.r5-cross-force-title {
  font-family: var(--display);
  font-weight: 800;
  font-size: clamp(22px, 2.6vw, 30px);
  line-height: 1.1;
  letter-spacing: -0.025em;
  text-transform: lowercase;
  margin: 0 0 14px;
}
.r5-cross-force-title .virg {
  font-family: var(--virg);
  font-style: italic;
  font-size: 1.2em;
  line-height: 0;
}
.r5-cross-force-text {
  font-family: var(--body);
  font-size: 15px;
  line-height: 1.6;
  margin: 0;
  max-width: 920px;
}

/* contraste : pavé jaune/cream/coral → texte ink ; pavé pink/ink → texte cream */
.r5-cross-force[data-tone="yellow"],
.r5-cross-force[data-tone="yellow"] * { color: var(--pp-ink) !important; }
.r5-cross-force[data-tone="cream"],
.r5-cross-force[data-tone="cream"] * { color: var(--pp-ink) !important; }
.r5-cross-force[data-tone="coral"],
.r5-cross-force[data-tone="coral"] * { color: var(--pp-ink) !important; }
.r5-cross-force[data-tone="pink"],
.r5-cross-force[data-tone="pink"] * { color: var(--pp-cream) !important; }
.r5-cross-force[data-tone="ink"],
.r5-cross-force[data-tone="ink"] * { color: var(--pp-cream) !important; }

/* kicker plus discret selon le fond */
.r5-cross-force[data-tone="yellow"] .r5-cross-force-kicker { opacity: 0.65; }
.r5-cross-force[data-tone="cream"] .r5-cross-force-kicker { opacity: 0.65; }
.r5-cross-force[data-tone="coral"] .r5-cross-force-kicker { opacity: 0.7; }
.r5-cross-force[data-tone="pink"] .r5-cross-force-kicker { color: var(--pp-yellow) !important; opacity: 1; }
.r5-cross-force[data-tone="ink"] .r5-cross-force-kicker { color: var(--pp-yellow) !important; opacity: 1; }

/* virgule selon le fond pour rester lisible */
.r5-cross-force[data-tone="yellow"] .virg { color: var(--pp-pink) !important; }
.r5-cross-force[data-tone="cream"] .virg { color: var(--pp-pink) !important; }
.r5-cross-force[data-tone="coral"] .virg { color: var(--pp-pink) !important; }
.r5-cross-force[data-tone="pink"] .virg { color: var(--pp-yellow) !important; }
.r5-cross-force[data-tone="ink"] .virg { color: var(--pp-pink) !important; }

@media (max-width: 768px) {
  .r5-cross-marquant, .r5-cross-differenciant, .r5-cross-force { padding: 20px 18px; }
  .r5-cross-bar-label { font-size: 9px; }
}

/* ============================================================
   reflet-croisé — pistes en cartes verticales avec chiffre romain
   ============================================================ */

.r5-cross-pistes {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 14px;
}
.r5-cross-piste {
  position: relative;
  padding: 28px 28px 26px;
  overflow: hidden;
  display: flex;
  align-items: stretch;
  gap: 0;
}
.r5-cross-piste[data-tone="yellow"] { background: var(--pp-yellow); }
.r5-cross-piste[data-tone="pink"]   { background: var(--pp-pink); }
.r5-cross-piste[data-tone="coral"]  { background: var(--pp-coral); }
.r5-cross-piste[data-tone="cream"]  { background: var(--pp-cream); }
.r5-cross-piste[data-tone="ink"]    { background: var(--pp-ink); border: 1px solid rgba(255, 245, 225, 0.2); }

/* chiffre romain géant en filigrane, derrière le contenu */
.r5-cross-piste-roman {
  position: absolute;
  top: -28px;
  right: -10px;
  font-family: var(--display);
  font-weight: 800;
  font-size: 180px;
  line-height: 0.9;
  letter-spacing: -0.06em;
  text-transform: lowercase;
  pointer-events: none;
  z-index: 0;
  opacity: 0.18;
}
.r5-cross-piste-body {
  position: relative;
  z-index: 1;
  max-width: 480px;
}
.r5-cross-piste-kicker {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  margin: 0 0 10px;
  display: block;
}
.r5-cross-piste-title {
  font-family: var(--display);
  font-weight: 800;
  font-size: clamp(22px, 2.4vw, 28px);
  line-height: 1.05;
  letter-spacing: -0.03em;
  text-transform: lowercase;
  margin: 0 0 14px;
}
.r5-cross-piste-title .virg {
  font-family: var(--virg);
  font-style: italic;
  font-size: 1.2em;
  line-height: 0;
  margin-left: 0.05em;
}
.r5-cross-piste-text {
  font-family: var(--body);
  font-size: 14.5px;
  line-height: 1.6;
  margin: 0;
}
/* contraste : pavé jaune/cream/coral → texte ink ; pavé pink/ink → texte cream */
.r5-cross-piste[data-tone="yellow"],
.r5-cross-piste[data-tone="yellow"] *,
.r5-cross-piste[data-tone="cream"],
.r5-cross-piste[data-tone="cream"] *,
.r5-cross-piste[data-tone="coral"],
.r5-cross-piste[data-tone="coral"] * { color: var(--pp-ink) !important; }
.r5-cross-piste[data-tone="pink"],
.r5-cross-piste[data-tone="pink"] *,
.r5-cross-piste[data-tone="ink"],
.r5-cross-piste[data-tone="ink"] * { color: var(--pp-cream) !important; }
.r5-cross-piste[data-tone="pink"] .r5-cross-piste-kicker,
.r5-cross-piste[data-tone="ink"] .r5-cross-piste-kicker { color: var(--pp-yellow) !important; opacity: 1; }
.r5-cross-piste[data-tone="yellow"] .r5-cross-piste-kicker,
.r5-cross-piste[data-tone="cream"] .r5-cross-piste-kicker,
.r5-cross-piste[data-tone="coral"] .r5-cross-piste-kicker { opacity: 0.65; }
.r5-cross-piste[data-tone="yellow"] .virg,
.r5-cross-piste[data-tone="cream"] .virg,
.r5-cross-piste[data-tone="coral"] .virg { color: var(--pp-pink) !important; }
.r5-cross-piste[data-tone="pink"] .virg,
.r5-cross-piste[data-tone="ink"] .virg { color: var(--pp-yellow) !important; }

/* ============================================================
   reflet-croisé — section partage/PDF
   ============================================================ */

.r5-cross-actions {
  max-width: 1280px;
  margin: 0 auto;
  padding: 48px 48px 56px;
}
.r5-cross-actions-inner {
  background: var(--pp-ink);
  border-left: 6px solid var(--pp-pink);
  padding: 40px 44px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 32px;
  align-items: center;
}
.r5-cross-actions-text {
  max-width: 620px;
}
.r5-cross-actions-kicker {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--pp-yellow) !important;
  margin: 0 0 12px;
  display: block;
}
.r5-cross-actions-title {
  font-family: var(--display);
  font-weight: 700;
  font-size: clamp(22px, 2.4vw, 30px);
  line-height: 1.1;
  letter-spacing: -0.025em;
  text-transform: lowercase;
  color: var(--pp-cream) !important;
  margin: 0 0 12px;
}
.r5-cross-actions-title .virg { color: var(--pp-pink) !important; }
.r5-cross-actions-desc {
  font-family: var(--body);
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--pp-cream) !important;
  opacity: 0.88;
  margin: 0;
}
.r5-cross-actions-buttons {
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex-shrink: 0;
}
@media (max-width: 768px) {
  .r5-cross-actions-inner { grid-template-columns: 1fr; padding: 28px 22px; }
  .r5-cross-actions-buttons { width: 100%; }
}

/* ============================================================
   reflet-croisé — styles d'impression / export PDF
   ============================================================ */
@media print {
  body, .r5-page--ink {
    background: white !important;
    color: black !important;
  }
  body * {
    color: black !important;
    background: transparent !important;
    text-shadow: none !important;
    box-shadow: none !important;
  }
  /* on garde les fonds des pavés avec leur couleur de fond, mais en discret */
  .r5-cross-portrait,
  .r5-cross-force,
  .r5-cross-piste,
  .r5-cross-marquant,
  .r5-cross-differenciant,
  .r5-cross-actions-inner,
  .r5-lecture,
  .r5-callout {
    background: #f5f0e3 !important;
    border: 1px solid #999 !important;
    color: black !important;
    page-break-inside: avoid;
  }
  .r5-cross-portrait *,
  .r5-cross-force *,
  .r5-cross-piste *,
  .r5-cross-marquant *,
  .r5-cross-differenciant *,
  .r5-cross-actions-inner *,
  .r5-lecture *,
  .r5-callout * { color: black !important; }
  /* éléments à cacher à l'impression */
  .topbar,
  .r5-cross-actions,
  .r5-llm,
  .r5-refs-cta,
  .r5-footer,
  .r5-cross-piste-roman,
  .r5-cross-portrait::before,
  #chatgpt-sidebar,
  chatgpt-sidebar { display: none !important; }
  /* le SVG constellation reste affichable mais en niveaux de gris */
  .r5-cross-constellation,
  .r5-cross-constellation svg { filter: grayscale(1) brightness(0.6); }
  /* sauts de page propres entre grandes sections */
  .r5-section { page-break-inside: avoid; margin-bottom: 24px; }
  .r5-hero { padding: 0 0 24px; }
  .r5-section-title { color: black !important; }
  @page { margin: 18mm 14mm; }
}
