/* ==========================================================================
   MontaiguRH, design system
   Feuille de style principale. Chargée APRÈS Bootstrap 5.3.
   Sommaire :
   01. Tokens          02. Base & typographie   03. Utilitaires
   04. Boutons         05. En-tête / navigation 06. Hero
   07. Sections & cartes  08. Tableaux          09. Accordéons
   10. Témoignages     11. Bandeaux CTA         12. Formulaires
   13. Pied de page    14. Cookies              15. Zone IA Act
   16. Legacy (compat. pages non refondues)     17. Responsive
   ========================================================================== */

/* ---------- 01. Tokens ------------------------------------------------ */
:root {
  /* Marque */
  --mrh-ink:          #0B1F35;
  --mrh-navy:         #0A2A4A;
  --mrh-navy-deep:    #05172A;
  --mrh-blue:         #16558F;
  --mrh-blue-soft:    #E8F0F8;
  --mrh-accent:       #C25A18;   /* orange texte, contraste 4,6:1 sur blanc */
  --mrh-accent-bright:#E8722C;   /* orange aplats / fonds sombres */
  --mrh-accent-soft:  #FDF1E8;
  --mrh-gold:         #8A6A22;   /* pôle Conformité IA Act, texte */
  --mrh-gold-bright:  #B08D45;   /* pôle Conformité IA Act, aplats */
  --mrh-gold-soft:    #F7F1E3;

  /* Neutres */
  --mrh-paper:        #FFFFFF;
  --mrh-sand:         #F7F5F2;
  --mrh-mist:         #F1F4F7;
  --mrh-line:         #E1E0DB;
  --mrh-line-strong:  #CBC9C3;
  --mrh-muted:        #55606D;
  --mrh-muted-light:  #9AA6B2;

  /* Statut */
  --mrh-ok:           #1B7A4B;
  --mrh-warn:         #A8620B;
  --mrh-danger:       #A32020;

  /* Structure */
  --mrh-radius:       4px;
  --mrh-radius-lg:    8px;
  --mrh-header-h:     78px;
  --mrh-shadow-sm:    0 1px 2px rgba(11,31,53,.06), 0 2px 8px rgba(11,31,53,.05);
  --mrh-shadow-md:    0 2px 6px rgba(11,31,53,.07), 0 12px 32px rgba(11,31,53,.09);
  --mrh-shadow-lg:    0 4px 12px rgba(11,31,53,.09), 0 24px 60px rgba(11,31,53,.14);

  /* Typographie */
  --mrh-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --mrh-serif: 'Source Serif 4', Georgia, 'Times New Roman', serif;
}

/* ---------- 02. Base & typographie ------------------------------------ */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

body {
  font-family: var(--mrh-sans);
  color: var(--mrh-ink);
  background: var(--mrh-paper);
  font-size: 1.0625rem;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  padding-top: var(--mrh-header-h);
  overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 { color: var(--mrh-ink); font-weight: 600; letter-spacing: -.01em; }

.display-serif,
h1.page-title,
.section-head h2 {
  font-family: var(--mrh-serif);
  font-weight: 600;
  letter-spacing: -.015em;
  line-height: 1.14;
}

h1.page-title { font-size: clamp(2.1rem, 1.35rem + 2.6vw, 3.6rem); margin-bottom: .75rem; }
.section-head h2 { font-size: clamp(1.75rem, 1.2rem + 1.9vw, 2.65rem); margin-bottom: .85rem; }
h3 { font-size: 1.2rem; }

p { margin-bottom: 1rem; }
a { color: var(--mrh-blue); text-decoration-thickness: 1px; text-underline-offset: 2px; }
a:hover { color: var(--mrh-navy); }

.lede {
  font-size: 1.1875rem;
  line-height: 1.6;
  color: var(--mrh-muted);
  max-width: 62ch;
}
.lede--center { margin-left: auto; margin-right: auto; }

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--mrh-accent);
  margin-bottom: .9rem;
}
.eyebrow::before {
  content: "";
  width: 24px; height: 1px;
  background: currentColor;
  flex: 0 0 24px;
}
.eyebrow--light { color: var(--mrh-accent-bright); }
.eyebrow--gold  { color: var(--mrh-gold); }

/* Accessibilité : cible de focus visible et homogène */
:focus-visible {
  outline: 3px solid var(--mrh-accent-bright);
  outline-offset: 2px;
  border-radius: 2px;
}
.on-dark :focus-visible { outline-color: #FFD9BF; }

.skip-link {
  position: absolute;
  left: 1rem; top: -100px;
  z-index: 2000;
  background: var(--mrh-ink);
  color: #fff;
  padding: .75rem 1.25rem;
  border-radius: var(--mrh-radius);
  font-weight: 600;
  transition: top .15s ease;
}
.skip-link:focus { top: 1rem; color: #fff; }

.visually-hidden {
  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;
}

/* ---------- 03. Utilitaires ------------------------------------------- */
.container { max-width: 1180px; }
.container-narrow { max-width: 820px; margin-inline: auto; }

.section        { padding: clamp(3.5rem, 2rem + 5vw, 6.5rem) 0; }
.section--tight { padding: clamp(2.5rem, 1.5rem + 3vw, 4rem) 0; }
.section--sand  { background: var(--mrh-sand); }
.section--mist  { background: var(--mrh-mist); }
.section--navy  { background: var(--mrh-navy-deep); color: #E8EDF3; }
.section--navy h2, .section--navy h3, .section--navy h4 { color: #fff; }
.section--navy .lede { color: #B7C4D2; }
.section--navy a { color: #FFD3B5; }

.section-head { max-width: 44rem; margin-bottom: 2.75rem; }
.section-head--center { margin-inline: auto; text-align: center; }

.rule { height: 1px; background: var(--mrh-line); border: 0; margin: 0; }
.text-accent { color: var(--mrh-accent); }
.text-gold   { color: var(--mrh-gold); }
.text-muted-mrh { color: var(--mrh-muted); }

.badge-mrh {
  display: inline-block;
  font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  padding: .3rem .6rem;
  border-radius: 2px;
  background: var(--mrh-accent-soft);
  color: var(--mrh-accent);
}
.badge-mrh--gold { background: var(--mrh-gold-soft); color: var(--mrh-gold); }
.badge-mrh--blue { background: var(--mrh-blue-soft); color: var(--mrh-blue); }
.badge-mrh--new  { background: var(--mrh-accent); color: #fff; }

/* Apparition douce au défilement.
   Le contenu est visible par défaut : il n'est masqué que si le script a pu
   poser la classe .mrh-js sur <html>. Sans JavaScript, ou si le script échoue,
   la page reste entièrement lisible. */
.reveal { opacity: 1; transform: none; transition: opacity .5s ease, transform .5s ease; }
.mrh-js .reveal { opacity: 0; transform: translateY(14px); }
.mrh-js .reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .mrh-js .reveal { opacity: 1; transform: none; }
}

/* ---------- 04. Boutons ----------------------------------------------- */
.btn-mrh {
  display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
  font-family: var(--mrh-sans);
  font-size: .9375rem; font-weight: 600; line-height: 1.2;
  padding: .85rem 1.6rem;
  border-radius: var(--mrh-radius);
  border: 1px solid transparent;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.btn-mrh:hover { transform: translateY(-1px); }
.btn-mrh:active { transform: none; }

.btn-mrh--primary { background: var(--mrh-accent); color: #fff; }
.btn-mrh--primary:hover { background: #A94A11; color: #fff; box-shadow: var(--mrh-shadow-md); }

.btn-mrh--navy { background: var(--mrh-navy); color: #fff; }
.btn-mrh--navy:hover { background: var(--mrh-navy-deep); color: #fff; box-shadow: var(--mrh-shadow-md); }

.btn-mrh--gold { background: var(--mrh-gold); color: #fff; }
.btn-mrh--gold:hover { background: #6F551A; color: #fff; box-shadow: var(--mrh-shadow-md); }

.btn-mrh--outline { background: transparent; color: var(--mrh-navy); border-color: var(--mrh-line-strong); }
.btn-mrh--outline:hover { background: var(--mrh-ink); border-color: var(--mrh-ink); color: #fff; }

.btn-mrh--ghost-light { background: transparent; color: #fff; border-color: rgba(255,255,255,.45); }
.btn-mrh--ghost-light:hover { background: rgba(255,255,255,.12); border-color: #fff; color: #fff; }

.btn-mrh--sm { padding: .55rem 1rem; font-size: .875rem; }
.btn-mrh--lg { padding: 1rem 2rem; font-size: 1rem; }

.link-arrow {
  display: inline-flex; align-items: center; gap: .45rem;
  font-weight: 600; font-size: .9375rem;
  color: var(--mrh-blue);
  text-decoration: none;
}
.link-arrow::after { content: "\2192"; transition: transform .18s ease; }
.link-arrow:hover { color: var(--mrh-navy); }
.link-arrow:hover::after { transform: translateX(3px); }

/* ---------- 05. En-tête / navigation ---------------------------------- */
.mrh-header {
  position: fixed; inset: 0 0 auto 0; z-index: 1030;
  background: rgba(255,255,255,.97);
  backdrop-filter: saturate(180%) blur(8px);
  border-bottom: 1px solid var(--mrh-line);
  transition: box-shadow .2s ease;
}
.mrh-header.is-scrolled { box-shadow: var(--mrh-shadow-sm); }

.mrh-header .navbar { padding: 0; min-height: var(--mrh-header-h); }

.mrh-brand {
  display: inline-flex; align-items: center; gap: .65rem;
  font-family: var(--mrh-serif);
  font-size: 1.5rem; font-weight: 700; letter-spacing: -.02em;
  color: var(--mrh-ink); text-decoration: none;
}
.mrh-brand:hover { color: var(--mrh-ink); }
.mrh-brand span { color: var(--mrh-accent); }
.mrh-brand small {
  display: block;
  font-family: var(--mrh-sans);
  font-size: .625rem; font-weight: 600; letter-spacing: .14em;
  text-transform: uppercase; color: var(--mrh-muted-light);
  margin-top: -2px;
}

.mrh-nav .nav-link {
  font-size: .9375rem; font-weight: 500;
  color: var(--mrh-ink);
  padding: .6rem .85rem;
  border-radius: var(--mrh-radius);
}
.mrh-nav .nav-link:hover,
.mrh-nav .nav-link:focus { color: var(--mrh-accent); background: var(--mrh-sand); }
.mrh-nav .nav-link.is-active { color: var(--mrh-accent); font-weight: 600; }

.mrh-nav .dropdown-menu {
  border: 1px solid var(--mrh-line);
  border-radius: var(--mrh-radius-lg);
  box-shadow: var(--mrh-shadow-md);
  padding: .5rem;
  margin-top: .35rem;
  min-width: 19rem;
}
.mrh-nav .dropdown-item {
  border-radius: var(--mrh-radius);
  padding: .6rem .75rem;
  white-space: normal;
}
.mrh-nav .dropdown-item:hover,
.mrh-nav .dropdown-item:focus { background: var(--mrh-sand); color: var(--mrh-ink); }
.mrh-nav .dropdown-item strong { display: block; font-size: .9375rem; font-weight: 600; }
.mrh-nav .dropdown-item span   { display: block; font-size: .8125rem; color: var(--mrh-muted); line-height: 1.4; }
.mrh-nav .dropdown-header {
  font-size: .6875rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: var(--mrh-muted-light); padding: .6rem .75rem .35rem;
}
.mrh-nav .dropdown-item-external strong::after {
  content: "\2197"; font-size: .8em; margin-left: .3rem; color: var(--mrh-muted-light);
}

.mrh-header .navbar-toggler {
  border: 1px solid var(--mrh-line-strong);
  border-radius: var(--mrh-radius);
  padding: .45rem .6rem;
}
.mrh-header .navbar-toggler:focus { box-shadow: none; }

.header-cta { margin-left: .5rem; }

/* Fil d'Ariane */
.breadcrumb-mrh {
  font-size: .8125rem; color: var(--mrh-muted);
  padding: 1rem 0 0;
}
.breadcrumb-mrh a { color: var(--mrh-muted); text-decoration: none; }
.breadcrumb-mrh a:hover { color: var(--mrh-accent); text-decoration: underline; }
.breadcrumb-mrh span[aria-current] { color: var(--mrh-ink); font-weight: 500; }
.breadcrumb-mrh li + li::before { content: "/"; padding: 0 .5rem; color: var(--mrh-line-strong); }
.breadcrumb-mrh ol { list-style: none; display: flex; flex-wrap: wrap; margin: 0; padding: 0; }

/* ---------- 06. Hero --------------------------------------------------- */
.hero {
  position: relative;
  background: linear-gradient(155deg, var(--mrh-navy-deep) 0%, var(--mrh-navy) 55%, #0D3559 100%);
  color: #E8EDF3;
  padding: clamp(3.5rem, 2rem + 6vw, 7rem) 0 clamp(3rem, 2rem + 4vw, 5rem);
  overflow: hidden;
}
.hero::after {
  content: ""; position: absolute; right: -12%; top: -30%;
  width: 55vw; height: 130%;
  background: radial-gradient(ellipse at center, rgba(232,114,44,.16) 0%, rgba(232,114,44,0) 62%);
  pointer-events: none;
}
.hero > .container { position: relative; z-index: 1; }
.hero h1 { color: #fff; font-family: var(--mrh-serif); font-weight: 600; letter-spacing: -.02em;
           font-size: clamp(2.15rem, 1.3rem + 3vw, 3.85rem); line-height: 1.1; margin-bottom: 1.25rem; }
.hero .lede { color: #C2CFDD; font-size: 1.1875rem; max-width: 40rem; }
.hero .eyebrow { color: var(--mrh-accent-bright); }

.hero--page { padding: clamp(2.75rem, 2rem + 3vw, 4.5rem) 0; }
.hero--gold { background: linear-gradient(155deg, #1C1608 0%, #33280F 45%, #4A3A17 100%); }
.hero--gold::after { background: radial-gradient(ellipse at center, rgba(176,141,69,.22) 0%, rgba(176,141,69,0) 62%); }
.hero--gold .eyebrow { color: var(--mrh-gold-bright); }

.hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }

.hero-panel {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: var(--mrh-radius-lg);
  padding: 1.75rem;
  backdrop-filter: blur(4px);
}
.hero-panel h2 { font-size: 1rem; color: #fff; font-family: var(--mrh-sans); font-weight: 600; margin-bottom: 1.1rem; }
.hero-panel ul { list-style: none; padding: 0; margin: 0; }
.hero-panel li { display: flex; gap: .7rem; padding: .55rem 0; color: #CBD7E4; font-size: .9375rem; border-top: 1px solid rgba(255,255,255,.09); }
.hero-panel li:first-child { border-top: 0; }
.hero-panel li i { color: var(--mrh-accent-bright); margin-top: .25rem; }

/* Bandeau de preuve sous le hero */
.trustbar { background: var(--mrh-ink); color: #A9B7C6; padding: 1.1rem 0; }
.trustbar ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 1rem 2.5rem; justify-content: center; }
.trustbar li { display: flex; align-items: center; gap: .55rem; font-size: .8125rem; letter-spacing: .04em; }
.trustbar i { color: var(--mrh-accent-bright); }

/* ---------- 07. Sections & cartes -------------------------------------- */
.card-mrh {
  background: #fff;
  border: 1px solid var(--mrh-line);
  border-radius: var(--mrh-radius-lg);
  padding: 1.85rem;
  height: 100%;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.card-mrh:hover { border-color: var(--mrh-line-strong); box-shadow: var(--mrh-shadow-md); transform: translateY(-2px); }
.card-mrh h3 { font-size: 1.125rem; margin-bottom: .6rem; }
.card-mrh p:last-child { margin-bottom: 0; }
.card-mrh .card-icon {
  width: 44px; height: 44px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: var(--mrh-radius);
  background: var(--mrh-accent-soft); color: var(--mrh-accent);
  font-size: 1.05rem; margin-bottom: 1.1rem;
}
.card-mrh--gold .card-icon { background: var(--mrh-gold-soft); color: var(--mrh-gold); }
.card-mrh--blue .card-icon { background: var(--mrh-blue-soft); color: var(--mrh-blue); }
.card-mrh--flat { background: var(--mrh-sand); border-color: transparent; }
.card-mrh--feature { border-top: 3px solid var(--mrh-accent); }

.card-list { list-style: none; padding: 0; margin: 1rem 0 0; }
.card-list li { position: relative; padding-left: 1.5rem; margin-bottom: .5rem; font-size: .9375rem; color: var(--mrh-muted); }
.card-list li::before {
  content: "\f00c"; font-family: "Font Awesome 6 Free"; font-weight: 900;
  position: absolute; left: 0; top: .1rem; font-size: .75rem; color: var(--mrh-ok);
}
.card-list--dash li::before { content: "\2013"; font-family: var(--mrh-sans); color: var(--mrh-accent); font-weight: 700; }

/* Piliers numérotés */
.pillar { display: flex; gap: 1.25rem; }
.pillar-num {
  flex: 0 0 auto;
  font-family: var(--mrh-serif); font-size: 1.5rem; font-weight: 600;
  color: var(--mrh-accent);
  width: 2.75rem; height: 2.75rem;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid var(--mrh-line); border-radius: 50%;
}
.pillar h3 { font-size: 1.0625rem; margin-bottom: .4rem; }
.pillar p { font-size: .9375rem; color: var(--mrh-muted); margin-bottom: 0; }

/* Statistiques */
.stat { text-align: center; padding: 1.25rem .5rem; }
.stat-value {
  font-family: var(--mrh-serif); font-weight: 700;
  font-size: clamp(2rem, 1.4rem + 2vw, 2.9rem);
  line-height: 1; color: var(--mrh-navy); display: block;
}
.section--navy .stat-value { color: #fff; }
.stat-label { display: block; margin-top: .6rem; font-size: .875rem; color: var(--mrh-muted); }
.section--navy .stat-label { color: #A9B7C6; }
.stat-grid { border-top: 1px solid var(--mrh-line); border-bottom: 1px solid var(--mrh-line); }
.stat-grid > [class*="col"] + [class*="col"] { border-left: 1px solid var(--mrh-line); }
.section--navy .stat-grid,
.section--navy .stat-grid > [class*="col"] + [class*="col"] { border-color: rgba(255,255,255,.12); }

/* Étapes / méthodologie */
.steps { counter-reset: step; list-style: none; padding: 0; margin: 0; }
.steps li { counter-increment: step; position: relative; padding: 0 0 2rem 3.5rem; }
.steps li::before {
  content: counter(step, decimal-leading-zero);
  position: absolute; left: 0; top: 0;
  font-family: var(--mrh-serif); font-size: 1.05rem; font-weight: 600; color: var(--mrh-accent);
  width: 2.4rem; height: 2.4rem; border: 1px solid var(--mrh-line); border-radius: 50%;
  display: flex; align-items: center; justify-content: center; background: #fff;
}
.steps li::after {
  content: ""; position: absolute; left: 1.2rem; top: 2.6rem; bottom: .3rem;
  width: 1px; background: var(--mrh-line);
}
.steps li:last-child { padding-bottom: 0; }
.steps li:last-child::after { display: none; }
.steps h3 { font-size: 1.0625rem; margin-bottom: .35rem; }
.steps p { font-size: .9375rem; color: var(--mrh-muted); margin-bottom: 0; }

/* Cartes d'offre / formules */
.offer-card {
  background: #fff; border: 1px solid var(--mrh-line); border-radius: var(--mrh-radius-lg);
  display: flex; flex-direction: column; height: 100%; overflow: hidden;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.offer-card:hover { box-shadow: var(--mrh-shadow-md); transform: translateY(-3px); }
.offer-card--highlight { border-color: var(--mrh-accent); box-shadow: var(--mrh-shadow-md); }
.offer-card__flag {
  background: var(--mrh-accent); color: #fff;
  font-size: .6875rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  text-align: center; padding: .45rem;
}
.offer-card__head { padding: 1.75rem 1.75rem 1.25rem; border-bottom: 1px solid var(--mrh-line); }
.offer-card__name { font-family: var(--mrh-serif); font-size: 1.55rem; font-weight: 600; margin-bottom: .2rem; }
.offer-card__tag { font-size: .875rem; color: var(--mrh-accent); font-weight: 600; margin-bottom: .75rem; }
.offer-card__for { font-size: .9375rem; color: var(--mrh-muted); margin: 0; }
.offer-card__price { font-family: var(--mrh-serif); font-size: 2rem; font-weight: 700; color: var(--mrh-navy); line-height: 1; margin: .85rem 0 .2rem; }
.offer-card__price small { font-family: var(--mrh-sans); font-size: .8125rem; font-weight: 500; color: var(--mrh-muted); }
.offer-card__body { padding: 1.5rem 1.75rem; flex: 1 1 auto; }
.offer-card__body > p.inherit { font-size: .8125rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--mrh-muted-light); margin-bottom: .9rem; }
.offer-card__foot { padding: 0 1.75rem 1.75rem; }
.offer-card__foot .btn-mrh { width: 100%; }

.feature-toggle {
  display: flex; align-items: flex-start; gap: .6rem;
  width: 100%; text-align: left; background: none; border: 0; padding: .5rem 0;
  font-size: .9375rem; font-weight: 500; color: var(--mrh-ink); cursor: pointer;
}
.feature-toggle i.tick { color: var(--mrh-ok); font-size: .8rem; margin-top: .35rem; flex: 0 0 auto; }
.feature-toggle .chev { margin-left: auto; color: var(--mrh-muted-light); font-size: .7rem; transition: transform .2s ease; }
.feature-toggle[aria-expanded="true"] .chev { transform: rotate(180deg); }
.feature-detail { font-size: .875rem; color: var(--mrh-muted); padding: 0 0 .75rem 1.4rem; margin: 0; }

/* Cartes pôle du groupe */
.pole-card { position: relative; overflow: hidden; }
.pole-card__kicker { font-size: .6875rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--mrh-muted-light); }
.pole-card__name { font-family: var(--mrh-serif); font-size: 1.6rem; font-weight: 600; margin: .35rem 0 .1rem; }
.pole-card__role { font-size: .9375rem; font-weight: 600; color: var(--mrh-accent); margin-bottom: .9rem; }

/* Équipe */
.person { text-align: center; }
.person img {
  width: 132px; height: 132px; object-fit: cover; border-radius: 50%;
  border: 3px solid #fff; box-shadow: var(--mrh-shadow-sm); margin-bottom: 1rem;
}
.person h3 { font-size: 1.0625rem; margin-bottom: .1rem; }
.person .role { font-size: .8125rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--mrh-accent); margin-bottom: .65rem; }
.person p { font-size: .9375rem; color: var(--mrh-muted); }

/* ---------- 08. Tableaux ---------------------------------------------- */
.table-wrap { overflow-x: auto; border: 1px solid var(--mrh-line); border-radius: var(--mrh-radius-lg); background: #fff; }
.table-mrh { width: 100%; border-collapse: collapse; font-size: .9rem; min-width: 780px; margin: 0; }
.table-mrh th, .table-mrh td { padding: .85rem 1rem; text-align: center; border-bottom: 1px solid var(--mrh-line); }
.table-mrh thead th {
  background: var(--mrh-navy-deep); color: #fff; font-size: .75rem; font-weight: 600;
  letter-spacing: .07em; text-transform: uppercase; position: sticky; top: 0;
}
.table-mrh tbody th { text-align: left; font-weight: 500; color: var(--mrh-ink); background: var(--mrh-sand); }
.table-mrh tbody tr:hover td { background: #FCFBFA; }
.table-mrh .yes { color: var(--mrh-ok); font-weight: 700; }
.table-mrh .opt { color: var(--mrh-warn); font-weight: 700; }
.table-legend { font-size: .8125rem; color: var(--mrh-muted); margin-top: .85rem; }

/* ---------- 09. Accordéons -------------------------------------------- */
.accordion-mrh .accordion-item { border: 0; border-bottom: 1px solid var(--mrh-line); background: transparent; }
.accordion-mrh .accordion-button {
  font-family: var(--mrh-sans); font-size: 1.0625rem; font-weight: 600; color: var(--mrh-ink);
  background: transparent; padding: 1.15rem 2.5rem 1.15rem 0; box-shadow: none;
}
.accordion-mrh .accordion-button:not(.collapsed) { color: var(--mrh-accent); background: transparent; }
.accordion-mrh .accordion-button:focus { box-shadow: none; }
.accordion-mrh .accordion-button::after { margin-left: auto; }
.accordion-mrh .accordion-body { padding: 0 0 1.4rem; color: var(--mrh-muted); font-size: .9688rem; }
.accordion-mrh .accordion-body ul { padding-left: 1.15rem; }
.accordion-mrh .accordion-body li { margin-bottom: .35rem; }

.faq-group { margin-bottom: 3rem; }
.faq-group__title {
  font-family: var(--mrh-serif); font-size: 1.45rem; font-weight: 600;
  padding-bottom: .75rem; border-bottom: 2px solid var(--mrh-ink); margin-bottom: .5rem;
}

/* ---------- 10. Témoignages ------------------------------------------- */
.quote {
  background: #fff; border: 1px solid var(--mrh-line); border-radius: var(--mrh-radius-lg);
  padding: 1.85rem; height: 100%; display: flex; flex-direction: column;
}
.quote__mark { font-family: var(--mrh-serif); font-size: 2.5rem; line-height: 1; color: var(--mrh-accent); opacity: .35; margin-bottom: .35rem; }
.quote__text { font-size: .9688rem; color: var(--mrh-ink); flex: 1 1 auto; }
.quote__author { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--mrh-line); }
.quote__author strong { display: block; font-size: .9375rem; }
.quote__author span { font-size: .8125rem; color: var(--mrh-muted); }

/* ---------- 11. Bandeaux CTA ------------------------------------------ */
.cta-band {
  background: linear-gradient(135deg, var(--mrh-navy-deep) 0%, var(--mrh-navy) 100%);
  color: #fff; padding: clamp(3rem, 2rem + 3vw, 4.75rem) 0;
}
.cta-band h2 { font-family: var(--mrh-serif); font-size: clamp(1.7rem, 1.2rem + 1.7vw, 2.4rem); color: #fff; margin-bottom: .85rem; }
.cta-band p { color: #C2CFDD; max-width: 46rem; }
.cta-band--gold { background: linear-gradient(135deg, #241C0A 0%, #4A3A17 100%); }

.cta-inline {
  border: 1px solid var(--mrh-line); border-left: 3px solid var(--mrh-accent);
  border-radius: var(--mrh-radius); background: var(--mrh-sand);
  padding: 1.5rem 1.75rem;
}
.cta-inline p { margin-bottom: 0; color: var(--mrh-muted); font-size: .9375rem; }
.cta-inline h3 { font-size: 1.0625rem; margin-bottom: .35rem; }

/* ---------- 12. Formulaires ------------------------------------------- */
.form-mrh label { font-size: .875rem; font-weight: 600; color: var(--mrh-ink); margin-bottom: .35rem; display: block; }
.form-mrh .req { color: var(--mrh-accent); }
.form-mrh .form-control,
.form-mrh .form-select {
  border: 1px solid var(--mrh-line-strong); border-radius: var(--mrh-radius);
  padding: .7rem .9rem; font-size: .9375rem; color: var(--mrh-ink); background: #fff;
}
.form-mrh .form-control:focus,
.form-mrh .form-select:focus { border-color: var(--mrh-accent); box-shadow: 0 0 0 3px rgba(232,114,44,.16); }
.form-mrh .form-text { font-size: .8125rem; color: var(--mrh-muted); }
.form-mrh fieldset { border: 0; padding: 0; margin: 0 0 1.5rem; }
.form-mrh legend {
  font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--mrh-muted-light); margin-bottom: 1rem; float: none; width: auto;
}
.form-status { margin-top: 1rem; font-size: .9375rem; border-radius: var(--mrh-radius); padding: .85rem 1rem; display: none; }
.form-status.is-ok   { display: block; background: #EAF6EF; color: #14603A; border: 1px solid #BFE3CE; }
.form-status.is-err  { display: block; background: #FCEEEE; color: #8B1C1C; border: 1px solid #F0C9C9; }

.form-panel {
  background: #fff; border: 1px solid var(--mrh-line); border-radius: var(--mrh-radius-lg);
  padding: clamp(1.5rem, 1rem + 2vw, 2.5rem); box-shadow: var(--mrh-shadow-sm);
}

/* ---------- 13. Pied de page ------------------------------------------ */
.mrh-footer { background: var(--mrh-navy-deep); color: #9FB0C2; padding: clamp(3rem, 2rem + 3vw, 4.5rem) 0 0; font-size: .9375rem; }
.mrh-footer a { color: #C6D3E1; text-decoration: none; }
.mrh-footer a:hover { color: #fff; text-decoration: underline; }
.mrh-footer h2, .mrh-footer h3 { color: #fff; }
.mrh-footer .footer-brand { font-family: var(--mrh-serif); font-size: 1.4rem; font-weight: 700; color: #fff; }
.mrh-footer .footer-brand span { color: var(--mrh-accent-bright); }
.mrh-footer .footer-title {
  font-family: var(--mrh-sans); font-size: .6875rem; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: #7C8DA0; margin-bottom: 1rem;
}
.mrh-footer ul { list-style: none; padding: 0; margin: 0; }
.mrh-footer ul li { margin-bottom: .55rem; }
.mrh-footer .footer-contact li { display: flex; gap: .65rem; align-items: flex-start; }
.mrh-footer .footer-contact i { color: var(--mrh-accent-bright); margin-top: .3rem; }
.mrh-footer .footer-bottom {
  margin-top: 2.75rem; padding: 1.5rem 0; border-top: 1px solid rgba(255,255,255,.1);
  font-size: .8125rem; color: #7C8DA0;
}
.mrh-footer .footer-legal { display: flex; flex-wrap: wrap; gap: .35rem 1.25rem; }
.mrh-footer .footer-legal button {
  background: none; border: 0; padding: 0; color: #C6D3E1; font: inherit; cursor: pointer; text-decoration: none;
}
.mrh-footer .footer-legal button:hover { color: #fff; text-decoration: underline; }

/* ---------- 14. Cookies ------------------------------------------------ */
#cookie-banner {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 1080;
  background: #fff; border-top: 3px solid var(--mrh-accent);
  box-shadow: 0 -8px 32px rgba(11,31,53,.16);
  padding: 1.25rem 0;
}
#cookie-banner .cookie-inner { max-width: 1180px; margin-inline: auto; padding: 0 1rem;
  display: flex; flex-wrap: wrap; gap: 1rem 2rem; align-items: center; justify-content: space-between; }
#cookie-banner p { margin: 0; font-size: .875rem; color: var(--mrh-muted); max-width: 60ch; }
#cookie-banner .cookie-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.cookie-btn {
  font-size: .875rem; font-weight: 600; padding: .6rem 1.1rem;
  border-radius: var(--mrh-radius); border: 1px solid var(--mrh-line-strong);
  background: #fff; color: var(--mrh-ink); cursor: pointer;
}
.cookie-btn-accept { background: var(--mrh-accent); border-color: var(--mrh-accent); color: #fff; }
.cookie-btn-accept:hover { background: #A94A11; }
.cookie-btn:hover { border-color: var(--mrh-ink); }

/* ---------- 15. Zone IA Act ------------------------------------------- */
.ia-zone { --mrh-accent: var(--mrh-gold); --mrh-accent-bright: var(--mrh-gold-bright); --mrh-accent-soft: var(--mrh-gold-soft); }
.ia-zone .card-mrh--feature { border-top-color: var(--mrh-gold); }

.axis {
  border: 1px solid var(--mrh-line); border-radius: var(--mrh-radius-lg);
  background: #fff; overflow: hidden; margin-bottom: 1.5rem;
}
.axis__head {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: .35rem 1rem;
  padding: 1.5rem 1.75rem 1.15rem; border-bottom: 1px solid var(--mrh-line); background: var(--mrh-sand);
}
.axis__num {
  font-family: var(--mrh-serif); font-size: .8125rem; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: var(--mrh-gold);
}
.axis__title { font-family: var(--mrh-serif); font-size: 1.35rem; font-weight: 600; margin: 0; width: 100%; }
.axis__goal { font-size: .9375rem; color: var(--mrh-muted); margin: .35rem 0 0; width: 100%; }
.axis__body { padding: 1.5rem 1.75rem; }
.axis__body dl { margin: 0; }
.axis__body dt { font-size: .9688rem; font-weight: 600; color: var(--mrh-ink); margin-top: 1.1rem; }
.axis__body dt:first-child { margin-top: 0; }
.axis__body dd { font-size: .9375rem; color: var(--mrh-muted); margin: .2rem 0 0; }
.axis__deliverables {
  margin-top: 1.5rem; padding: 1rem 1.25rem;
  background: var(--mrh-gold-soft); border-radius: var(--mrh-radius); font-size: .9063rem;
}
.axis__deliverables strong { display: block; font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: var(--mrh-gold); margin-bottom: .35rem; }

.risk-scale { display: grid; grid-template-columns: repeat(4, 1fr); gap: .5rem; margin: 1.5rem 0; }
.risk-scale div { padding: .85rem .75rem; border-radius: var(--mrh-radius); text-align: center; font-size: .8125rem; font-weight: 600; }
.risk-1 { background: #FBE9E9; color: #8B1C1C; }
.risk-2 { background: #FCF0E2; color: #8A5510; }
.risk-3 { background: #FBF7E4; color: #6F6415; }
.risk-4 { background: #EAF3EC; color: #1B5B39; }

/* ---------- 16. Legacy (compat. pages non refondues) ------------------- */
/* Ces règles conservent un rendu cohérent sur les pages qui utilisent encore
   l'ancien balisage (simulateur, articles de blog). */
.text-orange { color: var(--mrh-accent) !important; }
.text-mrh-primary { color: var(--mrh-navy) !important; }
.bg-mrh-primary { background-color: var(--mrh-navy) !important; }
.section-title {
  font-family: var(--mrh-serif); font-weight: 600; letter-spacing: -.015em;
  font-size: clamp(1.65rem, 1.2rem + 1.6vw, 2.4rem); margin-bottom: 1.5rem;
}
.cta-section { background: linear-gradient(135deg, var(--mrh-navy-deep) 0%, var(--mrh-navy) 100%); color: #fff; padding: clamp(3rem,2rem + 3vw,4.75rem) 0; text-align: center; }
.cta-section h2 { color: #fff; font-family: var(--mrh-serif); }
.cta-section .lead { color: #C2CFDD; }
.simulator-header { background: linear-gradient(155deg, var(--mrh-navy-deep) 0%, var(--mrh-navy) 100%); color: #fff; padding: clamp(2.75rem,2rem + 3vw,4.5rem) 0; }
.simulator-header h1 { color: #fff; font-family: var(--mrh-serif); }
.btn-toggle-detail { padding: 0; background: none; border: none; color: var(--mrh-blue); margin-left: .5rem; cursor: pointer; display: inline-flex; align-items: center; }
.btn-toggle-detail[aria-expanded="true"] .toggle-icon { transform: rotate(180deg); transition: transform .3s ease; }


/* Hero du blog (page conservee, remise a la charte) */
.blog-hero {
  background: linear-gradient(155deg, var(--mrh-navy-deep) 0%, var(--mrh-navy) 55%, #0D3559 100%) !important;
  color: #E8EDF3;
  padding: clamp(2.75rem, 2rem + 3vw, 4.5rem) 0 !important;
}
.blog-hero h1 {
  font-family: var(--mrh-serif); color: #fff !important;
  font-size: clamp(2rem, 1.3rem + 2.4vw, 3.1rem); line-height: 1.12;
}
.blog-hero p { color: #C2CFDD !important; font-size: 1.0625rem; }

/* ---------- 17. Responsive -------------------------------------------- */
@media (max-width: 991.98px) {
  :root { --mrh-header-h: 68px; }
  .mrh-header .navbar-collapse {
    background: #fff; border-top: 1px solid var(--mrh-line);
    margin: 0 -12px; padding: 1rem 12px 1.5rem;
    max-height: calc(100vh - var(--mrh-header-h)); overflow-y: auto;
  }
  .mrh-nav .nav-link { padding: .7rem .25rem; border-bottom: 1px solid var(--mrh-line); border-radius: 0; }
  .mrh-nav .dropdown-menu { border: 0; box-shadow: none; padding: .25rem 0 .75rem .75rem; margin: 0; }
  .header-cta { margin: 1rem 0 0; display: block; }
  .header-cta .btn-mrh { width: 100%; }
  .stat-grid > [class*="col"] + [class*="col"] { border-left: 0; }
  .hero-panel { margin-top: 2rem; }
}

@media (max-width: 767.98px) {
  body { font-size: 1rem; }
  .risk-scale { grid-template-columns: repeat(2, 1fr); }
  .trustbar ul { gap: .65rem 1.5rem; }
  .hero-actions .btn-mrh { width: 100%; }
  .axis__head, .axis__body { padding-left: 1.15rem; padding-right: 1.15rem; }
  .card-mrh { padding: 1.4rem; }
}

@media print {
  .mrh-header, .mrh-footer, #cookie-banner, .cta-band, .skip-link { display: none !important; }
  body { padding-top: 0; }
}
