/*
Theme Name: Rif Xalima
Theme Version: 9.58.0
Theme URI: https://rifxalima.sn
Author: Rif Xalima
Author URI: https://rifxalima.sn
Description: Thème officiel du portail sénégalais Rif Xalima — Écoles CAMES, concours, actualités et guides pratiques. Palette tricolore sénégalaise (#00853F, #FDEF42, #E31B23). Polices Poppins + Inter.
Version: 9.58.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: rif-xalima
Tags: senegal, portal, blog, custom-colors, custom-menu, responsive-layout
*/

/* ─────────────────────────────────────────────
   FONT METRIC OVERRIDES — réduit le CLS causé
   par le swap Poppins/Inter (FOUT)
─────────────────────────────────────────────── */
@font-face {
  font-family: 'Poppins Fallback';
  src: local('Arial'), local('Helvetica Neue'), local('sans-serif');
  size-adjust: 105%;
  ascent-override: 95%;
  descent-override: 25%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Inter Fallback';
  src: local('Arial'), local('Helvetica Neue'), local('sans-serif');
  size-adjust: 100%;
  ascent-override: 90%;
  descent-override: 23%;
  line-gap-override: 0%;
}

/* =============================================
   VARIABLES
============================================= */
:root {
  --sn-green:  #00853F;
  --sn-green-dark: #006830;
  --sn-red:    #E31B23;
  --sn-yellow: #FDEF42;
  --sn-dark:   #0f172a;
  --sn-slate:  #475569;
  --sn-light:  #f8fafc;
  --sn-border: #e2e8f0;
  --radius:    12px;
  --shadow:    0 4px 24px rgba(0,0,0,0.08);
}

/* =============================================
   RESET & BASE
============================================= */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
  font-family: 'Inter', 'Inter Fallback', -apple-system, BlinkMacSystemFont, sans-serif;
  color: var(--sn-dark);
  background: #fff;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Poppins', 'Poppins Fallback', sans-serif;
  font-weight: 700;
  line-height: 1.25;
}

a { color: var(--sn-green); text-decoration: none; transition: color 0.2s; }
a:hover { color: var(--sn-green-dark); }

img { max-width: 100%; height: auto; display: block; }

p { margin-bottom: 1rem; }

ul, ol { padding-left: 1.5rem; }

/* =============================================
   LAYOUT
============================================= */
.rx-container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.25rem;
}

.rx-section { padding: 64px 0; }

.rx-section-sm { padding: 40px 0; }

/* =============================================
   HEADER
============================================= */
.rx-header {
  background: #fff;
  border-bottom: 1px solid var(--sn-border);
  position: sticky;
  top: 0;
  z-index: 1000;
  box-shadow: 0 1px 10px rgba(0,0,0,0.06);
}

.rx-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 64px;
  gap: 1.5rem;
}

/* Flag stripe — descendue sous le header (séparateur visuel) */
.rx-flag-stripe {
  height: 4px;
  background: linear-gradient(to right, var(--sn-green) 33.33%, var(--sn-yellow) 33.33% 66.66%, var(--sn-red) 66.66%);
  box-shadow: 0 2px 8px rgba(0,133,63,.18);
  position: relative;
  z-index: 1;
}

/* Logo */
.rx-logo {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  line-height: 1;
}

.rx-logo__title {
  font-family: 'Poppins', sans-serif;
  font-weight: 900;
  font-size: 1.4rem;
  color: var(--sn-dark);
  letter-spacing: -0.02em;
}

.rx-logo__title span:first-child { color: var(--sn-green); }
.rx-logo__title span:last-child  { color: var(--sn-red); }

.rx-logo__sub {
  font-size: 0.68rem;
  font-weight: 500;
  color: var(--sn-slate);
  letter-spacing: 0.02em;
  margin-top: 2px;
}

.rx-logo__sub span { margin: 0 3px; }
.rx-logo__sub span:nth-child(1) { color: var(--sn-green); }
.rx-logo__sub span:nth-child(3) { color: var(--sn-red); }

/* ========================================
   NAV DESKTOP — PREMIUM v3 (pill morphique + icônes bondissantes + glow coloré par item)
   ======================================== */
.rx-nav {
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 5px;
  background: linear-gradient(135deg, rgba(241,245,249,.6), rgba(236,253,245,.4));
  border-radius: 14px;
  border: 1px solid rgba(0,133,63,.08);
  backdrop-filter: none;
  position: relative;
}

.rx-nav a {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 14px;
  border-radius: 10px;
  font-size: .9rem;
  font-weight: 600;
  color: #475569;
  text-decoration: none;
  white-space: nowrap;
  transition: color .35s ease, transform .35s cubic-bezier(.34,1.56,.64,1);
  z-index: 1;
  overflow: visible;
}

/* Halo coloré apparaissant au hover (différent par item) */
.rx-nav a::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 10px;
  background: var(--rx-nav-bg, linear-gradient(135deg, #ecfdf5, #fef9c3));
  opacity: 0;
  transform: scale(.85);
  transition: opacity .3s ease, transform .4s cubic-bezier(.34,1.56,.64,1);
  z-index: -1;
}

/* Petite barre tricolore en bas qui zoome */
.rx-nav a::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -2px;
  width: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--sn-green), var(--sn-yellow), var(--sn-red));
  border-radius: 3px;
  transform: translateX(-50%);
  transition: width .4s cubic-bezier(.34,1.56,.64,1);
  box-shadow: 0 0 8px rgba(253,239,66,.4);
}

/* Couleurs par item (data-rx-color) */
.rx-nav a[data-rx-color="green"]  { --rx-nav-bg: linear-gradient(135deg,#ecfdf5,#d1fae5); --rx-nav-color:#00853F; }
.rx-nav a[data-rx-color="red"]    { --rx-nav-bg: linear-gradient(135deg,#fef2f2,#fee2e2); --rx-nav-color:#E31B23; }
.rx-nav a[data-rx-color="yellow"] { --rx-nav-bg: linear-gradient(135deg,#fefce8,#fef3c7); --rx-nav-color:#a16207; }
.rx-nav a[data-rx-color="blue"]   { --rx-nav-bg: linear-gradient(135deg,#eff6ff,#dbeafe); --rx-nav-color:#1d4ed8; }
.rx-nav a[data-rx-color="purple"] { --rx-nav-bg: linear-gradient(135deg,#faf5ff,#ede9fe); --rx-nav-color:#7c3aed; }

/* Icône qui bondit/tourne légèrement au hover */
.rx-nav__ico {
  display: inline-block;
  font-size: 1.05rem;
  line-height: 1;
  transition: transform .45s cubic-bezier(.34,1.56,.64,1);
  filter: grayscale(.15);
}
.rx-nav__lbl { transition: transform .35s cubic-bezier(.34,1.56,.64,1); }

/* HOVER */
.rx-nav a:hover {
  color: var(--rx-nav-color, #00853F);
  transform: translateY(-2px);
}
.rx-nav a:hover::before { opacity: 1; transform: scale(1); }
.rx-nav a:hover::after  { width: 60%; }
.rx-nav a:hover .rx-nav__ico {
  transform: scale(1.25) rotate(-8deg);
  filter: grayscale(0) drop-shadow(0 2px 5px rgba(0,0,0,.2));
}

/* ACTIF — pill marqué + glow */
.rx-nav a.current-menu-item,
.rx-nav .current-menu-item > a {
  color: var(--rx-nav-color, var(--sn-green));
  font-weight: 700;
}
.rx-nav a.current-menu-item::before {
  opacity: 1;
  transform: scale(1);
  box-shadow: 0 4px 14px rgba(0,133,63,.18);
}
.rx-nav a.current-menu-item::after { width: 60%; }
.rx-nav a.current-menu-item .rx-nav__ico {
  transform: scale(1.15);
  filter: grayscale(0) drop-shadow(0 2px 4px rgba(0,0,0,.15));
}

/* CTA Contact — bouton vedette tricolore */
.rx-nav__contact,
.rx-nav .menu-item-contact a {
  background: linear-gradient(135deg, var(--sn-green), var(--sn-green-dark)) !important;
  color: #fff !important;
  font-weight: 700 !important;
  padding: 9px 18px !important;
  border-radius: 50px !important;
  box-shadow: 0 4px 14px rgba(0,133,63,.35), inset 0 1px 0 rgba(255,255,255,.2);
  transition: all .4s cubic-bezier(.34,1.56,.64,1) !important;
  margin-left: 6px;
  position: relative;
  overflow: hidden;
}
.rx-nav__contact::before,
.rx-nav .menu-item-contact a::before { display: none !important; }
.rx-nav__contact::after,
.rx-nav .menu-item-contact a::after {
  content: "";
  position: absolute;
  top: 0; left: -100%;
  width: 100%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(253,239,66,.5), transparent);
  transition: left .6s ease;
  pointer-events: none;
}
.rx-nav__contact:hover,
.rx-nav .menu-item-contact a:hover {
  transform: translateY(-3px) scale(1.05) !important;
  box-shadow: 0 10px 26px rgba(0,133,63,.5), 0 0 0 4px rgba(253,239,66,.25);
  color: #FDEF42 !important;
}
.rx-nav__contact:hover::after,
.rx-nav .menu-item-contact a:hover::after { left: 100%; }
.rx-nav__contact:hover .rx-nav__ico { transform: scale(1.3) rotate(15deg); }

/* Apparition séquentielle — sans scale (le scale causait du CLS) */
@keyframes rxNavIn {
  from { opacity: 0; transform: translateY(-8px); }
  to   { opacity: 1; transform: translateY(0); }
}
.rx-nav a {
  animation: rxNavIn .4s cubic-bezier(.4,0,.2,1) forwards;
}
.rx-nav a:nth-child(1) { animation-delay: .02s; }
.rx-nav a:nth-child(2) { animation-delay: .07s; }
.rx-nav a:nth-child(3) { animation-delay: .12s; }
.rx-nav a:nth-child(4) { animation-delay: .17s; }
.rx-nav a:nth-child(5) { animation-delay: .22s; }
.rx-nav a:nth-child(6) { animation-delay: .27s; }
.rx-nav a:nth-child(7) { animation-delay: .32s; }

/* Mode scrollé — nav plus compact */
.rx-header.rx-scrolled .rx-nav { background: rgba(255,255,255,.6); border-color: rgba(0,133,63,.06); }
.rx-header.rx-scrolled .rx-nav a { padding: 6px 12px; font-size: .87rem; }

/* Header glassmorphism on scroll */
.rx-header.rx-scrolled {
  background: rgba(255,255,255,.92);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: 0 4px 20px rgba(0,0,0,.08);
}
.rx-header.rx-scrolled .rx-header__inner { height: 56px; }
.rx-header { transition: background .3s, box-shadow .3s; }
.rx-header__inner { transition: height .3s; }

/* Logo subtle hover */
.rx-logo { transition: transform .3s; }
.rx-logo:hover { transform: scale(1.02); }
.rx-logo__title span { transition: color .3s; }
.rx-logo:hover .rx-logo__title span:first-child { color: var(--sn-red); }
.rx-logo:hover .rx-logo__title span:last-child { color: var(--sn-green); }

/* Burger animated to X */
.rx-burger { transition: transform .3s; }
.rx-burger span { transition: all .35s cubic-bezier(.4,0,.2,1); transform-origin: center; }
.rx-burger.rx-open span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.rx-burger.rx-open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.rx-burger.rx-open span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* Mobile menu — premium slide */
.rx-mobile-menu {
  transform: translateY(-12px);
  opacity: 0;
  pointer-events: none;
  transition: all .35s cubic-bezier(.4,0,.2,1);
}
.rx-mobile-menu.open {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}
.rx-mobile-menu a {
  position: relative;
  transition: all .25s;
}
.rx-mobile-menu a:hover {
  background: linear-gradient(135deg, #ecfdf5, #fef9c3);
  color: var(--sn-green-dark);
  padding-left: 22px !important;
}
.rx-mobile-menu.open a {
  animation: rxMobileItem .4s cubic-bezier(.4,0,.2,1) backwards;
}
.rx-mobile-menu.open a:nth-child(1){animation-delay:.05s}
.rx-mobile-menu.open a:nth-child(2){animation-delay:.1s}
.rx-mobile-menu.open a:nth-child(3){animation-delay:.15s}
.rx-mobile-menu.open a:nth-child(4){animation-delay:.2s}
.rx-mobile-menu.open a:nth-child(5){animation-delay:.25s}
.rx-mobile-menu.open a:nth-child(6){animation-delay:.3s}
.rx-mobile-menu.open a:nth-child(7){animation-delay:.35s}
@keyframes rxMobileItem { from{opacity:0;transform:translateX(-20px);} to{opacity:1;transform:translateX(0);} }

/* Burger */
.rx-burger {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 6px;
  flex-direction: column;
  gap: 4px;
}

.rx-burger span {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--sn-dark);
  border-radius: 2px;
  transition: all 0.3s;
}

.rx-mobile-menu {
  display: none;
  flex-direction: column;
  padding: 12px 1.25rem 16px;
  border-top: 1px solid var(--sn-border);
  gap: 4px;
  background: #fff;
}

.rx-mobile-menu a {
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 0.9rem;
  font-weight: 500;
  color: #64748b;
}

.rx-mobile-menu a:hover { background: #f1f5f9; color: var(--sn-dark); }

@media (max-width: 768px) {
  .rx-nav { display: none; }
  .rx-burger { display: flex; }
  .rx-mobile-menu.open { display: flex; }
}

/* =============================================
   HERO HOME
============================================= */
.rx-hero {
  background: linear-gradient(135deg, var(--sn-green-dark) 0%, var(--sn-green) 60%, #14532d 100%);
  color: #fff;
  padding: 72px 1.25rem 60px;
  text-align: left;
  position: relative;
  overflow: hidden;
}

.rx-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Ccircle cx='30' cy='30' r='20'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  pointer-events: none;
}

.rx-hero__badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255,255,255,0.15);
  border: 1px solid rgba(255,255,255,0.25);
  color: #fff;
  padding: 6px 14px;
  border-radius: 30px;
  font-size: 0.8rem;
  font-weight: 600;
  margin-bottom: 20px;
}

.rx-hero h1 {
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 900;
  margin-bottom: 20px;
  line-height: 1.15;
}

.rx-hero h1 mark {
  background: var(--sn-yellow);
  color: var(--sn-dark);
  padding: 2px 12px;
  border-radius: 6px;
}

.rx-hero p {
  font-size: 1.1rem;
  opacity: 0.9;
  max-width: 560px;
  margin-bottom: 32px;
  line-height: 1.7;
}


.rx-hero__tags { display: flex; gap: 8px; flex-wrap: wrap; }

.rx-hero__tags span {
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.2);
  color: rgba(255,255,255,0.9);
  padding: 5px 12px;
  border-radius: 20px;
  font-size: 0.8rem;
  cursor: pointer;
  transition: background 0.2s;
}

.rx-hero__tags span:hover { background: rgba(255,255,255,0.22); }

/* =============================================
   TOOLS CARDS (HOME)
============================================= */
.rx-tools { background: var(--sn-light); }

.rx-tools__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 24px;
}

.rx-tool-card {
  background: #fff;
  border-radius: var(--radius);
  padding: 28px;
  border: 1px solid var(--sn-border);
  box-shadow: var(--shadow);
  transition: transform 0.25s, box-shadow 0.25s;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.rx-tool-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(0,0,0,0.12);
}

.rx-tool-card__icon {
  width: 56px;
  height: 56px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.75rem;
}

.rx-tool-card__icon--green { background: #d1fae5; }
.rx-tool-card__icon--red   { background: #fee2e2; }
.rx-tool-card__icon--blue  { background: #dbeafe; }
.rx-tool-card__icon--amber { background: #fef3c7; }

.rx-tool-card h3 {
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--sn-dark);
}

.rx-tool-card p {
  font-size: 0.88rem;
  color: #64748b;
  line-height: 1.65;
  flex: 1;
  margin: 0;
}

.rx-tool-card__cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 18px;
  border-radius: 8px;
  font-weight: 600;
  font-size: 0.88rem;
  text-decoration: none;
  transition: opacity 0.2s;
}

.rx-tool-card__cta:hover { opacity: 0.85; }

.rx-btn-green { background: var(--sn-green); color: #fff; }
.rx-btn-red   { background: var(--sn-red); color: #fff; }
.rx-btn-blue  { background: #2563eb; color: #fff; }
.rx-btn-amber { background: #d97706; color: #fff; }

/* =============================================
   SECTION TITLE
============================================= */
.rx-section-title {
  text-align: center;
  margin-bottom: 48px;
}

.rx-section-title__badge {
  display: inline-block;
  background: #d1fae5;
  color: var(--sn-green);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 4px 14px;
  border-radius: 20px;
  margin-bottom: 12px;
}

.rx-section-title h2 {
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  color: var(--sn-dark);
  margin-bottom: 12px;
}

.rx-section-title p {
  color: #64748b;
  font-size: 1rem;
  max-width: 600px;
  margin: 0 auto;
}

/* =============================================
   STATS BAR
============================================= */
.rx-stats {
  background: var(--sn-dark);
  color: #fff;
}

.rx-stats__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 0;
}

.rx-stat {
  padding: 32px 24px;
  border-right: 1px solid rgba(255,255,255,0.08);
  text-align: center;
}

.rx-stat:last-child { border-right: none; }

.rx-stat__num {
  font-family: 'Poppins', sans-serif;
  font-weight: 900;
  font-size: 2.2rem;
  color: var(--sn-yellow);
  line-height: 1;
  margin-bottom: 6px;
}

.rx-stat__label {
  font-size: 0.82rem;
  color: rgba(255,255,255,0.65);
  font-weight: 500;
}

/* =============================================
   LATEST JOBS (HOME PREVIEW)
============================================= */
.rx-jobs-preview { background: #fff; }

.rx-jobs-preview__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 16px;
  margin-bottom: 32px;
}

.rx-job-mini {
  background: var(--sn-light);
  border: 1px solid var(--sn-border);
  border-radius: 12px;
  padding: 18px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: all 0.2s;
  border-left: 3px solid var(--sn-green);
}

.rx-job-mini:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow);
}

.rx-job-mini__badge {
  display: inline-flex;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  padding: 2px 8px;
  border-radius: 20px;
  background: #d1fae5;
  color: var(--sn-green);
  width: fit-content;
}

.rx-job-mini h4 {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--sn-dark);
}

.rx-job-mini__meta {
  font-size: 0.8rem;
  color: #64748b;
}

/* =============================================
   NEWSLETTER
============================================= */
.rx-newsletter {
  background: linear-gradient(135deg, var(--sn-green-dark), var(--sn-green));
  color: #fff;
}

.rx-newsletter__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 24px;
  max-width: 600px;
  margin: 0 auto;
}

.rx-newsletter h2 {
  font-size: clamp(1.6rem, 3vw, 2.2rem);
}

.rx-newsletter p {
  opacity: 0.88;
  font-size: 1rem;
  margin: 0;
}

.rx-newsletter__form {
  display: flex;
  gap: 8px;
  width: 100%;
  max-width: 460px;
  margin: 0 auto;
  flex-wrap: nowrap;
  box-sizing: border-box;
}

.rx-newsletter__form input {
  flex: 1 1 0;
  min-width: 0;
  width: 100%;
  padding: 11px 14px;
  border-radius: 9px;
  border: none;
  font-size: 0.92rem;
  font-family: 'Inter', sans-serif;
  outline: none;
  box-sizing: border-box;
}

.rx-newsletter__form button {
  background: var(--sn-yellow);
  color: var(--sn-dark);
  border: none;
  padding: 11px 18px;
  border-radius: 9px;
  font-weight: 700;
  font-family: 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity 0.2s;
  flex-shrink: 0;
  font-size: 0.9rem;
}

.rx-newsletter__form button:hover { opacity: 0.9; }

/* =============================================
   FOOTER
============================================= */
.rx-footer {
  background: var(--sn-dark);
  color: rgba(255,255,255,0.75);
}

.rx-footer__top {
  display: grid;
  grid-template-columns: 1.5fr repeat(3, 1fr);
  gap: 48px;
  padding: 56px 0 40px;
}

.rx-footer__brand h3 {
  font-size: 1.5rem;
  font-weight: 900;
  color: #fff;
  margin-bottom: 12px;
}

.rx-footer__brand h3 span:first-child { color: var(--sn-green); }
.rx-footer__brand h3 span:nth-child(2) { color: #fff; }
.rx-footer__brand h3 span:last-child  { color: var(--sn-red); }

.rx-footer__brand p {
  font-size: 0.88rem;
  line-height: 1.7;
  margin-bottom: 20px;
}

.rx-footer__col h4 {
  font-family: 'Poppins', sans-serif;
  font-weight: 700;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #fff;
  margin-bottom: 16px;
}

.rx-footer__col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }

.rx-footer__col ul li a {
  color: rgba(255,255,255,0.6);
  font-size: 0.88rem;
  transition: color 0.2s;
}

.rx-footer__col ul li a:hover { color: #fff; }

.rx-footer__bottom {
  border-top: 1px solid rgba(255,255,255,0.08);
  padding: 20px 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.82rem;
  flex-wrap: wrap;
  gap: 10px;
}

/* =============================================
   PAGE HERO (INNER PAGES)
============================================= */
.rx-page-hero {
  padding: 48px 1.25rem 40px;
  color: #fff;
}

.rx-page-hero__label {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  opacity: 0.7;
  margin-bottom: 12px;
}

.rx-page-hero h1 {
  font-size: clamp(1.6rem, 4vw, 2.8rem);
  font-weight: 900;
  margin-bottom: 12px;
}

.rx-page-hero p {
  font-size: 1rem;
  opacity: 0.88;
  max-width: 560px;
  margin: 0;
}

/* =============================================
   CONTENT
============================================= */
.rx-content { padding: 48px 1.25rem; }

.wp-block-image { margin: 1.5rem 0; }

.entry-title { font-size: clamp(1.5rem, 3vw, 2.4rem); margin-bottom: 16px; }

.entry-content { max-width: 760px; }

.entry-content p { color: #475569; line-height: 1.8; margin-bottom: 1.25rem; }

.entry-content h2 { margin: 2rem 0 1rem; font-size: 1.5rem; }
.entry-content h3 { margin: 1.5rem 0 0.75rem; font-size: 1.25rem; }

/* =============================================
   RESPONSIVE
============================================= */
@media (max-width: 1024px) {
  .rx-footer__top { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 768px) {
  .rx-footer__top { grid-template-columns: 1fr; gap: 32px; }
  .rx-footer__bottom { flex-direction: column; text-align: center; }
  .rx-stats__grid { grid-template-columns: 1fr 1fr; }
  .rx-stat { border-right: none; border-bottom: 1px solid rgba(255,255,255,0.08); }
}

/* =============================================
   UTILITIES
============================================= */
.rx-text-center { text-align: center; }
.rx-mt-8 { margin-top: 2rem; }

.rx-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 24px;
  border-radius: 10px;
  font-weight: 700;
  font-size: 0.95rem;
  text-decoration: none;
  transition: opacity 0.2s, transform 0.2s;
  border: none;
  cursor: pointer;
  font-family: 'Poppins', sans-serif;
}

.rx-btn:hover { opacity: 0.9; transform: translateY(-1px); }

.rx-tag {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: 20px;
  font-size: 0.75rem;
  font-weight: 600;
}

/* =============================================
   MOBILE RESPONSIVE GLOBAL
============================================= */
@media (max-width: 640px) {
  .rx-blog-hero__title { font-size: 1.75rem; }
  .rx-blog-hero__subtitle { font-size: 1rem; }
  .rx-posts-grid { grid-template-columns: 1fr; gap: 20px; }
  .rx-post-card__title { font-size: 1.15rem; }
  .rx-container { padding-left: 16px; padding-right: 16px; }
  .rx-section { padding: 40px 0; }
  .rx-hero h1, .rx-hero__title { font-size: 1.85rem !important; line-height: 1.2; }
  .rx-hero p { font-size: 1rem !important; }
  .rx-stats__grid { grid-template-columns: 1fr 1fr; gap: 15px; }
  .rx-card, .rx-feature { padding: 20px !important; }
  .rx-grid, [class*="grid-cols"] { grid-template-columns: 1fr !important; }
}

@media (max-width: 480px) {
  .rx-stats__grid { grid-template-columns: 1fr; }
}

/* Menu burger mobile */
@media (max-width: 768px) {
  .rx-header__nav { display: none; }
  .rx-header__nav.open { display: block; position: absolute; top: 100%; left: 0; right: 0; background: #fff; padding: 20px; box-shadow: 0 8px 20px rgba(0,0,0,0.1); }
  .rx-header__burger { display: block !important; }
}
.rx-header__burger {
  display: none;
  background: none;
  border: none;
  font-size: 1.5rem;
  cursor: pointer;
  color: #00853F;
}

/* ═══════════════════════════════════════════════════════
   RESPONSIVE GLOBAL — Tablette & Mobile (renforcement)
═══════════════════════════════════════════════════════ */

/* Conteneur fluide */
.rx-container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 20px; box-sizing: border-box; }

/* Tablette < 1024px */
@media (max-width: 1024px) {
  .rx-container { padding: 0 18px; }
  .rx-hero h1, .rx-hero__title { font-size: 2.2rem !important; }
  .rx-hero p { font-size: 1.05rem !important; }
  .rx-section { padding: 50px 0 !important; }
  .rx-grid-3, .rx-grid-4 { grid-template-columns: repeat(2, 1fr) !important; }
  .rx-tools__grid { grid-template-columns: repeat(2, 1fr) !important; gap: 18px !important; }
  .rx-stats__grid { grid-template-columns: repeat(2, 1fr) !important; }
  .rx-footer__top { grid-template-columns: 1fr 1fr !important; gap: 30px !important; }
  img, video, iframe { max-width: 100%; height: auto; }
}

/* Tablette portrait & gros téléphone < 768px */
@media (max-width: 768px) {
  body { font-size: 15px; }
  .rx-container { padding: 0 14px; }
  .rx-nav { display: none !important; }
  .rx-burger { display: flex !important; }
  .rx-hero { padding: 50px 16px 40px !important; }
  .rx-hero h1, .rx-hero__title { font-size: 1.75rem !important; line-height: 1.2; }
  .rx-hero p { font-size: 1rem !important; }
  .rx-section { padding: 36px 0 !important; }
  .rx-section h2, .rx-section__title { font-size: 1.5rem !important; }
  .rx-grid-3, .rx-grid-4, .rx-tools__grid { grid-template-columns: 1fr !important; gap: 16px !important; }
  .rx-stats__grid { grid-template-columns: 1fr 1fr !important; }
  .rx-footer__top { grid-template-columns: 1fr !important; gap: 28px !important; text-align: left; }
  .rx-footer__bottom { flex-direction: column !important; gap: 12px; text-align: center !important; }
  .rx-flag-stripe { height: 4px !important; }
  .rx-logo__title { font-size: 1.1rem !important; }
  .rx-logo__sub { font-size: 0.7rem !important; }
}

/* Téléphone < 560px */
@media (max-width: 560px) {
  .rx-container { padding: 0 12px; }
  .rx-hero h1, .rx-hero__title { font-size: 1.4rem !important; }
  .rx-hero p { font-size: 0.95rem !important; }
  .rx-stats__grid { grid-template-columns: 1fr !important; }
  .rx-section { padding: 28px 0 !important; }
  .rx-section h2, .rx-section__title { font-size: 1.25rem !important; }
  .rx-card, .rx-tools__card { padding: 16px !important; }
  .rx-cta__buttons { flex-direction: column; gap: 10px; }
  .rx-cta__buttons a, .rx-cta__buttons button { width: 100%; text-align: center; }
}

/* Petit téléphone < 380px */
@media (max-width: 380px) {
  .rx-hero h1, .rx-hero__title { font-size: 1.2rem !important; }
  .rx-logo__title { font-size: 0.95rem !important; }
  .rx-logo__sub { display: none; }
}

/* Anti-débordement horizontal global */
html, body { overflow-x: hidden; max-width: 100%; }
* { box-sizing: border-box; }

/* Menu mobile : style amélioré */
.rx-mobile-menu { display: none; }
.rx-mobile-menu.open {
  display: flex; flex-direction: column; gap: 4px;
  background: #fff; padding: 16px; border-top: 2px solid #00853F;
  box-shadow: 0 8px 20px rgba(0,0,0,.1);
}
.rx-mobile-menu.open a {
  padding: 12px 14px; border-radius: 8px; color: #0f172a;
  font-weight: 600; text-decoration: none; transition: all .2s;
}
.rx-mobile-menu.open a:hover { background: #f0fdf4; color: #00853F; }

/* TIGHT FOOTER GAP */
#main{padding-bottom:30px !important;margin-bottom:0 !important;}
#main > *:last-child{margin-bottom:0 !important;padding-bottom:0 !important;}
.rx-footer{margin-top:0 !important;}


/* === RX ANIMATIONS v1 === */
:root{--rx-ease:cubic-bezier(.34,1.56,.64,1);}
html{scroll-behavior:smooth;}
/* FCP: body visible immédiatement — pas d'animation de page entière */
@keyframes rxFadeIn{from{opacity:0;}to{opacity:1;}}
@keyframes rxSlideUp{from{opacity:0;transform:translateY(24px);}to{opacity:1;transform:none;}}
@keyframes rxFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-8px);}}
@keyframes rxPulse{0%,100%{transform:scale(1);}50%{transform:scale(1.06);}}
@keyframes rxShimmer{0%{background-position:-200% 0;}100%{background-position:200% 0;}}
@keyframes rxBounceIn{0%{opacity:0;transform:scale(.7);}60%{opacity:1;transform:scale(1.05);}100%{transform:scale(1);}}
@keyframes rxGradientMove{0%{background-position:0% 50%;}50%{background-position:100% 50%;}100%{background-position:0% 50%;}}

/* Hero icons gentle float */
.rsn-hero-icon,.esn-hero h1::first-letter{display:inline-block;}
.rsn-hero-icon{animation:rxFloat 4s ease-in-out infinite;}
.ann-hero h1::before,.gco-hero h1::before{display:inline-block;}

/* Stats numbers — visibles immédiatement (scale .7 causait du CLS) */

/* Header logo subtle hover */
.rx-logo{transition:transform .3s var(--rx-ease);}
.rx-logo:hover{transform:scale(1.03);}

/* (anciennes règles nav supprimées — voir NAV DESKTOP PREMIUM v3 plus haut) */

/* Chips ripple feel */
.esn-chip,.rsn-chip,.ann-chip,.gco-chip{transition:all .25s var(--rx-ease) !important;}
.esn-chip:active,.rsn-chip:active,.ann-chip:active,.gco-chip:active{transform:scale(.94);}

/* Buttons */
.rx-search-form button[type=submit],.esn-search button,.rsn-searchbox button,.ann-searchbox button{position:relative;overflow:hidden;}
.rx-btn-primary,.esn-btn-postuler,.rsn-cta-btn,.ann-cta-btn,.gco-cta-btn{transition:transform .2s var(--rx-ease),box-shadow .2s,background .2s !important;}
.rx-btn-primary:hover,.esn-btn-postuler:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(0,133,63,.3);}

/* Search toggle pulse */
.rx-search-toggle:hover{animation:rxPulse .6s ease;}

/* Reveal-on-scroll target */
.rx-reveal{opacity:0;transform:translateY(28px);transition:opacity .6s ease,transform .6s var(--rx-ease);}
.rx-reveal.is-visible{opacity:1;transform:none;}

/* Card lift unification */
.esn-card,.rsn-card,.ann-card,.gco-card,.rx-blog-card,.rx-post-card{will-change:transform;}

/* Modal smooth */
.esn-modal-overlay,.rsn-overlay,.ann-modal-overlay,.gco-modal-overlay{transition:background .25s ease;}

/* Loading shimmer for empty placeholders */
.rx-shimmer{background:linear-gradient(90deg,#f1f5f9 0%,#e2e8f0 50%,#f1f5f9 100%);background-size:200% 100%;animation:rxShimmer 1.5s linear infinite;border-radius:8px;}

/* Footer reveal */
.rx-footer__brand h3 span:first-child{display:inline-block;}

/* Reduce motion */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important;}
}


/* === RX RESPONSIVE SAFETY NET v1 === */
/* Global overflow safety */
html, body { overflow-x: hidden; max-width: 100vw; }
img, video, iframe, embed, object { max-width: 100%; height: auto; }
table { max-width: 100%; display: block; overflow-x: auto; }
pre, code { max-width: 100%; overflow-x: auto; word-wrap: break-word; }

/* Long words / URLs */
.rx-page-content, .entry-content, .rx-post-card__excerpt, .rx-post-card__title,
.rx-feature-card, .rx-stat-card { overflow-wrap: break-word; word-wrap: break-word; }

/* Container padding always safe */
.rx-container { width: 100%; max-width: 1200px; margin: 0 auto; padding-left: 16px; padding-right: 16px; box-sizing: border-box; }
@media (min-width: 768px){ .rx-container { padding-left: 24px; padding-right: 24px; } }

/* Newsletter mobile */
@media (max-width: 560px) {
  .rx-newsletter__form { max-width: 100%; gap: 6px; }
  .rx-newsletter__form input { padding: 10px 12px; font-size: .88rem; }
  .rx-newsletter__form button { padding: 10px 14px; font-size: .85rem; }
  .rx-newsletter h2 { font-size: 1.3rem; }
  .rx-newsletter p { font-size: .88rem; }
}
@media (max-width: 380px) {
  .rx-newsletter__form { flex-direction: column; }
  .rx-newsletter__form button { width: 100%; }
}

/* Hero search safety */

/* All auto-grids: prevent overflow */
[style*="grid-template-columns"], .rx-stats__grid, .rx-tools__grid, .rx-grid, .rx-grid-3, .rx-grid-4, .rx-posts-grid {
  max-width: 100%;
}

/* Force minmax(0,1fr) safety on common explicit grids */
.rx-stats__grid > *, .rx-tools__grid > *, .rx-grid > *, .rx-posts-grid > * { min-width: 0; max-width: 100%; }

/* Prevent button white-space breaking layout */
button, a.button, .rx-btn { white-space: normal; word-break: break-word; }
.rx-btn-primary { white-space: nowrap; }

/* Header inner safe wrap */
.rx-header__inner { flex-wrap: wrap; gap: 8px; }

/* Footer safe wrap */
.rx-footer__top, .rx-footer__bottom { max-width: 100%; }
.rx-footer__bottom { flex-wrap: wrap; gap: 12px; }

/* Any inline style with 800px / fixed widths gets capped */
[style*="max-width:800px"], [style*="max-width:900px"], [style*="max-width:1100px"], [style*="max-width:1200px"] { width: 100%; box-sizing: border-box; }

/* Form elements never overflow */
input, select, textarea { max-width: 100%; box-sizing: border-box; }

/* Generic responsive grid utility (collapses gracefully) */
@media (max-width: 900px) {
  [style*="repeat(4,1fr)"] { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  [style*="repeat(3,1fr)"] { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
}
@media (max-width: 600px) {
  [style*="repeat(4,1fr)"], [style*="repeat(3,1fr)"], [style*="repeat(2,1fr)"] { grid-template-columns: 1fr !important; }
}

/* Plugin wrappers safety */
#esn-wrap, #rsn-wrap, #ann-wrap, #gco-wrap { max-width: 100%; overflow-x: hidden; }
#esn-wrap *, #rsn-wrap *, #ann-wrap *, #gco-wrap * { max-width: 100%; }

/* Pagination safe */
.rx-pagination, .pagination, nav.navigation { max-width: 100%; overflow-x: auto; }

/* Hide horizontal scrollbars from any leaked container */
section, article, main, header, footer, aside { max-width: 100%; }


/* === FIX puces menu + taille bouton recherche === */
.rx-nav, .rx-nav ul, .rx-mobile-menu, .rx-mobile-menu ul,
.rx-footer__col ul, .rx-footer ul {
  list-style: none !important;
  padding-left: 0 !important;
  margin: 0;
}
.rx-nav li, .rx-mobile-menu li {
  list-style: none !important;
}
.rx-nav li::before, .rx-nav li::marker,
.rx-mobile-menu li::before, .rx-mobile-menu li::marker {
  content: none !important;
  display: none !important;
}

/* Bouton recherche compact */
.rx-search-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  background: transparent;
  border: 1.5px solid #e2e8f0;
  border-radius: 10px;
  color: #475569;
  font-size: 1rem;
  cursor: pointer;
  margin-left: 8px;
  flex-shrink: 0;
  transition: all .25s cubic-bezier(.4,0,.2,1);
}
.rx-search-toggle:hover {
  background: linear-gradient(135deg, #00853F, #006830);
  border-color: #00853F;
  color: #fff;
  transform: scale(1.08) rotate(-8deg);
  box-shadow: 0 6px 16px rgba(0,133,63,.35);
}
@media(max-width:768px){
  .rx-search-toggle { width: 34px; height: 34px; font-size: .9rem; margin-left: 6px; border-radius: 8px; }
}


  .rx-hero__search-icon{display:none;}
  .rx-hero__search input{background:#f8fafc;border-radius:10px;padding:12px 14px;}
  .rx-hero__search button{width:100%;padding:12px;border-radius:10px;}



/* === HERO SEARCH — simple & propre === */
.rx-hero__search{
  display:flex;align-items:center;
  max-width:560px;margin:24px auto 0;
  background:#fff;border-radius:12px;
  box-shadow:0 8px 24px rgba(0,0,0,.15);
  overflow:hidden;
  height:52px;
}
.rx-hero__search-icon{
  padding:0 14px;font-size:16px;color:#94a3b8;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;height:100%;
}
.rx-hero__search input{
  flex:1;min-width:0;
  border:none!important;background:transparent!important;
  padding:0 10px 0 0!important;margin:0!important;
  height:100%!important;min-height:0!important;max-height:none!important;
  font-size:.95rem;outline:none;color:#0f172a;
  font-family:'Inter',sans-serif;
  -webkit-appearance:none;appearance:none;
  box-shadow:none!important;
}
.rx-hero__search input::-webkit-search-cancel-button{-webkit-appearance:none;}
.rx-hero__search button{
  background:#FDEF42!important;color:#0f172a!important;
  border:none!important;padding:0 22px!important;margin:0!important;
  height:100%!important;
  font-weight:700;font-family:'Poppins',sans-serif;font-size:.92rem;
  cursor:pointer;white-space:nowrap;flex-shrink:0;
  transition:background .2s;
  border-radius:0!important;
}
.rx-hero__search button:hover{background:#fde047!important;}
@media(max-width:560px){
  .rx-hero__search{height:46px;max-width:100%;margin:18px auto 0;}
  .rx-hero__search-icon{padding:0 10px;font-size:14px;}
  .rx-hero__search input{font-size:.88rem;}
  .rx-hero__search button{padding:0 16px!important;font-size:.85rem;}
}


/* === KILL ALL MENU DOTS v2 === */
/* Force sans puces sur tous les éléments de navigation */
header .rx-nav, header .rx-nav *,
header .rx-mobile-menu, header .rx-mobile-menu *,
.rx-header li, .rx-header ul,
.rx-mobile-menu li, .rx-mobile-menu ul {
  list-style: none !important;
  list-style-type: none !important;
  list-style-image: none !important;
  background-image: none !important;
}
.rx-nav li::marker, .rx-mobile-menu li::marker,
.rx-header li::marker { content: "" !important; display: none !important; }
.rx-nav li::before, .rx-mobile-menu li::before,
.rx-header li::before { content: none !important; display: none !important; background: none !important; }

/* Logo subtitle — séparateurs propres avec petites pastilles colorées au lieu de · */
.rx-logo__sub {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.rx-logo__sub span {
  position: relative;
  margin: 0 !important;
  padding-right: 10px;
  display: inline-block;
}
.rx-logo__sub span:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 3px;
  height: 3px;
  background: #cbd5e1;
  border-radius: 50%;
  transform: translateY(-50%);
}


/* === HERO COOL v3 === */
/* Hero — fond animé gradient + grain */
.rx-hero{
  background: linear-gradient(135deg, #006830 0%, #00853F 45%, #14532d 100%);
  background-size: 200% 200%;
  animation: rxHeroBg 14s ease infinite;
  padding: 80px 1.25rem 80px;
  min-height: 480px;
  display: flex;
  align-items: center;
}
@keyframes rxHeroBg { 0%,100%{background-position:0% 50%;} 50%{background-position:100% 50%;} }

/* Orbes flottants */
.rx-hero__orbs { position:absolute; inset:0; pointer-events:none; z-index:1; overflow:hidden; }
.rx-orb { position:absolute; border-radius:50%; filter:blur(40px); opacity:.35; }
.rx-orb--1 { width:340px;height:340px;background:#FDEF42;top:-80px;left:-60px; animation:rxOrbA 18s ease-in-out infinite; }
.rx-orb--2 { width:280px;height:280px;background:#E31B23;bottom:-100px;right:-40px; animation:rxOrbB 22s ease-in-out infinite; }
.rx-orb--3 { width:220px;height:220px;background:#fff;top:30%;right:18%; opacity:.18; animation:rxOrbA 16s ease-in-out infinite reverse; }
.rx-orb--4 { width:180px;height:180px;background:#22c55e;bottom:20%;left:30%; opacity:.4; animation:rxOrbB 20s ease-in-out infinite reverse; }
@keyframes rxOrbA { 0%,100%{transform:translate(0,0) scale(1);} 50%{transform:translate(60px,40px) scale(1.15);} }
@keyframes rxOrbB { 0%,100%{transform:translate(0,0) scale(1);} 50%{transform:translate(-50px,-30px) scale(1.1);} }

/* Emojis flottants */
.rx-hero__floats { position:absolute; inset:0; pointer-events:none; z-index:1; }
.rx-float {
  position:absolute; left:var(--x); top:var(--y);
  font-size: 28px; opacity:.55;
  animation: rxFloatY 6s ease-in-out infinite, rxFloatRot 12s linear infinite;
  animation-delay: var(--d), var(--d);
  filter: drop-shadow(0 4px 8px rgba(0,0,0,.2));
}
@keyframes rxFloatY { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-22px)} }
@keyframes rxFloatRot { 0%{transform:rotate(0)} 100%{transform:rotate(360deg)} }
@media(max-width:768px){ .rx-float{font-size:20px;opacity:.4;} }

/* Badge — drapeau mini intégré + glow */
.rx-hero__badge {
  background: rgba(255,255,255,.18);
  border: 1px solid rgba(255,255,255,.32);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  animation: rxBadgeGlow 3s ease-in-out infinite;
}
@keyframes rxBadgeGlow { 0%,100%{box-shadow:0 0 0 rgba(253,239,66,0);} 50%{box-shadow:0 0 24px rgba(253,239,66,.45);} }
.rx-flag-mini {
  display:inline-block; width:18px; height:12px;
  background: linear-gradient(to right, #00853F 33.33%, #FDEF42 33.33% 66.66%, #E31B23 66.66%);
  border-radius: 2px;
  vertical-align: middle;
  box-shadow: 0 1px 3px rgba(0,0,0,.2);
}

/* H1 — visible immédiatement (LCP ne doit jamais être caché) */
.rx-hero h1 {
  text-shadow: 0 4px 20px rgba(0,0,0,.15);
}
@keyframes rxFadeUp { from{opacity:0;transform:translateY(30px);} to{opacity:1;transform:translateY(0);} }
.rx-hero h1 mark {
  background: linear-gradient(135deg, #FDEF42, #fde047);
  box-shadow: 0 8px 24px rgba(253,239,66,.4);
  display: inline-block;
  animation: rxMarkFloat 4s ease-in-out 1s infinite;
}
@keyframes rxMarkPop { from{transform:scale(.5) rotate(-6deg);opacity:0;} to{transform:scale(1) rotate(0);opacity:1;} }
@keyframes rxMarkFloat { 0%,100%{transform:translateY(0) rotate(-1deg);} 50%{transform:translateY(-6px) rotate(1deg);} }

/* Lead + CTA : slide-up léger sans masquer pendant le délai */
.rx-hero__lead {
  animation: rxFadeUp .7s cubic-bezier(.4,0,.2,1) forwards;
}

  .rx-cta-btn { padding: 12px 8px; font-size: .85rem; }



/* === HERO CTA SOLO === */
.rx-hero__cta-wrap{
  display:flex;flex-direction:column;align-items:flex-start;gap:18px;
  margin-top:38px;
}
.rx-hero-cta{
  position:relative;display:inline-block;
  padding:0;border:none;background:transparent;
  text-decoration:none;
  isolation:isolate;
  cursor:pointer;
  transform-style:preserve-3d;
  transition:transform .4s cubic-bezier(.34,1.56,.64,1);
}
.rx-hero-cta:hover{transform:translateY(-4px) scale(1.04);}
.rx-hero-cta:active{transform:translateY(-1px) scale(1.01);}

/* Halo lumineux animé derrière */
.rx-hero-cta__glow{
  position:absolute;inset:-14px;
  background:conic-gradient(from 0deg,
    #FDEF42, #E31B23, #00853F, #22c55e, #FDEF42);
  border-radius:60px;
  filter:blur(18px);
  opacity:.55;
  z-index:-2;
  animation:rxCtaSpin 6s linear infinite;
}
@keyframes rxCtaSpin{to{transform:rotate(360deg);}}

/* Ring pulsant */
.rx-hero-cta__ring{
  position:absolute;inset:-2px;
  border:2px solid rgba(253,239,66,.5);
  border-radius:50px;
  z-index:-1;
  animation:rxCtaRing 2.2s ease-out infinite;
}
@keyframes rxCtaRing{
  0%{transform:scale(1);opacity:.7;}
  100%{transform:scale(1.4);opacity:0;}
}

/* Fond du bouton (gradient sombre profond) */
.rx-hero-cta__bg{
  position:absolute;inset:0;
  background:linear-gradient(135deg,#0f172a 0%,#1e293b 50%,#0f172a 100%);
  background-size:200% 200%;
  border-radius:50px;
  z-index:-1;
  animation:rxCtaBgShift 5s ease infinite;
}
@keyframes rxCtaBgShift{
  0%,100%{background-position:0% 50%;}
  50%{background-position:100% 50%;}
}

/* Contenu du bouton */
.rx-hero-cta__txt{
  position:relative;
  display:inline-flex;align-items:center;gap:14px;
  padding:18px 38px;
  font-family:'Poppins',sans-serif;
  font-weight:800;font-size:1.1rem;
  color:#fff;
  border-radius:50px;
  border:2px solid rgba(253,239,66,.3);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.15),
    0 14px 40px rgba(0,0,0,.4);
  overflow:hidden;
  z-index:1;
}
.rx-hero-cta__txt::before{
  content:"";position:absolute;top:0;left:-150%;
  width:100%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(253,239,66,.4),transparent);
  transition:left .8s;
}
.rx-hero-cta:hover .rx-hero-cta__txt::before{left:150%;}
.rx-hero-cta:hover .rx-hero-cta__txt{
  border-color:rgba(253,239,66,.7);
  color:#FDEF42;
}

/* Sparkle qui clignote */
.rx-hero-cta__sparkle{
  display:inline-block;font-size:1.2rem;
  animation:rxSparkle 1.6s ease-in-out infinite;
}
@keyframes rxSparkle{
  0%,100%{transform:scale(1) rotate(0);opacity:1;}
  50%{transform:scale(1.4) rotate(20deg);opacity:.7;}
}

/* Flèche dans une bulle jaune */
.rx-hero-cta__arrow{
  display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;
  background:linear-gradient(135deg,#FDEF42,#fde047);
  color:#0f172a;
  border-radius:50%;
  box-shadow:0 4px 12px rgba(253,239,66,.5);
  transition:all .35s cubic-bezier(.34,1.56,.64,1);
}
.rx-hero-cta:hover .rx-hero-cta__arrow{
  transform:translateX(8px) rotate(-15deg) scale(1.15);
  box-shadow:0 8px 20px rgba(253,239,66,.7);
}

/* Hint sous le bouton */
.rx-hero-cta__hint{
  font-size:.85rem;color:rgba(255,255,255,.7);font-weight:500;
  letter-spacing:.5px;
  animation:rxBlink 2.5s ease-in-out infinite;
  margin-left:8px;
}
@keyframes rxBlink{0%,100%{opacity:.5;transform:translateY(0);}50%{opacity:1;transform:translateY(3px);}}

@media(max-width:768px){
  .rx-hero__cta-wrap{align-items:center;width:100%;}
  .rx-hero-cta__txt{padding:16px 28px;font-size:1rem;}
  .rx-hero-cta__arrow{width:30px;height:30px;}
  .rx-hero-cta__hint{font-size:.78rem;}
}
@media(max-width:420px){
  .rx-hero-cta__txt{padding:14px 22px;font-size:.92rem;gap:10px;}
  .rx-hero-cta__sparkle{font-size:1rem;}
  .rx-hero-cta__arrow{width:26px;height:26px;}
  .rx-hero-cta__arrow svg{width:16px;height:16px;}
}


/* === FIX HEADER vs HERO + BURGER VISIBLE === */
/* Le header reste TOUJOURS au-dessus du hero animé */
.rx-header { z-index: 9999 !important; isolation: isolate; }

/* En mode glassmorphism scrollé, fond plus opaque pour rester lisible */
.rx-header.rx-scrolled {
  background: rgba(255,255,255,.97) !important;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: 0 6px 24px rgba(0,0,0,.12);
  border-bottom: 1px solid rgba(0,133,63,.1);
}

/* Le hero ne dépasse jamais le header */
.rx-hero { isolation: isolate; }
.rx-hero__orbs, .rx-hero__floats { z-index: 0 !important; }

/* === BURGER MOBILE TRÈS VISIBLE === */
@media (max-width: 768px) {
  .rx-burger {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 44px !important;
    height: 44px !important;
    padding: 0 !important;
    background: linear-gradient(135deg, #00853F, #006830) !important;
    border-radius: 12px !important;
    box-shadow: 0 4px 14px rgba(0,133,63,.4) !important;
    margin-left: 8px;
    position: relative;
    animation: rxBurgerPulse 2.5s ease-in-out infinite;
  }
  /* 3 traits améliorés — épais, nets, parfaitement centrés */
  .rx-burger { gap: 0 !important; padding: 11px 10px !important; }
  .rx-burger span {
    display: block !important;
    background: #fff !important;
    width: 22px !important;
    height: 3px !important;
    border-radius: 3px;
    margin: 0 !important;
    box-shadow: 0 1px 0 rgba(0,0,0,.15);
    transition: transform .35s cubic-bezier(.68,-0.55,.27,1.55), opacity .25s ease, background .25s !important;
    transform-origin: center center;
  }
  .rx-burger span:nth-child(1) { margin-bottom: 5px !important; }
  .rx-burger span:nth-child(3) { margin-top: 5px !important; }
  /* Animation hamburger → croix élégante */
  .rx-burger.rx-open span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
  .rx-burger.rx-open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
  .rx-burger.rx-open span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
  /* Petit point jaune "notification" pour attirer l'œil */
  .rx-burger::after {
    content: "";
    position: absolute;
    top: 6px; right: 6px;
    width: 8px; height: 8px;
    background: #FDEF42;
    border-radius: 50%;
    border: 2px solid #00853F;
    box-shadow: 0 0 0 0 rgba(253,239,66,.7);
    animation: rxBurgerDot 1.6s ease-out infinite;
  }
  .rx-burger.rx-open::after { display: none; }
  .rx-burger.rx-open {
    background: linear-gradient(135deg, #E31B23, #b91c1c) !important;
    box-shadow: 0 4px 14px rgba(227,27,35,.4) !important;
    animation: none;
  }
}
@keyframes rxBurgerPulse {
  0%,100% { box-shadow: 0 4px 14px rgba(0,133,63,.4); }
  50% { box-shadow: 0 4px 14px rgba(0,133,63,.4), 0 0 0 6px rgba(0,133,63,.12); }
}
@keyframes rxBurgerDot {
  0% { box-shadow: 0 0 0 0 rgba(253,239,66,.8); }
  100% { box-shadow: 0 0 0 8px rgba(253,239,66,0); }
}

/* Sur mobile, cacher le bouton recherche & Concours pour laisser place au burger bien visible */
@media (max-width: 600px) {
  .rx-search-toggle { display: none !important; }
  .rx-publish-btn { display: none !important; }
}


/* === MOBILE MENU PREMIUM FULLSCREEN === */
/* Reset old styles - drawer fullscreen */
.rx-mobile-menu {
  position: fixed !important;
  top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important;
  width: 100vw !important; height: 100vh !important; height: 100dvh !important;
  display: block !important;
  flex-direction: unset !important;
  padding: 0 !important;
  border-top: none !important;
  background: linear-gradient(160deg, #0f172a 0%, #1e293b 50%, #064e3b 100%) !important;
  z-index: 9998 !important;
  overflow-y: auto;
  overflow-x: hidden;
  transform: translateX(100%) !important;
  opacity: 1 !important;
  pointer-events: none;
  transition: transform .55s cubic-bezier(.65,0,.35,1) !important;
  -webkit-overflow-scrolling: touch;
}
.rx-mobile-menu.open {
  transform: translateX(0) !important;
  pointer-events: auto;
  display: block !important;
}
body.rx-mm-open { overflow: hidden; }

/* Orbes flottantes en arrière-plan */
.rx-mm__bg { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 0; }
.rx-mm__orb {
  position: absolute; border-radius: 50%;
  filter: blur(60px); opacity: .35;
}
.rx-mm__orb--g { width: 280px; height: 280px; background: #00853F; top: -80px; right: -80px; animation: rxMmOrb 14s ease-in-out infinite; }
.rx-mm__orb--y { width: 220px; height: 220px; background: #FDEF42; bottom: 20%; left: -60px; animation: rxMmOrb 18s ease-in-out infinite reverse; }
.rx-mm__orb--r { width: 200px; height: 200px; background: #E31B23; bottom: -60px; right: 10%; animation: rxMmOrb 16s ease-in-out infinite 3s; }
@keyframes rxMmOrb {
  0%,100% { transform: translate(0,0) scale(1); }
  33% { transform: translate(30px,-20px) scale(1.1); }
  66% { transform: translate(-25px,15px) scale(.95); }
}

/* Conteneur intérieur */
.rx-mm__inner {
  position: relative; z-index: 1;
  padding: 80px 22px 30px;
  min-height: 100vh; min-height: 100dvh;
  display: flex; flex-direction: column; gap: 16px;
  max-width: 480px; margin: 0 auto;
}

/* Header du menu (logo + tagline) */
.rx-mm__header {
  opacity: 0; transform: translateY(-20px);
  transition: all .5s cubic-bezier(.34,1.56,.64,1) .1s;
}
.rx-mobile-menu.open .rx-mm__header { opacity: 1; transform: translateY(0); }
.rx-mm__brand { display: flex; align-items: center; gap: 14px; padding-bottom: 18px; border-bottom: 1.5px dashed rgba(253,239,66,.25); }
.rx-mm__flag { font-size: 2.4rem; animation: rxMmFlag 2.8s ease-in-out infinite; }
@keyframes rxMmFlag { 0%,100%{transform:rotate(0)} 25%{transform:rotate(-8deg)} 75%{transform:rotate(8deg)} }
.rx-mm__brand strong { display: block; color: #fff; font-family: 'Poppins',sans-serif; font-size: 1.4rem; font-weight: 800; line-height: 1.1; }
.rx-mm__brand small { display: block; color: #FDEF42; font-size: .78rem; font-weight: 600; margin-top: 2px; }

/* Liste des items */
.rx-mm__list { list-style: none !important; padding: 0 !important; margin: 0 !important; display: flex; flex-direction: column; gap: 18px; }
.rx-mm__list li { list-style: none !important; }
.rx-mm__list li::before, .rx-mm__list li::marker { content: none !important; display: none !important; }

.rx-mm__item {
  display: flex !important; align-items: center; gap: 14px;
  padding: 16px 18px !important;
  background: rgba(255,255,255,.06) !important;
  backdrop-filter: none; -webkit-backdrop-filter: none;
  border: 1.5px solid rgba(255,255,255,.12);
  border-radius: 16px !important;
  color: #fff !important;
  font-family: 'Poppins',sans-serif;
  text-decoration: none !important;
  position: relative; overflow: hidden;
  opacity: 0; transform: translateX(40px);
  animation: none;
  transition: transform .35s cubic-bezier(.34,1.56,.64,1), background .25s, border-color .25s;
}
.rx-mm__item::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0;
  width: 4px; background: var(--rx-mm-accent, #FDEF42);
  transform: scaleY(0); transform-origin: top;
  transition: transform .3s;
}
.rx-mm__item:hover::before, .rx-mm__item:active::before { transform: scaleY(1); }
.rx-mm__item:hover, .rx-mm__item:active {
  background: rgba(255,255,255,.12) !important;
  border-color: var(--rx-mm-accent, #FDEF42);
  transform: translateX(6px) scale(1.02);
}
.rx-mm__item--home   { --rx-mm-accent: #fff; }
.rx-mm__item--green  { --rx-mm-accent: #22c55e; }
.rx-mm__item--red    { --rx-mm-accent: #ef4444; }
.rx-mm__item--yellow { --rx-mm-accent: #FDEF42; }
.rx-mm__item--blue   { --rx-mm-accent: #38bdf8; }
.rx-mm__item--purple { --rx-mm-accent: #a78bfa; }

.rx-mm__icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 46px; height: 46px;
  background: linear-gradient(135deg, var(--rx-mm-accent), rgba(255,255,255,.1));
  border-radius: 13px;
  font-size: 1.4rem;
  flex-shrink: 0;
  box-shadow: 0 4px 14px rgba(0,0,0,.25);
  transition: transform .3s;
}
.rx-mm__item:hover .rx-mm__icon, .rx-mm__item:active .rx-mm__icon { transform: rotate(-8deg) scale(1.1); }

.rx-mm__txt { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.rx-mm__txt strong { color: #fff; font-size: 1rem; font-weight: 700; line-height: 1.2; }
.rx-mm__txt small { color: rgba(255,255,255,.6); font-size: .76rem; margin-top: 2px; font-weight: 500; }

.rx-mm__arr {
  color: var(--rx-mm-accent, #FDEF42); font-size: 1.2rem; font-weight: 700;
  opacity: .5; transition: all .3s;
}
.rx-mm__item:hover .rx-mm__arr, .rx-mm__item:active .rx-mm__arr { opacity: 1; transform: translateX(4px); }

/* ===== ANIMATION "MELT & FALL" — items qui se fondent et tombent du haut ===== */
.rx-mobile-menu.open .rx-mm__list li {
  animation: rxMmMeltFall .9s cubic-bezier(.22,1.36,.42,1) backwards;
  transform-origin: 50% -20%;
}
.rx-mobile-menu.open .rx-mm__list li:nth-child(1){animation-delay:.15s}
.rx-mobile-menu.open .rx-mm__list li:nth-child(2){animation-delay:.35s}
.rx-mobile-menu.open .rx-mm__list li:nth-child(3){animation-delay:.55s}
.rx-mobile-menu.open .rx-mm__list li:nth-child(4){animation-delay:.75s}
.rx-mobile-menu.open .rx-mm__list li:nth-child(5){animation-delay:.95s}
.rx-mobile-menu.open .rx-mm__list li:nth-child(6){animation-delay:1.15s}

@keyframes rxMmMeltFall {
  0% {
    opacity: 0;
    transform: translateY(-80px) scale(.6) rotate(-4deg);
    filter: blur(14px);
    letter-spacing: -2px;
  }
  40% {
    opacity: .85;
    transform: translateY(8px) scale(1.04) rotate(1.5deg);
    filter: blur(3px);
    letter-spacing: .5px;
  }
  65% {
    transform: translateY(-3px) scale(.98) rotate(-.5deg);
    filter: blur(1px);
  }
  85% {
    transform: translateY(2px) scale(1.01) rotate(0);
    filter: blur(0);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1) rotate(0);
    filter: blur(0);
    letter-spacing: 0;
  }
}

/* Icônes : effet "goutte" qui tombe avec léger rebond */
.rx-mobile-menu.open .rx-mm__list li .rx-mm__icon {
  animation: rxMmIconDrop .7s cubic-bezier(.34,1.7,.64,1) backwards;
}
.rx-mobile-menu.open .rx-mm__list li:nth-child(1) .rx-mm__icon { animation-delay: .35s; }
.rx-mobile-menu.open .rx-mm__list li:nth-child(2) .rx-mm__icon { animation-delay: .55s; }
.rx-mobile-menu.open .rx-mm__list li:nth-child(3) .rx-mm__icon { animation-delay: .75s; }
.rx-mobile-menu.open .rx-mm__list li:nth-child(4) .rx-mm__icon { animation-delay: .95s; }
.rx-mobile-menu.open .rx-mm__list li:nth-child(5) .rx-mm__icon { animation-delay: 1.15s; }
.rx-mobile-menu.open .rx-mm__list li:nth-child(6) .rx-mm__icon { animation-delay: 1.35s; }
@keyframes rxMmIconDrop {
  0%   { transform: translateY(-30px) scale(.4); opacity: 0; }
  60%  { transform: translateY(6px) scale(1.15); opacity: 1; }
  80%  { transform: translateY(-2px) scale(.95); }
  100% { transform: translateY(0) scale(1); }
}

/* Reset transform statique — l'animation gère tout */
.rx-mobile-menu.open .rx-mm__list .rx-mm__item {
  opacity: 1;
  transform: none;
  animation: none;
}

/* Quand le menu se ferme : effet inverse rapide (fonte vers le haut) */
.rx-mobile-menu:not(.open) .rx-mm__list li {
  opacity: 0;
  transform: translateY(-30px);
  filter: blur(8px);
  transition: opacity .25s, transform .3s, filter .25s;
}

/* CTA Contact */
.rx-mm__cta {
  position: relative; overflow: hidden; isolation: isolate;
  display: flex !important; align-items: center; justify-content: center; gap: 8px;
  padding: 18px 24px !important;
  margin-top: 6px;
  background: linear-gradient(135deg, #FDEF42, #fde047) !important;
  color: #0f172a !important;
  border-radius: 16px !important;
  font-family: 'Poppins',sans-serif;
  font-weight: 800;
  font-size: 1.05rem;
  text-decoration: none !important;
  box-shadow: 0 10px 28px rgba(253,239,66,.4);
  opacity: 0; transform: translateY(20px);
  transition: transform .25s, box-shadow .25s;
}
.rx-mobile-menu.open .rx-mm__cta {
  animation: rxMmCta .6s cubic-bezier(.34,1.56,.64,1) .58s backwards;
}
@keyframes rxMmCta {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}
.rx-mm__cta:active { transform: scale(.97); }
.rx-mm__cta-glow {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.6), transparent);
  transform: translateX(-100%);
  z-index: -1;
  animation: rxMmCtaShine 3s ease-in-out infinite;
}
@keyframes rxMmCtaShine { 0%,40%{transform:translateX(-100%)} 50%{transform:translateX(100%)} 100%{transform:translateX(100%)} }

/* Footer */
.rx-mm__footer { margin-top: auto; padding-top: 40px; padding-bottom: 32px; text-align: center;
  opacity: 0; transition: opacity .4s .8s;
}
.rx-mobile-menu.open .rx-mm__footer { opacity: 1; }
.rx-mm__flagstripe { display: flex; justify-content: center; gap: 4px; margin-bottom: 10px; }
.rx-mm__flagstripe span { width: 28px; height: 4px; border-radius: 2px; }
.rx-mm__flagstripe span:nth-child(1) { background: #00853F; }
.rx-mm__flagstripe span:nth-child(2) { background: #FDEF42; }
.rx-mm__flagstripe span:nth-child(3) { background: #E31B23; }
.rx-mm__footer small { color: rgba(255,255,255,.5); font-size: .72rem; font-weight: 500; }

/* Burger en mode menu ouvert : ABOVE the menu */
.rx-burger { z-index: 9999 !important; position: relative; }


/* === BLOG PREMIUM v2 + REVEAL GLOBAL === */
/* === HERO BLOG === */
/* ── En-tête blog : fond clair, texte sombre, lisible ── */
.rx-blog-hero {
  position:relative; overflow:hidden; isolation:isolate;
  background: linear-gradient(160deg, #f0fdf4 0%, #ecfdf5 55%, #f8fafc 100%);
  border-bottom: 4px solid transparent;
  border-image: linear-gradient(90deg, #00853F 33.33%, #FDEF42 33.33% 66.66%, #E31B23 66.66%) 1;
  color:#0f172a; padding:72px 20px 56px; text-align:center;
}
.rx-blog-hero__bg { position:absolute; inset:0; z-index:-1; overflow:hidden; }
.rx-blog-hero__orb { position:absolute; border-radius:50%; filter:blur(60px); opacity:.28; }
.rx-blog-hero__orb--g { width:340px; height:340px; background:#4ade80; top:-100px; left:-80px; animation:rxOrbDrift 16s ease-in-out infinite; }
.rx-blog-hero__orb--y { width:280px; height:280px; background:#fde68a; bottom:-80px; right:-60px; animation:rxOrbDrift 19s ease-in-out infinite reverse; }
.rx-blog-hero__orb--r { width:180px; height:180px; background:#fca5a5; top:30%; right:25%; animation:rxOrbDrift 22s ease-in-out infinite 4s; }
@keyframes rxOrbDrift { 0%,100%{transform:translate(0,0) scale(1);} 50%{transform:translate(40px,-30px) scale(1.15);} }

.rx-blog-hero__badge {
  display:inline-block; background:#dcfce7; color:#00853F;
  padding:7px 18px; border-radius:30px; font-weight:700; font-size:.82rem;
  border:1.5px solid #86efac; margin-bottom:18px;
}
/* Titre blog — sombre et lisible */
.rx-blog-hero__title {
  font-family:'Poppins',sans-serif; font-size:clamp(2rem,5vw,3.2rem);
  font-weight:900; margin:0 0 14px; line-height:1.1; color:#0f172a;
}
.rx-blog-hero__title mark {
  background: linear-gradient(135deg,#FDEF42,#fde047);
  color:#0f172a; padding:0 6px 2px; border-radius:6px; font-style:normal;
}
.rx-blog-hero__subtitle {
  font-size:clamp(.95rem,2vw,1.15rem); color:#475569; margin:0 auto 28px; max-width:640px;
}
.rx-blog-hero__cats { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; max-width:900px; margin:0 auto; }
.rx-blog-cat-pill {
  display:inline-flex; align-items:center; gap:6px;
  background:#fff; color:#475569; text-decoration:none;
  padding:7px 15px; border-radius:30px; font-size:.84rem; font-weight:600;
  border:1.5px solid #e2e8f0; transition:all .22s;
  box-shadow: 0 1px 4px rgba(0,0,0,.06);
}
.rx-blog-cat-pill:hover { background:#ecfdf5; border-color:#00853F; color:#00853F; transform:translateY(-2px); box-shadow:0 4px 12px rgba(0,133,63,.15); }
.rx-blog-cat-pill.active { background:#00853F; color:#fff; border-color:#00853F; box-shadow:0 6px 18px rgba(0,133,63,.3); }
.rx-blog-cat-pill__n { background:rgba(0,0,0,.1); padding:2px 7px; border-radius:10px; font-size:.7rem; font-weight:800; }
.rx-blog-cat-pill.active .rx-blog-cat-pill__n { background:rgba(255,255,255,.25); }

@keyframes rxFadeUp { from{opacity:0;transform:translateY(20px);} to{opacity:1;transform:translateY(0);} }

/* === GRILLE D'ARTICLES === */
.rx-blog-list { padding:60px 20px; background:linear-gradient(180deg,#f8fafc 0%,#fff 100%); }
.rx-posts-grid {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(330px,1fr));
  gap:26px; max-width:1240px; margin:0 auto;
}

.rx-post-card {
  background:#fff; border-radius:18px; overflow:hidden;
  box-shadow:0 2px 12px rgba(15,23,42,.06);
  border:1px solid #e2e8f0;
  transition:transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s, border-color .25s;
  position:relative;
}
.rx-post-card:hover {
  transform:translateY(-8px);
  box-shadow:0 18px 44px rgba(0,133,63,.18);
  border-color:#a7f3d0;
}
.rx-post-card__link { display:block; color:inherit; text-decoration:none; }

/* Article vedette pleine largeur */
.rx-post-card--featured { grid-column:1/-1; }
.rx-post-card--featured .rx-post-card__link {
  display:grid; grid-template-columns:1.1fr 1fr; gap:0;
}
.rx-post-card--featured .rx-post-card__thumb { height:100%; min-height:340px; }
.rx-post-card--featured .rx-post-card__title { font-size:1.7rem; }
.rx-post-card--featured .rx-post-card__excerpt { font-size:1rem; }
@media (max-width:768px){ .rx-post-card--featured .rx-post-card__link{grid-template-columns:1fr;} .rx-post-card--featured .rx-post-card__thumb{min-height:220px;} .rx-post-card--featured .rx-post-card__title{font-size:1.3rem;} }

.rx-post-card__thumb {
  position:relative; height:210px; overflow:hidden;
  background:linear-gradient(135deg,#00853F 0%,#FDEF42 100%);
}
.rx-post-card__thumb img { width:100%; height:100%; object-fit:cover; transition:transform .55s ease; display:block; }
.rx-post-card:hover .rx-post-card__thumb img { transform:scale(1.08); }
.rx-post-card__thumb-default { display:flex; align-items:center; justify-content:center; height:100%; background:linear-gradient(135deg,#00853F,#22c55e,#FDEF42); }
.rx-post-card__thumb-emoji { font-size:4.5rem; filter:drop-shadow(0 4px 16px rgba(0,0,0,.2)); animation:rxFloat 4s ease-in-out infinite; }
@keyframes rxFloat { 0%,100%{transform:translateY(0);} 50%{transform:translateY(-10px);} }

.rx-post-card__featured-badge {
  position:absolute; top:14px; left:14px;
  background:linear-gradient(135deg,#FDEF42,#fde047); color:#0f172a;
  padding:5px 12px; border-radius:20px; font-size:.74rem; font-weight:800;
  box-shadow:0 4px 14px rgba(253,239,66,.5); z-index:2;
  animation:rxBadgePulse 2.4s ease-in-out infinite;
}
@keyframes rxBadgePulse { 0%,100%{transform:scale(1);} 50%{transform:scale(1.06);} }
.rx-post-card__cat-badge {
  position:absolute; top:14px; right:14px;
  background:rgba(15,23,42,.85); color:#fff;
  padding:5px 11px; border-radius:20px; font-size:.72rem; font-weight:700;
  backdrop-filter: none; z-index:2;
}

.rx-post-card__body { padding:22px 22px 20px; }
.rx-post-card__meta {
  display:flex; flex-wrap:wrap; gap:12px; font-size:.78rem;
  color:#94a3b8; margin-bottom:12px; font-weight:600;
}
.rx-post-card__title {
  font-family:'Poppins',sans-serif; font-size:1.18rem; line-height:1.32;
  margin:0 0 10px; color:#0f172a; font-weight:700;
  transition:color .25s;
}
.rx-post-card:hover .rx-post-card__title { color:#00853F; }
.rx-post-card__excerpt { color:#64748b; margin:0 0 16px; line-height:1.6; font-size:.92rem; }
.rx-post-card__footer {
  display:flex; justify-content:space-between; align-items:center;
  padding-top:14px; border-top:1px dashed #e2e8f0;
}
.rx-post-card__author { display:flex; align-items:center; gap:8px; font-size:.82rem; color:#64748b; font-weight:600; }
.rx-post-card__avatar { width:28px; height:28px; border-radius:50%; }
.rx-post-card__cta {
  color:#00853F; font-weight:800; font-size:.88rem;
  display:inline-flex; align-items:center; gap:5px;
}
.rx-post-card__arr { transition:transform .3s; display:inline-block; }
.rx-post-card:hover .rx-post-card__arr { transform:translateX(6px); }

/* Empty state */
.rx-blog-empty { text-align:center; padding:80px 20px; }
.rx-blog-empty__icon { font-size:5rem; display:block; margin-bottom:16px; animation:rxFloat 3s ease-in-out infinite; }
.rx-blog-empty h2 { font-family:'Poppins'; color:#0f172a; margin:0 0 8px; }
.rx-blog-empty p { color:#64748b; margin:0 0 24px; }
.rx-blog-empty__cta { display:inline-block; background:#00853F; color:#fff; padding:12px 24px; border-radius:30px; font-weight:700; text-decoration:none; }

/* === PAGINATION === */
.rx-pagination { margin-top:60px; text-align:center; }
.rx-pagination .page-numbers {
  display:inline-block; padding:11px 17px; margin:0 4px;
  background:#fff; border-radius:12px; color:#475569;
  text-decoration:none; font-weight:700; border:1.5px solid #e2e8f0;
  transition:all .25s;
}
.rx-pagination .page-numbers:hover { background:#ecfdf5; color:#00853F; border-color:#a7f3d0; transform:translateY(-2px); }
.rx-pagination .page-numbers.current { background:#00853F; color:#fff; border-color:#00853F; box-shadow:0 6px 16px rgba(0,133,63,.3); }

/* ============================
   SINGLE POST PREMIUM
============================ */
/* ── Hero article : fond clair et propre (plus de noir) ── */
.rx-single-hero {
  position:relative; overflow:hidden; isolation:isolate;
  background: linear-gradient(160deg, #f0fdf4 0%, #ecfdf5 40%, #fff 100%);
  border-bottom: 4px solid transparent;
  border-image: linear-gradient(90deg, #00853F 33.33%, #FDEF42 33.33% 66.66%, #E31B23 66.66%) 1;
  color:#0f172a; padding:52px 20px 44px;
}
.rx-single-hero__bg { display:none; }
.rx-single-hero__inner { max-width:820px; position:relative; z-index:1; }
.rx-single-hero__back {
  display:inline-flex; align-items:center; gap:6px;
  color:#00853F; text-decoration:none;
  font-size:.84rem; font-weight:700; margin-bottom:20px;
  padding:6px 14px; border-radius:20px;
  background:#ecfdf5; border:1px solid #bbf7d0;
  transition:all .2s;
}
.rx-single-hero__back:hover { background:#dcfce7; color:#006830; transform:translateX(-3px); }
.rx-single-hero__cat {
  display:inline-block;
  background:linear-gradient(135deg,#00853F,#006830); color:#fff;
  padding:5px 16px; border-radius:30px; font-size:.78rem; font-weight:800;
  text-decoration:none; margin-bottom:18px; letter-spacing:.02em;
  box-shadow:0 4px 12px rgba(0,133,63,.3);
}
.rx-single-hero__title {
  font-family:'Poppins'; font-weight:900; line-height:1.2;
  font-size:clamp(1.6rem,4.2vw,2.8rem); margin:0 0 20px; color:#0f172a;
}
.rx-single-hero__meta { display:flex; flex-wrap:wrap; gap:12px; align-items:center; font-size:.88rem; color:#64748b; }
.rx-single-hero__author { display:inline-flex; align-items:center; gap:8px; color:#334155; font-weight:600; }
.rx-single-hero__avatar { border-radius:50%; border:2px solid #bbf7d0; }
.rx-single-hero__sep { opacity:.3; color:#94a3b8; }

/* Reading progress bar (haut de page) */
.rx-reading-bar { position:sticky; top:0; left:0; right:0; height:4px; background:transparent; z-index:50; }
.rx-reading-bar__fill { height:100%; background:linear-gradient(90deg,#00853F,#FDEF42,#E31B23); width:0; transition:width .1s; box-shadow:0 0 10px rgba(253,239,66,.5); }

/* Article body */
.rx-single { background:#fff; }
.rx-single__container { max-width:1100px; padding:40px 20px; }
.rx-single__thumb { margin:0 0 36px; border-radius:20px; overflow:hidden; box-shadow:0 12px 36px rgba(15,23,42,.12); }
.rx-single__thumb img { width:100%; height:auto; display:block; }

.rx-single__layout { display:grid; grid-template-columns:60px 1fr; gap:34px; max-width:820px; margin:0 auto; }
@media (max-width:768px){ .rx-single__layout{grid-template-columns:1fr; gap:18px;} }

.rx-single__share {
  display:flex; flex-direction:column; gap:8px; align-items:center;
  position:sticky; top:90px; align-self:start;
}
.rx-single__share strong { font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; color:#64748b; margin-bottom:4px; }
.rx-share {
  display:flex; align-items:center; justify-content:center;
  width:42px; height:42px; border-radius:50%;
  background:#f1f5f9; color:#64748b; text-decoration:none;
  font-weight:800; font-size:1rem; transition:all .25s;
}
.rx-share:hover { transform:translateY(-3px) scale(1.08); color:#fff; }
.rx-share--wa:hover { background:#25d366; }
.rx-share--fb:hover { background:#1877f2; }
.rx-share--tw:hover { background:#000; }
.rx-share--ml:hover { background:#00853F; }
@media (max-width:768px){
  .rx-single__share { flex-direction:row; flex-wrap:wrap; position:static; padding:14px; background:#f8fafc; border-radius:14px; }
}

.rx-single__main { color:#334155; line-height:1.85; font-size:1.05rem; }
.rx-single__main h2 { font-family:'Poppins'; color:#0f172a; margin:1.8em 0 .6em; font-size:1.7rem; line-height:1.25; }
.rx-single__main h3 { font-family:'Poppins'; color:#0f172a; margin:1.4em 0 .5em; font-size:1.3rem; }
.rx-single__main p { margin:0 0 1.2em; }
.rx-single__main a { color:#00853F; font-weight:600; }
.rx-single__main blockquote {
  border-left:4px solid #FDEF42; background:#fffbeb;
  padding:18px 22px; border-radius:8px; margin:1.5em 0;
  color:#854d0e; font-style:italic; font-size:1.08rem;
}
.rx-single__main img { border-radius:12px; margin:1em 0; }
.rx-single__main ul, .rx-single__main ol { padding-left:1.4em; margin:0 0 1.2em; }
.rx-single__main li { margin-bottom:.4em; }

/* Tags */
.rx-single__tags { max-width:820px; margin:30px auto 0; padding:18px 0; border-top:1px dashed #e2e8f0; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.rx-single__tags strong { color:#475569; font-size:.85rem; }
.rx-single__tags a { background:#f1f5f9; color:#475569; padding:5px 12px; border-radius:20px; font-size:.78rem; text-decoration:none; font-weight:600; transition:all .2s; }
.rx-single__tags a:hover { background:#FDEF42; color:#0f172a; }

/* Auteur */
.rx-single__author {
  max-width:820px; margin:30px auto 0; padding:24px;
  background:linear-gradient(135deg,#f0fdf4,#fefce8);
  border-radius:16px; border:1px solid #bbf7d0;
  display:flex; gap:16px; align-items:center;
}
.rx-single__author-avatar { border-radius:50%; flex-shrink:0; box-shadow:0 4px 12px rgba(0,133,63,.2); }
.rx-single__author small { display:block; color:#64748b; font-size:.75rem; text-transform:uppercase; letter-spacing:.05em; font-weight:700; }
.rx-single__author strong { display:block; color:#0f172a; font-family:'Poppins'; font-size:1.1rem; margin:2px 0 4px; }
.rx-single__author p { margin:0; color:#475569; font-size:.9rem; line-height:1.5; }

/* Nav prev/next */
.rx-single__nav { max-width:820px; margin:30px auto 0; display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.rx-single__nav a { display:block; padding:18px; background:#f8fafc; border:1.5px solid #e2e8f0; border-radius:14px; text-decoration:none; transition:all .25s; }
.rx-single__nav a:hover { background:#ecfdf5; border-color:#00853F; transform:translateY(-3px); }
.rx-single__nav a small { display:block; color:#94a3b8; font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; font-weight:700; margin-bottom:5px; }
.rx-single__nav a span { display:block; color:#0f172a; font-weight:700; font-family:'Poppins'; font-size:.95rem; line-height:1.3; }
.rx-single__nav-next { text-align:right; }
@media(max-width:600px){ .rx-single__nav{grid-template-columns:1fr;} .rx-single__nav-next{text-align:left;} }

/* Articles similaires */
.rx-single__related { max-width:1100px; margin:50px auto 0; padding:40px 0 0; border-top:1px solid #e2e8f0; }
.rx-single__related h3 { font-family:'Poppins'; color:#0f172a; font-size:1.5rem; margin:0 0 22px; text-align:center; }
.rx-single__related-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:18px; }
.rx-related-card { background:#fff; border:1px solid #e2e8f0; border-radius:14px; overflow:hidden; text-decoration:none; color:inherit; transition:all .3s; display:block; }
.rx-related-card:hover { transform:translateY(-5px); box-shadow:0 14px 32px rgba(0,133,63,.15); border-color:#a7f3d0; }
.rx-related-card__thumb { height:130px; background:linear-gradient(135deg,#00853F,#FDEF42); display:flex; align-items:center; justify-content:center; overflow:hidden; }
.rx-related-card__thumb img { width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.rx-related-card:hover .rx-related-card__thumb img { transform:scale(1.08); }
.rx-related-card__body { padding:14px; }
.rx-related-card__body small { color:#94a3b8; font-size:.72rem; font-weight:600; }
.rx-related-card__body strong { display:block; color:#0f172a; font-family:'Poppins'; font-size:.95rem; line-height:1.3; margin-top:5px; }

.rx-single__comments { max-width:820px; margin:50px auto 0; padding-top:40px; border-top:1px solid #e2e8f0; }

/* === BREADCRUMBS === */
.rx-breadcrumbs {
  max-width:1200px; margin:0 auto; padding:10px 22px 4px;
  font-family:'Inter',sans-serif; font-size:.83rem; color:#64748b;
  display:flex; flex-wrap:wrap; align-items:center; gap:2px;
}
.rx-breadcrumbs a { color:#00853F; text-decoration:none; font-weight:600; transition:color .2s; }
.rx-breadcrumbs a:hover { color:#006830; text-decoration:underline; }
.rx-bc-sep { color:#cbd5e1; margin:0 5px; font-size:.9em; }
.rx-bc-current { color:#0f172a; font-weight:700; }

/* === LINKEDIN SHARE === */
.rx-share--li:hover { background:#0077b5; }

/* === SINGLE : améliorations classes v2 === */
.rx-single__thumb-caption {
  text-align:center; color:#64748b; font-size:.82rem;
  padding:8px 16px; background:#f8fafc; font-style:italic;
}
.rx-single__share-label {
  font-size:.7rem; text-transform:uppercase; letter-spacing:.08em;
  color:#64748b; margin-bottom:4px; display:block;
}
.rx-single__tags-label { color:#475569; font-size:.85rem; font-weight:700; flex-shrink:0; }
.rx-single__taglist { display:flex; flex-wrap:wrap; gap:7px; }
.rx-tag-pill {
  background:#f1f5f9; color:#475569; padding:5px 12px;
  border-radius:20px; font-size:.78rem; text-decoration:none;
  font-weight:600; transition:all .2s; border:1px solid #e2e8f0;
}
.rx-tag-pill:hover { background:#FDEF42; color:#0f172a; border-color:#FDEF42; }

.rx-single__author-avatar-wrap { flex-shrink:0; }
.rx-single__author-label {
  display:block; color:#64748b; font-size:.75rem;
  text-transform:uppercase; letter-spacing:.05em; font-weight:700;
}
.rx-single__author-name { display:block; color:#0f172a; font-family:'Poppins'; font-size:1.1rem; margin:2px 0 4px; }
.rx-single__author-bio { margin:0; color:#475569; font-size:.9rem; line-height:1.5; }

/* Articles similaires — améliorations */
.rx-single__related-title { font-family:'Poppins'; color:#0f172a; font-size:1.5rem; margin:0 0 22px; text-align:center; }
.rx-related-card__meta {
  display:flex; gap:10px; flex-wrap:wrap;
  color:#94a3b8; font-size:.72rem; font-weight:600; margin-bottom:6px;
}
.rx-related-card__title { display:block; color:#0f172a; font-family:'Poppins'; font-size:.95rem; line-height:1.3; margin:0 0 6px; font-weight:700; }
.rx-related-card__excerpt { color:#64748b; font-size:.82rem; line-height:1.5; margin:0; }
.rx-related-card__ph { font-size:3rem; }

/* === REVEAL ON SCROLL — supprimé ici, consolidé en fin de fichier === */

/* Auto-reveal cards in main lists */
.rx-tools__grid > *, .rx-emplois__list > *, .rx-restos__grid > *,
.rx-stats__grid > *, .rx-posts-grid > * {
  opacity:0; transform:translateY(18px);
  transition:opacity .55s ease, transform .55s cubic-bezier(.34,1.56,.64,1);
}
.rx-tools__grid.rx-in-view > *, .rx-emplois__list.rx-in-view > *,
.rx-restos__grid.rx-in-view > *, .rx-stats__grid.rx-in-view > *,
.rx-posts-grid.rx-in-view > * { opacity:1; transform:translateY(0); }
/* Cascade delays */
.rx-tools__grid.rx-in-view > *:nth-child(1),.rx-emplois__list.rx-in-view > *:nth-child(1),
.rx-restos__grid.rx-in-view > *:nth-child(1),.rx-stats__grid.rx-in-view > *:nth-child(1),
.rx-posts-grid.rx-in-view > *:nth-child(1){transition-delay:.04s}
.rx-tools__grid.rx-in-view > *:nth-child(2),.rx-emplois__list.rx-in-view > *:nth-child(2),
.rx-restos__grid.rx-in-view > *:nth-child(2),.rx-stats__grid.rx-in-view > *:nth-child(2),
.rx-posts-grid.rx-in-view > *:nth-child(2){transition-delay:.1s}
.rx-tools__grid.rx-in-view > *:nth-child(3),.rx-emplois__list.rx-in-view > *:nth-child(3),
.rx-restos__grid.rx-in-view > *:nth-child(3),.rx-stats__grid.rx-in-view > *:nth-child(3),
.rx-posts-grid.rx-in-view > *:nth-child(3){transition-delay:.16s}
.rx-tools__grid.rx-in-view > *:nth-child(4),.rx-emplois__list.rx-in-view > *:nth-child(4),
.rx-restos__grid.rx-in-view > *:nth-child(4),.rx-stats__grid.rx-in-view > *:nth-child(4),
.rx-posts-grid.rx-in-view > *:nth-child(4){transition-delay:.22s}
.rx-tools__grid.rx-in-view > *:nth-child(5),.rx-emplois__list.rx-in-view > *:nth-child(5),
.rx-restos__grid.rx-in-view > *:nth-child(5),.rx-stats__grid.rx-in-view > *:nth-child(5),
.rx-posts-grid.rx-in-view > *:nth-child(5){transition-delay:.28s}
.rx-tools__grid.rx-in-view > *:nth-child(6),.rx-emplois__list.rx-in-view > *:nth-child(6),
.rx-restos__grid.rx-in-view > *:nth-child(6),.rx-stats__grid.rx-in-view > *:nth-child(6),
.rx-posts-grid.rx-in-view > *:nth-child(6){transition-delay:.34s}

/* Section titles bounce in */
.rx-section-title { opacity:0; transform:translateY(20px); transition:opacity .6s, transform .6s cubic-bezier(.34,1.56,.64,1); }
.rx-section-title.rx-revealed { opacity:1; transform:translateY(0); }

/* Footer animation (géré par rx-in-view via JS IntersectionObserver) */


/* === MENU REDESIGN COMPLET v3 === */

/* === BOUTON FERMER (X) en haut à droite du drawer === */
.rx-mm__close {
  position: absolute; top: 18px; right: 18px; z-index: 10;
  width: 46px; height: 46px;
  background: rgba(255,255,255,.08);
  border: 1.5px solid rgba(255,255,255,.18);
  border-radius: 50%; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  backdrop-filter: none; -webkit-backdrop-filter: none;
  transition: all .35s cubic-bezier(.34,1.56,.64,1);
  opacity: 0; transform: scale(.5) rotate(-90deg);
}
.rx-mobile-menu.open .rx-mm__close {
  opacity: 1; transform: scale(1) rotate(0);
  transition-delay: .25s;
}
.rx-mm__close:hover {
  background: rgba(227,27,35,.85);
  border-color: rgba(255,255,255,.4);
  transform: scale(1.08) rotate(90deg);
  box-shadow: 0 6px 22px rgba(227,27,35,.45);
}
.rx-mm__close span {
  position: absolute; width: 20px; height: 2.5px;
  background: #fff; border-radius: 2px;
}
.rx-mm__close span:nth-child(1) { transform: rotate(45deg); }
.rx-mm__close span:nth-child(2) { transform: rotate(-45deg); }

/* === GRAIN OVERLAY subtil pour l'arrière-plan === */
.rx-mm__grain {
  position: absolute; inset: 0;
  background-image: radial-gradient(circle at 25% 30%, rgba(253,239,66,.04) 0%, transparent 35%),
                    radial-gradient(circle at 75% 70%, rgba(0,133,63,.06) 0%, transparent 40%);
  pointer-events: none; opacity: .8;
}

/* === Inner — padding ajusté maintenant qu'on a un X et plus de header === */
.rx-mobile-menu .rx-mm__inner {
  padding: 78px 22px 30px !important;
  gap: 20px !important;
}

/* === BARRE DE RECHERCHE intégrée === */
.rx-mm__search {
  display: flex; align-items: center; gap: 10px;
  background: rgba(255,255,255,.08);
  border: 1.5px solid rgba(255,255,255,.15);
  border-radius: 50px;
  padding: 4px 6px 4px 18px;
  backdrop-filter: none; -webkit-backdrop-filter: none;
  opacity: 0; transform: translateY(-15px);
  transition: opacity .5s ease .15s, transform .5s cubic-bezier(.34,1.56,.64,1) .15s, border-color .25s, background .25s;
}
.rx-mobile-menu.open .rx-mm__search { opacity: 1; transform: translateY(0); }
.rx-mm__search:focus-within {
  background: rgba(255,255,255,.14);
  border-color: rgba(253,239,66,.6);
  box-shadow: 0 0 0 4px rgba(253,239,66,.12);
}
.rx-mm__search-ico { font-size: 1.1rem; opacity: .7; }
.rx-mm__search input {
  flex: 1; min-width: 0; height: 44px;
  background: transparent; border: 0; outline: 0;
  color: #fff; font-size: 1rem; font-family: inherit;
}
.rx-mm__search input::placeholder { color: rgba(255,255,255,.45); }

/* === ÉTIQUETTE "Navigation" === */
.rx-mm__label {
  display: flex; align-items: center; gap: 12px;
  margin: 6px 4px -4px;
  opacity: 0; transform: translateY(-10px);
  transition: opacity .5s ease .25s, transform .5s cubic-bezier(.34,1.56,.64,1) .25s;
}
.rx-mobile-menu.open .rx-mm__label { opacity: 1; transform: translateY(0); }
.rx-mm__label strong {
  color: rgba(255,255,255,.55);
  font-size: .7rem; font-weight: 800;
  letter-spacing: .15em; text-transform: uppercase;
  font-family: 'Poppins', sans-serif;
}
.rx-mm__label span {
  flex: 1; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(253,239,66,.25), transparent);
}

/* === ITEM ACTIF (page courante) — pill colorée === */
.rx-mm__item[data-active="1"] {
  background: linear-gradient(135deg, rgba(253,239,66,.18), rgba(0,133,63,.18)) !important;
  border-color: var(--rx-mm-accent, #FDEF42) !important;
  box-shadow: 0 6px 22px rgba(253,239,66,.18), inset 0 1px 0 rgba(255,255,255,.1);
}
.rx-mm__item[data-active="1"] .rx-mm__icon {
  box-shadow: 0 6px 18px rgba(0,0,0,.3), 0 0 0 3px rgba(253,239,66,.25);
}
.rx-mm__item[data-active="1"]::before { transform: scaleY(1) !important; }

/* === Item — taille & rendu uniformisés === */
.rx-mobile-menu .rx-mm__item {
  padding: 14px 16px !important;
  border-radius: 18px !important;
}
.rx-mobile-menu .rx-mm__item .rx-mm__txt strong {
  font-size: 1.05rem; font-weight: 700;
  letter-spacing: -.01em;
}
.rx-mobile-menu .rx-mm__icon {
  width: 44px !important; height: 44px !important;
  border-radius: 12px !important;
  font-size: 1.35rem !important;
}

/* === CTA Contact — refonte propre === */
.rx-mobile-menu .rx-mm__cta {
  margin-top: 8px !important;
  padding: 16px 24px !important;
  border-radius: 50px !important;
  display: inline-flex !important; align-items: center; justify-content: center;
  gap: 10px;
  background: linear-gradient(135deg, #FDEF42, #fde047) !important;
  color: #0f172a !important;
  font-weight: 800; font-family: 'Poppins', sans-serif;
  font-size: 1rem; letter-spacing: .01em;
  box-shadow: 0 8px 24px rgba(253,239,66,.35), inset 0 1px 0 rgba(255,255,255,.5);
  position: relative; overflow: hidden;
  transition: transform .35s cubic-bezier(.34,1.56,.64,1);
  opacity: 0; transform: translateY(20px) scale(.92);
}
.rx-mobile-menu.open .rx-mm__cta {
  opacity: 1; transform: translateY(0) scale(1);
  transition: opacity .5s ease 1.4s, transform .6s cubic-bezier(.34,1.56,.64,1) 1.4s;
}
.rx-mobile-menu .rx-mm__cta:hover, .rx-mobile-menu .rx-mm__cta:active {
  transform: translateY(-2px) scale(1.03);
  box-shadow: 0 12px 32px rgba(253,239,66,.5);
}
.rx-mm__cta-ico { font-size: 1.2rem; }


/* === FOOTER & PAGES PREMIUM v2 === */


/* ============================================
   FOOTER PREMIUM
============================================ */
.rx-footer {
  position: relative; isolation: isolate; overflow: hidden;
  background: linear-gradient(180deg, #0f172a 0%, #020617 100%);
  color: #fff;
  padding: 70px 0 30px;
  margin-top: 60px;
}
.rx-footer__bg { position: absolute; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.rx-footer__orb { position: absolute; border-radius: 50%; filter: blur(90px); opacity: .15; }
.rx-footer__orb--g { width: 400px; height: 400px; background: #00853F; top: -150px; left: -100px; animation: rxOrbDrift 20s ease-in-out infinite; }
.rx-footer__orb--y { width: 320px; height: 320px; background: #FDEF42; bottom: -100px; right: -80px; animation: rxOrbDrift 24s ease-in-out infinite reverse; }

.rx-footer__inner { position: relative; }
.rx-footer__top {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1fr;
  gap: 40px;
  margin-bottom: 50px;
}
@media (max-width: 900px) { .rx-footer__top { grid-template-columns: 1fr 1fr; gap: 36px; } }
@media (max-width: 540px) { .rx-footer__top { grid-template-columns: 1fr; gap: 32px; } }

/* Brand block */
.rx-footer__logo {
  display: inline-flex; align-items: baseline; gap: 4px;
  text-decoration: none; margin-bottom: 14px;
  font-family: 'Poppins', sans-serif; font-size: 1.7rem; font-weight: 900;
  letter-spacing: -.02em;
}
.rx-footer__logo-rif { color: #00853F; }
.rx-footer__logo-xalima { color: #fff; }
.rx-footer__logo-flag { font-size: 1.4rem; margin-left: 4px; animation: rxFloat 4s ease-in-out infinite; }
.rx-footer__tagline {
  color: rgba(255,255,255,.65); margin: 0 0 18px;
  font-size: .92rem; line-height: 1.65; max-width: 380px;
}
.rx-footer__contact-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.rx-footer__pill {
  display: inline-flex; align-items: center; gap: 6px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.1);
  color: rgba(255,255,255,.75);
  padding: 6px 12px; border-radius: 24px;
  font-size: .8rem; font-weight: 500;
  transition: all .25s;
}
.rx-footer__pill:hover {
  background: rgba(0,133,63,.15);
  border-color: rgba(0,133,63,.4);
  color: #fff;
}
.rx-footer__pill span { font-size: .9rem; }

/* Socials */
.rx-footer__socials { display: flex; gap: 10px; margin-top: 6px; }
.rx-footer__social {
  display: flex; align-items: center; justify-content: center;
  width: 42px; height: 42px;
  border-radius: 12px;
  background: rgba(255,255,255,.06);
  border: 1.5px solid rgba(255,255,255,.1);
  color: #fff; text-decoration: none;
  font-weight: 800; font-size: 1rem;
  transition: all .35s cubic-bezier(.34,1.56,.64,1);
}
.rx-footer__social:hover { transform: translateY(-3px) scale(1.08); color: #fff; }
.rx-footer__social--fb:hover { background: #1877f2; border-color: #1877f2; box-shadow: 0 8px 20px rgba(24,119,242,.4); }
.rx-footer__social--tw:hover { background: #000; border-color: #000; box-shadow: 0 8px 20px rgba(0,0,0,.5); }
.rx-footer__social--ig:hover { background: linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888); border-color: transparent; box-shadow: 0 8px 20px rgba(220,39,67,.4); }
.rx-footer__social--wa:hover { background: #25d366; border-color: #25d366; box-shadow: 0 8px 20px rgba(37,211,102,.4); }
.rx-footer__social--ml:hover { background: #00853F; border-color: #00853F; box-shadow: 0 8px 20px rgba(0,133,63,.4); }

/* Colonnes */
.rx-footer__col h4 {
  font-family: 'Poppins', sans-serif;
  font-size: 1.05rem; font-weight: 700;
  color: #fff; margin: 0 0 18px;
  display: flex; align-items: center; gap: 8px;
  position: relative; padding-bottom: 14px;
}
.rx-footer__col h4::after {
  content: ""; position: absolute; left: 0; bottom: 0;
  width: 30px; height: 3px; border-radius: 2px;
  background: linear-gradient(90deg, #00853F, #FDEF42, #E31B23);
}
.rx-footer__h-ico {
  display: inline-flex; align-items: center; justify-content: center;
  width: 28px; height: 28px;
  background: linear-gradient(135deg, rgba(0,133,63,.2), rgba(253,239,66,.15));
  border-radius: 8px; font-size: .9rem;
}

.rx-footer__links, .rx-footer__col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 9px; }
.rx-footer__links li, .rx-footer__col li { list-style: none; }
.rx-footer__links li::before, .rx-footer__col li::before { content: none !important; }
.rx-footer__links a, .rx-footer__col a {
  display: inline-flex; align-items: center; gap: 8px;
  color: rgba(255,255,255,.65); text-decoration: none;
  font-size: .9rem; font-weight: 500;
  padding: 5px 10px 5px 0;
  border-radius: 8px;
  transition: all .25s ease;
  position: relative;
}
.rx-footer__links a span, .rx-footer__col a span {
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 26px;
  background: rgba(255,255,255,.05);
  border-radius: 7px;
  font-size: .85rem;
  transition: all .3s;
}
.rx-footer__links a:hover, .rx-footer__col a:hover {
  color: #FDEF42;
  transform: translateX(6px);
}
.rx-footer__links a:hover span, .rx-footer__col a:hover span {
  background: rgba(253,239,66,.2);
  transform: scale(1.15) rotate(-5deg);
}

/* Drapeau tricolore SN */
.rx-footer__flag {
  display: flex; gap: 6px; justify-content: center;
  margin: 20px 0 24px;
}
.rx-footer__flag span {
  height: 4px; width: 60px; border-radius: 3px;
  animation: rxFlagPulse 3s ease-in-out infinite;
}
.rx-footer__flag span:nth-child(1) { background: #00853F; }
.rx-footer__flag span:nth-child(2) { background: #FDEF42; animation-delay: .3s; }
.rx-footer__flag span:nth-child(3) { background: #E31B23; animation-delay: .6s; }
@keyframes rxFlagPulse { 0%,100% { opacity: .8; transform: scaleX(1); } 50% { opacity: 1; transform: scaleX(1.05); } }

/* Bottom bar */
.rx-footer__bottom {
  display: flex; flex-wrap: wrap; gap: 16px;
  justify-content: space-between; align-items: center;
  padding-top: 22px;
  border-top: 1px solid rgba(255,255,255,.06);
}
.rx-footer__bottom p { margin: 0; color: rgba(255,255,255,.45); font-size: .85rem; }
.rx-footer__bottom strong { color: rgba(255,255,255,.7); }
.rx-footer__heart { display: inline-flex; align-items: center; gap: 4px; }
.rx-footer__heart span { display: inline-block; }
.rx-footer__heart span:first-child { animation: rxBeat 1.4s ease-in-out infinite; }
@keyframes rxBeat { 0%,100% { transform: scale(1); } 25% { transform: scale(1.25); } 50% { transform: scale(1); } 75% { transform: scale(1.15); } }

/* ============================================
   PAGE TEMPLATE PREMIUM (page.php)
============================================ */
.rx-page-hero {
  position: relative; isolation: isolate; overflow: hidden;
  background: linear-gradient(135deg, #0f172a 0%, #064e3b 60%, #00853F 100%);
  color: #fff;
  padding: 70px 20px 56px;
}
.rx-page-hero__bg { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.rx-page-hero__orb { position: absolute; border-radius: 50%; filter: blur(80px); opacity: .4; }
.rx-page-hero__orb--g { width: 320px; height: 320px; background: #22c55e; top: -100px; right: -80px; animation: rxOrbDrift 16s ease-in-out infinite; }
.rx-page-hero__orb--y { width: 240px; height: 240px; background: #FDEF42; bottom: -80px; left: 8%; animation: rxOrbDrift 19s ease-in-out infinite reverse; }
.rx-page-hero__inner { max-width: 880px; }
.rx-page-hero__back {
  display: inline-block; color: rgba(255,255,255,.7); text-decoration: none;
  font-size: .85rem; font-weight: 600; margin-bottom: 16px;
  transition: color .25s;
}
.rx-page-hero__back:hover { color: #FDEF42; }
.rx-page-hero__badge {
  display: inline-block;
  background: rgba(253,239,66,.18); color: #FDEF42;
  padding: 5px 14px; border-radius: 30px;
  font-size: .76rem; font-weight: 700;
  border: 1.5px solid rgba(253,239,66,.35);
  margin-bottom: 14px;
  text-transform: uppercase; letter-spacing: .08em;
}
.rx-page-hero__title {
  font-family: 'Poppins', sans-serif;
  font-size: clamp(1.7rem, 4.2vw, 2.8rem);
  font-weight: 900; line-height: 1.15;
  margin: 0 0 14px;
}
.rx-page-hero__sub {
  color: rgba(255,255,255,.85); margin: 0;
  font-size: 1.05rem; line-height: 1.6; max-width: 720px;
}

.rx-page-section { padding: 50px 20px 30px; background: linear-gradient(180deg, #f8fafc 0%, #fff 100%); }
.rx-page-section__inner { max-width: 880px; margin: 0 auto; }

.rx-page-content {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 22px;
  padding: 44px 40px;
  box-shadow: 0 6px 28px rgba(15,23,42,.06);
  color: #334155; line-height: 1.85; font-size: 1.02rem;
  position: relative;
}
.rx-page-content::before {
  content: ""; position: absolute; top: 0; left: 30px; right: 30px; height: 4px;
  background: linear-gradient(90deg, #00853F, #FDEF42, #E31B23);
  border-radius: 0 0 4px 4px;
}
.rx-page-content h2 {
  font-family: 'Poppins', sans-serif; color: #0f172a;
  font-size: 1.6rem; font-weight: 800;
  margin: 1.6em 0 .5em; padding-bottom: 8px;
  border-bottom: 2px dashed #ecfdf5;
}
.rx-page-content h3 {
  font-family: 'Poppins', sans-serif; color: #00853F;
  font-size: 1.25rem; font-weight: 700;
  margin: 1.3em 0 .5em;
}
.rx-page-content p { margin: 0 0 1.1em; }
.rx-page-content a { color: #00853F; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1.5px; }
.rx-page-content a:hover { color: #006830; text-decoration-color: #FDEF42; }
.rx-page-content ul, .rx-page-content ol { padding-left: 1.4em; margin: 0 0 1.2em; }
.rx-page-content li { margin-bottom: .4em; }
.rx-page-content blockquote {
  border-left: 4px solid #FDEF42; background: #fffbeb;
  padding: 18px 22px; border-radius: 8px; margin: 1.5em 0;
  color: #854d0e; font-style: italic;
}
.rx-page-content hr { border: none; border-top: 1px dashed #e2e8f0; margin: 2em 0; }
.rx-page-content img { border-radius: 12px; margin: 1em 0; max-width: 100%; height: auto; }
.rx-page-content strong { color: #0f172a; }
.rx-page-comments { margin-top: 32px; padding: 24px; background: #fff; border-radius: 14px; border: 1px solid #e2e8f0; }
@media (max-width: 640px) { .rx-page-content { padding: 26px 20px; border-radius: 16px; } }

/* ============================================
   404 PREMIUM
============================================ */
.rx-404 {
  position: relative; isolation: isolate; overflow: hidden;
  background: linear-gradient(135deg, #0f172a 0%, #1e293b 50%, #064e3b 100%);
  color: #fff;
  min-height: calc(100vh - 200px);
  padding: 80px 20px 100px;
  display: flex; align-items: center; justify-content: center;
}
.rx-404__bg { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.rx-404__orb { position: absolute; border-radius: 50%; filter: blur(90px); opacity: .35; }
.rx-404__orb--g { width: 380px; height: 380px; background: #22c55e; top: -120px; right: -100px; animation: rxOrbDrift 14s ease-in-out infinite; }
.rx-404__orb--y { width: 280px; height: 280px; background: #FDEF42; bottom: -80px; left: 8%; animation: rxOrbDrift 18s ease-in-out infinite reverse; }
.rx-404__orb--r { width: 240px; height: 240px; background: #E31B23; top: 30%; right: 30%; animation: rxOrbDrift 22s ease-in-out infinite 4s; }
.rx-404__inner { text-align: center; max-width: 720px; }
.rx-404__big {
  display: flex; align-items: center; justify-content: center; gap: 14px;
  font-family: 'Poppins', sans-serif;
  font-size: clamp(5rem, 18vw, 11rem);
  font-weight: 900; line-height: 1;
  margin-bottom: 12px;
}
.rx-404__digit {
  background: linear-gradient(135deg, #FDEF42, #fde047);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 8px 24px rgba(253,239,66,.4));
  animation: rx404Bounce 3s ease-in-out infinite;
}
.rx-404__digit:nth-child(3) { animation-delay: .3s; }
@keyframes rx404Bounce { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }
.rx-404__flag { font-size: .8em; animation: rxFloat 3s ease-in-out infinite; }

.rx-404__title {
  font-family: 'Poppins', sans-serif;
  font-size: clamp(1.6rem, 3.5vw, 2.2rem);
  font-weight: 800; margin: 0 0 14px;
}
.rx-404__sub { color: rgba(255,255,255,.75); font-size: 1rem; margin: 0 auto 32px; max-width: 540px; line-height: 1.6; }

.rx-404__actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-bottom: 40px; }
.rx-404__btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 26px; border-radius: 50px;
  font-family: 'Poppins', sans-serif; font-weight: 700; font-size: .95rem;
  text-decoration: none;
  transition: all .35s cubic-bezier(.34,1.56,.64,1);
}
.rx-404__btn--primary {
  background: linear-gradient(135deg, #FDEF42, #fde047); color: #0f172a;
  box-shadow: 0 8px 24px rgba(253,239,66,.4);
}
.rx-404__btn--primary:hover { transform: translateY(-3px) scale(1.05); box-shadow: 0 12px 32px rgba(253,239,66,.55); }
.rx-404__btn--ghost {
  background: rgba(255,255,255,.08); color: #fff;
  border: 1.5px solid rgba(255,255,255,.2);
}
.rx-404__btn--ghost:hover { background: rgba(255,255,255,.15); transform: translateY(-3px); border-color: #FDEF42; }

.rx-404__suggestions { margin-bottom: 36px; }
.rx-404__suggestions strong {
  display: block; color: rgba(255,255,255,.6);
  font-size: .8rem; text-transform: uppercase; letter-spacing: .1em;
  margin-bottom: 14px; font-weight: 700;
}
.rx-404__chips { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.rx-404__chip {
  display: inline-flex; align-items: center; gap: 6px;
  background: rgba(255,255,255,.06); color: #fff;
  border: 1.5px solid rgba(255,255,255,.12);
  padding: 9px 16px; border-radius: 30px;
  font-size: .88rem; font-weight: 600;
  text-decoration: none;
  backdrop-filter: none;
  transition: all .3s;
}
.rx-404__chip:hover {
  background: rgba(253,239,66,.18);
  border-color: #FDEF42; color: #FDEF42;
  transform: translateY(-2px) scale(1.05);
}

.rx-404__search {
  display: flex; align-items: center; gap: 8px;
  background: #fff; border-radius: 50px;
  padding: 6px 6px 6px 18px; max-width: 460px; margin: 0 auto;
  box-shadow: 0 14px 40px rgba(0,0,0,.3);
}
.rx-404__search > span { font-size: 1.1rem; }
.rx-404__search input {
  flex: 1; min-width: 0; height: 46px;
  border: 0; outline: 0; background: transparent;
  color: #0f172a; font-size: .95rem;
}
.rx-404__search input::placeholder { color: #94a3b8; }
.rx-404__search button {
  background: #00853F; color: #fff; border: 0;
  padding: 0 22px; height: 46px; border-radius: 50px;
  font-weight: 700; font-family: 'Poppins', sans-serif; font-size: .9rem;
  cursor: pointer; transition: all .3s;
}
.rx-404__search button:hover { background: #006830; transform: translateX(2px); }


/* === FOOTER ANIM v3 + DROPDOWN SMOOTHING === */

/* ============================================
   FOOTER ENTRY ANIMATION (au scroll)
============================================ */
.rx-footer { opacity: 0; transform: translateY(40px); transition: opacity .9s ease, transform .9s cubic-bezier(.22,1,.36,1); }
.rx-footer.rx-in-view, .rx-footer.is-visible { opacity: 1; transform: translateY(0); }

.rx-footer__brand,
.rx-footer__col {
  opacity: 0; transform: translateY(28px);
  transition: opacity .7s ease, transform .7s cubic-bezier(.22,1,.36,1);
}
.rx-footer.rx-in-view .rx-footer__brand,
.rx-footer.is-visible .rx-footer__brand { opacity: 1; transform: translateY(0); transition-delay: .1s; }
.rx-footer.rx-in-view .rx-footer__col:nth-child(2),
.rx-footer.is-visible .rx-footer__col:nth-child(2) { opacity: 1; transform: translateY(0); transition-delay: .25s; }
.rx-footer.rx-in-view .rx-footer__col:nth-child(3),
.rx-footer.is-visible .rx-footer__col:nth-child(3) { opacity: 1; transform: translateY(0); transition-delay: .4s; }
.rx-footer.rx-in-view .rx-footer__col:nth-child(4),
.rx-footer.is-visible .rx-footer__col:nth-child(4) { opacity: 1; transform: translateY(0); transition-delay: .55s; }

/* Logo bondit légèrement */
.rx-footer.rx-in-view .rx-footer__logo,
.rx-footer.is-visible .rx-footer__logo {
  animation: rxFooterLogoIn .9s cubic-bezier(.34,1.56,.64,1) .3s both;
}
@keyframes rxFooterLogoIn {
  0% { opacity: 0; transform: translateY(-15px) scale(.85); }
  60% { transform: translateY(2px) scale(1.05); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}

/* Liens : arrivée en cascade */
.rx-footer__links li {
  opacity: 0; transform: translateX(-12px);
  transition: opacity .5s ease, transform .5s ease;
}
.rx-footer.rx-in-view .rx-footer__links li,
.rx-footer.is-visible .rx-footer__links li { opacity: 1; transform: translateX(0); }
.rx-footer.rx-in-view .rx-footer__links li:nth-child(1) { transition-delay: .5s; }
.rx-footer.rx-in-view .rx-footer__links li:nth-child(2) { transition-delay: .58s; }
.rx-footer.rx-in-view .rx-footer__links li:nth-child(3) { transition-delay: .66s; }
.rx-footer.rx-in-view .rx-footer__links li:nth-child(4) { transition-delay: .74s; }
.rx-footer.rx-in-view .rx-footer__links li:nth-child(5) { transition-delay: .82s; }

/* Réseaux : pop-in */
.rx-footer__social {
  opacity: 0; transform: scale(.6) rotate(-15deg);
  transition: opacity .55s ease, transform .55s cubic-bezier(.34,1.56,.64,1);
}
.rx-footer.rx-in-view .rx-footer__social,
.rx-footer.is-visible .rx-footer__social { opacity: 1; transform: scale(1) rotate(0); }
.rx-footer.rx-in-view .rx-footer__social:nth-child(1) { transition-delay: .65s; }
.rx-footer.rx-in-view .rx-footer__social:nth-child(2) { transition-delay: .73s; }
.rx-footer.rx-in-view .rx-footer__social:nth-child(3) { transition-delay: .81s; }
.rx-footer.rx-in-view .rx-footer__social:nth-child(4) { transition-delay: .89s; }
.rx-footer.rx-in-view .rx-footer__social:nth-child(5) { transition-delay: .97s; }

/* Drapeau : étirement progressif */
.rx-footer__flag span { transform-origin: left; transform: scaleX(0); opacity: 0; transition: transform .8s cubic-bezier(.22,1,.36,1), opacity .4s ease; }
.rx-footer.rx-in-view .rx-footer__flag span,
.rx-footer.is-visible .rx-footer__flag span { transform: scaleX(1); opacity: 1; }
.rx-footer.rx-in-view .rx-footer__flag span:nth-child(1) { transition-delay: 1.05s; }
.rx-footer.rx-in-view .rx-footer__flag span:nth-child(2) { transition-delay: 1.2s; }
.rx-footer.rx-in-view .rx-footer__flag span:nth-child(3) { transition-delay: 1.35s; }

/* Orbes : drift continu plus prononcé */
.rx-footer__orb--g { animation: rxFooterDrift1 16s ease-in-out infinite !important; }
.rx-footer__orb--y { animation: rxFooterDrift2 22s ease-in-out infinite !important; }
@keyframes rxFooterDrift1 {
  0%,100% { transform: translate(0,0) scale(1); opacity: .12; }
  50% { transform: translate(60px, 30px) scale(1.2); opacity: .22; }
}
@keyframes rxFooterDrift2 {
  0%,100% { transform: translate(0,0) scale(1); opacity: .12; }
  50% { transform: translate(-50px, -40px) scale(1.15); opacity: .2; }
}

/* Liens : effet glow doré au hover */
.rx-footer__links a:hover { text-shadow: 0 0 12px rgba(253,239,66,.4); }

/* Pills contact : shimmer */
.rx-footer__pill { position: relative; overflow: hidden; }
.rx-footer__pill::before {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(110deg, transparent 30%, rgba(253,239,66,.25) 50%, transparent 70%);
  transform: translateX(-120%); transition: transform .9s ease;
}
.rx-footer__pill:hover::before { transform: translateX(120%); }

/* ============================================
   DROPDOWN / SELECT TEXT — anti-flou
============================================ */
#esn-wrap select, #rsn-wrap select, #ann-wrap select, #gco-wrap select,
.esn-filters select, .rsn-filters select, .ann-filters select, .gco-filters select,
.esn-sort select {
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
  text-rendering: optimizeLegibility !important;
  font-synthesis: none !important;
  letter-spacing: 0 !important;
  transform: translateZ(0);
  backface-visibility: hidden;
  filter: none !important;
  text-shadow: none !important;
}
#esn-wrap select option, #rsn-wrap select option,
#ann-wrap select option, #gco-wrap select option {
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
  text-rendering: optimizeLegibility !important;
  text-shadow: none !important;
  filter: none !important;
}

/* Le parent ne doit PAS appliquer de filter/transform/backdrop-filter
   qui floutent le rendu natif du dropdown */
.esn-filters, .rsn-filters, .ann-filters, .gco-filters {
  filter: none !important;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  transform: none !important;
}


/* === DARK MODE + DROPDOWN + FOOTER ANIM v5 (fix) === */

/* ============================================
   1. DROPDOWN — Solide & lisible (PAS de blur sur les selects)
============================================ */
#esn-wrap select, #rsn-wrap select, #ann-wrap select, #gco-wrap select,
.esn-filters select, .rsn-filters select, .ann-filters select, .gco-filters select {
  background-color: #ffffff !important;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='%2300853F'><path d='M6 8L0 0h12z'/></svg>") !important;
  background-repeat: no-repeat !important;
  background-position: right 12px center !important;
  background-size: 11px !important;
  color: #0f172a !important;
  border: 1.5px solid #cbd5e1 !important;
  box-shadow: 0 2px 6px rgba(15,23,42,.06) !important;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  font-weight: 600 !important;
  -webkit-font-smoothing: antialiased !important;
  text-rendering: optimizeLegibility !important;
}
#esn-wrap select:hover, #rsn-wrap select:hover, #ann-wrap select:hover, #gco-wrap select:hover,
.esn-filters select:hover, .rsn-filters select:hover, .ann-filters select:hover, .gco-filters select:hover {
  border-color: #00853F !important;
  box-shadow: 0 4px 12px rgba(0,133,63,.15) !important;
}
#esn-wrap select:focus, #rsn-wrap select:focus, #ann-wrap select:focus, #gco-wrap select:focus,
.esn-filters select:focus, .rsn-filters select:focus, .ann-filters select:focus, .gco-filters select:focus {
  border-color: #00853F !important;
  box-shadow: 0 0 0 3px rgba(0,133,63,.2) !important;
  outline: none !important;
}

/* ============================================
   2. DARK MODE — Variables + ciblage chirurgical
============================================ */
:root {
  --rx-bg: #ffffff;
  --rx-bg-soft: #f8fafc;
  --rx-text: #0f172a;
  --rx-text-soft: #475569;
  --rx-border: #e2e8f0;
  --rx-card: #ffffff;
}

html.rx-dark {
  color-scheme: dark;
  --rx-bg: #0b1220;
  --rx-bg-soft: #111827;
  --rx-text: #e2e8f0;
  --rx-text-soft: #94a3b8;
  --rx-border: #1f2937;
  --rx-card: #111827;
}
html.rx-dark body { background: #0b1220 !important; color: #e2e8f0; }

/* Header */
html.rx-dark .rx-header { background: rgba(11,18,32,.9) !important; border-bottom-color: #1f2937 !important; }
html.rx-dark .rx-nav a:not(.rx-nav__contact) { color: #e2e8f0 !important; }

/* Pages, articles, sections */
html.rx-dark .rx-page-section,
html.rx-dark .rx-section,
html.rx-dark main,
html.rx-dark #main,
html.rx-dark #page { background: #0b1220 !important; }
html.rx-dark .rx-page-content,
html.rx-dark article.rx-page-content,
html.rx-dark .rx-page-comments {
  background: #111827 !important;
  border-color: #1f2937 !important;
  color: #cbd5e1 !important;
}
html.rx-dark .rx-page-content h1,
html.rx-dark .rx-page-content h2,
html.rx-dark .rx-page-content h4,
html.rx-dark .rx-page-content strong { color: #f1f5f9 !important; border-color: #1f2937 !important; }
html.rx-dark .rx-page-content h3 { color: #4ade80 !important; }
html.rx-dark .rx-page-content p,
html.rx-dark .rx-page-content li { color: #cbd5e1 !important; }
html.rx-dark .rx-page-content a { color: #4ade80 !important; }
html.rx-dark .rx-page-content blockquote { background: #1f2937 !important; color: #fde68a !important; border-left-color: #FDEF42 !important; }

/* Plugins wrappers */
html.rx-dark #esn-wrap, html.rx-dark #rsn-wrap,
html.rx-dark #ann-wrap, html.rx-dark #gco-wrap { background: #0b1220 !important; color: #e2e8f0; }

/* Cards plugins */
html.rx-dark .esn-card, html.rx-dark .rsn-card,
html.rx-dark .ann-card, html.rx-dark .gco-card,
html.rx-dark .esn-modal, html.rx-dark .esn-empty, html.rx-dark .esn-meta-bar,
html.rx-dark .esn-filters, html.rx-dark .rsn-filters,
html.rx-dark .ann-filters, html.rx-dark .gco-filters,
html.rx-dark .esn-pagination button, html.rx-dark .esn-sort,
html.rx-dark .ann-tabs, html.rx-dark .ann-region {
  background: #111827 !important;
  border-color: #1f2937 !important;
  color: #e2e8f0 !important;
}
html.rx-dark .esn-card h3, html.rx-dark .rsn-card h3,
html.rx-dark .ann-card h3, html.rx-dark .gco-card h3 { color: #f1f5f9 !important; }
html.rx-dark .esn-card p, html.rx-dark .rsn-card p,
html.rx-dark .ann-card p, html.rx-dark .gco-card p,
html.rx-dark .esn-meta, html.rx-dark .rsn-meta { color: #94a3b8 !important; }

/* Inputs/selects en mode sombre */
html.rx-dark #esn-wrap select, html.rx-dark #rsn-wrap select,
html.rx-dark #ann-wrap select, html.rx-dark #gco-wrap select,
html.rx-dark .esn-filters select, html.rx-dark .rsn-filters select,
html.rx-dark .ann-filters select, html.rx-dark .gco-filters select,
html.rx-dark #esn-wrap input, html.rx-dark #rsn-wrap input,
html.rx-dark #ann-wrap input, html.rx-dark #gco-wrap input,
html.rx-dark .esn-filters input, html.rx-dark .rsn-filters input,
html.rx-dark .ann-filters input, html.rx-dark .gco-filters input {
  background-color: #1f2937 !important;
  color: #e2e8f0 !important;
  border-color: #334155 !important;
}
html.rx-dark #esn-wrap select option, html.rx-dark #rsn-wrap select option,
html.rx-dark #ann-wrap select option, html.rx-dark #gco-wrap select option {
  background-color: #111827 !important;
  color: #e2e8f0 !important;
}
html.rx-dark #esn-wrap input::placeholder, html.rx-dark #rsn-wrap input::placeholder,
html.rx-dark #ann-wrap input::placeholder, html.rx-dark #gco-wrap input::placeholder { color: #64748b !important; }

/* Chips & boutons en mode sombre */
html.rx-dark .rsn-chip, html.rx-dark .ann-chip, html.rx-dark .gco-chip {
  background: #1f2937 !important; color: #cbd5e1 !important; border-color: #334155 !important;
}
html.rx-dark .rsn-chip.active, html.rx-dark .ann-chip.active, html.rx-dark .gco-chip.active {
  background: #00853F !important; color: #fff !important; border-color: #00853F !important;
}
html.rx-dark .ann-tab { color: #94a3b8 !important; }
html.rx-dark .ann-tab.active { color: #4ade80 !important; border-bottom-color: #4ade80 !important; }

/* Liens génériques */
html.rx-dark a { color: #86efac; }

/* ============================================
   3. TOGGLE BUTTON — Visible & propre
============================================ */
.rx-theme-toggle {
  position: relative;
  width: 60px; height: 30px;
  border: 1.5px solid rgba(0,133,63,.4);
  border-radius: 50px;
  background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
  cursor: pointer;
  display: inline-flex !important;
  align-items: center;
  justify-content: space-between;
  padding: 0 8px;
  margin: 0 8px;
  transition: all .35s cubic-bezier(.34,1.56,.64,1);
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(253,239,66,.3), inset 0 0 0 1px rgba(255,255,255,.6);
  -webkit-appearance: none; appearance: none;
  font-family: inherit;
  vertical-align: middle;
}
.rx-theme-toggle__sun, .rx-theme-toggle__moon {
  font-size: 12px; line-height: 1;
  position: relative; z-index: 2;
  pointer-events: none;
  transition: opacity .3s ease, transform .3s ease;
}
.rx-theme-toggle__pill {
  position: absolute;
  top: 2px; left: 2px;
  width: 24px; height: 24px;
  background: #ffffff;
  border-radius: 50%;
  z-index: 1;
  pointer-events: none;
  box-shadow: 0 2px 6px rgba(0,0,0,.25);
  transition: transform .4s cubic-bezier(.68,-.4,.27,1.4), background .3s;
}
html.rx-dark .rx-theme-toggle {
  background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
  border-color: rgba(253,239,66,.5);
  box-shadow: 0 2px 8px rgba(0,0,0,.5), inset 0 0 0 1px rgba(255,255,255,.05);
}
html.rx-dark .rx-theme-toggle__pill {
  transform: translateX(28px);
  background: linear-gradient(135deg, #FDEF42, #fbbf24);
}
html.rx-dark .rx-theme-toggle__sun { opacity: .25; transform: scale(.7); }
html:not(.rx-dark) .rx-theme-toggle__moon { opacity: .25; transform: scale(.7); }
.rx-theme-toggle:hover { transform: scale(1.06); }
.rx-theme-toggle:active { transform: scale(.94); }

/* Mobile : reste visible */
@media (max-width: 900px) {
  .rx-theme-toggle { width: 52px; height: 28px; padding: 0 6px; margin: 0 4px; }
  .rx-theme-toggle__pill { width: 22px; height: 22px; }
  html.rx-dark .rx-theme-toggle__pill { transform: translateX(24px); }
}

/* ============================================
   4. FOOTER — Animation couleur (sans casser le contenu)
============================================ */
.rx-footer {
  background: linear-gradient(135deg, #0f172a 0%, #064e3b 25%, #1e1b4b 50%, #064e3b 75%, #0f172a 100%) !important;
  background-size: 300% 300% !important;
  animation: rxFooterColorShift 18s ease infinite !important;
  position: relative;
}
@keyframes rxFooterColorShift {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
.rx-footer::before {
  content: ""; position: absolute;
  top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, #00853F 0%, #22c55e 15%, #FDEF42 30%, #fbbf24 50%, #E31B23 70%, #ec4899 85%, #00853F 100%);
  background-size: 200% 100%;
  animation: rxFooterAurora 6s linear infinite;
  pointer-events: none;
  z-index: 1;
}
@keyframes rxFooterAurora {
  0% { background-position: 0% 0; }
  100% { background-position: 200% 0; }
}
.rx-footer__logo-rif {
  animation: rxLogoColorCycle 8s ease-in-out infinite;
}
@keyframes rxLogoColorCycle {
  0%,100% { color: #4ade80; text-shadow: 0 0 18px rgba(74,222,128,.5); }
  33%     { color: #FDEF42; text-shadow: 0 0 18px rgba(253,239,66,.5); }
  66%     { color: #fb7185; text-shadow: 0 0 18px rgba(251,113,133,.5); }
}


/* === SAFETY : aucun blur/backdrop NULLE PART (perf + compatibilité) === */
*, *::before, *::after { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
/* Orbes : filtre désactivé pour perf mobile — opacité réduite */
.rx-orb, .rx-mm__orb, .rx-blog-hero__orb, .rx-single-hero__orb,
.rx-footer__orb, .rx-page-hero__orb, .rx-404__orb, .rx2-hero__orb {
  filter: none !important;
  opacity: 0.12 !important;
  will-change: auto;
}
/* Animations lourdes : uniquement pour les éléments hors viewport initial */
.rx-hero__orbs, .rx-hero__floats { contain: layout style; }


/* === SCROLL TO TOP + MOBILE PLUGINS POLISH v6 === */

/* ============================================
   1. SCROLL TO TOP — Bouton flottant avec anneau de progression
============================================ */
.rx-scrolltop {
  position: fixed;
  right: 18px;
  bottom: 18px;
  width: 54px; height: 54px;
  border: none;
  border-radius: 50%;
  background: linear-gradient(135deg, #00853F 0%, #047857 100%);
  color: #fff;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  z-index: 9998;
  opacity: 0;
  visibility: hidden;
  transform: translateY(24px) scale(.85);
  transition: opacity .35s ease, transform .35s cubic-bezier(.34,1.56,.64,1), visibility .35s, box-shadow .25s;
  box-shadow: 0 10px 28px rgba(0,133,63,.45), 0 2px 6px rgba(0,0,0,.15);
  -webkit-tap-highlight-color: transparent;
}
.rx-scrolltop.is-visible { opacity: 1; visibility: visible; transform: translateY(0) scale(1); }
.rx-scrolltop:hover { transform: translateY(-3px) scale(1.06); box-shadow: 0 14px 36px rgba(0,133,63,.55); }
.rx-scrolltop:active { transform: scale(.94); }
.rx-scrolltop svg { position: relative; z-index: 2; }
.rx-scrolltop__ring {
  position: absolute; inset: -4px;
  border-radius: 50%;
  background: conic-gradient(#FDEF42 var(--rx-scroll-pct, 0%), rgba(255,255,255,.2) var(--rx-scroll-pct, 0%));
  z-index: 1;
  -webkit-mask: radial-gradient(circle, transparent 56%, #000 58%);
          mask: radial-gradient(circle, transparent 56%, #000 58%);
  pointer-events: none;
}
@media (max-width: 600px) {
  .rx-scrolltop { width: 48px; height: 48px; right: 14px; bottom: 14px; }
  .rx-scrolltop svg { width: 18px; height: 18px; }
}
html.rx-dark .rx-scrolltop {
  background: linear-gradient(135deg, #FDEF42 0%, #fbbf24 100%);
  color: #0f172a;
  box-shadow: 0 10px 28px rgba(253,239,66,.4);
}

/* ============================================
   2. OUTILS — Polish mobile (Emploi / Resto / CAMES / Concours)
============================================ */
@media (max-width: 768px) {
  /* Wrappers : padding doux pour respirer */
  #esn-wrap, #rsn-wrap, #ann-wrap, #gco-wrap {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  /* Cartes : layout flex vertical, plus aérées */
  .esn-card, .rsn-card, .ann-card, .gco-card {
    padding: 18px !important;
    border-radius: 16px !important;
    margin-bottom: 14px !important;
    box-shadow: 0 4px 14px rgba(15,23,42,.06) !important;
  }
  .esn-card h3, .rsn-card h3, .ann-card h3, .gco-card h3 {
    font-size: 1.05rem !important;
    line-height: 1.35 !important;
    margin-bottom: 8px !important;
  }
  .esn-card .esn-meta, .rsn-card .rsn-meta {
    font-size: .82rem !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
  }
  .esn-card p, .rsn-card p, .ann-card p, .gco-card p {
    font-size: .9rem !important;
    line-height: 1.55 !important;
  }

  /* Boutons d'action : touch targets confortables */
  .esn-card button, .esn-card a.btn,
  .rsn-card button, .rsn-card a.btn,
  .ann-card button, .ann-card a.btn,
  .gco-card button, .gco-card a.btn {
    min-height: 44px !important;
    padding: 11px 18px !important;
    font-size: .92rem !important;
    border-radius: 10px !important;
    width: 100%;
    margin-top: 4px;
  }

  /* Filtres : grille 1 col + tap target large */
  .esn-filters, .rsn-filters, .ann-filters, .gco-filters {
    padding: 12px !important;
    gap: 10px !important;
    border-radius: 14px !important;
  }

  /* Headers / hero plugins : moins haut */
  .esn-page-hero, .rsn-page-hero, .ann-page-hero, .gco-page-hero {
    padding: 36px 16px 28px !important;
  }

  /* Titres hero plugins */
  .esn-page-hero h1, .rsn-page-hero h1,
  .ann-page-hero h1, .gco-page-hero h1 {
    font-size: 1.5rem !important;
    line-height: 1.2 !important;
  }

  /* Grilles : 1 colonne pour la lisibilité */
  .esn-grid, .rsn-grid, .ann-grid, .gco-grid,
  .esn-list, .rsn-list, .ann-list, .gco-list {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  /* Modal Emploi : pleine largeur, scrollable */
  .esn-modal {
    max-width: 100% !important;
    border-radius: 14px !important;
    margin: 8px !important;
    max-height: calc(100vh - 16px) !important;
  }
  .esn-modal-head { padding: 18px 20px !important; }
  .esn-modal-head h3 { font-size: 1.1rem !important; line-height: 1.3 !important; }
  .esn-modal-body { padding: 18px 20px !important; }
  .esn-modal-actions { flex-direction: column !important; gap: 10px !important; }
  .esn-modal-actions a, .esn-modal-actions button {
    width: 100% !important;
    text-align: center !important;
    justify-content: center !important;
    min-height: 48px !important;
  }

  /* Pagination : boutons larges */
  .esn-pagination, .rsn-pagination, .ann-pagination, .gco-pagination {
    flex-wrap: wrap !important;
    gap: 6px !important;
    justify-content: center !important;
  }
  .esn-pagination button, .rsn-pagination button,
  .ann-pagination button, .gco-pagination button {
    min-width: 40px !important;
    min-height: 40px !important;
    padding: 8px 12px !important;
  }
}

/* ============================================
   3. PERFORMANCE — Animations légères
============================================ */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}
/* Désactiver animations lourdes sur petit écran */
@media (max-width: 600px) {
  .rx-footer { animation: none !important; background: linear-gradient(135deg, #0f172a 0%, #064e3b 100%) !important; }
  .rx-footer__orb { display: none !important; }
  .rx-footer__logo-rif { animation: none !important; color: #4ade80 !important; }
  .rx-mm__orb { animation-duration: 30s !important; }
}
/* content-visibility: optimisation des sections hors écran */
.rx2-jobs, .rx2-mag, .rx2-finalcta, .rx-blog-section,
.rx-single__related, .rx-single__comments { content-visibility: auto; contain-intrinsic-size: 0 500px; }

/* ============================================
   4. COULEURS RAFRAÎCHIES — accents plus vifs
============================================ */
:root {
  --rx-green: #00a651;
  --rx-green-dark: #007a3d;
  --rx-green-soft: #d1fae5;
  --rx-yellow: #FDEF42;
  --rx-yellow-dark: #f59e0b;
  --rx-red: #E31B23;
  --rx-blue: #2563eb;
  --rx-purple: #8b5cf6;
}

/* Liens contenu : vert plus chaleureux */
.rx-page-content a { color: var(--rx-green) !important; text-decoration-color: var(--rx-yellow) !important; }
.rx-page-content a:hover { color: var(--rx-green-dark) !important; }

/* Pills, badges : palette unifiée */
.rx-footer__pill:hover { background: rgba(0,166,81,.18) !important; border-color: var(--rx-green) !important; color: #fff !important; }


/* === FRONT-PAGE V2 LAYOUT === */

/* ============================================
   PALETTE V2
============================================ */
:root {
  --rx2-green: #00a651;
  --rx2-green-dk: #006830;
  --rx2-green-soft: #ecfdf5;
  --rx2-yellow: #FDEF42;
  --rx2-yellow-dk: #f59e0b;
  --rx2-red: #E31B23;
  --rx2-red-soft: #fef2f2;
  --rx2-blue: #2563eb;
  --rx2-blue-soft: #eff6ff;
  --rx2-ink: #0f172a;
  --rx2-ink-2: #334155;
  --rx2-muted: #64748b;
  --rx2-line: #e2e8f0;
  --rx2-bg: #ffffff;
  --rx2-bg-soft: #f8fafc;
}

/* ============================================
   1. HERO V2 — Split layout
============================================ */
.rx2-hero {
  position: relative; isolation: isolate; overflow: hidden;
  background: linear-gradient(135deg, #ecfdf5 0%, #fefce8 50%, #fef2f2 100%);
  padding: 70px 0 80px;
}
.rx2-hero__bg { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.rx2-hero__orb { position: absolute; border-radius: 50%; filter: blur(80px); opacity: .35; }
.rx2-hero__orb--g { width: 380px; height: 380px; background: #22c55e; top: -100px; left: -80px; }
.rx2-hero__orb--y { width: 320px; height: 320px; background: #FDEF42; top: 30%; right: -60px; }
.rx2-hero__orb--r { width: 240px; height: 240px; background: #fb7185; bottom: -80px; left: 35%; }
.rx2-hero__grid {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(15,23,42,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(15,23,42,.04) 1px, transparent 1px);
  background-size: 40px 40px;
  mask-image: radial-gradient(ellipse at center, #000 30%, transparent 75%);
  -webkit-mask-image: radial-gradient(ellipse at center, #000 30%, transparent 75%);
}
@keyframes rx2OrbDrift {
  0%,100% { transform: translate(0,0); }
  50% { transform: translate(40px, -30px); }
}

.rx2-hero__inner {
  display: grid; grid-template-columns: 1.45fr 1fr; gap: 50px; align-items: center;
  position: relative; z-index: 2;
}
@media (max-width: 960px) { .rx2-hero__inner { grid-template-columns: 1fr; gap: 36px; } }

.rx2-hero__badge {
  display: inline-flex; align-items: center; gap: 10px;
  background: #fff; border: 1.5px solid var(--rx2-line);
  padding: 8px 16px 8px 8px; border-radius: 50px;
  font-weight: 700; font-size: .82rem; color: var(--rx2-ink);
  margin-bottom: 22px;
  box-shadow: 0 4px 14px rgba(15,23,42,.06);
}
.rx2-flag-pill {
  display: inline-block; width: 24px; height: 24px; border-radius: 50%;
  background: linear-gradient(90deg, #00a651 33%, #FDEF42 33% 66%, #E31B23 66%);
  box-shadow: 0 0 0 2px #fff;
}
.rx2-pulse {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--rx2-green); animation: rx2Pulse 2s ease-in-out infinite;
  box-shadow: 0 0 0 0 rgba(0,166,81,.6);
}
@keyframes rx2Pulse {
  0%,100% { box-shadow: 0 0 0 0 rgba(0,166,81,.5); }
  50% { box-shadow: 0 0 0 8px rgba(0,166,81,0); }
}

.rx2-hero__title {
  font-family: 'Poppins', sans-serif;
  font-size: clamp(2rem, 4.8vw, 3.4rem);
  font-weight: 900; line-height: 1.08;
  color: var(--rx2-ink); margin: 0 0 18px;
  letter-spacing: -0.02em;
}
.rx2-hero__accent {
  background: linear-gradient(120deg, var(--rx2-green) 0%, var(--rx2-yellow-dk) 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  position: relative; display: inline-block;
}
.rx2-hero__accent::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 4px; height: 8px;
  background: rgba(253,239,66,.6); z-index: -1; border-radius: 4px;
  -webkit-text-fill-color: initial;
}
.rx2-hero__flag { display: inline-block; }

.rx2-hero__lead {
  font-size: 1.05rem; color: var(--rx2-ink-2);
  line-height: 1.7; margin: 0 0 26px; max-width: 540px;
}

.rx2-hero__search {
  display: flex; align-items: center; gap: 6px;
  background: #fff; border: 1.5px solid var(--rx2-line);
  border-radius: 16px; padding: 6px 6px 6px 16px;
  max-width: 540px; margin-bottom: 18px;
  box-shadow: 0 8px 26px rgba(15,23,42,.08);
  transition: border-color .25s, box-shadow .25s;
}
.rx2-hero__search:focus-within {
  border-color: var(--rx2-green);
  box-shadow: 0 8px 28px rgba(0,166,81,.18);
}
.rx2-hero__search-ico { font-size: 1.05rem; }
.rx2-hero__search input {
  flex: 1; min-width: 0; height: 50px;
  border: 0; outline: 0; background: transparent;
  color: var(--rx2-ink); font-size: 1rem; font-family: inherit;
}
.rx2-hero__search input::placeholder { color: var(--rx2-muted); }
.rx2-hero__search button {
  background: linear-gradient(135deg, var(--rx2-green) 0%, var(--rx2-green-dk) 100%);
  color: #fff; border: 0;
  padding: 0 22px; height: 50px; border-radius: 12px;
  font-family: 'Poppins', sans-serif; font-weight: 700; font-size: .95rem;
  cursor: pointer;
  display: inline-flex; align-items: center; gap: 6px;
  transition: all .3s cubic-bezier(.34,1.56,.64,1);
  box-shadow: 0 4px 14px rgba(0,166,81,.35);
}
.rx2-hero__search button:hover { transform: translateY(-2px) scale(1.04); box-shadow: 0 8px 22px rgba(0,166,81,.5); }
.rx2-hero__search button span { transition: transform .25s; }
.rx2-hero__search button:hover span { transform: translateX(3px); }

.rx2-hero__tags {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
  font-size: .85rem;
}
.rx2-hero__tags-label { color: var(--rx2-muted); font-weight: 600; margin-right: 4px; }
.rx2-tag {
  background: #fff; border: 1.5px solid var(--rx2-line);
  padding: 7px 14px; border-radius: 30px;
  font-weight: 600; color: var(--rx2-ink-2);
  text-decoration: none; font-size: .82rem;
  transition: all .25s;
}
.rx2-tag:hover {
  background: var(--rx2-green-soft);
  border-color: var(--rx2-green);
  color: var(--rx2-green-dk);
  transform: translateY(-2px);
}

/* Stats card */
.rx2-statcard {
  background: #fff;
  border: 1.5px solid var(--rx2-line);
  border-radius: 22px;
  padding: 26px 24px;
  box-shadow: 0 18px 50px rgba(15,23,42,.1);
  position: relative; overflow: hidden;
}
.rx2-statcard::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, var(--rx2-green), var(--rx2-yellow), var(--rx2-red));
}
.rx2-statcard__head {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: .72rem; font-weight: 800; letter-spacing: .12em;
  color: var(--rx2-muted); margin-bottom: 18px;
}
.rx2-statcard__dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--rx2-red); animation: rx2Pulse 1.6s ease-in-out infinite;
}
/* v9.29 — Carte "Derniers ajouts" (remplace l'ancien bloc de compteurs) */
.rx2-latest__list {
  list-style: none; padding: 0; margin: 0;
  display: grid; gap: 14px;
}
.rx2-latest__list li {
  border-bottom: 1px dashed var(--rx2-line);
  padding-bottom: 14px;
}
.rx2-latest__list li:last-child { border-bottom: 0; padding-bottom: 0; }
.rx2-latest__link {
  display: grid; gap: 4px;
  text-decoration: none; color: inherit;
}
.rx2-latest__cat {
  display: inline-block;
  font-size: .68rem; font-weight: 800; letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--rx2-green);
  background: rgba(0,133,63,.09);
  border-radius: 999px;
  padding: 3px 10px;
  width: fit-content;
}
.rx2-latest__title {
  font-size: .92rem; font-weight: 700; color: var(--rx2-ink);
  line-height: 1.35;
  transition: color .2s;
}
.rx2-latest__link:hover .rx2-latest__title { color: var(--rx2-green); }
.rx2-latest__time {
  font-size: .76rem; color: var(--rx2-muted);
}
.rx2-latest__empty {
  font-size: .88rem; color: var(--rx2-muted); text-align: center;
  padding: 10px 0;
}
body.rx-dark .rx2-latest__cat { background: rgba(0,133,63,.18); }
body.rx-dark .rx2-latest__title { color: #e2e8f0; }
body.rx-dark .rx2-latest__time,
body.rx-dark .rx2-latest__empty { color: #94a3b8; }
/* v9.31 — Bloc "Liens utiles" (dont le lien Vérifier une info) */
.rx2-useful {
  margin-top: 18px; padding-top: 16px;
  border-top: 1px solid var(--rx2-line);
}
.rx2-useful__label {
  font-size: .72rem; font-weight: 800; letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--rx2-muted);
  margin-bottom: 10px;
}
.rx2-useful__list {
  list-style: none; padding: 0; margin: 0;
  display: grid; gap: 8px;
}
.rx2-useful__list a {
  display: flex; align-items: center; gap: 9px;
  text-decoration: none;
  font-size: .86rem; font-weight: 600;
  color: var(--rx2-ink-2);
  padding: 7px 10px;
  border-radius: 10px;
  background: var(--rx2-bg-soft, rgba(0,133,63,.05));
  transition: background .2s, color .2s;
}
.rx2-useful__list a:hover {
  background: rgba(0,133,63,.12);
  color: var(--rx2-green);
}
.rx2-useful__ico { font-size: 1rem; line-height: 1; }
body.rx-dark .rx2-useful__list a { background: rgba(255,255,255,.06); color: #cbd5e1; }
body.rx-dark .rx2-useful__list a:hover { background: rgba(0,133,63,.22); color: #6ee7a0; }
.rx2-statcard__footer {
  margin-top: 18px; padding-top: 14px;
  border-top: 1px solid var(--rx2-line);
  font-size: .78rem; color: var(--rx2-muted);
  text-align: center;
}

/* ============================================
   2. SECTION HEADERS
============================================ */
.rx2-shead { margin-bottom: 36px; max-width: 720px; }
.rx2-shead--center { text-align: center; margin-left: auto; margin-right: auto; }
.rx2-shead__chip {
  display: inline-block;
  background: var(--rx2-green-soft); color: var(--rx2-green-dk);
  padding: 6px 14px; border-radius: 30px;
  font-weight: 700; font-size: .78rem;
  margin-bottom: 14px;
  border: 1.5px solid rgba(0,166,81,.25);
}
.rx2-shead__chip--alt { background: #fef9c3; color: #854d0e; border-color: rgba(245,158,11,.3); }
.rx2-shead h2 {
  font-family: 'Poppins', sans-serif;
  font-size: clamp(1.6rem, 3.4vw, 2.3rem);
  font-weight: 900; line-height: 1.2;
  color: var(--rx2-ink); margin: 0 0 10px;
  letter-spacing: -0.02em;
}
.rx2-shead h2 em { color: var(--rx2-green); font-style: normal; }
.rx2-shead p { color: var(--rx2-muted); font-size: 1rem; margin: 0; line-height: 1.6; }

/* ============================================
   3. BENTO GRID — Outils
============================================ */
.rx2-bento { background: var(--rx2-bg-soft); }
.rx2-bento__grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 18px;
}
.rx2-bento__card--prix { grid-column: 1 / -1; }
@media (max-width: 768px) {
  .rx2-bento__grid { grid-template-columns: 1fr; }
}
.rx2-bento__card {
  position: relative; overflow: hidden; isolation: isolate;
  display: flex; flex-direction: column; gap: 14px;
  background: #fff; border-radius: 24px;
  padding: 28px;
  border: 1.5px solid var(--rx2-line);
  text-decoration: none; color: var(--rx2-ink);
  transition: transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s, border-color .35s;
  min-height: 230px;
}
.rx2-bento__card:hover { transform: translateY(-6px); box-shadow: 0 20px 50px rgba(15,23,42,.12); }

.rx2-bento__card--green { background: linear-gradient(135deg, #fff 0%, #ecfdf5 100%); border-color: rgba(0,166,81,.2); }
.rx2-bento__card--green:hover { border-color: var(--rx2-green); box-shadow: 0 20px 50px rgba(0,166,81,.2); }
.rx2-bento__card--red { background: linear-gradient(135deg, #fff 0%, #fef2f2 100%); border-color: rgba(227,27,35,.2); }
.rx2-bento__card--red:hover { border-color: var(--rx2-red); box-shadow: 0 20px 50px rgba(227,27,35,.2); }
.rx2-bento__card--yellow { background: linear-gradient(135deg, #fff 0%, #fefce8 100%); border-color: rgba(245,158,11,.25); }
.rx2-bento__card--yellow:hover { border-color: var(--rx2-yellow-dk); box-shadow: 0 20px 50px rgba(245,158,11,.2); }
.rx2-bento__card--blue { background: linear-gradient(135deg, #fff 0%, #eff6ff 100%); border-color: rgba(37,99,235,.2); }
.rx2-bento__card--blue:hover { border-color: var(--rx2-blue); box-shadow: 0 20px 50px rgba(37,99,235,.2); }
.rx2-bento__card--orange { background: linear-gradient(135deg, #fff 0%, #fff7ed 100%); border-color: rgba(234,88,12,.25); }
.rx2-bento__card--orange:hover { border-color: #ea580c; box-shadow: 0 20px 50px rgba(234,88,12,.22); }
.rx2-bento__card--orange .rx2-bento__cta { color: #ea580c; }
.rx2-bento__card--orange .rx2-bento__icon svg { color: #ea580c; }

.rx2-bento__card--big { min-height: 260px; }
.rx2-bento__card--big h3 { font-size: 1.5rem; }
.rx2-bento__card--big p { font-size: 1rem; }

/* Carte 5 — pleine largeur (Comparateur Prix) */
.rx2-bento__card--full {
  flex-direction: row;
  align-items: center;
  gap: 24px;
  padding: 28px 32px;
  min-height: 180px;
}
.rx2-bento__card--full .rx2-bento__icon {
  width: 72px; height: 72px; font-size: 2rem; flex-shrink: 0;
}
.rx2-bento__card--full h3 { font-size: 1.4rem; }
.rx2-bento__card--full p { font-size: .98rem; margin-bottom: 12px; }
.rx2-bento__tag--new {
  background: linear-gradient(135deg,#ea580c,#f59e0b);
  color: #fff; border-color: transparent;
  animation: rx2BentoNew 2s ease-in-out infinite;
}
@keyframes rx2BentoNew { 0%,100%{transform:scale(1)} 50%{transform:scale(1.06)} }
@media (max-width: 768px) {
  .rx2-bento__card--full {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    padding: 24px;
    min-height: 230px;
  }
  .rx2-bento__card--full .rx2-bento__icon { width: 56px; height: 56px; font-size: 1.8rem; }
  .rx2-bento__card--full h3 { font-size: 1.2rem; }
  .rx2-bento__card--full p { font-size: .92rem; }
}

.rx2-bento__icon {
  width: 56px; height: 56px;
  background: #fff;
  border-radius: 16px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.8rem;
  box-shadow: 0 6px 16px rgba(15,23,42,.08);
}
.rx2-bento__body { flex: 1; display: flex; flex-direction: column; }
.rx2-bento__tag {
  display: inline-block;
  background: #fff; border: 1px solid var(--rx2-line);
  padding: 3px 10px; border-radius: 16px;
  font-size: .68rem; font-weight: 800; letter-spacing: .08em;
  text-transform: uppercase; color: var(--rx2-muted);
  margin-bottom: 10px; align-self: flex-start;
}
.rx2-bento__card h3 {
  font-family: 'Poppins', sans-serif;
  font-size: 1.2rem; font-weight: 800;
  color: var(--rx2-ink); margin: 0 0 8px;
  line-height: 1.25;
}
.rx2-bento__card p {
  color: var(--rx2-ink-2); font-size: .92rem;
  line-height: 1.55; margin: 0 0 16px; flex: 1;
}
.rx2-bento__cta {
  display: inline-flex; align-items: center; gap: 6px;
  font-weight: 700; font-size: .92rem;
  font-family: 'Poppins', sans-serif;
}
.rx2-bento__card--green .rx2-bento__cta { color: var(--rx2-green-dk); }
.rx2-bento__card--red .rx2-bento__cta { color: var(--rx2-red); }
.rx2-bento__card--yellow .rx2-bento__cta { color: var(--rx2-yellow-dk); }
.rx2-bento__card--blue .rx2-bento__cta { color: var(--rx2-blue); }
.rx2-bento__cta span { transition: transform .25s; display: inline-block; }
.rx2-bento__card:hover .rx2-bento__cta span { transform: translateX(4px); }

.rx2-bento__shine {
  position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(110deg, transparent 30%, rgba(255,255,255,.4) 50%, transparent 70%);
  transform: translateX(-120%);
  transition: transform .8s ease;
}
.rx2-bento__card:hover .rx2-bento__shine { transform: translateX(120%); }

/* ============================================
   4. FEATURES — 4 piliers
============================================ */
.rx2-features { background: #fff; }
.rx2-features__grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px;
}
@media (max-width: 900px) { .rx2-features__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px) { .rx2-features__grid { grid-template-columns: 1fr; } }
.rx2-feature {
  text-align: center; padding: 26px 20px;
  background: var(--rx2-bg-soft);
  border: 1.5px solid var(--rx2-line);
  border-radius: 18px;
  transition: all .3s;
}
.rx2-feature:hover { transform: translateY(-4px); box-shadow: 0 14px 36px rgba(15,23,42,.08); border-color: var(--rx2-green); }
.rx2-feature__ico {
  width: 56px; height: 56px;
  border-radius: 16px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.6rem; margin: 0 auto 14px;
  box-shadow: 0 6px 16px rgba(15,23,42,.08);
}
.rx2-feature h4 {
  font-family: 'Poppins', sans-serif;
  font-size: 1.05rem; font-weight: 800;
  color: var(--rx2-ink); margin: 0 0 6px;
}
.rx2-feature p { color: var(--rx2-muted); font-size: .88rem; line-height: 1.55; margin: 0; }

/* ============================================
   5. JOBS SCROLLER — Carrousel horizontal
============================================ */
.rx2-jobs { background: var(--rx2-bg-soft); }
.rx2-jobs__scroller {
  display: grid; grid-auto-flow: column;
  grid-auto-columns: minmax(280px, 1fr);
  gap: 18px; overflow-x: auto;
  padding: 6px 4px 22px;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin; scrollbar-color: var(--rx2-green) transparent;
}
.rx2-jobs__scroller::-webkit-scrollbar { height: 8px; }
.rx2-jobs__scroller::-webkit-scrollbar-thumb { background: var(--rx2-green); border-radius: 8px; }

@media (min-width: 900px) {
  .rx2-jobs__scroller { grid-template-columns: repeat(4, 1fr); grid-auto-flow: initial; overflow: visible; }
}

.rx2-jobcard {
  background: #fff; border: 1.5px solid var(--rx2-line);
  border-radius: 18px; padding: 20px;
  scroll-snap-align: start;
  display: flex; flex-direction: column; gap: 10px;
  transition: all .3s;
  position: relative; overflow: hidden;
}
.rx2-jobcard::before {
  content: ""; position: absolute; top: 0; left: 0; height: 100%; width: 4px;
  background: linear-gradient(180deg, var(--rx2-green), var(--rx2-yellow));
  transform: scaleY(0); transform-origin: top;
  transition: transform .35s;
}
.rx2-jobcard:hover { transform: translateY(-3px); box-shadow: 0 14px 36px rgba(15,23,42,.1); border-color: var(--rx2-green); }
.rx2-jobcard:hover::before { transform: scaleY(1); }
.rx2-jobcard__head { display: flex; justify-content: space-between; align-items: center; }
.rx2-jobcard__chip {
  background: var(--rx2-green); color: #fff;
  padding: 3px 10px; border-radius: 16px;
  font-size: .68rem; font-weight: 800; letter-spacing: .08em;
}
.rx2-jobcard__chip--cdd { background: var(--rx2-blue); }
.rx2-jobcard__city { font-size: .8rem; color: var(--rx2-muted); font-weight: 600; }
.rx2-jobcard h4 {
  font-family: 'Poppins', sans-serif;
  font-size: 1rem; font-weight: 800;
  color: var(--rx2-ink); margin: 0; line-height: 1.3;
}
.rx2-jobcard__co { color: var(--rx2-ink-2); font-size: .88rem; margin: 0; font-weight: 600; }
.rx2-jobcard__foot {
  margin-top: auto; padding-top: 10px;
  border-top: 1px dashed var(--rx2-line);
}
.rx2-jobcard__sal { color: var(--rx2-green-dk); font-weight: 800; font-size: .88rem; }

/* ── Carte emploi cliquable (v9.39) ─────────────────────── */
a.rx2-jobcard--link {
  text-decoration: none; color: inherit; cursor: pointer;
}
a.rx2-jobcard--link:focus-visible {
  outline: 2.5px solid var(--rx2-green);
  outline-offset: 3px;
}
.rx2-jobcard--link:hover h4 { color: var(--rx2-green); }
.rx2-jobcard__date {
  color: var(--rx2-muted); font-size: .8rem; font-weight: 600;
}
.rx2-jobcard__foot {
  display: flex; flex-direction: column; gap: 4px;
}

/* ── Grille blog magazine (v9.41) ────────────────────────── */
/* Anciens sélecteurs .rx2-mag__scroller / .rx2-magcard--scroll conservés
   pour rétrocompatibilité avec d'éventuels shortcodes. */
.rx2-mag__scroller {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(280px, 340px);
  gap: 20px;
  overflow-x: auto;
  padding: 6px 4px 22px;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: var(--rx2-green) transparent;
}
.rx2-mag__scroller::-webkit-scrollbar { height: 8px; }
.rx2-mag__scroller::-webkit-scrollbar-thumb {
  background: var(--rx2-green); border-radius: 8px;
}
@media (min-width: 900px) {
  .rx2-mag__scroller {
    grid-template-columns: repeat(3, 1fr);
    grid-auto-flow: initial;
    overflow: visible;
  }
}
.rx2-magcard--scroll { scroll-snap-align: start; min-width: 0; }
.rx2-magcard--scroll .rx2-magcard__media { aspect-ratio: 16/9 !important; }

/* ── Grille principale (v9.41) ───────────────────────────── */
.rx2-blog-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 22px;
}
@media (min-width: 600px) {
  .rx2-blog-grid { grid-template-columns: repeat(2, 1fr); }
  .rx2-blog-card--hero { grid-column: span 2; }
}
@media (min-width: 960px) {
  .rx2-blog-grid {
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: auto auto;
  }
  .rx2-blog-card--hero {
    grid-column: span 2;
    grid-row: span 2;
  }
}

/* ── Carte blog (v9.41) ──────────────────────────────────── */
.rx2-blog-card {
  background: #fff;
  border: 1.5px solid var(--rx2-line);
  border-radius: 20px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.rx2-blog-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 50px rgba(15,23,42,.12);
  border-color: var(--rx2-green);
}

/* Zone image : background-image CSS — jamais de <img> cassé */
.rx2-blog-card__media {
  display: block;
  position: relative;
  aspect-ratio: 16/9;
  background: linear-gradient(135deg, var(--rx2-green-dk) 0%, var(--rx2-green) 55%, #ffd700 100%);
  background-size: cover;
  background-position: center;
  overflow: hidden;
  text-decoration: none;
  transition: border-color .25s ease;
}
.rx2-blog-card__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform .4s cubic-bezier(.2,.7,.2,1);
}
.rx2-blog-card:hover .rx2-blog-card__img {
  transform: scale(1.03);
}
.rx2-blog-card--hero .rx2-blog-card__media {
  aspect-ratio: 16/8;
}
/* Les images restent nettes et stables au survol : aucun assombrissement,
   zoom ou effet de déformation qui pourrait les faire paraître cassées. */
.rx2-blog-card:hover .rx2-blog-card__media,
.rx2-blog-card__media:hover {
  filter: none;
  transform: none;
}
/* Overlay sombre sur les cartes avec image pour que le badge reste lisible */
.rx2-blog-card__media:not(.rx2-blog-card__media--nothumb)::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, transparent 40%, rgba(0,0,0,.45) 100%);
  pointer-events: none;
}
/* Cartes sans image : gradient coloré + emoji centré */
.rx2-blog-card__media--nothumb {
  display: flex;
  align-items: center;
  justify-content: center;
}
.rx2-blog-card__fallback-ico {
  font-size: 3.5rem;
  opacity: .35;
  pointer-events: none;
  user-select: none;
}
/* Badge catégorie */
.rx2-blog-card__cat-badge {
  position: absolute;
  top: 14px; left: 14px;
  background: rgba(0,0,0,.55);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  color: #fff;
  font-size: .72rem; font-weight: 800;
  text-transform: uppercase; letter-spacing: .5px;
  padding: 4px 12px;
  border-radius: 50px;
  z-index: 1;
}
/* Corps texte */
.rx2-blog-card__body {
  padding: 20px;
  display: flex; flex-direction: column; flex: 1;
}
.rx2-blog-card--hero .rx2-blog-card__body { padding: 26px 28px; }
.rx2-blog-card__date {
  display: block;
  font-size: .78rem; color: var(--rx2-muted); font-weight: 600;
  margin-bottom: 8px;
}
.rx2-blog-card__title {
  font-family: 'Poppins', sans-serif;
  font-size: 1.05rem; font-weight: 800; line-height: 1.3;
  margin: 0 0 10px;
}
.rx2-blog-card--hero .rx2-blog-card__title { font-size: 1.45rem; }
.rx2-blog-card__title a { color: var(--rx2-ink); text-decoration: none; }
.rx2-blog-card__title a:hover { color: var(--rx2-green); }
.rx2-blog-card__exc {
  color: var(--rx2-muted); font-size: .9rem; line-height: 1.65;
  margin: 0 0 16px; flex: 1;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.rx2-blog-card__cta {
  display: inline-flex; align-items: center; gap: 4px;
  color: var(--rx2-green); font-weight: 700; font-size: .9rem;
  text-decoration: none; margin-top: auto;
}
.rx2-blog-card__cta:hover { text-decoration: underline; }
/* Dark mode */
html.rx-dark .rx2-blog-card { background: var(--rx-dark-card); border-color: var(--rx-dark-line); }
html.rx-dark .rx2-blog-card__title a { color: var(--rx-dark-text); }

/* ============================================
   6. BOUTONS V2
============================================ */
.rx2-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 14px 26px; border-radius: 50px;
  font-family: 'Poppins', sans-serif; font-weight: 700; font-size: .95rem;
  text-decoration: none; cursor: pointer; border: none;
  transition: all .3s cubic-bezier(.34,1.56,.64,1);
}
.rx2-btn--primary {
  background: linear-gradient(135deg, var(--rx2-green) 0%, var(--rx2-green-dk) 100%);
  color: #fff; box-shadow: 0 8px 24px rgba(0,166,81,.35);
}
.rx2-btn--primary:hover { transform: translateY(-3px) scale(1.04); box-shadow: 0 12px 30px rgba(0,166,81,.5); color: #fff; }
.rx2-btn--ghost {
  background: rgba(255,255,255,.15); color: #fff;
  border: 1.5px solid rgba(255,255,255,.3);
}
.rx2-btn--ghost:hover { background: rgba(255,255,255,.25); color: #fff; transform: translateY(-2px); }
.rx2-btn--dark {
  background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
  color: #fff; box-shadow: 0 8px 24px rgba(15,23,42,.3);
}
.rx2-btn--dark:hover { transform: translateY(-3px) scale(1.04); box-shadow: 0 12px 30px rgba(15,23,42,.5); color: #fff; }
.rx2-btn span { transition: transform .25s; display: inline-block; }
.rx2-btn:hover span { transform: translateX(4px); }

/* ============================================
   7. MAGAZINE BLOG
============================================ */
.rx2-mag { background: #fff; }
.rx2-mag__grid {
  display: grid;
  grid-template-columns: 1.7fr 1fr;
  gap: 24px;
}
@media (max-width: 768px) {
  .rx2-mag__grid { grid-template-columns: 1fr; }
}

.rx2-magcard {
  background: #fff; border: 1.5px solid var(--rx2-line);
  border-radius: 20px; overflow: hidden;
  transition: all .3s;
  display: flex; flex-direction: column;
}
.rx2-magcard:hover { transform: translateY(-4px); box-shadow: 0 18px 50px rgba(15,23,42,.12); border-color: var(--rx2-green); }
.rx2-magcard--big { grid-row: span 2; }

.rx2-magcard__media {
  position: relative; display: block;
  aspect-ratio: 16/9; overflow: hidden;
  background: linear-gradient(135deg, var(--rx2-green-dk), var(--rx2-green));
}
.rx2-magcard--big .rx2-magcard__media { aspect-ratio: 4/3; }
.rx2-magcard__media img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .5s ease;
}
.rx2-magcard:hover .rx2-magcard__media img {
  transform: scale(1.03);
  filter: none;
}
.rx2-magcard__placeholder {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 4rem; color: rgba(255,255,255,.6);
}
.rx2-magcard__cat {
  position: absolute; top: 14px; left: 14px;
  background: rgba(15,23,42,.85); color: #fff;
  padding: 5px 12px; border-radius: 30px;
  font-size: .72rem; font-weight: 700;
  -webkit-backdrop-filter: blur(6px);
}
.rx2-magcard__body { padding: 20px; flex: 1; display: flex; flex-direction: column; }
.rx2-magcard h3 { font-family: 'Poppins', sans-serif; font-size: 1.05rem; font-weight: 800; line-height: 1.3; margin: 0 0 8px; }
.rx2-magcard--big h3 { font-size: 1.4rem; }
.rx2-magcard h3 a { color: var(--rx2-ink); text-decoration: none; }
.rx2-magcard h3 a:hover { color: var(--rx2-green); }
.rx2-magcard p { color: var(--rx2-muted); font-size: .92rem; line-height: 1.6; margin: 0 0 14px; flex: 1; }
.rx2-magcard__link {
  display: inline-flex; align-items: center; gap: 4px;
  color: var(--rx2-green-dk); font-weight: 700; font-size: .85rem;
  text-decoration: none; margin-top: auto;
}
.rx2-magcard__link:hover { color: var(--rx2-green); }

/* ============================================
   8. CTA FINAL
============================================ */
.rx2-finalcta {
  padding: 60px 20px;
  background: var(--rx2-bg-soft);
}
.rx2-finalcta__card {
  position: relative; overflow: hidden;
  background: linear-gradient(135deg, var(--rx2-green-dk) 0%, var(--rx2-green) 50%, #047857 100%);
  border-radius: 28px;
  padding: 50px 40px;
  text-align: center;
  color: #fff;
  box-shadow: 0 20px 60px rgba(0,166,81,.25);
  max-width: 1080px; margin: 0 auto;
}
.rx2-finalcta__card::before {
  content: ""; position: absolute; inset: 0;
  background:
    radial-gradient(circle at 20% 30%, rgba(253,239,66,.18) 0, transparent 40%),
    radial-gradient(circle at 80% 70%, rgba(227,27,35,.15) 0, transparent 40%);
  pointer-events: none;
}
.rx2-finalcta__icon {
  font-size: 2.5rem; margin-bottom: 14px;
  animation: rx2Float 3s ease-in-out infinite;
}
.rx2-finalcta h2 {
  font-family: 'Poppins', sans-serif;
  font-size: clamp(1.6rem, 3.4vw, 2.3rem);
  font-weight: 900; margin: 0 0 10px;
  position: relative;
}
.rx2-finalcta p {
  margin: 0 0 26px; opacity: .9; font-size: 1.05rem;
  position: relative;
}
.rx2-finalcta__btns {
  display: flex; flex-wrap: wrap; gap: 12px; justify-content: center;
  position: relative;
}

/* ============================================
   MOBILE FINAL TWEAKS
============================================ */
@media (max-width: 768px) {
  .rx2-hero { padding: 50px 0 60px; }
  .rx2-hero__title { font-size: 1.9rem; }
  .rx2-bento__card { padding: 22px; min-height: 200px; }
  .rx2-finalcta__card { padding: 36px 24px; border-radius: 22px; }
}


/* === SVG ICONS POLISH v2 === */

/* Drapeau SN en SVG (3 bandes) */
.rx2-flag-svg {
  display: inline-flex; vertical-align: -3px;
  width: 32px; height: 22px; border-radius: 3px; overflow: hidden;
  box-shadow: 0 2px 6px rgba(0,0,0,.12);
  border: 1px solid rgba(15,23,42,.08);
}
.rx2-flag-svg i { display: block; flex: 1; height: 100%; }
.rx2-flag-svg i:nth-child(1) { background: #00853F; }
.rx2-flag-svg i:nth-child(2) { background: #FDEF42; position: relative; }
.rx2-flag-svg i:nth-child(2)::after {
  content: ""; position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%);
  width: 8px; height: 8px;
  background: radial-gradient(circle at 50% 50%, #00853F 0 1px, transparent 1px);
  background-size: 4px 4px;
  clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
}
.rx2-flag-svg i:nth-child(3) { background: #E31B23; }

/* Icônes bento : SVG dans pastille */
.rx2-bento__icon svg {
  width: 30px; height: 30px;
  color: #0f172a;
}
.rx2-bento__card--green .rx2-bento__icon svg { color: #00a651; }
.rx2-bento__card--red   .rx2-bento__icon svg { color: #E31B23; }
.rx2-bento__card--yellow .rx2-bento__icon svg { color: #f59e0b; }
.rx2-bento__card--blue  .rx2-bento__icon svg { color: #2563eb; }

/* CTA finale icon */
.rx2-finalcta__icon svg { width: 44px; height: 44px; color: #FDEF42; }

/* Tags : icônes inline */
.rx2-tag {
  display: inline-flex !important; align-items: center; gap: 6px;
}
.rx2-tag svg { color: currentColor; opacity: .85; }

/* Search button : icône arrow */
.rx2-hero__search button {
  gap: 8px;
}
.rx2-hero__search-ico { color: #64748b; display: inline-flex; align-items: center; }

/* Suggestions dropdown */
.rx2-hero__search { position: relative; }
.rx2-hero__suggest {
  position: absolute; top: calc(100% + 8px); left: 0; right: 0;
  background: #fff;
  border: 1.5px solid #e2e8f0;
  border-radius: 14px;
  box-shadow: 0 18px 50px rgba(15,23,42,.15);
  list-style: none; padding: 6px; margin: 0;
  z-index: 50;
  max-height: 320px; overflow-y: auto;
}
.rx2-hero__suggest[hidden] { display: none; }
.rx2-hero__suggest li { margin: 0; padding: 0; }
.rx2-hero__suggest li::before { content: none; }
.rx2-hero__suggest a {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 14px; border-radius: 10px;
  text-decoration: none; color: #0f172a;
  font-size: .92rem; font-weight: 600;
  transition: background .15s;
}
.rx2-hero__suggest a:hover, .rx2-hero__suggest a:focus {
  background: #f0fdf4; color: #006830;
}
.rx2-hero__suggest svg { color: #00a651; flex-shrink: 0; }


/* === FIXES PACK v9.4 === */

/* ============================================
   1. FOOTER toujours visible (fix opacity:0 bug)
============================================ */
.rx-footer { opacity: 1 !important; transform: none !important; }
.rx-footer__brand,
.rx-footer__col,
.rx-footer__logo,
.rx-footer__links li,
.rx-footer__social,
.rx-footer__flag span {
  opacity: 1 !important;
  transform: none !important;
}

/* ============================================
   2. FAVICON / Custom logo : taille raisonnable
============================================ */
.rx-logo .custom-logo,
.rx-logo img {
  max-height: 44px !important;
  width: auto !important;
  display: block;
}
@media (max-width: 768px) {
  .rx-logo .custom-logo, .rx-logo img { max-height: 36px !important; }
}
.custom-logo-link { display: inline-flex; align-items: center; }

/* ============================================
   3. Suppression de TOUS les blur (menu mobile, etc.)
============================================ */
.rx-mobile-menu, .rx-mm__bg, .rx-mm__inner,
.rx-search-panel, .rx-search-form,
.rx-magcard__cat,
.esn-modal, .esn-modal-backdrop {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
/* Menu mobile : fond solide */
.rx-mobile-menu { background: rgba(15,23,42,.98) !important; }

/* ============================================
   4. LOGO en mode sombre : visible
============================================ */
html.rx-dark .rx-logo__title span,
html.rx-dark .rx-logo__sub span,
html.rx-dark .rx-logo span[style*="#0f172a"],
html.rx-dark .rx-logo span[style*="0f172a"] {
  color: #f1f5f9 !important;
}
html.rx-dark .rx-logo__title span:first-child,
html.rx-dark .rx-logo__sub span:nth-child(1) { color: #4ade80 !important; }
html.rx-dark .rx-logo__title span:nth-child(2),
html.rx-dark .rx-logo__sub span:nth-child(3) { color: #f87171 !important; }
html.rx-dark .rx-logo__sub span:nth-child(2) { color: #fbbf24 !important; }
html.rx-dark .rx-logo__sub span:nth-child(4) { color: #60a5fa !important; }

/* ============================================
   5. Mode sombre : couleurs texte lisibles partout
============================================ */
html.rx-dark .rx2-hero { background: linear-gradient(135deg, #0f172a 0%, #1e293b 50%, #0f172a 100%) !important; }
html.rx-dark .rx2-hero__title,
html.rx-dark .rx2-shead h2,
html.rx-dark .rx2-bento__card h3,
html.rx-dark .rx2-feature h4,
html.rx-dark .rx2-magcard h3,
html.rx-dark .rx2-magcard h3 a,
html.rx-dark .rx2-jobcard h4 {
  color: #f1f5f9 !important;
}
html.rx-dark .rx2-hero__lead,
html.rx-dark .rx2-shead p,
html.rx-dark .rx2-bento__card p,
html.rx-dark .rx2-feature p,
html.rx-dark .rx2-magcard p,
html.rx-dark .rx2-jobcard__co {
  color: #cbd5e1 !important;
}
html.rx-dark .rx2-bento__card,
html.rx-dark .rx2-feature,
html.rx-dark .rx2-jobcard,
html.rx-dark .rx2-magcard,
html.rx-dark .rx2-statcard {
  background: #1e293b !important;
  border-color: #334155 !important;
}
html.rx-dark .rx2-bento, html.rx-dark .rx2-jobs, html.rx-dark .rx2-finalcta { background: #0f172a !important; }
html.rx-dark .rx2-features, html.rx-dark .rx2-mag { background: #0b1220 !important; }
html.rx-dark .rx2-hero__search { background: #1e293b !important; border-color: #334155 !important; }
html.rx-dark .rx2-hero__search input { color: #f1f5f9 !important; }
html.rx-dark .rx2-hero__search input::placeholder { color: #64748b !important; }
html.rx-dark .rx2-tag { background: #1e293b !important; border-color: #334155 !important; color: #cbd5e1 !important; }
html.rx-dark .rx2-bento__icon { background: #0f172a !important; }
html.rx-dark .rx2-bento__tag { background: #0f172a !important; border-color: #334155 !important; color: #cbd5e1 !important; }
html.rx-dark .rx2-shead__chip { background: rgba(74,222,128,.12) !important; color: #4ade80 !important; border-color: rgba(74,222,128,.3) !important; }

/* ============================================
   6. Animation typing sur le mot accent du hero
============================================ */
/* Typing animation CLS fix v9.26 :
   min-width réservé pour le mot le plus long ("votre avenir" ~13ch)
   white-space:nowrap empêche le retour à la ligne pendant l'animation
   overflow:hidden évite la barre clignotante de déborder */
.rx2-hero__accent { display: inline-block; min-width: 10ch; white-space: nowrap; overflow: hidden; vertical-align: bottom; }
.rx2-hero__accent::after {
  content: "|";
  display: inline-block;
  margin-left: 2px;
  color: var(--rx2-green, #00a651);
  -webkit-text-fill-color: var(--rx2-green, #00a651);
  animation: rx2BlinkCaret 1s step-end infinite;
  font-weight: 400;
}
@keyframes rx2BlinkCaret {
  0%,100% { opacity: 0; }
  50% { opacity: 1; }
}


/* =================================================================
   ════════════════════════════════════════════════════════════════
   v9.27 — POLISH VISUEL GLOBAL
   Typographie fluide • Espacements harmonieux • Couleurs raffinées
   ════════════════════════════════════════════════════════════════
================================================================== */

:root {
  /* Palette raffinée — gris plus chauds, accents plus profonds */
  --rx-ink: #0b1220;
  --rx-ink-soft: #1e293b;
  --rx-muted: #64748b;
  --rx-muted-soft: #94a3b8;
  --rx-line: #e8edf2;
  --rx-line-soft: #f1f5f9;
  --rx-bg-soft: #fafbfc;
  --rx-bg-tint: #f6f9f7;

  /* Verts dégradés sophistiqués */
  --rx-green: #00853F;
  --rx-green-deep: #006830;
  --rx-green-light: #ecfdf5;
  --rx-green-tint: #f0fdf4;

  /* Échelle de rayons unifiée */
  --rx-r-sm: 8px;
  --rx-r-md: 14px;
  --rx-r-lg: 20px;
  --rx-r-xl: 28px;
  --rx-r-pill: 50px;

  /* Échelle d'ombres cohérente */
  --rx-shadow-xs: 0 1px 2px rgba(15,23,42,.04);
  --rx-shadow-sm: 0 2px 8px rgba(15,23,42,.06);
  --rx-shadow-md: 0 8px 24px rgba(15,23,42,.08);
  --rx-shadow-lg: 0 20px 48px rgba(15,23,42,.12);
  --rx-shadow-green: 0 14px 38px rgba(0,133,63,.22);

  /* Transitions standard */
  --rx-ease: cubic-bezier(.4,0,.2,1);
  --rx-bounce: cubic-bezier(.34,1.56,.64,1);
}

/* TYPOGRAPHIE FLUIDE — s'adapte de mobile à desktop sans média queries */
body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-size: clamp(.95rem, 1.5vw, 1.02rem);
  line-height: 1.65;
  color: var(--rx-ink);
  letter-spacing: -.005em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Poppins', sans-serif;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -.02em;
  color: var(--rx-ink);
}

h1 { font-size: clamp(1.75rem, 4.5vw, 3rem); margin-bottom: .5em; }
h2 { font-size: clamp(1.4rem, 3vw, 2.2rem); margin-bottom: .5em; }
h3 { font-size: clamp(1.15rem, 2.2vw, 1.5rem); margin-bottom: .4em; }
h4 { font-size: clamp(1rem, 1.6vw, 1.2rem); margin-bottom: .4em; }

p { margin-bottom: 1.1em; color: var(--rx-ink-soft); }
p + p { margin-top: -.2em; }

/* LIENS plus subtils */
a {
  color: var(--rx-green);
  text-decoration: none;
  transition: color .2s var(--rx-ease);
}
a:hover { color: var(--rx-green-deep); }

/* Sélection de texte */
::selection { background: var(--rx-green); color: #fff; }

/* FOCUS visible accessible */
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible {
  outline: 3px solid rgba(0,133,63,.35);
  outline-offset: 2px;
  border-radius: 6px;
}

/* CONTENEUR avec padding latéral fluide */
.rx-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 clamp(16px, 4vw, 32px);
}

/* SECTIONS — rythme vertical harmonieux */
.rx-section { padding: clamp(40px, 8vw, 80px) 0; }
.rx-section-sm { padding: clamp(28px, 5vw, 48px) 0; }

/* BENTO CARDS — plus de profondeur visuelle */
.rx2-bento__card {
  border: 1.5px solid var(--rx-line);
  border-radius: var(--rx-r-lg);
  box-shadow: var(--rx-shadow-xs);
  transition: transform .35s var(--rx-bounce), box-shadow .3s var(--rx-ease), border-color .3s var(--rx-ease);
}
.rx2-bento__card:hover {
  box-shadow: var(--rx-shadow-lg);
}

/* ICÔNES BENTO — pastilles avec dégradé subtil */
.rx2-bento__icon {
  width: 56px;
  height: 56px;
  border-radius: var(--rx-r-md);
  background: linear-gradient(135deg, #f8fafc, #ecfdf5);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--rx-shadow-xs);
}

/* TAGS BENTO plus modernes */
.rx2-bento__tag {
  display: inline-block;
  padding: 5px 12px;
  border-radius: var(--rx-r-pill);
  background: rgba(15,23,42,.05);
  color: var(--rx-ink-soft);
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  margin-bottom: 10px;
}

/* CTA BENTO avec flèche animée */
.rx2-bento__cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: auto;
  padding-top: 14px;
  font-weight: 700;
  font-size: .92rem;
}
.rx2-bento__cta span { transition: transform .25s var(--rx-ease); }
.rx2-bento__card:hover .rx2-bento__cta span { transform: translateX(4px); }

/* SECTION HEADERS unifiés */
.rx2-shead {
  margin-bottom: clamp(24px, 4vw, 40px);
}
.rx2-shead h2 {
  font-size: clamp(1.5rem, 3.2vw, 2.4rem);
  font-weight: 800;
  letter-spacing: -.025em;
}
.rx2-shead__chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border-radius: var(--rx-r-pill);
  background: var(--rx-green-tint);
  color: var(--rx-green);
  font-size: .78rem;
  font-weight: 700;
  margin-bottom: 14px;
  border: 1px solid rgba(0,133,63,.15);
}

/* BOUTONS UNIFIÉS — style cohérent partout */
.rx-btn,
.rx2-btn,
button.rx-btn,
a.rx-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 24px;
  border-radius: var(--rx-r-md);
  font-family: 'Poppins', sans-serif;
  font-weight: 700;
  font-size: .95rem;
  text-decoration: none;
  cursor: pointer;
  border: none;
  transition: transform .2s var(--rx-ease), box-shadow .25s var(--rx-ease);
  white-space: nowrap;
}
.rx-btn--primary {
  background: linear-gradient(135deg, var(--rx-green) 0%, var(--rx-green-deep) 100%);
  color: #fff;
  box-shadow: var(--rx-shadow-sm);
}
.rx-btn--primary:hover {
  transform: translateY(-2px);
  box-shadow: var(--rx-shadow-green);
  color: #fff;
}
.rx-btn--ghost {
  background: #fff;
  color: var(--rx-ink);
  border: 1.5px solid var(--rx-line);
}
.rx-btn--ghost:hover {
  border-color: var(--rx-green);
  color: var(--rx-green);
  transform: translateY(-2px);
}

/* INPUTS / SELECTS / TEXTAREAS — design unifié */
input[type="text"], input[type="email"], input[type="search"],
input[type="tel"], input[type="url"], input[type="number"],
select, textarea {
  width: 100%;
  padding: 11px 14px;
  border: 1.5px solid var(--rx-line);
  border-radius: var(--rx-r-md);
  font-family: 'Inter', sans-serif;
  font-size: .95rem;
  background: #fff;
  color: var(--rx-ink);
  transition: border-color .2s var(--rx-ease), box-shadow .2s var(--rx-ease);
}
input:focus, select:focus, textarea:focus {
  border-color: var(--rx-green);
  box-shadow: 0 0 0 4px rgba(0,133,63,.1);
  outline: none;
}

/* SCROLLBAR personnalisée */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--rx-line-soft); }
::-webkit-scrollbar-thumb { background: var(--rx-muted-soft); border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: var(--rx-muted); }

/* ANIMATIONS subtiles au chargement — forwards (pas backwards = pas de masquage initial) */
@media (prefers-reduced-motion: no-preference) {
  .rx2-bento__card,
  .rx2-feature,
  .rx-card {
    animation: rxFadeUp .5s var(--rx-ease) forwards;
  }
  .rx2-bento__card:nth-child(1) { animation-delay: .05s; }
  .rx2-bento__card:nth-child(2) { animation-delay: .1s; }
  .rx2-bento__card:nth-child(3) { animation-delay: .15s; }
  .rx2-bento__card:nth-child(4) { animation-delay: .2s; }
  .rx2-bento__card:nth-child(5) { animation-delay: .25s; }
}
@keyframes rxFadeUp {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* RESPECT mouvement réduit — accessibilité */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

/* MOBILE polish supplémentaire */
@media (max-width: 768px) {
  .rx-section { padding: 36px 0; }
  .rx2-bento__icon { width: 48px; height: 48px; border-radius: var(--rx-r-sm); }
  .rx2-bento__tag { font-size: .68rem; padding: 4px 10px; }
}


/* =================================================================
   ════════════════════════════════════════════════════════════════
   v9.28 — REFONTE SÉNÉGAL : Identité forte, animations fluides
   ════════════════════════════════════════════════════════════════
================================================================== */

:root {
  /* Palette Sénégal renforcée */
  --sn-green-bright:  #00A651;
  --sn-green-deep:    #006830;
  --sn-yellow-bright: #FFD700;
  --sn-yellow-soft:   #FFF9C4;
  --sn-red-bright:    #E31B23;
  --sn-red-deep:      #B71C1C;
  --sn-sand:          #FFF8E7;
  --sn-baobab:        #8B4513;
  --sn-ocean:         #006994;
}

/* ─── BANDEAU TRICOLORE en haut de page (drapeau SN) ─── */
body::before {
  content: "";
  position: fixed;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: linear-gradient(90deg,
    #00853F 0%, #00853F 33.33%,
    #FDEF42 33.33%, #FDEF42 66.66%,
    #E31B23 66.66%, #E31B23 100%);
  z-index: 99999;
  pointer-events: none;
}

/* ─── HERO SÉNÉGAL : fond plus chaud, motif subtil ─── */
.rx2-hero {
  background:
    radial-gradient(ellipse at top right, rgba(253,239,66,.12) 0%, transparent 50%),
    radial-gradient(ellipse at bottom left, rgba(0,133,63,.10) 0%, transparent 50%),
    linear-gradient(180deg, #fffef9 0%, #fff 100%);
  position: relative;
  overflow: hidden;
}
.rx2-hero::after {
  content: "⭐";
  position: absolute;
  top: 10%; right: 8%;
  font-size: 120px;
  color: rgba(253, 239, 66, .15);
  z-index: 0;
  pointer-events: none;
  animation: snStarFloat 8s ease-in-out infinite;
}
@keyframes snStarFloat {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50%      { transform: translateY(-20px) rotate(15deg); }
}

/* ─── BADGE HERO avec drapeau réel ─── */
.rx2-flag-pill {
  display: inline-block;
  width: 22px;
  height: 14px;
  background: linear-gradient(90deg,
    #00853F 33.33%, #FDEF42 33.33%, #FDEF42 66.66%, #E31B23 66.66%);
  border-radius: 2px;
  position: relative;
  box-shadow: 0 1px 3px rgba(0,0,0,.15);
}
.rx2-flag-pill::after {
  content: "★";
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #00853F;
  font-size: 8px;
}

/* ─── TITRE HERO : plus fort, accent jaune ─── */
.rx2-hero__title {
  font-size: clamp(1.85rem, 5.5vw, 3.4rem);
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: -.03em;
  color: #0b1220;
}
.rx2-hero__accent {
  background: linear-gradient(120deg, #00853F 0%, #00A651 60%, #FDEF42 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  position: relative;
  padding-bottom: 4px;
}
.rx2-hero__accent::after {
  content: "";
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 4px;
  background: linear-gradient(90deg, #00853F 33%, #FDEF42 33%, #FDEF42 66%, #E31B23 66%);
  border-radius: 2px;
}

.rx2-hero__lead {
  font-size: clamp(1rem, 2vw, 1.2rem);
  color: #1e293b;
  line-height: 1.6;
  font-weight: 500;
}

/* ─── BARRE DE RECHERCHE plus moderne ─── */
.rx2-hero__search {
  background: #fff;
  border: 2px solid #e2e8f0;
  border-radius: 18px;
  box-shadow: 0 8px 32px rgba(0,133,63,.10);
  padding: 6px;
  display: flex;
  align-items: center;
  gap: 4px;
  transition: border-color .25s, box-shadow .25s, transform .25s;
}
.rx2-hero__search:focus-within {
  border-color: #00853F;
  box-shadow: 0 12px 40px rgba(0,133,63,.18);
  transform: translateY(-2px);
}
.rx2-hero__search input {
  border: none !important;
  outline: none !important;
  flex: 1;
  padding: 12px 8px;
  font-size: 1rem;
  background: transparent;
  box-shadow: none !important;
}
.rx2-hero__search button {
  background: linear-gradient(135deg, #00853F 0%, #006830 100%);
  color: #fff;
  border: none;
  padding: 12px 22px;
  border-radius: 14px;
  font-weight: 700;
  font-family: 'Poppins', sans-serif;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: transform .2s, box-shadow .2s;
}
.rx2-hero__search button:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(0,133,63,.35);
}

/* ─── TAGS HERO avec accent sénégal ─── */
.rx2-tag {
  background: #fff;
  border: 1.5px solid #e2e8f0;
  color: #0b1220;
  padding: 8px 14px;
  border-radius: 50px;
  font-size: .85rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: all .25s;
  text-decoration: none;
}
.rx2-tag:hover {
  border-color: #00853F;
  color: #00853F;
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0,133,63,.15);
}

/* ─── BENTO CARDS : couleurs SN plus vives ─── */
.rx2-bento__card--green {
  background: linear-gradient(135deg, #fff 0%, #ecfdf5 100%);
  border: 2px solid rgba(0,166,81,.20);
}
.rx2-bento__card--green:hover {
  border-color: #00A651;
  box-shadow: 0 24px 56px rgba(0,166,81,.25);
}
.rx2-bento__card--yellow {
  background: linear-gradient(135deg, #fff 0%, #FFFBEB 100%);
  border: 2px solid rgba(253,239,66,.45);
}
.rx2-bento__card--yellow:hover {
  border-color: #f59e0b;
  box-shadow: 0 24px 56px rgba(253,239,66,.35);
}
.rx2-bento__card--red {
  background: linear-gradient(135deg, #fff 0%, #fef2f2 100%);
  border: 2px solid rgba(227,27,35,.20);
}
.rx2-bento__card--red:hover {
  border-color: #E31B23;
  box-shadow: 0 24px 56px rgba(227,27,35,.22);
}

/* ─── ICÔNE BENTO avec accent SN ─── */
.rx2-bento__card--green .rx2-bento__icon {
  background: linear-gradient(135deg, #ecfdf5, #d1fae5);
  color: #00853F;
}
.rx2-bento__card--yellow .rx2-bento__icon {
  background: linear-gradient(135deg, #FFFBEB, #FEF3C7);
  color: #d97706;
}
.rx2-bento__card--red .rx2-bento__icon {
  background: linear-gradient(135deg, #fef2f2, #fee2e2);
  color: #E31B23;
}
.rx2-bento__card--blue .rx2-bento__icon {
  background: linear-gradient(135deg, #eff6ff, #dbeafe);
  color: #2563eb;
}
.rx2-bento__card--orange .rx2-bento__icon {
  background: linear-gradient(135deg, #fff7ed, #fed7aa);
  color: #ea580c;
}

/* ─── TEXTE BENTO plus lisible ─── */
.rx2-bento__card h3 {
  font-size: clamp(1.1rem, 2vw, 1.4rem);
  font-weight: 800;
  color: #0b1220;
  margin-bottom: 8px;
  line-height: 1.25;
  letter-spacing: -.015em;
}
.rx2-bento__card p {
  color: #334155;
  font-size: .95rem;
  line-height: 1.55;
}
.rx2-bento__tag {
  background: rgba(0,133,63,.08);
  color: #006830;
  font-weight: 800;
}
.rx2-bento__card--yellow .rx2-bento__tag {
  background: rgba(217,119,6,.10);
  color: #b45309;
}
.rx2-bento__card--red .rx2-bento__tag {
  background: rgba(227,27,35,.08);
  color: #b71c1c;
}
.rx2-bento__card--blue .rx2-bento__tag {
  background: rgba(37,99,235,.08);
  color: #1d4ed8;
}
.rx2-bento__card--orange .rx2-bento__tag {
  background: rgba(234,88,12,.10);
  color: #c2410c;
}

/* ─── SECTION HEADERS : titre avec sous-ligne tricolore ─── */
.rx2-shead h2 em {
  font-style: normal;
  background: linear-gradient(120deg, #00853F 0%, #00A651 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  position: relative;
  display: inline-block;
}
.rx2-shead h2 em::after {
  content: "";
  position: absolute;
  left: 0; right: 0;
  bottom: -6px;
  height: 4px;
  background: linear-gradient(90deg, #00853F 33%, #FDEF42 33%, #FDEF42 66%, #E31B23 66%);
  border-radius: 2px;
}

/* ─── ANIMATIONS SCROLL REVEAL — consolidé en fin de fichier ─── */

/* ─── FOOTER avec accents SN ─── */
.rx-footer {
  background: linear-gradient(180deg, #0b1220 0%, #050810 100%);
  position: relative;
  border-top: 4px solid transparent;
  border-image: linear-gradient(90deg, #00853F 33%, #FDEF42 33%, #FDEF42 66%, #E31B23 66%) 1;
}

/* ─── FEATURE CARDS plus SN ─── */
.rx2-feature {
  background: #fff;
  border: 1.5px solid #e8edf2;
  border-radius: 20px;
  padding: clamp(20px, 3vw, 28px);
  transition: transform .3s cubic-bezier(.34,1.56,.64,1), box-shadow .3s, border-color .3s;
}
.rx2-feature:hover {
  transform: translateY(-6px);
  border-color: #00853F;
  box-shadow: 0 20px 44px rgba(0,133,63,.15);
}
.rx2-feature__ico {
  font-size: 32px;
  width: 64px;
  height: 64px;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
}
.rx2-feature h4 {
  font-size: 1.15rem;
  font-weight: 800;
  color: #0b1220;
  margin-bottom: 8px;
}
.rx2-feature p {
  color: #475569;
  font-size: .95rem;
  line-height: 1.55;
}

/* ─── STATCARD HERO ─── */
.rx2-statcard {
  background: linear-gradient(135deg, #fff 0%, #fffef9 100%);
  border: 2px solid rgba(0,133,63,.12);
  border-radius: 24px;
  padding: 24px;
  box-shadow: 0 20px 48px rgba(0,133,63,.10);
  position: relative;
  overflow: hidden;
}
.rx2-statcard::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: linear-gradient(90deg, #00853F 33%, #FDEF42 33%, #FDEF42 66%, #E31B23 66%);
}
.rx2-statcard__head {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: .75rem;
  font-weight: 800;
  color: #00853F;
  letter-spacing: .8px;
  margin-bottom: 16px;
}
.rx2-statcard__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #00A651;
  box-shadow: 0 0 0 0 rgba(0,166,81,.4);
  animation: snPulse 2s infinite;
}
@keyframes snPulse {
  0%   { box-shadow: 0 0 0 0 rgba(0,166,81,.4); }
  70%  { box-shadow: 0 0 0 10px rgba(0,166,81,0); }
  100% { box-shadow: 0 0 0 0 rgba(0,166,81,0); }
}
.rx2-statcard__footer {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid #e8edf2;
  font-size: .82rem;
  color: #64748b;
  text-align: center;
}

/* ─── MOBILE polish supplémentaire ─── */
@media (max-width: 768px) {
  body::before { height: 3px; }
  .rx2-hero::after { font-size: 70px; right: 4%; }
  .rx2-hero__title { font-size: 1.6rem; }
  .rx2-hero__lead { font-size: .95rem; }
  .rx2-hero__search { flex-wrap: nowrap; }
  .rx2-hero__search button { padding: 10px 14px; font-size: .85rem; }
  .rx2-hero__search button svg { display: none; }
  .rx2-statcard { padding: 18px; }
}


/* =================================================================
   ════════════════════════════════════════════════════════════════
   v9.29 — REFONTE TOTALE : NUANCES DE VERT (jaune réduit au minimum)
   ════════════════════════════════════════════════════════════════
================================================================== */

:root {
  /* PALETTE VERT SÉNÉGAL — 8 nuances */
  --gn-50:  #f0fdf4;   /* vert très pâle (fonds) */
  --gn-100: #dcfce7;   /* vert mint */
  --gn-200: #bbf7d0;   /* vert pastel */
  --gn-300: #86efac;   /* vert sauge clair */
  --gn-400: #4ade80;   /* vert prairie */
  --gn-500: #00A651;   /* vert SN vif */
  --gn-600: #00853F;   /* vert SN officiel */
  --gn-700: #006830;   /* vert deep */
  --gn-800: #064e2c;   /* vert forêt */
  --gn-900: #022c1a;   /* vert nuit */
  --gn-ink: #0a1f14;   /* texte sur fond vert */
}

/* ─── BANDEAU TRICOLORE → simplifié vert dominant ─── */
body::before {
  background: linear-gradient(90deg,
    var(--gn-700) 0%, var(--gn-600) 45%,
    #FDEF42 45%, #FDEF42 55%,
    var(--gn-600) 55%, var(--gn-700) 100%) !important;
}

/* ─── HERO : fond vert nuancé, plus de jaune ─── */
.rx2-hero {
  background:
    radial-gradient(ellipse at top right, var(--gn-100) 0%, transparent 55%) !important,
    radial-gradient(ellipse at bottom left, var(--gn-50) 0%, transparent 55%) !important,
    linear-gradient(180deg, #fafffe 0%, #fff 100%) !important;
}
.rx2-hero::after {
  color: rgba(0,133,63,.10) !important;
}

/* Orbes hero : tous en vert, plus de jaune/rouge */
.rx2-hero__orb--g { background: radial-gradient(circle, rgba(0,166,81,.18), transparent 70%) !important; }
.rx2-hero__orb--y { background: radial-gradient(circle, rgba(134,239,172,.20), transparent 70%) !important; }
.rx2-hero__orb--r { background: radial-gradient(circle, rgba(0,104,48,.15), transparent 70%) !important; }

/* ─── BADGE : fond vert mint ─── */
.rx2-hero__badge {
  background: var(--gn-50) !important;
  color: var(--gn-700) !important;
  border: 1.5px solid var(--gn-200) !important;
}

/* ─── TITRE : dégradé vert uniquement ─── */
.rx2-hero__accent {
  background: linear-gradient(120deg, var(--gn-700) 0%, var(--gn-500) 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
}
.rx2-hero__accent::after {
  background: linear-gradient(90deg, var(--gn-700) 0%, var(--gn-400) 100%) !important;
}

/* Titres de section : em uniquement vert */
.rx2-shead h2 em {
  background: linear-gradient(120deg, var(--gn-700) 0%, var(--gn-500) 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
}
.rx2-shead h2 em::after {
  background: linear-gradient(90deg, var(--gn-700) 0%, var(--gn-400) 100%) !important;
}

/* Chip section header */
.rx2-shead__chip {
  background: var(--gn-50) !important;
  color: var(--gn-700) !important;
  border: 1px solid var(--gn-200) !important;
}

/* ─── CARTES BENTO : tout en vert, nuances variées ─── */
.rx2-bento__card,
.rx2-bento__card--green,
.rx2-bento__card--yellow,
.rx2-bento__card--red,
.rx2-bento__card--blue,
.rx2-bento__card--orange {
  background: linear-gradient(135deg, #fff 0%, var(--gn-50) 100%) !important;
  border: 2px solid var(--gn-100) !important;
}
.rx2-bento__card:hover {
  border-color: var(--gn-500) !important;
  box-shadow: 0 24px 56px rgba(0,133,63,.18) !important;
}

/* Variantes nuances vertes différentes par carte */
.rx2-bento__card--big.rx2-bento__card--green {
  background: linear-gradient(135deg, var(--gn-50) 0%, var(--gn-100) 100%) !important;
  border-color: var(--gn-200) !important;
}
.rx2-bento__card--yellow {
  background: linear-gradient(135deg, #fff 0%, #f0fdf9 100%) !important;
  border-color: #a7f3d0 !important;
}
.rx2-bento__card--red {
  background: linear-gradient(135deg, #fff 0%, #ecfdf5 100%) !important;
  border-color: #86efac !important;
}
.rx2-bento__card--blue {
  background: linear-gradient(135deg, #fff 0%, #f0fdf4 100%) !important;
  border-color: #bbf7d0 !important;
}
.rx2-bento__card--orange {
  background: linear-gradient(135deg, #fff 0%, #ecfeef 100%) !important;
  border-color: #a7f3d0 !important;
}

/* ICÔNES BENTO toutes vertes */
.rx2-bento__card .rx2-bento__icon,
.rx2-bento__card--green .rx2-bento__icon,
.rx2-bento__card--yellow .rx2-bento__icon,
.rx2-bento__card--red .rx2-bento__icon,
.rx2-bento__card--blue .rx2-bento__icon,
.rx2-bento__card--orange .rx2-bento__icon {
  background: linear-gradient(135deg, var(--gn-100), var(--gn-200)) !important;
  color: var(--gn-700) !important;
  box-shadow: 0 4px 12px rgba(0,133,63,.15);
}

/* TAGS BENTO tous verts */
.rx2-bento__tag,
.rx2-bento__card--green .rx2-bento__tag,
.rx2-bento__card--yellow .rx2-bento__tag,
.rx2-bento__card--red .rx2-bento__tag,
.rx2-bento__card--blue .rx2-bento__tag,
.rx2-bento__card--orange .rx2-bento__tag {
  background: var(--gn-100) !important;
  color: var(--gn-700) !important;
}

/* CTA Bento */
.rx2-bento__cta {
  color: var(--gn-700) !important;
}

/* ─── BOUTONS : tous verts ─── */
.rx-btn--primary,
.rx2-btn--primary,
button[type="submit"]:not(.cpsn-btn) {
  background: linear-gradient(135deg, var(--gn-600) 0%, var(--gn-700) 100%) !important;
  color: #fff !important;
}
.rx-btn--primary:hover,
.rx2-btn--primary:hover {
  box-shadow: 0 14px 38px rgba(0,133,63,.30) !important;
}
.rx-btn--ghost:hover {
  border-color: var(--gn-600) !important;
  color: var(--gn-700) !important;
}

/* ─── BARRE DE RECHERCHE ─── */
.rx2-hero__search {
  border-color: var(--gn-200) !important;
  box-shadow: 0 8px 32px rgba(0,133,63,.10) !important;
}
.rx2-hero__search:focus-within {
  border-color: var(--gn-600) !important;
  box-shadow: 0 12px 40px rgba(0,133,63,.20) !important;
}
.rx2-hero__search button {
  background: linear-gradient(135deg, var(--gn-600) 0%, var(--gn-700) 100%) !important;
}
.rx2-hero__search-ico {
  color: var(--gn-600) !important;
}

/* ─── TAGS suggestions ─── */
.rx2-tag {
  background: #fff;
  border-color: var(--gn-100) !important;
}
.rx2-tag:hover {
  background: var(--gn-50) !important;
  border-color: var(--gn-500) !important;
  color: var(--gn-700) !important;
}

/* ─── STATCARD ─── */
.rx2-statcard {
  background: linear-gradient(135deg, #fff 0%, var(--gn-50) 100%) !important;
  border-color: var(--gn-200) !important;
  box-shadow: 0 20px 48px rgba(0,133,63,.12) !important;
}
.rx2-statcard::before {
  background: linear-gradient(90deg, var(--gn-700) 0%, var(--gn-500) 50%, var(--gn-400) 100%) !important;
}
.rx2-statcard__head {
  color: var(--gn-700) !important;
}

/* ─── FEATURES ─── */
.rx2-feature {
  border-color: var(--gn-100) !important;
}
.rx2-feature:hover {
  border-color: var(--gn-500) !important;
  box-shadow: 0 20px 44px rgba(0,133,63,.15) !important;
}

/* ─── LIENS ─── */
a {
  color: var(--gn-600);
}
a:hover {
  color: var(--gn-700);
}

/* ─── FOOTER : nuances vertes ─── */
.rx-footer {
  background: linear-gradient(180deg, var(--gn-900) 0%, #000805 100%) !important;
}
.rx-footer a:hover { color: var(--gn-300) !important; }

/* ─── HEADER : touche verte ─── */
.rx-header { border-bottom: 2px solid var(--gn-100); }

/* ─── INPUTS focus vert ─── */
input:focus, select:focus, textarea:focus {
  border-color: var(--gn-600) !important;
  box-shadow: 0 0 0 4px rgba(0,133,63,.12) !important;
}

/* ─── SUPPRESSION JAUNE ailleurs ─── */
.rx2-hero__flag i:nth-child(2) {
  /* on garde le drapeau réel, mais on atténue le jaune ambiant */
  opacity: .85;
}

/* Sélection texte */
::selection { background: var(--gn-600) !important; color: #fff !important; }

/* Scrollbar vert */
::-webkit-scrollbar-thumb { background: var(--gn-300) !important; }
::-webkit-scrollbar-thumb:hover { background: var(--gn-500) !important; }

/* ─── FILTRES VERT (comparateur) ─── */
.cpsn-chip:hover, .cpsn-chip.is-active {
  background: var(--gn-600) !important;
  color: #fff !important;
  border-color: var(--gn-600) !important;
}

/* ─── BADGES & ÉTOILE drapeau : opacités réduites ─── */
.rx2-hero__flag { opacity: .9; }

/* ─── PAGES OUTILS : tableaux et cartes ─── */
.rx-tool-card {
  border-color: var(--gn-100) !important;
}
.rx-tool-card:hover {
  border-color: var(--gn-500) !important;
  box-shadow: 0 18px 40px rgba(0,133,63,.15);
}
.rx-tool-tag {
  background: var(--gn-50) !important;
  color: var(--gn-700) !important;
}

/* ─── COULEUR DE TEXTE GLOBALE plus contrastée ─── */
body, p, li {
  color: #1a2e22;
}
h1, h2, h3, h4, h5, h6 {
  color: var(--gn-ink) !important;
}

/* ═══════════════════════════════════════════════════════
   v9.32 — EN-TÊTES DE PAGES : ANIMATION DRAPEAU SÉNÉGAL
   Override du .rx-page-hero existant pour un look 100% SN
═══════════════════════════════════════════════════════ */
.rx-page-hero{
  position:relative;
  background:linear-gradient(135deg,#003d1c 0%,#00853F 50%,#006830 100%) !important;
  padding:clamp(60px,10vw,110px) 22px clamp(70px,11vw,120px) !important;
  overflow:hidden;
  isolation:isolate;
  border-bottom:6px solid transparent;
  border-image:linear-gradient(90deg,#00853F 33%,#FDEF42 33% 66%,#E31B23 66%) 1;
}
.rx-page-hero::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(ellipse at 18% 20%,rgba(253,239,66,.18),transparent 55%),
    radial-gradient(ellipse at 85% 80%,rgba(227,27,35,.14),transparent 55%);
  animation:rxphPulse 8s ease-in-out infinite alternate;
}
.rx-page-hero::after{
  content:"";position:absolute;inset:0;z-index:-1;opacity:.13;
  background-image:
    linear-gradient(60deg,transparent 48%,#FDEF42 49% 51%,transparent 52%),
    linear-gradient(-60deg,transparent 48%,#E31B23 49% 51%,transparent 52%);
  background-size:80px 80px;
  animation:rxphSlide 22s linear infinite;
}
@keyframes rxphPulse{
  0%{opacity:.6;transform:scale(1)}
  100%{opacity:1;transform:scale(1.08)}
}
@keyframes rxphSlide{
  from{background-position:0 0,0 0}
  to{background-position:160px 80px,-160px 80px}
}
.rx-page-hero__bg{display:none !important}

/* Étoiles flottantes SN */
.rx-page-hero__inner{position:relative;z-index:2;text-align:center;max-width:880px;margin:0 auto}
.rx-page-hero__inner::before,
.rx-page-hero__inner::after{
  content:"★";
  position:absolute;color:#FDEF42;
  text-shadow:0 0 12px rgba(253,239,66,.7);
  animation:rxphStar 7s ease-in-out infinite;
  pointer-events:none;
  font-size:clamp(20px,2.5vw,32px);
}
.rx-page-hero__inner::before{top:-30px;left:6%;animation-delay:0s}
.rx-page-hero__inner::after{bottom:-40px;right:8%;animation-delay:3.5s;font-size:clamp(16px,2vw,26px)}
@keyframes rxphStar{
  0%,100%{opacity:.3;transform:translateY(0) rotate(0)}
  50%{opacity:1;transform:translateY(-15px) rotate(180deg)}
}

/* Bouton retour */
.rx-page-hero__back{
  display:inline-flex !important;align-items:center;gap:6px;
  background:rgba(255,255,255,.15) !important;backdrop-filter:blur(10px);
  color:#fff !important;padding:7px 16px;border-radius:50px;font-size:.85rem;
  font-weight:700;text-decoration:none;margin-bottom:18px;
  border:1.5px solid rgba(255,255,255,.25);
  transition:all .25s;
}
.rx-page-hero__back:hover{
  background:#FDEF42 !important;color:#0a1f14 !important;
  transform:translateX(-4px);border-color:#FDEF42;
}

/* Badge */
.rx-page-hero__badge{
  display:inline-flex !important;align-items:center;gap:8px;
  background:linear-gradient(135deg,#FDEF42,#fbbf24) !important;
  color:#0a1f14 !important;padding:6px 16px;border-radius:50px;
  font-weight:800 !important;font-size:.78rem !important;
  margin-bottom:18px;letter-spacing:.5px;text-transform:uppercase;
  box-shadow:0 8px 24px rgba(253,239,66,.4);
  animation:rxphBadgeFloat 3s ease-in-out infinite;
}
@keyframes rxphBadgeFloat{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-6px)}
}

/* Titre avec drapeau SN ondulant + étoile centrale */
.rx-page-hero__title{
  font-family:'Poppins',sans-serif !important;
  font-weight:900 !important;
  font-size:clamp(2rem,5.5vw,3.5rem) !important;
  color:#fff !important;margin:0 0 22px !important;
  line-height:1.12;letter-spacing:-.02em;
  position:relative;
  text-shadow:0 4px 24px rgba(0,0,0,.25);
  animation:rxphTitleIn 1s cubic-bezier(.34,1.56,.64,1) forwards;
}
/* Drapeau ondulant 3D sous le titre */
.rx-page-hero__title::after{
  content:"";display:block;width:170px;height:34px;margin:20px auto 0;
  background:
    radial-gradient(circle at center, #FDEF42 6px, transparent 7px),
    linear-gradient(90deg,#00853F 33.33%,#FDEF42 33.33% 66.66%,#E31B23 66.66%);
  background-position: center, 0 0;
  background-repeat: no-repeat, no-repeat;
  border-radius:4px;
  box-shadow:0 8px 22px rgba(0,0,0,.35),inset 0 0 0 1.5px rgba(0,0,0,.18);
  transform-origin:center;
  animation:rxphFlagWave3D 3.2s ease-in-out infinite;
  filter:drop-shadow(0 4px 8px rgba(0,0,0,.2));
}
@keyframes rxphTitleIn{
  from{opacity:0;transform:translateY(30px) scale(.95)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
/* Drapeau qui flotte au vent (3D wave) */
@keyframes rxphFlagWave3D{
  0%,100%{transform:perspective(220px) rotateY(0deg) skewX(0deg) translateY(0)}
  20%{transform:perspective(220px) rotateY(-12deg) skewX(-2deg) translateY(-3px)}
  40%{transform:perspective(220px) rotateY(8deg) skewX(2deg) translateY(2px)}
  60%{transform:perspective(220px) rotateY(-8deg) skewX(-2deg) translateY(-2px)}
  80%{transform:perspective(220px) rotateY(12deg) skewX(2deg) translateY(3px)}
}

/* Confettis SN qui tombent doucement */
.rx-page-hero__inner{position:relative}
.rx-page-hero__confetti{
  position:absolute;inset:-30px 0;pointer-events:none;z-index:1;overflow:hidden;
}
.rx-page-hero__confetti span{
  position:absolute;top:-20px;width:8px;height:8px;border-radius:2px;
  opacity:.85;animation:rxphConfetti 9s linear infinite;
}
.rx-page-hero__confetti span:nth-child(1){left:8%;background:#00853F;animation-delay:0s}
.rx-page-hero__confetti span:nth-child(2){left:22%;background:#FDEF42;animation-delay:1.2s;width:6px;height:10px}
.rx-page-hero__confetti span:nth-child(3){left:38%;background:#E31B23;animation-delay:2.4s;border-radius:50%}
.rx-page-hero__confetti span:nth-child(4){left:55%;background:#FDEF42;animation-delay:3.6s;width:10px;height:6px}
.rx-page-hero__confetti span:nth-child(5){left:72%;background:#00853F;animation-delay:.6s;border-radius:50%}
.rx-page-hero__confetti span:nth-child(6){left:88%;background:#E31B23;animation-delay:1.8s}
.rx-page-hero__confetti span:nth-child(7){left:15%;background:#FDEF42;animation-delay:5s;border-radius:50%;width:6px;height:6px}
.rx-page-hero__confetti span:nth-child(8){left:65%;background:#00853F;animation-delay:6.5s;width:8px;height:12px}
@keyframes rxphConfetti{
  0%{transform:translateY(-30px) rotate(0deg);opacity:0}
  10%{opacity:.85}
  90%{opacity:.6}
  100%{transform:translateY(calc(100% + 60px)) rotate(720deg);opacity:0}
}

.rx-page-hero__sub{
  color:rgba(255,255,255,.92) !important;
  font-size:clamp(1rem,1.8vw,1.15rem) !important;
  max-width:640px;margin:0 auto !important;
  line-height:1.6;
  animation:rxphSubIn .9s ease forwards;
}
@keyframes rxphSubIn{
  from{opacity:0;transform:translateY(20px)}
  to{opacity:1;transform:translateY(0)}
}

/* Étoile géante en arrière-plan (clin d'œil au drapeau) */
.rx-page-hero__inner > h1::before{
  content:"★";
  position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);
  font-size:clamp(180px,28vw,360px);
  color:rgba(253,239,66,.06);
  z-index:-1;pointer-events:none;
  animation:rxphBigStar 20s linear infinite;
}
@keyframes rxphBigStar{
  from{transform:translate(-50%,-50%) rotate(0deg)}
  to{transform:translate(-50%,-50%) rotate(360deg)}
}

/* Mobile */
@media(max-width:640px){
  .rx-page-hero{padding:50px 18px 60px !important;border-bottom-width:4px}
  .rx-page-hero__title::after{width:70px;height:4px;margin-top:14px}
}

/* ================================================================
   REFONTE v4 — Blog magazine + Corrections header
   ================================================================ */

/* ══ HERO BLOG ══ */
/* ── En-tête blog v2 : fond clair (surcharge du bloc précédent) ── */
.rx-blog-hero {
  background: linear-gradient(160deg, #f0fdf4 0%, #ecfdf5 55%, #f8fafc 100%);
  color: #0f172a;
  padding: 72px 20px 56px;
}
.rx-blog-hero + * { margin-top: 0; }

.rx-blog-hero__content { position: relative; z-index: 1; }

.rx-blog-hero__eyebrow {
  display: inline-block;
  background: #dcfce7;
  color: #00853F;
  border: 1.5px solid #86efac;
  padding: 6px 18px;
  border-radius: 30px;
  font-size: .8rem;
  font-weight: 700;
  margin-bottom: 18px;
}
.rx-blog-hero__title {
  font-family: 'Poppins', sans-serif;
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 900;
  line-height: 1.15;
  margin: 0 0 14px;
  color: #0f172a;
}
.rx-blog-hero__title mark {
  background: linear-gradient(135deg, #FDEF42, #fde047);
  color: #0f172a;
  padding: 0 8px 2px;
  border-radius: 6px;
  font-style: normal;
}
.rx-blog-hero__sub {
  font-size: clamp(.95rem, 2vw, 1.1rem);
  color: #475569;
  margin: 0 auto 28px;
  max-width: 580px;
}

/* Pills catégories */
.rx-blog-cats {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  max-width: 860px;
  margin: 0 auto;
}
.rx-blog-cat-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: #fff;
  color: #475569;
  text-decoration: none;
  padding: 7px 15px;
  border-radius: 30px;
  font-size: .83rem;
  font-weight: 600;
  border: 1.5px solid #e2e8f0;
  transition: all .22s;
  box-shadow: 0 1px 4px rgba(0,0,0,.06);
}
.rx-blog-cat-pill:hover { background: #ecfdf5; border-color: #00853F; color: #00853F; transform: translateY(-2px); }
.rx-blog-cat-pill.active { background: #00853F; color: #fff; border-color: #00853F; font-weight: 800; box-shadow: 0 6px 18px rgba(0,133,63,.3); }
.rx-blog-cat-pill__n { background: rgba(0,0,0,.1); padding: 1px 7px; border-radius: 10px; font-size: .7rem; font-weight: 800; }

/* ══ SECTION BLOG ══ */
.rx-blog-section {
  background: #f8fafc;
  padding: 56px 0 80px;
  min-height: 50vh;
}

/* ══ GRILLE MAGAZINE ══ */
.rx-mag-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
  margin-bottom: 48px;
}

/* ── Overlay cliquable commun (pas de liens imbriqués) ── */
.rx-mag-featured,
.rx-mag-card { position: relative; }

.rx-mag-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
}

/* Les liens au-dessus de l'overlay */
.rx-mag-cat,
.rx-mag-featured__body a,
.rx-mag-card__body a,
.rx-mag-cta { position: relative; z-index: 2; }

/* ── Article vedette ── */
.rx-mag-featured {
  grid-column: 1 / -1;
  border-radius: 22px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 4px 30px rgba(15,23,42,.1);
  border: 1px solid #e2e8f0;
  transition: transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s;
}
.rx-mag-featured:hover { transform: translateY(-5px); box-shadow: 0 22px 55px rgba(0,133,63,.18); }

.rx-mag-featured__inner {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  min-height: 280px;
}
.rx-mag-featured__img {
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, #00853F, #22c55e, #FDEF42);
  min-height: 260px; /* hauteur plancher si grille ne donne pas de hauteur implicite */
}
.rx-mag-featured__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .6s ease;
}
.rx-mag-featured:hover .rx-mag-featured__img img { transform: scale(1.06); }
.rx-mag-featured__body {
  padding: 40px 36px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.rx-mag-featured__title {
  font-family: 'Poppins', sans-serif;
  font-size: clamp(1.35rem, 2.5vw, 1.9rem);
  font-weight: 800;
  color: #0f172a;
  line-height: 1.25;
  margin: 0 0 14px;
  transition: color .22s;
}
.rx-mag-featured:hover .rx-mag-featured__title { color: #00853F; }
.rx-mag-featured__exc {
  font-size: 1rem;
  color: #475569;
  line-height: 1.7;
  margin: 0 0 24px;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.rx-mag-featured__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 18px;
  border-top: 1px dashed #e2e8f0;
  margin-top: auto;
}

/* ── Cartes standard ── */
.rx-mag-card {
  border-radius: 18px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 2px 14px rgba(15,23,42,.07);
  border: 1px solid #e2e8f0;
  display: flex;
  flex-direction: column;
  transition: transform .3s cubic-bezier(.34,1.56,.64,1), box-shadow .3s, border-color .22s;
}
.rx-mag-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 45px rgba(0,133,63,.18);
  border-color: #a7f3d0;
}
.rx-mag-card__img {
  position: relative;
  height: 155px;
  overflow: hidden;
  background: linear-gradient(135deg, #00853F, #22c55e, #FDEF42);
  flex-shrink: 0;
}
.rx-mag-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .55s ease;
}
.rx-mag-card:hover .rx-mag-card__img img { transform: scale(1.08); }
.rx-mag-card__body {
  padding: 22px 22px 20px;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.rx-mag-card__title {
  font-family: 'Poppins', sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  color: #0f172a;
  line-height: 1.35;
  margin: 0 0 10px;
  transition: color .22s;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.rx-mag-card:hover .rx-mag-card__title { color: #00853F; }
.rx-mag-card__exc {
  font-size: .91rem;
  color: #64748b;
  line-height: 1.65;
  margin: 0 0 16px;
  flex: 1;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.rx-mag-card__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 14px;
  border-top: 1px dashed #e2e8f0;
  margin-top: auto;
}

/* ── Éléments communs ── */
.rx-mag-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  font-size: .77rem;
  color: #94a3b8;
  font-weight: 600;
  margin-bottom: 12px;
}
.rx-mag-meta time { color: #64748b; }

.rx-mag-badge {
  position: absolute;
  top: 14px;
  left: 14px;
  background: linear-gradient(135deg, #FDEF42, #fde047);
  color: #0f172a;
  padding: 5px 12px;
  border-radius: 20px;
  font-size: .72rem;
  font-weight: 800;
  box-shadow: 0 4px 14px rgba(253,239,66,.5);
  z-index: 2;
}
.rx-mag-cat {
  position: absolute;
  top: 12px;
  right: 12px;
  background: rgba(15,23,42,.82);
  color: #fff !important;
  padding: 4px 11px;
  border-radius: 20px;
  font-size: .72rem;
  font-weight: 700;
  text-decoration: none;
  z-index: 3;
  transition: background .2s;
}
.rx-mag-cat:hover { background: #00853F !important; }
.rx-mag-cat--overlay { top: 14px; right: 14px; }

.rx-mag-noimg {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  background: linear-gradient(135deg, #00853F, #22c55e 60%, #FDEF42);
  font-size: 3.5rem;
}
.rx-mag-noimg--lg { font-size: 6rem; }

.rx-mag-author {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: .84rem;
  font-weight: 600;
  color: #475569;
}
.rx-mag-author--sm { font-size: .78rem; gap: 6px; color: #64748b; }
.rx-mag-avatar { width: 34px; height: 34px; border-radius: 50%; border: 2px solid #e2e8f0; }
.rx-mag-avatar--sm { width: 26px; height: 26px; border-width: 1.5px; }

.rx-mag-cta {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #00853F !important;
  font-weight: 800;
  font-size: .9rem;
  text-decoration: none;
  white-space: nowrap;
  transition: gap .25s;
}
.rx-mag-cta:hover { gap: 9px; }
.rx-mag-cta--sm { font-size: .84rem; }
.rx-mag-arr { display: inline-block; transition: transform .3s; }
.rx-mag-featured:hover .rx-mag-arr,
.rx-mag-card:hover .rx-mag-arr { transform: translateX(5px); }

/* ── Empty state ── */
.rx-blog-empty { text-align: center; padding: 80px 20px; }
.rx-blog-empty__icon { font-size: 5rem; display: block; margin-bottom: 16px; animation: rxFloat 3s ease-in-out infinite; }
@keyframes rxFloat { 0%,100%{transform:translateY(0);} 50%{transform:translateY(-10px);} }
.rx-blog-empty h2 { font-family: 'Poppins'; color: #0f172a; margin: 0 0 8px; }
.rx-blog-empty p { color: #64748b; margin: 0 0 24px; }
.rx-blog-empty__cta { display: inline-block; background: #00853F; color: #fff; padding: 12px 24px; border-radius: 30px; font-weight: 700; text-decoration: none; }

/* ── Pagination ── */
.rx-pagination { text-align: center; margin-top: 16px; }
.rx-pagination .page-numbers {
  display: inline-block; padding: 10px 16px; margin: 0 3px;
  background: #fff; border-radius: 12px; color: #475569;
  text-decoration: none; font-weight: 700; border: 1.5px solid #e2e8f0;
  transition: all .22s;
}
.rx-pagination .page-numbers:hover { background: #ecfdf5; color: #00853F; border-color: #a7f3d0; transform: translateY(-2px); }
.rx-pagination .page-numbers.current { background: #00853F; color: #fff; border-color: #00853F; box-shadow: 0 6px 16px rgba(0,133,63,.3); }

/* ── Responsive ── */
@media (max-width: 1024px) {
  .rx-mag-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  .rx-mag-grid { grid-template-columns: 1fr; gap: 18px; }
  .rx-mag-featured__inner { grid-template-columns: 1fr; min-height: auto; }
  .rx-mag-featured__img { height: 175px; }
  .rx-mag-featured__body { padding: 20px 16px 18px; }
  .rx-mag-featured__title { font-size: 1.25rem; }
  .rx-mag-card__img { height: 145px; }
  .rx-blog-hero { padding: 48px 14px 36px; }
  .rx-blog-section { padding: 32px 0 52px; }
}
@media (max-width: 480px) {
  .rx-mag-card__img { height: 130px; }
  .rx-mag-featured__img { height: 150px; }
}

/* ── Article single : espacement ── */
.rx-single,
.rx-post,
.single-post .rx-main,
article.type-post {
  margin-top: 0;
}
.rx-post-header { padding-top: 48px; }
.rx-post-content { padding-bottom: 64px; }
.rx-post-content p { line-height: 1.85; margin-bottom: 1.25rem; }

/* ══ Dark mode blog ══ */
body.rx-dark .rx-blog-section { background: #0f172a; }
body.rx-dark .rx-mag-card,
body.rx-dark .rx-mag-featured { background: #1e293b; border-color: #334155; }
body.rx-dark .rx-mag-card__title,
body.rx-dark .rx-mag-featured__title { color: #e2e8f0; }
body.rx-dark .rx-mag-card__exc,
body.rx-dark .rx-mag-featured__exc { color: #94a3b8; }
body.rx-dark .rx-mag-meta time,
body.rx-dark .rx-mag-meta span { color: #64748b; }
body.rx-dark .rx-mag-card__foot,
body.rx-dark .rx-mag-featured__foot { border-color: #334155; }
body.rx-dark .rx-pagination .page-numbers { background: #1e293b; border-color: #334155; color: #94a3b8; }
body.rx-dark .rx-blog-cat-pill { background: rgba(255,255,255,.07); }

/* ══ Fin refonte v4 ══ */

/* ================================================================
   CORRECTIFS v5.1 — Image article + Espacement lecture
   ================================================================ */

/* ── Image à la une (article single) — hauteur max contrainte ── */
.rx-single__thumb {
  margin: 0 0 48px;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 10px 32px rgba(15,23,42,.12);
}
.rx-single__thumb img {
  width: 100%;
  height: auto;
  max-height: 420px;
  object-fit: cover;
  display: block;
}
@media (max-width: 768px) {
  .rx-single__thumb img { max-height: 240px; }
  .rx-single__thumb { margin: 0 0 28px; border-radius: 14px; }
}
@media (max-width: 480px) {
  .rx-single__thumb img { max-height: 190px; }
}

/* ── Espacement général de la zone lecture ── */
.rx-single__container {
  max-width: 1100px;
  padding: 56px 24px 90px;
}
@media (max-width: 768px) {
  .rx-single__container { padding: 36px 16px 64px; }
}

/* ── Corps de l'article : air et lisibilité ── */
.rx-single__main {
  max-width: 820px;
  margin: 0 auto;
  color: #334155;
  font-size: 1.06rem;
  line-height: 1.9;
}
.rx-single__main p {
  margin-bottom: 1.5rem;
  color: #3d4e60;
}
.rx-single__main h2 {
  margin-top: 2.2em;
  margin-bottom: .7em;
  font-size: 1.65rem;
}
.rx-single__main h3 {
  margin-top: 1.8em;
  margin-bottom: .5em;
  font-size: 1.3rem;
}
.rx-single__main ul,
.rx-single__main ol {
  padding-left: 1.5em;
  margin: 0 0 1.4rem;
}
.rx-single__main ul li,
.rx-single__main ol li {
  margin-bottom: .55rem;
  line-height: 1.8;
}
.rx-single__main blockquote {
  border-left: 4px solid #00853F;
  padding: 14px 20px;
  margin: 1.8rem 0;
  background: #ecfdf5;
  border-radius: 0 12px 12px 0;
  font-style: italic;
  color: #064e3b;
}
.rx-single__main img {
  border-radius: 12px;
  margin: 1.4em auto;
  display: block;
  max-width: 100%;
  height: auto; /* ne jamais forcer object-fit sur les images inline — elles seraient rognées */
}
@media (max-width: 768px) {
  .rx-single__main { font-size: 1rem; line-height: 1.8; }
}

/* ── Hero article : espace intérieur ── */
.rx-single-hero {
  padding: 48px 0 44px;
}
@media (max-width: 768px) {
  .rx-single-hero { padding: 32px 0 28px; }
}

/* ── Fin correctifs v5.1 ── */

/* ================================================================
   OVERRIDE FINAL v5.2 — Nav desktop garantie sur même ligne logo
   Ces règles sont les dernières = priorité maximale
   ================================================================ */
@media (min-width: 769px) and (max-width: 1399px) {
  .rx-nav   { display: flex !important; flex-wrap: nowrap; gap: 1px; overflow: visible; }
  .rx-burger{ display: none !important; }
  .rx-nav__lbl { display: none !important; }
  .rx-nav a { padding: 7px 9px !important; font-size: .88rem; }
  .rx-nav a.rx-nav__contact { padding: 7px 14px !important; }
  .rx-nav a.rx-nav__contact .rx-nav__lbl { display: inline !important; }
  .rx-header__inner { height: 64px; flex-wrap: nowrap; align-items: center; gap: .75rem; overflow: hidden; }
}
@media (min-width: 1400px) {
  .rx-nav   { display: flex !important; flex-wrap: nowrap; gap: 2px; }
  .rx-burger{ display: none !important; }
  .rx-nav__lbl { display: inline !important; }
  .rx-nav a { padding: 7px 12px !important; font-size: .87rem; }
  .rx-header__inner { height: 64px; flex-wrap: nowrap; align-items: center; gap: 1rem; overflow: hidden; }
}
@media (max-width: 768px) {
  .rx-nav   { display: none !important; }
  .rx-burger{ display: flex !important; }
}
/* ── Fin override final ── */

/* ═══════════════════════════════════════════════════════════════════
   v9.4 — OPTIMISATIONS PERFORMANCE & FLUIDITÉ
   ─ Animations 100% composées (transform + opacity uniquement)
   ─ Hints GPU (will-change) sur les éléments animés en boucle
   ─ Respect de prefers-reduced-motion (accessibilité + batterie)
   ─ content-visibility pour les sections hors écran (peinture lazy)
═══════════════════════════════════════════════════════════════════ */

/* ─── Hints GPU sur les éléments en boucle infinie ─── */
.rx-orb,
.rx-mm__orb,
.rx-blog-hero__orb,
.rx-footer__orb,
.rx-float,
.rx-hero-cta__glow,
.rx-hero-cta__ring,
.rx-hero-cta__sparkle,
.rx-hero h1 mark,
.rx-cta-btn__icon,
.rx-publish-btn__icon,
.rx-footer__logo-flag,
.rx-footer__heart span:first-child {
  will-change: transform, opacity;
  transform: translateZ(0);             /* force la couche GPU */
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

/* ─── Hero gradient → couche translatée (composée) au lieu de background-position ─── */
.rx-hero { background: linear-gradient(135deg, #006830 0%, #00853F 45%, #14532d 100%); animation: none; position: relative; isolation: isolate; }
.rx-hero::before {
  content: ""; position: absolute; inset: -25%;
  background: linear-gradient(135deg, #006830 0%, #00853F 50%, #14532d 100%);
  background-size: 100% 100%;
  opacity: .6;
  z-index: -1;
  will-change: transform;
  animation: rxHeroDrift 18s ease-in-out infinite;
}
@keyframes rxHeroDrift {
  0%, 100% { transform: translate3d(0, 0, 0) scale(1.05); }
  50%      { transform: translate3d(-4%, -2%, 0) scale(1.1); }
}

/* ─── Badge glow → pseudo-élément en scale/opacity (composé) au lieu de box-shadow ─── */
.rx-hero__badge { animation: none; position: relative; }
.rx-hero__badge::after {
  content: ""; position: absolute; inset: -6px;
  border-radius: inherit;
  box-shadow: 0 0 24px rgba(253,239,66,.45);
  opacity: 0;
  pointer-events: none;
  will-change: opacity, transform;
  animation: rxBadgeGlowGPU 3s ease-in-out infinite;
}
@keyframes rxBadgeGlowGPU {
  0%, 100% { opacity: 0;   transform: scale(.96); }
  50%      { opacity: 1;   transform: scale(1.04); }
}

/* ─── CTA bg-shift → couche supplémentaire en translate3d ─── */
.rx-hero-cta__bg { animation: none; overflow: hidden; }
.rx-hero-cta__bg::after {
  content: ""; position: absolute; inset: -50%;
  background: inherit;
  background-size: 200% 200%;
  will-change: transform;
  animation: rxCtaBgGPU 5s ease infinite;
}
@keyframes rxCtaBgGPU {
  0%, 100% { transform: translate3d(0, 0, 0); }
  50%      { transform: translate3d(-25%, 0, 0); }
}

/* ─── Shimmer (skeleton) → mask translaté au lieu de background-position ─── */
.rx-shimmer {
  background: linear-gradient(90deg, #f1f5f9 0%, #e2e8f0 50%, #f1f5f9 100%);
  background-size: 200% 100%;
  position: relative;
  overflow: hidden;
  animation: none;
}
.rx-shimmer::after {
  content: ""; position: absolute; inset: 0;
  background: inherit;
  will-change: transform;
  animation: rxShimmerGPU 1.5s linear infinite;
  transform: translate3d(-100%, 0, 0);
}
@keyframes rxShimmerGPU {
  from { transform: translate3d(-100%, 0, 0); }
  to   { transform: translate3d(100%, 0, 0); }
}

/* ─── Footer flag pulse → opacity/scale (composé) au lieu de background ─── */
.rx-footer__flag, .rx-flag-stripe { will-change: transform, opacity; transform: translateZ(0); }

/* ─── content-visibility — peinture paresseuse hors-écran ─── */
.rx-footer,
.rx-newsletter,
.rx-section,
.rx-section-sm,
.rx-tools,
.rx-emplois,
.rx-restos,
.rx-stats,
.rx-posts {
  content-visibility: auto;
  contain-intrinsic-size: 600px;
}

/* ─── Smooth scroll global ─── */
html { scroll-behavior: smooth; }

/* ─── Améliorations fluidité scroll ─── */
* { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }
img, picture, video, canvas, svg { display: block; max-width: 100%; }

/* ─── prefers-reduced-motion : accessibilité + batterie ─── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
  html { scroll-behavior: auto; }
}

/* ─── Print : économies d'encre ─── */
@media print {
  .rx-header, .rx-footer, .rx-mobile-menu, .rx-search-panel,
  .rx-scrolltop, .rx-hero__orbs, .rx-hero__floats,
  .rx-mm__bg, .rx-newsletter { display: none !important; }
  body { color: #000; background: #fff; }
  a { color: #000; text-decoration: underline; }
}

/* ─── Mode sombre — finition couleurs cards/buttons ─── */
body.rx-dark .rx-card,
body.rx-dark .rx-section,
body.rx-dark .rx-tools__item,
body.rx-dark .rx-restos__item,
body.rx-dark .rx-emplois__item,
body.rx-dark .rx-posts__item { background: #1e293b; color: #e2e8f0; border-color: #334155; }
body.rx-dark .rx-section-title,
body.rx-dark h1, body.rx-dark h2, body.rx-dark h3 { color: #f1f5f9; }
body.rx-dark .rx-newsletter { background: linear-gradient(135deg, #14532d, #0f172a); }

/* ═══════════════════════════════════════════════════════════════════
   ✦ RIF XALIMA 2026 — BOOST VISUEL & ANIMATIONS
   Ajout v9.5 : couleurs vives 2026, animations fluides,
   fix overlay (photos + textes blog cachés derrière),
   glassmorphism, gradient mesh, hover premium
   ═══════════════════════════════════════════════════════════════════ */

:root{
  --rx-violet:#7C3AED;
  --rx-violet-deep:#5B21B6;
  --rx-magenta:#EC4899;
  --rx-cyan:#06B6D4;
  --rx-cyan-deep:#0E7490;
  --rx-lime:#84CC16;
  --rx-orange:#F97316;
  --rx-sand:#FEF3C7;
  --rx-mesh: radial-gradient(at 20% 10%, rgba(124,58,237,.18) 0px, transparent 55%),
             radial-gradient(at 85% 15%, rgba(6,182,212,.20) 0px, transparent 55%),
             radial-gradient(at 50% 90%, rgba(236,72,153,.15) 0px, transparent 55%),
             radial-gradient(at 10% 75%, rgba(132,204,22,.18) 0px, transparent 55%);
  --rx-shadow-glow: 0 18px 50px -12px rgba(124,58,237,.35);
  --rx-shadow-soft: 0 22px 55px -18px rgba(15,23,42,.18);
}

/* ─────────────────────────────────────────────
   ✱ FIX CRITIQUE — Overlay cliquable n'écrase plus
   ni les images, ni les textes des cartes magazine
   (avant : .rx-mag-overlay z-index:1 > textes static)
─────────────────────────────────────────────── */
.rx-mag-card,
.rx-mag-featured{ isolation:isolate; }

.rx-mag-card__img,
.rx-mag-card__body,
.rx-mag-featured__img,
.rx-mag-featured__body,
.rx-mag-featured__inner,
.rx-mag-meta,
.rx-mag-card__title,
.rx-mag-card__exc,
.rx-mag-card__foot,
.rx-mag-featured__title,
.rx-mag-featured__exc,
.rx-mag-featured__foot,
.rx-mag-author,
.rx-mag-author span,
.rx-mag-badge,
.rx-mag-noimg{
  position:relative;
  z-index:2;
}

/* L'overlay cliquable reste sous le contenu mais au-dessus du fond */
.rx-mag-overlay{ z-index:1 !important; background:transparent; }

/* Les liens internes (catégorie, CTA) restent prioritairement cliquables */
.rx-mag-cat,
.rx-mag-cta,
.rx-mag-featured__body a,
.rx-mag-card__body a{ position:relative; z-index:3; }

/* Image 100% visible — fix object-fit + min-height pour LCP */
.rx-mag-card__img,
.rx-mag-card__img img{ display:block; }
.rx-mag-card__img{ min-height:170px; background:linear-gradient(135deg,#7C3AED 0%,#06B6D4 50%,#84CC16 100%); }
.rx-mag-card__img img{ width:100%; height:100%; object-fit:cover; object-position:center; }
.rx-mag-featured__img{ min-height:300px; background:linear-gradient(135deg,#5B21B6 0%,#EC4899 45%,#F97316 100%); }
.rx-mag-featured__img img{ width:100%; height:100%; object-fit:cover; object-position:center; }

/* Cartes plus vivantes 2026 */
.rx-mag-card{
  border-radius:22px;
  border:1px solid rgba(124,58,237,.12);
  background:#fff;
  box-shadow:0 8px 24px -8px rgba(15,23,42,.10);
  transition:transform .45s cubic-bezier(.34,1.56,.64,1), box-shadow .45s, border-color .25s;
}
.rx-mag-card:hover{
  transform:translateY(-8px) rotate(-.3deg);
  box-shadow:0 28px 60px -18px rgba(124,58,237,.35);
  border-color:rgba(124,58,237,.45);
}
.rx-mag-featured{
  border-radius:28px;
  border:1px solid rgba(236,72,153,.14);
  box-shadow:0 14px 40px -16px rgba(91,33,182,.30);
}
.rx-mag-featured:hover{
  transform:translateY(-6px);
  box-shadow:0 32px 80px -20px rgba(236,72,153,.40);
}

/* Badge "À la une" — shimmer animé */
.rx-mag-badge{
  background:linear-gradient(120deg,#FDEF42 0%,#F97316 45%,#EC4899 100%);
  background-size:200% 200%;
  color:#0f172a;
  padding:6px 14px;
  border-radius:999px;
  font-weight:900;
  letter-spacing:.3px;
  box-shadow:0 8px 22px -6px rgba(249,115,22,.55);
  animation:rxShimmer 4.5s ease-in-out infinite;
}
@keyframes rxShimmer{
  0%,100%{ background-position:0% 50%; }
  50%{ background-position:100% 50%; }
}

/* Catégorie pill — touche violette 2026 */
.rx-mag-cat{
  background:linear-gradient(135deg, rgba(124,58,237,.95), rgba(91,33,182,.95)) !important;
  border:1px solid rgba(255,255,255,.25);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  text-transform:uppercase;
  letter-spacing:.5px;
  font-size:.68rem !important;
  padding:5px 13px !important;
}
.rx-mag-cat:hover{ background:linear-gradient(135deg,#EC4899,#7C3AED) !important; transform:translateY(-1px); }

/* CTA "Lire l'article" — gradient + flèche animée */
.rx-mag-cta{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:linear-gradient(135deg,#7C3AED,#EC4899);
  color:#fff !important;
  padding:9px 18px;
  border-radius:999px;
  font-weight:700;
  font-size:.86rem;
  text-decoration:none;
  box-shadow:0 8px 22px -6px rgba(124,58,237,.50);
  transition:transform .25s, box-shadow .25s, background-position .4s;
  background-size:200% 200%;
}
.rx-mag-cta--sm{ padding:7px 14px; font-size:.78rem; }
.rx-mag-cta:hover{
  transform:translateY(-2px);
  background-position:100% 0;
  box-shadow:0 14px 32px -8px rgba(236,72,153,.55);
}
.rx-mag-cta .rx-mag-arr{ display:inline-block; transition:transform .3s; }
.rx-mag-cta:hover .rx-mag-arr{ transform:translateX(4px); }

/* Hero blog — gradient mesh 2026 */
.rx-blog-hero{
  position:relative;
  overflow:hidden;
  background:#0f172a;
  color:#fff;
}
.rx-blog-hero::before{
  content:"";
  position:absolute; inset:0;
  background:var(--rx-mesh), linear-gradient(135deg,#1e1b4b 0%, #0f172a 60%, #1f2937 100%);
  z-index:0;
}
.rx-blog-hero__content{ position:relative; z-index:2; }
.rx-blog-hero__bg{ z-index:1; }
.rx-blog-hero__orb{
  position:absolute;
  border-radius:50%;
  filter:blur(70px);
  opacity:.55;
  animation:rxFloat 12s ease-in-out infinite;
}
.rx-blog-hero__orb--g{ width:340px; height:340px; background:#7C3AED; top:-80px; left:-60px; }
.rx-blog-hero__orb--y{ width:280px; height:280px; background:#06B6D4; bottom:-60px; right:10%; animation-delay:-4s; animation-duration:14s; }
.rx-blog-hero__orb--r{ width:240px; height:240px; background:#EC4899; top:30%; right:-50px; animation-delay:-7s; animation-duration:16s; }
@keyframes rxFloat{
  0%,100%{ transform:translate(0,0) scale(1); }
  33%{ transform:translate(30px,-40px) scale(1.08); }
  66%{ transform:translate(-25px,25px) scale(.95); }
}
.rx-blog-hero__title mark{
  background:linear-gradient(120deg,#FDEF42,#F97316,#EC4899);
  background-clip:text;
  -webkit-background-clip:text;
  color:transparent;
  background-size:200% 200%;
  animation:rxShimmer 6s ease-in-out infinite;
  padding:0;
}

/* Pills catégories animées */
.rx-blog-cat-pill{
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.18);
  color:#fff;
  padding:7px 16px;
  border-radius:999px;
  font-weight:700;
  font-size:.85rem;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  gap:7px;
  transition:transform .25s, background .25s, border-color .25s;
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
}
.rx-blog-cat-pill:hover,
.rx-blog-cat-pill.active{
  background:linear-gradient(135deg,#7C3AED,#EC4899);
  border-color:transparent;
  transform:translateY(-2px);
  box-shadow:0 10px 24px -8px rgba(124,58,237,.55);
}
.rx-blog-cat-pill__n{
  background:rgba(0,0,0,.25);
  padding:1px 8px;
  border-radius:999px;
  font-size:.72rem;
  font-weight:800;
}

/* Grille avec apparition en cascade */
.rx-mag-grid > .rx-mag-card,
.rx-mag-grid > .rx-mag-featured{
  opacity:0;
  transform:translateY(28px) scale(.98);
  animation:rxRiseIn .7s cubic-bezier(.22,1,.36,1) forwards;
}
.rx-mag-grid > *:nth-child(1){ animation-delay:.05s; }
.rx-mag-grid > *:nth-child(2){ animation-delay:.15s; }
.rx-mag-grid > *:nth-child(3){ animation-delay:.25s; }
.rx-mag-grid > *:nth-child(4){ animation-delay:.32s; }
.rx-mag-grid > *:nth-child(5){ animation-delay:.39s; }
.rx-mag-grid > *:nth-child(6){ animation-delay:.46s; }
.rx-mag-grid > *:nth-child(7){ animation-delay:.52s; }
.rx-mag-grid > *:nth-child(n+8){ animation-delay:.58s; }
@keyframes rxRiseIn{
  from{ opacity:0; transform:translateY(28px) scale(.98); }
  to{ opacity:1; transform:translateY(0) scale(1); }
}

/* Conteneurs noimg : gradient vivant et animé */
.rx-mag-noimg{
  background:linear-gradient(135deg,#7C3AED 0%,#06B6D4 35%,#84CC16 70%,#FDEF42 100%);
  background-size:300% 300%;
  animation:rxGradMove 9s ease-in-out infinite;
  color:#fff;
  text-shadow:0 4px 14px rgba(0,0,0,.25);
}
@keyframes rxGradMove{
  0%,100%{ background-position:0% 50%; }
  50%{ background-position:100% 50%; }
}

/* Image hero article (single.php) */
.rx-single__thumb{
  border-radius:24px;
  overflow:hidden;
  box-shadow:0 22px 60px -22px rgba(124,58,237,.35);
  transition:transform .45s;
}
.rx-single__thumb img{ width:100%; height:auto; display:block; }
.rx-single__thumb:hover{ transform:translateY(-4px); }

/* Cartes "à lire aussi" */
.rx-related-card{
  border-radius:18px;
  overflow:hidden;
  background:#fff;
  border:1px solid rgba(124,58,237,.10);
  box-shadow:0 8px 24px -10px rgba(15,23,42,.10);
  text-decoration:none;
  display:flex;
  flex-direction:column;
  transition:transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s, border-color .25s;
}
.rx-related-card:hover{
  transform:translateY(-6px);
  border-color:rgba(124,58,237,.45);
  box-shadow:0 22px 50px -16px rgba(124,58,237,.30);
}
.rx-related-card__thumb{
  height:160px;
  overflow:hidden;
  background:linear-gradient(135deg,#7C3AED,#EC4899,#F97316);
  background-size:200% 200%;
  animation:rxGradMove 10s ease-in-out infinite;
  display:flex; align-items:center; justify-content:center;
}
.rx-related-card__thumb img{ width:100%; height:100%; object-fit:cover; transition:transform .55s; }
.rx-related-card:hover .rx-related-card__thumb img{ transform:scale(1.07); }
.rx-related-card__ph{ font-size:3rem; color:#fff; }
.rx-related-card__body{ padding:18px 20px 20px; display:flex; flex-direction:column; gap:8px; }
.rx-related-card__meta{ display:flex; gap:10px; font-size:.74rem; color:#94a3b8; font-weight:600; }
.rx-related-card__title{
  font-family:'Poppins',sans-serif;
  font-weight:700;
  font-size:1rem;
  color:#0f172a;
  line-height:1.35;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.rx-related-card__excerpt{
  font-size:.85rem; color:#64748b; line-height:1.55;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}

/* Barre de lecture — gradient 2026 */
.rx-reading-bar{
  position:fixed; top:0; left:0;
  width:100%; height:4px; z-index:9999;
  background:transparent;
}
.rx-reading-bar__fill{
  height:100%;
  width:0%;
  background:linear-gradient(90deg,#7C3AED,#EC4899,#F97316,#FDEF42);
  background-size:300% 100%;
  animation:rxBarShift 5s linear infinite;
  transition:width .12s linear;
  border-radius:0 4px 4px 0;
  box-shadow:0 0 18px rgba(236,72,153,.55);
}
@keyframes rxBarShift{
  0%{ background-position:0% 0; }
  100%{ background-position:300% 0; }
}

/* TL;DR EN BREF — refresh 2026 */
.rx-tldr{
  background:linear-gradient(135deg, #faf5ff 0%, #fef3c7 50%, #ecfeff 100%) !important;
  border-left:5px solid #7C3AED !important;
  border-radius:18px !important;
  box-shadow:0 12px 30px -16px rgba(124,58,237,.25);
}
.rx-tldr span:first-child{
  background:linear-gradient(135deg,#7C3AED,#EC4899) !important;
  box-shadow:0 6px 18px -6px rgba(236,72,153,.55);
}

/* Tags / pills articles */
.rx-tag-pill{
  display:inline-block;
  padding:6px 14px;
  border-radius:999px;
  background:linear-gradient(135deg, rgba(124,58,237,.10), rgba(236,72,153,.10));
  border:1px solid rgba(124,58,237,.25);
  color:#5B21B6;
  font-weight:700;
  font-size:.78rem;
  text-decoration:none;
  margin:4px 6px 4px 0;
  transition:all .25s;
}
.rx-tag-pill:hover{
  background:linear-gradient(135deg,#7C3AED,#EC4899);
  color:#fff;
  border-color:transparent;
  transform:translateY(-2px);
  box-shadow:0 10px 22px -8px rgba(124,58,237,.45);
}

/* Pagination 2026 */
.rx-pagination .page-numbers{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:42px; height:42px;
  padding:0 14px;
  border-radius:12px;
  background:#fff;
  border:1px solid rgba(124,58,237,.18);
  color:#475569;
  font-weight:700;
  text-decoration:none;
  margin:4px;
  transition:all .25s;
}
.rx-pagination .page-numbers:hover,
.rx-pagination .page-numbers.current{
  background:linear-gradient(135deg,#7C3AED,#EC4899);
  border-color:transparent;
  color:#fff;
  transform:translateY(-2px);
  box-shadow:0 10px 22px -8px rgba(124,58,237,.45);
}

/* Mobile : grille 1 colonne propre */
@media (max-width: 768px){
  .rx-mag-grid{ grid-template-columns:1fr !important; gap:18px !important; }
  .rx-mag-featured__inner{ grid-template-columns:1fr !important; }
  .rx-mag-featured__img{ min-height:220px; }
  .rx-mag-featured__body{ padding:24px 22px; }
}
@media (max-width: 1024px) and (min-width:769px){
  .rx-mag-grid{ grid-template-columns:repeat(2,1fr); }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .rx-mag-grid > *,
  .rx-mag-badge,
  .rx-mag-noimg,
  .rx-blog-hero__title mark,
  .rx-related-card__thumb,
  .rx-reading-bar__fill{
    animation:none !important;
  }
  .rx-mag-card:hover,
  .rx-mag-featured:hover,
  .rx-related-card:hover{ transform:none !important; }
}

/* Dark mode harmonisé */
body.rx-dark .rx-mag-card,
body.rx-dark .rx-related-card{
  background:#1e1b4b !important;
  border-color:rgba(124,58,237,.30) !important;
}
body.rx-dark .rx-mag-card__title,
body.rx-dark .rx-related-card__title{ color:#f1f5f9 !important; }
body.rx-dark .rx-mag-card__exc,
body.rx-dark .rx-related-card__excerpt{ color:#cbd5e1 !important; }
body.rx-dark .rx-pagination .page-numbers{ background:#1e293b; color:#cbd5e1; border-color:rgba(124,58,237,.30); }

/* ════════════════════════════════════════════════════════════════════════
   ✦✦✦ RIF XALIMA — REFONTE WAOW v9.6 (2026)
   • Système de couleurs theme-aware (light/dark via variables CSS)
   • Dark mode COMPLET sur tout le site (header, hero, cards, articles,
     footer, formulaires, commentaires, plugins WP, widgets)
   • Typographie qui sort (gradient text, fluid type, contraste AAA)
   • Microinteractions premium (magnetic, tilt 3D, ripple, parallax)
   • Bande d'outils sticky pour parcours utilisateur fluide
   • Optimisé performance (will-change ciblé, GPU layers, no jank)
   ════════════════════════════════════════════════════════════════════════ */

/* ─── Variables theme-aware (basculent automatiquement en dark) ─── */
:root{
  --rx-bg:           #ffffff;
  --rx-bg-soft:      #f8fafc;
  --rx-bg-mute:      #f1f5f9;
  --rx-surface:      #ffffff;
  --rx-surface-2:    #fafbff;
  --rx-text:         #0f172a;
  --rx-text-soft:    #334155;
  --rx-text-mute:    #64748b;
  --rx-border:       #e2e8f0;
  --rx-border-soft:  #f1f5f9;
  --rx-shadow-sm:    0 1px 3px rgba(15,23,42,.06), 0 1px 2px rgba(15,23,42,.04);
  --rx-shadow-md:    0 8px 24px -8px rgba(15,23,42,.10);
  --rx-shadow-lg:    0 22px 55px -18px rgba(15,23,42,.18);
  --rx-shadow-glow:  0 18px 50px -12px rgba(124,58,237,.35);
  --rx-grad-primary: linear-gradient(135deg,#7C3AED 0%,#EC4899 50%,#F97316 100%);
  --rx-grad-cool:    linear-gradient(135deg,#06B6D4 0%,#7C3AED 50%,#EC4899 100%);
  --rx-grad-warm:    linear-gradient(135deg,#FDEF42 0%,#F97316 50%,#EC4899 100%);
  --rx-grad-sn:      linear-gradient(135deg,#00853F 0%,#FDEF42 50%,#E31B23 100%);
  --rx-radius-sm:    10px;
  --rx-radius-md:    16px;
  --rx-radius-lg:    24px;
  --rx-radius-xl:    32px;
  --rx-tr-fast:      .18s cubic-bezier(.4,0,.2,1);
  --rx-tr-base:      .3s cubic-bezier(.4,0,.2,1);
  --rx-tr-bounce:    .45s cubic-bezier(.34,1.56,.64,1);
}

body.rx-dark{
  --rx-bg:           #0a0a14;
  --rx-bg-soft:      #11121f;
  --rx-bg-mute:      #1a1c2e;
  --rx-surface:      #15172a;
  --rx-surface-2:    #1c1f36;
  --rx-text:         #f1f5f9;
  --rx-text-soft:    #cbd5e1;
  --rx-text-mute:    #94a3b8;
  --rx-border:       #2a2d45;
  --rx-border-soft:  #1f2238;
  --rx-shadow-sm:    0 1px 3px rgba(0,0,0,.5);
  --rx-shadow-md:    0 8px 24px -8px rgba(0,0,0,.6);
  --rx-shadow-lg:    0 22px 55px -18px rgba(0,0,0,.7);
  --rx-shadow-glow:  0 18px 50px -12px rgba(168,85,247,.55);
  color-scheme: dark;
}

/* ─── Application des variables sur le body et tous les conteneurs ─── */
html, body{
  background: var(--rx-bg);
  color: var(--rx-text);
  transition: background-color var(--rx-tr-base), color var(--rx-tr-base);
}
body.rx-dark{ background: var(--rx-bg) !important; color: var(--rx-text) !important; }

/* Conteneurs principaux dark-aware */
body.rx-dark .rx-site,
body.rx-dark .rx-main,
body.rx-dark #page,
body.rx-dark #main,
body.rx-dark .site-content,
body.rx-dark .entry-content,
body.rx-dark article,
body.rx-dark section{ background-color: transparent; color: var(--rx-text); }

/* ─── Header full dark ─── */
body.rx-dark .rx-header{ background: var(--rx-surface); border-bottom-color: var(--rx-border); }
body.rx-dark .rx-header.rx-scrolled{ background: rgba(21,23,42,.95); backdrop-filter: blur(14px); }
body.rx-dark .rx-nav a{ color: var(--rx-text-mute); }
body.rx-dark .rx-nav a:hover,
body.rx-dark .rx-nav a.current-menu-item{ color: #a78bfa; background: rgba(167,139,250,.10); }
body.rx-dark .rx-logo__title span:first-child{ color: #84CC16; }
body.rx-dark .rx-logo__title span:last-child{ color: var(--rx-text) !important; }
body.rx-dark .rx-logo__sub span{ color: var(--rx-text-mute) !important; }
body.rx-dark .rx-burger span{ background: var(--rx-text); }

/* ─── Toggle dark icônes améliorées ─── */
.rx-theme-toggle{ background: linear-gradient(135deg,#fef3c7,#fde68a); border-color:#fbbf24 !important; transition:all var(--rx-tr-base); }
body.rx-dark .rx-theme-toggle{ background: linear-gradient(135deg,#312e81,#1e1b4b); border-color:#7c3aed !important; }
.rx-theme-toggle:hover{ transform: scale(1.08); box-shadow: 0 0 18px rgba(252,211,77,.55); }
body.rx-dark .rx-theme-toggle:hover{ box-shadow: 0 0 18px rgba(168,85,247,.7); }

/* ════════════════════════════════════════════════════════
   ✦ TYPOGRAPHIE QUI SORT — Titres avec gradient + clamp
   ════════════════════════════════════════════════════════ */
.rx-blog-hero__title,
.rx-single-hero__title,
.rx2-hero__title,
.rx-section-title{
  font-family: 'Poppins', system-ui, -apple-system, sans-serif;
  font-weight: 900;
  letter-spacing: -.02em;
  line-height: 1.1;
}
.rx-blog-hero__title{ font-size: clamp(2rem, 5vw + 1rem, 4rem); }
.rx-single-hero__title{ font-size: clamp(1.75rem, 3.5vw + 1rem, 3.25rem); color: var(--rx-text) !important; }
body.rx-dark .rx-single-hero__title{ color: #fff !important; }

/* Titres dans le contenu d'article — modernes et lisibles */
.entry-content h2{
  font-family: 'Poppins', sans-serif;
  font-weight: 800;
  font-size: clamp(1.4rem, 2vw + .6rem, 1.85rem);
  letter-spacing: -.01em;
  line-height: 1.25;
  margin: 2.5rem 0 1rem;
  position: relative;
  padding-left: 18px;
  color: var(--rx-text);
}
.entry-content h2::before{
  content: "";
  position: absolute;
  left: 0; top: 50%;
  transform: translateY(-50%);
  width: 6px; height: 80%;
  background: var(--rx-grad-primary);
  border-radius: 4px;
  box-shadow: 0 0 14px rgba(124,58,237,.5);
}
.entry-content h3{
  font-family: 'Poppins', sans-serif;
  font-weight: 700;
  font-size: clamp(1.15rem, 1.5vw + .5rem, 1.4rem);
  margin: 2rem 0 .75rem;
  color: var(--rx-text);
}
.entry-content p{
  font-size: clamp(1rem, .4vw + .9rem, 1.075rem);
  line-height: 1.75;
  color: var(--rx-text-soft);
  margin: 0 0 1.25rem;
}
.entry-content strong{ color: var(--rx-text); font-weight: 700; }
.entry-content a{
  color: #7C3AED;
  font-weight: 600;
  text-decoration: none;
  border-bottom: 2px solid rgba(124,58,237,.25);
  transition: all var(--rx-tr-fast);
}
.entry-content a:hover{
  color: #EC4899;
  border-bottom-color: #EC4899;
  background: linear-gradient(180deg, transparent 60%, rgba(236,72,153,.15) 60%);
}
body.rx-dark .entry-content a{ color: #c4b5fd; border-bottom-color: rgba(196,181,253,.3); }
body.rx-dark .entry-content a:hover{ color: #f9a8d4; border-bottom-color: #f9a8d4; }

.entry-content ul, .entry-content ol{
  margin: 1.25rem 0 1.5rem;
  padding-left: 1.5rem;
}
.entry-content li{
  font-size: 1rem;
  line-height: 1.7;
  color: var(--rx-text-soft);
  margin-bottom: .5rem;
}
.entry-content blockquote{
  border-left: 4px solid #7C3AED;
  padding: 1rem 1.5rem;
  margin: 1.5rem 0;
  background: linear-gradient(90deg, rgba(124,58,237,.06), transparent);
  border-radius: 0 var(--rx-radius-md) var(--rx-radius-md) 0;
  font-style: italic;
  color: var(--rx-text);
}
body.rx-dark .entry-content blockquote{ background: linear-gradient(90deg, rgba(167,139,250,.10), transparent); }

.entry-content code{
  background: var(--rx-bg-mute);
  color: #EC4899;
  padding: 2px 8px;
  border-radius: 6px;
  font-size: .92em;
  border: 1px solid var(--rx-border);
}
body.rx-dark .entry-content code{ color: #f9a8d4; }

/* ════════════════════════════════════════════════════════
   ✦ CARDS BLOG — refonte premium 2026
   ════════════════════════════════════════════════════════ */
.rx-blog-section{
  background: var(--rx-bg-soft);
  padding: clamp(2rem, 4vw, 4rem) 0;
}
body.rx-dark .rx-blog-section{
  background: var(--rx-bg);
  background-image:
    radial-gradient(at 20% 10%, rgba(124,58,237,.08) 0px, transparent 50%),
    radial-gradient(at 80% 90%, rgba(236,72,153,.06) 0px, transparent 50%);
}

.rx-mag-grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(310px, 1fr));
  gap: 28px;
}
.rx-mag-grid > .rx-mag-featured{ grid-column: 1 / -1; }

/* Cartes — surface theme-aware */
.rx-mag-card{
  background: var(--rx-surface);
  border-color: var(--rx-border);
  color: var(--rx-text);
  display: flex;
  flex-direction: column;
}
body.rx-dark .rx-mag-card{
  background: var(--rx-surface);
  border-color: var(--rx-border);
  box-shadow: 0 8px 24px -10px rgba(0,0,0,.5);
}
body.rx-dark .rx-mag-card:hover{
  border-color: rgba(167,139,250,.5);
  box-shadow: 0 28px 60px -18px rgba(168,85,247,.4);
}

.rx-mag-card__img{ aspect-ratio: 16/10; }
.rx-mag-card__body{
  padding: 22px 22px 24px;
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 10px;
}
.rx-mag-card__title{
  font-family: 'Poppins', sans-serif;
  font-weight: 800;
  font-size: 1.15rem;
  line-height: 1.32;
  color: var(--rx-text);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color var(--rx-tr-fast);
}
.rx-mag-card:hover .rx-mag-card__title{
  background: var(--rx-grad-primary);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.rx-mag-card__exc{
  font-size: .92rem;
  line-height: 1.55;
  color: var(--rx-text-mute);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  flex: 1;
}
.rx-mag-meta{
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  font-size: .76rem;
  color: var(--rx-text-mute);
  font-weight: 600;
}
.rx-mag-meta time, .rx-mag-meta span{ display: inline-flex; align-items: center; gap: 4px; }
.rx-mag-card__foot{
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 14px;
  margin-top: auto;
  border-top: 1px dashed var(--rx-border);
}
.rx-mag-author{ display: inline-flex; align-items: center; gap: 8px; color: var(--rx-text-mute); font-size: .8rem; font-weight: 600; }
.rx-mag-avatar{ border-radius: 50%; width: 26px; height: 26px; }
.rx-mag-avatar--sm{ width: 22px; height: 22px; }

/* Article vedette — XL, hero-like */
.rx-mag-featured{ background: var(--rx-surface); border-color: var(--rx-border); }
.rx-mag-featured__inner{
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  align-items: stretch;
}
.rx-mag-featured__img{ aspect-ratio: auto; min-height: 360px; position: relative; }
.rx-mag-featured__body{
  padding: clamp(1.5rem, 3vw, 2.5rem);
  display: flex;
  flex-direction: column;
  gap: 14px;
  justify-content: center;
}
.rx-mag-featured__title{
  font-family: 'Poppins', sans-serif;
  font-weight: 900;
  font-size: clamp(1.4rem, 2.2vw + .5rem, 2.1rem);
  line-height: 1.18;
  color: var(--rx-text);
  margin: 0;
  letter-spacing: -.015em;
  background: var(--rx-grad-primary);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.rx-mag-featured__exc{
  font-size: 1.02rem;
  line-height: 1.6;
  color: var(--rx-text-soft);
  margin: 0;
}
.rx-mag-featured__foot{
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 16px;
  border-top: 1px dashed var(--rx-border);
  flex-wrap: wrap;
  gap: 12px;
}

/* ════════════════════════════════════════════════════════
   ✦ BANDE OUTILS — Parcours utilisateur sticky (toutes pages)
   ════════════════════════════════════════════════════════ */
.rx-toolstrip{
  background: var(--rx-surface);
  border-top: 1px solid var(--rx-border);
  border-bottom: 1px solid var(--rx-border);
  padding: 14px 0;
  position: sticky;
  top: 64px;
  z-index: 50;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  background: rgba(255,255,255,.85);
  transition: all var(--rx-tr-base);
}
body.rx-dark .rx-toolstrip{ background: rgba(21,23,42,.85); border-color: var(--rx-border); }
.rx-toolstrip__inner{
  display: flex;
  gap: 8px;
  align-items: center;
  overflow-x: auto;
  scroll-behavior: smooth;
  scrollbar-width: thin;
  scrollbar-color: #7C3AED transparent;
  padding-bottom: 4px;
  -webkit-overflow-scrolling: touch;
}
.rx-toolstrip__inner::-webkit-scrollbar{ height: 4px; }
.rx-toolstrip__inner::-webkit-scrollbar-thumb{ background: #7C3AED; border-radius: 2px; }
.rx-toolstrip__label{
  flex-shrink: 0;
  font-size: .72rem;
  font-weight: 800;
  color: var(--rx-text-mute);
  text-transform: uppercase;
  letter-spacing: .8px;
  padding: 8px 10px;
}
.rx-tool-chip{
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border-radius: 999px;
  background: var(--rx-bg-soft);
  border: 1.5px solid var(--rx-border);
  color: var(--rx-text);
  font-weight: 700;
  font-size: .85rem;
  text-decoration: none;
  transition: all var(--rx-tr-base);
  position: relative;
  overflow: hidden;
}
.rx-tool-chip::before{
  content: "";
  position: absolute;
  inset: 0;
  background: var(--rx-grad-primary);
  opacity: 0;
  transition: opacity var(--rx-tr-base);
  z-index: 0;
}
.rx-tool-chip > *{ position: relative; z-index: 1; }
.rx-tool-chip:hover{
  transform: translateY(-3px);
  border-color: transparent;
  color: #fff;
  box-shadow: var(--rx-shadow-glow);
}
.rx-tool-chip:hover::before{ opacity: 1; }
.rx-tool-chip__ico{
  font-size: 1.05rem;
  display: inline-block;
  transition: transform var(--rx-tr-bounce);
}
.rx-tool-chip:hover .rx-tool-chip__ico{ transform: scale(1.25) rotate(-8deg); }
.rx-tool-chip--active{
  background: var(--rx-grad-primary);
  color: #fff;
  border-color: transparent;
  box-shadow: var(--rx-shadow-glow);
}
.rx-tool-chip--active::before{ opacity: 0; }

/* ════════════════════════════════════════════════════════
   ✦ HERO BLOG — refonte vivace
   ════════════════════════════════════════════════════════ */
.rx-blog-hero{ padding: clamp(3rem, 6vw, 5rem) 0 clamp(2rem, 4vw, 3rem); }
.rx-blog-hero__eyebrow{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.18);
  padding: 8px 18px;
  border-radius: 999px;
  font-weight: 700;
  font-size: .82rem;
  letter-spacing: .3px;
  margin-bottom: 1rem;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.rx-blog-hero__sub{
  font-size: clamp(1rem, 1vw + .6rem, 1.18rem);
  color: rgba(255,255,255,.85);
  margin: .8rem 0 1.8rem;
  max-width: 640px;
}
.rx-blog-cats{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 1.5rem;
}

/* ════════════════════════════════════════════════════════
   ✦ ARTICLE SINGLE — refonte premium dark/light
   ════════════════════════════════════════════════════════ */
.rx-single-hero{
  background: linear-gradient(135deg, #faf5ff 0%, #fef3c7 50%, #ecfeff 100%);
  padding: clamp(2rem, 4vw, 3.5rem) 0 clamp(1.5rem, 3vw, 2.5rem);
  position: relative;
  overflow: hidden;
}
body.rx-dark .rx-single-hero{
  background: linear-gradient(135deg, #1e1b4b 0%, #0a0a14 60%, #1e293b 100%);
}
.rx-single-hero__bg{
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}
.rx-single-hero__orb{
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: .4;
  animation: rxFloat 14s ease-in-out infinite;
}
.rx-single-hero__orb--g{ width: 280px; height: 280px; background: #7C3AED; top: -60px; left: -40px; }
.rx-single-hero__orb--y{ width: 220px; height: 220px; background: #EC4899; bottom: -40px; right: 10%; animation-delay: -5s; }
.rx-single-hero__inner{ position: relative; z-index: 2; }

.rx-single-hero__back{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--rx-text-soft);
  font-weight: 600;
  font-size: .88rem;
  text-decoration: none;
  margin-bottom: 1rem;
  padding: 6px 14px;
  border-radius: 999px;
  background: var(--rx-surface);
  border: 1px solid var(--rx-border);
  transition: all var(--rx-tr-fast);
}
.rx-single-hero__back:hover{
  background: var(--rx-grad-primary);
  color: #fff;
  border-color: transparent;
  transform: translateX(-3px);
}

.rx-single-hero__cat{
  display: inline-block;
  background: var(--rx-grad-primary);
  color: #fff;
  padding: 6px 16px;
  border-radius: 999px;
  font-weight: 700;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .5px;
  text-decoration: none;
  margin-bottom: 1rem;
  margin-left: 10px;
  box-shadow: 0 8px 20px -6px rgba(124,58,237,.5);
}

.rx-single-hero__meta{
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 1.25rem;
  font-size: .9rem;
  color: var(--rx-text-mute);
}
.rx-single-hero__author{ display: inline-flex; align-items: center; gap: 8px; }
.rx-single-hero__avatar{ border-radius: 50%; width: 36px; height: 36px; }
.rx-single-hero__author strong{ color: var(--rx-text); }
.rx-single-hero__sep{ color: var(--rx-border); }

/* Corps article */
.rx-single{ background: var(--rx-bg); padding: clamp(2rem, 4vw, 3.5rem) 0; }
.rx-single__container{ max-width: 1200px; }
.rx-single__layout{
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 32px;
  margin-top: 2rem;
}
@media (max-width: 768px){
  .rx-single__layout{ grid-template-columns: 1fr; gap: 1.5rem; }
}
.rx-single__share{
  display: flex;
  flex-direction: column;
  gap: 10px;
  position: sticky;
  top: 100px;
  align-self: start;
}
@media (max-width: 768px){
  .rx-single__share{ flex-direction: row; position: static; flex-wrap: wrap; justify-content: center; }
}
.rx-single__share-label{
  font-size: .68rem;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--rx-text-mute);
  text-align: center;
  margin-bottom: 6px;
  font-weight: 800;
}
.rx-share{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--rx-surface);
  border: 1.5px solid var(--rx-border);
  color: var(--rx-text-soft);
  text-decoration: none;
  transition: all var(--rx-tr-bounce);
}
.rx-share:hover{ transform: translateY(-3px) scale(1.1); color: #fff; border-color: transparent; }
.rx-share--wa:hover{ background: #25D366; box-shadow: 0 12px 24px -8px rgba(37,211,102,.6); }
.rx-share--fb:hover{ background: #1877F2; box-shadow: 0 12px 24px -8px rgba(24,119,242,.6); }
.rx-share--tw:hover{ background: #000; box-shadow: 0 12px 24px -8px rgba(0,0,0,.6); }
.rx-share--li:hover{ background: #0A66C2; box-shadow: 0 12px 24px -8px rgba(10,102,194,.6); }
.rx-share--ml:hover{ background: var(--rx-grad-primary); box-shadow: var(--rx-shadow-glow); }

.rx-single__main{
  background: var(--rx-surface);
  border: 1px solid var(--rx-border);
  border-radius: var(--rx-radius-lg);
  padding: clamp(1.5rem, 3vw, 2.5rem);
  box-shadow: var(--rx-shadow-md);
}

/* Tags */
.rx-single__tags{
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px dashed var(--rx-border);
}
.rx-single__tags-label{
  display: block;
  font-size: .85rem;
  color: var(--rx-text-mute);
  margin-bottom: .75rem;
  font-weight: 700;
}
.rx-single__taglist{ display: flex; flex-wrap: wrap; gap: 8px; }

/* Carte auteur */
.rx-single__author{
  display: flex;
  gap: 20px;
  align-items: flex-start;
  background: var(--rx-surface);
  border: 1px solid var(--rx-border);
  border-radius: var(--rx-radius-lg);
  padding: 24px;
  margin-top: 2rem;
  box-shadow: var(--rx-shadow-md);
  position: relative;
  overflow: hidden;
}
.rx-single__author::before{
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 4px;
  background: var(--rx-grad-primary);
}
.rx-single__author-avatar{ border-radius: 50%; width: 72px; height: 72px; border: 3px solid #fff; box-shadow: 0 4px 12px rgba(0,0,0,.1); }
body.rx-dark .rx-single__author-avatar{ border-color: var(--rx-surface); }
.rx-single__author-label{ display: block; font-size: .72rem; text-transform: uppercase; letter-spacing: 1px; color: var(--rx-text-mute); font-weight: 800; }
.rx-single__author-name{ display: block; font-family: 'Poppins', sans-serif; font-weight: 800; font-size: 1.15rem; color: var(--rx-text); margin: 4px 0 8px; }
.rx-single__author-bio{ font-size: .92rem; line-height: 1.6; color: var(--rx-text-soft); margin: 0; }

/* Nav précédent/suivant */
.rx-single__nav{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 2rem;
}
@media (max-width: 640px){ .rx-single__nav{ grid-template-columns: 1fr; } }
.rx-single__nav-prev a, .rx-single__nav-next a{
  display: block;
  background: var(--rx-surface);
  border: 1px solid var(--rx-border);
  padding: 16px 20px;
  border-radius: var(--rx-radius-md);
  text-decoration: none;
  transition: all var(--rx-tr-base);
}
.rx-single__nav-next a{ text-align: right; }
.rx-single__nav-prev a:hover, .rx-single__nav-next a:hover{
  border-color: transparent;
  background: var(--rx-grad-primary);
  color: #fff;
  transform: translateY(-3px);
  box-shadow: var(--rx-shadow-glow);
}
.rx-single__nav-prev a small, .rx-single__nav-next a small{ display: block; font-size: .72rem; color: var(--rx-text-mute); text-transform: uppercase; letter-spacing: .5px; margin-bottom: 4px; font-weight: 700; }
.rx-single__nav-prev a span, .rx-single__nav-next a span{ font-weight: 700; color: var(--rx-text); font-size: .95rem; }
.rx-single__nav-prev a:hover small, .rx-single__nav-next a:hover small,
.rx-single__nav-prev a:hover span, .rx-single__nav-next a:hover span{ color: #fff; }

/* Articles similaires */
.rx-single__related{ margin-top: 3rem; }
.rx-single__related-title{
  font-family: 'Poppins', sans-serif;
  font-weight: 800;
  font-size: clamp(1.4rem, 2vw + .5rem, 1.85rem);
  margin-bottom: 1.5rem;
  color: var(--rx-text);
  background: var(--rx-grad-primary);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  display: inline-block;
}
.rx-single__related-grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 22px;
}

/* ════════════════════════════════════════════════════════
   ✦ FOOTER — refonte sombre adaptive
   ════════════════════════════════════════════════════════ */
body.rx-dark .rx-footer{ background: var(--rx-surface) !important; border-top: 1px solid var(--rx-border) !important; }
body.rx-dark .rx-footer *{ color: var(--rx-text-soft); }
body.rx-dark .rx-footer h2, body.rx-dark .rx-footer h3, body.rx-dark .rx-footer h4{ color: var(--rx-text); }
body.rx-dark .rx-footer a{ color: var(--rx-text-mute); }
body.rx-dark .rx-footer a:hover{ color: #a78bfa; }

/* ════════════════════════════════════════════════════════
   ✦ COMMENTAIRES + WIDGETS WP + PLUGINS — Dark adaptive
   ════════════════════════════════════════════════════════ */
.rx-single__comments{
  margin-top: 3rem;
  background: var(--rx-surface);
  border: 1px solid var(--rx-border);
  border-radius: var(--rx-radius-lg);
  padding: clamp(1.5rem, 3vw, 2.5rem);
}
body.rx-dark .rx-single__comments{ background: var(--rx-surface); }
.comments-title, .comment-reply-title{ color: var(--rx-text) !important; font-family: 'Poppins', sans-serif; font-weight: 800; }
.comment-list{ list-style: none; padding: 0; }
.comment-body{
  background: var(--rx-bg-soft);
  border-radius: var(--rx-radius-md);
  padding: 18px 20px;
  margin-bottom: 16px;
  border: 1px solid var(--rx-border);
}
body.rx-dark .comment-body{ background: var(--rx-bg-mute); }
.comment-author{ display: flex; align-items: center; gap: 12px; }
.comment-author cite{ font-style: normal; font-weight: 700; color: var(--rx-text); }
.comment-meta a{ color: var(--rx-text-mute); font-size: .78rem; }
.comment-content{ color: var(--rx-text-soft); margin-top: 10px; line-height: 1.6; }
.comment-form input, .comment-form textarea{
  width: 100%;
  background: var(--rx-bg-soft);
  border: 1.5px solid var(--rx-border);
  color: var(--rx-text);
  padding: 12px 16px;
  border-radius: var(--rx-radius-sm);
  font-family: inherit;
  font-size: 1rem;
  transition: border-color var(--rx-tr-fast);
}
.comment-form input:focus, .comment-form textarea:focus{
  outline: none;
  border-color: #7C3AED;
  box-shadow: 0 0 0 3px rgba(124,58,237,.15);
}
.comment-form .submit, .form-submit input[type=submit]{
  background: var(--rx-grad-primary);
  color: #fff;
  border: none;
  padding: 12px 28px;
  border-radius: 999px;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
  transition: all var(--rx-tr-base);
  box-shadow: var(--rx-shadow-glow);
}
.comment-form .submit:hover, .form-submit input[type=submit]:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 32px -8px rgba(236,72,153,.55);
}

/* Widgets WordPress (sidebar, footer, etc.) */
body.rx-dark .widget,
body.rx-dark .widget_search,
body.rx-dark .widget_recent_entries,
body.rx-dark .widget_recent_comments{ background: var(--rx-surface); border: 1px solid var(--rx-border); padding: 20px; border-radius: var(--rx-radius-md); margin-bottom: 16px; }
body.rx-dark .widget-title, body.rx-dark .widget h2, body.rx-dark .widget h3{ color: var(--rx-text); }
body.rx-dark .widget a{ color: var(--rx-text-mute); }
body.rx-dark .widget a:hover{ color: #a78bfa; }
body.rx-dark .widget input[type=text],
body.rx-dark .widget input[type=search],
body.rx-dark .widget input[type=email]{ background: var(--rx-bg-soft); border: 1px solid var(--rx-border); color: var(--rx-text); padding: 10px 14px; border-radius: 8px; }

/* Plugins courants : Contact Form 7, WPForms, etc. */
body.rx-dark .wpcf7-form input,
body.rx-dark .wpcf7-form textarea,
body.rx-dark .wpcf7-form select,
body.rx-dark .wpforms-field input,
body.rx-dark .wpforms-field textarea,
body.rx-dark .wpforms-field select,
body.rx-dark .gform_wrapper input,
body.rx-dark .gform_wrapper textarea,
body.rx-dark .gform_wrapper select{
  background: var(--rx-bg-soft) !important;
  border: 1.5px solid var(--rx-border) !important;
  color: var(--rx-text) !important;
}
body.rx-dark .wpcf7-form label,
body.rx-dark .wpforms-field-label,
body.rx-dark .gfield_label{ color: var(--rx-text) !important; }

/* Pagination dark */
body.rx-dark .rx-pagination .page-numbers{ background: var(--rx-surface); border-color: var(--rx-border); color: var(--rx-text-soft); }
body.rx-dark .rx-pagination .page-numbers:hover,
body.rx-dark .rx-pagination .page-numbers.current{
  background: var(--rx-grad-primary);
  color: #fff;
  border-color: transparent;
}

/* TL;DR dark adaptive */
body.rx-dark .rx-tldr{ background: linear-gradient(135deg, rgba(124,58,237,.12), rgba(236,72,153,.08), rgba(6,182,212,.08)) !important; border-left-color: #a78bfa !important; }
body.rx-dark .rx-tldr p, body.rx-dark .rx-tldr li{ color: var(--rx-text-soft); }
body.rx-dark .rx-tldr strong{ color: var(--rx-text); }

/* ════════════════════════════════════════════════════════
   ✦ MICROINTERACTIONS — Magnetic, Tilt, Ripple
   ════════════════════════════════════════════════════════ */
.rx-magnetic{ transition: transform .25s cubic-bezier(.25,.45,.4,1); will-change: transform; }
.rx-tiltable{
  transition: transform .35s cubic-bezier(.25,.45,.4,1);
  transform-style: preserve-3d;
  will-change: transform;
}
.rx-ripple{ position: relative; overflow: hidden; isolation: isolate; }
.rx-ripple__wave{
  position: absolute;
  border-radius: 50%;
  background: rgba(255,255,255,.45);
  transform: scale(0);
  animation: rxRippleAnim .65s cubic-bezier(.4,0,.2,1) forwards;
  pointer-events: none;
  z-index: 5;
}
@keyframes rxRippleAnim{
  to{ transform: scale(4); opacity: 0; }
}

/* Apparition fluide globale — consolidé en fin de fichier */

.rx-section-title{
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .7s ease, transform .7s ease;
}
.rx-section-title.rx-revealed{ opacity: 1; transform: translateY(0); }

/* ════════════════════════════════════════════════════════
   ✦ ACCESSIBILITÉ
   ════════════════════════════════════════════════════════ */
*:focus-visible{ outline: 3px solid #7C3AED; outline-offset: 3px; border-radius: 4px; }
body.rx-dark *:focus-visible{ outline-color: #a78bfa; }

@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

/* ════════════════════════════════════════════════════════
   ✦ Scrollbar custom (light/dark)
   ════════════════════════════════════════════════════════ */
html{ scrollbar-width: thin; scrollbar-color: #7C3AED transparent; }
html::-webkit-scrollbar{ width: 10px; }
html::-webkit-scrollbar-track{ background: transparent; }
html::-webkit-scrollbar-thumb{ background: linear-gradient(180deg,#7C3AED,#EC4899); border-radius: 8px; border: 2px solid var(--rx-bg); }
html::-webkit-scrollbar-thumb:hover{ background: linear-gradient(180deg,#5B21B6,#BE185D); }

/* Sélection texte */
::selection{ background: #EC4899; color: #fff; }
body.rx-dark ::selection{ background: #a78bfa; color: #0a0a14; }

/* ════════════════════════════════════════════════════════════════════════
   ✦✦✦ RIF XALIMA — REFONTE COULEURS VIVANTES v9.7 (2026)
   • Fix CRITIQUE : contraste mode sombre AAA partout
   • Fix CRITIQUE : footer dark mode lumineux et net
   • Couleurs vivantes dégradantes sur TOUT le site
   • Animations en profondeur (shimmer, glow, gradient-shift, breathe)
   ════════════════════════════════════════════════════════════════════════ */

/* ─── REPALETTE GLOBALE — Dégradés vivants néo-2026 ─── */
:root{
  --rx-grad-primary: linear-gradient(135deg,#FF006E 0%,#8338EC 50%,#3A86FF 100%);
  --rx-grad-cool:    linear-gradient(135deg,#06B6D4 0%,#3A86FF 50%,#8338EC 100%);
  --rx-grad-warm:    linear-gradient(135deg,#FFBE0B 0%,#FB5607 50%,#FF006E 100%);
  --rx-grad-sn:      linear-gradient(135deg,#00C853 0%,#FFD600 50%,#FF1744 100%);
  --rx-grad-rainbow: linear-gradient(135deg,#FF006E 0%,#FB5607 20%,#FFBE0B 40%,#06B6D4 60%,#8338EC 80%,#FF006E 100%);
  --rx-grad-aurora:  linear-gradient(135deg,#A8FF78 0%,#06B6D4 35%,#8338EC 65%,#FF006E 100%);
  --rx-shadow-glow:  0 18px 50px -12px rgba(131,56,236,.55);
  --rx-shadow-glow-pink: 0 18px 50px -12px rgba(255,0,110,.55);
}

/* ════════════════════════════════════════════════════════════════════════
   🛠️ FIX CRITIQUE — Mode sombre : contraste AAA partout
   ════════════════════════════════════════════════════════════════════════ */

/* Texte global lumineux */
body.rx-dark{ color:#f8fafc !important; }
body.rx-dark p,
body.rx-dark span,
body.rx-dark li,
body.rx-dark td,
body.rx-dark th,
body.rx-dark dd,
body.rx-dark dt,
body.rx-dark figcaption,
body.rx-dark label,
body.rx-dark small,
body.rx-dark em,
body.rx-dark cite,
body.rx-dark .entry-content *{
  color: #e8edf5;
}
body.rx-dark h1, body.rx-dark h2, body.rx-dark h3,
body.rx-dark h4, body.rx-dark h5, body.rx-dark h6,
body.rx-dark strong, body.rx-dark b{
  color: #ffffff !important;
}
body.rx-dark .entry-content p,
body.rx-dark .entry-content li{ color:#dde3ee !important; }
body.rx-dark .entry-content strong{ color:#fff !important; }

/* Cards dark — fond + texte lumineux */
body.rx-dark .rx-mag-card,
body.rx-dark .rx-mag-featured,
body.rx-dark .rx-related-card,
body.rx-dark .rx-single__main,
body.rx-dark .rx-single__author,
body.rx-dark .rx-single__comments,
body.rx-dark .rx-single__nav-prev a,
body.rx-dark .rx-single__nav-next a{
  background: #1a1d35 !important;
  border-color: #2d3157 !important;
  color: #f8fafc !important;
}
body.rx-dark .rx-mag-card *,
body.rx-dark .rx-mag-featured *,
body.rx-dark .rx-related-card *{
  color: #e8edf5;
}
body.rx-dark .rx-mag-card__title,
body.rx-dark .rx-mag-featured__title,
body.rx-dark .rx-related-card__title{ color:#fff !important; }
body.rx-dark .rx-mag-card__exc,
body.rx-dark .rx-mag-featured__exc,
body.rx-dark .rx-related-card__excerpt{ color:#bcc3d4 !important; }
body.rx-dark .rx-mag-meta,
body.rx-dark .rx-mag-meta *,
body.rx-dark .rx-mag-author,
body.rx-dark .rx-related-card__meta,
body.rx-dark .rx-related-card__meta *{ color:#9fa8c0 !important; }

/* Toolstrip dark */
body.rx-dark .rx-toolstrip{
  background: rgba(20,22,42,.95) !important;
  border-color: #2d3157 !important;
}
body.rx-dark .rx-toolstrip__label{ color:#a8b2cc !important; }
body.rx-dark .rx-tool-chip{
  background: #21253f !important;
  border-color: #353a5e !important;
  color: #f8fafc !important;
}
body.rx-dark .rx-tool-chip:hover{ color:#fff !important; border-color: transparent !important; }

/* ════════════════════════════════════════════════════════════════════════
   🛠️ FIX CRITIQUE — Footer mode sombre : couleurs vivantes
   ════════════════════════════════════════════════════════════════════════ */
body.rx-dark .rx-footer{
  background: linear-gradient(180deg, #14162a 0%, #0a0a14 100%) !important;
  border-top: 3px solid transparent !important;
  border-image: var(--rx-grad-rainbow) 1;
  color: #f8fafc !important;
}
body.rx-dark .rx-footer *{ color:#e8edf5 !important; }
body.rx-dark .rx-footer h2,
body.rx-dark .rx-footer h3,
body.rx-dark .rx-footer h4,
body.rx-dark .rx-footer .rx-footer__brand strong,
body.rx-dark .rx-footer__logo *{ color:#fff !important; }
body.rx-dark .rx-footer__logo-rif{
  background: var(--rx-grad-warm);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent !important;
}
body.rx-dark .rx-footer__logo-xalima{
  background: var(--rx-grad-cool);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent !important;
}
body.rx-dark .rx-footer__tagline{ color:#cdd4e3 !important; line-height:1.65; }
body.rx-dark .rx-footer__pill{
  background: rgba(131,56,236,.18) !important;
  border: 1px solid rgba(131,56,236,.4) !important;
  color: #fff !important;
  padding: 8px 14px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .82rem;
  font-weight: 600;
}
body.rx-dark .rx-footer__pill *{ color:#fff !important; }
body.rx-dark .rx-footer__links a{
  color: #d4dbeb !important;
  transition: all .25s ease;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
body.rx-dark .rx-footer__links a:hover{
  color: #fff !important;
  transform: translateX(6px);
  text-shadow: 0 0 14px rgba(131,56,236,.7);
}
body.rx-dark .rx-footer__links a:hover *{ color:#fff !important; }
body.rx-dark .rx-footer h4 .rx-footer__h-ico{ filter: drop-shadow(0 0 8px rgba(255,190,11,.5)); }
body.rx-dark .rx-footer__bottom{
  border-top: 1px solid #2d3157 !important;
  padding-top: 1.5rem;
  margin-top: 2rem;
}
body.rx-dark .rx-footer__bottom p{ color:#a8b2cc !important; }
body.rx-dark .rx-footer__bottom strong{
  background: var(--rx-grad-rainbow);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent !important;
  font-weight: 800;
}
body.rx-dark .rx-footer__heart span{ color:#FF006E !important; filter: drop-shadow(0 0 8px rgba(255,0,110,.6)); }

/* Footer light mode boost aussi */
.rx-footer__logo-rif{ background: var(--rx-grad-warm); -webkit-background-clip: text; background-clip: text; color: transparent; }
.rx-footer__logo-xalima{ background: var(--rx-grad-cool); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* ════════════════════════════════════════════════════════════════════════
   ✨ COULEURS VIVANTES DÉGRADANTES — sitewide
   ════════════════════════════════════════════════════════════════════════ */

/* Hero blog — dégradé vivant */
.rx-blog-hero{
  background: var(--rx-grad-rainbow);
  background-size: 300% 300%;
  animation: rxGradShift 18s ease infinite;
  position: relative;
  overflow: hidden;
}
.rx-blog-hero::before{
  content:"";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 30% 20%, rgba(255,255,255,.18), transparent 60%);
  pointer-events: none;
}
body.rx-dark .rx-blog-hero{
  background: linear-gradient(135deg, #1e0a3c 0%, #3d0066 30%, #5b0a4e 60%, #1a0033 100%);
  background-size: 200% 200%;
  animation: rxGradShift 22s ease infinite;
}
.rx-blog-hero__title{ color:#fff !important; text-shadow: 0 4px 20px rgba(0,0,0,.25); }
.rx-blog-hero__title mark{
  background: linear-gradient(135deg,#FFD600,#FF006E);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  font-weight: 900;
}

/* Toolstrip — chips ultra-vivants */
.rx-tool-chip{
  background: #fff;
  border: 2px solid transparent;
  background-image: linear-gradient(#fff,#fff), var(--rx-grad-primary);
  background-origin: border-box;
  background-clip: padding-box, border-box;
  font-weight: 700;
  position: relative;
}
body.rx-dark .rx-tool-chip{
  background-image: linear-gradient(#21253f,#21253f), var(--rx-grad-primary);
}
.rx-tool-chip:hover{
  background-image: var(--rx-grad-primary), var(--rx-grad-primary) !important;
  color: #fff !important;
  transform: translateY(-4px) scale(1.04);
  box-shadow: 0 18px 38px -12px rgba(255,0,110,.55);
}
.rx-tool-chip--active{
  background-image: var(--rx-grad-primary), var(--rx-grad-primary) !important;
  color: #fff !important;
  border-color: transparent;
  box-shadow: 0 14px 30px -10px rgba(131,56,236,.5);
  animation: rxToolPulse 2.6s ease-in-out infinite;
}
@keyframes rxToolPulse{
  0%,100%{ box-shadow: 0 14px 30px -10px rgba(131,56,236,.5); }
  50%{ box-shadow: 0 18px 40px -8px rgba(255,0,110,.65); }
}

/* Cat pills (catégories blog) */
.rx-blog-cat-pill{
  background: rgba(255,255,255,.18) !important;
  color: #fff !important;
  border: 2px solid rgba(255,255,255,.3) !important;
  backdrop-filter: blur(10px);
  font-weight: 700;
  transition: all .3s cubic-bezier(.4,0,.2,1);
}
.rx-blog-cat-pill:hover,
.rx-blog-cat-pill.active{
  background: #fff !important;
  color: #FF006E !important;
  border-color: #fff !important;
  transform: translateY(-3px) scale(1.05);
  box-shadow: 0 14px 28px -8px rgba(0,0,0,.35);
}
.rx-blog-cat-pill__n{
  background: rgba(255,0,110,.85);
  color: #fff !important;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 800;
  margin-left: 4px;
}

/* Featured article — gradient sur le titre */
.rx-mag-featured__title{
  background: var(--rx-grad-primary) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  color: transparent !important;
  -webkit-text-fill-color: transparent;
}
body.rx-dark .rx-mag-featured__title{
  background: var(--rx-grad-aurora) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent;
}

.rx-mag-featured__inner{ position: relative; }
.rx-mag-featured::after{
  content: "";
  position: absolute;
  top: -2px; left: -2px; right: -2px; bottom: -2px;
  background: var(--rx-grad-rainbow);
  background-size: 300% 300%;
  border-radius: inherit;
  z-index: -1;
  opacity: 0;
  transition: opacity .4s ease;
  animation: rxGradShift 8s ease infinite;
}
.rx-mag-featured:hover::after{ opacity: 1; }

/* Cards normales — bordure dégradée au hover */
.rx-mag-card{ position: relative; transition: all .35s cubic-bezier(.4,0,.2,1); }
.rx-mag-card::after{
  content: "";
  position: absolute;
  inset: -2px;
  background: var(--rx-grad-primary);
  border-radius: inherit;
  z-index: -1;
  opacity: 0;
  transition: opacity .35s ease;
}
.rx-mag-card:hover::after{ opacity: 1; }
.rx-mag-card:hover{
  transform: translateY(-8px);
  box-shadow: 0 28px 60px -18px rgba(131,56,236,.4);
}

/* Catégorie badge — couleur vive */
.rx-mag-cat,
.rx-mag-cat--overlay{
  background: var(--rx-grad-warm) !important;
  color: #fff !important;
  font-weight: 800 !important;
  padding: 6px 14px !important;
  border-radius: 999px !important;
  text-transform: uppercase;
  letter-spacing: .5px;
  font-size: .7rem !important;
  box-shadow: 0 6px 16px -4px rgba(255,0,110,.5);
  text-decoration: none;
  border: none !important;
}
.rx-mag-badge{
  background: var(--rx-grad-cool) !important;
  color: #fff !important;
  font-weight: 800 !important;
  box-shadow: 0 6px 16px -4px rgba(58,134,255,.5) !important;
}

/* CTA "Lire l'article" — bouton dégradé vivant */
.rx-mag-cta{
  background: var(--rx-grad-primary) !important;
  color: #fff !important;
  padding: 10px 20px !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  box-shadow: 0 8px 20px -6px rgba(131,56,236,.5) !important;
  transition: all .3s cubic-bezier(.4,0,.2,1) !important;
  position: relative;
  overflow: hidden;
}
.rx-mag-cta::before{
  content: "";
  position: absolute;
  top: 0; left: -100%;
  width: 100%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.4), transparent);
  transition: left .55s;
}
.rx-mag-cta:hover{
  transform: translateY(-3px) scale(1.04);
  box-shadow: 0 14px 30px -8px rgba(255,0,110,.55) !important;
}
.rx-mag-cta:hover::before{ left: 100%; }
.rx-mag-cta--sm{ padding: 7px 14px !important; font-size: .82rem !important; }
.rx-mag-arr{ transition: transform .25s; }
.rx-mag-cta:hover .rx-mag-arr{ transform: translateX(4px); }

/* Single hero — gradient riche */
.rx-single-hero{
  background: linear-gradient(135deg, #fff5f7 0%, #fef3c7 35%, #ddd6fe 70%, #cffafe 100%) !important;
  background-size: 200% 200%;
  animation: rxGradShift 20s ease infinite;
}
body.rx-dark .rx-single-hero{
  background: linear-gradient(135deg, #1a0a3a 0%, #2d1b69 35%, #1a0033 70%, #0a0a14 100%) !important;
  background-size: 200% 200%;
  animation: rxGradShift 22s ease infinite;
}
.rx-single-hero__cat{
  background: var(--rx-grad-warm) !important;
  box-shadow: 0 10px 24px -6px rgba(255,0,110,.55) !important;
}

/* Titre carte "DERNIERS AJOUTS" (ex-"EN CHIFFRES", nettoyé en v9.32 —
   l'ancien style dégradé "compteur" a été retiré, le contenu réel n'en
   a plus besoin) */
.rx2-statcard__head{
  color: var(--rx2-ink, #0f172a);
  font-weight: 800;
  letter-spacing: 1.5px;
}
body.rx-dark .rx2-statcard__head{ color: #e2e8f0; }
.rx2-statcard__dot{
  background: #00853F !important;
  box-shadow: 0 0 10px rgba(0,133,63,.55) !important;
  animation: rxBreathe 1.8s ease-in-out infinite !important;
}

/* Pagination vivante */
.rx-pagination .page-numbers{
  border-radius: 999px !important;
  font-weight: 700 !important;
  transition: all .3s ease !important;
}
.rx-pagination .page-numbers:hover,
.rx-pagination .page-numbers.current{
  background: var(--rx-grad-primary) !important;
  color: #fff !important;
  border-color: transparent !important;
  transform: translateY(-2px);
  box-shadow: 0 10px 22px -6px rgba(131,56,236,.5);
}

/* Reading bar (top) — dégradé vivant */
.rx-reading-bar__fill{
  background: var(--rx-grad-rainbow) !important;
  background-size: 300% 100% !important;
  animation: rxGradShift 4s linear infinite !important;
  box-shadow: 0 0 12px rgba(255,0,110,.6) !important;
}

/* Scroll-to-top — vivant */
.rx-scrolltop{
  background: var(--rx-grad-primary) !important;
  color: #fff !important;
  box-shadow: 0 14px 30px -8px rgba(131,56,236,.5) !important;
  border: none !important;
}
.rx-scrolltop:hover{
  transform: translateY(-4px) scale(1.08) !important;
  box-shadow: 0 20px 40px -8px rgba(255,0,110,.6) !important;
}

/* Tags pills */
.rx-tag-pill{
  background: linear-gradient(135deg, rgba(131,56,236,.10), rgba(255,0,110,.10)) !important;
  border: 1.5px solid rgba(131,56,236,.3) !important;
  color: #8338EC !important;
  padding: 6px 14px !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
  font-size: .82rem !important;
  text-decoration: none !important;
  transition: all .3s ease !important;
}
.rx-tag-pill:hover{
  background: var(--rx-grad-primary) !important;
  color: #fff !important;
  border-color: transparent !important;
  transform: translateY(-2px);
  box-shadow: 0 10px 22px -6px rgba(131,56,236,.5);
}
body.rx-dark .rx-tag-pill{ color:#c4b5fd !important; border-color: rgba(196,181,253,.4) !important; }

/* ════════════════════════════════════════════════════════════════════════
   🎬 ANIMATIONS EN PROFONDEUR
   ════════════════════════════════════════════════════════════════════════ */
@keyframes rxGradShift{
  0%{ background-position: 0% 50%; }
  50%{ background-position: 100% 50%; }
  100%{ background-position: 0% 50%; }
}
@keyframes rxBreathe{
  0%,100%{ transform: scale(1); opacity: .9; }
  50%{ transform: scale(1.18); opacity: 1; }
}
@keyframes rxFloat{
  0%,100%{ transform: translateY(0) rotate(0); }
  33%{ transform: translateY(-22px) rotate(5deg); }
  66%{ transform: translateY(14px) rotate(-3deg); }
}
@keyframes rxShimmer{
  0%{ transform: translateX(-100%); }
  100%{ transform: translateX(200%); }
}
@keyframes rxGlowPulse{
  0%,100%{ box-shadow: 0 0 0 0 rgba(255,0,110,.4); }
  50%{ box-shadow: 0 0 0 18px rgba(255,0,110,0); }
}

/* Effet shimmer sur les cards au survol */
.rx-mag-card .rx-mag-card__img,
.rx-mag-featured__img,
.rx-related-card__thumb{
  position: relative;
  overflow: hidden;
}
.rx-mag-card .rx-mag-card__img::after,
.rx-mag-featured__img::after,
.rx-related-card__thumb::after{
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 50%; height: 100%;
  background: linear-gradient(105deg, transparent 30%, rgba(255,255,255,.55) 50%, transparent 70%);
  transform: translateX(-100%);
  pointer-events: none;
  z-index: 2;
}
.rx-mag-card:hover .rx-mag-card__img::after,
.rx-mag-featured:hover .rx-mag-featured__img::after,
.rx-related-card:hover .rx-related-card__thumb::after{
  animation: rxShimmer 1s ease;
}

/* Image zoom au hover */
.rx-mag-card__img img,
.rx-mag-featured__img img,
.rx-related-card__thumb img{
  transition: transform .8s cubic-bezier(.4,0,.2,1) !important;
}
.rx-mag-card:hover .rx-mag-card__img img,
.rx-mag-featured:hover .rx-mag-featured__img img,
.rx-related-card:hover .rx-related-card__thumb img{
  transform: scale(1.1) !important;
}

/* Glow pulse sur le bouton concours */
.rx-publish-btn{ animation: rxGlowPulse 2.4s ease-in-out infinite; }

/* Apparition cascade sur les listes */
.rx-mag-grid > .rx-mag-card{
  opacity: 0;
  transform: translateY(36px) scale(.96);
  animation: rxCardEnter .7s cubic-bezier(.22,1,.36,1) forwards;
}
.rx-mag-grid > .rx-mag-card:nth-child(2){ animation-delay: .08s; }
.rx-mag-grid > .rx-mag-card:nth-child(3){ animation-delay: .16s; }
.rx-mag-grid > .rx-mag-card:nth-child(4){ animation-delay: .24s; }
.rx-mag-grid > .rx-mag-card:nth-child(5){ animation-delay: .32s; }
.rx-mag-grid > .rx-mag-card:nth-child(6){ animation-delay: .40s; }
.rx-mag-grid > .rx-mag-card:nth-child(7){ animation-delay: .48s; }
.rx-mag-grid > .rx-mag-card:nth-child(8){ animation-delay: .56s; }
.rx-mag-grid > .rx-mag-card:nth-child(n+9){ animation-delay: .64s; }
@keyframes rxCardEnter{
  to{ opacity: 1; transform: translateY(0) scale(1); }
}

/* Hover lift sur related cards */
.rx-related-card{ transition: all .35s cubic-bezier(.4,0,.2,1); }
.rx-related-card:hover{
  transform: translateY(-6px);
  box-shadow: 0 22px 50px -16px rgba(131,56,236,.4);
}

/* Comments dark fix */
body.rx-dark .comment-body{ background: #1f2240 !important; border-color: #353a5e !important; }
body.rx-dark .comment-body *{ color: #e8edf5 !important; }
body.rx-dark .comment-author cite,
body.rx-dark .comments-title,
body.rx-dark .comment-reply-title{ color:#fff !important; }

/* ════════════════════════════════════════════════════════════════════════
   ✨ Bonus : titres de sections animés (gradient text)
   ════════════════════════════════════════════════════════════════════════ */
.rx-section-title{
  background: var(--rx-grad-primary);
  background-size: 200% auto;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  animation: rxGradShift 6s linear infinite;
  font-weight: 900;
}
body.rx-dark .rx-section-title{ background: var(--rx-grad-aurora); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }

/* ════════════════════════════════════════════════════════════════════════
   ✦✦✦ RIF XALIMA — FIX URGENT v9.8 (2026)
   • CRITIQUE : Footer toujours visible (cols, links, socials)
   • CRITIQUE : Mode sombre lisible PARTOUT (suppression cascade *)
   • Couleurs Sénégal animées sur les outils (vert→jaune→rouge cyclant)
   • UX : badges, icônes, hints visibles
   ════════════════════════════════════════════════════════════════════════ */

/* ━━━ FIX 1 : FOOTER toujours visible (anim → état final = état par défaut) ━━━ */
.rx-footer__col,
.rx-footer__brand,
.rx-footer__links li,
.rx-footer__social,
.rx-footer__logo{
  opacity: 1 !important;
  transform: none !important;
}
/* L'animation joue tout de même au scroll, mais l'état initial est visible */
.rx-footer__col h4,
.rx-footer__col ul,
.rx-footer__links,
.rx-footer__col li,
.rx-footer__col li a,
.rx-footer__links a{
  opacity: 1 !important;
  visibility: visible !important;
  display: revert !important;
}
.rx-footer__col ul,
.rx-footer__links{
  display: flex !important;
  flex-direction: column !important;
  gap: 9px !important;
}
.rx-footer__col li{ display: list-item !important; }

/* Footer titres lumineux dans les 2 modes */
.rx-footer__col h4{
  color: #fff !important;
  font-family: 'Poppins', sans-serif;
  font-weight: 800;
  font-size: 1.05rem;
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 16px;
  letter-spacing: .3px;
}
.rx-footer__h-ico{
  display: inline-block;
  font-size: 1.15rem;
  filter: drop-shadow(0 0 10px rgba(255,214,0,.5));
}
.rx-footer__col li a,
.rx-footer__links a{
  color: #d4dbeb !important;
  text-decoration: none;
  font-size: .92rem;
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  transition: all .25s ease;
  padding: 4px 0;
}
.rx-footer__col li a:hover,
.rx-footer__links a:hover{
  color: #fff !important;
  transform: translateX(6px);
  text-shadow: 0 0 12px rgba(255,214,0,.6);
}

/* ━━━ FIX 2 : MODE SOMBRE — refonte simple et fiable ━━━ */
/* Reset des cascades trop agressives */
body.rx-dark *{ color: inherit; }

/* Base body & wrappers */
body.rx-dark{
  background: #0a0a14 !important;
  color: #f1f5f9 !important;
}
body.rx-dark .rx-site,
body.rx-dark .rx-main,
body.rx-dark #page,
body.rx-dark #main{
  background: transparent;
  color: #f1f5f9;
}

/* Texte de base lisible */
body.rx-dark p{ color: #cbd5e1; }
body.rx-dark h1, body.rx-dark h2, body.rx-dark h3,
body.rx-dark h4, body.rx-dark h5, body.rx-dark h6{ color: #ffffff; }
body.rx-dark strong, body.rx-dark b{ color: #ffffff; }
body.rx-dark a{ color: #c4b5fd; }
body.rx-dark a:hover{ color: #f9a8d4; }
body.rx-dark li{ color: #cbd5e1; }
body.rx-dark span{ color: inherit; }
body.rx-dark small{ color: #94a3b8; }
body.rx-dark figcaption{ color: #94a3b8; }
body.rx-dark blockquote{ color: #e2e8f0; }
body.rx-dark code{ color: #f9a8d4; background: #1f2240; }

/* Sections dark */
body.rx-dark section{ color: #e2e8f0; }
body.rx-dark .entry-content,
body.rx-dark .entry-content p{ color: #cbd5e1; }
body.rx-dark .entry-content h2,
body.rx-dark .entry-content h3{ color: #fff; }
body.rx-dark .entry-content strong{ color: #fff; }
body.rx-dark .entry-content a{ color: #c4b5fd; border-bottom-color: rgba(196,181,253,.4); }

/* Cards dark */
body.rx-dark .rx-mag-card,
body.rx-dark .rx-mag-featured,
body.rx-dark .rx-related-card{
  background: #1a1d35;
  border-color: #2d3157;
  color: #f1f5f9;
}
body.rx-dark .rx-mag-card__title,
body.rx-dark .rx-related-card__title{ color: #fff; }
body.rx-dark .rx-mag-card__exc,
body.rx-dark .rx-related-card__excerpt{ color: #b8c0d4; }
body.rx-dark .rx-mag-meta time,
body.rx-dark .rx-mag-meta span,
body.rx-dark .rx-related-card__meta span{ color: #94a3b8; }
body.rx-dark .rx-mag-author{ color: #b8c0d4; }
body.rx-dark .rx-mag-author span{ color: #b8c0d4; }

/* Single article dark */
body.rx-dark .rx-single{ background: #0a0a14; }
body.rx-dark .rx-single__main,
body.rx-dark .rx-single__author,
body.rx-dark .rx-single__comments{
  background: #1a1d35;
  border-color: #2d3157;
  color: #f1f5f9;
}
body.rx-dark .rx-single__nav-prev a,
body.rx-dark .rx-single__nav-next a{
  background: #1a1d35;
  border-color: #2d3157;
  color: #fff;
}
body.rx-dark .rx-single__nav-prev a small,
body.rx-dark .rx-single__nav-next a small{ color: #94a3b8; }
body.rx-dark .rx-single__nav-prev a span,
body.rx-dark .rx-single__nav-next a span{ color: #fff; }
body.rx-dark .rx-single__author-name{ color: #fff; }
body.rx-dark .rx-single__author-bio{ color: #cbd5e1; }
body.rx-dark .rx-single__tags-label{ color: #94a3b8; }

/* Hero blog/single dark */
body.rx-dark .rx-blog-hero__sub{ color: rgba(255,255,255,.85); }
body.rx-dark .rx-single-hero__back{ background: #1a1d35; border-color: #2d3157; color: #f1f5f9; }
body.rx-dark .rx-single-hero__meta,
body.rx-dark .rx-single-hero__meta span{ color: #cbd5e1; }
body.rx-dark .rx-single-hero__author strong{ color: #fff; }

/* Toolstrip dark */
body.rx-dark .rx-toolstrip{
  background: rgba(20,22,42,.95);
  border-color: #2d3157;
}
body.rx-dark .rx-toolstrip__label{ color: #94a3b8; }

/* Footer dark — TEXTE LISIBLE */
body.rx-dark .rx-footer{
  background: linear-gradient(180deg, #14162a 0%, #0a0a14 100%) !important;
  color: #f1f5f9;
}
body.rx-dark .rx-footer h4{ color: #fff !important; }
body.rx-dark .rx-footer p{ color: #cbd5e1; }
body.rx-dark .rx-footer .rx-footer__tagline{ color: #cbd5e1 !important; }
body.rx-dark .rx-footer__col li a,
body.rx-dark .rx-footer__links a{ color: #d4dbeb !important; }
body.rx-dark .rx-footer__col li a:hover,
body.rx-dark .rx-footer__links a:hover{ color: #fff !important; }
body.rx-dark .rx-footer__bottom p{ color: #94a3b8; }
body.rx-dark .rx-footer__bottom strong{ color: #fff; }

/* Header dark */
body.rx-dark .rx-header{ background: #15172a; border-bottom-color: #2d3157; }
body.rx-dark .rx-nav a{ color: #cbd5e1; }
body.rx-dark .rx-nav a:hover,
body.rx-dark .rx-nav a.current-menu-item{ color: #c4b5fd; background: rgba(196,181,253,.10); }
body.rx-dark .rx-logo__title span:first-child{ color: #00C853; }
body.rx-dark .rx-logo__title span:last-child{ color: #fff !important; }
body.rx-dark .rx-logo__sub span{ color: #94a3b8 !important; }

/* Pills, tags, badges dark */
body.rx-dark .rx-tag-pill{ color: #c4b5fd; border-color: rgba(196,181,253,.4); background: rgba(196,181,253,.08); }
body.rx-dark .rx-tag-pill:hover{ color: #fff !important; }

/* Comments dark */
body.rx-dark .comment-body{ background: #1f2240; border-color: #353a5e; color: #e2e8f0; }
body.rx-dark .comment-body p{ color: #cbd5e1; }
body.rx-dark .comment-author cite{ color: #fff; }
body.rx-dark .comment-meta a{ color: #94a3b8; }
body.rx-dark .comments-title,
body.rx-dark .comment-reply-title{ color: #fff !important; }
body.rx-dark .comment-form input,
body.rx-dark .comment-form textarea{ background: #1a1d35; border-color: #353a5e; color: #fff; }

/* Stat card dark */
body.rx-dark .rx2-statcard{ background: #1a1d35; border-color: #2d3157; }

/* ━━━ FIX 3 : COULEURS SÉNÉGAL ANIMÉES SUR LES OUTILS ━━━ */
:root{
  --rx-sn-green:  #00C853;
  --rx-sn-yellow: #FFD600;
  --rx-sn-red:    #FF1744;
  --rx-sn-cyber:  linear-gradient(135deg, #00C853 0%, #FFD600 50%, #FF1744 100%);
}

/* Tool chips — chaque outil a sa couleur Sénégal cyclant */
.rx-tool-chip{
  background: #fff !important;
  background-image: none !important;
  border: 2px solid var(--rx-sn-green) !important;
  color: #0f172a !important;
  position: relative;
  overflow: hidden;
  transition: all .35s cubic-bezier(.4,0,.2,1);
}
body.rx-dark .rx-tool-chip{
  background: #21253f !important;
  color: #fff !important;
  border-color: var(--rx-sn-green) !important;
}
.rx-tool-chip:nth-child(2n){ border-color: var(--rx-sn-yellow) !important; }
.rx-tool-chip:nth-child(3n){ border-color: var(--rx-sn-red) !important; }
.rx-tool-chip:nth-child(4n){ border-color: #8338EC !important; }
.rx-tool-chip:nth-child(5n){ border-color: #06B6D4 !important; }

/* Hover : remplissage couleur Sénégal */
.rx-tool-chip::before{
  content: "";
  position: absolute;
  inset: 0;
  background: var(--rx-sn-cyber);
  background-size: 200% 200%;
  opacity: 0;
  transition: opacity .3s ease;
  z-index: 0;
  animation: rxSnGradient 3s ease infinite;
}
.rx-tool-chip > *{ position: relative; z-index: 1; }
.rx-tool-chip:hover{
  color: #fff !important;
  border-color: transparent !important;
  transform: translateY(-4px) scale(1.05);
  box-shadow: 0 16px 32px -10px rgba(0,200,83,.5);
}
.rx-tool-chip:hover::before{ opacity: 1; }
.rx-tool-chip:hover *{ color: #fff !important; }

/* Outil actif : couleur Sénégal en continu */
.rx-tool-chip--active{
  color: #fff !important;
  border-color: transparent !important;
  box-shadow: 0 14px 28px -8px rgba(0,200,83,.55);
  background-image: var(--rx-sn-cyber) !important;
  background-size: 200% 200% !important;
  animation: rxSnGradient 4s ease infinite !important;
}
.rx-tool-chip--active::before{ opacity: 0 !important; }
.rx-tool-chip--active *{ color: #fff !important; }

/* Animation gradient Sénégal */
@keyframes rxSnGradient{
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* Icône bondit au survol */
.rx-tool-chip__ico{
  display: inline-block;
  transition: transform .4s cubic-bezier(.34,1.56,.64,1);
}
.rx-tool-chip:hover .rx-tool-chip__ico{
  transform: scale(1.3) rotate(-12deg);
}

/* Label "🚀 Nos outils" — animation pulse */
.rx-toolstrip__label{
  background: var(--rx-sn-cyber);
  background-size: 200% 200%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent !important;
  -webkit-text-fill-color: transparent;
  font-weight: 800 !important;
  animation: rxSnGradient 5s ease infinite;
}

/* ━━━ FIX 4 : UX — Helpful indicators ━━━ */
/* Scroll hint sur la toolstrip mobile */
@media (max-width: 768px){
  .rx-toolstrip{ position: relative; }
  .rx-toolstrip::after{
    content: "→";
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--rx-sn-red);
    font-size: 1.2rem;
    font-weight: 800;
    pointer-events: none;
    opacity: .5;
    animation: rxArrowSlide 1.5s ease-in-out infinite;
  }
}
@keyframes rxArrowSlide{
  0%, 100%{ transform: translateY(-50%) translateX(0); opacity: .4; }
  50%{ transform: translateY(-50%) translateX(6px); opacity: 1; }
}

/* Reading progress visible dans les 2 modes */
.rx-reading-bar{ background: rgba(0,0,0,.05); }
body.rx-dark .rx-reading-bar{ background: rgba(255,255,255,.06); }

/* Skip-to-content pour accessibilité */
.rx-skip-link{
  position: absolute;
  left: -9999px;
  top: 0;
  background: #fff;
  padding: 12px 20px;
  z-index: 99999;
  border-radius: 0 0 8px 0;
  font-weight: 700;
  color: #0f172a;
  text-decoration: none;
}
.rx-skip-link:focus{
  left: 0;
  outline: 3px solid var(--rx-sn-green);
}

/* Améliore le focus visible */
*:focus-visible{
  outline: 3px solid var(--rx-sn-yellow) !important;
  outline-offset: 3px !important;
}
body.rx-dark *:focus-visible{ outline-color: #c4b5fd !important; }


  /* ════════════════════════════════════════════════════════════════
     ✦ v7 FIX FINAL — DARK MODE COMPLET + LOGO ANIMÉ + MOBILE
     • Corrige les zones blanches floues en mode sombre (textes & plugins)
     • Logo SVG tricolore animé (Sénégal)
     • Variables réutilisables → toute nouvelle section héritera du thème
     • Mobile-first reinforcement
  ════════════════════════════════════════════════════════════════ */

  /* ─── 1. VARIABLES THÉMABLES (claires & sombres) ─── */
  :root{
    --rx-sn-green:    #00853F;
    --rx-sn-green-2:  #00a651;
    --rx-sn-yellow:   #FDEF42;
    --rx-sn-red:      #E31B23;
    --rx-bg:          #ffffff;
    --rx-bg-soft:     #f8fafc;
    --rx-bg-elev:     #ffffff;
    --rx-text:        #0f172a;
    --rx-text-soft:   #475569;
    --rx-text-mute:   #64748b;
    --rx-border:      #e2e8f0;
    --rx-border-soft: #eef2f6;
    --rx-shadow:      0 4px 24px rgba(15,23,42,.08);
  }
  html.rx-dark, body.rx-dark{
    --rx-bg:          #0b1220;
    --rx-bg-soft:     #111827;
    --rx-bg-elev:     #131d34;
    --rx-text:        #e2e8f0;
    --rx-text-soft:   #cbd5e1;
    --rx-text-mute:   #94a3b8;
    --rx-border:      #1f2937;
    --rx-border-soft: #182236;
    --rx-shadow:      0 4px 24px rgba(0,0,0,.45);
    color-scheme: dark;
  }

  /* ─── 2. DARK MODE GÉNÉRAL — catch-all (corrige les zones blanches) ─── */
  html.rx-dark body, body.rx-dark{
    background: var(--rx-bg) !important;
    color: var(--rx-text);
  }

  /* Toute section/wrapper "thème" hérite du fond sombre — futures sections incluses */
  html.rx-dark .rx-section,
  html.rx-dark .rx-section-sm,
  html.rx-dark main,
  html.rx-dark #main,
  html.rx-dark #page,
  html.rx-dark .rx-site,
  html.rx-dark .rx-page-section,
  html.rx-dark .rx-container,
  body.rx-dark .rx-section,
  body.rx-dark .rx-section-sm,
  body.rx-dark main,
  body.rx-dark #main,
  body.rx-dark #page,
  body.rx-dark .rx-site,
  body.rx-dark .rx-page-section{
    background-color: transparent;
    color: var(--rx-text);
  }

  /* Cartes & blocs de contenu génériques */
  html.rx-dark .rx-card,
  html.rx-dark .rx-block,
  html.rx-dark .rx-panel,
  html.rx-dark .rx2-statcard,
  html.rx-dark .rx-page-content,
  html.rx-dark article,
  html.rx-dark .widget,
  html.rx-dark .wp-block-group,
  html.rx-dark .wp-block-column,
  body.rx-dark .rx-card,
  body.rx-dark .rx-block,
  body.rx-dark .rx-panel,
  body.rx-dark .rx2-statcard,
  body.rx-dark .rx-page-content,
  body.rx-dark article,
  body.rx-dark .widget,
  body.rx-dark .wp-block-group,
  body.rx-dark .wp-block-column{
    background-color: var(--rx-bg-soft) !important;
    color: var(--rx-text-soft) !important;
    border-color: var(--rx-border) !important;
  }

  /* Titres et liens sur fond sombre */
  html.rx-dark h1, html.rx-dark h2, html.rx-dark h3,
  html.rx-dark h4, html.rx-dark h5, html.rx-dark h6,
  body.rx-dark h1, body.rx-dark h2, body.rx-dark h3,
  body.rx-dark h4, body.rx-dark h5, body.rx-dark h6{ color: #f1f5f9; }
  html.rx-dark p, html.rx-dark li, html.rx-dark span, html.rx-dark td, html.rx-dark th,
  body.rx-dark p, body.rx-dark li, body.rx-dark span, body.rx-dark td, body.rx-dark th{ color: var(--rx-text-soft); }
  html.rx-dark a:not(.rx-publish-btn):not(.rx-nav__contact):not(.rx-mm__cta):not(.rx-mm__item),
  body.rx-dark a:not(.rx-publish-btn):not(.rx-nav__contact):not(.rx-mm__cta):not(.rx-mm__item){
    color: #86efac;
  }

  /* ─── 3. PLUGINS — patch profond mode sombre + plus de "blanc qui flotte" ─── */
  /* Wrappers communs */
  html.rx-dark #esn-wrap, html.rx-dark #rsn-wrap,
  html.rx-dark #ann-wrap, html.rx-dark #gco-wrap,
  html.rx-dark .esn-wrap, html.rx-dark .rsn-wrap,
  html.rx-dark .ann-wrap, html.rx-dark .gco-wrap,
  body.rx-dark #esn-wrap, body.rx-dark #rsn-wrap,
  body.rx-dark #ann-wrap, body.rx-dark #gco-wrap{
    background: transparent !important;
    color: var(--rx-text) !important;
  }

  /* Tout descendant à fond clair de plugin → re-skin propre */
  html.rx-dark [id^="esn-"], html.rx-dark [id^="rsn-"],
  html.rx-dark [id^="ann-"], html.rx-dark [id^="gco-"],
  html.rx-dark [class^="esn-"], html.rx-dark [class*=" esn-"],
  html.rx-dark [class^="rsn-"], html.rx-dark [class*=" rsn-"],
  html.rx-dark [class^="ann-"], html.rx-dark [class*=" ann-"],
  html.rx-dark [class^="gco-"], html.rx-dark [class*=" gco-"],
  body.rx-dark [class^="esn-"], body.rx-dark [class*=" esn-"],
  body.rx-dark [class^="rsn-"], body.rx-dark [class*=" rsn-"],
  body.rx-dark [class^="ann-"], body.rx-dark [class*=" ann-"],
  body.rx-dark [class^="gco-"], body.rx-dark [class*=" gco-"]{
    color: var(--rx-text-soft);
    border-color: var(--rx-border) !important;
  }

  /* Cartes / filtres / modales / pagination / méta */
  html.rx-dark .esn-card, html.rx-dark .rsn-card, html.rx-dark .ann-card, html.rx-dark .gco-card,
  html.rx-dark .esn-modal, html.rx-dark .esn-empty, html.rx-dark .esn-meta-bar,
  html.rx-dark .esn-filters, html.rx-dark .rsn-filters, html.rx-dark .ann-filters, html.rx-dark .gco-filters,
  html.rx-dark .esn-pagination button, html.rx-dark .rsn-pagination button,
  html.rx-dark .ann-pagination button, html.rx-dark .gco-pagination button,
  html.rx-dark .esn-sort, html.rx-dark .ann-tabs, html.rx-dark .ann-region,
  html.rx-dark .esn-page-hero, html.rx-dark .rsn-page-hero,
  html.rx-dark .ann-page-hero, html.rx-dark .gco-page-hero,
  body.rx-dark .esn-card, body.rx-dark .rsn-card, body.rx-dark .ann-card, body.rx-dark .gco-card,
  body.rx-dark .esn-modal, body.rx-dark .esn-filters, body.rx-dark .rsn-filters,
  body.rx-dark .ann-filters, body.rx-dark .gco-filters{
    background-color: var(--rx-bg-soft) !important;
    border: 1px solid var(--rx-border) !important;
    color: var(--rx-text-soft) !important;
    box-shadow: 0 4px 18px rgba(0,0,0,.35) !important;
    filter: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  /* Inputs/selects/textarea de plugins (et tout input sous .rx-dark) */
  html.rx-dark input, html.rx-dark select, html.rx-dark textarea,
  body.rx-dark input, body.rx-dark select, body.rx-dark textarea{
    background-color: #1f2937 !important;
    color: #e5e7eb !important;
    border: 1px solid #334155 !important;
    -webkit-text-fill-color: #e5e7eb;
  }
  html.rx-dark input::placeholder,
  html.rx-dark textarea::placeholder,
  body.rx-dark input::placeholder,
  body.rx-dark textarea::placeholder{ color: #64748b !important; }
  html.rx-dark select option,
  body.rx-dark select option{ background-color: #111827 !important; color: #e5e7eb !important; }

  /* Chevron des selects en dark */
  html.rx-dark #esn-wrap select, html.rx-dark #rsn-wrap select,
  html.rx-dark #ann-wrap select, html.rx-dark #gco-wrap select,
  html.rx-dark .esn-filters select, html.rx-dark .rsn-filters select,
  html.rx-dark .ann-filters select, html.rx-dark .gco-filters select{
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='%23FDEF42'><path d='M6 8L0 0h12z'/></svg>") !important;
    background-repeat: no-repeat !important;
    background-position: right 12px center !important;
    background-size: 11px !important;
  }

  /* Boutons "blancs" dans les plugins → repassés en surface sombre lisible */
  html.rx-dark .esn-card button, html.rx-dark .rsn-card button,
  html.rx-dark .ann-card button, html.rx-dark .gco-card button,
  body.rx-dark .esn-card button, body.rx-dark .rsn-card button,
  body.rx-dark .ann-card button, body.rx-dark .gco-card button{
    background-color: #1f2937;
    color: #f1f5f9;
    border: 1px solid #334155;
  }
  html.rx-dark .esn-card button:hover, html.rx-dark .rsn-card button:hover,
  html.rx-dark .ann-card button:hover, html.rx-dark .gco-card button:hover{
    background-color: var(--rx-sn-green);
    border-color: var(--rx-sn-green);
    color: #fff;
  }

  /* SUPPRIME les "zones blanches floues" : retire tout backdrop-filter sur les plugins */
  .esn-card, .rsn-card, .ann-card, .gco-card,
  .esn-modal, .esn-filters, .rsn-filters, .ann-filters, .gco-filters,
  #esn-wrap, #rsn-wrap, #ann-wrap, #gco-wrap{
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  /* ─── 4. HEADER mobile — couleurs cohérentes en dark ─── */
  html.rx-dark .rx-header,
  body.rx-dark .rx-header{
    background: rgba(11,18,32,.92) !important;
    border-bottom: 1px solid var(--rx-border) !important;
  }
  html.rx-dark .rx-search-toggle,
  body.rx-dark .rx-search-toggle{
    background: #1f2937; border-color: #334155; color: #e2e8f0;
  }
  html.rx-dark .rx-search-toggle:hover,
  body.rx-dark .rx-search-toggle:hover{ background: #334155; }

  /* ─── 5. LOGO TRICOLORE ANIMÉ (Sénégal) ─── */
  .rx-logo{
    display: inline-flex !important;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    flex-direction: row !important;
    line-height: 1.1;
    position: relative;
  }
  .rx-logo__mark{
    display: inline-flex;
    width: 44px; height: 44px;
    flex-shrink: 0;
    position: relative;
    filter: drop-shadow(0 4px 12px rgba(0,133,63,.25));
    transition: transform .35s cubic-bezier(.34,1.56,.64,1);
  }
  .rx-logo__svg{ width: 100%; height: 100%; display: block; }
  .rx-logo__ring{
    stroke-dasharray: 158;
    stroke-dashoffset: 0;
    animation: rxLogoDraw 6s ease-in-out infinite;
    transform-origin: 28px 28px;
  }
  .rx-logo__petals{
    transform-origin: 28px 28px;
    animation: rxLogoSpin 14s linear infinite;
  }
  .rx-logo__star{
    transform-origin: 28px 28px;
    animation: rxLogoPulse 2.4s ease-in-out infinite;
    filter: drop-shadow(0 0 4px rgba(253,239,66,.7));
  }
  @keyframes rxLogoSpin{
    0%{ transform: rotate(0deg); }
    100%{ transform: rotate(360deg); }
  }
  @keyframes rxLogoPulse{
    0%,100%{ transform: scale(1); opacity: 1; }
    50%   { transform: scale(1.18); opacity: .85; }
  }
  @keyframes rxLogoDraw{
    0%   { stroke-dashoffset: 158; opacity: .4; }
    50%  { stroke-dashoffset: 0;   opacity: 1; }
    100% { stroke-dashoffset: 158; opacity: .4; }
  }
  .rx-logo:hover .rx-logo__mark{ transform: rotate(8deg) scale(1.06); }
  .rx-logo:hover .rx-logo__petals{ animation-duration: 2s; }

  .rx-logo__wordmark{
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    line-height: 1;
  }
  .rx-logo__title{
    font-family: 'Poppins','Poppins Fallback', sans-serif;
    font-weight: 900;
    font-size: 1.35rem;
    letter-spacing: -.02em;
    display: inline-flex;
    gap: 4px;
    align-items: baseline;
  }
  .rx-logo__rif{
    background: linear-gradient(120deg, #00853F 0%, #00a651 50%, #FDEF42 100%);
    -webkit-background-clip: text; background-clip: text;
    -webkit-text-fill-color: transparent;
    background-size: 200% 100%;
    animation: rxLogoSheen 5s ease-in-out infinite;
  }
  .rx-logo__xalima{
    background: linear-gradient(120deg, #E31B23 0%, #f59e0b 50%, #00a651 100%);
    -webkit-background-clip: text; background-clip: text;
    -webkit-text-fill-color: transparent;
    background-size: 200% 100%;
    animation: rxLogoSheen 5s ease-in-out infinite reverse;
  }
  @keyframes rxLogoSheen{
    0%,100%{ background-position: 0% 50%; }
    50%   { background-position: 100% 50%; }
  }
  .rx-logo__sub{
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: 4px;
    font-size: .68rem;
    font-weight: 600;
    color: var(--rx-text-mute);
    letter-spacing: .04em;
    text-transform: uppercase;
  }
  .rx-logo__sub-dot{
    width: 7px; height: 7px; border-radius: 50%;
    display: inline-block;
    animation: rxLogoBlink 2.4s ease-in-out infinite;
    box-shadow: 0 0 0 0 rgba(0,0,0,0);
  }
  .rx-logo__sub-dot--g{ background: #00a651; animation-delay: 0s;   box-shadow: 0 0 8px rgba(0,166,81,.6); }
  .rx-logo__sub-dot--y{ background: #FDEF42; animation-delay: .35s; box-shadow: 0 0 8px rgba(253,239,66,.6); }
  .rx-logo__sub-dot--r{ background: #E31B23; animation-delay: .7s;  box-shadow: 0 0 8px rgba(227,27,35,.6); }
  @keyframes rxLogoBlink{
    0%,100%{ transform: scale(1); opacity: 1; }
    50%   { transform: scale(.4); opacity: .55; }
  }
  .rx-logo__tag{ margin-left: 6px; }

  /* Logo en dark mode */
  html.rx-dark .rx-logo__sub,
  body.rx-dark .rx-logo__sub{ color: #94a3b8; }

  /* Logo responsive */
  @media (max-width: 540px){
    .rx-logo__mark{ width: 38px; height: 38px; }
    .rx-logo__title{ font-size: 1.1rem; }
    .rx-logo__sub{ font-size: .6rem; }
    .rx-logo__tag{ display: none; }
  }
  @media (max-width: 380px){
    .rx-logo__sub{ display: none; }
  }

  /* ─── 6. MOBILE-FIRST — espacements, tap-targets, futur-proof ─── */
  @media (max-width: 768px){
    .rx-container{ padding: 0 16px; }
    .rx-section{ padding: 40px 0; }
    .rx-section-sm{ padding: 28px 0; }

    /* Texte titres : adouci pour mobile */
    h1{ font-size: clamp(1.6rem, 6vw, 2.2rem) !important; line-height: 1.18; }
    h2{ font-size: clamp(1.35rem, 5vw, 1.8rem) !important; line-height: 1.22; }

    /* Tout bouton/lien d'action : tap target ≥ 44px */
    button, .rx-btn, [type=button], [type=submit]{
      min-height: 44px;
    }

    /* Évite les débordements horizontaux globaux */
    html, body{ overflow-x: hidden; max-width: 100vw; }
    img, svg, video, iframe{ max-width: 100%; height: auto; }
  }

  /* ─── 7. STABILITÉ : empêche les "halos blancs flous" sur tout le site ─── */
  .rx-orb, .rx-mm__orb, .rx-blog-hero__orb, .rx-single-hero__orb,
  .rx-footer__orb, .rx-page-hero__orb, .rx-404__orb, .rx2-hero__orb{
    filter: none !important;
    opacity: .12 !important;
    will-change: auto;
  }
  html.rx-dark .rx-orb, html.rx-dark .rx2-hero__orb,
  html.rx-dark .rx-mm__orb, html.rx-dark .rx-footer__orb{
    opacity: .18 !important;
    mix-blend-mode: screen;
  }

  /* ─── 8. FUTURE SECTIONS — toute section .rx-future-* hérite proprement ─── */
  .rx-section, [class*="rx-section--"], [class*="rx2-section"]{
    background-color: var(--rx-bg);
    color: var(--rx-text);
    transition: background-color .3s ease, color .3s ease;
  }
  .rx-section--soft, .rx2-section--soft{ background-color: var(--rx-bg-soft); }
  .rx-section--card, .rx2-section--card{
    background-color: var(--rx-bg-elev);
    border: 1px solid var(--rx-border);
    border-radius: 16px;
    box-shadow: var(--rx-shadow);
  }
  

  /* ════════════════════════════════════════════════════════════════
     ✦ v8 — DARK MODE TOTAL + ANIMATIONS OUTILS REFRESH
     • Force fond/texte sombre sur TOUT le site quand .rx-dark
     • Re-skin agressif des plugins/outils (fini les blocs blancs)
     • Animations modernisées : tool-chip, tool-card, hover, focus
  ════════════════════════════════════════════════════════════════ */

  /* ─── 1. FORCE DARK GLOBAL — aucune zone blanche n'échappe ─── */
  html.rx-dark, body.rx-dark{ background-color: #0b1220 !important; color: #e2e8f0; }

  html.rx-dark body,
  html.rx-dark #page,
  html.rx-dark #main,
  html.rx-dark main,
  html.rx-dark .rx-site,
  html.rx-dark .rx-main,
  html.rx-dark .rx-section,
  html.rx-dark .rx-section-sm,
  html.rx-dark .rx-page-section,
  html.rx-dark .rx-container,
  html.rx-dark .rx-tools,
  html.rx-dark .rx-toolstrip,
  html.rx-dark .rx-jobs-preview,
  html.rx-dark .rx-single,
  html.rx-dark .rx-page-content,
  html.rx-dark .rx-page-comments,
  html.rx-dark .rx2-features,
  html.rx-dark .rx2-mag,
  html.rx-dark .rx2-jobs,
  html.rx-dark .rx2-finalcta,
  html.rx-dark .rx-blog-section,
  html.rx-dark .rx-blog-hero,
  html.rx-dark .rx-single__related,
  html.rx-dark .rx-single__comments,
  html.rx-dark .rx-404{
    background-color: #0b1220 !important;
    color: #e2e8f0;
  }

  /* Cartes / encarts génériques → surface élevée */
  html.rx-dark .rx-tool-card,
  html.rx-dark .rx-card,
  html.rx-dark .rx-related-card,
  html.rx-dark .rx2-statcard,
  html.rx-dark .rx2-feature,
  html.rx-dark .rx2-mag-card,
  html.rx-dark .rx2-job-card,
  html.rx-dark .rx2-cta-card,
  html.rx-dark article,
  html.rx-dark .rx-page-comments,
  html.rx-dark .rx-single,
  html.rx-dark .widget,
  html.rx-dark .wp-block-group,
  html.rx-dark .wp-block-column,
  html.rx-dark .wp-block-cover,
  html.rx-dark .wp-block-quote{
    background-color: #131d34 !important;
    border-color: #1f2937 !important;
    color: #e2e8f0 !important;
    box-shadow: 0 6px 22px rgba(0,0,0,.45) !important;
  }

  /* Texte dans les cartes */
  html.rx-dark .rx-tool-card h3,
  html.rx-dark .rx-card h1, html.rx-dark .rx-card h2, html.rx-dark .rx-card h3,
  html.rx-dark .rx-related-card h3,
  html.rx-dark .rx2-statcard h2, html.rx-dark .rx2-statcard h3,
  html.rx-dark .rx2-feature h3,
  html.rx-dark .rx2-mag-card h3,
  html.rx-dark .rx2-job-card h3,
  html.rx-dark .wp-block-group *,
  html.rx-dark article *{
    color: #f1f5f9;
  }
  html.rx-dark .rx-tool-card p,
  html.rx-dark .rx-related-card p,
  html.rx-dark .rx2-feature p,
  html.rx-dark .rx2-mag-card p,
  html.rx-dark .rx2-job-card p,
  html.rx-dark article p,
  html.rx-dark article li,
  html.rx-dark .rx-page-content p,
  html.rx-dark .rx-page-content li{
    color: #cbd5e1 !important;
  }

  /* Pastilles d'icônes des tool-cards : fond ré-coloré sombre, icône lumineuse */
  html.rx-dark .rx-tool-card__icon{ background: #1f2937 !important; color: #fef3c7; }
  html.rx-dark .rx-tool-card__icon--green{ background: rgba(0,166,81,.18) !important; color: #6ee7b7; }
  html.rx-dark .rx-tool-card__icon--red  { background: rgba(227,27,35,.18) !important; color: #fca5a5; }
  html.rx-dark .rx-tool-card__icon--blue { background: rgba(37,99,235,.18) !important; color: #93c5fd; }
  html.rx-dark .rx-tool-card__icon--amber{ background: rgba(245,158,11,.18) !important; color: #fcd34d; }

  /* Inputs / formulaires sombres partout */
  html.rx-dark input, html.rx-dark select, html.rx-dark textarea,
  html.rx-dark .rx-search-form, html.rx-dark .rx-search-form input,
  html.rx-dark .rx-mm__search, html.rx-dark .rx-mm__search input{
    background-color: #1f2937 !important;
    color: #e5e7eb !important;
    border-color: #334155 !important;
    -webkit-text-fill-color: #e5e7eb;
  }
  html.rx-dark input::placeholder,
  html.rx-dark textarea::placeholder{ color: #64748b !important; }

  /* ─── 2. PLUGINS — force dark sur TOUT descendant à fond clair ─── */
  /* Tout descendant des wrappers d'outils en mode sombre */
  html.rx-dark #esn-wrap *, html.rx-dark #rsn-wrap *,
  html.rx-dark #ann-wrap *, html.rx-dark #gco-wrap *{
    border-color: #1f2937 !important;
  }

  /* Surfaces de plugins (cartes, modales, héros, filtres, listes, paginations) */
  html.rx-dark .esn-card, html.rx-dark .rsn-card, html.rx-dark .ann-card, html.rx-dark .gco-card,
  html.rx-dark .esn-modal, html.rx-dark .esn-modal-head, html.rx-dark .esn-modal-body, html.rx-dark .esn-modal-actions,
  html.rx-dark .esn-empty, html.rx-dark .esn-meta-bar, html.rx-dark .esn-sort,
  html.rx-dark .esn-filters, html.rx-dark .rsn-filters, html.rx-dark .ann-filters, html.rx-dark .gco-filters,
  html.rx-dark .esn-page-hero, html.rx-dark .rsn-page-hero, html.rx-dark .ann-page-hero, html.rx-dark .gco-page-hero,
  html.rx-dark .esn-grid, html.rx-dark .rsn-grid, html.rx-dark .ann-grid, html.rx-dark .gco-grid,
  html.rx-dark .esn-list, html.rx-dark .rsn-list, html.rx-dark .ann-list, html.rx-dark .gco-list,
  html.rx-dark .esn-pagination, html.rx-dark .rsn-pagination, html.rx-dark .ann-pagination, html.rx-dark .gco-pagination,
  html.rx-dark .esn-tabs, html.rx-dark .ann-tabs, html.rx-dark .gco-tabs,
  html.rx-dark .esn-region, html.rx-dark .ann-region{
    background-color: #131d34 !important;
    background-image: none !important;
    border: 1px solid #1f2937 !important;
    color: #e2e8f0 !important;
    box-shadow: 0 4px 18px rgba(0,0,0,.35) !important;
    filter: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  /* Texte plugins */
  html.rx-dark .esn-card h1, html.rx-dark .esn-card h2, html.rx-dark .esn-card h3, html.rx-dark .esn-card h4,
  html.rx-dark .rsn-card h1, html.rx-dark .rsn-card h2, html.rx-dark .rsn-card h3, html.rx-dark .rsn-card h4,
  html.rx-dark .ann-card h1, html.rx-dark .ann-card h2, html.rx-dark .ann-card h3, html.rx-dark .ann-card h4,
  html.rx-dark .gco-card h1, html.rx-dark .gco-card h2, html.rx-dark .gco-card h3, html.rx-dark .gco-card h4,
  html.rx-dark .esn-page-hero h1, html.rx-dark .rsn-page-hero h1,
  html.rx-dark .ann-page-hero h1, html.rx-dark .gco-page-hero h1{
    color: #f1f5f9 !important;
  }
  html.rx-dark .esn-card p, html.rx-dark .rsn-card p,
  html.rx-dark .ann-card p, html.rx-dark .gco-card p,
  html.rx-dark .esn-meta, html.rx-dark .rsn-meta,
  html.rx-dark .ann-meta, html.rx-dark .gco-meta,
  html.rx-dark .esn-empty, html.rx-dark .esn-empty p,
  html.rx-dark .esn-meta-bar, html.rx-dark .esn-meta-bar *{
    color: #cbd5e1 !important;
  }

  /* Boutons / chips / pagination des plugins (boutons "blancs" = surface sombre lisible) */
  html.rx-dark .esn-pagination button, html.rx-dark .rsn-pagination button,
  html.rx-dark .ann-pagination button, html.rx-dark .gco-pagination button,
  html.rx-dark .esn-card button, html.rx-dark .rsn-card button,
  html.rx-dark .ann-card button, html.rx-dark .gco-card button,
  html.rx-dark .rsn-chip, html.rx-dark .ann-chip, html.rx-dark .gco-chip{
    background-color: #1f2937 !important;
    color: #f1f5f9 !important;
    border: 1px solid #334155 !important;
    box-shadow: none !important;
  }
  html.rx-dark .esn-pagination button:hover, html.rx-dark .rsn-pagination button:hover,
  html.rx-dark .ann-pagination button:hover, html.rx-dark .gco-pagination button:hover,
  html.rx-dark .rsn-chip:hover, html.rx-dark .ann-chip:hover, html.rx-dark .gco-chip:hover{
    background-color: #00a651 !important;
    border-color: #00a651 !important;
    color: #fff !important;
  }
  html.rx-dark .rsn-chip.active, html.rx-dark .ann-chip.active, html.rx-dark .gco-chip.active,
  html.rx-dark .esn-pagination button.active, html.rx-dark .rsn-pagination button.active,
  html.rx-dark .ann-pagination button.active, html.rx-dark .gco-pagination button.active{
    background: linear-gradient(135deg, #00a651, #006830) !important;
    color: #fff !important;
    border-color: #00a651 !important;
  }

  /* Onglets */
  html.rx-dark .ann-tab, html.rx-dark .esn-tab, html.rx-dark .gco-tab{
    color: #94a3b8 !important;
    background: transparent !important;
  }
  html.rx-dark .ann-tab.active, html.rx-dark .esn-tab.active, html.rx-dark .gco-tab.active{
    color: #FDEF42 !important;
    border-bottom-color: #FDEF42 !important;
  }

  /* Filets / séparateurs en sombre */
  html.rx-dark hr,
  html.rx-dark .esn-card hr, html.rx-dark .rsn-card hr,
  html.rx-dark .ann-card hr, html.rx-dark .gco-card hr{
    border-color: #1f2937 !important; background-color: #1f2937 !important;
  }

  /* Modales overlay */
  html.rx-dark .esn-modal-overlay, html.rx-dark .rsn-overlay,
  html.rx-dark .ann-modal-overlay, html.rx-dark .gco-modal-overlay{
    background: rgba(0,0,0,.78) !important;
  }

  /* ─── 3. CATCH-ALL : tout élément avec un fond blanc inline → re-skin ─── */
  html.rx-dark [style*="background:#fff"],
  html.rx-dark [style*="background: #fff"],
  html.rx-dark [style*="background-color:#fff"],
  html.rx-dark [style*="background-color: #fff"],
  html.rx-dark [style*="background:#ffffff"],
  html.rx-dark [style*="background: #ffffff"],
  html.rx-dark [style*="background:white"],
  html.rx-dark [style*="background: white"]{
    background-color: #131d34 !important;
    color: #e2e8f0 !important;
    border-color: #1f2937 !important;
  }

  /* ─── 4. TOOL STRIP — animations modernes ─── */
  .rx-toolstrip{
    position: relative;
    overflow: hidden;
  }
  .rx-toolstrip::before{
    content:""; position:absolute; inset:0;
    background:
      radial-gradient(600px 80px at 10% 50%, rgba(0,166,81,.10), transparent 70%),
      radial-gradient(600px 80px at 50% 50%, rgba(253,239,66,.10), transparent 70%),
      radial-gradient(600px 80px at 90% 50%, rgba(227,27,35,.10), transparent 70%);
    pointer-events:none; z-index:0;
  }
  .rx-toolstrip__inner{ position: relative; z-index: 1; }
  html.rx-dark .rx-toolstrip{
    background: linear-gradient(180deg, #0d1428 0%, #0b1220 100%) !important;
    border-color: #1f2937 !important;
  }
  html.rx-dark .rx-toolstrip__label{ color: #e2e8f0 !important; }

  .rx-tool-chip{
    position: relative;
    isolation: isolate;
    overflow: hidden;
    transition:
      transform .35s cubic-bezier(.34,1.56,.64,1),
      background-color .25s ease,
      color .25s ease,
      box-shadow .25s ease;
  }
  .rx-tool-chip::after{
    content:""; position:absolute; inset:0;
    background: linear-gradient(120deg, transparent 30%, rgba(255,255,255,.35) 50%, transparent 70%);
    transform: translateX(-120%);
    transition: transform .55s ease;
    pointer-events: none; z-index: 0;
    mix-blend-mode: overlay;
  }
  .rx-tool-chip:hover{
    transform: translateY(-3px) scale(1.04);
    box-shadow: 0 10px 24px rgba(0,166,81,.25);
    color: #fff !important;
    background: linear-gradient(135deg, #00a651, #006830) !important;
    border-color: transparent !important;
  }
  .rx-tool-chip:hover::after{ transform: translateX(120%); }
  .rx-tool-chip:hover .rx-tool-chip__ico{
    transform: scale(1.3) rotate(-12deg);
    filter: drop-shadow(0 3px 8px rgba(0,0,0,.35));
  }
  .rx-tool-chip__ico{
    display: inline-flex;
    transition: transform .35s cubic-bezier(.34,1.56,.64,1), filter .25s ease;
  }

  /* Variante de couleur par position pour égayer la barre */
  .rx-tool-chip:nth-child(5n+1):hover{ background: linear-gradient(135deg,#00a651,#006830) !important; box-shadow: 0 10px 24px rgba(0,166,81,.35); }
  .rx-tool-chip:nth-child(5n+2):hover{ background: linear-gradient(135deg,#FDEF42,#f59e0b) !important; color: #0f172a !important; box-shadow: 0 10px 24px rgba(245,158,11,.35); }
  .rx-tool-chip:nth-child(5n+3):hover{ background: linear-gradient(135deg,#E31B23,#b91c1c) !important; box-shadow: 0 10px 24px rgba(227,27,35,.35); }
  .rx-tool-chip:nth-child(5n+4):hover{ background: linear-gradient(135deg,#2563eb,#1d4ed8) !important; box-shadow: 0 10px 24px rgba(37,99,235,.35); }
  .rx-tool-chip:nth-child(5n+5):hover{ background: linear-gradient(135deg,#8b5cf6,#6d28d9) !important; box-shadow: 0 10px 24px rgba(139,92,246,.35); }

  html.rx-dark .rx-tool-chip{
    background: #131d34 !important;
    color: #cbd5e1 !important;
    border: 1px solid #1f2937 !important;
  }

  .rx-tool-chip--active{
    background: linear-gradient(135deg, #00a651, #006830) !important;
    color: #fff !important;
    border-color: transparent !important;
    box-shadow: 0 8px 20px rgba(0,166,81,.4);
  }
  html.rx-dark .rx-tool-chip--active{
    background: linear-gradient(135deg, #FDEF42, #f59e0b) !important;
    color: #0f172a !important;
    box-shadow: 0 8px 20px rgba(253,239,66,.35);
  }

  /* ─── 5. TOOL CARDS — animations 3D légères ─── */
  .rx-tool-card{
    position: relative;
    overflow: hidden;
    transition:
      transform .4s cubic-bezier(.34,1.56,.64,1),
      box-shadow .4s ease,
      border-color .25s ease;
  }
  .rx-tool-card::before{
    content:""; position:absolute; inset:0;
    background: radial-gradient(220px 140px at var(--mx,50%) var(--my,0%), rgba(0,166,81,.12), transparent 70%);
    opacity: 0; transition: opacity .35s ease;
    pointer-events: none;
  }
  .rx-tool-card:hover{
    transform: translateY(-6px) rotateX(2deg);
    box-shadow: 0 18px 40px rgba(15,23,42,.18);
    border-color: rgba(0,166,81,.5);
  }
  html.rx-dark .rx-tool-card:hover{
    box-shadow: 0 18px 40px rgba(0,0,0,.55);
    border-color: rgba(0,166,81,.5) !important;
  }
  .rx-tool-card:hover::before{ opacity: 1; }
  .rx-tool-card__icon{
    transition: transform .4s cubic-bezier(.34,1.56,.64,1);
  }
  .rx-tool-card:hover .rx-tool-card__icon{
    transform: scale(1.15) rotate(-6deg);
  }

  /* ─── 6. PLUGINS — animations cartes (esn/rsn/ann/gco) ─── */
  .esn-card, .rsn-card, .ann-card, .gco-card{
    transition:
      transform .35s cubic-bezier(.34,1.56,.64,1),
      box-shadow .35s ease,
      border-color .25s ease,
      background-color .3s ease !important;
    position: relative;
    overflow: hidden;
  }
  .esn-card::after, .rsn-card::after, .ann-card::after, .gco-card::after{
    content:""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
    background: linear-gradient(180deg, #00a651, #FDEF42, #E31B23);
    transform: scaleY(0);
    transform-origin: top;
    transition: transform .35s ease;
  }
  .esn-card:hover, .rsn-card:hover, .ann-card:hover, .gco-card:hover{
    transform: translateY(-4px);
    box-shadow: 0 14px 32px rgba(15,23,42,.14);
    border-color: rgba(0,166,81,.4) !important;
  }
  html.rx-dark .esn-card:hover, html.rx-dark .rsn-card:hover,
  html.rx-dark .ann-card:hover, html.rx-dark .gco-card:hover{
    box-shadow: 0 14px 32px rgba(0,0,0,.55) !important;
    border-color: rgba(0,166,81,.6) !important;
  }
  .esn-card:hover::after, .rsn-card:hover::after,
  .ann-card:hover::after, .gco-card:hover::after{ transform: scaleY(1); }

  /* Filtres : focus visible + animation douce */
  .esn-filters select, .rsn-filters select, .ann-filters select, .gco-filters select,
  .esn-filters input, .rsn-filters input, .ann-filters input, .gco-filters input{
    transition:
      border-color .25s ease,
      box-shadow .25s ease,
      background-color .25s ease,
      transform .2s ease;
  }
  .esn-filters select:focus, .rsn-filters select:focus, .ann-filters select:focus, .gco-filters select:focus,
  .esn-filters input:focus, .rsn-filters input:focus, .ann-filters input:focus, .gco-filters input:focus{
    transform: translateY(-1px);
  }

  /* CTA boutons des plugins : effet "shine" qui balaye */
  .esn-btn-postuler, .rsn-cta-btn, .ann-cta-btn, .gco-cta-btn{
    position: relative; overflow: hidden;
    transition: transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s ease, background-color .25s ease;
  }
  .esn-btn-postuler::before, .rsn-cta-btn::before, .ann-cta-btn::before, .gco-cta-btn::before{
    content:""; position: absolute; top:0; left: -120%;
    width: 120%; height: 100%;
    background: linear-gradient(120deg, transparent 30%, rgba(255,255,255,.45) 50%, transparent 70%);
    transition: left .55s ease;
    pointer-events: none;
  }
  .esn-btn-postuler:hover::before, .rsn-cta-btn:hover::before,
  .ann-cta-btn:hover::before, .gco-cta-btn:hover::before{ left: 100%; }
  .esn-btn-postuler:hover, .rsn-cta-btn:hover, .ann-cta-btn:hover, .gco-cta-btn:hover{
    transform: translateY(-2px) scale(1.03);
    box-shadow: 0 8px 22px rgba(0,166,81,.35);
  }

  /* ─── 7. SCROLLBAR sombre ─── */
  html.rx-dark ::-webkit-scrollbar{ width: 10px; height: 10px; }
  html.rx-dark ::-webkit-scrollbar-track{ background: #0b1220; }
  html.rx-dark ::-webkit-scrollbar-thumb{ background: #1f2937; border-radius: 6px; }
  html.rx-dark ::-webkit-scrollbar-thumb:hover{ background: #00a651; }
  html.rx-dark{ scrollbar-color: #1f2937 #0b1220; }

  /* ─── 8. ACCESSIBILITÉ : reduced-motion respecté ─── */
  @media (prefers-reduced-motion: reduce){
    .rx-tool-chip, .rx-tool-card, .esn-card, .rsn-card, .ann-card, .gco-card,
    .rx-logo__petals, .rx-logo__star, .rx-logo__ring, .rx-logo__rif, .rx-logo__xalima{
      animation: none !important;
      transition: none !important;
    }
  }
  

  /* ════════════════════════════════════════════════════════════════
     ✦ v9 — LISIBILITÉ TOTALE DES OUTILS EN MODE SOMBRE
     • Titres dégradés (background-clip:text) → texte plein lisible
     • Sous-titres / leads des héros plugins → contraste élevé
     • Chips de filtres (Tous / Sécurité / Université…) → fond + texte clairs
     • Plus aucune zone "floue" dans les outils
  ════════════════════════════════════════════════════════════════ */

  /* ─── 1. Titres des héros plugins : on tue l'effet "texte transparent" ─── */
  html.rx-dark .esn-page-hero h1, html.rx-dark .esn-page-hero h2,
  html.rx-dark .rsn-page-hero h1, html.rx-dark .rsn-page-hero h2,
  html.rx-dark .ann-page-hero h1, html.rx-dark .ann-page-hero h2,
  html.rx-dark .gco-page-hero h1, html.rx-dark .gco-page-hero h2,
  html.rx-dark .esn-page-hero .esn-title, html.rx-dark .rsn-page-hero .rsn-title,
  html.rx-dark .ann-page-hero .ann-title, html.rx-dark .gco-page-hero .gco-title,
  html.rx-dark [class*="page-hero"] h1, html.rx-dark [class*="page-hero"] h2,
  html.rx-dark [class*="-hero"] h1, html.rx-dark [class*="-hero"] h2{
    background: none !important;
    background-image: none !important;
    background-clip: initial !important;
    -webkit-background-clip: initial !important;
    -webkit-text-fill-color: #FDEF42 !important;
    color: #FDEF42 !important;
    text-shadow: 0 2px 8px rgba(0,0,0,.6);
    filter: none !important;
  }

  /* Lead / subtitle / description sous les titres */
  html.rx-dark .esn-page-hero p, html.rx-dark .rsn-page-hero p,
  html.rx-dark .ann-page-hero p, html.rx-dark .gco-page-hero p,
  html.rx-dark .esn-page-hero .esn-lead, html.rx-dark .rsn-page-hero .rsn-lead,
  html.rx-dark .ann-page-hero .ann-lead, html.rx-dark .gco-page-hero .gco-lead,
  html.rx-dark [class*="page-hero"] p, html.rx-dark [class*="-hero"] p{
    color: #f1f5f9 !important;
    -webkit-text-fill-color: #f1f5f9 !important;
    background: none !important;
    background-image: none !important;
    background-clip: initial !important;
    -webkit-background-clip: initial !important;
    text-shadow: 0 1px 4px rgba(0,0,0,.5);
    opacity: 1 !important;
    filter: none !important;
  }

  /* Tous les SPAN/STRONG/EM dans les héros plugins → texte plein lisible */
  html.rx-dark .esn-page-hero *, html.rx-dark .rsn-page-hero *,
  html.rx-dark .ann-page-hero *, html.rx-dark .gco-page-hero *,
  html.rx-dark [class*="page-hero"] *{
    -webkit-text-fill-color: inherit;
  }

  /* ─── 2. Chips de filtres (Tous, Sécurité, Université, Éducation, Administration…) ─── */
  .esn-chip, .rsn-chip, .ann-chip, .gco-chip,
  .esn-tab, .rsn-tab, .ann-tab, .gco-tab,
  .esn-filter-chip, .rsn-filter-chip, .ann-filter-chip, .gco-filter-chip{
    font-weight: 700 !important;
    letter-spacing: .01em;
  }

  /* Mode CLAIR : chips avec contraste fort par défaut */
  .esn-chip, .rsn-chip, .ann-chip, .gco-chip,
  .esn-filter-chip, .rsn-filter-chip, .ann-filter-chip, .gco-filter-chip{
    background-color: #ffffff !important;
    color: #0f172a !important;
    border: 1.5px solid #cbd5e1 !important;
  }
  .esn-chip:hover, .rsn-chip:hover, .ann-chip:hover, .gco-chip:hover{
    background-color: #ecfdf5 !important;
    border-color: #00a651 !important;
    color: #006830 !important;
  }
  .esn-chip.active, .rsn-chip.active, .ann-chip.active, .gco-chip.active,
  .esn-chip[aria-pressed="true"], .rsn-chip[aria-pressed="true"],
  .ann-chip[aria-pressed="true"], .gco-chip[aria-pressed="true"]{
    background: linear-gradient(135deg, #00a651 0%, #006830 100%) !important;
    color: #ffffff !important;
    border-color: transparent !important;
    box-shadow: 0 4px 14px rgba(0,166,81,.35) !important;
    -webkit-text-fill-color: #ffffff !important;
  }

  /* Mode SOMBRE : chips fond foncé / texte jaune flag, actifs en vert lumineux */
  html.rx-dark .esn-chip, html.rx-dark .rsn-chip,
  html.rx-dark .ann-chip, html.rx-dark .gco-chip,
  html.rx-dark .esn-filter-chip, html.rx-dark .rsn-filter-chip,
  html.rx-dark .ann-filter-chip, html.rx-dark .gco-filter-chip{
    background-color: #1f2937 !important;
    color: #fef3c7 !important;
    border: 1.5px solid #475569 !important;
    -webkit-text-fill-color: #fef3c7 !important;
    text-shadow: none !important;
  }
  html.rx-dark .esn-chip:hover, html.rx-dark .rsn-chip:hover,
  html.rx-dark .ann-chip:hover, html.rx-dark .gco-chip:hover{
    background-color: #00a651 !important;
    color: #ffffff !important;
    border-color: #00a651 !important;
    -webkit-text-fill-color: #ffffff !important;
    transform: translateY(-1px);
  }
  html.rx-dark .esn-chip.active, html.rx-dark .rsn-chip.active,
  html.rx-dark .ann-chip.active, html.rx-dark .gco-chip.active,
  html.rx-dark .esn-chip[aria-pressed="true"], html.rx-dark .rsn-chip[aria-pressed="true"],
  html.rx-dark .ann-chip[aria-pressed="true"], html.rx-dark .gco-chip[aria-pressed="true"]{
    background: linear-gradient(135deg, #FDEF42 0%, #f59e0b 100%) !important;
    color: #0f172a !important;
    -webkit-text-fill-color: #0f172a !important;
    border-color: transparent !important;
    box-shadow: 0 6px 18px rgba(253,239,66,.35) !important;
  }

  /* Onglets éventuels (ann-tab, etc.) en sombre */
  html.rx-dark .ann-tab, html.rx-dark .esn-tab, html.rx-dark .gco-tab,
  html.rx-dark .rsn-tab{
    color: #cbd5e1 !important;
    -webkit-text-fill-color: #cbd5e1 !important;
    background: transparent !important;
    border-bottom: 2px solid transparent;
  }
  html.rx-dark .ann-tab.active, html.rx-dark .esn-tab.active,
  html.rx-dark .gco-tab.active, html.rx-dark .rsn-tab.active{
    color: #FDEF42 !important;
    -webkit-text-fill-color: #FDEF42 !important;
    border-bottom-color: #FDEF42 !important;
  }

  /* ─── 3. Champ de recherche du plugin (input + bouton "Rechercher") ─── */
  html.rx-dark .esn-search input, html.rx-dark .rsn-search input,
  html.rx-dark .ann-search input, html.rx-dark .gco-search input,
  html.rx-dark [class*="-search"] input,
  html.rx-dark [class*="-page-hero"] input{
    background-color: #0b1220 !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    border: 1.5px solid #475569 !important;
    caret-color: #FDEF42;
  }
  html.rx-dark .esn-search input::placeholder, html.rx-dark .rsn-search input::placeholder,
  html.rx-dark .ann-search input::placeholder, html.rx-dark .gco-search input::placeholder,
  html.rx-dark [class*="-search"] input::placeholder{
    color: #94a3b8 !important;
    -webkit-text-fill-color: #94a3b8 !important;
  }
  html.rx-dark .esn-search button, html.rx-dark .rsn-search button,
  html.rx-dark .ann-search button, html.rx-dark .gco-search button,
  html.rx-dark [class*="-search"] button[type="submit"],
  html.rx-dark [class*="-page-hero"] button{
    background: linear-gradient(135deg, #00a651 0%, #006830 100%) !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    border: none !important;
    box-shadow: 0 4px 14px rgba(0,166,81,.35) !important;
  }

  /* ─── 4. CASSE LE BACKGROUND CLAIR DES HÉROS PLUGINS EN DARK ─── */
  html.rx-dark .esn-page-hero, html.rx-dark .rsn-page-hero,
  html.rx-dark .ann-page-hero, html.rx-dark .gco-page-hero,
  html.rx-dark [class*="page-hero"]{
    background: linear-gradient(135deg, #0b1220 0%, #0d1a36 50%, #0b1220 100%) !important;
    background-image: linear-gradient(135deg, #0b1220 0%, #0d1a36 50%, #0b1220 100%) !important;
    border-bottom: 1px solid #1f2937 !important;
    color: #f1f5f9 !important;
  }

  /* Suppression de tout filter:blur résiduel sur les héros */
  html.rx-dark .esn-page-hero *, html.rx-dark .rsn-page-hero *,
  html.rx-dark .ann-page-hero *, html.rx-dark .gco-page-hero *,
  html.rx-dark [class*="page-hero"] *{
    filter: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  /* ─── 5. EMOJIS / ICÔNES dans héros : visibles en dark ─── */
  html.rx-dark .esn-page-hero img, html.rx-dark .rsn-page-hero img,
  html.rx-dark .ann-page-hero img, html.rx-dark .gco-page-hero img,
  html.rx-dark [class*="page-hero"] img,
  html.rx-dark [class*="page-hero"] svg{
    filter: drop-shadow(0 4px 14px rgba(0,0,0,.6));
  }

  /* ─── 6. Empêche tout texte gris pâle de devenir illisible (dark only) ─── */
  html.rx-dark [style*="color:#fff"],
  html.rx-dark [style*="color: #fff"],
  html.rx-dark [style*="color:#e2e8f0"],
  html.rx-dark [style*="color: #e2e8f0"]{
    color: #f1f5f9 !important;
  }
  html.rx-dark [style*="color:#0f172a"],
  html.rx-dark [style*="color: #0f172a"],
  html.rx-dark [style*="color:#1e293b"],
  html.rx-dark [style*="color: #1e293b"]{
    color: #f1f5f9 !important;
  }
  

  /* ════════════════════════════════════════════════════════════════
     ✦ v10 — POLITIQUE FINALE
     • Mode SOMBRE limité à : header, footer, blog
     • Outils (#esn-wrap, #rsn-wrap, #ann-wrap, #gco-wrap, .rx-tools, .rx-toolstrip,
       .rx-page-section[outils]) → toujours en CLAIR
     • Animations outils : UN SEUL style sobre, compact, propre
  ════════════════════════════════════════════════════════════════ */

  /* ─── 1. ANNULER le dark mode dans tous les wrappers d'outils ─── */
  html.rx-dark #esn-wrap, html.rx-dark #rsn-wrap,
  html.rx-dark #ann-wrap, html.rx-dark #gco-wrap,
  html.rx-dark .rx-tools, html.rx-dark .rx-toolstrip,
  html.rx-dark .esn-page-hero, html.rx-dark .rsn-page-hero,
  html.rx-dark .ann-page-hero, html.rx-dark .gco-page-hero,
  html.rx-dark [class*="esn-"], html.rx-dark [class*="rsn-"],
  html.rx-dark [class*="ann-"], html.rx-dark [class*="gco-"],
  html.rx-dark .rx-tool-card, html.rx-dark .rx-tool-chip,
  html.rx-dark .rx-tools__grid, html.rx-dark .rx-tools__card{
    /* les sélecteurs précis ci-dessous écrasent toutes les surcharges sombres */
  }

  /* Conteneurs outils → fond clair forcé */
  html.rx-dark #esn-wrap, html.rx-dark #rsn-wrap,
  html.rx-dark #ann-wrap, html.rx-dark #gco-wrap,
  html.rx-dark .rx-tools,
  html.rx-dark .rx-toolstrip{
    background-color: #ffffff !important;
    background-image: none !important;
    color: #0f172a !important;
    border-color: #e2e8f0 !important;
  }

  /* Héros des plugins outils → fond clair lumineux */
  html.rx-dark .esn-page-hero, html.rx-dark .rsn-page-hero,
  html.rx-dark .ann-page-hero, html.rx-dark .gco-page-hero,
  html.rx-dark [class*="page-hero"]{
    background: linear-gradient(135deg, #f8fafc 0%, #ecfdf5 50%, #fefce8 100%) !important;
    background-image: linear-gradient(135deg, #f8fafc 0%, #ecfdf5 50%, #fefce8 100%) !important;
    color: #0f172a !important;
    border-bottom: 2px solid #00853F !important;
  }

  /* Titres des héros plugins en CLAIR (vert Sénégal) */
  html.rx-dark .esn-page-hero h1, html.rx-dark .esn-page-hero h2,
  html.rx-dark .rsn-page-hero h1, html.rx-dark .rsn-page-hero h2,
  html.rx-dark .ann-page-hero h1, html.rx-dark .ann-page-hero h2,
  html.rx-dark .gco-page-hero h1, html.rx-dark .gco-page-hero h2,
  html.rx-dark [class*="page-hero"] h1, html.rx-dark [class*="page-hero"] h2{
    color: #00853F !important;
    -webkit-text-fill-color: #00853F !important;
    background: none !important;
    background-image: none !important;
    text-shadow: none !important;
    filter: none !important;
  }
  html.rx-dark .esn-page-hero p, html.rx-dark .rsn-page-hero p,
  html.rx-dark .ann-page-hero p, html.rx-dark .gco-page-hero p,
  html.rx-dark [class*="page-hero"] p{
    color: #475569 !important;
    -webkit-text-fill-color: #475569 !important;
    text-shadow: none !important;
  }

  /* Cartes des plugins → blanches, texte foncé */
  html.rx-dark .esn-card, html.rx-dark .rsn-card,
  html.rx-dark .ann-card, html.rx-dark .gco-card,
  html.rx-dark .esn-modal, html.rx-dark .esn-modal-head, html.rx-dark .esn-modal-body,
  html.rx-dark .esn-empty, html.rx-dark .esn-meta-bar,
  html.rx-dark .esn-filters, html.rx-dark .rsn-filters, html.rx-dark .ann-filters, html.rx-dark .gco-filters,
  html.rx-dark .esn-grid, html.rx-dark .rsn-grid, html.rx-dark .ann-grid, html.rx-dark .gco-grid,
  html.rx-dark .esn-pagination, html.rx-dark .rsn-pagination, html.rx-dark .ann-pagination, html.rx-dark .gco-pagination,
  html.rx-dark .esn-tabs, html.rx-dark .ann-tabs, html.rx-dark .gco-tabs{
    background-color: #ffffff !important;
    background-image: none !important;
    color: #0f172a !important;
    border-color: #e2e8f0 !important;
    box-shadow: 0 2px 10px rgba(15,23,42,.06) !important;
  }
  html.rx-dark .esn-card *, html.rx-dark .rsn-card *,
  html.rx-dark .ann-card *, html.rx-dark .gco-card *{
    color: inherit;
    -webkit-text-fill-color: inherit;
  }
  html.rx-dark .esn-card h1, html.rx-dark .esn-card h2, html.rx-dark .esn-card h3, html.rx-dark .esn-card h4,
  html.rx-dark .rsn-card h1, html.rx-dark .rsn-card h2, html.rx-dark .rsn-card h3, html.rx-dark .rsn-card h4,
  html.rx-dark .ann-card h1, html.rx-dark .ann-card h2, html.rx-dark .ann-card h3, html.rx-dark .ann-card h4,
  html.rx-dark .gco-card h1, html.rx-dark .gco-card h2, html.rx-dark .gco-card h3, html.rx-dark .gco-card h4{
    color: #0f172a !important;
    -webkit-text-fill-color: #0f172a !important;
  }
  html.rx-dark .esn-card p, html.rx-dark .rsn-card p,
  html.rx-dark .ann-card p, html.rx-dark .gco-card p,
  html.rx-dark .esn-meta, html.rx-dark .rsn-meta,
  html.rx-dark .ann-meta, html.rx-dark .gco-meta{
    color: #475569 !important;
    -webkit-text-fill-color: #475569 !important;
  }

  /* Inputs / selects des outils → CLAIR */
  html.rx-dark #esn-wrap input, html.rx-dark #esn-wrap select, html.rx-dark #esn-wrap textarea,
  html.rx-dark #rsn-wrap input, html.rx-dark #rsn-wrap select, html.rx-dark #rsn-wrap textarea,
  html.rx-dark #ann-wrap input, html.rx-dark #ann-wrap select, html.rx-dark #ann-wrap textarea,
  html.rx-dark #gco-wrap input, html.rx-dark #gco-wrap select, html.rx-dark #gco-wrap textarea,
  html.rx-dark [class*="-page-hero"] input, html.rx-dark [class*="-page-hero"] select{
    background-color: #ffffff !important;
    color: #0f172a !important;
    -webkit-text-fill-color: #0f172a !important;
    border: 1.5px solid #cbd5e1 !important;
    caret-color: #00853F;
  }
  html.rx-dark #esn-wrap input::placeholder, html.rx-dark #rsn-wrap input::placeholder,
  html.rx-dark #ann-wrap input::placeholder, html.rx-dark #gco-wrap input::placeholder{
    color: #94a3b8 !important;
    -webkit-text-fill-color: #94a3b8 !important;
  }

  /* Chips des outils en CLAIR */
  html.rx-dark .esn-chip, html.rx-dark .rsn-chip,
  html.rx-dark .ann-chip, html.rx-dark .gco-chip{
    background-color: #ffffff !important;
    color: #0f172a !important;
    -webkit-text-fill-color: #0f172a !important;
    border: 1.5px solid #cbd5e1 !important;
  }
  html.rx-dark .esn-chip:hover, html.rx-dark .rsn-chip:hover,
  html.rx-dark .ann-chip:hover, html.rx-dark .gco-chip:hover{
    background-color: #ecfdf5 !important;
    border-color: #00853F !important;
    color: #006830 !important;
    -webkit-text-fill-color: #006830 !important;
  }
  html.rx-dark .esn-chip.active, html.rx-dark .rsn-chip.active,
  html.rx-dark .ann-chip.active, html.rx-dark .gco-chip.active,
  html.rx-dark .esn-chip[aria-pressed="true"], html.rx-dark .rsn-chip[aria-pressed="true"],
  html.rx-dark .ann-chip[aria-pressed="true"], html.rx-dark .gco-chip[aria-pressed="true"]{
    background: linear-gradient(135deg, #00a651 0%, #006830 100%) !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    border-color: transparent !important;
    box-shadow: 0 4px 12px rgba(0,166,81,.3) !important;
  }

  /* Boutons / pagination outils en CLAIR */
  html.rx-dark .esn-pagination button, html.rx-dark .rsn-pagination button,
  html.rx-dark .ann-pagination button, html.rx-dark .gco-pagination button{
    background-color: #ffffff !important;
    color: #0f172a !important;
    -webkit-text-fill-color: #0f172a !important;
    border: 1.5px solid #e2e8f0 !important;
  }

  /* Tool strip + tool cards → CLAIRES */
  html.rx-dark .rx-toolstrip{
    background: #ffffff !important;
    background-image: none !important;
    border-bottom: 1px solid #e2e8f0 !important;
    color: #0f172a !important;
  }
  html.rx-dark .rx-toolstrip__label{
    color: #00853F !important;
    -webkit-text-fill-color: #00853F !important;
  }
  html.rx-dark .rx-tool-chip{
    background: #f8fafc !important;
    color: #0f172a !important;
    -webkit-text-fill-color: #0f172a !important;
    border: 1px solid #e2e8f0 !important;
  }
  html.rx-dark .rx-tools, html.rx-dark .rx-tools__grid{
    background: #f8fafc !important;
    color: #0f172a !important;
  }
  html.rx-dark .rx-tool-card{
    background: #ffffff !important;
    color: #0f172a !important;
    border: 1px solid #e2e8f0 !important;
    box-shadow: 0 4px 14px rgba(15,23,42,.06) !important;
  }
  html.rx-dark .rx-tool-card h3{ color: #0f172a !important; -webkit-text-fill-color: #0f172a !important; }
  html.rx-dark .rx-tool-card p{ color: #475569 !important; -webkit-text-fill-color: #475569 !important; }
  html.rx-dark .rx-tool-card__icon{ background: #ecfdf5 !important; color: #006830 !important; }
  html.rx-dark .rx-tool-card__icon--green{ background: #d1fae5 !important; color: #006830 !important; }
  html.rx-dark .rx-tool-card__icon--red  { background: #fee2e2 !important; color: #b91c1c !important; }
  html.rx-dark .rx-tool-card__icon--blue { background: #dbeafe !important; color: #1d4ed8 !important; }
  html.rx-dark .rx-tool-card__icon--amber{ background: #fef3c7 !important; color: #b45309 !important; }

  /* ─── 2. ANIMATIONS UNIFIÉES POUR LES OUTILS — sobres et compactes ─── */
  /* On annule TOUTES les animations multi-couleurs/3D/shine précédentes */
  .rx-tool-chip, .rx-tool-card,
  .esn-card, .rsn-card, .ann-card, .gco-card,
  .esn-chip, .rsn-chip, .ann-chip, .gco-chip,
  .esn-btn-postuler, .rsn-cta-btn, .ann-cta-btn, .gco-cta-btn{
    animation: none !important;
  }
  .rx-tool-chip::before, .rx-tool-chip::after,
  .rx-tool-card::before, .rx-tool-card::after,
  .esn-card::before, .esn-card::after,
  .rsn-card::before, .rsn-card::after,
  .ann-card::before, .ann-card::after,
  .gco-card::before, .gco-card::after,
  .esn-btn-postuler::before, .rsn-cta-btn::before,
  .ann-cta-btn::before, .gco-cta-btn::before{
    display: none !important;
    content: none !important;
  }

  /* Override : transitions sobres et UNIFORMES partout */
  .rx-tool-chip{
    transition: transform .2s ease, background-color .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease !important;
    transform: none;
    box-shadow: none !important;
  }
  .rx-tool-chip:hover{
    transform: translateY(-2px) !important;
    background: #ecfdf5 !important;
    color: #006830 !important;
    border-color: #00853F !important;
    box-shadow: 0 4px 10px rgba(0,133,63,.15) !important;
  }
  .rx-tool-chip:hover .rx-tool-chip__ico{
    transform: scale(1.1) !important;
    filter: none !important;
  }
  /* Variantes par position : DÉSACTIVÉES — un seul hover propre */
  .rx-tool-chip:nth-child(5n+1):hover,
  .rx-tool-chip:nth-child(5n+2):hover,
  .rx-tool-chip:nth-child(5n+3):hover,
  .rx-tool-chip:nth-child(5n+4):hover,
  .rx-tool-chip:nth-child(5n+5):hover{
    background: #ecfdf5 !important;
    color: #006830 !important;
    box-shadow: 0 4px 10px rgba(0,133,63,.15) !important;
  }

  .rx-tool-card{
    transition: transform .25s ease, box-shadow .25s ease, border-color .2s ease !important;
    transform: none;
  }
  .rx-tool-card:hover{
    transform: translateY(-3px) !important;
    box-shadow: 0 10px 24px rgba(15,23,42,.1) !important;
    border-color: #00853F !important;
  }
  .rx-tool-card:hover .rx-tool-card__icon{
    transform: scale(1.06) !important;
  }

  .esn-card, .rsn-card, .ann-card, .gco-card{
    transition: transform .25s ease, box-shadow .25s ease, border-color .2s ease !important;
  }
  .esn-card:hover, .rsn-card:hover, .ann-card:hover, .gco-card:hover{
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 20px rgba(15,23,42,.08) !important;
    border-color: #00853F !important;
  }

  .esn-chip, .rsn-chip, .ann-chip, .gco-chip{
    transition: background-color .18s ease, color .18s ease, border-color .18s ease, transform .18s ease !important;
  }
  .esn-chip:hover, .rsn-chip:hover, .ann-chip:hover, .gco-chip:hover{
    transform: translateY(-1px) !important;
  }

  .esn-btn-postuler, .rsn-cta-btn, .ann-cta-btn, .gco-cta-btn{
    transition: background-color .2s ease, transform .2s ease, box-shadow .2s ease !important;
  }
  .esn-btn-postuler:hover, .rsn-cta-btn:hover, .ann-cta-btn:hover, .gco-cta-btn:hover{
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 10px rgba(0,133,63,.25) !important;
  }

  /* Désactiver les radial-gradient et orbes derrière la toolstrip */
  .rx-toolstrip::before, .rx-toolstrip::after{
    display: none !important;
    content: none !important;
  }

  /* ─── 3. BLOG, HEADER, FOOTER : conserver le mode sombre (sécurité) ─── */
  /* Ces sélecteurs réaffirment juste que le dark s'applique bien sur ces zones */
  html.rx-dark .rx-header, html.rx-dark .rx-header__inner{
    background-color: rgba(11,18,32,.92) !important;
    color: #f1f5f9 !important;
    border-color: #1f2937 !important;
  }
  html.rx-dark .rx-header a, html.rx-dark .rx-header__inner a{
    color: #f1f5f9 !important;
  }
  html.rx-dark .rx-footer{
    background-color: #0b1220 !important;
    color: #cbd5e1 !important;
    border-color: #1f2937 !important;
  }
  html.rx-dark .rx-footer a{ color: #cbd5e1 !important; }
  html.rx-dark .rx-footer a:hover{ color: #FDEF42 !important; }

  html.rx-dark .rx-blog-section, html.rx-dark .rx-blog-hero,
  html.rx-dark .rx-single, html.rx-dark .rx-single__related,
  html.rx-dark .rx-single__comments, html.rx-dark .rx-related-card,
  html.rx-dark .rx-page-comments,
  html.rx-dark article.post, html.rx-dark .post-card,
  html.rx-dark .rx-posts-grid > *{
    background-color: #131d34 !important;
    color: #e2e8f0 !important;
    border-color: #1f2937 !important;
  }
  html.rx-dark .rx-blog-section h1, html.rx-dark .rx-blog-section h2, html.rx-dark .rx-blog-section h3,
  html.rx-dark .rx-single h1, html.rx-dark .rx-single h2, html.rx-dark .rx-single h3,
  html.rx-dark article.post h1, html.rx-dark article.post h2, html.rx-dark article.post h3{
    color: #f1f5f9 !important;
  }
  html.rx-dark .rx-blog-section p, html.rx-dark .rx-single p,
  html.rx-dark article.post p, html.rx-dark article.post li{
    color: #cbd5e1 !important;
  }
  

  /* ════════════════════════════════════════════════════════════════
     ✦ v11 — POLITIQUE FINALE : MODE SOMBRE DÉSACTIVÉ PARTOUT
     • Aucune .rx-dark ne doit exister, on neutralise au cas où
     • Animations outils : drapeau Sénégal compact, vivant, sobre
     • Plugins : on laisse leur propre rendu (pas d'override agressif)
     • Composants WP-essentials : breadcrumb, share, newsletter,
       cookie, back-to-top, read-bar, related → styles assortis
  ════════════════════════════════════════════════════════════════ */

  /* 1 — Neutralisation totale de toute classe .rx-dark résiduelle */
  html.rx-dark, body.rx-dark,
  html.rx-dark-pre, body.rx-dark-pre{
    background-color: #ffffff !important;
    color: #0f172a !important;
    color-scheme: light !important;
  }
  html.rx-dark *, body.rx-dark *,
  html.rx-dark-pre *, body.rx-dark-pre *{
    color-scheme: light !important;
  }

  /* On force tout descendant éventuellement teinté à reprendre les défauts clairs */
  html.rx-dark .rx-header, html.rx-dark .rx-header__inner,
  html.rx-dark .rx-footer, html.rx-dark .rx-blog-section,
  html.rx-dark .rx-single, html.rx-dark .rx-page-section,
  html.rx-dark article, html.rx-dark .rx-card,
  html.rx-dark .rx-tool-card, html.rx-dark .rx-toolstrip,
  html.rx-dark #esn-wrap, html.rx-dark #rsn-wrap,
  html.rx-dark #ann-wrap, html.rx-dark #gco-wrap{
    background-color: #ffffff !important;
    color: #0f172a !important;
    border-color: #e2e8f0 !important;
  }

  /* 2 — On annule TOUS les overrides plugins introduits en v8/v9/v10 */
  .esn-card, .rsn-card, .ann-card, .gco-card,
  .esn-modal, .esn-modal-head, .esn-modal-body,
  .esn-empty, .esn-meta-bar,
  .esn-filters, .rsn-filters, .ann-filters, .gco-filters,
  .esn-grid, .rsn-grid, .ann-grid, .gco-grid,
  .esn-pagination, .rsn-pagination, .ann-pagination, .gco-pagination,
  .esn-tabs, .ann-tabs, .gco-tabs,
  .esn-page-hero, .rsn-page-hero, .ann-page-hero, .gco-page-hero,
  .esn-chip, .rsn-chip, .ann-chip, .gco-chip,
  .esn-tab, .rsn-tab, .ann-tab, .gco-tab,
  .esn-card *, .rsn-card *, .ann-card *, .gco-card *,
  [class*="esn-"], [class*="rsn-"], [class*="ann-"], [class*="gco-"]{
    background: revert;
    background-color: revert;
    background-image: revert;
    color: revert;
    -webkit-text-fill-color: revert;
    border-color: revert;
    box-shadow: revert;
    filter: revert;
    backdrop-filter: revert;
    -webkit-backdrop-filter: revert;
  }

  /* On retire seulement les pseudo-éléments parasites ajoutés par notre v8 */
  .esn-card::before, .esn-card::after,
  .rsn-card::before, .rsn-card::after,
  .ann-card::before, .ann-card::after,
  .gco-card::before, .gco-card::after,
  .esn-btn-postuler::before, .rsn-cta-btn::before,
  .ann-cta-btn::before, .gco-cta-btn::before{
    content: none !important;
    display: none !important;
  }

  /* On retire les transforms appliqués par notre v8/v10 sur les cartes plugin
     afin de laisser le plugin gérer ses propres effets */
  .esn-card, .rsn-card, .ann-card, .gco-card{
    transition: revert !important;
    transform: none !important;
  }
  .esn-card:hover, .rsn-card:hover, .ann-card:hover, .gco-card:hover{
    transform: revert !important;
    border-color: revert !important;
    box-shadow: revert !important;
  }

  /* 3 — Bouton mode sombre du header : caché (au cas où il existerait encore) */
  .rx-theme-toggle{ display: none !important; }

  /* ════════════════════════════════════════════════════════════════
     ✦ ANIMATIONS OUTILS — esprit drapeau Sénégal, compactes
  ════════════════════════════════════════════════════════════════ */

  /* On annule TOUTES les anciennes anims de la barre d'outils */
  .rx-toolstrip::before, .rx-toolstrip::after{ content: none !important; display: none !important; }

  /* Couleurs drapeau exposées en variables locales */
  .rx-toolstrip{
    --sn-g: #00853F;
    --sn-y: #FDEF42;
    --sn-r: #E31B23;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    border-bottom: 1px solid #e2e8f0;
    position: relative;
    overflow: hidden;
  }

  /* Liseré drapeau animé en haut de la barre d'outils */
  .rx-toolstrip::before{
    content: "" !important;
    display: block !important;
    position: absolute; top: 0; left: 0; right: 0; height: 3px;
    background: linear-gradient(90deg,
      var(--sn-g) 0%, var(--sn-g) 33%,
      var(--sn-y) 33%, var(--sn-y) 66%,
      var(--sn-r) 66%, var(--sn-r) 100%);
    background-size: 200% 100%;
    animation: rxFlagSlide 6s linear infinite;
  }
  @keyframes rxFlagSlide{
    0%   { background-position: 0%   0%; }
    100% { background-position: 200% 0%; }
  }

  /* Chip outil — pastille douce, animation drapeau au hover */
  .rx-tool-chip{
    position: relative;
    background: #ffffff;
    border: 1.5px solid #e2e8f0;
    color: #0f172a;
    border-radius: 999px;
    padding: 8px 16px;
    font-weight: 600;
    display: inline-flex; align-items: center; gap: 8px;
    transition: transform .25s ease, border-color .2s ease, box-shadow .25s ease, background-color .25s ease, color .2s ease;
    overflow: hidden;
    isolation: isolate;
  }

  /* Trait tricolore qui glisse sous l'étiquette */
  .rx-tool-chip::before{
    content: "";
    position: absolute; left: 0; right: 0; bottom: 0; height: 3px;
    background: linear-gradient(90deg, var(--sn-g, #00853F) 0 33%, var(--sn-y, #FDEF42) 33% 66%, var(--sn-r, #E31B23) 66% 100%);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform .35s ease;
  }
  .rx-tool-chip:hover{
    transform: translateY(-2px);
    border-color: #00853F;
    box-shadow: 0 6px 14px rgba(0,133,63,.18);
    background: #ffffff;
    color: #006830;
  }
  .rx-tool-chip:hover::before{ transform: scaleX(1); }
  .rx-tool-chip__ico{
    display: inline-flex;
    transition: transform .3s cubic-bezier(.34,1.56,.64,1);
  }
  .rx-tool-chip:hover .rx-tool-chip__ico{ transform: rotate(-8deg) scale(1.12); }

  /* Chip actif — mini drapeau pulsant */
  .rx-tool-chip--active{
    background: linear-gradient(135deg, #00a651 0%, #006830 100%);
    color: #ffffff;
    border-color: transparent;
    box-shadow: 0 6px 16px rgba(0,166,81,.35);
    animation: rxChipBeat 2.6s ease-in-out infinite;
  }
  .rx-tool-chip--active::before{ transform: scaleX(1); }
  @keyframes rxChipBeat{
    0%, 100% { box-shadow: 0 6px 16px rgba(0,166,81,.35); }
    50%      { box-shadow: 0 6px 22px rgba(253,239,66,.45); }
  }

  /* Carte outil (home) — étoile Sénégal au survol + soulignement drapeau */
  .rx-tool-card{
    position: relative;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    overflow: hidden;
    transition: transform .25s ease, box-shadow .25s ease, border-color .2s ease;
  }
  .rx-tool-card::after{
    content: "";
    position: absolute; left: 0; right: 0; bottom: 0; height: 4px;
    background: linear-gradient(90deg, #00853F 0 33%, #FDEF42 33% 66%, #E31B23 66% 100%);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform .4s ease;
  }
  .rx-tool-card:hover{
    transform: translateY(-4px);
    border-color: #00853F;
    box-shadow: 0 12px 28px rgba(15,23,42,.10);
  }
  .rx-tool-card:hover::after{ transform: scaleX(1); }

  .rx-tool-card__icon{
    position: relative;
    transition: transform .35s cubic-bezier(.34,1.56,.64,1);
  }
  .rx-tool-card:hover .rx-tool-card__icon{ transform: rotate(-6deg) scale(1.08); }

  /* Petite étoile jaune Sénégal qui apparaît coin haut-droit au hover */
  .rx-tool-card::before{
    content: "★";
    position: absolute; top: 10px; right: 12px;
    color: var(--sn-y, #FDEF42);
    font-size: 18px;
    text-shadow: 0 1px 2px rgba(227,27,35,.45);
    opacity: 0;
    transform: scale(.4) rotate(-30deg);
    transition: opacity .3s ease, transform .35s cubic-bezier(.34,1.56,.64,1);
    pointer-events: none;
  }
  .rx-tool-card:hover::before{
    opacity: 1;
    transform: scale(1) rotate(0deg);
  }

  /* ════════════════════════════════════════════════════════════════
     ✦ COMPOSANTS WP-ESSENTIALS — styles assortis
  ════════════════════════════════════════════════════════════════ */

  /* Fil d'Ariane */
  .rx-breadcrumb{ font-size: .9rem; padding: 12px 0; color: #475569; }
  .rx-breadcrumb ol{ list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
  .rx-breadcrumb a{ color: #00853F; text-decoration: none; font-weight: 600; }
  .rx-breadcrumb a:hover{ text-decoration: underline; }
  .rx-breadcrumb__sep{ margin: 0 4px; color: #94a3b8; }
  .rx-breadcrumb [aria-current]{ color: #0f172a; font-weight: 600; }

  /* Partage social */
  .rx-share{ display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 28px 0 0; padding: 16px; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 12px; }
  .rx-share__lbl{ font-weight: 700; color: #0f172a; margin-right: 6px; }
  .rx-share__btn{ width: 38px; height: 38px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-weight: 800; text-decoration: none; color: #fff; border: none; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease, opacity .2s ease; font-size: 16px; }
  .rx-share__btn:hover{ transform: translateY(-2px); box-shadow: 0 6px 14px rgba(15,23,42,.18); }
  .rx-share__fb{ background: #1877F2; }
  .rx-share__tw{ background: #000000; }
  .rx-share__wa{ background: #25D366; }
  .rx-share__tg{ background: #229ED9; }
  .rx-share__ln{ background: #0A66C2; }
  .rx-share__cp{ background: #475569; color: #fff; }
  .rx-share__cp.ok{ background: #00a651; }

  /* Newsletter */
  .rx-news{ background: linear-gradient(135deg, #ecfdf5 0%, #fefce8 100%); border: 1px solid #d1fae5; border-radius: 16px; padding: 24px; margin: 32px 0; text-align: center; }
  .rx-news__title{ margin: 0 0 6px; color: #006830; font-size: 1.25rem; }
  .rx-news__sub{ margin: 0 0 16px; color: #475569; }
  .rx-news__row{ display: flex; gap: 8px; max-width: 460px; margin: 0 auto; flex-wrap: wrap; justify-content: center; }
  .rx-news__input{ flex: 1 1 220px; padding: 12px 14px; border-radius: 10px; border: 1.5px solid #cbd5e1; font-size: 1rem; min-width: 0; background: #ffffff; color: #0f172a; }
  .rx-news__input:focus{ outline: none; border-color: #00853F; box-shadow: 0 0 0 3px rgba(0,133,63,.18); }
  .rx-news__btn{ background: linear-gradient(135deg, #00a651 0%, #006830 100%); color: #fff; border: none; padding: 12px 22px; border-radius: 10px; font-weight: 700; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease; }
  .rx-news__btn:hover{ transform: translateY(-1px); box-shadow: 0 6px 14px rgba(0,166,81,.3); }
  .rx-news__msg{ margin: 12px 0 0; min-height: 1.2em; font-size: .92rem; }

  /* Bandeau cookies */
  .rx-cookie{ position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 9998; background: #ffffff; border: 1px solid #e2e8f0; border-radius: 14px; box-shadow: 0 14px 40px rgba(15,23,42,.18); padding: 16px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; max-width: 720px; margin: 0 auto; }
  .rx-cookie p{ margin: 0; flex: 1 1 260px; color: #0f172a; font-size: .92rem; }
  .rx-cookie a{ color: #00853F; font-weight: 700; }
  .rx-cookie__btns{ display: flex; gap: 8px; }
  .rx-cookie__refuse{ background: #ffffff; color: #0f172a; border: 1.5px solid #cbd5e1; padding: 8px 14px; border-radius: 8px; cursor: pointer; font-weight: 600; }
  .rx-cookie__accept{ background: linear-gradient(135deg, #00a651 0%, #006830 100%); color: #fff; border: none; padding: 8px 16px; border-radius: 8px; cursor: pointer; font-weight: 700; }
  .rx-cookie__accept:hover{ box-shadow: 0 6px 14px rgba(0,166,81,.3); }

  /* Bouton retour en haut */
  .rx-totop{ position: fixed; right: 18px; bottom: 88px; z-index: 9997; width: 44px; height: 44px; border-radius: 50%; border: none; background: linear-gradient(135deg, #00a651 0%, #006830 100%); color: #fff; font-size: 22px; font-weight: 800; cursor: pointer; box-shadow: 0 8px 22px rgba(0,166,81,.35); transition: transform .2s ease, box-shadow .2s ease; }
  .rx-totop:hover{ transform: translateY(-2px); box-shadow: 0 12px 26px rgba(0,166,81,.45); }
  .rx-totop[hidden]{ display: none; }

  /* Barre de progression de lecture */
  .rx-readbar{ position: fixed; left: 0; right: 0; top: 0; height: 3px; background: rgba(0,0,0,.06); z-index: 9999; pointer-events: none; }
  .rx-readbar > span{ display: block; height: 100%; width: 0%; background: linear-gradient(90deg, #00853F 0 33%, #FDEF42 33% 66%, #E31B23 66% 100%); transition: width .15s ease-out; }

  /* Articles liés */
  .rx-related{ margin: 40px 0; padding: 24px; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 16px; }
  .rx-related__title{ margin: 0 0 16px; color: #0f172a; }
  .rx-related__grid{ display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
  .rx-related__card{ background: #ffffff; border: 1px solid #e2e8f0; border-radius: 12px; padding: 14px; text-decoration: none; color: inherit; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; display: block; }
  .rx-related__card:hover{ transform: translateY(-3px); box-shadow: 0 10px 24px rgba(15,23,42,.08); border-color: #00853F; }
  .rx-related__card h4{ margin: 8px 0 4px; font-size: 1rem; color: #0f172a; }
  .rx-related__card time{ color: #64748b; font-size: .85rem; }
  .rx-related__thumb img{ width: 100%; height: 130px; object-fit: cover; border-radius: 8px; display: block; }

  /* Temps de lecture */
  .rx-readtime{ display: inline-block; background: #fef3c7; color: #92400e; padding: 4px 10px; border-radius: 999px; font-size: .85rem; font-weight: 600; margin: 0 6px; }

  /* Mobile */
  @media (max-width: 600px){
    .rx-cookie{ flex-direction: column; align-items: stretch; }
    .rx-cookie p{ flex: 1 1 auto; }
    .rx-cookie__btns{ justify-content: flex-end; }
    .rx-totop{ right: 12px; bottom: 76px; width: 40px; height: 40px; font-size: 19px; }
    .rx-share{ padding: 12px; }
    .rx-share__btn{ width: 34px; height: 34px; font-size: 14px; }
  }

  /* Reduced motion : on calme tout */
  @media (prefers-reduced-motion: reduce){
    .rx-toolstrip::before, .rx-tool-chip, .rx-tool-card,
    .rx-tool-chip__ico, .rx-tool-card__icon,
    .rx-tool-chip--active{
      animation: none !important;
      transition: none !important;
    }
  }
  
/* =====================================================================
   v9.15 — PATCHES : DARK HEADER+FOOTER, ANTI-DÉBORDEMENT, VINTAGE SN
===================================================================== */

/* --- 1. Anti-débordement global ---------------------------------- */
html, body { overflow-x: hidden !important; max-width: 100vw; }
body, main, .rx-container, .rx-section, article, section, aside { max-width: 100%; }
img, video, iframe, embed, object, canvas, svg, table, picture {
  max-width: 100% !important;
  height: auto;
}
iframe { width: 100%; }
table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
pre, code { white-space: pre-wrap; word-break: break-word; overflow-wrap: anywhere; }
.rx-container, .container, .wp-block-group { box-sizing: border-box; }
*, *::before, *::after { box-sizing: border-box; }
.rx-grid, .rx-cards, .rx-row { min-width: 0; }
.rx-grid > *, .rx-cards > *, .rx-row > * { min-width: 0; }
h1, h2, h3, h4, p, a, span, li { overflow-wrap: anywhere; word-wrap: break-word; }

/* --- 2. Dark mode UNIQUEMENT pour header & footer ---------------- */
.rx-header {
  background: linear-gradient(180deg, #0b1220 0%, #111827 100%) !important;
  border-bottom: 1px solid #1f2937 !important;
  box-shadow: 0 4px 18px rgba(0,0,0,.35) !important;
}
.rx-header.rx-scrolled {
  background: rgba(11,18,32,.96) !important;
  backdrop-filter: saturate(140%) blur(10px);
  -webkit-backdrop-filter: saturate(140%) blur(10px);
}
.rx-header .rx-logo__title { color: #ffffff !important; }
.rx-header .rx-logo__title span:nth-child(2) { color: #ffffff !important; }
.rx-header .rx-logo__sub, .rx-header .rx-logo__tag { color: #cbd5e1 !important; }
.rx-header .rx-nav a {
  color: #e5e7eb !important;
  background: transparent;
  transition: color .25s, background .25s;
}
.rx-header .rx-nav a:hover,
.rx-header .rx-nav a.current-menu-item,
.rx-header .rx-nav a[aria-current="page"] {
  color: var(--sn-yellow) !important;
  background: rgba(253,239,66,.08);
}
.rx-header.rx-scrolled .rx-nav { background: rgba(255,255,255,.04) !important; border-color: rgba(253,239,66,.12) !important; }
.rx-header.rx-scrolled .rx-nav a { color: #e5e7eb !important; }
.rx-header .rx-burger span { background: #f8fafc !important; }
.rx-header .rx-mobile-menu {
  background: #0b1220 !important;
  border-top-color: #1f2937 !important;
}
.rx-header .rx-mobile-menu a { color: #cbd5e1 !important; }
.rx-header .rx-mobile-menu a:hover { background: rgba(253,239,66,.08) !important; color: var(--sn-yellow) !important; }

/* Filet drapeau plus marqué sous le header sombre */
.rx-flag-stripe {
  height: 5px !important;
  box-shadow: 0 4px 14px rgba(0,133,63,.30), inset 0 1px 0 rgba(255,255,255,.18);
}

/* Footer : déjà sombre, on le rend plus chaleureux/vintage */
.rx-footer {
  background:
    radial-gradient(1200px 360px at 12% -10%, rgba(0,133,63,.22), transparent 60%),
    radial-gradient(900px 320px at 90% 0%, rgba(227,27,35,.16), transparent 60%),
    linear-gradient(180deg, #0b1220 0%, #0f172a 100%) !important;
  border-top: 1px solid #1f2937;
}
.rx-footer::before {
  content: "";
  display: block;
  height: 4px;
  background: linear-gradient(to right, var(--sn-green) 33.33%, var(--sn-yellow) 33.33% 66.66%, var(--sn-red) 66.66%);
  opacity: .9;
}
.rx-footer a { transition: color .25s; }
.rx-footer a:hover { color: var(--sn-yellow) !important; }

/* On force le contenu central à rester clair (le dark ne doit toucher que header/footer) */
html, body, main, .site-main, .rx-main, #content, #primary {
  background-color: #fbf6ec !important; /* papier vieilli sénégalais */
  color: #1f2937;
}

/* --- 3. Esthétique vintage élégante sénégalaise ------------------ */
:root {
  --rx-sand: #fbf6ec;
  --rx-paper: #f4ead4;
  --rx-ink: #1c1410;
  --rx-gold: #c9a227;
  --rx-terracotta: #b85c38;
  --rx-deep-green: #06502a;
}

/* Texture papier subtile sur le fond principal */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  opacity: .35;
  background-image:
    radial-gradient(circle at 20% 30%, rgba(184,92,56,.06) 0 1px, transparent 2px),
    radial-gradient(circle at 70% 80%, rgba(0,133,63,.05) 0 1px, transparent 2px),
    radial-gradient(circle at 40% 90%, rgba(201,162,39,.06) 0 1px, transparent 2px);
  background-size: 18px 18px, 24px 24px, 32px 32px;
}
body > * { position: relative; z-index: 1; }

/* Polices vintage : grand titre en serif élégant */
h1, h2, .rx-hero h1, .rx-section-title, .entry-title, .page-title {
  font-family: 'Playfair Display', 'Cormorant Garamond', Georgia, serif;
  letter-spacing: .005em;
}
h1::first-letter, .entry-title::first-letter { color: var(--rx-terracotta); }

/* Titres avec ornement sénégalais (filet tricolore court) */
.rx-section-title, .entry-title, h2.section-title {
  position: relative;
  padding-bottom: 14px;
}
.rx-section-title::after, .entry-title::after, h2.section-title::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  width: 72px; height: 3px;
  background: linear-gradient(to right, var(--sn-green) 33%, var(--sn-yellow) 33% 66%, var(--sn-red) 66%);
  border-radius: 3px;
  box-shadow: 0 2px 6px rgba(0,0,0,.08);
}
.rx-section-title.rx-center::after, h2.center::after { left: 50%; transform: translateX(-50%); }

/* Cartes : feuille papier vieilli, coins légèrement arrondis, ombre douce */
.rx-card, .rx-tool-card, article.post, article.page, .wp-block-group.has-background {
  background: linear-gradient(180deg, #fffaf0 0%, #fbf3df 100%);
  border: 1px solid rgba(28,20,16,.08);
  box-shadow:
    0 1px 0 rgba(255,255,255,.7) inset,
    0 8px 22px rgba(28,20,16,.08);
  border-radius: 12px;
  transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s, border-color .35s;
}
.rx-card:hover, .rx-tool-card:hover {
  transform: translateY(-4px);
  border-color: rgba(0,133,63,.35);
  box-shadow:
    0 1px 0 rgba(255,255,255,.8) inset,
    0 16px 34px rgba(28,20,16,.14);
}

/* Boutons vintage tricolore */
.rx-btn, .button, button.wp-element-button, input[type=submit] {
  position: relative;
  background: linear-gradient(180deg, var(--sn-green) 0%, var(--sn-green-dark) 100%);
  color: #fff !important;
  border: none;
  padding: 10px 18px;
  border-radius: 10px;
  font-weight: 700;
  letter-spacing: .02em;
  cursor: pointer;
  box-shadow: 0 6px 16px rgba(0,133,63,.25), inset 0 1px 0 rgba(255,255,255,.2);
  transition: transform .25s, box-shadow .25s, filter .25s;
  overflow: hidden;
}
.rx-btn::after, .button::after, button.wp-element-button::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: 0; height: 3px;
  background: linear-gradient(to right, var(--sn-green) 33%, var(--sn-yellow) 33% 66%, var(--sn-red) 66%);
  opacity: .95;
}
.rx-btn:hover, .button:hover, button.wp-element-button:hover, input[type=submit]:hover {
  transform: translateY(-2px);
  filter: saturate(1.1);
  box-shadow: 0 10px 22px rgba(0,133,63,.32);
}

/* Badges/chips style vintage */
.rx-chip, .tag, .post-tag {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: .82rem;
  background: #fff8e1;
  color: var(--rx-ink);
  border: 1px solid rgba(201,162,39,.4);
  box-shadow: 0 1px 0 rgba(255,255,255,.8) inset;
}

/* Liens : soulignement tricolore animé (déjà existant, on le conforte) */
.rx-content a, article a, .entry-content a, .page-content a {
  background-image: linear-gradient(to right, var(--sn-green), var(--sn-yellow), var(--sn-red));
  background-size: 0% 2px;
  background-repeat: no-repeat;
  background-position: 0 100%;
  transition: background-size .35s ease;
  text-decoration: none;
}
.rx-content a:hover, article a:hover, .entry-content a:hover, .page-content a:hover {
  background-size: 100% 2px;
}

/* --- 4. Animations vintage élégantes ----------------------------- */
@keyframes rxFadeUp {
  from { opacity: 0; transform: translateY(18px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes rxFadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes rxShimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}
@keyframes rxStarPulse {
  0%,100% { transform: scale(1) rotate(0); opacity: .9; }
  50% { transform: scale(1.08) rotate(8deg); opacity: 1; }
}

main, .site-main, #primary {
  animation: rxFadeIn .6s ease both;
}
.rx-section, .rx-card, .rx-tool-card, article, .wp-block-group, .entry-content > * {
  animation: rxFadeUp .7s cubic-bezier(.2,.7,.2,1) both;
}
.rx-cards > *:nth-child(1){ animation-delay:.05s }
.rx-cards > *:nth-child(2){ animation-delay:.10s }
.rx-cards > *:nth-child(3){ animation-delay:.15s }
.rx-cards > *:nth-child(4){ animation-delay:.20s }
.rx-cards > *:nth-child(5){ animation-delay:.25s }
.rx-cards > *:nth-child(6){ animation-delay:.30s }

/* Étoile sénégalaise pulsante en accent */
.rx-star, .rx-hero__star {
  display: inline-block;
  animation: rxStarPulse 4s ease-in-out infinite;
  transform-origin: center;
}

/* Effet "doré" shimmer subtil sur les titres de hero */
.rx-hero h1 {
  background: linear-gradient(90deg, #ffffff 0%, #fff5c2 30%, #ffffff 60%, #fff5c2 80%, #ffffff 100%);
  background-size: 200% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: rxShimmer 9s linear infinite;
}

/* Respect des préférences utilisateur (réduction d'animations) */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
}

/* --- 5. Cookie banner — robuste & visible ----------------------- */
.rx-cookie {
  position: fixed !important;
  left: 16px; right: 16px; bottom: 16px;
  z-index: 2147483000 !important; /* au-dessus de tout */
  background: linear-gradient(180deg, #fffaf0, #fbf3df) !important;
  color: var(--rx-ink) !important;
  border: 1px solid rgba(28,20,16,.12) !important;
  border-radius: 14px !important;
  box-shadow: 0 18px 50px rgba(15,23,42,.28), 0 0 0 4px rgba(253,239,66,.18) !important;
  padding: 14px 16px !important;
  display: none;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  max-width: 760px;
  margin: 0 auto;
  pointer-events: auto !important;
  font-family: inherit;
}
.rx-cookie[hidden] { display: none !important; }
.rx-cookie p { margin: 0; flex: 1 1 260px; font-size: .92rem; line-height: 1.45; }
.rx-cookie a { color: var(--sn-green-dark); font-weight: 700; text-decoration: underline; }
.rx-cookie__btns { display: flex; gap: 8px; flex-wrap: wrap; }
.rx-cookie__refuse, .rx-cookie__accept {
  appearance: none; -webkit-appearance: none;
  border: 0; cursor: pointer; font-weight: 700;
  padding: 10px 16px; border-radius: 10px;
  font-family: inherit; font-size: .92rem;
  transition: transform .2s, box-shadow .2s, filter .2s;
  pointer-events: auto !important;
}
.rx-cookie__refuse {
  background: #fff; color: var(--rx-ink);
  border: 1.5px solid rgba(28,20,16,.18) !important;
}
.rx-cookie__refuse:hover { transform: translateY(-1px); border-color: rgba(28,20,16,.35) !important; }
.rx-cookie__accept {
  background: linear-gradient(135deg, var(--sn-green) 0%, var(--sn-green-dark) 100%);
  color: #fff !important;
  box-shadow: 0 8px 18px rgba(0,133,63,.35);
}
.rx-cookie__accept:hover { transform: translateY(-1px); filter: saturate(1.1); }
@media (max-width: 640px) {
  .rx-cookie { flex-direction: column; align-items: stretch; }
  .rx-cookie__btns { justify-content: stretch; }
  .rx-cookie__refuse, .rx-cookie__accept { flex: 1 1 auto; }
}

/* --- 6. Petits ajustements anti-débordement spécifiques --------- */
.rx-hero, .rx-section, .rx-footer, .rx-header { overflow-x: clip; }
.wp-block-image img, .wp-block-cover, .wp-block-embed iframe { max-width: 100% !important; }
.alignfull, .alignwide { max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }

/* --- 7. Suppression des reliquats dark globaux (sauf pages éligibles) ------- */
/* On NE neutralise PAS html.rx-dark : le toggle de l'accueil doit fonctionner. */
html[data-theme="dark"] body, body.dark-mode {
  background-color: #fbf6ec !important;
  color: #1f2937 !important;
}
/* fin v9.15 */

/* =====================================================================
   v9.16 — DARK MODE LIMITÉ (Accueil + Blog) + ANIMATIONS PREMIUM
===================================================================== */

/* --- MODE SOMBRE : COMPLÈTEMENT RETIRÉ ----------------------------
   Toutes les règles dark / FAB / toggle ont été supprimées en v9.20.
   Pour neutraliser proactivement d'éventuelles classes survivantes
   en cache, on les rend inopérantes :
------------------------------------------------------------------- */
.rx-dark-toggle, .rx-fab-dark, #rxDarkToggle, #rxDarkFab { display: none !important; }
html.rx-dark, html.rx-dark-pre,
body.rx-dark, body.rx-dark-pre, body.rx-darkable {
  background-color: initial !important;
  color: initial !important;
}

/* --- Animations supplémentaires "vintage premium" ---------------- */

/* Reveal au scroll : déclenché par main.js via classe .rx-reveal */
.rx-reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); }
.rx-reveal.rx-in   { opacity: 1; transform: translateY(0); }
.rx-reveal--left   { transform: translateX(-30px); }
.rx-reveal--left.rx-in   { transform: translateX(0); }
.rx-reveal--right  { transform: translateX(30px); }
.rx-reveal--right.rx-in  { transform: translateX(0); }
.rx-reveal--zoom   { transform: scale(.92); }
.rx-reveal--zoom.rx-in   { transform: scale(1); }

/* Lien hover : encadrement doré progressif */
.rx-content a, .entry-content a, article a {
  position: relative;
  transition: color .25s ease;
}

/* Float ornament en arrière-plan (fleurs de baobab stylisées) */
@keyframes rxFloat {
  0%, 100% { transform: translateY(0) rotate(0); }
  50%      { transform: translateY(-12px) rotate(2deg); }
}
.rx-ornament {
  position: absolute;
  pointer-events: none;
  opacity: .12;
  font-size: 4rem;
  animation: rxFloat 8s ease-in-out infinite;
}

/* Nav header : underline doré qui glisse au hover */
.rx-header .rx-nav a {
  position: relative;
  overflow: hidden;
}
.rx-header .rx-nav a::before {
  content: "";
  position: absolute;
  left: 50%; bottom: 6px;
  width: 0; height: 2px;
  background: linear-gradient(to right, var(--sn-green), var(--sn-yellow), var(--sn-red));
  transform: translateX(-50%);
  transition: width .35s ease;
  border-radius: 2px;
}
.rx-header .rx-nav a:hover::before,
.rx-header .rx-nav a.current-menu-item::before,
.rx-header .rx-nav a[aria-current="page"]::before { width: 70%; }

/* Hover lift sur boutons CTA */
.rx-publish-btn, .rx-search-toggle, .rx-burger {
  transition: transform .25s ease, box-shadow .25s ease, filter .25s ease;
}
.rx-publish-btn:hover { transform: translateY(-2px); filter: brightness(1.05); }

/* Étoile sénégalaise dans le logo qui scintille doucement */
@keyframes rxTwinkle {
  0%, 100% { filter: drop-shadow(0 0 0 rgba(253,239,66,0)); transform: rotate(0); }
  50%      { filter: drop-shadow(0 0 6px rgba(253,239,66,.85)); transform: rotate(36deg); }
}
.rx-logo__star { transform-origin: center; animation: rxTwinkle 6s ease-in-out infinite; }

/* Footer ornement : motif tricolore animé (lent) */
@keyframes rxFooterPattern {
  0%   { background-position: 0 0; }
  100% { background-position: 60px 0; }
}
.rx-footer::before {
  background-size: 60px 100%;
  animation: rxFooterPattern 12s linear infinite;
}

/* Sections : animation de fond doux avec dégradé qui pulse */
@keyframes rxSoftGlow {
  0%, 100% { box-shadow: 0 0 0 rgba(0,133,63,0); }
  50%      { box-shadow: 0 0 32px rgba(0,133,63,.06); }
}
.rx-section { animation: rxSoftGlow 8s ease-in-out infinite, rxFadeUp .7s cubic-bezier(.2,.7,.2,1) both; }

/* Joliesse supplémentaire : badges drapeau sur "Sénégal" */
strong.rx-sn::before { content:""; display:inline-block; width:14px; height:10px; background: linear-gradient(to right, var(--sn-green) 33%, var(--sn-yellow) 33% 66%, var(--sn-red) 66%); margin-right:6px; border-radius:2px; vertical-align: middle; box-shadow: 0 1px 2px rgba(0,0,0,.18); }

/* Curseur custom sur les boutons → main pointing */
.rx-btn, .button, .rx-publish-btn, .rx-search-toggle, .rx-burger, .rx-dark-toggle, .rx-cookie__refuse, .rx-cookie__accept { cursor: pointer; }

/* Préférences cookies : choix lisible, granulaire et réversible */
.rx-cookie__details{width:100%;display:grid;gap:8px;margin-top:2px;padding-top:10px;border-top:1px solid #e2e8f0}
.rx-cookie__option{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:9px 11px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:9px;color:#0f172a;cursor:pointer}
.rx-cookie__option span:first-child{display:grid;gap:2px}
.rx-cookie__option small{color:#64748b;font-size:.78rem;font-weight:400;line-height:1.35}
.rx-cookie__option input{width:18px;height:18px;accent-color:#00853F;flex:none}
.rx-cookie__option--locked{cursor:default;background:#f0fdf4;border-color:#bbf7d0}
.rx-cookie__option--locked>span:last-child{color:#15803d;font-size:1.1rem;font-weight:800}
.rx-cookie__manage{position:fixed;right:16px;bottom:16px;z-index:9997;border:1px solid #cbd5e1;border-radius:999px;background:#fff;color:#0f172a;padding:9px 14px;font:600 .8rem/1.2 inherit;box-shadow:0 6px 20px rgba(15,23,42,.14);cursor:pointer}
.rx-cookie__manage:hover{border-color:#00853F;color:#006830}
.rx-cookie.is-settings{max-width:760px}

/* Cartes d’outils actifs : lecture nette sur mobile comme sur desktop */
body.page-tool .entry-content{max-width:1280px;margin-inline:auto;padding-inline:clamp(14px,3vw,34px)}
body.page-tool .entry-content > [class*="-wrap"],
body.page-tool .entry-content > [class*="-content"]{border:1px solid rgba(15,23,42,.09);border-radius:22px;background:#fff;box-shadow:0 14px 38px rgba(15,23,42,.08);overflow:hidden}
body.page-tool .esn-page-hero,
body.page-tool .gco-page-hero{padding:clamp(24px,4vw,44px);background:linear-gradient(135deg,#f0fdf4 0%,#ffffff 58%,#eff6ff 100%)}
body.page-tool .esn-grid,
body.page-tool .gco-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;padding:clamp(18px,3vw,30px)}
body.page-tool .esn-card,
body.page-tool .gco-card{border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 5px 18px rgba(15,23,42,.06);transition:transform .2s ease,box-shadow .2s ease}
body.page-tool .esn-card:hover,
body.page-tool .gco-card:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(15,23,42,.12)}
body.page-tool .esn-filters,
body.page-tool .gco-filters{margin:18px clamp(18px,3vw,30px);border-radius:14px;border:1px solid #dbe5df;background:#f8fafc}
@media (max-width:640px){body.page-tool .entry-content{padding-inline:10px}body.page-tool .esn-grid,body.page-tool .gco-grid{grid-template-columns:1fr;padding:14px}}

/* fin v9.16 */

/* v9.57 — Les pages qui rendent un plugin par shortcode sortent du
   gabarit éditorial étroit. Le HTML produit reste visible côté serveur,
   occupe la surface disponible et se replie proprement sur mobile. */
body.rx-shortcode-page .rx-page-section,
body.rx-shortcode-page .rx-page-section__inner,
body.rx-shortcode-page .rx-page-content,
body.rx-shortcode-page .entry-content {
  width: 100%;
  max-width: none;
  min-width: 0;
  margin-left: 0;
  margin-right: 0;
}
body.rx-shortcode-page .rx-page-section { padding: clamp(18px, 3vw, 42px) 0 30px; }
body.rx-shortcode-page .rx-page-content {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
body.rx-shortcode-page .rx-page-content::before { display: none; }
body.rx-shortcode-page .entry-content {
  padding: 0;
  overflow-wrap: anywhere;
  word-wrap: break-word;
}
body.rx-shortcode-page .entry-content > [class*="-wrap"],
body.rx-shortcode-page .entry-content > [class*="-content"] {
  width: 100%;
  max-width: none;
  min-width: 0;
  margin-left: auto;
  margin-right: auto;
}
body.rx-shortcode-page img,
body.rx-shortcode-page video,
body.rx-shortcode-page iframe,
body.rx-shortcode-page embed,
body.rx-shortcode-page object,
body.rx-shortcode-page canvas,
body.rx-shortcode-page svg { max-width: 100%; }
body.rx-shortcode-page iframe { width: 100%; }
body.rx-shortcode-page table {
  width: 100%;
  max-width: 100%;
  display: block;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
body.rx-shortcode-page input,
body.rx-shortcode-page select,
body.rx-shortcode-page textarea,
body.rx-shortcode-page button { max-width: 100%; box-sizing: border-box; }
body.rx-shortcode-page [class*="grid"] > *,
body.rx-shortcode-page [class*="row"] > * { min-width: 0; }
@media (max-width: 768px) {
  body.rx-shortcode-page .rx-page-section { padding-top: 12px; }
  body.rx-shortcode-page .entry-content > [class*="-wrap"],
  body.rx-shortcode-page .entry-content > [class*="-content"] { border-radius: 0; }
}


/* ─────────────────────────────────────────────────────────────
   v9.58 — ESPACEMENT NAVIGATION / BLOG + LECTURE ÉDITORIALE
───────────────────────────────────────────────────────────── */
/* La barre sticky reste distincte du début du magazine, y compris après
   un retour par ancre ou un rechargement sur mobile. */
body.blog #main,
body.archive #main {
  scroll-margin-top: 76px;
}
body.blog .rx-blog-hero {
  margin-top: 14px;
  border-top: 1px solid rgba(15, 23, 42, .12);
}

/* « autrement » n'est pas un surlignage : le titre reste lisible et
   n'est pas présenté comme un lien ou une barre jaune. */
.rx-blog-hero__title .rx-blog-hero__emphasis {
  display: inline;
  background: none !important;
  color: #FDEF42 !important;
  padding: 0 !important;
  border: 0 !important;
  text-decoration: none !important;
  text-decoration-line: none !important;
  -webkit-text-fill-color: #FDEF42 !important;
}

@media (max-width: 720px) {
  body.blog .rx-blog-hero { margin-top: 8px; }
}

/* ─── 3. ACCUEIL — Polish général : plus de respiration, plus joli ── */

/* Halo doux derrière le héros */
body.rx-front-page .rx2-hero {
  position: relative;
  padding-top: clamp(40px, 6vw, 72px) !important;
  padding-bottom: clamp(56px, 7vw, 96px) !important;
}
/* Suppression du voile blanc qui remontait sur le texte du hero mobile. */
body.rx-front-page .rx2-hero::after {
  display: none !important;
  content: none;
}

/* Titre du hero plus expressif */
body.rx-front-page .rx2-hero__title {
  letter-spacing: -.02em;
  text-wrap: balance;
}
body.rx-front-page .rx2-hero__accent {
  background: linear-gradient(135deg, #00a651 0%, #FDEF42 60%, #E31B23 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-weight: 900;
}
body.rx-front-page .rx2-hero__lead {
  text-wrap: pretty;
  max-width: 56ch;
}

/* Carte stats : ombre plus enveloppante + reflet doux */
body.rx-front-page .rx2-statcard {
  box-shadow: 0 18px 50px -18px rgba(0, 133, 63, .35),
              0 6px 18px -8px rgba(15, 23, 42, .12) !important;
  border-radius: 22px;
  transition: transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s;
}
body.rx-front-page .rx2-statcard:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 60px -20px rgba(0, 133, 63, .42),
              0 10px 24px -10px rgba(15, 23, 42, .14) !important;
}

/* Recherche du hero : focus plus tonique */
body.rx-front-page .rx2-hero__search:focus-within {
  border-color: #00a651;
  box-shadow: 0 0 0 4px rgba(0, 166, 81, .14),
              0 12px 30px -10px rgba(0, 166, 81, .35);
}

/* Bento : pull-up + glow plus joli au survol */
body.rx-front-page .rx2-bento__card {
  transition: transform .4s cubic-bezier(.34,1.56,.64,1),
              box-shadow .4s ease,
              border-color .4s ease !important;
}
body.rx-front-page .rx2-bento__card:hover {
  transform: translateY(-8px) !important;
}

/* Section headers : sous-titre un peu plus respiré */
body.rx-front-page .rx2-shead h2 {
  letter-spacing: -.015em;
  text-wrap: balance;
}
body.rx-front-page .rx2-shead h2 em {
  font-style: normal;
  background: linear-gradient(120deg, #00a651, #006830);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* Features : icônes flottantes au survol */
body.rx-front-page .rx2-feature__ico {
  transition: transform .35s cubic-bezier(.34,1.56,.64,1);
}
body.rx-front-page .rx2-feature:hover .rx2-feature__ico {
  transform: translateY(-4px) rotate(-4deg) scale(1.06);
}

/* Job cards : petit liseré drapeau en bas */
body.rx-front-page .rx2-jobcard {
  position: relative;
}
body.rx-front-page .rx2-jobcard::after {
  content: "";
  position: absolute; left: 20px; right: 20px; bottom: 12px; height: 3px;
  background: linear-gradient(90deg, #00a651 0 33%, #FDEF42 33% 66%, #E31B23 66% 100%);
  border-radius: 2px; opacity: 0; transform: scaleX(.4);
  transform-origin: left; transition: opacity .35s, transform .45s ease;
}
body.rx-front-page .rx2-jobcard:hover::after { opacity: 1; transform: scaleX(1); }

/* Magazine cards : zoom doux sur l'image */
body.rx-front-page .rx2-magcard__media img {
  transition: transform .6s cubic-bezier(.2,.7,.2,1);
}
body.rx-front-page .rx2-magcard:hover .rx2-magcard__media img {
  transform: scale(1.03);
  filter: none;
}
body.rx-front-page .rx2-magcard {
  border-radius: 18px;
  overflow: hidden;
  transition: transform .35s, box-shadow .35s;
}
body.rx-front-page .rx2-magcard:hover {
  transform: translateY(-5px);
  box-shadow: 0 20px 48px -16px rgba(15,23,42,.18);
}

/* CTA final : carte plus enveloppante avec dégradé subtil */
body.rx-front-page .rx2-finalcta__card {
  background:
    radial-gradient(120% 140% at 0% 0%, rgba(0,166,81,.10), transparent 55%),
    radial-gradient(120% 140% at 100% 100%, rgba(253,239,66,.16), transparent 55%),
    linear-gradient(135deg, #ffffff 0%, #fafafa 100%);
  border: 1px solid rgba(0,166,81,.15);
  box-shadow: 0 24px 60px -24px rgba(0,166,81,.35);
  border-radius: 26px;
}

/* Bouton principal : effet plus premium */
body.rx-front-page .rx2-btn--primary {
  background: linear-gradient(135deg, #00a651 0%, #006830 100%);
  box-shadow: 0 10px 24px -8px rgba(0,166,81,.45);
  transition: transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .3s;
}
body.rx-front-page .rx2-btn--primary:hover {
  transform: translateY(-2px) scale(1.02);
  box-shadow: 0 16px 36px -10px rgba(0,166,81,.55);
}

/* Apparition douce des sections */
@keyframes rxFrontFadeUp {
  from { opacity: 0; transform: translateY(18px); }
  to   { opacity: 1; transform: translateY(0); }
}
body.rx-front-page .rx2-bento,
body.rx-front-page .rx2-features,
body.rx-front-page .rx2-jobs,
body.rx-front-page .rx2-mag,
body.rx-front-page .rx2-finalcta {
  animation: rxFrontFadeUp .8s cubic-bezier(.2,.7,.2,1) both;
}
@media (prefers-reduced-motion: reduce) {
  body.rx-front-page .rx2-bento,
  body.rx-front-page .rx2-features,
  body.rx-front-page .rx2-jobs,
  body.rx-front-page .rx2-mag,
  body.rx-front-page .rx2-finalcta { animation: none; }
}

/* ─── 4. (Polish dark accueil retiré en v9.20) ─────────────────────── */

/* =====================================================================
   v9.20 — POLISH GLOBAL DU SITE (toutes pages, mobile-first)
   Améliore lisibilité, hiérarchie, espacements, cartes, boutons.
===================================================================== */

/* Typographie globale plus lisible : meilleure interlettrage et
   line-height confortable sur les longs paragraphes */
body {
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.rx-container { max-width: min(1180px, 92vw); margin-inline: auto; }

/* Titres : plus serrés, meilleur équilibre des sauts de ligne */
h1, h2, h3, .rx-section-title, .entry-title {
  text-wrap: balance;
  letter-spacing: -.012em;
}
p { text-wrap: pretty; }

/* Liens du contenu : underline subtil tricolore au survol */
.entry-content a, .rx-content a {
  background-image: linear-gradient(120deg, #00853F 0%, #FDEF42 50%, #E31B23 100%);
  background-repeat: no-repeat;
  background-size: 0% 2px;
  background-position: 0 100%;
  transition: background-size .3s ease, color .2s ease;
  padding-bottom: 1px;
}
.entry-content a:hover, .rx-content a:hover { background-size: 100% 2px; }

/* Cartes globales : bord plus doux, ombre plus naturelle */
.rx-card,
.rx-tool-card,
.rx-related-card,
.rx-post-card {
  border-radius: 16px !important;
  transition: transform .25s cubic-bezier(.34,1.56,.64,1),
              box-shadow .3s ease,
              border-color .3s ease !important;
}
.rx-card:hover,
.rx-tool-card:hover,
.rx-related-card:hover,
.rx-post-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px -18px rgba(15,23,42,.22),
              0 6px 14px -6px rgba(15,23,42,.10) !important;
}

/* Boutons globaux : un peu plus premium */
.rx-btn, .button, .wp-block-button__link {
  border-radius: 12px !important;
  transition: transform .2s ease, box-shadow .25s ease, background-color .2s ease !important;
  font-weight: 600;
}
.rx-btn:hover, .button:hover, .wp-block-button__link:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 22px -10px rgba(0,133,63,.5);
}

/* Header : ombre plus douce quand on scrolle */
.rx-header.rx-scrolled {
  box-shadow: 0 2px 18px -10px rgba(15,23,42,.18);
}

/* Sections : espacement vertical plus généreux et cohérent */
section, .rx-section, .rx-page-section {
  scroll-margin-top: 90px; /* pour les ancres sous le header sticky */
}

/* Images : éviter la déformation, transitions douces */
img { max-width: 100%; height: auto; }
.rx-post-card__thumb img,
.rx-related-card__thumb img,
.rx-card img {
  transition: transform .5s cubic-bezier(.2,.7,.2,1);
}
.rx-post-card:hover .rx-post-card__thumb img,
.rx-related-card:hover .rx-related-card__thumb img {
  transform: scale(1.03);
  filter: none;
}

/* Articles : meilleure lisibilité du contenu long */
.rx-single .entry-content {
  font-size: clamp(16px, 1.04rem, 18px);
  line-height: 1.75;
  color: #1f2937;
}
.rx-single .entry-content p { margin: 0 0 1.1em; }
.rx-single .entry-content h2 {
  font-size: clamp(1.4rem, 2.4vw, 1.85rem);
  margin: 2em 0 .6em;
  padding-bottom: .35em;
  border-bottom: 2px solid #e5e7eb;
}
.rx-single .entry-content h3 {
  font-size: clamp(1.2rem, 2vw, 1.4rem);
  margin: 1.6em 0 .5em;
  color: #00853F;
}
.rx-single .entry-content blockquote {
  background: #fffbeb;
  border-left: 4px solid #FDEF42;
  border-radius: 0 12px 12px 0;
  padding: 14px 18px;
  margin: 1.4em 0;
  font-style: italic;
  color: #422006;
}
.rx-single .entry-content ul,
.rx-single .entry-content ol { padding-left: 1.4em; margin: 0 0 1.1em; }
.rx-single .entry-content li { margin: .35em 0; }
.rx-single .entry-content img {
  border-radius: 12px;
  box-shadow: 0 12px 30px -16px rgba(15,23,42,.25);
}

/* Tag pills : alignés et mieux respirés */
.rx-tag-pill {
  display: inline-flex;
  align-items: center;
  padding: 6px 12px;
  border-radius: 999px;
  background: #f1f5f9;
  color: #334155;
  font-size: .82rem;
  font-weight: 500;
  text-decoration: none;
  border: 1px solid transparent;
  transition: background-color .2s, color .2s, border-color .2s, transform .2s;
}
.rx-tag-pill:hover {
  background: #ecfdf5;
  color: #065f46;
  border-color: #a7f3d0;
  transform: translateY(-1px);
}

/* Mobile : espacements internes des cartes/sections plus aérés */
@media (max-width: 600px) {
  .rx-card,
  .rx-tool-card,
  .rx-related-card,
  .rx-post-card { border-radius: 14px !important; }
  .rx-single .entry-content { font-size: 16px; line-height: 1.7; }
  .rx-single__container { padding-left: 16px; padding-right: 16px; }
  h1 { font-size: clamp(1.6rem, 7vw, 2.2rem) !important; }
  h2 { font-size: clamp(1.3rem, 5.5vw, 1.7rem) !important; }
}

/* Carte auteur (sous l'article) : plus jolie */
.rx-single__author {
  display: flex;
  gap: 16px;
  align-items: center;
  padding: 20px;
  margin: 36px 0;
  background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
  border: 1px solid #e2e8f0;
  border-radius: 18px;
  box-shadow: 0 8px 24px -16px rgba(15,23,42,.18);
}
@media (max-width: 480px) {
  .rx-single__author { flex-direction: column; text-align: center; }
}

/* Navigation prev/next entre articles : cartes claires */
.rx-single__nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin: 36px 0;
}
.rx-single__nav a {
  display: block;
  padding: 14px 16px;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  background: #ffffff;
  text-decoration: none;
  color: #0f172a;
  transition: border-color .2s, transform .2s, box-shadow .2s;
}
.rx-single__nav a:hover {
  border-color: #00853F;
  transform: translateY(-2px);
  box-shadow: 0 10px 22px -14px rgba(0,133,63,.45);
}
.rx-single__nav small { color: #64748b; display: block; margin-bottom: 4px; font-size: .8rem; }
.rx-single__nav span { font-weight: 600; display: block; }
.rx-single__nav-next { text-align: right; }
@media (max-width: 600px) {
  .rx-single__nav { grid-template-columns: 1fr; }
  .rx-single__nav-next { text-align: left; }
}

/* Articles similaires */
.rx-single__related-title {
  font-size: 1.4rem;
  margin: 0 0 18px;
  position: relative;
  padding-left: 14px;
}
.rx-single__related-title::before {
  content: "";
  position: absolute; left: 0; top: 50%; transform: translateY(-50%);
  width: 5px; height: 22px;
  background: linear-gradient(180deg, #00853F, #FDEF42, #E31B23);
  border-radius: 3px;
}
.rx-single__related-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 18px;
}

/* Meilleure visibilité du focus clavier partout */
:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid #00853F;
  outline-offset: 2px;
  border-radius: 6px;
}

/* Scrollbar plus discrète sur desktop */
@media (min-width: 1024px) {
  ::-webkit-scrollbar { width: 10px; height: 10px; }
  ::-webkit-scrollbar-track { background: #f1f5f9; }
  ::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 6px; }
  ::-webkit-scrollbar-thumb:hover { background: #00853F; }
}

/* fin v9.20 */

  /* =====================================================================
     v9.23 — KILL SWITCH PARTAGE (legacy) + NOUVEAU BOUTON PARTAGE PROPRE
                + AFFICHAGE ARTICLE / BLOG OPTIMISÉ
  ===================================================================== */

  /* ─── 1. KILL SWITCH : tout l'ancien partage est neutralisé ──────────
     Si du HTML résiduel survit (cache navigateur, contenu d'article
     généré par d'anciennes versions, plugin tiers), il sera invisible. */
  .rx-single__share,
  .rx-single__share-label,
  aside.rx-single__share,
  .entry-content > .rx-share,
  .entry-content > .rx-share-buttons,
  div.rx-share:not(.rx-share2),
  div.rx-share-buttons:not(.rx-share2) {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
  }

  /* ─── 2. LAYOUT ARTICLE : toujours UNE colonne, propre, centrée ────── */
  .rx-single__layout {
    display: block !important;
    grid-template-columns: 1fr !important;
    gap: 0 !important;
    max-width: 760px;
    margin: 0 auto;
    padding: 0 !important;
  }
  .rx-single__main {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }
  .rx-single__thumb { margin-bottom: 28px !important; }

  /* ─── 3. NOUVEAU BOUTON PARTAGE PROPRE (.rx-share2) ──────────────────
     Position : à la fin de l'article (après tags), pleine largeur,
     pills horizontales avec libellés visibles, parfaitement alignées,
     responsive sans débordement. */
  .rx-share2 {
    margin: 40px 0 0;
    padding: 22px 20px;
    background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    box-shadow: 0 4px 14px -8px rgba(15, 23, 42, .12);
    text-align: center;
  }
  .rx-share2__label {
    display: block;
    margin: 0 0 16px;
    font-family: 'Poppins', 'Inter', sans-serif;
    font-size: .95rem;
    font-weight: 700;
    color: #0f172a;
    letter-spacing: -.01em;
  }
  .rx-share2__row {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
  }
  .rx-share2__btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    min-height: 42px;
    font-family: 'Inter', sans-serif;
    font-size: .85rem;
    font-weight: 600;
    color: #0f172a;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 999px;
    text-decoration: none;
    cursor: pointer;
    transition: transform .2s ease, box-shadow .25s ease,
                background-color .2s ease, color .2s ease,
                border-color .2s ease;
    box-sizing: border-box;
    line-height: 1;
  }
  .rx-share2__btn svg {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
  }
  .rx-share2__btn:hover,
  .rx-share2__btn:focus-visible {
    transform: translateY(-2px);
    color: #ffffff;
    border-color: transparent;
    box-shadow: 0 8px 18px -6px rgba(15, 23, 42, .25);
    outline: none;
  }
  .rx-share2__btn--wa:hover,
  .rx-share2__btn--wa:focus-visible { background: #25D366; }
  .rx-share2__btn--fb:hover,
  .rx-share2__btn--fb:focus-visible { background: #1877F2; }
  .rx-share2__btn--tw:hover,
  .rx-share2__btn--tw:focus-visible { background: #000000; }
  .rx-share2__btn--li:hover,
  .rx-share2__btn--li:focus-visible { background: #0A66C2; }
  .rx-share2__btn--cp:hover,
  .rx-share2__btn--cp:focus-visible { background: #00853F; }
  .rx-share2__btn.is-copied {
    background: #00853F !important;
    color: #ffffff !important;
    border-color: transparent !important;
  }

  /* Mobile : libellés masqués, on ne garde que les icônes rondes */
  @media (max-width: 540px) {
    .rx-share2 { padding: 18px 14px; }
    .rx-share2__row { gap: 8px; }
    .rx-share2__btn {
      width: 44px;
      height: 44px;
      padding: 0;
      justify-content: center;
      border-radius: 50%;
      min-height: 44px;
    }
    .rx-share2__btn span { display: none; }
  }

  /* ─── 4. TLDR / EN BREF — polish (le bloc inline est rendu plus joli) */
  .entry-content .rx-tldr {
    margin: 0 0 28px !important;
    padding: 18px 22px !important;
    background: linear-gradient(135deg, #f0fdf4, #fef9c3) !important;
    border-left: 4px solid #00853F !important;
    border-radius: 14px !important;
    font-family: 'Inter', sans-serif !important;
    box-shadow: 0 2px 8px -4px rgba(15, 23, 42, .08);
  }
  .entry-content .rx-tldr p { margin: 8px 0 0 !important; }

  /* ─── 5. TAGS de fin d'article — disposition propre ────────────────── */
  .rx-single__tags {
    margin-top: 36px;
    padding-top: 24px;
    border-top: 1px solid #e2e8f0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
  }
  .rx-single__tags-label {
    font-size: .85rem;
    font-weight: 700;
    color: #475569;
    margin-right: 4px;
  }
  .rx-single__taglist {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }

  /* ─── 6. LISTE BLOG / ARCHIVE — espacement et hiérarchie clarifiés ─── */
  .rx-blog-grid,
  .rx-archive-grid {
    gap: clamp(20px, 3vw, 32px) !important;
  }
  .rx-blog-card,
  .rx-archive-card {
    display: flex;
    flex-direction: column;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    overflow: hidden;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  }
  .rx-blog-card:hover,
  .rx-archive-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 32px -16px rgba(15, 23, 42, .18);
    border-color: #cbd5e1;
  }

  /* ─── 7. CONTENU LONG : confort de lecture renforcé ────────────────── */
  .entry-content {
    font-size: clamp(16px, 1.05vw + 0.6rem, 18px);
    line-height: 1.8;
    color: #1e293b;
  }
  .entry-content > * + * { margin-top: 1.1em; }
  .entry-content h2 { margin-top: 2em; }
  .entry-content h3 { margin-top: 1.6em; }

  /* fin v9.23 */
  
/* ═══════════════════════════════════════════════════
   v9.24 — Correctifs Phase 3
   ─────────────────────────────────────────────────── */

/* 1. Masquer visuellement le texte "Pagination" / "Navigation des articles"
      qui apparaît au-dessus des liens de navigation */
.screen-reader-text {
  position: absolute !important;
  width: 1px !important; height: 1px !important;
  padding: 0 !important; margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* 2. Menu mobile : rendre les items visibles quand le menu est ouvert
      (les <li> s'animent via rxMmMeltFall mais le <a.rx-mm__item>
       commence à opacity:0 — on le force à visible dès l'ouverture) */
.rx-mobile-menu.open .rx-mm__item {
  opacity: 1 !important;
  transform: translateX(0) !important;
  transition: opacity .1s, transform .1s !important;
}

/* 3. Boutons "Voir l'annonce" / "Comparer les prix" devenus <a> : pas de soulignage */
.asn-card__see,
.cpsn-card__see {
  text-decoration: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* fin v9.24 */

/* ╔══════════════════════════════════════════════════════════════
   ║  v10 SÉNÉGALAIS — Menu Mobile Complet + Blog Hero Animations
   ║  Override définitif de tous les anciens CSS du menu mobile
   ╚══════════════════════════════════════════════════════════════ */

/* ── 1. MENU MOBILE : Base ── */
.rx-mobile-menu {
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important; height: 100vh !important; height: 100dvh !important;
  z-index: 99999 !important;
  background: linear-gradient(155deg, #07130d 0%, #0a1628 50%, #130710 100%) !important;
  transform: translateX(105%) !important;
  transition: transform .42s cubic-bezier(.4,0,.2,1) !important;
  overflow: hidden !important;
  display: block !important;
  padding: 0 !important;
  opacity: 1 !important;
}
.rx-mobile-menu.open {
  transform: translateX(0) !important;
}

/* ── 2. Orbs décoratifs ── */
.rx-mm__bg {
  position: absolute !important; inset: 0 !important;
  overflow: hidden !important; pointer-events: none !important; z-index: 0 !important;
}
.rx-mm__orb {
  position: absolute !important; border-radius: 50% !important;
  filter: blur(80px) !important;
}
.rx-mm__orb--g { width:380px; height:380px; background:#00853F !important; top:-120px; left:-100px; opacity:.22 !important; animation: rxMmOrb3 16s ease-in-out infinite !important; }
.rx-mm__orb--y { width:260px; height:260px; background:#FDEF42 !important; bottom:5%; right:-80px; opacity:.15 !important; animation: rxMmOrb3 20s ease-in-out infinite reverse !important; }
.rx-mm__orb--r { width:200px; height:200px; background:#E31B23 !important; bottom:-40px; left:15%; opacity:.18 !important; animation: rxMmOrb3 24s ease-in-out infinite 4s !important; }
@keyframes rxMmOrb3 {
  0%, 100% { transform: translate(0,0) scale(1); }
  33%       { transform: translate(25px,-18px) scale(1.08); }
  66%       { transform: translate(-18px,24px) scale(.94); }
}

/* ── 3. Bande tricolore en haut ── */
.rx-mm__tricolor {
  position: absolute !important; top: 0 !important; left: 0 !important; right: 0 !important;
  display: flex !important; height: 5px !important; z-index: 10 !important;
}
.rx-mm__tri--g { flex: 1 !important; background: #00853F !important; }
.rx-mm__tri--y { flex: 1 !important; background: #FDEF42 !important; }
.rx-mm__tri--r { flex: 1 !important; background: #E31B23 !important; }

/* ── 4. Bouton fermer ── */
.rx-mm__close {
  position: absolute !important; top: 16px !important; right: 16px !important;
  z-index: 20 !important;
  width: 48px !important; height: 48px !important; border-radius: 50% !important;
  background: rgba(255,255,255,.1) !important;
  border: 1.5px solid rgba(255,255,255,.22) !important;
  color: #fff !important; font-size: 1.5rem !important; line-height: 1 !important;
  cursor: pointer !important; display: flex !important;
  align-items: center !important; justify-content: center !important;
  transition: all .25s !important;
}
/* Masquer les spans CSS-X de l'ancien design */
.rx-mm__close span { display: none !important; }
.rx-mobile-menu.open .rx-mm__close { opacity: 1 !important; transform: none !important; }
.rx-mm__close:hover { background: #E31B23 !important; border-color: #E31B23 !important; transform: rotate(90deg) scale(1.1) !important; }

/* ── 5. Corps scrollable ── */
.rx-mm__inner {
  position: relative !important; z-index: 1 !important;
  height: 100vh !important; height: 100dvh !important;
  overflow-y: auto !important; overflow-x: hidden !important;
  display: flex !important; flex-direction: column !important;
  padding: 72px 20px 32px !important;
  gap: 0 !important;
  scrollbar-width: thin !important; scrollbar-color: rgba(255,255,255,.2) transparent !important;
}
.rx-mm__inner::-webkit-scrollbar { width: 3px; }
.rx-mm__inner::-webkit-scrollbar-track { background: transparent; }
.rx-mm__inner::-webkit-scrollbar-thumb { background: rgba(255,255,255,.2); border-radius: 4px; }

/* ── 6. En-tête (brand) ── */
.rx-mm__brand {
  display: flex !important; align-items: center !important; gap: 14px !important;
  padding-bottom: 20px !important; margin-bottom: 18px !important;
  border-bottom: 1.5px solid rgba(253,239,66,.2) !important;
}
.rx-mm__flag {
  font-size: 2.4rem !important;
  display: block !important; flex-shrink: 0 !important;
  animation: rxFlagWave 3s ease-in-out infinite !important;
  transform-origin: bottom center !important;
}
@keyframes rxFlagWave {
  0%,100% { transform: rotate(0) scale(1); }
  25%      { transform: rotate(-6deg) scale(1.04); }
  75%      { transform: rotate(6deg) scale(1.04); }
}
.rx-mm__brand strong {
  display: block !important; color: #fff !important;
  font-family: 'Poppins',sans-serif !important; font-size: 1.4rem !important;
  font-weight: 800 !important; line-height: 1.2 !important;
}
.rx-mm__brand small {
  display: block !important; color: #FDEF42 !important;
  font-size: .75rem !important; font-weight: 600 !important; letter-spacing: .5px !important;
}

/* ── 7. Recherche ── */
.rx-mm__search {
  display: flex !important; align-items: center !important; gap: 10px !important;
  background: rgba(255,255,255,.08) !important;
  border: 1.5px solid rgba(255,255,255,.18) !important;
  border-radius: 14px !important; padding: 10px 14px !important;
  margin-bottom: 22px !important; transition: all .25s !important;
}
.rx-mm__search:focus-within {
  background: rgba(255,255,255,.13) !important;
  border-color: #00853F !important;
  box-shadow: 0 0 0 3px rgba(0,133,63,.28) !important;
}
.rx-mm__search-ico {
  font-size: 1.1rem !important; flex-shrink: 0 !important;
  color: rgba(255,255,255,.6) !important;
}
.rx-mm__search input[type="search"] {
  flex: 1 !important; background: transparent !important;
  border: none !important; outline: none !important;
  color: #fff !important; font-size: .95rem !important;
  font-family: inherit !important; min-width: 0 !important;
  -webkit-appearance: none !important;
}
.rx-mm__search input[type="search"]::placeholder { color: rgba(255,255,255,.42) !important; }
.rx-mm__search-btn {
  background: #00853F !important; border: none !important;
  color: #fff !important; width: 38px !important; height: 38px !important;
  border-radius: 10px !important; cursor: pointer !important;
  font-size: 1.1rem !important; flex-shrink: 0 !important;
  display: flex !important; align-items: center !important;
  justify-content: center !important; transition: background .2s !important; line-height: 1 !important;
}
.rx-mm__search-btn:hover { background: #006830 !important; }

/* ── 8. Label ── */
.rx-mm__label {
  display: flex !important; align-items: center !important;
  gap: 10px !important; margin-bottom: 12px !important;
}
.rx-mm__label span {
  flex: 1 !important; height: 1px !important;
  background: rgba(255,255,255,.15) !important; display: block !important;
}
.rx-mm__label strong {
  color: rgba(255,255,255,.45) !important; font-size: .68rem !important;
  font-weight: 700 !important; text-transform: uppercase !important;
  letter-spacing: 1.8px !important; white-space: nowrap !important;
  font-family: 'Poppins',sans-serif !important;
}

/* ── 9. Liste ── */
.rx-mm__list {
  list-style: none !important; padding: 0 !important;
  margin: 0 0 22px !important;
  display: flex !important; flex-direction: column !important; gap: 8px !important;
}
.rx-mm__list li { list-style: none !important; }
.rx-mm__list li::before, .rx-mm__list li::marker { content: none !important; display: none !important; }

/* ── 10. Liens ── */
.rx-mm__item {
  display: flex !important; align-items: center !important; gap: 14px !important;
  padding: 13px 16px !important;
  background: rgba(255,255,255,.06) !important;
  border: 1.5px solid rgba(255,255,255,.1) !important;
  border-radius: 14px !important; color: #fff !important;
  font-family: 'Poppins',sans-serif !important;
  text-decoration: none !important;
  transition: all .28s cubic-bezier(.34,1.56,.64,1) !important;
  opacity: 1 !important; transform: none !important; position: relative !important;
}
.rx-mm__item:hover { transform: translateX(6px) !important; }
.rx-mm__item[data-active="1"] { background: rgba(0,133,63,.22) !important; border-color: rgba(0,133,63,.55) !important; }

/* Couleurs par rubrique */
.rx-mm__item--home:hover   { background:rgba(255,255,255,.12) !important; border-color:rgba(255,255,255,.35) !important; }
.rx-mm__item--green:hover  { background:rgba(0,133,63,.18) !important; border-color:rgba(0,133,63,.5) !important; }
.rx-mm__item--red:hover    { background:rgba(227,27,35,.15) !important; border-color:rgba(227,27,35,.45) !important; }
.rx-mm__item--yellow:hover { background:rgba(253,239,66,.08) !important; border-color:rgba(253,239,66,.45) !important; }
.rx-mm__item--blue:hover   { background:rgba(56,189,248,.1) !important; border-color:rgba(56,189,248,.45) !important; }
.rx-mm__item--orange:hover { background:rgba(251,146,60,.1) !important; border-color:rgba(251,146,60,.45) !important; }
.rx-mm__item--purple:hover { background:rgba(167,139,250,.1) !important; border-color:rgba(167,139,250,.45) !important; }

.rx-mm__icon {
  font-size: 1.3rem !important; flex-shrink: 0 !important;
  width: 42px !important; height: 42px !important;
  display: inline-flex !important; align-items: center !important;
  justify-content: center !important;
  background: rgba(255,255,255,.08) !important; border-radius: 12px !important;
}
.rx-mm__txt { flex: 1 !important; min-width: 0 !important; }
.rx-mm__txt strong { display: block !important; color: #fff !important; font-size: .93rem !important; font-weight: 700 !important; line-height: 1.3 !important; }
.rx-mm__txt small  { display: block !important; color: rgba(255,255,255,.48) !important; font-size: .73rem !important; margin-top: 1px !important; }
.rx-mm__arr { color: rgba(255,255,255,.35) !important; font-size: 1.3rem !important; flex-shrink: 0 !important; transition: all .25s !important; }
.rx-mm__item:hover .rx-mm__arr { color: #FDEF42 !important; transform: translateX(5px) !important; }

/* ── 11. Animation entrée items ── */
.rx-mobile-menu.open .rx-mm__list li {
  animation: rxMmIn .38s cubic-bezier(.34,1.56,.64,1) backwards !important;
}
.rx-mobile-menu.open .rx-mm__list li:nth-child(1) { animation-delay: .04s !important; }
.rx-mobile-menu.open .rx-mm__list li:nth-child(2) { animation-delay: .08s !important; }
.rx-mobile-menu.open .rx-mm__list li:nth-child(3) { animation-delay: .12s !important; }
.rx-mobile-menu.open .rx-mm__list li:nth-child(4) { animation-delay: .16s !important; }
.rx-mobile-menu.open .rx-mm__list li:nth-child(5) { animation-delay: .20s !important; }
.rx-mobile-menu.open .rx-mm__list li:nth-child(6) { animation-delay: .24s !important; }
.rx-mobile-menu.open .rx-mm__list li:nth-child(7) { animation-delay: .28s !important; }
.rx-mobile-menu.open .rx-mm__list li:nth-child(8) { animation-delay: .32s !important; }
@keyframes rxMmIn {
  from { opacity: 0; transform: translateX(30px) scale(.96); }
  to   { opacity: 1; transform: translateX(0) scale(1); }
}

/* ── 12. CTA contact ── */
.rx-mm__cta {
  display: flex !important; align-items: center !important;
  justify-content: center !important; gap: 10px !important;
  padding: 15px !important; margin-bottom: 20px !important;
  background: linear-gradient(135deg, #00853F 0%, #00a651 100%) !important;
  border-radius: 16px !important; color: #fff !important;
  font-family: 'Poppins',sans-serif !important; font-weight: 800 !important;
  font-size: .98rem !important; text-decoration: none !important;
  box-shadow: 0 8px 28px rgba(0,133,63,.35) !important;
  transition: all .28s !important;
  animation: rxCTAPulse 3s ease-in-out infinite !important;
}
@keyframes rxCTAPulse {
  0%,100% { box-shadow: 0 8px 28px rgba(0,133,63,.35); }
  50%      { box-shadow: 0 12px 36px rgba(0,133,63,.55); }
}
.rx-mm__cta:hover { transform: translateY(-3px) !important; animation: none !important; box-shadow: 0 14px 40px rgba(0,133,63,.5) !important; }
.rx-mm__cta-glow  { display: none !important; }
.rx-mm__cta-ico   { font-size: 1.2rem !important; }

/* ── 13. Footer ── */
.rx-mm__footer {
  margin-top: auto !important; padding-top: 24px !important;
  display: flex !important; flex-direction: column !important;
  align-items: center !important; gap: 10px !important;
}
.rx-mm__flagstripe {
  display: flex !important; gap: 5px !important; justify-content: center !important;
}
.rx-mm__flagstripe span { width: 36px !important; height: 5px !important; border-radius: 3px !important; }
.rx-mm__flagstripe span:nth-child(1) { background: #00853F !important; }
.rx-mm__flagstripe span:nth-child(2) { background: #FDEF42 !important; }
.rx-mm__flagstripe span:nth-child(3) { background: #E31B23 !important; }
.rx-mm__footer small { color: rgba(255,255,255,.38) !important; font-size: .7rem !important; text-align: center !important; }

/* ── 14. Animation Brand + Search entrée ── */
.rx-mobile-menu.open .rx-mm__brand,
.rx-mobile-menu.open .rx-mm__search,
.rx-mobile-menu.open .rx-mm__label {
  animation: rxMmFadeDown .35s ease backwards !important;
}
.rx-mobile-menu.open .rx-mm__search { animation-delay: .03s !important; }
.rx-mobile-menu.open .rx-mm__label  { animation-delay: .06s !important; }
@keyframes rxMmFadeDown {
  from { opacity: 0; transform: translateY(-12px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ──────────────────────────────────────────────────────────────
   BLOG HERO — Animations Sénégalaises (couleurs du drapeau)
   ────────────────────────────────────────────────────────────── */
.rx-blog-hero {
  background: linear-gradient(155deg, #061a0d 0%, #0a1628 55%, #1a060a 100%) !important;
  color: #fff !important;
  padding: 80px 20px 64px !important;
}
.rx-blog-hero__orb--g { background: #00853F !important; opacity: .35 !important; width:420px !important; height:420px !important; }
.rx-blog-hero__orb--y { background: #FDEF42 !important; opacity: .18 !important; width:300px !important; height:300px !important; }
.rx-blog-hero__orb--r { background: #E31B23 !important; opacity: .22 !important; width:220px !important; height:220px !important; }

/* Titre et sous-titre devenus blancs sur fond sombre */
.rx-blog-hero__title { color: #fff !important; animation: rxHeroTitleIn .7s cubic-bezier(.34,1.56,.64,1) .1s both; }
@keyframes rxHeroTitleIn {
  from { opacity:0; transform:translateY(24px) scale(.97); }
  to   { opacity:1; transform:translateY(0) scale(1); }
}
.rx-blog-hero__title mark {
  background: linear-gradient(135deg, #FDEF42, #fde047) !important;
  color: #0f172a !important; padding: 0 8px 3px !important; border-radius: 8px !important;
}
.rx-blog-hero__subtitle { color: rgba(255,255,255,.72) !important; animation: rxHeroSubIn .6s ease .22s both; }
@keyframes rxHeroSubIn {
  from { opacity:0; transform:translateY(12px); }
  to   { opacity:1; transform:translateY(0); }
}

/* Eyebrow */
.rx-blog-hero__eyebrow, .rx-blog-hero__badge {
  background: rgba(253,239,66,.15) !important;
  color: #FDEF42 !important;
  border: 1.5px solid rgba(253,239,66,.35) !important;
  animation: rxEyebrowIn .55s cubic-bezier(.34,1.56,.64,1) both !important;
}
@keyframes rxEyebrowIn {
  from { opacity:0; transform:translateY(-14px) scale(.88); }
  to   { opacity:1; transform:translateY(0) scale(1); }
}

/* Pills catégories adaptées au fond sombre */
.rx-blog-cat-pill {
  background: rgba(255,255,255,.1) !important;
  border-color: rgba(255,255,255,.2) !important;
  color: rgba(255,255,255,.82) !important;
  animation: rxCatPillIn .45s ease .32s both;
}
@keyframes rxCatPillIn {
  from { opacity:0; transform:scale(.88); }
  to   { opacity:1; transform:scale(1); }
}
.rx-blog-cat-pill:hover  { background: rgba(0,133,63,.3) !important; border-color: #00853F !important; color: #fff !important; }
.rx-blog-cat-pill.active { background: #00853F !important; border-color: #00853F !important; color: #fff !important; }

/* Cards magazine : animation d'entrée échelonnée */
.rx-mag-featured { animation: rxCardUp .6s cubic-bezier(.34,1.56,.64,1) .05s both; }
.rx-mag-card     { animation: rxCardUp .5s cubic-bezier(.34,1.56,.64,1) backwards; }
.rx-mag-card:nth-child(2) { animation-delay: .08s; }
.rx-mag-card:nth-child(3) { animation-delay: .14s; }
.rx-mag-card:nth-child(4) { animation-delay: .20s; }
.rx-mag-card:nth-child(5) { animation-delay: .26s; }
.rx-mag-card:nth-child(6) { animation-delay: .32s; }
.rx-mag-card:nth-child(n+7) { animation-delay: .38s; }
@keyframes rxCardUp {
  from { opacity:0; transform:translateY(28px) scale(.97); }
  to   { opacity:1; transform:translateY(0) scale(1); }
}

/* ── fin v10 ── */

/* ══════════════════════════════════════════════════════════
   RIF XALIMA v11 — Améliorations artistiques & UX
   Scroll reveal · Cartes · Badges · Couleurs · SEO
══════════════════════════════════════════════════════════ */

/* ── Sécurité absolue : masquer tout .rx-mag-cat ── */
.rx-mag-cat,
.rx-mag-cat--overlay {
  display: none !important;
}

/* ── Scroll Reveal — consolidé en fin de fichier ── */

/* ── Pills catégories : fond transparent, bordure fine ── */
.rx-blog-cat-pill {
  background: transparent !important;
  border: 1.5px solid rgba(255,255,255,.35) !important;
  color: rgba(255,255,255,.9) !important;
  box-shadow: none !important;
  font-weight: 500 !important;
}
.rx-blog-cat-pill:hover {
  background: rgba(255,255,255,.12) !important;
  border-color: rgba(255,255,255,.65) !important;
  color: #fff !important;
  transform: translateY(-1px) !important;
  box-shadow: none !important;
}
.rx-blog-cat-pill.active {
  background: rgba(255,255,255,.2) !important;
  border-color: rgba(255,255,255,.75) !important;
  color: #fff !important;
  font-weight: 700 !important;
  box-shadow: none !important;
}

/* ── Cartes articles — amélioration typographie & hover ── */
.rx-mag-card {
  border-radius: 16px !important;
  overflow: hidden !important;
  box-shadow: 0 2px 14px rgba(0,0,0,.07) !important;
  transition: box-shadow .3s ease, transform .3s ease !important;
  background: #fff !important;
  border: 1px solid rgba(0,0,0,.05) !important;
}
.rx-mag-card:hover {
  box-shadow: 0 12px 36px rgba(0,0,0,.13) !important;
  transform: translateY(-4px) !important;
}
.rx-mag-card__img {
  position: relative !important;
  overflow: hidden !important;
  aspect-ratio: 16/9 !important;
}
.rx-mag-card__img img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform .45s ease !important;
}
.rx-mag-card:hover .rx-mag-card__img img {
  transform: scale(1.03) !important;
  filter: none !important;
}
.rx-mag-card__body {
  padding: 16px 18px 20px !important;
}
.rx-mag-card__title {
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  margin: 6px 0 8px !important;
  color: #111 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}
.rx-mag-card__exc {
  font-size: .875rem !important;
  color: #555 !important;
  line-height: 1.55 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  margin-bottom: 12px !important;
}
.rx-mag-card__foot {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  margin-top: 10px !important;
  padding-top: 10px !important;
  border-top: 1px solid #f0f0f0 !important;
}

/* ── Article vedette ── */
.rx-mag-featured {
  border-radius: 18px !important;
  overflow: hidden !important;
  box-shadow: 0 4px 28px rgba(0,0,0,.10) !important;
  background: #fff !important;
  margin-bottom: 32px !important;
  border: 1px solid rgba(0,0,0,.05) !important;
}
.rx-mag-featured:hover {
  box-shadow: 0 12px 48px rgba(0,0,0,.15) !important;
}
.rx-mag-featured__img img {
  width: 100% !important;
  object-fit: cover !important;
  transition: transform .5s ease !important;
}
.rx-mag-featured:hover .rx-mag-featured__img img {
  transform: scale(1.03) !important;
  filter: none !important;
}
.rx-mag-featured__title {
  font-size: clamp(1.25rem, 3vw, 1.65rem) !important;
  font-weight: 800 !important;
  line-height: 1.3 !important;
  color: #111 !important;
}
.rx-mag-featured__exc {
  color: #555 !important;
  line-height: 1.65 !important;
  font-size: .95rem !important;
}
.rx-mag-featured__foot {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  margin-top: 16px !important;
  padding-top: 14px !important;
  border-top: 1px solid #f0f0f0 !important;
}

/* ── Bento cards — hover amélioré ── */
.rx2-bento__card {
  transition: transform .3s cubic-bezier(0.34,1.56,0.64,1),
              box-shadow .3s ease !important;
}
.rx2-bento__card:hover {
  transform: translateY(-6px) scale(1.015) !important;
  box-shadow: 0 20px 56px rgba(0,0,0,.22) !important;
}

/* ── Features piliers — animation échelonnée ── */
.rx2-feature {
  transition: transform .3s ease, box-shadow .3s ease !important;
}
.rx2-feature:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 12px 32px rgba(0,0,0,.10) !important;
}
.rx2-features__grid .rx2-feature:nth-child(1) { animation-delay: .05s; }
.rx2-features__grid .rx2-feature:nth-child(2) { animation-delay: .12s; }
.rx2-features__grid .rx2-feature:nth-child(3) { animation-delay: .19s; }
.rx2-features__grid .rx2-feature:nth-child(4) { animation-delay: .26s; }

/* ── Job cards — hover ── */
.rx2-jobcard {
  transition: transform .25s ease, box-shadow .25s ease !important;
}
.rx2-jobcard:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 8px 24px rgba(0,133,63,.15) !important;
}

/* ── Section shead — underline animé ── */
.rx2-shead h2 {
  position: relative;
  display: inline-block;
}
.rx2-shead h2::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -4px;
  width: 3em;
  height: 3px;
  background: linear-gradient(90deg, #00853F, #FDEF42);
  border-radius: 2px;
  transition: width .4s ease;
}
.rx2-shead:hover h2::after { width: 100%; }

/* ── Magazine cards (front-page blog) ── */
.rx2-magcard {
  transition: transform .3s ease, box-shadow .3s ease !important;
}
.rx2-magcard:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 12px 36px rgba(0,0,0,.12) !important;
}
.rx2-magcard__media { overflow: hidden; border-radius: 12px 12px 0 0; }
.rx2-magcard__media img {
  transition: transform .4s ease !important;
}
.rx2-magcard:hover .rx2-magcard__media img {
  transform: scale(1.03) !important;
  filter: none !important;
}

/* ── Meta texte : pas d'emoji oversized ── */
.rx-mag-meta {
  font-size: .78rem !important;
  color: #888 !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  align-items: center !important;
  margin-bottom: 6px !important;
}

/* ── CTA bouton vert — cohérence ── */
.rx-mag-cta, .rx2-btn--primary {
  background: linear-gradient(135deg, #00853F, #006830) !important;
  color: #fff !important;
}
.rx-mag-cta:hover, .rx2-btn--primary:hover {
  background: linear-gradient(135deg, #006830, #004d24) !important;
  box-shadow: 0 6px 20px rgba(0,133,63,.35) !important;
  transform: translateY(-2px) !important;
}

/* ── Pagination — vert ── */
.rx-pagination .page-numbers.current {
  background: #00853F !important;
  border-color: #00853F !important;
  color: #fff !important;
}
.rx-pagination .page-numbers:hover {
  border-color: #00853F !important;
  color: #00853F !important;
}

/* ── Mobile : aspect-ratio souple ── */
@media (max-width: 480px) {
  .rx-mag-card__img { aspect-ratio: 4/3 !important; }
  .rx2-bento__card:hover { transform: translateY(-3px) scale(1.01) !important; }
}

/* fin v11 */

/* ══════════════════════════════════════════════════════════
   RIF XALIMA v12 — Commentaires · Sidebar · AdSense · SEO
══════════════════════════════════════════════════════════ */

/* ── COMMENTAIRES ─────────────────────────────────────── */
.rx-comments {
  max-width: 820px;
  margin: 48px auto 0;
  padding: 0 0 48px;
}
.rx-comments__title {
  font-size: 1.35rem;
  font-weight: 800;
  color: #0f172a;
  margin: 0 0 24px;
  padding-bottom: 14px;
  border-bottom: 2px solid #f1f5f9;
}
.rx-comments__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.rx-comment {
  background: #fff;
  border: 1px solid #e8f0e9;
  border-radius: 14px;
  overflow: hidden;
  transition: box-shadow .25s ease;
}
.rx-comment:hover { box-shadow: 0 6px 20px rgba(0,0,0,.07); }
.rx-comment .rx-comment { margin: 12px 0 0 48px; border-color: #f1f5f9; }
.rx-comment__body { padding: 18px 20px; }
.rx-comment__header {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 12px;
}
.rx-comment__avatar-img {
  border-radius: 50%;
  flex-shrink: 0;
  border: 2px solid #e8f0e9;
}
.rx-comment__meta { flex: 1; }
.rx-comment__author { display: block; font-weight: 700; color: #0f172a; font-size: .95rem; }
.rx-comment__author a { color: #00853F; text-decoration: none; }
.rx-comment__date { font-size: .78rem; color: #94a3b8; display: block; margin-top: 2px; }
.rx-comment__actions { display: flex; gap: 8px; flex-shrink: 0; }
.rx-comment__edit a, .rx-comment__reply a {
  font-size: .78rem;
  color: #64748b;
  text-decoration: none;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  padding: 3px 9px;
  border-radius: 20px;
  transition: all .2s;
}
.rx-comment__edit a:hover, .rx-comment__reply a:hover {
  background: #00853F;
  color: #fff;
  border-color: #00853F;
}
.rx-comment__text { font-size: .92rem; color: #374151; line-height: 1.7; }
.rx-comment__text p { margin: 0 0 8px; }
.rx-comment__pending { font-size: .82rem; color: #92400e; background: #fef3c7; border-radius: 6px; padding: 6px 10px; margin-bottom: 10px; }
.rx-comment__edit, .rx-comment__reply { display: inline; }
.rx-comments__nav { display: flex; justify-content: space-between; margin-top: 16px; }
.rx-comments__nav a { color: #00853F; font-weight: 600; text-decoration: none; }
.rx-comments__closed { color: #64748b; font-style: italic; text-align: center; padding: 24px; }
.rx-comment-protected { text-align: center; padding: 32px; color: #64748b; }

/* ── FORMULAIRE DE COMMENTAIRES ───────────────────────── */
.rx-comment-form__title { font-size: 1.2rem; font-weight: 800; color: #0f172a; margin: 32px 0 20px; }
.rx-comment-form { max-width: 820px; }
.rx-comment-form__note { font-size: .82rem; color: #94a3b8; margin-bottom: 18px; }
.rx-comment-form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 16px;
}
.rx-comment-form__group { display: flex; flex-direction: column; gap: 5px; }
.rx-comment-form__group--full { margin-bottom: 16px; }
.rx-comment-form__group label { font-size: .84rem; font-weight: 600; color: #374151; }
.rx-form-required { color: #E31B23; }
.rx-comment-form__input,
.rx-comment-form__textarea {
  border: 1.5px solid #e2e8f0;
  border-radius: 10px;
  padding: 11px 14px;
  font-family: inherit;
  font-size: .93rem;
  color: #0f172a;
  background: #f8fafc;
  transition: border-color .2s, background .2s;
  outline: none;
  width: 100%;
  box-sizing: border-box;
}
.rx-comment-form__input:focus,
.rx-comment-form__textarea:focus {
  border-color: #00853F;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(0,133,63,.1);
}
.rx-comment-form__textarea { resize: vertical; min-height: 130px; }
.rx-comment-form__cookie { font-size: .82rem; color: #64748b; margin: 4px 0 18px; }
.rx-comment-form__cookie input { margin-right: 6px; accent-color: #00853F; }
.rx-comment-form__btn {
  background: linear-gradient(135deg, #00853F, #006830);
  color: #fff;
  border: none;
  padding: 13px 28px;
  border-radius: 10px;
  font-weight: 700;
  font-size: .95rem;
  cursor: pointer;
  font-family: inherit;
  transition: all .25s;
  box-shadow: 0 4px 12px rgba(0,133,63,.25);
}
.rx-comment-form__btn:hover {
  background: linear-gradient(135deg, #006830, #004d24);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0,133,63,.35);
}
@media (max-width: 600px) {
  .rx-comment-form__row { grid-template-columns: 1fr; }
  .rx-comment .rx-comment { margin-left: 24px; }
}

/* ── SIDEBAR ──────────────────────────────────────────── */
.rx-sidebar {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.rx-sidebar__widget {
  background: #fff;
  border: 1px solid #e8f0e9;
  border-radius: 16px;
  padding: 20px;
  box-shadow: 0 2px 10px rgba(0,0,0,.04);
}
.rx-sidebar__widget--ad { border-color: #f1f5f9; background: #fafafa; }
.rx-sidebar__wtitle {
  font-size: 1rem;
  font-weight: 800;
  color: #0f172a;
  margin: 0 0 16px;
  padding-bottom: 10px;
  border-bottom: 2px solid #00853F;
  display: inline-block;
}
.rx-sidebar__poplist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.rx-sidebar__popitem { display: flex; gap: 10px; align-items: flex-start; }
.rx-sidebar__popthumb { flex-shrink: 0; width: 60px; height: 60px; border-radius: 8px; overflow: hidden; display: block; }
.rx-sidebar__popthumb img { width: 100%; height: 100%; object-fit: cover; }
.rx-sidebar__popbody { flex: 1; }
.rx-sidebar__poptitle { font-size: .87rem; font-weight: 600; color: #0f172a; text-decoration: none; line-height: 1.4; display: block; }
.rx-sidebar__poptitle:hover { color: #00853F; }
.rx-sidebar__popdate { font-size: .75rem; color: #94a3b8; display: block; margin-top: 3px; }
.rx-sidebar__catlist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.rx-sidebar__catlink {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 12px;
  border-radius: 8px;
  text-decoration: none;
  color: #374151;
  font-size: .9rem;
  transition: all .2s;
}
.rx-sidebar__catlink:hover { background: #f0fdf4; color: #00853F; }
.rx-sidebar__catcount {
  background: #f1f5f9;
  color: #64748b;
  font-size: .72rem;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 20px;
}
.rx-sidebar__catlink:hover .rx-sidebar__catcount { background: #dcfce7; color: #15803d; }
.rx-sidebar__tagcloud { display: flex; flex-wrap: wrap; gap: 6px; }
.rx-sidebar__widget--nl { background: linear-gradient(135deg, #f0fdf4, #dcfce7); border-color: #bbf7d0; }
.rx-sidebar__nlsub { font-size: .85rem; color: #374151; margin: 0 0 14px; line-height: 1.6; }
.rx-sidebar__nlform { display: flex; flex-direction: column; gap: 8px; }
.rx-sidebar__nlinput {
  border: 1.5px solid #bbf7d0;
  border-radius: 10px;
  padding: 10px 14px;
  font-family: inherit;
  font-size: .9rem;
  background: #fff;
  outline: none;
  transition: border-color .2s;
}
.rx-sidebar__nlinput:focus { border-color: #00853F; box-shadow: 0 0 0 3px rgba(0,133,63,.1); }
.rx-sidebar__nlbtn {
  background: #00853F;
  color: #fff;
  border: none;
  padding: 10px;
  border-radius: 10px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  font-size: .88rem;
  transition: background .2s, transform .2s;
}
.rx-sidebar__nlbtn:hover { background: #006830; transform: translateY(-1px); }
.rx-sidebar__links { list-style: none; margin: 0; padding: 0; }
.rx-sidebar__links li a {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 0;
  border-bottom: 1px solid #f1f5f9;
  text-decoration: none;
  color: #374151;
  font-size: .9rem;
  font-weight: 500;
  transition: color .2s;
}
.rx-sidebar__links li:last-child a { border-bottom: none; }
.rx-sidebar__links li a:hover { color: #00853F; }

/* ── ZONES PUBLICITAIRES (AdSense) ────────────────────── */
.rx-ad-wrap {
  margin: 24px auto;
  text-align: center;
  max-width: 100%;
  overflow: hidden;
}
.rx-ad-wrap--header { margin: 0 auto 16px; }
.rx-ad-wrap--sidebar { margin: 0 0 16px; }
.rx-ad-wrap--footer { margin: 16px auto 0; }
.rx-ad-label {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #94a3b8;
  margin: 0 0 4px;
  text-align: center;
}
.rx-ad-block { display: block; margin: 0 auto; }
.rx-ad-incontent {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 12px 16px;
  margin: 28px auto;
  max-width: 100%;
  overflow: hidden;
}

/* ── ARTICLE LAYOUT AVEC SIDEBAR ─────────────────────── */
.rx-single__layout-with-sidebar {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 40px;
  align-items: flex-start;
}
@media (max-width: 1024px) {
  .rx-single__layout-with-sidebar { grid-template-columns: 1fr; }
  .rx-sidebar { display: none; }
}

/* ── AMÉLIORATIONS SEARCH.PHP ────────────────────────── */
.rx-search-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0,0,0,.08) !important;
}

/* ── BREADCRUMBS ─────────────────────────────────────── */
.rx-breadcrumb {
  font-size: .82rem;
  color: #94a3b8;
  margin: 0 0 12px;
}
.rx-breadcrumb a { color: #00853F; text-decoration: none; }
.rx-breadcrumb a:hover { text-decoration: underline; }
.rx-breadcrumb__sep { margin: 0 6px; color: #cbd5e1; }

/* ── PERFORMANCE : le lazy loading natif ne doit jamais masquer l'image ──
   L'ancienne règle mettait toutes les images lazy à opacity:0, mais aucun
   script n'ajoutait ensuite rx-img-loaded : images d'articles et cartes
   invisibles définitivement. Le navigateur gère déjà le chargement différé. */
img[loading="lazy"] { opacity: 1; transition: opacity .4s ease; }
img[loading="lazy"].rx-img-loaded,
img.rx-img-loaded { opacity: 1; }

/* ── AMÉLIORATION BARRE DE LECTURE ─────────────────────── */
.rx-reading-bar {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: rgba(0,0,0,.06);
  z-index: 9999;
  pointer-events: none;
}
.rx-reading-bar__fill {
  height: 100%;
  background: linear-gradient(90deg, #00853F, #FDEF42, #E31B23);
  width: 0%;
  transition: width .1s linear;
  border-radius: 0 2px 2px 0;
}

/* ── SKIP NAVIGATION (accessibilité + SEO) ─────────────── */
.rx-skip-nav {
  position: absolute;
  top: -100%;
  left: 0;
  background: #00853F;
  color: #fff;
  padding: 10px 20px;
  font-weight: 700;
  text-decoration: none;
  z-index: 9999;
  border-radius: 0 0 8px 0;
  transition: top .2s;
}
.rx-skip-nav:focus { top: 0; }

/* fin v12 */

/* =================================================================
   ════════════════════════════════════════════════════════════════
   v9.27 — PERFORMANCE & ADSENSE COMPLIANCE
   prefers-reduced-motion global · CLS ad reservation
   ════════════════════════════════════════════════════════════════
================================================================== */

/* ── prefers-reduced-motion : désactive toutes les animations coûteuses ── */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .rx2-hero__orb,
  .rx-logo__ring,
  .rx-logo__petals,
  .rx2-hero__flag,
  .rx2-pulse,
  .rx-footer__orb,
  .rx-mm__orb,
  .rx2-hero__accent::after { animation: none !important; }
}

/* ── Réservation espace publicitaire (CLS AdSense) ── */
/* Ces règles s'appliquent même sans Publisher ID configuré
   pour éviter le décalage quand les annonces se chargent. */
.rx-ad-wrap                       { contain: layout; min-height: 100px; }
.rx-ad-wrap--incontent,
.rx-ad-incontent                  { min-height: 280px; contain: layout; }
.rx-ad-wrap--sidebar              { min-height: 250px; contain: layout; }
.rx-ad-wrap--header,
.rx-ad-wrap--footer               { min-height: 90px;  contain: layout; }
.rx-ad-label {
  font-size: .68rem; letter-spacing: .06em; color: #94a3b8;
  text-align: center; text-transform: uppercase;
  margin: 0 0 4px; display: block;
}

/* ══════════════════════════════════════════════════════
   SCROLL REVEAL — VERSION UNIQUE ET DÉFINITIVE (v9.34)
   Le JS ajoute la classe "rx-revealed" via IntersectionObserver.
   Les anciennes versions utilisaient ".rx-in-view" (incorrect) et
   causaient des images/sections bloquées à opacity:0 en permanence.
   ══════════════════════════════════════════════════════ */
[data-rx-reveal] {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .65s cubic-bezier(.4,0,.2,1),
              transform .65s cubic-bezier(.4,0,.2,1);
  will-change: opacity, transform;
}
[data-rx-reveal].rx-revealed {
  opacity: 1;
  transform: none;
}
[data-rx-reveal][data-rx-delay="1"] { transition-delay: .08s; }
[data-rx-reveal][data-rx-delay="2"] { transition-delay: .16s; }
[data-rx-reveal][data-rx-delay="3"] { transition-delay: .24s; }
[data-rx-reveal][data-rx-delay="4"] { transition-delay: .32s; }

/* Sécurité : les conteneurs d'images du blog ne doivent JAMAIS
   rester invisibles — ni pour les robots Google/AdSense qui ne
   lancent pas JS, ni en cas de JS bloqué côté utilisateur. */
.rx-mag-featured__img,
.rx-mag-card__img,
.rx-single__thumb,
.rx-related-card__thumb {
  opacity: 1 !important;
}
.rx-mag-featured__img img,
.rx-mag-card__img img,
.rx-single__thumb img,
.rx-related-card__thumb img {
  opacity: 1 !important;
  visibility: visible !important;
}

/* Accessibilité : mouvement réduit → révélation immédiate */
@media (prefers-reduced-motion: reduce) {
  [data-rx-reveal] { opacity: 1; transform: none; transition: none; }
}

/* fin v9.34 */

/* ── Homepage : hover stable et contenu éditorial ── */
body.rx-front-page .rx2-magcard:hover .rx2-magcard__media img,
body.rx-front-page .rx2-magcard:hover .rx2-magcard__media picture img,
body.rx-front-page .rx2-blog-card:hover .rx2-blog-card__img {
  transform: scale(1.03) !important;
  filter: none !important;
}

body.rx-front-page .rx2-magcard__media img,
body.rx-front-page .rx2-blog-card__img {
  transform-origin: center center;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.rx2-jobs__empty {
  grid-column: 1 / -1;
  display: grid;
  gap: 8px;
  place-items: center;
  min-height: 150px;
  padding: 26px;
  text-align: center;
  background: #fff;
  border: 1.5px dashed var(--rx2-line);
  border-radius: 18px;
  color: var(--rx2-muted);
}
.rx2-jobs__empty strong { color: var(--rx2-ink); font-size: 1rem; }
.rx2-jobs__empty-link {
  color: var(--rx2-green-dk);
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.rx2-editorial { background: #fff; }
.rx2-editorial__inner { max-width: 920px; }
.rx2-editorial__copy {
  max-width: 780px;
  margin: 22px auto 0;
  color: var(--rx2-ink-2);
  font-size: 1rem;
  line-height: 1.8;
}
.rx2-editorial__copy p { margin: 0 0 14px; }
.rx2-editorial__copy a { color: var(--rx2-green-dk); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.rx2-home-faq { background: var(--rx2-bg-soft); }
.rx2-home-faq__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  max-width: 960px;
  margin: 22px auto 0;
}
.rx2-home-faq details {
  padding: 18px 20px;
  background: #fff;
  border: 1.5px solid var(--rx2-line);
  border-radius: 14px;
}
.rx2-home-faq summary {
  cursor: pointer;
  color: var(--rx2-ink);
  font-weight: 800;
}
.rx2-home-faq details p {
  margin: 12px 0 0;
  color: var(--rx2-muted);
  line-height: 1.65;
}
@media (max-width: 680px) {
  .rx2-home-faq__grid { grid-template-columns: 1fr; }
}

/* Dernière couche de sécurité pour toutes les cartes éditoriales :
   l'image reste dans son cadre, avec un zoom très léger et uniforme. */
.rx-post-card:hover .rx-post-card__thumb img,
.rx-related-card:hover .rx-related-card__thumb img,
.rx-mag-featured:hover .rx-mag-featured__img img,
.rx-mag-card:hover .rx-mag-card__img img,
.rx2-magcard:hover .rx2-magcard__media img {
  transform: scale(1.03) !important;
  filter: none !important;
}
