/* ══════════════════════════════════════════════════════════════════════════════════════════
   PAGE FONCTIONNALITÉS
   ──────────────────────────────────────────────────────────────────────────────────────────
   Aucune couleur en dur : tout vient des jetons de `style.css`, qui les tient eux-mêmes de
   `src/theme-clair.css`. Quand l'application change de palette, cette page suit sans qu'on y
   touche.

   MOBILE D'ABORD POUR LES ONGLETS. Cette page part en prospection par e-mail et sur LinkedIn :
   elle sera ouverte sur un téléphone bien plus souvent que sur un écran de bureau. Six onglets
   réduits à des pastilles illisibles auraient condamné toute la navigation par bénéfice — ils
   défilent donc horizontalement, à taille pleine, avec un dégradé qui annonce qu'il y en a
   d'autres à droite.
   ══════════════════════════════════════════════════════════════════════════════════════════ */

/* ── Hero de la page ────────────────────────────────────────────────────────────────────── */
.hero-fonctions { padding-bottom: 72px; }
.hero-fonctions h1 { max-width: 18ch; }

.preuves-courtes {
  list-style: none; margin: 26px 0 30px; padding: 0;
  display: flex; flex-wrap: wrap; gap: 10px;
}
.preuves-courtes li {
  padding: 8px 16px; border-radius: 999px;
  background: var(--accent-voile); border: 1px solid var(--accent);
  color: var(--accent-texte); font-weight: 700; font-size: 14.5px;
}

/* ── La chaîne ──────────────────────────────────────────────────────────────────────────── */
.chaine-section { padding: 64px 0; }
.chaine-intro { color: #93a4b4; font-size: 17px; margin-bottom: 10px; }
.chaine-section h2 { font-size: clamp(24px, 3.4vw, 38px); margin-bottom: 28px; }

.chaine {
  list-style: none; margin: 0 0 22px; padding: 0;
  display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px;
  counter-reset: maillon;
}
.chaine li {
  padding: 8px 14px; border-radius: 999px;
  background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.16);
  color: #e8eef4; font-size: 14px; font-weight: 600; white-space: nowrap;
}
/* La flèche est posée en CSS : un caractère de plus dans le HTML serait lu à voix haute par
   un lecteur d'écran, onze fois de suite. */
.chaine li:not(:last-child)::after { content: ' →'; color: #3FDCC3; margin-left: 6px; }
.chaine-note { color: #93a4b4; max-width: 60ch; margin: 0 auto; font-size: 15.5px; }

/* ── Onglets ────────────────────────────────────────────────────────────────────────────── */
.onglets {
  display: flex; gap: 8px; margin: 30px 0 0;
  overflow-x: auto; scrollbar-width: none;
  padding-bottom: 4px;
  scroll-snap-type: x proximity;
}
.onglets::-webkit-scrollbar { display: none; }
.onglets button {
  flex: 0 0 auto; scroll-snap-align: center;
  padding: 12px 22px; border-radius: 999px; cursor: pointer;
  font: inherit; font-size: 15.5px; font-weight: 700;
  background: var(--papier); color: var(--encre-douce);
  border: 1px solid var(--trait);
  transition: background .12s ease, border-color .12s ease, color .12s ease;
}
.onglets button:hover { border-color: var(--accent); color: var(--encre); }
.onglets button[aria-selected="true"] {
  background: var(--accent); border-color: var(--accent); color: var(--encre-accent);
}
.onglets button:focus-visible { outline: 3px solid var(--accent-voile); outline-offset: 2px; }

/* ── Panneaux ───────────────────────────────────────────────────────────────────────────── */
.panneau {
  display: grid; grid-template-columns: 1fr 1fr; gap: 42px; align-items: start;
  padding-top: 38px;
}
@media (max-width: 900px) { .panneau { grid-template-columns: 1fr; gap: 28px; } }
.panneau[hidden] { display: none; }

.panneau h3 { font-size: clamp(22px, 2.6vw, 30px); line-height: 1.2; }
.panneau-promesse { color: var(--encre-douce); font-size: 17px; margin: 14px 0 22px; max-width: 54ch; }

.fonctions { list-style: none; margin: 0 0 26px; padding: 0; display: grid; gap: 18px; }
.fonctions li {
  position: relative; padding-left: 22px;
  font-size: 15.5px; color: var(--encre-douce); line-height: 1.6;
}
.fonctions li::before {
  content: ''; position: absolute; left: 0; top: 9px;
  width: 8px; height: 8px; border-radius: 50%; background: var(--accent);
}
/* SEUL le libellé en tête de puce est un bloc. Sans `:first-child`, chaque mot mis en gras au
   milieu d'une phrase passait à la ligne tout seul — « depuis / votre / catalogue » sur trois
   lignes. La règle doit viser le libellé, pas le gras. */
.fonctions li > b:first-child { display: block; font-size: 16.5px; margin-bottom: 3px; }
.fonctions b { color: var(--encre); }

/* L'encart de prudence : il ne doit pas ressembler à une note de bas de page qu'on saute. */
.panneau-garde {
  background: var(--papier-3); border-left: 3px solid var(--encre-faible);
  padding: 14px 16px; border-radius: 0 10px 10px 0;
  font-size: 14.5px; color: var(--encre-douce); max-width: 56ch;
}

/* Cadre « téléphone » pour les captures de page client. */
.cadre-tel {
  max-width: 330px; margin-inline: auto;
  border: 9px solid #11161d; border-radius: 34px; overflow: hidden;
  box-shadow: var(--ombre-forte); background: #11161d;
}
.cadre-tel img { border-radius: 0; display: block; }

/* ── Cercle de croissance ───────────────────────────────────────────────────────────────── */
.cercle {
  list-style: none; margin: 32px 0 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: 10px; align-items: center;
  counter-reset: etape;
}
.cercle li { counter-increment: etape; display: flex; align-items: center; gap: 10px; }
.cercle li span {
  display: inline-flex; align-items: center; gap: 9px;
  padding: 10px 16px; border-radius: 999px;
  background: var(--papier); border: 1px solid var(--trait); box-shadow: var(--ombre-carte);
  font-size: 14.5px; font-weight: 600;
}
.cercle li span::before {
  content: counter(etape);
  width: 22px; height: 22px; border-radius: 50%; flex-shrink: 0;
  display: grid; place-items: center;
  background: var(--accent-voile); color: var(--accent-texte);
  font-size: 12px; font-weight: 800;
}
.cercle li:not(:last-child)::after { content: '→'; color: var(--trait); font-size: 18px; }
.cercle-fin { margin-top: 18px; color: var(--encre-faible); font-style: italic; }

/* ── Une journée ────────────────────────────────────────────────────────────────────────── */
.journee {
  list-style: none; margin: 32px 0 0; padding: 0 0 0 18px;
  border-left: 2px solid var(--trait); display: grid; gap: 0;
}
.journee li {
  position: relative; display: grid; grid-template-columns: 104px 1fr; gap: 16px;
  padding: 13px 0; border-bottom: 1px solid var(--papier-3);
  font-size: 15.5px;
}
.journee li:last-child { border-bottom: none; }
.journee li::before {
  content: ''; position: absolute; left: -24px; top: 20px;
  width: 9px; height: 9px; border-radius: 50%;
  background: var(--accent); border: 2px solid var(--papier);
}
.journee b { color: var(--accent-texte); font-variant-numeric: tabular-nums; font-size: 15px; }
.journee span { color: var(--encre-douce); }
@media (max-width: 560px) {
  .journee li { grid-template-columns: 1fr; gap: 2px; }
}

/* ── Benchmark ──────────────────────────────────────────────────────────────────────────── */
.chiffres {
  display: grid; gap: 14px; margin: 34px 0 22px;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
}
.chiffre {
  background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.14);
  border-radius: var(--rayon); padding: 22px 20px;
  display: flex; flex-direction: column; gap: 6px;
}
.chiffre b { font-size: clamp(34px, 4.6vw, 46px); line-height: 1; color: #3FDCC3; font-weight: 800; }
.chiffre span { color: #e8eef4; font-size: 15.5px; font-weight: 600; }
/* La citation EXACTE de la source, sous chaque chiffre. C'est elle qui rend le chiffre
   vérifiable — et qui empêche qu'on le reformule un jour « en mieux ». */
.chiffre i { color: #93a4b4; font-size: 13px; font-style: normal; opacity: .9; }

.chiffres-plus { color: #cdd8e2; font-size: 15.5px; max-width: 72ch; margin-bottom: 18px; }
.chiffres-plus b { color: #fff; }

.source {
  color: #93a4b4; font-size: 13.5px; line-height: 1.6; max-width: 76ch;
  padding-top: 16px; border-top: 1px solid rgba(255,255,255,.14);
}
.source a { color: #3FDCC3; }
.source b { color: #e8eef4; }

.benchmark-suite {
  margin-top: 34px; padding: 26px; border-radius: var(--rayon);
  background: rgba(63,220,195,.09); border: 1px solid rgba(63,220,195,.3);
}
.benchmark-suite h3 { font-size: 24px; color: #fff; margin-bottom: 10px; }
.benchmark-suite p { color: #cdd8e2; max-width: 66ch; margin-bottom: 20px; font-size: 15.5px; }
.benchmark-suite b { color: #fff; }

/* ── Intégrations ───────────────────────────────────────────────────────────────────────── */
.encart-honnete {
  background: #fff8e6; border: 1px solid #f0dca6; border-left: 4px solid var(--surveiller);
  border-radius: 0 12px 12px 0; padding: 16px 18px; margin: 26px 0 28px;
  font-size: 15.5px; line-height: 1.6; max-width: 74ch;
}
.encart-honnete b { color: var(--surveiller); }

.grille-integrations {
  display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
.grille-integrations .bloc { display: flex; flex-direction: column; gap: 7px; }
.grille-integrations .bloc p { flex: 1; }
.integrations-appel {
  margin-top: 26px; padding: 18px 20px; border-radius: 12px;
  background: var(--accent-voile); border: 1px solid var(--accent);
  font-size: 15.5px; line-height: 1.6; max-width: 74ch;
}

/* ── France / garages ───────────────────────────────────────────────────────────────────── */
.liste-france { list-style: none; margin: 28px 0 0; padding: 0; display: grid; gap: 14px; max-width: 80ch; }
.liste-france li { position: relative; padding-left: 24px; font-size: 16px; color: var(--encre-douce); line-height: 1.6; }
.liste-france li::before {
  content: ''; position: absolute; left: 0; top: 10px;
  width: 9px; height: 9px; border-radius: 2px; background: var(--accent);
}
.liste-france b { color: var(--encre); }

.france-reserve, .garages-reserve {
  margin-top: 26px; font-size: 14.5px; color: var(--encre-douce);
  padding: 14px 16px; border-radius: 0 10px 10px 0;
  background: var(--papier); border-left: 3px solid var(--encre-faible); max-width: 74ch;
}

/* ── CTA pilote ─────────────────────────────────────────────────────────────────────────── */
.sous-centre { margin-inline: auto; }
.avantages-pilote {
  list-style: none; margin: 30px auto; padding: 0; max-width: 620px;
  display: grid; gap: 11px; text-align: left;
}
.avantages-pilote li {
  position: relative; padding: 12px 16px 12px 42px;
  background: var(--papier); border: 1px solid var(--trait); border-radius: 11px;
  box-shadow: var(--ombre-carte); font-size: 15.5px; color: var(--encre-douce);
}
.avantages-pilote li::before {
  content: '✓'; position: absolute; left: 15px; top: 12px;
  color: var(--accent-texte); font-weight: 800;
}
.avantages-pilote b { color: var(--encre); }
.boutons-centre { justify-content: center; }

/* ── Moins d'animations ─────────────────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .onglets { scroll-behavior: auto; }
  .btn-principal:hover { transform: none; }
}

/* ── Légende sous chaque capture ────────────────────────────────────────────────────────
   Elle NOMME l'écran photographié. Sans elle, une capture posée à côté d'un argument laisse
   croire qu'elle illustre cet argument — ce qui est faux quand l'écran exact n'existe pas
   encore en capture. Dire « écran Ordres de réparation » à côté d'un paragraphe sur la
   réservation en ligne coûte une ligne et évite un malentendu que le prospect découvrirait
   en démonstration. */
.cadre figcaption {
  padding: 11px 14px;
  font-size: 13px; line-height: 1.55; color: var(--encre-faible);
  background: var(--papier-3); border-top: 1px solid var(--trait);
}
.cadre figcaption b { color: var(--encre-douce); font-weight: 700; }
/* La mention « en cours de production » : visible, mais elle ne doit pas voler la vedette. */
.cadre figcaption i { display: block; margin-top: 3px; font-style: italic; opacity: .85; }
.cadre-tel figcaption { border-radius: 0; }

/* Un panneau sans capture occupe toute la largeur plutôt que de laisser une colonne vide.
   `:has()` manque encore sur quelques navigateurs : là, le texte reste dans sa colonne —
   plus étroit, mais jamais cassé. */
.panneau:not(:has(figure)) { grid-template-columns: 1fr; }
.panneau:not(:has(figure)) .panneau-promesse,
.panneau:not(:has(figure)) .fonctions li { max-width: 78ch; }

/* Les quatre blocs sans chiffre (14 octobre 2026). Le gabarit ne change pas — c'est lui qui
   porte l'argument — mais `b` ne reçoit plus un pourcentage de 46 px : il reçoit une phrase.
   À cette taille elle serait illisible, et surtout elle crierait une promesse qu'on ne fait pas. */
.chiffres-leviers .chiffre b {
  font-size: clamp(18px, 2vw, 21px); line-height: 1.3; letter-spacing: -.2px;
}
.chiffres-leviers .chiffre span {
  order: -1; font-size: 11px; letter-spacing: .09em; text-transform: uppercase;
  color: #93a4b4; font-weight: 700;
}
