/* Plateforme EXPERDOSE — feuille de style du site public.
   Aucune étape de compilation : ce fichier est servi tel quel. */

:root {
  --navy: #002C51;
  --navy-deep: #001A31;
  --navy-soft: #24486B;
  --orange: #FF9600;
  --orange-ink: #9A5700;      /* orange lisible sur fond clair */
  --ink: #1B2B3A;
  --muted: #51606F;
  --line: #D5DCE4;
  --tint: #F6F8FB;
  --white: #FFFFFF;
  --radius: 12px;
  --wrap: 1480px;
  --masthead: 116px;          /* barre supérieure (44 px) + en-tête (72 px), fixées en haut */
  --hero-h: 460px;            /* hauteur commune des bandeaux de page */
  --shadow: 0 6px 24px rgba(0, 44, 81, .08);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; color-scheme: light; }   /* v5 §10 « Lisibilité … y compris en mode sombre » : le site n'a pas de thème sombre, il force le rendu clair pour que les contrôles du navigateur ne basculent pas sur un utilisateur en thème sombre. */
body { margin: 0; font-family: 'Montserrat', system-ui, -apple-system, 'Segoe UI', sans-serif; font-size: 16px; line-height: 1.6; color: var(--ink); background: var(--white); }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--navy); }
h1, h2, h3, h4 { color: var(--navy); margin: 0; text-wrap: balance; }
/* v5 §10, « Tailles de texte — une seule taille par niveau, sur tout le site ». L'échelle se lit sur
   l'élément, jamais dans un style écrit en dur sur une vue : posée ici, elle vaut pour toutes les pages,
   et le bloc « Petits écrans » plus bas porte la colonne « Téléphone » du tableau. */
h2 { font-size: 36px; line-height: 1.2; font-weight: 700; }   /* Titre de section : 36 px, 26 px sur téléphone */
h3 { font-size: 20px; line-height: 1.3; font-weight: 700; }   /* Titre de carte ou de bloc : 20 px, 18 px */
p { margin: 0 0 1em; }
ul { padding-left: 1.2em; }
:focus-visible { outline: 3px solid var(--orange); outline-offset: 2px; }
.wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 clamp(16px, 2.4vw, 32px); }
html { scroll-padding-top: calc(var(--masthead) + 16px); }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: -999px; top: 8px; background: var(--white); padding: 10px 14px; border-radius: 8px; z-index: 100; }
.skip:focus { left: 8px; }

/* ── Boutons ─────────────────────────────────────────── */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 11px 22px; border-radius: 10px; border: 2px solid var(--orange); background: var(--orange); color: var(--navy); font-family: inherit; font-size: 15px; font-weight: 700; line-height: 1.2; text-decoration: none; cursor: pointer; transition: transform .15s, box-shadow .15s, background .15s; }
.btn:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(255, 150, 0, .3); }
.btn--ghost { background: transparent; border-color: var(--navy); color: var(--navy); }
.btn--ghost:hover { background: var(--navy); color: var(--white); box-shadow: none; }
.on-dark .btn--ghost { border-color: var(--white); color: var(--white); }
.on-dark .btn--ghost:hover { background: var(--white); color: var(--navy); }
/* v5 §10, « Boutons … Mêmes dimensions sur tout le site » : une variante plus petite était un second
   bouton, avec sa hauteur, son remplissage et son corps de lettre à elle. Elle n'existe plus. */
.btn--block { width: 100%; }
.actions { display: flex; flex-wrap: wrap; gap: 12px; }
.actions--center { justify-content: center; margin-top: 32px; }

/* ── En-tête ─────────────────────────────────────────── */
/* ── Barre supérieure et en-tête : un seul bloc fixé en haut pendant le défilement ── */
.masthead { position: sticky; top: 0; z-index: 40; transition: box-shadow .25s; }
.masthead.is-scrolled { box-shadow: 0 10px 30px -18px rgba(0, 26, 49, .45); }

/* Barre supérieure : l'allure de l'ancien site, onglets orange pleins et capitales. */
.topbar { background: var(--navy); color: var(--white); font-size: 11px; font-weight: 700; line-height: 1; letter-spacing: .08em; text-transform: uppercase; }
.topbar .wrap { display: flex; justify-content: space-between; align-items: stretch; gap: 16px; height: 44px; }
.topbar a { color: inherit; text-decoration: none; }
.topbar__group { display: flex; align-items: stretch; }
.topbar__tab, .topbar__item { display: flex; align-items: center; gap: 8px; padding: 0 18px; white-space: nowrap; transition: background .2s, color .2s; }
.topbar__tab { font-weight: 800; }
.topbar__tab:hover, .topbar__item:hover { background: rgba(255, 255, 255, .08); }
.topbar__tab[aria-current]:not(.topbar__tab--accent) { box-shadow: inset 0 -3px 0 var(--orange); }
.topbar__tab--accent { background: var(--orange); color: var(--white); }
.topbar__tab--accent:hover, .topbar__tab--accent[aria-current] { background: #E58600; }
.topbar__group--links .topbar__tab:first-child { margin-left: -18px; }
.topbar__group:last-child .topbar__tab--accent:last-child { margin-right: -18px; }
.topbar__item { font-size: 12px; letter-spacing: .02em; }
.topbar svg { width: 15px; height: 15px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.lang { gap: 6px; }
.lang a { opacity: .65; }
.lang a:hover, .lang a[aria-current] { opacity: 1; color: var(--orange); }

.header { background: rgba(255, 255, 255, .97); -webkit-backdrop-filter: saturate(1.4) blur(10px); backdrop-filter: saturate(1.4) blur(10px); border-bottom: 1px solid var(--line); }
.header .wrap { display: flex; align-items: center; gap: 24px; min-height: 72px; }
.brand { font-weight: 800; font-style: italic; font-size: 22px; letter-spacing: -.01em; color: var(--navy); text-decoration: none; margin-right: auto; display: inline-flex; align-items: center; flex-shrink: 0; transition: opacity .2s ease; }
.brand:hover { opacity: .88; }
.brand img { height: 30px; width: auto; max-width: 255px; object-fit: contain; display: block; }
.nav { display: flex; align-items: center; gap: 20px; }
.nav a { font-size: 15px; font-weight: 600; text-decoration: none; padding: 6px 0; border-bottom: 2px solid transparent; white-space: nowrap; }
.nav a:not(.cta):hover, .nav a:not(.cta)[aria-current] { color: var(--orange-ink); border-color: var(--orange); }

/* « Prendre rendez-vous » : le bouton principal de l'en-tête, orange, avec son agenda. */
.nav .cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-left: 6px;
  padding: 6px 20px 6px 6px;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(180deg, #FFAA2E, var(--orange));
  color: var(--navy);
  font-weight: 800;
  box-shadow: 0 10px 22px -10px rgba(255, 150, 0, .85), inset 0 1px 0 rgba(255, 255, 255, .4);
  transition: transform .2s, box-shadow .2s;
}
.nav .cta:hover, .nav .cta[aria-current] { transform: translateY(-2px); color: var(--navy); box-shadow: 0 16px 28px -12px rgba(255, 150, 0, .95), inset 0 1px 0 rgba(255, 255, 255, .4); }
.cta__icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--navy); color: var(--orange); transition: transform .3s; }
.cta__icon svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.nav .cta:hover .cta__icon { transform: rotate(-8deg) scale(1.05); }
.nav__extra { display: none; }
.burger { display: none; width: 46px; height: 46px; border: 1px solid var(--line); border-radius: 10px; background: var(--white); cursor: pointer; }
.burger span { display: block; width: 20px; height: 2px; margin: 4px auto; background: var(--navy); }

/* ── Bandeau d'en-tête de page ───────────────────────── */
/* Tous les bandeaux de page ont la même hauteur ; leur contenu se centre dans cette hauteur. Le diaporama de l'Accueil garde la sienne (plein écran). */
.hero { position: relative; background: var(--navy); color: var(--white); overflow: hidden; display: flex; flex-direction: column; justify-content: center; min-height: var(--hero-h); }
.hero > .wrap { width: 100%; position: relative; z-index: 2; }
.hero__media { position: absolute; inset: 0; background: var(--navy-soft) center / cover no-repeat; z-index: 0; }
.hero__media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, var(--navy) 0%, rgba(0, 44, 81, .94) 42%, rgba(0, 44, 81, .25) 78%, rgba(0, 44, 81, 0) 100%); z-index: 1; }
/* Motif d'ingénierie & blueprint : grille de micro-points géométriques */
.hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255, 255, 255, .15) 1.2px, transparent 1.2px);
  background-size: 28px 28px;
  -webkit-mask-image: radial-gradient(ellipse 70% 80% at 80% 40%, black 15%, transparent 75%);
  mask-image: radial-gradient(ellipse 70% 80% at 80% 40%, black 15%, transparent 75%);
  pointer-events: none;
  z-index: 1;
}
/* Motif en filigrane : cercles de dosage & axes de visée stratégique */
.hero__media::before {
  content: '';
  position: absolute;
  right: -60px;
  top: 50%;
  transform: translateY(-50%);
  width: 520px;
  height: 520px;
  background-image: url("data:image/svg+xml,%3Csvg width='520' height='520' viewBox='0 0 520 520' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='260' cy='260' r='240' stroke='%23FFFFFF' stroke-opacity='0.05' stroke-width='1.5' stroke-dasharray='6 6'/%3E%3Ccircle cx='260' cy='260' r='180' stroke='%23FF9600' stroke-opacity='0.12' stroke-width='2'/%3E%3Ccircle cx='260' cy='260' r='120' stroke='%23FFFFFF' stroke-opacity='0.04' stroke-width='1'/%3E%3Ccircle cx='260' cy='260' r='60' stroke='%23FF9600' stroke-opacity='0.08' stroke-width='1.5' stroke-dasharray='4 4'/%3E%3Cline x1='20' y1='260' x2='500' y2='260' stroke='%23FFFFFF' stroke-opacity='0.05' stroke-width='1'/%3E%3Cline x1='260' y1='20' x2='260' y2='500' stroke='%23FFFFFF' stroke-opacity='0.05' stroke-width='1'/%3E%3Cpath d='M90 90 L430 430' stroke='%23FF9600' stroke-opacity='0.08' stroke-width='1' stroke-dasharray='8 8'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  pointer-events: none;
  z-index: 1;
  opacity: .85;
}
.hero .wrap { position: relative; padding-top: 56px; padding-bottom: 56px; }
.hero__text { max-width: 780px; }
.hero__text p { text-align: justify; hyphens: auto; }
.hero h1 { color: var(--white); font-size: 48px; line-height: 1.15; font-weight: 800; margin-bottom: 18px; text-align: left; }
.hero p { font-size: 18px; line-height: 1.5; color: #DCE6F0; margin-bottom: 28px; }
/* Fiche sans bandeau (produit de la Boutique, outil de la Boîte à outils) : son titre de haut de page
   emprunte le niveau « titre de section » de §10 — 36 px, 26 px sur téléphone — au lieu d'écrire sa taille
   en dur dans la vue. §10 veut pourtant un bandeau « sur toutes les pages » : consigné (V33). */
.sheet__title { font-size: 36px; line-height: 1.2; font-weight: 700; }
.crumbs { font-size: 14px; line-height: 1.5; color: #C9D6E4; margin-bottom: 14px; }   /* §10 « texte secondaire » : 14 px, interligne 1,5 */
.crumbs a { color: inherit; }
.slider {
  position: relative;
  display: grid;
  grid-template-areas: "slide";
  align-items: stretch;
  overflow: hidden;
}
.slide {
  grid-area: slide;
  display: flex;
  flex-direction: column;
  width: 100%;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .6s ease-in-out, visibility .6s ease-in-out;
  z-index: 0;
}
.slide.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  z-index: 1;
}
.slider > .hero {
  grid-area: slide;
}
.slider .hero {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 580px;
}
/* Le diaporama occupe tout l'écran sous les deux bandes fixées, comme sur l'ancien site. */
@media (min-width: 761px) {
  /* min-height et non height : dans la diapositive (flex), flex-basis l'emporterait sur height. */
  .slider .hero {
    min-height: max(560px, calc(100vh - var(--masthead)));
    min-height: max(560px, calc(100svh - var(--masthead)));
  }
}
.slider .hero::before {
  content: '';
  position: absolute;
  top: -15%;
  right: -5%;
  width: 550px;
  height: 550px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 150, 0, .14) 0%, rgba(0, 44, 81, 0) 70%);
  pointer-events: none;
  z-index: 1;
}
.slider .hero .wrap {
  width: 100%;
}
.hero__badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 6px 16px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .1);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, .2);
  color: var(--orange);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  margin-bottom: 20px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, .15);
}
.badge-dot {
  position: relative;
  display: flex;
  width: 8px;
  height: 8px;
}
.badge-dot__ping {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: var(--orange);
  opacity: .75;
  animation: badge-ping 1.8s cubic-bezier(0, 0, 0.2, 1) infinite;
}
.badge-dot::after {
  content: '';
  position: relative;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--orange);
}
@keyframes badge-ping {
  75%, 100% { transform: scale(2.2); opacity: 0; }
}
.slider__nav {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 28px;
  z-index: 10;
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: var(--wrap);
  margin: 0 auto;
  padding: 0 clamp(20px, 3.5vw, 40px);
  pointer-events: none;
}
.slider__dots {
  display: flex;
  align-items: center;
  gap: 8px;
  pointer-events: auto;
}
.slider__dots button {
  width: 26px;
  height: 6px;
  border: 0;
  border-radius: 4px;
  background: rgba(255, 255, 255, .35);
  cursor: pointer;
  padding: 0;
  transition: all .3s cubic-bezier(.25, .8, .25, 1);
}
.slider__dots button[aria-selected='true'] {
  width: 48px;
  background: var(--orange);
  box-shadow: 0 0 12px rgba(255, 150, 0, .6);
}
.slider__arrows {
  margin-right: 78px;   /* laisse la place au bouton rond flottant (WhatsApp), fixé en bas à droite */
  display: flex;
  align-items: center;
  gap: 10px;
  pointer-events: auto;
}
.slider__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, .25);
  background: rgba(0, 44, 81, .45);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: var(--white);
  cursor: pointer;
  transition: all .2s ease;
}
.slider__arrow:hover {
  background: var(--orange);
  border-color: var(--orange);
  color: var(--navy);
  transform: scale(1.08);
}

/* ── Sections ────────────────────────────────────────── */
.section { padding: 80px 0; }
.section--tint { background: var(--tint); }
.section__head { text-align: center; max-width: 860px; margin: 0 auto 44px; }
.section__head p { font-size: 18px; line-height: 1.5; color: var(--muted); margin: 12px 0 0; }   /* §10 « sous-titre de section » : 18 px, 16 px sur téléphone */
.grid { display: grid; gap: 24px; }
.grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; align-items: center; }
.lead { font-size: 18px; line-height: 1.5; color: var(--muted); }
.note { font-size: 14px; line-height: 1.5; color: var(--muted); }   /* §10 « texte secondaire (dates, légendes, mentions) » */
.center { text-align: center; }
.stack > * + * { margin-top: 16px; }

/* ── Cartes ──────────────────────────────────────────── */
.card { display: flex; flex-direction: column; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 24px; }
.card--link { text-decoration: none; transition: transform .15s, box-shadow .15s, border-color .15s; }
.card--link:hover { transform: translateY(-3px); box-shadow: var(--shadow); border-color: var(--orange); }
.card h3 { margin-bottom: 8px; }   /* niveau « titre de carte ou de bloc » : 20 px, 18 px sur téléphone */
.card p { color: var(--muted); margin-bottom: 0; }
.card ul { color: var(--muted); margin: 10px 0 0; }
.card__foot { margin-top: auto; padding-top: 18px; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.card--dark { background: var(--navy); border-color: var(--navy); color: var(--white); }
.card--dark h3 { color: var(--white); }
.card--dark p { color: #DCE6F0; }
.media { aspect-ratio: 16 / 9; border-radius: 10px; margin-bottom: 18px; background: #DCE4EE center / cover no-repeat; display: flex; align-items: center; justify-content: center; color: var(--muted); font-size: 14px; overflow: hidden; }
.media img { width: 100%; height: 100%; object-fit: cover; }
.media--square { aspect-ratio: 1; }
.media--tall { aspect-ratio: 4 / 3; margin-bottom: 0; }
.tag { display: inline-block; align-self: flex-start; font-size: 13px; font-weight: 700; border-radius: 999px; padding: 4px 12px; background: #E3ECF6; color: var(--navy); margin-bottom: 12px; }
.tag--accent { background: #FFF1D6; color: #7A4A00; }
.price { font-size: 20px; font-weight: 800; color: var(--orange-ink); }
.price--big { font-size: 32px; }
.duo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.duo a {
  position: relative;
  min-height: 460px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 40px;
  color: var(--white);
  text-decoration: none;
  background: var(--navy-soft) center / cover no-repeat;
  border-radius: calc(var(--radius) + 4px);
  overflow: hidden;
  box-shadow: 0 14px 36px rgba(0, 44, 81, .12);
  border: 1px solid rgba(0, 44, 81, .08);
  transition: transform .25s cubic-bezier(.25, .8, .25, 1), box-shadow .25s ease, border-color .25s ease;
}
.duo a:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 50px rgba(0, 44, 81, .2);
  border-color: var(--orange);
}
.duo a::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 44, 81, .12) 0%, rgba(0, 26, 49, .68) 48%, rgba(0, 26, 49, .96) 100%);
  transition: background .25s ease;
  z-index: 1;
}
.duo a:hover::before {
  background: linear-gradient(180deg, rgba(0, 44, 81, .25) 0%, rgba(0, 26, 49, .75) 48%, rgba(0, 26, 49, .98) 100%);
}
.duo a::after {
  content: '';
  position: absolute;
  top: 20px;
  right: 20px;
  width: 130px;
  height: 130px;
  pointer-events: none;
  opacity: .10;
  transition: opacity .35s ease, transform .35s ease;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  z-index: 1;
}
.duo a:hover::after {
  opacity: .22;
  transform: scale(1.08) rotate(4deg);
}
.duo a:first-child::after {
  background-image: url("data:image/svg+xml,%3Csvg width='160' height='160' viewBox='0 0 160 160' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='80' cy='80' r='70' stroke='%23FF9600' stroke-width='1.5' stroke-dasharray='6 6'/%3E%3Ccircle cx='80' cy='80' r='48' stroke='%23FFFFFF' stroke-width='1'/%3E%3Ccircle cx='80' cy='80' r='24' fill='%23FF9600' fill-opacity='0.25' stroke='%23FF9600' stroke-width='1.5'/%3E%3Cpath d='M80 56 L83 72 L99 80 L83 88 L80 104 L77 88 L61 80 L77 72 Z' fill='%23FF9600'/%3E%3Ccircle cx='80' cy='10' r='5' fill='%23FF9600'/%3E%3Ccircle cx='140' cy='105' r='4' fill='%23FFFFFF'/%3E%3Ccircle cx='25' cy='115' r='3.5' fill='%23FF9600'/%3E%3Cpath d='M40 40 L120 120' stroke='%23FFFFFF' stroke-width='1' stroke-dasharray='4 4'/%3E%3C/svg%3E");
}
.duo a:last-child::after {
  background-image: url("data:image/svg+xml,%3Csvg width='160' height='160' viewBox='0 0 160 160' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolygon points='80,12 142,47 142,117 80,152 18,117 18,47' stroke='%23FFFFFF' stroke-width='1.5' stroke-dasharray='6 4'/%3E%3Cpolygon points='80,34 122,58 122,106 80,130 38,106 38,58' stroke='%23FF9600' stroke-width='1.2'/%3E%3Ccircle cx='80' cy='82' r='22' fill='%23FF9600' fill-opacity='0.15' stroke='%23FF9600' stroke-width='1.5'/%3E%3Cline x1='80' y1='82' x2='98' y2='64' stroke='%23FF9600' stroke-width='2.5' stroke-linecap='round'/%3E%3Ccircle cx='80' cy='82' r='4' fill='%23FF9600'/%3E%3C/svg%3E");
}
.duo a > * { position: relative; z-index: 2; }
.duo h3 { font-size: 26px; font-weight: 800; color: var(--white); margin-bottom: 12px; }
.duo .portal-badge { margin-bottom: 14px; background: rgba(255, 255, 255, .15); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border: 1px solid rgba(255, 255, 255, .25); color: var(--orange); }
.duo p { margin: 0; color: #DCE6F0; }
.duo ul { margin: 0; color: #DCE6F0; font-size: 15px; }
.duo li { margin-bottom: 6px; }
.duo .btn { align-self: flex-start; margin-top: 22px; }
.duo a:hover .btn--ghost { background: var(--orange); border-color: var(--orange); color: var(--navy); }

/* ── Chiffres, étapes, logos, témoignages ────────────── */
.figures { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 24px; text-align: center; }
.figures strong { display: block; font-size: 44px; line-height: 1.1; font-weight: 800; color: var(--orange-ink); }
.figures span { color: var(--muted); }

/* ── Étapes & parcours d'accompagnement (centrés, harmonieux et équilibrés) ── */
.steps {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 32px 28px;
  counter-reset: step;
  list-style: none;
  padding: 0;
  margin: 0 auto;
  max-width: 1120px;
}
.steps li {
  counter-increment: step;
  flex: 1 1 200px;
  max-width: 260px;
  position: relative;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 18px 14px 16px;
  border-radius: 18px;
  border: 1.5px solid transparent;
  transition: transform .28s cubic-bezier(.16, 1, .3, 1), box-shadow .28s cubic-bezier(.16, 1, .3, 1), border-color .28s cubic-bezier(.16, 1, .3, 1), background-color .25s ease;
  cursor: default;
}

/* Couleurs identitaires pour le design de sélection des étapes (Capture 4) */
.steps li:nth-child(1), .steps li.step-item--1 {
  --step-color: #0A4F82;
  --step-glow: rgba(10, 79, 130, .28);
}
.steps li:nth-child(2), .steps li.step-item--2 {
  --step-color: #FF9600;
  --step-glow: rgba(255, 150, 0, .32);
}
.steps li:nth-child(3), .steps li.step-item--3 {
  --step-color: #00A3E0;
  --step-glow: rgba(0, 163, 224, .30);
}
.steps li:nth-child(4), .steps li.step-item--4 {
  --step-color: #008F6B;
  --step-glow: rgba(0, 143, 107, .30);
}
.steps li:nth-child(5), .steps li.step-item--5 {
  --step-color: #8E2B7A;
  --step-glow: rgba(142, 43, 122, .30);
}
.steps li:nth-child(6), .steps li.step-item--6 {
  --step-color: #E08000;
  --step-glow: rgba(224, 128, 0, .30);
}

.steps li:hover {
  transform: translateY(-6px);
  background: var(--white);
  border-color: var(--step-color, var(--orange));
  box-shadow: 0 14px 32px -8px var(--step-glow, rgba(0, 44, 81, .15)), 0 4px 12px rgba(0, 0, 0, .04);
}
.steps li:hover h3 {
  color: var(--step-color, var(--navy));
}
.step-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--navy);
  color: var(--white);
  font-weight: 800;
  font-size: 16px;
  margin: 0 auto 16px auto;
  box-shadow: 0 4px 14px rgba(0, 44, 81, .25);
  transition: transform .25s ease, background .25s ease, box-shadow .25s ease;
  position: relative;
  z-index: 1;
}
.steps li:hover .step-badge {
  background: var(--step-color, var(--orange));
  transform: scale(1.12);
  box-shadow: 0 4px 16px var(--step-glow, rgba(0, 44, 81, .25));
}
.steps li:not(:has(.step-badge)):not(:has(.step-media))::before {
  content: counter(step);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--navy);
  color: var(--white);
  font-weight: 800;
  margin: 0 auto 16px auto;
  box-shadow: 0 4px 14px rgba(0, 44, 81, .25);
  transition: transform .25s ease, background .25s ease, box-shadow .25s ease;
  position: relative;
  z-index: 1;
}
.steps li:not(:has(.step-badge)):not(:has(.step-media)):hover::before {
  background: var(--step-color, var(--orange));
  transform: scale(1.12);
  box-shadow: 0 4px 16px var(--step-glow, rgba(0, 44, 81, .25));
}
.step-media {
  position: relative;
  width: 100%;
  border-radius: var(--radius);
  overflow: hidden;
  margin-bottom: 16px;
  aspect-ratio: 16 / 10;
  box-shadow: 0 4px 16px rgba(0, 44, 81, .08);
  border: 1px solid var(--line);
  background: var(--navy-soft);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.step-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.step-media__badge {
  position: absolute;
  top: 10px;
  left: 10px;
  min-width: 32px;
  height: 32px;
  padding: 0 8px;
  border-radius: 999px;
  background: var(--navy);
  color: var(--white);
  font-weight: 800;
  font-size: 13px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .25);
  border: 2px solid var(--orange);
}
.steps li:hover .step-media {
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(0, 44, 81, .12);
  border-color: rgba(255, 150, 0, .4);
}
@media (min-width: 900px) {
  .steps:not(.steps--with-images) li:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 42px;
    left: calc(50% + 28px);
    right: calc(-50% + 28px);
    height: 2px;
    background: repeating-linear-gradient(90deg, var(--line) 0, var(--line) 6px, transparent 6px, transparent 12px);
    z-index: 0;
  }
}
.steps h3 { margin-bottom: 6px; font-size: 17px; color: var(--navy); }
.steps p { color: var(--muted); margin: 0; font-size: 14px; line-height: 1.5; }

/* Grille des programmes centrée quand elle n'est pas pleine */
.programs-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 24px;
}
.programs-grid > * {
  flex: 0 1 360px;
  max-width: 380px;
  width: 100%;
}

.logos { display: flex; flex-wrap: wrap; justify-content: center; gap: 20px; list-style: none; padding: 0; margin: 0; }
.logos li { flex: 0 1 170px; }
.logos a, .logos span { display: flex; align-items: center; justify-content: center; height: 88px; padding: 14px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); font-weight: 600; font-size: 14px; text-align: center; text-decoration: none; color: var(--navy); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.logos a:hover, .logos span:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0, 44, 81, .06); border-color: rgba(255, 150, 0, .4); }
.logos img { max-height: 56px; width: auto; }

/* ── Témoignages : champ réduit & carrousel à partir de 3/4 ─────────── */
.card.quote, figure.quote {
  position: relative;
  overflow: hidden;
  max-width: 440px;
  width: 100%;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 24px 26px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-shadow: 0 4px 16px rgba(0, 44, 81, .04);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.card.quote:hover, figure.quote:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(0, 44, 81, .1);
  border-color: rgba(255, 150, 0, .4);
}
.testimonials-cluster {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 24px;
  margin: 0 auto;
  max-width: 920px;
}
.testimonials-cluster .card.quote {
  flex: 0 1 420px;
}
.testimonials-slider {
  position: relative;
  width: 100%;
  max-width: 1140px;
  margin: 0 auto;
}
.testimonials-slider__viewport {
  overflow-x: auto;
  overflow-y: hidden;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  padding: 10px 4px 18px;
}
.testimonials-slider__viewport::-webkit-scrollbar {
  display: none;
}
.testimonials-slider__track {
  display: flex;
  gap: 24px;
  width: max-content;
  will-change: transform;
}
.testimonials-slider__item {
  flex: 0 0 380px;
  width: 380px;
  display: flex;
}
.testimonials-slider__item .card.quote {
  width: 100%;
  max-width: 100%;
  height: 100%;
}
.testimonials-slider__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 20px;
}
.testimonials-slider__arrow {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 1px solid var(--line);
  background: var(--white);
  color: var(--navy);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(0, 44, 81, .06);
  transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.testimonials-slider__arrow:hover {
  background: var(--orange);
  border-color: var(--orange);
  color: var(--white);
  transform: scale(1.06);
  box-shadow: 0 6px 16px rgba(255, 150, 0, .28);
}
.testimonials-slider__dots {
  display: flex;
  gap: 8px;
  align-items: center;
}
.testimonials-slider__dots button {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  border: none;
  background: #CBD5E1;
  padding: 0;
  cursor: pointer;
  transition: width .25s ease, background .25s ease;
}
.testimonials-slider__dots button[aria-selected='true'] {
  width: 28px;
  background: var(--orange);
}
@media (max-width: 640px) {
  .testimonials-slider__item {
    flex: 0 0 290px;
    width: 290px;
  }
}
/* Entreprises accompagnées (Boutique) : affichage centré (<=2) ou slider (>2) */
.companies-cluster {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: stretch;
  gap: 24px;
  max-width: 820px;
  margin: 0 auto;
}
.companies-cluster .card {
  flex: 0 1 360px;
  width: 100%;
  max-width: 380px;
  display: flex;
  flex-direction: column;
}
.companies-cluster .card .card__foot {
  margin-top: auto;
}
.companies-slider {
  position: relative;
  width: 100%;
  max-width: 1140px;
  margin: 0 auto;
}
.companies-slider__viewport {
  overflow-x: auto;
  overflow-y: hidden;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  padding: 10px 4px 18px;
}
.companies-slider__viewport::-webkit-scrollbar {
  display: none;
}
.companies-slider__track {
  display: flex;
  gap: 24px;
  width: max-content;
  will-change: transform;
}
.companies-slider__item {
  flex: 0 0 320px;
  width: 320px;
  display: flex;
}
.companies-slider__item .card {
  width: 100%;
  max-width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
}
.companies-slider__item .card .card__foot {
  margin-top: auto;
}
.companies-slider__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 20px;
}
.companies-slider__arrow {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 1px solid var(--line);
  background: var(--white);
  color: var(--navy);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(0, 44, 81, .06);
  transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.companies-slider__arrow:hover {
  background: var(--orange);
  border-color: var(--orange);
  color: var(--white);
  transform: scale(1.06);
  box-shadow: 0 6px 16px rgba(255, 150, 0, .28);
}
.companies-slider__dots {
  display: flex;
  gap: 8px;
  align-items: center;
}
.companies-slider__dots button {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  border: none;
  background: #CBD5E1;
  padding: 0;
  cursor: pointer;
  transition: width .25s ease, background .25s ease;
}
.companies-slider__dots button[aria-selected='true'] {
  width: 28px;
  background: var(--orange);
}
@media (max-width: 640px) {
  .companies-slider__item {
    flex: 0 0 280px;
    width: 280px;
  }
}
.card.quote::after, figure.quote::after {
  content: '';
  position: absolute;
  top: 14px;
  right: 18px;
  width: 48px;
  height: 38px;
  background-image: url("data:image/svg+xml,%3Csvg width='60' height='48' viewBox='0 0 60 48' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14 0 C6.3 0 0 6.3 0 14 C0 21.7 6.3 28 14 28 C16.5 28 18.8 27.3 20.8 26.2 C18.7 33.3 12.3 38.5 4.5 39 C2.6 39.1 1.1 40.7 1.2 42.6 C1.3 44.5 2.9 46 4.8 46 C17.6 45.2 27.6 34.7 27.6 22 L27.6 14 C27.6 6.3 21.5 0 14 0 Z M46 0 C38.3 0 32 6.3 32 14 C32 21.7 38.3 28 46 28 C48.5 28 50.8 27.3 52.8 26.2 C50.7 33.3 44.3 38.5 36.5 39 C34.6 39.1 33.1 40.7 33.2 42.6 C33.3 44.5 34.9 46 36.8 46 C49.6 45.2 59.6 34.7 59.6 22 L59.6 14 C59.6 6.3 53.5 0 46 0 Z' fill='%23002C51' fill-opacity='0.06'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
  pointer-events: none;
}
.quote { margin: 0; }
.quote blockquote { margin: 0 0 16px; color: var(--ink); }
.quote figcaption { display: flex; align-items: center; gap: 12px; font-size: 14px; line-height: 1.5; color: var(--muted); }
.quote figcaption strong { display: block; color: var(--navy); font-size: 16px; }
.avatar { width: 52px; height: 52px; border-radius: 50%; background: #DCE4EE center / cover no-repeat; flex: none; }
.rows { display: grid; gap: 12px; }
.row { display: flex; align-items: center; gap: 16px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 16px 18px; }
.row__main { flex: 1; min-width: 0; }
.row h3 { margin-bottom: 2px; }
.row p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.date { flex: none; width: 66px; height: 66px; border-radius: 10px; background: var(--navy); color: var(--white); display: flex; flex-direction: column; align-items: center; justify-content: center; font-weight: 700; line-height: 1.1; }
.date b { font-size: 22px; }
.date span { font-size: 12px; text-transform: uppercase; }
.chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-bottom: 32px; }
.chip { min-height: 40px; padding: 8px 16px; border: 1px solid #9FB0C3; border-radius: 999px; background: var(--white); color: var(--navy); font-family: inherit; font-size: 14px; font-weight: 600; cursor: pointer; text-decoration: none; }
.chip[aria-pressed='true'], .chip.is-active { background: var(--navy); border-color: var(--navy); color: var(--white); }
.countdown { display: inline-flex; gap: 8px; margin-bottom: 18px; }
.countdown span { background: rgba(255, 255, 255, .12); border-radius: 8px; padding: 6px 10px; font-weight: 700; }
details.faq { border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); padding: 0 20px; }
details.faq + details.faq { margin-top: 12px; }
details.faq summary { cursor: pointer; font-weight: 700; color: var(--navy); padding: 18px 0; list-style: none; display: flex; justify-content: space-between; gap: 16px; }
details.faq summary::after { content: '+'; font-size: 22px; line-height: 1; color: var(--orange-ink); }
details.faq[open] summary::after { content: '–'; }
details.faq div { padding-bottom: 18px; color: var(--muted); }
/* Le lien que l'Admin attache à une réponse se détache du texte, sans ouvrir un second bloc. */
details.faq .faq__foot { margin: 14px 0 0; }
.prose { max-width: 860px; margin: 0 auto; }
.prose h2 { margin: 1.6em 0 .5em; }
.prose h3 { margin: 1.4em 0 .4em; }

/* ── Bandeau final ───────────────────────────────────── */
.band {
  background-color: var(--navy-deep);
  background-image: 
    radial-gradient(circle at 85% 20%, rgba(255, 150, 0, .22) 0%, transparent 45%),
    radial-gradient(circle at 15% 85%, rgba(0, 44, 81, .75) 0%, transparent 60%),
    radial-gradient(rgba(255, 255, 255, .10) 1.2px, transparent 1.2px);
  background-size: 100% 100%, 100% 100%, 30px 30px;
  color: var(--white);
  text-align: center;
  padding: 88px 0;
  position: relative;
  overflow: hidden;
}
.band::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--orange), transparent);
  z-index: 1;
}
.band::after {
  content: '';
  position: absolute;
  right: -50px;
  bottom: -50px;
  width: 340px;
  height: 340px;
  background-image: url("data:image/svg+xml,%3Csvg width='340' height='340' viewBox='0 0 340 340' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='170' cy='170' r='160' stroke='%23FFFFFF' stroke-opacity='0.05' stroke-width='1.5' stroke-dasharray='6 6'/%3E%3Ccircle cx='170' cy='170' r='115' stroke='%23FF9600' stroke-opacity='0.12' stroke-width='1.5'/%3E%3Ccircle cx='170' cy='170' r='70' stroke='%23FFFFFF' stroke-opacity='0.04' stroke-width='1'/%3E%3Cline x1='10' y1='170' x2='330' y2='170' stroke='%23FFFFFF' stroke-opacity='0.04'/%3E%3Cline x1='170' y1='10' x2='170' y2='330' stroke='%23FFFFFF' stroke-opacity='0.04'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
  pointer-events: none;
  z-index: 0;
}
.band > .wrap { position: relative; z-index: 2; }
.band h2 { color: var(--white); font-size: 40px; margin-bottom: 12px; }   /* niveau « titre de section » */
.band p { color: #DCE6F0; font-size: 18px; line-height: 1.5; margin: 12px auto 0; max-width: 620px; }

/* ── Formulaires ─────────────────────────────────────── */
.form { display: grid; gap: 16px; }
.form--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form .full { grid-column: 1 / -1; }
.field label, .field legend { display: block; font-weight: 600; font-size: 14px; color: var(--navy); margin-bottom: 6px; }
.field input, .field select, .field textarea, .quiz-q textarea { width: 100%; min-height: 48px; padding: 11px 14px; border: 1px solid #9FB0C3; border-radius: 10px; background: var(--white); font: inherit; font-size: 16px; color: var(--ink); }
.field textarea { min-height: 120px; resize: vertical; }
.field input[readonly] { background: var(--tint); border-style: dashed; color: var(--navy); }   /* un champ qui ne se change pas doit le voir */
.field small { display: block; margin-top: 4px; color: var(--muted); font-size: 14px; line-height: 1.5; }   /* §10 : une « mention » ne descend pas sous 14 px */
.field .error, .error { color: #B42318; font-size: 14px; margin-top: 4px; }
/* Une case à cocher fait partie du formulaire : sa phrase se lit au corps du texte, jamais plus bas (v5 §10). */
.check { display: flex; gap: 10px; align-items: flex-start; font-size: 16px; color: var(--muted); }
.check input { width: 20px; height: 20px; min-height: 0; margin-top: 2px; flex: none; }
.hp { position: absolute; left: -9999px; }
.alert { border-radius: var(--radius); padding: 16px 20px; margin-bottom: 24px; border: 1px solid #A6D9B8; background: #EEF9F2; color: #0B5A2A; }
.alert--error { border-color: #F3B4AE; background: #FEF3F2; color: #B42318; }
.panel { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 32px; box-shadow: var(--shadow); }
.panel--narrow { max-width: 820px; margin: 0 auto; }
.stepper { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0 0 28px; padding: 0; list-style: none; }
.stepper li { font-size: 14px; font-weight: 600; padding: 6px 12px; border-radius: 999px; border: 1px solid #9FB0C3; color: var(--muted); }
.stepper li.is-current { background: var(--navy); border-color: var(--navy); color: var(--white); }
.stepper li.is-done { border-color: var(--orange); color: var(--orange-ink); }
/* Sans JavaScript, toutes les sections du formulaire restent visibles et s'envoient en une fois. */
.js [data-step] { display: none; }
.js [data-step].is-current { display: block; }
html:not(.js) [data-step] { margin-bottom: 32px !important; }
html:not(.js) [data-next], html:not(.js) [data-prev], html:not(.js) .stepper { display: none; }
.table { width: 100%; border-collapse: collapse; }
.table th, .table td { text-align: left; padding: 12px 10px; border-bottom: 1px solid var(--line); }
.table th { font-size: 14px; line-height: 1.5; color: var(--muted); }
.table-scroll { overflow-x: auto; }

/* ── Pied de page ────────────────────────────────────── */
.footer {
  background-color: var(--navy-deep);
  background-image: 
    radial-gradient(circle at 10% 20%, rgba(255, 150, 0, .05) 0%, transparent 40%),
    radial-gradient(rgba(255, 255, 255, .04) 1px, transparent 1px);
  background-size: 100% 100%, 32px 32px;
  color: #C9D6E4;
  font-size: 13px;
  line-height: 1.5;
  position: relative;
  overflow: hidden;
}
.footer::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--navy) 0%, var(--orange) 50%, var(--navy) 100%);
}
.footer .wrap { position: relative; z-index: 1; display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 40px; padding-top: 56px; padding-bottom: 40px; }
.footer h2 { color: var(--white); font-size: 20px; line-height: 1.3; font-weight: 700; margin-bottom: 14px; }   /* un titre de bloc, pas un titre de section */
.footer a { color: inherit; text-decoration: none; }
.footer a:hover { color: var(--orange); }
.footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.footer .brand { color: var(--white); display: inline-block; margin-bottom: 12px; transition: opacity .2s ease; }
.footer .brand:hover { opacity: .88; }
.footer .brand img { height: 32px; width: auto; max-width: 250px; object-fit: contain; display: block; }
.socials { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.social-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .1);
  border: 1px solid rgba(255, 255, 255, .18);
  color: var(--white);
  transition: all .25s ease;
  text-decoration: none;
}
.social-icon:hover {
  background: var(--orange);
  border-color: var(--orange);
  color: var(--white);
  transform: translateY(-3px);
  box-shadow: 0 6px 16px rgba(255, 150, 0, .4);
}
.social-icon svg {
  display: block;
}
.newsletter { display: grid; gap: 10px; margin-top: 12px; }
.newsletter input[type='email'] { min-height: 46px; padding: 10px 14px; border-radius: 10px; border: 0; background: var(--white); color: var(--ink); font: inherit; font-size: 16px; }   /* §10 : « jamais moins de 16 px pour … les champs de formulaire » ; couleurs dites, pour que le contraste ne dépende pas du thème du navigateur */
.footer__legal { border-top: 1px solid rgba(255, 255, 255, .12); }
.footer__legal .wrap { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding-top: 18px; padding-bottom: 18px; }

/* ── Éléments flottants ──────────────────────────────── */
.float { position: fixed; right: 20px; bottom: 20px; z-index: 45; width: 58px; height: 58px; border-radius: 50%; background: var(--navy); color: var(--orange); display: flex; align-items: center; justify-content: center; box-shadow: 0 8px 24px rgba(0, 0, 0, .25); }
.float--white { color: var(--white); }
.float svg { width: 26px; height: 26px; }
.mobilebar { display: none; }
.popup { position: fixed; inset: 0; z-index: 60; display: none; align-items: center; justify-content: center; padding: 20px; background: rgba(0, 26, 49, .7); }
.popup.is-open { display: flex; }
.popup__box { position: relative; width: 100%; max-width: 520px; max-height: calc(100vh - 40px); overflow: auto; background: var(--white); border-radius: 16px; padding: 28px; }
.popup__close { position: absolute; top: 10px; right: 10px; width: 44px; height: 44px; border: 0; border-radius: 50%; background: var(--tint); font-size: 22px; cursor: pointer; }
.popup h2 { color: var(--navy); font-size: 20px; line-height: 1.3; margin: 8px 0; }   /* niveau « titre de bloc » : une fenêtre n'est pas une section de page */

/* ── Petits écrans ───────────────────────────────────── */
/* Sept entrées et le bouton ne tiennent plus sur une ligne sous 1 320 px : le menu passe en « hamburger ». */
@media (max-width: 1320px) {
  .nav { display: none; position: absolute; left: 0; right: 0; top: 100%; flex-direction: column; align-items: stretch; gap: 0; background: var(--white); border-bottom: 1px solid var(--line); padding: 8px 20px 20px; box-shadow: var(--shadow); max-height: calc(100vh - var(--masthead)); overflow: auto; }
  .nav.is-open { display: flex; }
  .nav a { padding: 12px 0; border-bottom: 0; font-size: 16px; }
  .nav a:not(.cta):hover, .nav a:not(.cta)[aria-current] { border-bottom: 0; }
  .nav .cta { margin: 16px 0 0; justify-content: center; padding: 6px 20px 6px 6px; border-bottom: 0; }
  .nav__extra { display: block; }
  .burger { display: block; }
}
@media (max-width: 1180px) {
  .grid--4, .grid--5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer .wrap { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .feature { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  :root { --masthead: 112px; }
  .brand img { height: 26px; max-width: 215px; }
  .topbar__group--links { display: none; }
  .topbar .wrap { justify-content: flex-end; height: 40px; }
  .topbar__item, .topbar__tab { padding: 0 12px; }
  .topbar__group:last-child .topbar__tab--accent:last-child { margin-right: -12px; }
  :root { --hero-h: 430px; }
  .hero .wrap { padding-top: 44px; padding-bottom: 44px; }
  .slider .hero { min-height: max(440px, calc(100svh - var(--masthead) - 68px)); }
  .hero h1 { font-size: 32px; }
  .hero p, .lead, .section__head p, .band p { font-size: 16px; }
  .btn { font-size: 16px; }   /* §10, colonne « Téléphone » : les boutons montent à 16 px, corps comme champs */
  .footer { font-size: 14px; }   /* §10 : « Barre supérieure et pied de page — 13 px, 14 px » */
  .hero__media::after { background: rgba(0, 44, 81, .88); }
  .section { padding: 56px 0; }
  h2, .sheet__title { font-size: 26px; }   /* colonne « Téléphone » du niveau « titre de section » */
  .footer h2, .popup h2 { font-size: 18px; }
  .grid--2, .grid--3, .split, .duo, .form--2 { grid-template-columns: minmax(0, 1fr); }
  .split { gap: 28px; }
  .duo { gap: 20px; }
  .duo a { min-height: 360px; padding: 28px 24px; }
  h3 { font-size: 18px; }   /* colonne « Téléphone » du niveau « titre de carte ou de bloc » */
  .figures strong { font-size: 34px; }
  .row { flex-wrap: wrap; }
  .panel { padding: 22px; }
  .footer .wrap { grid-template-columns: minmax(0, 1fr); gap: 28px; padding-bottom: 96px; }
  .float { bottom: 82px; }
  .mobilebar .btn { padding-inline: 12px; white-space: nowrap; font-size: 15px; }
  .mobilebar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 44; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 10px 12px; background: var(--white); border-top: 1px solid var(--line); }
  body { padding-bottom: 68px; }
}
@media (max-width: 460px) {
  .grid--4, .grid--5 { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; scroll-behavior: auto !important; }
}

/* ── Compléments ─────────────────────────────────────── */
.hero .tag { margin-right: 6px; }
.media--empty { background: linear-gradient(135deg, #E3ECF6 0%, #CBD9E8 100%); color: var(--navy-soft); font-weight: 700; padding: 12px; text-align: center; }
.bento { display: grid; grid-template-columns: 1.8fr 1.2fr; gap: 24px; }
.bento__main {
  grid-row: span 2;
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  padding: 36px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 320px;
  box-shadow: 0 12px 32px rgba(0, 44, 81, .15);
  border: 1px solid rgba(255, 255, 255, .1);
}
.bento__main::before {
  content: '';
  position: absolute;
  inset: 16px;
  border: 1px dashed rgba(255, 255, 255, .15);
  border-radius: calc(var(--radius) - 4px);
  pointer-events: none;
  z-index: 1;
}
.bento__main .bento__content {
  position: relative;
  z-index: 2;
}
.bento__main h3 {
  font-size: 26px;
  color: var(--white);
  margin-bottom: 10px;
}
.bento__main p {
  color: #DCE6F0;
  font-size: 15px;
  line-height: 1.6;
  max-width: 500px;
  margin: 0;
}
.bento__card {
  position: relative;
  overflow: hidden;
  padding: 28px;
  border-radius: var(--radius);
  border: 1px solid var(--line);
  background: var(--white);
  box-shadow: 0 8px 24px rgba(0, 44, 81, .05);
  display: flex;
  flex-direction: column;
  justify-content: center;
  transition: transform .2s ease, box-shadow .2s ease;
}
.bento__card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 36px rgba(0, 44, 81, .1);
}
.bento__card:not(.bento__card--orange)::after {
  content: '';
  position: absolute;
  right: -15px;
  top: -15px;
  width: 120px;
  height: 120px;
  background-image: url("data:image/svg+xml,%3Csvg width='120' height='120' viewBox='0 0 120 120' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M30 0 L120 90 M60 0 L120 60 M90 0 L120 30 M10 0 L120 110' stroke='%23002C51' stroke-opacity='0.05' stroke-width='1.5' stroke-dasharray='4 4'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
  pointer-events: none;
}
.bento__card--orange {
  background: linear-gradient(135deg, #FF9600 0%, #E67A00 100%);
  border-color: #E67A00;
  color: var(--white);
}
.bento__card--orange::after {
  content: '';
  position: absolute;
  right: -25px;
  bottom: -25px;
  width: 170px;
  height: 170px;
  background-image: url("data:image/svg+xml,%3Csvg width='180' height='180' viewBox='0 0 180 180' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='140' cy='140' r='130' stroke='%23FFFFFF' stroke-opacity='0.16' stroke-width='1.5'/%3E%3Ccircle cx='140' cy='140' r='95' stroke='%23FFFFFF' stroke-opacity='0.22' stroke-width='1.5' stroke-dasharray='6 6'/%3E%3Ccircle cx='140' cy='140' r='60' stroke='%23FFFFFF' stroke-opacity='0.28' stroke-width='2'/%3E%3Ccircle cx='140' cy='140' r='28' stroke='%23FFFFFF' stroke-opacity='0.35' stroke-width='2' stroke-dasharray='4 4'/%3E%3Ccircle cx='140' cy='140' r='10' fill='%23FFFFFF' fill-opacity='0.4'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
  pointer-events: none;
}
.bento__card--orange h3 {
  color: var(--white);
}
.bento__card--orange p {
  color: #FFF2DF;
}
.bento__icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 14px;
}
.bento__icon--navy {
  background: rgba(0, 44, 81, .08);
  color: var(--navy);
}
.bento__icon--white {
  background: rgba(255, 255, 255, .25);
  color: var(--white);
}
.bento__main .bento__icon {
  background: rgba(255, 255, 255, .2);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: var(--orange);
}

/* ── Portes d'entrée (Incubateur vs Cabinet) ──────────── */
.card--portal {
  position: relative;
  padding: 32px;
  border: 1px solid var(--line);
  border-radius: calc(var(--radius) + 2px);
  background: var(--white);
  box-shadow: 0 10px 30px rgba(0, 44, 81, .06);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  overflow: hidden;
}
.card--portal::after {
  content: '';
  position: absolute;
  top: 16px;
  right: 16px;
  width: 130px;
  height: 130px;
  pointer-events: none;
  opacity: .06;
  transition: opacity .35s ease, transform .35s ease;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  z-index: 0;
}
.card--portal:hover::after {
  opacity: .14;
  transform: scale(1.08) rotate(4deg);
}
.card--portal-incubator::after,
.card--portal:first-child::after {
  background-image: url("data:image/svg+xml,%3Csvg width='160' height='160' viewBox='0 0 160 160' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='80' cy='80' r='70' stroke='%23FF9600' stroke-width='1.5' stroke-dasharray='6 6'/%3E%3Ccircle cx='80' cy='80' r='48' stroke='%23002C51' stroke-width='1'/%3E%3Ccircle cx='80' cy='80' r='24' fill='%23FF9600' fill-opacity='0.15' stroke='%23FF9600' stroke-width='1.5'/%3E%3Cpath d='M80 56 L83 72 L99 80 L83 88 L80 104 L77 88 L61 80 L77 72 Z' fill='%23FF9600'/%3E%3Ccircle cx='80' cy='10' r='5' fill='%23FF9600'/%3E%3Ccircle cx='140' cy='105' r='4' fill='%23002C51'/%3E%3Ccircle cx='25' cy='115' r='3.5' fill='%23FF9600'/%3E%3Cpath d='M40 40 L120 120' stroke='%23002C51' stroke-width='1' stroke-dasharray='4 4'/%3E%3C/svg%3E");
}
.card--portal-cabinet::after,
.card--portal:last-child::after {
  background-image: url("data:image/svg+xml,%3Csvg width='160' height='160' viewBox='0 0 160 160' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolygon points='80,12 142,47 142,117 80,152 18,117 18,47' stroke='%23002C51' stroke-width='1.5' stroke-dasharray='6 4'/%3E%3Cpolygon points='80,34 122,58 122,106 80,130 38,106 38,58' stroke='%23FF9600' stroke-width='1.2'/%3E%3Ccircle cx='80' cy='82' r='22' fill='%23002C51' fill-opacity='0.08' stroke='%23002C51' stroke-width='1.5'/%3E%3Cline x1='80' y1='82' x2='98' y2='64' stroke='%23FF9600' stroke-width='2.5' stroke-linecap='round'/%3E%3Ccircle cx='80' cy='82' r='4' fill='%23FF9600'/%3E%3C/svg%3E");
}
.card--portal:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 45px rgba(0, 44, 81, .12);
  border-color: var(--orange);
}
.card--portal .media {
  aspect-ratio: 16 / 9;
  border-radius: var(--radius);
  margin-bottom: 20px;
  overflow: hidden;
}
.card--portal .media img {
  transition: transform .5s cubic-bezier(.25, .8, .25, 1);
}
.card--portal:hover .media img {
  transform: scale(1.05);
}
.portal-badge {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--orange-ink);
  background: #FFF1D6;
  padding: 4px 10px;
  border-radius: 6px;
  margin-bottom: 12px;
  width: fit-content;
}
.card--portal h3 {
  font-size: 24px;
  margin-bottom: 12px;
  color: var(--navy);
}
.card--portal ul {
  list-style: none;
  padding-left: 0;
  margin: 16px 0 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.card--portal li {
  position: relative;
  padding-left: 24px;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.5;
}
.card--portal li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 5px;
  width: 14px;
  height: 14px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FF9600' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") no-repeat center / contain;
}
.btn .btn__arrow {
  margin-left: 4px;
  transition: transform .2s ease;
}
.btn:hover .btn__arrow {
  transform: translateX(4px);
}

/* ── Portes d'entrée Financement (Option A : Cartes images côte à côte) ── */
.duo--doors {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
  align-items: stretch;
}

.card--door {
  position: relative;
  min-height: 480px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 40px 36px 36px;
  color: var(--white);
  border-radius: calc(var(--radius) + 4px);
  overflow: hidden;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border: 1px solid rgba(255, 255, 255, .15);
  box-shadow: 0 16px 40px rgba(0, 44, 81, .14);
  transition: transform .35s cubic-bezier(.25, .8, .25, 1), box-shadow .35s ease, border-color .35s ease;
  cursor: pointer;
}

/* Fond sombre en dégradé pour garantir un contraste parfait du texte */
.card--door::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 26, 49, .20) 0%, rgba(0, 26, 49, .68) 45%, rgba(0, 26, 49, .96) 100%);
  transition: background .35s ease;
  z-index: 1;
}

.card--door:hover::before,
.card--door:focus-within::before {
  background: linear-gradient(180deg, rgba(0, 26, 49, .10) 0%, rgba(0, 26, 49, .76) 40%, rgba(0, 18, 36, .98) 100%);
}

/* Filigrane géométrique distinctif pour chaque porte */
.card--door::after {
  content: '';
  position: absolute;
  top: 24px;
  right: 24px;
  width: 140px;
  height: 140px;
  pointer-events: none;
  opacity: .10;
  transition: opacity .35s ease, transform .35s ease;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  z-index: 1;
}

.card--door:hover::after,
.card--door:focus-within::after {
  opacity: .22;
  transform: scale(1.08) rotate(4deg);
}

/* Porte 1 : PBF (Porteur de projet / Financement recherché) */
.card--door-pbf {
  border-top: 4px solid var(--orange);
}
.card--door-pbf::after {
  background-image: url("data:image/svg+xml,%3Csvg width='160' height='160' viewBox='0 0 160 160' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='80' cy='80' r='70' stroke='%23FF9600' stroke-width='1.5' stroke-dasharray='6 6'/%3E%3Ccircle cx='80' cy='80' r='48' stroke='%23FFFFFF' stroke-width='1'/%3E%3Ccircle cx='80' cy='80' r='24' fill='%23FF9600' fill-opacity='0.25' stroke='%23FF9600' stroke-width='1.5'/%3E%3Cpath d='M80 56 L83 72 L99 80 L83 88 L80 104 L77 88 L61 80 L77 72 Z' fill='%23FF9600'/%3E%3Ccircle cx='80' cy='10' r='5' fill='%23FF9600'/%3E%3Ccircle cx='140' cy='105' r='4' fill='%23FFFFFF'/%3E%3Ccircle cx='25' cy='115' r='3.5' fill='%23FF9600'/%3E%3Cpath d='M40 40 L120 120' stroke='%23FFFFFF' stroke-width='1' stroke-dasharray='4 4'/%3E%3C/svg%3E");
}
.card--door-pbf .portal-badge {
  background: rgba(255, 150, 0, .20);
  border: 1px solid rgba(255, 150, 0, .45);
  color: #FFAE19;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}

/* Porte 2 : PCF (Investisseur / Partenaire financier) */
.card--door-pcf {
  border-top: 4px solid #00B4D8;
}
.card--door-pcf::after {
  background-image: url("data:image/svg+xml,%3Csvg width='160' height='160' viewBox='0 0 160 160' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolygon points='80,12 142,47 142,117 80,152 18,117 18,47' stroke='%23FFFFFF' stroke-width='1.5' stroke-dasharray='6 4'/%3E%3Cpolygon points='80,34 122,58 122,106 80,130 38,106 38,58' stroke='%2300B4D8' stroke-width='1.2'/%3E%3Ccircle cx='80' cy='82' r='22' fill='%2300B4D8' fill-opacity='0.15' stroke='%2300B4D8' stroke-width='1.5'/%3E%3Cline x1='80' y1='82' x2='98' y2='64' stroke='%2300B4D8' stroke-width='2.5' stroke-linecap='round'/%3E%3Ccircle cx='80' cy='82' r='4' fill='%2300B4D8'/%3E%3C/svg%3E");
}
.card--door-pcf .portal-badge {
  background: rgba(0, 180, 216, .20);
  border: 1px solid rgba(0, 180, 216, .45);
  color: #38BDF8;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}

.card--door:hover {
  transform: translateY(-8px);
  box-shadow: 0 26px 54px rgba(0, 44, 81, .28);
}
.card--door-pbf:hover {
  border-color: var(--orange);
}
.card--door-pcf:hover {
  border-color: #00B4D8;
}

.card--door > * {
  position: relative;
  z-index: 2;
}

.card--door h3 {
  font-size: 28px;
  font-weight: 800;
  line-height: 1.25;
  color: var(--white);
  margin: 0 0 14px;
}

/* Contenu révélé au survol sur grand écran */
.card--door__reveal {
  display: flex;
  flex-direction: column;
}

.card--door p {
  color: #E2E8F0;
  font-size: 16px;
  line-height: 1.5;
  margin: 0 0 16px;
  font-weight: 500;
}

.card--door ul {
  list-style: none;
  padding-left: 0;
  margin: 0 0 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.card--door li {
  position: relative;
  padding-left: 26px;
  color: #CBD5E1;
  font-size: 15px;
  line-height: 1.5;
}

.card--door-pbf li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 4px;
  width: 16px;
  height: 16px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FF9600' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") no-repeat center / contain;
}

.card--door-pcf li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 4px;
  width: 16px;
  height: 16px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300B4D8' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") no-repeat center / contain;
}

.card--door .card__foot {
  margin-top: auto;
  padding-top: 4px;
}

.card--door .btn {
  width: 100%;
  justify-content: center;
  font-weight: 700;
  font-size: 16px;
  padding: 14px 24px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, .25);
  transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}

.card--door-pbf .btn {
  background: var(--orange);
  border-color: var(--orange);
  color: var(--navy);
}
.card--door-pbf .btn:hover {
  background: #E58700;
  border-color: #E58700;
  color: var(--navy);
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(255, 150, 0, .35);
}

.card--door-pcf .btn {
  background: #00B4D8;
  border-color: #00B4D8;
  color: var(--navy);
}
.card--door-pcf .btn:hover {
  background: #0096B4;
  border-color: #0096B4;
  color: var(--white);
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(0, 180, 216, .35);
}

.card--door__hint {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: rgba(255, 255, 255, .7);
  font-size: 14px;
  font-weight: 600;
  margin-top: 8px;
  transition: opacity .25s ease, transform .25s ease;
  pointer-events: none;
}
.card--door__hint svg {
  animation: bounceDown 1.8s infinite;
}

@keyframes bounceDown {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(4px); }
}

/* Comportement dynamique au survol sur grands écrans avec souris (pointer: fine) */
@media (min-width: 901px) and (hover: hover) {
  .card--door {
    min-height: 440px;
    justify-content: flex-end;
  }
  .card--door__reveal {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transform: translateY(14px);
    transition: max-height .4s cubic-bezier(.25, .8, .25, 1), opacity .35s ease, transform .35s ease;
  }
  .card--door:hover .card--door__reveal,
  .card--door:focus-within .card--door__reveal {
    max-height: 420px;
    opacity: 1;
    transform: translateY(0);
  }
  .card--door:hover .card--door__hint,
  .card--door:focus-within .card--door__hint {
    opacity: 0;
    transform: translateY(8px);
    pointer-events: none;
  }
}

/* Sur écrans tactiles ou mobiles : tout est accessible en permanence */
@media (hover: none), (max-width: 900px) {
  .duo--doors {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
  }
  .card--door {
    min-height: auto;
    padding: 30px 24px 28px;
  }
  .card--door__reveal {
    max-height: none;
    opacity: 1;
    transform: none;
    overflow: visible;
  }
  .card--door__hint {
    display: none;
  }
}

/* ── Qui sommes-nous & Highlights ────────────────────── */
.media-frame {
  position: relative;
}
.media-frame__backdrop {
  position: absolute;
  inset: -12px;
  border-radius: calc(var(--radius) + 6px);
  background-color: var(--tint);
  background-image: 
    radial-gradient(rgba(255, 150, 0, .35) 1.5px, transparent 1.5px),
    linear-gradient(135deg, rgba(255, 150, 0, .25), rgba(0, 44, 81, .15));
  background-size: 14px 14px, 100% 100%;
  transform: rotate(-2.5deg);
  z-index: 0;
}
.media-frame .media {
  position: relative;
  z-index: 1;
  border-radius: var(--radius);
  box-shadow: 0 16px 36px rgba(0, 44, 81, .14);
}
.section-tag {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--orange-ink);
  margin-bottom: 6px;
}
.highlights-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
  margin: 16px 0;
}
.highlight-item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: 0 4px 16px rgba(0, 44, 81, .03);
}
.highlight-item__icon {
  flex: none;
  width: 42px;
  height: 42px;
  border-radius: 10px;
  background: rgba(0, 44, 81, .08);
  color: var(--navy);
  display: flex;
  align-items: center;
  justify-content: center;
}
.highlight-item__icon--orange {
  background: #FFF1D6;
  color: var(--orange-ink);
}
.highlight-item strong {
  display: block;
  font-size: 15px;
  color: var(--navy);
  margin-bottom: 2px;
}
.highlight-item span {
  display: block;
  font-size: 13px;
  color: var(--muted);
  line-height: 1.4;
}
.figures-banner {
  margin-top: 56px;
  padding: 40px 32px;
  background-color: var(--navy);
  background-image: 
    radial-gradient(circle at 90% 40%, rgba(255, 150, 0, .18) 0%, transparent 60%),
    radial-gradient(rgba(255, 255, 255, .08) 1.2px, transparent 1.2px);
  background-size: 100% 100%, 24px 24px;
  border-radius: var(--radius);
  color: var(--white);
  box-shadow: 0 20px 48px -12px rgba(0, 26, 49, .35);
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .08);
}
.figures-banner::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--orange), transparent);
}
.figures-banner::after {
  content: '';
  position: absolute;
  right: -20px;
  bottom: -40px;
  width: 240px;
  height: 240px;
  background-image: url("data:image/svg+xml,%3Csvg width='240' height='240' viewBox='0 0 240 240' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='120' cy='120' r='110' stroke='%23FFFFFF' stroke-opacity='0.05' stroke-width='1.5' stroke-dasharray='4 4'/%3E%3Ccircle cx='120' cy='120' r='75' stroke='%23FF9600' stroke-opacity='0.15' stroke-width='1.5'/%3E%3Ccircle cx='120' cy='120' r='40' stroke='%23FFFFFF' stroke-opacity='0.04' stroke-width='1'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
  pointer-events: none;
}
.figures-banner .figures strong {
  color: var(--orange);
  font-size: 46px;
  font-weight: 800;
  line-height: 1.1;
  text-shadow: 0 2px 10px rgba(0, 0, 0, .2);
}
.figures-banner .figures span {
  color: #DCE6F0;
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
}

/* ── Offres du Cabinet ───────────────────────────────── */
.card--offer {
  padding: 28px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
  box-shadow: 0 6px 20px rgba(0, 44, 81, .04);
  transition: all .25s ease;
}
.card--offer:hover {
  transform: translateY(-5px);
  box-shadow: 0 16px 36px rgba(0, 44, 81, .1);
  border-color: var(--orange);
}
.card--offer__icon {
  width: 52px;
  height: 52px;
  border-radius: 12px;
  background: rgba(0, 44, 81, .06);
  color: var(--navy);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
  transition: all .25s ease;
}
.card--offer:hover .card--offer__icon {
  background: var(--orange);
  color: var(--white);
  transform: scale(1.08);
}
.card--offer h3 {
  font-size: 20px;
  margin-bottom: 12px;
}
.card--offer ul {
  list-style: none;
  padding-left: 0;
  margin: 12px 0 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.card--offer li {
  position: relative;
  padding-left: 20px;
  color: var(--muted);
  font-size: 14px;
}
.card--offer li::before {
  content: '•';
  position: absolute;
  left: 4px;
  top: -1px;
  color: var(--orange);
  font-size: 18px;
}
.callout--capsule {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin: 32px auto 0;
  max-width: 760px;
  padding: 12px 24px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 999px;
  box-shadow: 0 4px 16px rgba(0, 44, 81, .04);
  font-size: 15px;
  text-align: center;
}
.callout--capsule a {
  color: var(--navy);
  text-decoration: underline;
  text-underline-offset: 4px;
}
.callout--capsule a:hover {
  color: var(--orange-ink);
}

/* ── Processus d'accompagnement ──────────────────────── */
.card--process {
  position: relative;
  overflow: hidden;
  padding: 32px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
  box-shadow: 0 8px 24px rgba(0, 44, 81, .05);
}
.card--process:first-child::after {
  content: '01';
  position: absolute;
  top: 14px;
  right: 20px;
  font-size: 56px;
  font-weight: 800;
  color: var(--navy);
  opacity: .05;
  line-height: 1;
  pointer-events: none;
}
.card--process:last-child::after {
  content: '02';
  position: absolute;
  top: 14px;
  right: 20px;
  font-size: 56px;
  font-weight: 800;
  color: var(--navy);
  opacity: .05;
  line-height: 1;
  pointer-events: none;
}
.card--process__head {
  position: relative;
  z-index: 1;
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--line);
}
.process-pill {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--orange-ink);
  background: #FFF1D6;
  padding: 3px 10px;
  border-radius: 6px;
  margin-bottom: 8px;
}
.process-steps {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.process-steps::before {
  content: '';
  position: absolute;
  left: 15px;
  top: 18px;
  bottom: 24px;
  width: 2px;
  background: repeating-linear-gradient(180deg, var(--line) 0, var(--line) 6px, transparent 6px, transparent 12px);
  z-index: 0;
}
.process-step {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: flex-start;
  gap: 14px;
}
.process-step__num {
  flex: none;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(0, 44, 81, .08);
  color: var(--navy);
  font-weight: 700;
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all .2s ease;
  box-shadow: 0 0 0 4px var(--white);
}
.card--process:hover .process-step__num {
  background: var(--navy);
  color: var(--white);
}

/* ── Carte Diagnostic express (Notre Cabinet) ───────── */
.card--diagnostic {
  position: relative;
  overflow: hidden;
  background-color: var(--navy) !important;
  background-image: radial-gradient(circle at 92% 50%, rgba(255, 150, 0, .14) 0%, transparent 60%) !important;
  border: 1px solid rgba(255, 255, 255, .12) !important;
  box-shadow: 0 16px 40px rgba(0, 44, 81, .2) !important;
  padding: 36px;
}
.card--diagnostic::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 5px;
  bottom: 0;
  background: var(--orange);
}
.card--diagnostic::after {
  content: '';
  position: absolute;
  right: -20px;
  top: 50%;
  transform: translateY(-50%);
  width: 220px;
  height: 220px;
  background-image: url("data:image/svg+xml,%3Csvg width='240' height='240' viewBox='0 0 240 240' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='120' cy='120' r='100' stroke='%23FFFFFF' stroke-opacity='0.08' stroke-width='1.5'/%3E%3Ccircle cx='120' cy='120' r='75' stroke='%23FF9600' stroke-opacity='0.22' stroke-width='1.5' stroke-dasharray='5 5'/%3E%3Ccircle cx='120' cy='120' r='50' stroke='%23FFFFFF' stroke-opacity='0.1' stroke-width='1'/%3E%3Ccircle cx='120' cy='120' r='25' stroke='%23FFFFFF' stroke-opacity='0.15' stroke-width='1'/%3E%3Cline x1='20' y1='120' x2='220' y2='120' stroke='%23FFFFFF' stroke-opacity='0.1' stroke-width='1'/%3E%3Cline x1='120' y1='20' x2='120' y2='220' stroke='%23FFFFFF' stroke-opacity='0.1' stroke-width='1'/%3E%3Cline x1='49' y1='49' x2='191' y2='191' stroke='%23FF9600' stroke-opacity='0.15' stroke-width='1' stroke-dasharray='3 3'/%3E%3Ccircle cx='155' cy='85' r='5' fill='%23FF9600' fill-opacity='0.8'/%3E%3Ccircle cx='95' cy='145' r='4' fill='%23FF9600' fill-opacity='0.6'/%3E%3Ccircle cx='140' cy='140' r='4' fill='%23FFFFFF' fill-opacity='0.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
  pointer-events: none;
  opacity: .85;
}
.process-step__text {
  font-size: 15px;
  color: var(--ink);
  line-height: 1.5;
  padding-top: 4px;
}
.feature { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 2.4fr); gap: 24px; align-items: start; }
.feature > .grid:only-child { grid-column: 1 / -1; }
.crumbs a { text-decoration: underline; text-underline-offset: 3px; }
/* Le fil d'Ariane posé sur fond clair (fiches sans bandeau) perd sa couleur héritée du bandeau sombre. */
.section .crumbs { color: var(--muted); margin-bottom: 24px; }
.prose > .card, .prose.card { max-width: 760px; }
.prose img { border-radius: 10px; }
.score { margin-bottom: 20px; }
.score__label { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 6px; color: var(--navy); }
.score__bar { height: 12px; border-radius: 6px; background: #DCE4EE; overflow: hidden; }
.score__bar span { display: block; height: 100%; background: var(--orange); border-radius: 6px; }
details > summary.btn { list-style: none; }
details > summary.btn::-webkit-details-marker { display: none; }
form .actions { align-items: center; }
[hidden] { display: none !important; }
.hero__aside { display: flex; align-items: center; gap: 32px; }
.hero__logo { flex: none; width: 132px; margin-bottom: 0; }
@media (max-width: 760px) {
  .bento, .feature { grid-template-columns: minmax(0, 1fr); }
  .bento__main { min-height: 180px; }
  .hero__aside { flex-direction: column; align-items: flex-start; gap: 20px; }
  .hero__logo { width: 92px; }
}

/* ── Carte « Nos chiffres clés » à cheval sur le bandeau (À Propos) ───────── */
.hero--with-card .wrap { padding-bottom: 116px; }   /* la carte recouvre le bas du bandeau, le texte reste au-dessus */
.keyfig-wrap { position: relative; z-index: 2; margin-top: -84px; }
.keyfig { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); background: var(--white); border-radius: 22px; padding: 30px 12px; box-shadow: 0 24px 50px -24px rgba(0, 26, 49, .35), 0 2px 6px rgba(0, 26, 49, .05); }
.keyfig__item { padding: 4px 30px; }
.keyfig__item + .keyfig__item { border-left: 1px solid var(--line); }
.keyfig__head { display: flex; align-items: center; gap: 10px; margin: 0 0 10px; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.keyfig__head svg { width: 20px; height: 20px; flex: none; color: var(--orange); }
.keyfig__value { margin: 0; font-size: 40px; line-height: 1.1; font-weight: 800; letter-spacing: -.02em; color: var(--navy); }
.keyfig__label { margin: 8px 0 0; font-size: 14px; line-height: 1.5; color: var(--muted); }
.keyfig-wrap + .section { padding-top: 72px; }
.keyfig__item--link {
  text-decoration: none;
  display: block;
  border-radius: 14px;
  transition: transform .2s ease, background-color .2s ease, box-shadow .2s ease;
}
.keyfig__item--link:hover {
  transform: translateY(-3px);
  background: #F0F5FA;
  box-shadow: 0 8px 20px rgba(0, 44, 81, .06);
}
.keyfig__item--link:hover .keyfig__value {
  color: var(--orange-ink);
}
.keyfig__link-arrow {
  margin-left: auto;
  color: var(--orange);
  transition: transform .2s ease;
}
.keyfig__item--link:hover .keyfig__link-arrow {
  transform: translate(2px, -2px);
}
@media (max-width: 760px) {
  .hero--with-card .wrap { padding-bottom: 96px; }
  .keyfig-wrap { margin-top: -64px; }
  /* Deux colonnes : les filets viennent de l'écart de la grille, sur un fond couleur de filet. */
  .keyfig { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; padding: 0; overflow: hidden; border-radius: 18px; background: var(--line); }
  .keyfig__item, .keyfig__item + .keyfig__item { padding: 18px 16px; border: 0; background: var(--white); }
  .keyfig__head { font-size: 11px; letter-spacing: .08em; }
  .keyfig__value { font-size: 32px; }
}

/* ── Cartes Profils Entrepreneuriat (« À qui s'adresse l'Incubateur ? ») ── */
.audience-grid {
  align-items: stretch;
}
.card--profile {
  position: relative;
  border-radius: calc(var(--radius) + 4px);
  padding: 30px 26px 24px;
  display: flex;
  flex-direction: column;
  color: var(--white);
  border: 1px solid rgba(255, 255, 255, .14);
  overflow: hidden;
  box-shadow: 0 12px 30px rgba(0, 44, 81, .14);
  transition: transform .3s cubic-bezier(.25, .8, .25, 1), box-shadow .3s ease, border-color .3s ease;
  min-height: 230px;
  cursor: pointer;
}
.card--profile::before {
  content: '';
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: .12;
  pointer-events: none;
  background-image: radial-gradient(rgba(255, 255, 255, .25) 1px, transparent 1px);
  background-size: 16px 16px;
}
.card--profile:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 42px rgba(0, 44, 81, .28);
}

/* 4 Variantes de couleurs vives et harmonieuses */
.card--profile-1 {
  background: linear-gradient(145deg, #002C51 0%, #001A33 100%);
  border-top: 4px solid #FF9600;
}
.card--profile-2 {
  background: linear-gradient(145deg, #0A4F82 0%, #042E4F 100%);
  border-top: 4px solid #00B4D8;
}
.card--profile-3 {
  background: linear-gradient(145deg, #B85800 0%, #7A3600 100%);
  border-top: 4px solid #FFB703;
}
.card--profile-4 {
  background: linear-gradient(145deg, #4A1D4E 0%, #260B28 100%);
  border-top: 4px solid #E056FD;
}

.card--profile__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 12px;
  background: rgba(255, 255, 255, .15);
  border: 1px solid rgba(255, 255, 255, .25);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .5px;
  margin-bottom: 18px;
  color: var(--white);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}
.card--profile h3 {
  font-size: 21px;
  font-weight: 800;
  color: var(--white);
  line-height: 1.25;
  margin: 0 0 12px;
  transition: transform .25s ease;
}

/* Bloc détails & CTA révélés au survol */
.card--profile__reveal {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transform: translateY(10px);
  transition: max-height .35s cubic-bezier(.25, .8, .25, 1), opacity .3s ease, transform .3s ease;
  display: flex;
  flex-direction: column;
}
.card--profile:hover .card--profile__reveal,
.card--profile:focus-within .card--profile__reveal {
  max-height: 240px;
  opacity: 1;
  transform: translateY(0);
}
.card--profile p {
  color: rgba(255, 255, 255, .90);
  font-size: 15px;
  line-height: 1.6;
  margin-bottom: 16px;
}
.card--profile .card__foot {
  margin-top: auto;
  padding-top: 6px;
}
.card--profile .btn {
  background: var(--white);
  color: var(--navy);
  border-color: var(--white);
  font-weight: 700;
  box-shadow: 0 4px 14px rgba(0, 0, 0, .2);
}
.card--profile .btn:hover {
  background: var(--orange);
  border-color: var(--orange);
  color: var(--white);
}

.card--profile__hint {
  position: absolute;
  bottom: 14px;
  right: 18px;
  color: rgba(255, 255, 255, .55);
  transition: transform .25s ease, opacity .25s ease;
  pointer-events: none;
}
.card--profile:hover .card--profile__hint {
  opacity: 0;
  transform: translateY(6px);
}

/* Écrans tactiles ou mobiles : tout est accessible en permanence */
@media (hover: none), (max-width: 900px) {
  .card--profile {
    min-height: auto;
  }
  .card--profile__reveal {
    max-height: none !important;
    opacity: 1 !important;
    transform: none !important;
    overflow: visible;
  }
  .card--profile__hint {
    display: none;
  }
}

/* ── Formations en ligne : carte, fiche, salle de cours ───────────────────── */
.card--course { padding: 0; overflow: hidden; transition: transform .2s, box-shadow .2s; }
.card--course:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.card--course .media { border-radius: 0; margin: 0; }
.card--course__body { display: flex; flex-direction: column; flex: 1; padding: 22px 24px 24px; }
.card--course__tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.card--course__tags .tag { margin: 0; }
.tag--online { background: var(--navy); color: var(--white); }
.hero .tag--online { background: var(--orange); color: var(--navy); }
.course-meta { display: flex; flex-wrap: wrap; gap: 6px 16px; list-style: none; padding: 0; margin: 14px 0 0; font-size: 14px; color: var(--muted); }
.course-meta li { display: inline-flex; align-items: center; gap: 6px; }
.course-meta svg, .syllabus svg, .classroom svg { width: 16px; height: 16px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.card--course .card__foot { margin-top: auto; padding-top: 18px; }

.enroll { position: sticky; top: calc(var(--masthead) + 20px); }
.enroll .price--big { margin: 4px 0 16px; }
.enroll ul { list-style: none; padding: 0; margin: 0 0 20px; display: grid; gap: 10px; color: var(--muted); }
.enroll li { display: flex; gap: 10px; align-items: flex-start; }
.enroll li::before { content: ''; flex: none; width: 18px; height: 18px; margin-top: 3px; border-radius: 50%; background: #FFF1D6 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239A5700' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12 4 4 8-8'/%3E%3C/svg%3E") center / 12px no-repeat; }
.outcomes { list-style: none; padding: 0; margin: 0 0 28px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 24px; }
.outcomes li { display: flex; gap: 10px; color: var(--ink); }
.outcomes li::before { content: '✓'; flex: none; width: 24px; height: 24px; border-radius: 50%; background: var(--navy); color: var(--orange); font-weight: 800; font-size: 13px; display: grid; place-items: center; }

.progress { height: 10px; border-radius: 999px; background: #DCE4EE; overflow: hidden; }
.progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #FFB547, var(--orange)); transition: width .4s; }
.progress-label { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 8px; font-size: 14px; font-weight: 700; color: var(--navy); }

.syllabus { display: grid; gap: 12px; max-width: 900px; margin: 0 auto; }
.syllabus details { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.syllabus summary { display: flex; align-items: center; gap: 14px; padding: 18px 20px; cursor: pointer; list-style: none; font-weight: 700; color: var(--navy); }
.syllabus summary::-webkit-details-marker { display: none; }
.syllabus summary::after { content: '+'; margin-left: auto; font-size: 22px; font-weight: 400; color: var(--orange-ink); }
.syllabus details[open] summary::after { content: '–'; }
.syllabus__num { flex: none; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: var(--navy); color: var(--orange); font-weight: 800; }
.syllabus__count { font-size: 14px; font-weight: 600; color: var(--muted); }
.syllabus ol { list-style: none; margin: 0; padding: 0 20px 14px; }
.syllabus li { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-top: 1px solid var(--line); color: var(--ink); }
.syllabus li .note { margin-left: auto; white-space: nowrap; }
.syllabus__quiz { color: var(--orange-ink) !important; font-weight: 600; }

.classroom { padding: 32px 0 80px; background: var(--tint); }
.classroom__grid { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 28px; align-items: start; }
.classroom__side { position: sticky; top: calc(var(--masthead) + 16px); max-height: calc(100vh - var(--masthead) - 32px); overflow: auto; background: var(--white); border: 1px solid var(--line); border-radius: 16px; padding: 22px; }
.classroom__side h2 { font-size: 18px; line-height: 1.3; margin-bottom: 16px; }
.classroom__module { margin-top: 20px; }
.classroom__module h3 { font-size: 13px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
.classroom__steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.classroom__steps a { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 10px; font-size: 14px; line-height: 1.35; color: var(--ink); text-decoration: none; }
.classroom__steps a:hover { background: var(--tint); }
.classroom__steps a[aria-current] { background: #FFF1D6; color: var(--navy); font-weight: 700; }
.step-dot { flex: none; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; border: 2px solid #B8C6D6; color: transparent; font-size: 12px; font-weight: 800; }
.step-dot.is-done { border-color: #12A150; background: #12A150; color: var(--white); }
.step-dot.is-pending { border-color: var(--orange); color: var(--orange); }
.classroom__main { background: var(--white); border: 1px solid var(--line); border-radius: 16px; padding: clamp(22px, 3vw, 40px); min-width: 0; }
.classroom__kicker { font-size: 13px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--orange-ink); margin-bottom: 8px; }
.classroom__main h1 { font-size: 32px; line-height: 1.2; margin-bottom: 20px; }
.classroom__nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-top: 36px; padding-top: 24px; border-top: 1px solid var(--line); }
.video { position: relative; aspect-ratio: 16 / 9; border-radius: 12px; overflow: hidden; background: var(--navy); margin-bottom: 24px; }
.video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.doc-frame { width: 100%; height: 640px; border: 1px solid var(--line); border-radius: 12px; margin-bottom: 16px; }
.certificate-box { margin-top: 20px; padding: 16px; border-radius: 12px; background: var(--navy); color: var(--white); }
.certificate-box strong { color: var(--orange); }
.certificate-box .btn { margin-top: 12px; width: 100%; }

.quiz-q { border: 1px solid var(--line); border-radius: 14px; padding: 20px; margin: 0 0 16px; }
.quiz-q legend { padding: 0 6px; font-weight: 700; color: var(--navy); }
.quiz-q__num { color: var(--orange-ink); margin-right: 6px; }
.quiz-options { display: grid; gap: 10px; margin-top: 12px; }
.quiz-option { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; cursor: pointer; transition: border-color .15s, background .15s; }
.quiz-option:hover { border-color: #9FB0C3; }
.quiz-option input { width: 18px; height: 18px; min-height: 0; flex: none; accent-color: var(--navy); }
.quiz-option:has(input:checked) { border-color: var(--navy); background: #EEF3F9; }
.quiz-result { text-align: center; padding: 28px; border-radius: 14px; margin-bottom: 28px; background: #EEF9F2; border: 1px solid #A6D9B8; }
.quiz-result--fail { background: #FEF3F2; border-color: #F3B4AE; }
.quiz-result--wait { background: #FFF8EB; border-color: #FFD699; }
.quiz-result strong { display: block; font-size: 44px; line-height: 1.1; color: var(--navy); }
@media (max-width: 1000px) {
  .classroom__grid { grid-template-columns: minmax(0, 1fr); }
  .classroom__side { position: static; max-height: none; }
  .enroll { position: static; }
}
@media (max-width: 760px) {
  .outcomes { grid-template-columns: minmax(0, 1fr); }
  .classroom__main h1 { font-size: 26px; }
  .doc-frame { height: 420px; }
}

/* ── Protection du contenu (réglage « Protéger les textes et les images du site » dans l'Admin) ── */
.protect { -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
.protect input, .protect textarea, .protect select, .protect [contenteditable] { -webkit-user-select: text; user-select: text; }
.protect img { -webkit-user-drag: none; user-drag: none; pointer-events: none; }
.protect a img, .protect button img { pointer-events: auto; }
.protect.is-veiled > *:not(.veil-note):not(script) { filter: blur(18px); transition: filter .1s; }
.veil-note { display: none; position: fixed; inset: 0; z-index: 90; align-items: center; justify-content: center; text-align: center; padding: 24px; font-weight: 700; color: var(--navy); background: rgba(246, 248, 251, .55); }
.protect.is-veiled .veil-note { display: flex; }
@media print {
  .protect > * { display: none !important; }
  .protect::before { content: 'Ce contenu est protégé. Retrouvez-le en ligne sur le site de L’EXPERDOSE.'; display: block; padding: 40px; font-size: 18px; color: #002C51; }
}

/* ── Cartes ADN (Mission, Vision, Valeurs) ─────────────── */
.card[data-dna], .dna-grid > .card {
  position: relative;
  border-radius: calc(var(--radius) + 2px);
  border: 1px solid var(--line);
  background: var(--white);
  padding: 26px;
  display: flex;
  flex-direction: column;
  box-shadow: 0 4px 16px rgba(0, 44, 81, .04);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.card[data-dna]:hover, .dna-grid > .card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 32px rgba(0, 44, 81, .10);
  border-color: rgba(255, 150, 0, .45);
}
.card[data-dna] .card__visual, .dna-grid > .card .card__visual {
  width: 100%;
  aspect-ratio: 16 / 10;
  max-height: 200px;
  border-radius: calc(var(--radius) - 2px);
  margin-bottom: 20px;
  background: #F4F8FC;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(0, 44, 81, .06);
}
.card[data-dna] .card__visual img, .dna-grid > .card .card__visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform .35s ease;
}
.card[data-dna]:hover .card__visual img, .dna-grid > .card:hover .card__visual img {
  transform: scale(1.04);
}
.card[data-dna] h3, .dna-grid > .card h3 {
  margin-bottom: 10px;
  color: var(--navy);
  font-size: 20px;
  font-weight: 700;
}
.card[data-dna] p, .dna-grid > .card p {
  color: var(--muted);
  line-height: 1.6;
  margin-bottom: 0;
  font-size: 15px;
}

/* ── Slider Équipe & Gouvernance ────────────────────────── */
.team-slider {
  position: relative;
  width: 100%;
}
.team-slider__viewport {
  overflow-x: auto;
  overflow-y: hidden;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
  -webkit-overflow-scrolling: touch;
  padding: 10px 4px 18px;
  display: flex;
  justify-content: center;
}
.team-slider__viewport::-webkit-scrollbar {
  display: none;
}
.team-slider__track {
  display: flex;
  gap: 24px;
  width: max-content;
  max-width: 100%;
  margin: 0 auto;
  justify-content: center;
  will-change: transform;
}
.team-card {
  flex: 0 0 290px;
  width: 290px;
  min-width: 290px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: calc(var(--radius) + 2px);
  padding: 22px;
  display: flex;
  flex-direction: column;
  box-shadow: 0 4px 16px rgba(0, 44, 81, .04);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.team-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 16px 36px rgba(0, 44, 81, .12);
  border-color: rgba(255, 150, 0, .5);
}
.team-card .media--square {
  border-radius: var(--radius);
  overflow: hidden;
  margin-bottom: 16px;
  background: var(--navy-soft);
}
.team-card h3 {
  font-size: 18px;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 6px;
}
.team-card p {
  font-size: 14px;
  color: var(--muted);
  margin-bottom: 0;
  line-height: 1.5;
}
.team-card .card__foot {
  margin-top: auto;
  padding-top: 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}
.btn--bio {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #F0F4F9;
  color: var(--navy);
  border: 1px solid rgba(0, 44, 81, .12);
  border-radius: 999px;
  padding: 6px 14px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: all .2s ease;
  font-family: inherit;
}
.btn--bio:hover {
  background: var(--navy);
  color: var(--white);
  border-color: var(--navy);
  transform: translateY(-1px);
}
.team-card__linkedin {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 13px;
  font-weight: 600;
  color: var(--orange-ink);
  text-decoration: none;
  padding: 4px 6px;
  transition: color .2s ease;
}
.team-card__linkedin:hover {
  color: var(--navy);
  text-decoration: underline;
}

/* ── Modale Biographie d'Expert (Capture 2) ──────────────── */
.bio-dialog {
  border: none;
  border-radius: 20px;
  padding: 0;
  background: transparent;
  max-width: 680px;
  width: calc(100% - 32px);
  margin: auto;
  box-shadow: 0 25px 60px rgba(0, 44, 81, .35);
  overflow: visible;
}
.bio-dialog::backdrop {
  background: rgba(0, 20, 40, .68);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  animation: bioFadeIn .25s ease;
}
.bio-modal {
  background: var(--white);
  border-radius: 20px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  position: relative;
  max-height: 90vh;
}
.bio-modal__header {
  position: relative;
  flex-shrink: 0;
  overflow: visible;
  z-index: 10;
}
.bio-modal__cover {
  position: relative;
  height: 165px;
  background: linear-gradient(135deg, #002C51 0%, #00457C 60%, #0861A7 100%);
  background-size: cover;
  background-position: center;
}
.bio-modal__cover::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255, 255, 255, .15) 1.5px, transparent 1.5px);
  background-size: 18px 18px;
  opacity: .4;
  pointer-events: none;
}
.bio-modal__close {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 10;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, .25);
  background: rgba(0, 44, 81, .55);
  color: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  transition: all .2s ease;
}
.bio-modal__close:hover {
  background: var(--orange);
  border-color: var(--orange);
  color: var(--white);
  transform: rotate(90deg);
}
.bio-modal__avatar {
  position: absolute;
  bottom: -50px;
  left: 32px;
  width: 110px;
  height: 110px;
  border-radius: 20px;
  border: 4px solid var(--white);
  box-shadow: 0 10px 25px rgba(0, 44, 81, .20);
  overflow: hidden;
  background: var(--navy);
  flex-shrink: 0;
  z-index: 15;
}
.bio-modal__avatar .media {
  width: 100%;
  height: 100%;
  aspect-ratio: 1;
  margin-bottom: 0;
  border-radius: 0;
}
.bio-modal__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.bio-modal__content {
  padding: 60px 32px 28px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}
.bio-modal__head {
  margin-bottom: 20px;
}
.bio-modal__name {
  font-size: 26px;
  font-weight: 800;
  color: var(--navy);
  margin-bottom: 4px;
  line-height: 1.25;
}
.bio-modal__role {
  font-size: 14px;
  font-weight: 700;
  color: var(--orange-ink);
  letter-spacing: .5px;
  text-transform: uppercase;
}
.bio-modal__body {
  border-top: 1px solid var(--line);
  padding-top: 20px;
  margin-bottom: 24px;
}
.bio-modal__text {
  font-size: 15px;
  line-height: 1.7;
  color: #3A4B5D;
}
.bio-modal__text p + p {
  margin-top: 14px;
}
.bio-modal__empty {
  font-style: italic;
  color: var(--muted);
}
.bio-modal__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
  margin-top: auto;
}
.bio-modal__firm {
  font-size: 13px;
  color: var(--muted);
  font-weight: 600;
}
.bio-modal__actions {
  display: flex;
  align-items: center;
  gap: 10px;
}
.btn--linkedin {
  background: #0A66C2;
  color: var(--white);
  border: 1px solid #0A66C2;
}
.btn--linkedin:hover {
  background: #004182;
  border-color: #004182;
  color: var(--white);
}

@keyframes bioFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@media (max-width: 640px) {
  .bio-dialog {
    width: calc(100% - 20px);
    border-radius: 16px;
  }
  .bio-modal__cover {
    height: 125px;
  }
  .bio-modal__avatar {
    width: 86px;
    height: 86px;
    bottom: -40px;
    left: 20px;
    border-radius: 16px;
    border-width: 3px;
  }
  .bio-modal__content {
    padding: 48px 20px 20px;
  }
  .bio-modal__name {
    font-size: 20px;
  }
  .bio-modal__foot {
    flex-direction: column;
    align-items: stretch;
  }
  .bio-modal__actions {
    width: 100%;
    justify-content: flex-end;
  }
}

/* Contrôles du slider d'équipe (flèches et puces) */
.team-slider__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 24px;
}
.team-slider__arrow {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 1px solid var(--line);
  background: var(--white);
  color: var(--navy);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(0, 44, 81, .06);
  transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.team-slider__arrow:hover {
  background: var(--orange);
  border-color: var(--orange);
  color: var(--white);
  transform: scale(1.06);
  box-shadow: 0 6px 16px rgba(255, 150, 0, .28);
}
.team-slider__dots {
  display: flex;
  gap: 8px;
  align-items: center;
}
.team-slider__dots button {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  border: none;
  background: #CBD5E1;
  padding: 0;
  cursor: pointer;
  transition: width .25s ease, background .25s ease;
}
.team-slider__dots button[aria-selected='true'] {
  width: 28px;
  background: var(--orange);
}

@media (max-width: 640px) {
  .team-card {
    flex: 0 0 250px;
    width: 250px;
    min-width: 250px;
    padding: 18px;
  }
}

/* ── Bandeau final fusionné avec formulaire d'alerte (Capture 1) ── */
.band--merged {
  padding: 64px 0;
  position: relative;
  overflow: hidden;
}
.band--merged__grid {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 48px;
  align-items: center;
}
.band--merged__main h2 {
  font-size: 38px;
  line-height: 1.18;
  font-weight: 800;
  color: var(--white);
  margin-bottom: 14px;
}
.band--merged__lead {
  font-size: 18px;
  line-height: 1.5;
  color: rgba(255, 255, 255, .85);
  margin-bottom: 28px;
}
.band--merged__main .actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}
.band--merged__aside {
  position: relative;
}
.alert-box {
  background: var(--white);
  color: var(--navy);
  border-radius: 20px;
  padding: 32px 30px;
  box-shadow: 0 20px 48px -12px rgba(0, 20, 40, .4), 0 2px 8px rgba(0, 0, 0, .08);
  border: 1px solid rgba(255, 255, 255, .2);
}
.alert-box h3 {
  font-size: 20px;
  font-weight: 800;
  color: var(--navy);
  margin-bottom: 6px;
}
.alert-box__sub {
  font-size: 14px;
  color: var(--muted);
  margin-bottom: 20px;
  line-height: 1.45;
}
.alert-box .form {
  display: grid;
  gap: 14px;
  max-width: 100%;
}
.alert-box .form label {
  color: var(--navy);
}
.alert-box .form input[type='email'] {
  background: #F8FAFC;
  border: 1.5px solid #CBD5E1;
  color: var(--navy);
}
.alert-box .form input[type='email']:focus {
  border-color: var(--orange);
  background: var(--white);
}
.alert-box .check {
  font-size: 13px;
  line-height: 1.4;
  color: var(--muted);
}
.alert-box .btn {
  width: 100%;
}
@media (max-width: 900px) {
  .band--merged__grid {
    grid-template-columns: 1fr;
    gap: 36px;
  }
}

/* ── Domaines d'intervention (Notre Cabinet - Capture 5) ───────── */
.domains-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
}
@media (max-width: 1100px) {
  .domains-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 600px) {
  .domains-grid {
    grid-template-columns: 1fr;
  }
}
.card--domain {
  position: relative;
  background: var(--white);
  border: 1.5px solid var(--line);
  border-radius: 18px;
  padding: 24px 22px;
  display: flex;
  flex-direction: column;
  transition: transform .28s cubic-bezier(.16, 1, .3, 1), box-shadow .28s cubic-bezier(.16, 1, .3, 1), border-color .28s cubic-bezier(.16, 1, .3, 1);
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(0, 44, 81, .04);
}
.card--domain::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: var(--domain-color, var(--orange));
  border-radius: 18px 18px 0 0;
  transition: height .25s ease;
}
.card--domain:hover::before {
  height: 6px;
}
.card--domain:hover {
  transform: translateY(-6px);
  border-color: var(--domain-color, var(--orange));
  box-shadow: 0 16px 36px -10px var(--domain-glow, rgba(0, 44, 81, .15)), 0 4px 12px rgba(0, 0, 0, .04);
}
.card--domain__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}
.card--domain__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: inherit;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .08em;
  padding: 4px 10px;
  border-radius: 999px;
  background: #F1F5F9;
  color: var(--domain-color, var(--navy));
  transition: all .25s ease;
}
.card--domain:hover .card--domain__badge {
  background: var(--domain-color, var(--orange));
  color: var(--white);
  box-shadow: 0 2px 8px var(--domain-glow, rgba(0, 0, 0, .2));
}
.card--domain__indicator {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--domain-color, var(--orange));
  opacity: .5;
  transition: transform .25s ease, opacity .25s ease;
}
.card--domain:hover .card--domain__indicator {
  transform: scale(1.4);
  opacity: 1;
}
.card--domain__icon img {
  width: 36px;
  height: 36px;
  object-fit: contain;
  border-radius: 8px;
}
.card--domain h3 {
  font-size: 17px;
  line-height: 1.35;
  font-weight: 700;
  color: var(--navy);
  margin: 0;
  transition: color .2s ease;
}
.card--domain:hover h3 {
  color: var(--navy);
}
.card--domain p {
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--muted);
  margin-top: 8px;
}

/* Couleurs identitaires pour les 8 domaines d'intervention */
.card--domain-1 {
  --domain-color: #FF9600;
  --domain-glow: rgba(255, 150, 0, .35);
}
.card--domain-2 {
  --domain-color: #00A3E0;
  --domain-glow: rgba(0, 163, 224, .35);
}
.card--domain-3 {
  --domain-color: #0A4F82;
  --domain-glow: rgba(10, 79, 130, .35);
}
.card--domain-4 {
  --domain-color: #E08000;
  --domain-glow: rgba(224, 128, 0, .35);
}
.card--domain-5 {
  --domain-color: #8E2B7A;
  --domain-glow: rgba(142, 43, 122, .35);
}
.card--domain-6 {
  --domain-color: #008F6B;
  --domain-glow: rgba(0, 143, 107, .35);
}
.card--domain-7 {
  --domain-color: #002C51;
  --domain-glow: rgba(0, 44, 81, .35);
}
.card--domain-8 {
  --domain-color: #C45100;
  --domain-glow: rgba(196, 81, 0, .35);
}

/* ── Présentation enrichie des offres du Cabinet (Capture 1 & 2) ── */
.card[data-tags="technique"] {
  --card-accent: #0A4F82;
  --card-accent-bg: #F0F6FB;
  --card-accent-glow: rgba(10, 79, 130, .20);
}
.card[data-tags="formation"] {
  --card-accent: #FF9600;
  --card-accent-bg: #FFF8EE;
  --card-accent-glow: rgba(255, 150, 0, .25);
}
.card[data-tags="ponctuel"] {
  --card-accent: #00A3E0;
  --card-accent-bg: #F0FAFF;
  --card-accent-glow: rgba(0, 163, 224, .22);
}
.card[data-tags="connexe"] {
  --card-accent: #E5A93C;
  --card-accent-bg: #FFFBF0;
  --card-accent-glow: rgba(229, 169, 60, .22);
}

.card[data-tags] {
  position: relative;
  overflow: hidden;
  border-radius: 18px;
  border: 1.5px solid var(--line);
  padding: 24px 22px;
  background: var(--white);
  transition: transform .28s cubic-bezier(.16, 1, .3, 1), box-shadow .28s cubic-bezier(.16, 1, .3, 1), border-color .28s cubic-bezier(.16, 1, .3, 1);
}
.card[data-tags]::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3.5px;
  background: var(--card-accent, var(--orange));
  border-radius: 18px 18px 0 0;
  transition: height .2s ease;
}
.card[data-tags]:hover {
  transform: translateY(-5px);
  border-color: var(--card-accent, var(--orange));
  box-shadow: 0 14px 32px -6px var(--card-accent-glow, rgba(0, 44, 81, .15)), 0 4px 12px rgba(0, 0, 0, .04);
}
.card[data-tags]:hover::before {
  height: 5.5px;
}

.card--offer__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}
.card--offer__icon {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--card-accent-bg, #F1F5F9);
  color: var(--card-accent, var(--navy));
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all .25s ease;
}
.card[data-tags]:hover .card--offer__icon {
  background: var(--card-accent, var(--orange));
  color: var(--white);
  transform: scale(1.08);
  box-shadow: 0 4px 12px var(--card-accent-glow, rgba(0, 0, 0, .15));
}
.card[data-tags] h3 {
  font-size: 18.5px;
  line-height: 1.35;
  font-weight: 700;
  color: var(--navy);
  margin: 0 0 8px 0;
}
.card[data-tags] p {
  font-size: 14px;
  line-height: 1.55;
  color: var(--muted);
  margin-bottom: 14px;
}

/* Bloc Livrables Attendus dans la carte (Capture 1) */
.card--offer__deliverables {
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  border-radius: 12px;
  padding: 12px 14px;
  margin-bottom: 14px;
}
.card--offer__deliverables-head {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: var(--navy);
  margin-bottom: 8px;
  text-transform: uppercase;
}
.card--offer__deliverables-head svg {
  color: #0A4F82;
}
.card--offer__deliverables-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.card--offer__deliverables-list li {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 13px;
  line-height: 1.4;
  color: #334155;
  font-weight: 500;
}
.card--offer__deliverables-list .check-icon {
  flex-shrink: 0;
  margin-top: 1px;
}

/* Ligne Meta : Tarif et Durée (Capture 1) */
.card--offer__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 0;
  border-top: 1px dashed var(--line);
  border-bottom: 1px dashed var(--line);
  margin-bottom: 14px;
  font-size: 13px;
  font-weight: 600;
}
.card--offer__price {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #0A4F82;
}
.card--offer__duration {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #D97706;
}

/* Pied de carte avec actions optimisées */
.card--offer__foot {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
  margin-top: auto;
  padding-top: 6px;
}
.card--offer__foot .btn--ghost {
  width: 100%;
  text-align: center;
  justify-content: center;
  font-weight: 700;
  padding: 11px 18px;
  border-radius: 10px;
  border-color: var(--line);
  transition: all .2s ease;
}
.card--offer__foot .btn--ghost:hover {
  background: var(--card-accent, var(--orange));
  border-color: var(--card-accent, var(--orange));
  color: var(--white);
  box-shadow: 0 4px 14px var(--card-accent-glow, rgba(0, 0, 0, .15));
}
.card--offer__foot a:not(.btn) {
  text-align: center;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--muted);
  text-decoration: none;
  padding: 4px;
  transition: color .2s ease;
}
.card--offer__foot a:not(.btn):hover {
  color: var(--card-accent, var(--orange));
  text-decoration: underline;
}

/* ── Fiche offre : section Livrables Attendus & Format/Tarif ── */
.card--deliverables {
  background: var(--white);
  border: 1.5px solid #E2E8F0;
  border-radius: 18px;
  padding: 28px 24px;
  box-shadow: 0 4px 20px rgba(0, 44, 81, .05);
  position: relative;
  overflow: hidden;
}
.card--deliverables::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, #0A4F82, #00A3E0, #FF9600);
}
.card--deliverables__head {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 20px;
}
.card--deliverables__badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #0A4F82;
  text-transform: uppercase;
  background: #F0F6FB;
  padding: 6px 14px;
  border-radius: 999px;
  align-self: flex-start;
}
.deliverables-checklist {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 12px 18px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.deliverables-checklist li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 15px;
  line-height: 1.5;
  color: var(--navy);
  font-weight: 600;
  background: #F8FAFC;
  padding: 12px 16px;
  border-radius: 12px;
  border: 1px solid #EDF2F7;
  transition: transform .2s ease, border-color .2s ease;
}
.deliverables-checklist li:hover {
  transform: translateY(-2px);
  border-color: #CBD5E1;
  background: #FFFFFF;
}
.deliverable-check {
  flex-shrink: 0;
  margin-top: 2px;
}

.card--offer-format,
.card--offer-price {
  padding: 26px 22px;
  border-radius: 16px;
  border: 1.5px solid var(--line);
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.card--offer-format:hover,
.card--offer-price:hover {
  transform: translateY(-3px);
  border-color: var(--orange);
  box-shadow: 0 8px 24px rgba(0, 44, 81, .08);
}
.card--offer-detail-icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 14px;
}
.card--offer-format .card--offer-detail-icon {
  background: #F0F6FB;
  color: #0A4F82;
}
.card--offer-price .card--offer-detail-icon {
  background: #FFF8EE;
  color: var(--orange);
}
.card--offer-price .price {
  font-size: 24px;
  font-weight: 800;
  color: #0A4F82;
  margin: 0;
}

/* ── Page Formations : Grilles centrées & Textes justifiés (Capture 3) ── */
.courses-grid,
.centered-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 24px;
  width: 100%;
}
.courses-grid > .card--course,
.centered-grid > .card {
  flex: 1 1 320px;
  max-width: 380px;
  width: 100%;
}

/* Justifier les textes descriptifs sans impacter les titres (Capture 3) */
.card--course p,
.card--course__desc,
.card--course__body p,
.card[data-tags] p,
.sessions-rows .row__main p {
  text-align: justify;
  text-justify: inter-word;
}

/* ── Badges de statut des formations & vagues (Capture 4) ── */
.tag--status-ongoing {
  background: #ECFDF5;
  color: #059669;
  border: 1px solid rgba(5, 150, 105, .3);
  font-weight: 700;
}
.tag--status-upcoming {
  background: #EFF6FF;
  color: #2563EB;
  border: 1px solid rgba(37, 99, 235, .3);
  font-weight: 700;
}
.tag--status-static {
  background: #F1F5F9;
  color: #475569;
  border: 1px solid #E2E8F0;
  font-weight: 700;
}
.tag--status-past {
  background: #F8FAFC;
  color: #94A3B8;
  border: 1px solid #E2E8F0;
  font-weight: 600;
}
.card--course__wave-date {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 700;
  color: var(--orange-ink, #C45100);
  background: #FFF8EE;
  padding: 4px 10px;
  border-radius: 8px;
  margin-bottom: 10px;
  align-self: flex-start;
}

/* ── Sélecteur de téléchargement de catalogues (Capture 5) ── */
.catalogue-downloader {
  margin: 0 auto 24px auto;
  max-width: 880px;
  width: 100%;
}
.catalogue-downloader__card {
  background: var(--white);
  border: 1.5px solid var(--line);
  border-radius: 18px;
  padding: 28px 24px;
  box-shadow: 0 6px 24px rgba(0, 44, 81, .06);
  display: flex;
  gap: 22px;
  align-items: flex-start;
  transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.catalogue-downloader__card:hover {
  border-color: var(--orange);
  box-shadow: 0 12px 32px rgba(0, 44, 81, .10);
  transform: translateY(-2px);
}
.catalogue-downloader__icon {
  width: 56px;
  height: 56px;
  border-radius: 16px;
  background: #FFF8EE;
  color: var(--orange);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 2px 10px rgba(255, 150, 0, .2);
}
.catalogue-downloader__main {
  flex: 1;
  min-width: 0;
}
.catalogue-downloader__main h3 {
  font-size: 20px;
  font-weight: 700;
  color: var(--navy);
  margin: 0 0 8px 0;
}
.catalogue-downloader__main p {
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--muted);
  margin: 0 0 18px 0;
  text-align: justify;
}
.catalogue-downloader__action {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}
.catalogue-select {
  flex: 1 1 300px;
  min-width: 260px;
  height: 48px;
  border-radius: 10px;
  border: 1.5px solid var(--line);
  padding: 0 16px;
  font-size: 14px;
  font-weight: 600;
  color: var(--navy);
  background: #F8FAFC;
  outline: none;
  transition: border-color .2s ease, background .2s ease;
  cursor: pointer;
}
.catalogue-select:focus {
  border-color: var(--orange);
  background: var(--white);
  box-shadow: 0 0 0 3px rgba(255, 150, 0, .15);
}
#btn-download-catalogue {
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 24px;
  font-weight: 700;
  font-size: 14px;
  border-radius: 10px;
  white-space: nowrap;
}

@media (max-width: 680px) {
  .catalogue-downloader__card {
    flex-direction: column;
    align-items: stretch;
  }
  .catalogue-downloader__action {
    flex-direction: column;
    align-items: stretch;
  }
  .catalogue-select,
  #btn-download-catalogue {
    width: 100%;
  }
}
