/* ==========================================================================
   korbyx-da-v3.css - Les pages interieures, a la charte v1.0 de la home validee
   (piste C, 01/10). Couche posee PAR-DESSUS korbyx-design.css et korbyx-nav.css.
   Toutes les regles sont limitees a body.kx-da-v3 : sans cette classe, rien ne
   change. La classe est posee par functions.php des que le contenu est ecrit en
   blocs .kx-v3-section.

   Principes, ceux de la home : fond Ghost White, texte Erebus, violet pour
   l'action et pour la partie forte des titres, cyan pour la partie forte et les
   donnees sur fond sombre, jaune pour le point d'attention (ni rouge ni vert) ;
   Rubik ; titres en deux temps (maigre, puis fort en couleur), jamais d'italique
   a empattement ; premier ecran sombre, la photo fondue dans le violet ; boutons
   et etiquettes a 4 px, cartes et images a 6 px ; filets fins, aucune ombre,
   aucun halo, aucun decor.

   Les noms des variables datent de la v3 (papier, creme, encre) : ils portent
   desormais les valeurs de la charte, pour que tous les blocs suivent d'un coup.

   Deux familles de regles :
   1. le cadre du site (ancien en-tete et ancien pied, masques par le nouveau) ;
   2. les blocs .kx-v3-*, des pages refaites et des pages generees.
   ========================================================================== */

body.kx-da-v3 {
  --v3-paper: #F8F8FF;       /* Ghost White : le fond */
  --v3-cream: #FFFFFF;       /* blanc : les cartes posees sur le fond */
  --v3-blanc: #FFFFFF;
  --v3-ink: #12012D;         /* Erebus */
  --v3-ink-70: #413457;
  --v3-ink-50: #716781;
  --v3-ink-30: #A099AB;
  --v3-ink-20: #D0CCD5;
  --v3-line: #E9E6EE;
  --v3-violet: #5B26FE;
  --v3-violet-soft: #EFEDFF; /* lavande pale : sections pastel, pastilles */
  --v3-violet-30: #C9C2FF;   /* lavande */
  --v3-lavande: #C9C2FF;
  --v3-cyan: #1AECDE;        /* accent sur fond sombre */
  --v3-jaune: #F3FF55;       /* point d'attention */
  --v3-night: #1C0B3A;
  --v3-paper-70: rgba(248, 248, 255, 0.88);
  --v3-paper-20: rgba(248, 248, 255, 0.2);
  --v3-paper-10: rgba(248, 248, 255, 0.1);
  --v3-r: 6px;               /* cartes, images */
  --v3-r-s: 4px;             /* boutons, etiquettes */
  --v3-gouttiere: 1.25rem;
  --v3-ease: cubic-bezier(.16, 1, .3, 1);
  --kx-content: 88rem;
  background: var(--v3-paper);
  color: var(--v3-ink);
  font-family: "Rubik", "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}
/* Rubik partout dans le contenu (le theme parent pose sa propre police sur les titres et les champs) */
.kx-da-v3 :is(h1, h2, h3, h4, h5, h6, p, li, a, button, input, select, textarea, summary, blockquote, figcaption, th, td, label, dt, dd, small) { font-family: inherit; }
@media (min-width: 640px) { body.kx-da-v3 { --v3-gouttiere: 2rem; } }
@media (min-width: 1024px) { body.kx-da-v3 { --v3-gouttiere: 3rem; } }
.kx-da-v3 #page, .kx-da-v3 .site-content, .kx-da-v3 .ast-container, .kx-da-v3 #primary { background: transparent; }
.kx-da-v3 ::selection { background: var(--v3-violet-soft); }
.kx-da-v3 :focus-visible { outline: 2px solid var(--v3-violet); outline-offset: 3px; border-radius: 6px; }

/* ==========================================================================
   1. Le cadre du site
   ========================================================================== */

/* --- En-tete : papier, sans ombre ; un filet apparait au defilement --------- */
.kx-da-v3 .kx-header { background: var(--v3-paper); box-shadow: none; border-bottom: 1px solid transparent; transition: transform .35s var(--v3-ease), border-color .3s; }
.kx-da-v3 .kx-header.is-scrolled { box-shadow: none; border-bottom-color: var(--v3-line); }
.kx-da-v3 .kx-header__bar { padding-inline: var(--v3-gouttiere); }
.kx-da-v3 .kx-brand { color: var(--v3-ink); letter-spacing: -0.02em; }
.kx-da-v3 .kx-brand__mark { color: var(--v3-violet); }
.kx-da-v3 .kx-nav__trigger { color: var(--v3-ink-70); font-size: .9375rem; padding: .6rem .95rem; border-radius: 4px !important; transition: color .2s, background-color .2s; }
.kx-da-v3 .kx-nav__item:hover .kx-nav__trigger,
.kx-da-v3 .kx-nav__item.is-open .kx-nav__trigger { color: var(--v3-ink); background: var(--v3-cream) !important; }

/* Panneaux du menu : papier, filet fin, aucune ombre */
.kx-da-v3 .kx-panel { background: var(--v3-paper); border-top: 1px solid var(--v3-line); border-bottom: 1px solid var(--v3-line); box-shadow: none; }
.kx-da-v3 .kx-panel__inner { padding-inline: var(--v3-gouttiere); }
.kx-da-v3 .kx-panel__title { font-family: inherit; font-size: .8125rem; font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--v3-violet); }
.kx-da-v3 .kx-panel__col a { color: var(--v3-ink); }
.kx-da-v3 .kx-panel__col a:hover { background: var(--v3-cream); }
.kx-da-v3 .kx-panel__featured { background: var(--v3-cream); box-shadow: none; border: 1px solid var(--v3-line); border-radius: 6px; transition: border-color .25s; }
.kx-da-v3 .kx-panel__featured:hover { box-shadow: none; border-color: var(--v3-ink-30); }
.kx-da-v3 .kx-panel__fmark, .kx-da-v3 .kx-panel__flink { color: var(--v3-violet); }
.kx-da-v3 .kx-panel__ftitle { color: var(--v3-ink); }
.kx-da-v3 .kx-panel__fdesc { color: var(--v3-ink-70); }
.kx-da-v3 .kx-panel--compact { border: 1px solid var(--v3-line); border-radius: 6px; box-shadow: none; }

/* Actions : plus de « Discutez avec nous » (il menait au meme endroit), un seul bouton pilule encre */
.kx-da-v3 .kx-chat { display: none; }
.kx-da-v3 .kx-btn-audit,
.kx-da-v3 .kx-header__cta .kx-btn-audit {
  background: var(--v3-ink); color: var(--v3-paper); border: 0; border-radius: 4px;
  padding: .7rem 1.3rem; font-size: .875rem; font-weight: 500; text-transform: none; letter-spacing: 0;
  box-shadow: none; transform: none; transition: background-color .3s;
}
.kx-da-v3 .kx-btn-audit:hover,
.kx-da-v3 .kx-header__cta .kx-btn-audit:hover { background: #12012D; color: var(--v3-paper); border-color: transparent; box-shadow: none; transform: none; }
.kx-da-v3 .kx-burger { color: var(--v3-ink); }

/* Tiroir mobile : encre, accents lavande */
.kx-da-v3 .kx-drawer__scrim { background: rgba(18, 1, 45, 0.55); }
.kx-da-v3 .kx-drawer__panel { background: var(--v3-ink); color: var(--v3-paper); }
.kx-da-v3 .kx-drawer__head, .kx-da-v3 .kx-drawer__group, .kx-da-v3 .kx-drawer__foot { border-color: var(--v3-paper-10); }
.kx-da-v3 .kx-drawer__head .kx-brand { color: var(--v3-paper); }
.kx-da-v3 .kx-drawer__head .kx-brand__mark { color: var(--v3-paper); }
.kx-da-v3 .kx-drawer__x { color: var(--v3-paper-70); }
.kx-da-v3 .kx-drawer__label { font-family: inherit; font-size: .8125rem; font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--v3-violet-30); }
.kx-da-v3 .kx-drawer__group a { color: var(--v3-paper-70); }
.kx-da-v3 .kx-drawer__group a:hover { color: var(--v3-paper); }
.kx-da-v3 .kx-drawer__foot .kx-btn-audit { background: var(--v3-paper); color: var(--v3-ink); }

/* --- Pied de page : encre, sans halo ni degrade, texte papier -------------- */
.kx-da-v3 .kx-footer { background: var(--v3-ink); color: var(--v3-paper); }
.kx-da-v3 .kx-footer::before, .kx-da-v3 .kx-footer::after { display: none; }
.kx-da-v3 .kx-footer__inner { max-width: 88rem; padding-inline: var(--v3-gouttiere); }
.kx-da-v3 .kx-footer__nl, .kx-da-v3 .kx-footer__local, .kx-da-v3 .kx-footer__legal { border-color: var(--v3-paper-20); }
.kx-da-v3 .kx-footer__nl h2 { color: var(--v3-paper); letter-spacing: -0.03em; }
.kx-da-v3 .kx-footer__nl p, .kx-da-v3 .kx-footer__tag { color: var(--v3-paper-70); }
.kx-da-v3 .kx-nl input { border-radius: 4px; border-color: var(--v3-paper-20); background: var(--v3-paper-10); color: var(--v3-paper); padding-inline: 1.25rem; }
.kx-da-v3 .kx-nl input::placeholder { color: rgba(248, 248, 255, 0.5); }
.kx-da-v3 .kx-nl input:focus { border-color: var(--v3-violet-30); box-shadow: none; }
.kx-da-v3 .kx-nl button { border-radius: 4px; background: var(--v3-paper); color: var(--v3-ink); text-transform: none; font-size: .875rem; font-weight: 500; padding-inline: 1.4rem; transition: background-color .3s; }
.kx-da-v3 .kx-nl button:hover { box-shadow: none; background: var(--v3-violet-soft); }
.kx-da-v3 .kx-nl__ok { color: var(--v3-violet-30); }
.kx-da-v3 .kx-footer__brand .kx-brand { color: var(--v3-paper); }
.kx-da-v3 .kx-footer__brand .kx-brand__mark { color: var(--v3-paper); }
.kx-da-v3 .kx-plateforme { background: var(--v3-paper-10); box-shadow: none; border: 1px solid var(--v3-paper-20); border-radius: 6px; }
.kx-da-v3 .kx-plateforme:hover { box-shadow: none; border-color: var(--v3-paper-70); }
.kx-da-v3 .kx-plateforme b { color: var(--v3-paper); }
.kx-da-v3 .kx-plateforme span { color: var(--v3-paper-70); }
.kx-da-v3 .kx-plateforme em { color: var(--v3-violet-30); }
.kx-da-v3 .kx-social { border-color: var(--v3-paper-20); color: var(--v3-paper-70); }
.kx-da-v3 .kx-social:hover { color: var(--v3-paper); border-color: var(--v3-paper-70); }
.kx-da-v3 .kx-footer__col p { font-family: inherit; font-size: .875rem; font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--v3-paper); }
.kx-da-v3 .kx-footer__col a, .kx-da-v3 .kx-footer__local a, .kx-da-v3 .kx-footer__legal a { color: var(--v3-paper-70); }
.kx-da-v3 .kx-footer__local, .kx-da-v3 .kx-footer__legal { color: rgba(248, 248, 255, 0.55); }
.kx-da-v3 .kx-footer__legal span[style] { color: rgba(248, 248, 255, 0.55) !important; }
.kx-da-v3 .kx-footer__col a:hover, .kx-da-v3 .kx-footer__local a:hover, .kx-da-v3 .kx-footer__legal a:hover { color: var(--v3-paper); }

/* --- Cadrage identique a la home /hp-v3/ (retour de Thomas, 26/09) ------------------------
   Meme colonne de 88rem (1 408 px) pour l'en-tete, le contenu et le pied de page, gouttieres a
   l'exterieur ; meme en-tete (88 px, logo, liens a 16 px, bouton a fleche) ; et, comme la home,
   toute la page grandit d'un bloc sur les tres grands ecrans au lieu de flotter entre des marges. */
.kx-da-v3 .kx-header__bar,
.kx-da-v3 .kx-footer__inner { max-width: calc(88rem + 2 * var(--v3-gouttiere)); }
.kx-da-v3 .kx-panel__inner { max-width: calc(88rem + 2 * var(--v3-gouttiere)); }
@media (min-width: 1024px) {
  .kx-da-v3 .kx-header__bar, .kx-da-v3 .kx-header.is-scrolled .kx-header__bar { min-height: 88px; padding-block: 0; }
}
.kx-da-v3 .kx-brand { gap: .5rem; font-size: 1.375rem; font-weight: 600; letter-spacing: -0.03em; }
.kx-da-v3 .kx-brand__mark, .kx-da-v3 .kx-header.is-scrolled .kx-brand__mark { width: 1.75rem; height: 1.75rem; }
@media (min-width: 1024px) {
  .kx-da-v3 .kx-brand { font-size: 23px; }
  .kx-da-v3 .kx-brand__mark, .kx-da-v3 .kx-header.is-scrolled .kx-brand__mark { width: 2.1rem; height: 2.1rem; }
}
.kx-da-v3 .kx-nav__list { gap: .5rem; }
.kx-da-v3 .kx-nav__trigger { gap: .375rem; padding: .625rem 1rem; font-size: 1rem; font-weight: 500; color: var(--v3-ink); }
.kx-da-v3 .kx-chev { width: 1rem; height: 1rem; opacity: 1; stroke-width: 1.6; }
/* Le bouton de l'en-tete : la pilule de la home, avec sa fleche dans une pastille */
.kx-da-v3 .kx-header__cta .kx-btn-audit { display: inline-flex; align-items: center; gap: .625rem; height: 2.75rem; padding: 0 .375rem 0 1.25rem; }
.kx-da-v3 .kx-header__cta .kx-btn-audit::after {
  content: ""; flex: none; width: 2rem; height: 2rem; border-radius: 4px; transform: rotate(-45deg);
  background: var(--v3-paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2312012D' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / 1rem no-repeat;
  transition: transform .45s cubic-bezier(.65, 0, .35, 1), background-color .35s;
}
.kx-da-v3 .kx-header__cta .kx-btn-audit:hover::after {
  transform: none;
  background: var(--v3-violet) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F8F8FF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / 1rem no-repeat;
}
@media (min-width: 2100px) { body.kx-da-v3 { zoom: 1.2; } }
@media (min-width: 2500px) { body.kx-da-v3 { zoom: 1.4; } }

/* ==========================================================================
   2. Les blocs v3 (.kx-v3-*)
   ========================================================================== */

/* Les blocs occupent toute la largeur de la zone de contenu, sans marges d'Astra */
.kx-da-v3 .entry-content > .kx-v3-section,
.kx-da-v3 .entry-content > section.kx-v3-section { margin: 0; max-width: none; }
.kx-da-v3 .entry-content > p:empty { display: none; }
/* Listes des blocs : sans le retrait qu'Astra donne aux listes du contenu */
.kx-da-v3 .entry-content :is(.kx-v3-cartes, .kx-v3-garanties-ligne) { margin-left: 0; padding-left: 0; }

.kx-v3-section { padding: 4.5rem var(--v3-gouttiere); background: var(--v3-paper); color: var(--v3-ink); }
@media (min-width: 640px) { .kx-v3-section { padding-block: 5.5rem; } }
@media (min-width: 1024px) { .kx-v3-section { padding-block: 7rem; } }
.kx-v3-section--lavande { background: var(--v3-violet-soft); }
.kx-v3-section--creme { background: var(--v3-paper); }
/* Deux sections claires qui se suivent ne doublent pas leur marge. La section « serree » (carte
   pleine largeur) n'a pas de marge propre : celle d'avant et celle d'apres l'encadrent. */
.kx-v3-section:not([class*="--"]) + .kx-v3-section:not([class*="--"]) { padding-top: 0; }
.kx-v3-section--serree { padding-block: 0; }
.kx-v3-section--serree + .kx-v3-section { padding-top: 4.5rem; }
@media (min-width: 640px) { .kx-v3-section--serree + .kx-v3-section { padding-top: 5.5rem; } }
@media (min-width: 1024px) { .kx-v3-section--serree + .kx-v3-section { padding-top: 7rem; } }
.kx-v3-wrap { max-width: 88rem; margin-inline: auto; }
.kx-da-v3 .entry-content .kx-v3-wrap { max-width: 88rem !important; margin-inline: auto !important; }

/* Typographie, celle de la home : le surtitre petit et colore, le titre en deux temps (maigre, puis
   la partie forte en violet ; en cyan sur fond sombre), le texte en Erebus adouci. */
.kx-da-v3 .kx-v3-surtitre { margin: 0; font-size: .875rem; font-weight: 500; line-height: 1.4; letter-spacing: 0; color: var(--v3-violet); }
@media (min-width: 640px) { .kx-da-v3 .kx-v3-surtitre { font-size: .9375rem; } }
.kx-da-v3 .kx-v3-h1, .kx-da-v3 .kx-v3-h2 { margin: .875rem 0 0; font-weight: 300; letter-spacing: -0.04em; color: var(--v3-ink); text-wrap: balance; }
.kx-da-v3 .kx-v3-h1 { font-size: clamp(2.375rem, 4.6vw, 4.25rem); line-height: 1.03; }
.kx-da-v3 .kx-v3-h2 { font-size: clamp(2.125rem, 3.9vw, 3.5rem); line-height: 1.06; }
/* La partie forte du titre : demi-gras, en couleur, jamais en italique */
.kx-da-v3 .kx-v3-h1 em, .kx-da-v3 .kx-v3-h2 em, .kx-da-v3 .kx-v3-fondateur blockquote em {
  font-style: normal; font-weight: 600; letter-spacing: -0.035em;
}
.kx-da-v3 .kx-v3-h1 em, .kx-da-v3 .kx-v3-h2 em { color: var(--v3-violet); }
.kx-da-v3 .kx-v3-intro { margin: 1.25rem 0 0; font-size: 1.125rem; line-height: 1.65; color: var(--v3-ink-70); }
/* Le gras dans une introduction : demi-gras Erebus, sans marqueur */
.kx-da-v3 .kx-v3-intro strong { font-weight: 600; color: var(--v3-ink); background: none; padding: 0; margin: 0; }

/* En-tete de section : titre a gauche, introduction a droite */
.kx-v3-entete { display: grid; gap: 1.25rem; margin-bottom: 2.5rem; }
@media (min-width: 1024px) { .kx-v3-entete { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); align-items: end; gap: 4rem; margin-bottom: 3.5rem; } }
.kx-v3-entete .kx-v3-intro { margin: 0; max-width: 34rem; }

/* Bouton de la charte, celui de la home : rectangle violet a 4 px, la fleche glisse au survol */
.kx-v3-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin-top: 2rem; }
.kx-da-v3 a.kx-v3-cta { display: inline-flex; align-items: center; gap: .75rem; height: 3.5rem; padding: 0 1.5rem; border-radius: var(--v3-r-s); background: var(--v3-violet); color: var(--v3-blanc); font-size: 1rem; font-weight: 500; line-height: 1; text-decoration: none; white-space: nowrap; transition: background-color .25s, color .25s, border-color .25s; }
.kx-da-v3 a.kx-v3-cta:hover { background: var(--v3-ink); color: var(--v3-blanc); }
.kx-v3-cta__texte { display: inline-block; line-height: 1.25; white-space: nowrap; }
.kx-v3-cta__texte > span { display: inline-block; }
.kx-v3-cta__fleche { display: flex; width: 1rem; height: 1rem; flex: none; align-items: center; justify-content: center; color: inherit; transition: transform .3s var(--v3-ease); }
.kx-v3-cta:hover .kx-v3-cta__fleche { transform: translateX(4px); }
.kx-v3-cta__fleche svg { width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

/* --- Premier ecran : sombre, comme celui de la home ---------------------------------
   Fond Erebus, texte Ghost White, surtitre et partie forte du titre en cyan, bouton clair.
   La photo de la page (.kx-v3-hero__photo) passe derriere le texte, fondue dans le violet : deux
   tons, les ombres en Erebus, les lumieres en violet (meme reglage que la home). Les pages a scene
   produit (.kx-v3-scene) gardent leur scene en carte, a droite.
   Le menu est pose sur ce premier ecran tant qu'on n'a pas defile (korbyx-chrome-v3.css) : la
   section remonte sous l'en-tete et garde sa place avec --kx-entete. */
.kx-v3-hero { position: relative; isolation: isolate; padding-top: 3.5rem; padding-bottom: 4rem; background: var(--v3-ink); color: var(--v3-paper); }
@media (min-width: 1024px) { .kx-v3-hero { padding-top: 5rem; padding-bottom: 5rem; } }
body.kx-da-v3:has(.entry-content > .kx-v3-hero) { --kx-entete: calc(var(--kx3h-annonce, 0px) + 57px); }
body.kx-da-v3:has(.kx3h-espace--annonce):has(.entry-content > .kx-v3-hero) { --kx-entete: calc(var(--kx3h-annonce, 40px) + 57px); }
@media (min-width: 1024px) {
  body.kx-da-v3:has(.entry-content > .kx-v3-hero) { --kx-entete: calc(var(--kx3h-annonce, 0px) + 65px); }
  body.kx-da-v3:has(.kx3h-espace--annonce):has(.entry-content > .kx-v3-hero) { --kx-entete: calc(var(--kx3h-annonce, 40px) + 65px); }
}
body.kx-da-v3:has(.entry-content > .kx-v3-hero) .kx3h-espace { display: none; }
body.kx-da-v3:has(.entry-content > .kx-v3-hero) .kx-v3-hero { padding-top: calc(var(--kx-entete) + 3rem); }
@media (min-width: 1024px) { body.kx-da-v3:has(.entry-content > .kx-v3-hero) .kx-v3-hero { padding-top: calc(var(--kx-entete) + 4.5rem); } }

.kx-v3-hero__grille { display: grid; gap: 3rem; align-items: center; }
@media (min-width: 1024px) { .kx-v3-hero__grille { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 4rem; } }
.kx-v3-hero__texte { position: relative; z-index: 1; }
.kx-da-v3 .kx-v3-hero .kx-v3-surtitre { color: var(--v3-cyan); }
.kx-da-v3 .kx-v3-hero .kx-v3-h1 { color: var(--v3-paper); }
.kx-da-v3 .kx-v3-hero .kx-v3-h1 em { color: var(--v3-cyan); }
.kx-da-v3 .kx-v3-hero .kx-v3-intro { max-width: 38rem; font-size: 1.125rem; color: rgba(248, 248, 255, 0.86); }
.kx-da-v3 .kx-v3-hero .kx-v3-intro strong { color: var(--v3-paper); }
.kx-da-v3 .kx-v3-hero .kx-v3-intro a { color: var(--v3-paper); text-decoration: underline; text-decoration-color: rgba(248, 248, 255, 0.5); text-underline-offset: .25em; }
/* Le bouton sur fond sombre : clair, cyan au survol ; le second en contour clair */
.kx-da-v3 .kx-v3-hero a.kx-v3-cta { background: var(--v3-paper); color: var(--v3-ink); }
.kx-da-v3 .kx-v3-hero a.kx-v3-cta:hover { background: var(--v3-cyan); color: var(--v3-ink); }
.kx-da-v3 .kx-v3-hero a.kx-v3-cta--contour { background: transparent; color: var(--v3-paper); box-shadow: inset 0 0 0 1px rgba(248, 248, 255, 0.45); }
.kx-da-v3 .kx-v3-hero a.kx-v3-cta--contour:hover { background: var(--v3-paper); color: var(--v3-ink); box-shadow: none; }
.kx-da-v3 .kx-v3-hero :is(a, button, summary):focus-visible { outline-color: var(--v3-cyan); }
.kx-v3-garanties-ligne { display: flex; flex-wrap: wrap; gap: .6rem 1.5rem; margin: 2rem 0 0; padding: 0; list-style: none; font-size: .9375rem; color: var(--v3-ink-70); }
.kx-v3-garanties-ligne li { display: inline-flex; align-items: center; gap: .45rem; margin: 0; }
.kx-v3-garanties-ligne svg { width: 1rem; height: 1rem; flex: none; fill: none; stroke: var(--v3-violet); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.kx-v3-hero .kx-v3-garanties-ligne { color: rgba(248, 248, 255, 0.8); }
.kx-v3-hero .kx-v3-garanties-ligne svg { stroke: var(--v3-cyan); }

/* La photo du premier ecran, en fond, fondue dans le violet */
.kx-v3-hero__photo { position: absolute; z-index: 0; inset: 0; margin: 0; overflow: hidden; background: var(--v3-violet); }
.kx-v3-hero__photo > img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: 62% 30%; filter: grayscale(1) contrast(1.22) brightness(1.06); mix-blend-mode: multiply; }
.kx-v3-hero__photo::before { content: ""; position: absolute; z-index: 1; inset: 0; background: var(--v3-ink); mix-blend-mode: lighten; }
/* Un voile Erebus, plus dense du cote du texte : le titre et le texte restent lisibles sur toute photo */
.kx-v3-hero__photo::after { content: ""; position: absolute; z-index: 2; inset: 0; background: linear-gradient(90deg, rgba(18, 1, 45, 0.78) 0%, rgba(18, 1, 45, 0.52) 48%, rgba(18, 1, 45, 0.22) 100%); }
@media (max-width: 1023px) { .kx-v3-hero__photo::after { background: rgba(18, 1, 45, 0.62); } }
.kx-v3-hero__carte { display: none; }

/* --- Cartes (livrables, demarche, garanties) ----------------------------------- */
.kx-v3-cartes { display: grid; gap: 1rem; margin: 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .kx-v3-cartes--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; } }
@media (min-width: 768px) { .kx-v3-cartes--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; } }
@media (min-width: 1200px) { .kx-v3-cartes--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.kx-v3-cartes > li { margin: 0; }
.kx-da-v3 .kx-v3-cartes h3 { margin: 0; font-size: 1.375rem; font-weight: 600; line-height: 1.2; letter-spacing: -0.025em; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-cartes p { margin: .75rem 0 0; font-size: 1rem; line-height: 1.6; color: var(--v3-ink-70); }

.kx-v3-carte { position: relative; display: flex; flex-direction: column; padding: 1.75rem; border: 1px solid var(--v3-line); border-radius: 6px; background: var(--v3-cream); transition: border-color .35s, transform .45s var(--v3-ease); }
@media (hover: hover) { .kx-v3-carte:hover, .kx-v3-garantie:hover, .kx-v3-etape:not(.kx-v3-etape--marque):hover { border-color: var(--v3-lavande); } }
.kx-v3-carte__num { font-size: 2.5rem; font-weight: 300; line-height: 1; letter-spacing: -0.04em; color: var(--v3-violet); font-variant-numeric: tabular-nums; margin-bottom: 1.5rem; }
.kx-v3-carte__visuel { display: flex; margin-top: auto; padding-top: 1.75rem; }
/* Petits visuels, dans le vocabulaire du produit */
.kx-v3-barres { align-items: flex-end; gap: .375rem; height: 5.25rem; }
.kx-v3-barres i { flex: 1; height: calc(var(--v) * 100%); border-radius: 3px 3px 0 0; background: rgba(18, 1, 45, 0.14); }
.kx-v3-barres i.is-fort { background: var(--v3-violet); }
.kx-v3-rangs { flex-direction: column; gap: .375rem; }
.kx-v3-rangs i { display: flex; align-items: center; height: 1.6rem; padding-left: .6rem; border-radius: 4px; background: var(--v3-paper); border: 1px solid var(--v3-line); font-style: normal; font-size: .75rem; font-weight: 600; color: var(--v3-ink-50); }
.kx-v3-rangs i:nth-child(2) { width: 82%; } .kx-v3-rangs i:nth-child(3) { width: 64%; }
.kx-v3-rangs i.is-fort { background: var(--v3-violet); border-color: var(--v3-violet); color: var(--v3-paper); }
.kx-v3-balance { flex-direction: column; gap: .5rem; }
.kx-v3-balance i { display: block; height: .7rem; border-radius: 2px; background: rgba(18, 1, 45, 0.14); width: 46%; }
.kx-v3-balance i.is-fort { width: 100%; background: var(--v3-violet); }

/* Demarche : trois etapes, la derniere en carte de marque */
.kx-v3-etape { position: relative; overflow: hidden; display: flex; flex-direction: column; padding: 1.75rem; border: 1px solid var(--v3-line); border-radius: 6px; background: var(--v3-cream); transition: border-color .35s, transform .45s var(--v3-ease); }
.kx-v3-pastille { align-self: flex-start; margin-bottom: 1.5rem; padding: .3rem .75rem; border-radius: 4px; background: var(--v3-violet-soft); font-size: .8125rem; font-weight: 600; color: var(--v3-violet); }
.kx-v3-personne { display: flex; align-items: center; gap: .75rem; margin-top: auto; padding-top: 1.75rem; font-size: .8125rem; line-height: 1.3; color: var(--v3-ink-70); }
.kx-v3-personne img { width: 2.5rem; height: 2.5rem; flex: none; border-radius: 9999px; object-fit: cover; object-position: top; background: var(--v3-violet-soft); }
.kx-v3-personne b { display: block; font-size: .9375rem; font-weight: 600; color: var(--v3-ink); }
.kx-v3-etape--marque { border-color: var(--v3-violet); background: var(--v3-violet); color: var(--v3-paper); }
.kx-v3-etape--marque > :not(.kx-v3-cercles) { position: relative; }
.kx-da-v3 .kx-v3-etape--marque h3 { color: var(--v3-paper); }
.kx-da-v3 .kx-v3-etape--marque p { color: var(--v3-paper); }
.kx-v3-etape--marque .kx-v3-pastille { background: var(--v3-paper-20); color: var(--v3-paper); }
.kx-v3-doc { display: flex; flex-direction: column; gap: .45rem; margin-top: auto; padding: 1rem; border-radius: 6px; background: var(--v3-paper); }
.kx-v3-etape--marque .kx-v3-doc { margin-top: 1.75rem; }
.kx-v3-doc i { display: block; height: .5rem; border-radius: 2px; background: rgba(18, 1, 45, 0.14); }
.kx-v3-doc i:first-child { width: 55%; background: var(--v3-violet); }
.kx-v3-doc i:nth-child(3) { width: 72%; }

/* Garanties */
.kx-v3-garantie { padding: 1.75rem; border: 1px solid var(--v3-line); border-radius: 6px; background: var(--v3-cream); transition: border-color .35s, transform .45s var(--v3-ease); }
.kx-v3-garantie svg { display: block; width: 2.75rem; height: 2.75rem; margin-bottom: 1.5rem; padding: .6rem; border-radius: var(--v3-r); background: var(--v3-violet-soft); fill: none; stroke: var(--v3-violet); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.kx-da-v3 .kx-v3-garantie h3 { font-size: 1.1875rem; }
.kx-da-v3 .kx-v3-garantie p { font-size: .9375rem; }

/* --- Agenda de rendez-vous -------------------------------------------------------- */
.kx-v3-agenda { min-height: 40rem; padding: .5rem; border-radius: 6px; background: var(--v3-cream); border: 1px solid var(--v3-line); }
.kx-v3-agenda .kx-cal { width: 100%; min-height: 39rem; overflow: auto; }

/* --- Le fondateur : carte de marque ----------------------------------------------- */
.kx-v3-fondateur { position: relative; overflow: hidden; display: grid; margin: 0; border-radius: 6px; background: var(--v3-violet); color: var(--v3-paper); }
@media (min-width: 1024px) { .kx-v3-fondateur { grid-template-columns: minmax(0, 1fr) 20rem; grid-template-rows: 1fr auto; column-gap: 3rem; } }
.kx-v3-fondateur > :not(.kx-v3-cercles) { position: relative; }
.kx-da-v3 .kx-v3-fondateur blockquote { margin: 0; padding: 2.5rem 1.75rem 0; border: 0; font-size: clamp(1.625rem, 2.8vw, 2.5rem); font-weight: 400; line-height: 1.2; letter-spacing: -0.025em; color: var(--v3-paper); font-style: normal; }
.kx-da-v3 .kx-v3-fondateur blockquote em { color: var(--v3-violet-30); }
@media (min-width: 640px) { .kx-da-v3 .kx-v3-fondateur blockquote { padding: 3rem 2.5rem 0; } }
@media (min-width: 1024px) { .kx-da-v3 .kx-v3-fondateur blockquote { padding: 3.5rem 0 0 3.5rem; align-self: center; } }
.kx-v3-fondateur figcaption { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 1.25rem 2.5rem; margin: 2rem 1.75rem 0; padding: 1.5rem 0 2rem; border-top: 1px solid var(--v3-paper-20); }
@media (min-width: 640px) { .kx-v3-fondateur figcaption { margin-inline: 2.5rem; } }
@media (min-width: 1024px) { .kx-v3-fondateur figcaption { grid-column: 1; margin: 2.5rem 0 0 3.5rem; padding-bottom: 3rem; } }
.kx-v3-fondateur__qui { font-size: .875rem; color: var(--v3-paper-70); line-height: 1.4; }
.kx-v3-fondateur__qui b { display: block; font-size: 1.125rem; font-weight: 600; color: var(--v3-paper); }
.kx-v3-fondateur dl { display: flex; gap: 2rem; margin: 0; }
.kx-v3-fondateur dl div { max-width: 11rem; }
.kx-v3-fondateur dt { font-size: 1.375rem; font-weight: 600; line-height: 1; color: var(--v3-paper); font-variant-numeric: tabular-nums; }
.kx-v3-fondateur dd { margin: .4rem 0 0; font-size: .75rem; line-height: 1.35; color: var(--v3-paper-70); }
.kx-v3-fondateur__photo { justify-self: center; align-self: end; display: block; width: 16rem; height: 20rem; overflow: hidden; border-radius: 6px 6px 0 0; background: var(--v3-violet-soft); }
@media (min-width: 1024px) { .kx-v3-fondateur__photo { grid-column: 2; grid-row: 1 / span 2; width: 100%; height: 25rem; margin-top: 3rem; margin-right: 3rem; justify-self: stretch; width: calc(100% - 3rem); } }
.kx-v3-fondateur__photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top; }

/* Cercles ton sur ton de la maquette produit, en derive lente */
.kx-v3-cercles { display: none; }
.kx-v3-cercles i { position: absolute; aspect-ratio: 1; border-radius: 9999px; background: rgba(38, 15, 107, 0.25); }
.kx-v3-cercles i:nth-child(1) { right: -10%; top: -30%; width: 46%; animation: kxV3Derive1 14s ease-in-out infinite alternate; }
.kx-v3-cercles i:nth-child(2) { right: 22%; top: 34%; width: 24%; animation: kxV3Derive2 11s ease-in-out infinite alternate; }
.kx-v3-cercles i:nth-child(3) { right: -14%; bottom: -42%; width: 52%; animation: kxV3Derive3 17s ease-in-out infinite alternate; }
@keyframes kxV3Derive1 { to { transform: translate(-8%, 10%) scale(1.08); } }
@keyframes kxV3Derive2 { to { transform: translate(18%, -14%) scale(.86); } }
@keyframes kxV3Derive3 { to { transform: translate(-12%, -8%) scale(1.12); } }

/* --- FAQ ------------------------------------------------------------------------------ */
.kx-v3-faq { display: grid; gap: 2.5rem; }
@media (min-width: 1024px) { .kx-v3-faq { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 4rem; } }
.kx-v3-faq__liste { border-top: 1px solid var(--v3-ink-20); }
.kx-v3-faq__liste details { border-bottom: 1px solid var(--v3-ink-20); }
.kx-da-v3 .kx-v3-faq__liste summary { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.5rem 0; list-style: none; cursor: pointer; font-size: 1.1875rem; font-weight: 500; line-height: 1.35; letter-spacing: -0.01em; color: var(--v3-ink); transition: color .25s; }
.kx-da-v3 .kx-v3-faq__liste summary:hover { color: var(--v3-violet); }
.kx-v3-faq__liste summary::-webkit-details-marker { display: none; }
.kx-v3-faq__liste summary > span { position: relative; flex: none; width: 1.25rem; height: 1.25rem; transition: transform .3s; }
.kx-v3-faq__liste summary > span::before, .kx-v3-faq__liste summary > span::after { content: ""; position: absolute; left: 50%; top: 50%; width: 1.125rem; height: 1.8px; margin: -.9px 0 0 -.5625rem; border-radius: 2px; background: var(--v3-violet); }
.kx-v3-faq__liste summary > span::after { transform: rotate(90deg); }
.kx-v3-faq__liste details[open] summary > span { transform: rotate(45deg); }
.kx-v3-faq__liste details[open] summary > span::before, .kx-v3-faq__liste details[open] summary > span::after { background: var(--v3-violet); }
.kx-da-v3 .kx-v3-faq__liste details p { margin: -.25rem 0 0; padding: 0 3.5rem 1.5rem 0; max-width: 46rem; font-size: 1rem; line-height: 1.7; color: var(--v3-ink-70); }

/* --- Pages legales : en-tete court, sommaire des pages legales, texte de lecture ------------- */
.kx-v3-legal-tete { padding-bottom: 2.5rem; }
@media (min-width: 1024px) { .kx-v3-legal-tete { padding-top: 4.5rem; padding-bottom: 3.5rem; } }
.kx-da-v3 .kx-v3-h1--page { font-size: clamp(2.5rem, 4.6vw, 4rem); line-height: 1; }
.kx-da-v3 .kx-v3-legal__maj { margin: 1.25rem 0 0; font-size: .9375rem; color: var(--v3-ink-50); }
.kx-v3-legal-tete + .kx-v3-legal { padding-top: 0; }
.kx-v3-legal__grille { display: grid; gap: 2rem; border-top: 1px solid var(--v3-line); padding-top: 2.5rem; }
@media (min-width: 1024px) { .kx-v3-legal__grille { grid-template-columns: 16rem minmax(0, 46rem); gap: 5rem; padding-top: 3.5rem; } }
.kx-da-v3 .entry-content .kx-v3-legal__nav ul { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; }
@media (min-width: 1024px) { .kx-da-v3 .entry-content .kx-v3-legal__nav ul { position: sticky; top: 6rem; flex-direction: column; } }
.kx-v3-legal__nav li { margin: 0; }
.kx-da-v3 .kx-v3-legal__nav a { display: inline-flex; padding: .5rem .9rem; border-radius: 4px; border: 1px solid var(--v3-line); font-size: .9375rem; font-weight: 500; color: var(--v3-ink-70); text-decoration: none; transition: border-color .25s, color .25s, background-color .25s; }
.kx-da-v3 .kx-v3-legal__nav a:hover { border-color: var(--v3-ink-30); color: var(--v3-ink); }
.kx-da-v3 .kx-v3-legal__nav a[aria-current="page"] { background: var(--v3-ink); border-color: var(--v3-ink); color: var(--v3-paper); }
.kx-da-v3 .kx-v3-legal__texte h2 { margin: 2.75rem 0 0; font-size: 1.5rem; font-weight: 600; line-height: 1.2; letter-spacing: -0.025em; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-legal__texte h2:first-child { margin-top: 0; }
.kx-da-v3 .kx-v3-legal__texte p { margin: .9rem 0 0; font-size: 1.0625rem; line-height: 1.7; color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-legal__texte > p:first-child { margin-top: 0; font-size: 1.1875rem; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-legal__texte a { color: var(--v3-violet); text-decoration: underline; text-underline-offset: .2em; text-decoration-thickness: 1px; }
/* Champ a completer avant la mise en ligne definitive : visible, sans ambiguite */
.kx-da-v3 .kx-v3-a-completer { padding: .05em .4em; border-radius: 2px; background: var(--v3-jaune); color: var(--v3-ink); font-weight: 600; }

@media (prefers-reduced-motion: reduce) {
  .kx-v3-cercles i { animation: none; }
  .kx-v3-cta__fleche, .kx-v3-carte, .kx-v3-garantie, .kx-v3-etape { transition: none; }
}
/* ==========================================================================
   3. Les gabarits kx- existants (pages SEO d'Aurore), habilles en v3
   Pilote : gabarit Secteur (/secteurs/ia-reseaux-franchises/). Le contenu ne bouge pas ;
   seule la presentation change : memes fonds, meme colonne, memes titres, memes boutons,
   memes cartes plates que la home. Tout le decor v1 est retire (halos, blob de marque,
   reflet des boutons, pastilles mono en capitales, pulsation du bouton).
   ========================================================================== */

/* Decors v1 retires */
.kx-da-v3 [class*="kx-blob--"]::after,
.kx-da-v3 .kx-section:has(> .kx-faq__item)::after,
.kx-da-v3 .kx-section:has(.kx-cta)::before,
.kx-da-v3 .kx-section:has(.kx-databox)::after,
.kx-da-v3 .kx-hero::before,
.kx-da-v3 .kx-souv::after { display: none !important; }

/* Sections : papier, lavande ou encre ; la colonne de la home (88rem, gouttieres dehors) */
.kx-da-v3.kx-body .kx-section {
  padding-block: 4rem;
  padding-left: max(var(--v3-gouttiere), calc((100% - 88rem) / 2)) !important;
  padding-right: max(var(--v3-gouttiere), calc((100% - 88rem) / 2)) !important;
  background: var(--v3-paper); color: var(--v3-ink);
}
@media (min-width: 640px) { .kx-da-v3.kx-body .kx-section { padding-block: 5rem; } }
@media (min-width: 1024px) { .kx-da-v3.kx-body .kx-section { padding-block: 6rem; } }
.kx-da-v3 .kx-section > * { max-width: none; }
.kx-da-v3.kx-body .kx-section--light { background: var(--v3-paper); }
.kx-da-v3.kx-body .kx-section--lavender { background: var(--v3-violet-soft); }
.kx-da-v3.kx-body .kx-section--dark { background: var(--v3-ink); color: var(--v3-paper); }
/* Deux sections claires de suite ne doublent pas leur marge */
.kx-da-v3.kx-body .kx-section--light + .kx-section--light,
.kx-da-v3.kx-body .entry-content > .kx-section:first-child + .kx-section--light { padding-top: 0; }

/* Le hero (premiere section) passe en clair, comme la home */
.kx-da-v3.kx-body .entry-content > .kx-section:first-child { background: var(--v3-paper); color: var(--v3-ink); padding-top: 3rem; }
@media (min-width: 1024px) { .kx-da-v3.kx-body .entry-content > .kx-section:first-child { padding-top: 4.5rem; } }

/* Surtitre : texte violet, sans pastille (la ou le mot IA a le droit d'apparaitre) */
.kx-da-v3 .kx-eyebrow,
.kx-da-v3 .kx-eyebrow--dark,
.kx-da-v3 .kx-cta-band .kx-eyebrow {
  display: inline-block; padding: 0; margin: 0; background: none; border-radius: 0;
  font-family: inherit; font-size: 1rem; font-weight: 600; letter-spacing: -0.005em; text-transform: none;
  color: var(--v3-violet);
}
@media (min-width: 640px) { .kx-da-v3 .kx-eyebrow { font-size: 1.125rem; } }
.kx-da-v3 .kx-eyebrow::before { content: none; }
.kx-da-v3 .kx-section--dark .kx-eyebrow, .kx-da-v3 .kx-cta-band .kx-eyebrow { color: var(--v3-violet-30); }
.kx-da-v3.kx-body .entry-content > .kx-section:first-child .kx-eyebrow { color: var(--v3-violet); }

/* Titres : Inter 600 serre ; la 2e ligne (<strong>) devient l'accent en italique a empattement */
.kx-da-v3 .kx-h1, .kx-da-v3 .kx-h2 {
  margin: 1rem 0 0; font-weight: 600; letter-spacing: -0.04em; line-height: 1.04;
  color: var(--v3-ink) !important; text-wrap: balance; max-width: 56rem;
}
.kx-da-v3 .kx-h1 { font-size: clamp(2.5rem, 4.4vw, 4.25rem); line-height: 1; }
.kx-da-v3 .kx-h2 { font-size: clamp(2.125rem, 3.6vw, 3.5rem); }
.kx-da-v3 :is(.kx-h1, .kx-h2) strong {
  font-style: normal; font-weight: 600; letter-spacing: -0.035em; color: inherit !important;
}
.kx-da-v3 .kx-h1 strong { color: var(--v3-violet) !important; }
.kx-da-v3 .kx-section--dark :is(.kx-h1, .kx-h2), .kx-da-v3 .kx-cta-band .kx-h2 { color: var(--v3-paper) !important; }
.kx-da-v3 .kx-section--dark :is(.kx-h1, .kx-h2) strong, .kx-da-v3 .kx-cta-band .kx-h2 strong { color: var(--v3-violet-30) !important; }
.kx-da-v3.kx-body .entry-content > .kx-section:first-child :is(.kx-h1, .kx-h2) { color: var(--v3-ink) !important; }
.kx-da-v3.kx-body .entry-content > .kx-section:first-child .kx-h1 strong { color: var(--v3-violet) !important; }

/* Textes : intro a 18 px, paragraphes a 17 px, largeur de lecture */
.kx-da-v3 .kx-intro { margin-top: 1.25rem; font-size: 1.125rem; line-height: 1.6; color: var(--v3-ink-70); max-width: 36rem; }
.kx-da-v3 .kx-intro--wide { max-width: 46rem; }
.kx-da-v3 .kx-section > p.wp-block-paragraph:not(.kx-intro):not(.kx-eyebrow):not(.kx-h2),
.kx-da-v3 .kx-section .wp-block-column > p.wp-block-paragraph:not(.kx-intro):not(.kx-eyebrow):not(.kx-h2):not(.kx-stat__num):not(.kx-stat__label),
.kx-da-v3 .kx-textbas p {
  max-width: 46rem; font-size: 1.0625rem; line-height: 1.7; color: var(--v3-ink-70);
}
.kx-da-v3.kx-body .kx-section--dark :is(.kx-intro, p.wp-block-paragraph) { color: rgba(248, 248, 255, 0.72); }
.kx-da-v3.kx-body .entry-content > .kx-section:first-child .kx-intro { color: var(--v3-ink-70); font-size: 1.1875rem; }
.kx-da-v3.kx-body .kx-section p a:not(.wp-block-button__link):not(.kx-mesh__link) { color: var(--v3-violet); background: none; text-decoration: underline; text-underline-offset: .2em; text-decoration-thickness: 1px; }
.kx-da-v3.kx-body .kx-section--dark p a:not(.wp-block-button__link):not(.kx-mesh__link) { color: var(--v3-violet-30); }

/* En-tete de bloc : titre a gauche, introduction a droite */
.kx-da-v3 .kx-head { gap: 1.25rem 4rem; margin-bottom: 0; }
.kx-da-v3 .kx-head .kx-intro { margin-top: 0; }
.kx-da-v3 .kx-head--center { max-width: 48rem; margin-bottom: 2.5rem; }
.kx-da-v3 .kx-head--center .kx-h2 { margin-inline: auto; }

/* Boutons : la pilule encre de la home, fleche dans une pastille ; contour pour le second */
.kx-da-v3 .kx-btn .wp-block-button__link {
  display: inline-flex; align-items: center; gap: .75rem; height: 3.5rem;
  padding: 0 .5rem 0 1.75rem; border: 0; border-radius: 4px;
  background: var(--v3-ink); color: var(--v3-paper);
  font-size: 1rem; font-weight: 500; letter-spacing: 0; text-transform: none;
  box-shadow: none; animation: none; transform: none; overflow: visible; transition: background-color .35s;
}
.kx-da-v3 .kx-btn .wp-block-button__link::after {
  content: ""; position: static; flex: none; width: 2.5rem; height: 2.5rem; opacity: 1; border-radius: 4px;
  transform: rotate(-45deg); animation: none;
  background: var(--v3-paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2312012D' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / 1rem no-repeat;
  transition: transform .45s cubic-bezier(.65, 0, .35, 1), background-color .35s;
}
.kx-da-v3.kx-body .kx-btn .wp-block-button__link:hover,
.kx-da-v3.kx-body .kx-btn .wp-block-button__link:focus { background: #12012D; color: var(--v3-paper); box-shadow: none; transform: none; animation: none; }
.kx-da-v3 .kx-btn .wp-block-button__link:hover::after {
  transform: none; animation: none;
  background: var(--v3-violet) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F8F8FF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / 1rem no-repeat;
}
/* Bouton secondaire : contour, sans pastille */
.kx-da-v3 :is(.kx-btn--outline-light, .kx-btn--outline-dark) .wp-block-button__link { padding: 0 1.75rem; background: transparent; color: var(--v3-ink); border: 1px solid var(--v3-ink); }
.kx-da-v3 :is(.kx-btn--outline-light, .kx-btn--outline-dark) .wp-block-button__link::after { content: none; }
.kx-da-v3.kx-body :is(.kx-btn--outline-light, .kx-btn--outline-dark) .wp-block-button__link:hover,
.kx-da-v3.kx-body :is(.kx-btn--outline-light, .kx-btn--outline-dark) .wp-block-button__link:focus { background: var(--v3-ink); color: var(--v3-paper); }
/* Sur fond encre ou violet : pilule papier */
.kx-da-v3 :is(.kx-section--dark:not(:first-child), .kx-cta-band) .kx-btn:not(.kx-btn--outline-light):not(.kx-btn--outline-dark) .wp-block-button__link { background: var(--v3-paper); color: var(--v3-ink); }
.kx-da-v3 :is(.kx-section--dark:not(:first-child), .kx-cta-band) .kx-btn:not(.kx-btn--outline-light):not(.kx-btn--outline-dark) .wp-block-button__link::after {
  background: var(--v3-ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F8F8FF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / 1rem no-repeat;
}
.kx-da-v3.kx-body :is(.kx-section--dark:not(:first-child), .kx-cta-band) .kx-btn:not(.kx-btn--outline-light):not(.kx-btn--outline-dark) .wp-block-button__link:hover { background: var(--v3-violet-soft); color: var(--v3-ink); }
.kx-da-v3 .kx-section--dark:not(:first-child) :is(.kx-btn--outline-light, .kx-btn--outline-dark) .wp-block-button__link { color: var(--v3-paper); border-color: rgba(248, 248, 255, 0.4); }
.kx-da-v3 .wp-block-buttons { gap: 1rem 1.25rem; margin-top: 2rem; }

/* Images : coins de la home, sans ombre */
.kx-da-v3 .kx-media img { border-radius: 6px; box-shadow: none; }
.kx-da-v3 .kx-media--band, .kx-da-v3 .kx-media--col { box-shadow: none; border-radius: 6px; }

/* Chiffres ou reperes cles : un trait violet, puis le repere, separes par des filets */
.kx-da-v3.kx-body .kx-stat__num { font-size: clamp(1.625rem, 2.4vw, 2.25rem); font-weight: 600; letter-spacing: -0.035em; line-height: 1.1; color: var(--v3-ink); }
.kx-da-v3 .kx-stat__num::before { width: 4rem; height: 3px; margin-bottom: 1.25rem; border-radius: 2px; -webkit-mask: none; mask: none; background-color: var(--v3-violet); }
.kx-da-v3.kx-body .kx-section--dark .kx-stat__num { color: var(--v3-paper); }
.kx-da-v3 .kx-section--dark .kx-stat__num::before { background-color: var(--v3-violet-30); }
.kx-da-v3 .kx-stat__label { font-size: 1rem; color: var(--v3-ink-70); }
@media (min-width: 1024px) {
  .kx-da-v3 .wp-block-column:has(> .kx-stat__num) + .wp-block-column:has(> .kx-stat__num) { border-left: 1px solid var(--v3-line); padding-left: 2rem; }
}

/* Grilles et cartes : plates, creme, filet fin */
.kx-da-v3 .kx-grid { gap: 1.5rem; margin-top: 3rem; }
.kx-da-v3 .kx-grid + .kx-grid { margin-top: 1.5rem; }
.kx-da-v3 .kx-card {
  padding: 1.75rem; border-radius: 6px; background: var(--v3-cream); border: 1px solid var(--v3-line);
  box-shadow: none; transition: transform .45s var(--v3-ease), border-color .35s;
}
.kx-da-v3 .kx-section--lavender .kx-card { background: var(--v3-paper); }
@media (hover: hover) { .kx-da-v3 .kx-card:hover { transform: translateY(-3px); border-color: var(--v3-ink-30); box-shadow: none; } }
.kx-da-v3 .kx-card--dark, .kx-da-v3 .kx-section--dark .kx-card { background: rgba(248, 248, 255, 0.06); border-color: rgba(248, 248, 255, 0.14); color: var(--v3-paper); }
@media (hover: hover) { .kx-da-v3 :is(.kx-card--dark, .kx-section--dark .kx-card):hover { border-color: rgba(248, 248, 255, 0.4); } }
.kx-da-v3.kx-body .kx-card :where(h2, h3, h4) { font-size: 1.375rem; font-weight: 600; line-height: 1.2; letter-spacing: -0.025em; color: var(--v3-ink); }
.kx-da-v3.kx-body :is(.kx-card--dark, .kx-section--dark .kx-card) :where(h2, h3, h4) { color: var(--v3-paper); }
.kx-da-v3.kx-body .kx-card :where(h2, h3, h4) a { color: inherit; text-decoration: none; background: none; }
.kx-da-v3 .kx-card :where(h2, h3, h4) a::after { content: " \2192"; font-weight: 400; color: var(--v3-violet); }
.kx-da-v3 :is(.kx-card--dark, .kx-section--dark .kx-card) :where(h2, h3, h4) a::after { color: var(--v3-violet-30); }
.kx-da-v3.kx-body .kx-card p { font-size: 1rem; line-height: 1.6; color: var(--v3-ink-70); }
.kx-da-v3.kx-body :is(.kx-card--dark, .kx-section--dark .kx-card) p { color: rgba(248, 248, 255, 0.72); }
.kx-da-v3.kx-body .kx-card :where(p, h2, h3, h4, ul, ol) + :where(p, h2, h3, h4, ul, ol) { margin-top: .75rem; }

/* Listes : pastilles lavande */
.kx-da-v3 .kx-checklist--ordered li::before { background: var(--v3-violet-soft); color: var(--v3-violet); font-size: .8125rem; font-weight: 600; }
.kx-da-v3 .kx-checklist:not(.kx-checklist--ordered) li::before { background-color: var(--v3-violet-soft); }
.kx-da-v3 :is(.kx-checklist, .kx-checklist--ordered) { max-width: 46rem; color: var(--v3-ink); }
.kx-da-v3 .kx-section--dark :is(.kx-checklist, .kx-checklist--ordered) { color: var(--v3-paper); }

/* Bande d'appel a l'action : aplat violet de marque, cercles ton sur ton */
.kx-da-v3.kx-body .kx-cta-band { background: var(--v3-violet) !important; color: var(--v3-paper); }
.kx-da-v3 .kx-cta-band::before, .kx-da-v3 .kx-cta-band::after {
  content: ""; position: absolute; z-index: 0; border-radius: 4px; aspect-ratio: 1; opacity: 1; translate: none;
  background: rgba(38, 15, 107, 0.25); -webkit-mask: none; mask: none; pointer-events: none;
}
.kx-da-v3 .kx-cta-band::before { inset: auto; right: -6%; top: -45%; width: 34%; animation: kxV3Derive1 14s ease-in-out infinite alternate; }
.kx-da-v3 .kx-cta-band::after { inset: auto; left: -8%; bottom: -60%; width: 30%; animation: kxV3Derive3 17s ease-in-out infinite alternate; }
.kx-da-v3.kx-body .kx-cta-band .kx-intro { color: rgba(248, 248, 255, 0.8); }
.kx-da-v3.kx-body .kx-cta-band__meta { font-family: inherit; font-size: .9375rem; letter-spacing: 0; text-transform: none; color: rgba(248, 248, 255, 0.8); }
.kx-da-v3 .kx-cta-band__meta li::before { background: var(--v3-violet-30); }

/* Citation : sur l'encre, a plat, portrait rond */
.kx-da-v3 .kx-quote-row, .kx-da-v3 .kx-section--dark .kx-quote-row { max-width: 60rem; padding: 0; background: none; box-shadow: none; }
.kx-da-v3 .kx-quote-avatar { box-shadow: none; background: var(--v3-violet-soft); }
.kx-da-v3.kx-body .kx-quote { font-size: clamp(1.5rem, 2.6vw, 2.25rem); font-weight: 500; line-height: 1.25; letter-spacing: -0.025em; color: var(--v3-ink); }
.kx-da-v3.kx-body .kx-section--dark .kx-quote { color: var(--v3-paper); }
.kx-da-v3.kx-body .kx-quote__author { font-size: .9375rem; color: var(--v3-violet); }
.kx-da-v3.kx-body .kx-section--dark .kx-quote__author { color: var(--v3-violet-30); }

/* FAQ : questions a 18 px, pastille + qui tourne et passe au violet */
.kx-da-v3 .kx-faq__item { border-color: rgba(18, 1, 45, 0.1); }
.kx-da-v3 .kx-head + .kx-faq__item, .kx-da-v3 .kx-faq__item:first-of-type { border-top: 1px solid rgba(18, 1, 45, 0.1); }
.kx-da-v3 .kx-faq__item > summary { color: var(--v3-ink); letter-spacing: -0.01em; }
.kx-da-v3 .kx-faq__item > summary::after { width: 2.25rem; height: 2.25rem; background: var(--v3-cream); color: var(--v3-ink); font-size: 1.25rem; }
.kx-da-v3 .kx-section--lavender .kx-faq__item > summary::after { background: var(--v3-paper); }
.kx-da-v3 .kx-faq__item[open] > summary::after { background: var(--v3-violet); color: var(--v3-paper); }
.kx-da-v3 .kx-faq__item > *:not(summary) { color: var(--v3-ink-70); font-size: 1rem; }

/* Maillage interne : cartes papier au filet fin */
.kx-da-v3 .kx-mesh__link { border-radius: 6px; background: var(--v3-paper); box-shadow: none; border: 1px solid var(--v3-line); color: var(--v3-ink); padding: 1rem 1.25rem; }
.kx-da-v3 .kx-mesh__link:hover { transform: translateY(-2px); box-shadow: none; border-color: var(--v3-ink-30); color: var(--v3-violet); }
.kx-da-v3 .kx-section--dark .kx-mesh__link { background: rgba(248, 248, 255, 0.06); border-color: rgba(248, 248, 255, 0.14); color: var(--v3-paper); }

/* CTA final sur fond clair : sans halo */
.kx-da-v3.kx-body .kx-section:has(.kx-cta) { background: var(--v3-paper) !important; }

@media (prefers-reduced-motion: reduce) { .kx-da-v3 .kx-cta-band::before, .kx-da-v3 .kx-cta-band::after { animation: none; } }

/* Alignement : dans une section, le contenu part du bord gauche de la colonne (WordPress centrait
   chaque bloc dans sa propre largeur) ; seuls les blocs faits pour etre centres le restent. */
.kx-da-v3.kx-body .kx-section > * { margin-left: 0 !important; margin-right: auto !important; }
.kx-da-v3.kx-body .kx-section > :is(.kx-head--center, .kx-faq__item, .kx-quote-row, .kx-cta-band__in, .kx-cta) { margin-left: auto !important; margin-right: auto !important; }
/* Texte courant sur fond encre : papier a 72 % (la regle claire, plus precise, l'emportait) */
.kx-da-v3.kx-body .kx-section--dark > p.wp-block-paragraph:not(.kx-intro):not(.kx-eyebrow):not(.kx-h2),
.kx-da-v3.kx-body .kx-section--dark .wp-block-column > p.wp-block-paragraph:not(.kx-intro):not(.kx-eyebrow):not(.kx-h2):not(.kx-stat__num):not(.kx-stat__label),
.kx-da-v3.kx-body .kx-section--dark .kx-textbas p { color: rgba(248, 248, 255, 0.72); }
/* Derniere bande d'appel a l'action : meme rythme que les autres sections */
.kx-da-v3.kx-body .kx-section:has(.kx-cta) { padding-block: 6rem !important; }
/* Titres des blocs centres (bande d'appel a l'action, en-tetes centres) : centres eux aussi */
.kx-da-v3 :is(.kx-cta-band__in, .kx-head--center, .kx-cta) :is(.kx-h2, .kx-intro) { margin-left: auto; margin-right: auto; text-align: center; }
/* Liste numerotee (parcours en etapes), complete : le gabarit ne pose que la classe de variante,
   sans .kx-checklist, donc sans la position de la pastille. Filet plat, sans degrade. */
.kx-da-v3.kx-body .kx-checklist--ordered { display: flex; flex-direction: column; gap: 0; margin: 2rem 0 0 !important; padding: 0; list-style: none; counter-reset: kx; }
.kx-da-v3.kx-body .kx-checklist--ordered li { position: relative; margin: 0; padding: 1rem 0 1rem 3.5rem; list-style: none; font-size: 1.0625rem; line-height: 1.5; color: var(--v3-ink); border-bottom: 1px solid var(--v3-line); }
.kx-da-v3.kx-body .kx-checklist--ordered li:last-child { border-bottom: 0; }
.kx-da-v3.kx-body .kx-checklist--ordered li::marker { content: none; }
.kx-da-v3.kx-body .kx-checklist--ordered li::before {
  counter-increment: kx; content: counter(kx); position: absolute; left: 0; top: .75rem;
  display: flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; border-radius: 9999px;
  background: var(--v3-violet-soft); background-image: none; color: var(--v3-violet); font-size: .875rem; font-weight: 600;
}
.kx-da-v3.kx-body .kx-checklist--ordered li:not(:last-child)::after { content: ""; position: absolute; left: 1.08rem; top: 3.1rem; bottom: -.6rem; width: 2px; background: var(--v3-violet-soft); }
.kx-da-v3.kx-body .kx-section--lavender .kx-checklist--ordered li::before, .kx-da-v3.kx-body .kx-section--lavender .kx-checklist--ordered li:not(:last-child)::after { background: var(--v3-paper); }
.kx-da-v3.kx-body .kx-section--dark .kx-checklist--ordered li { color: var(--v3-paper); border-bottom-color: rgba(248, 248, 255, 0.14); }
.kx-da-v3.kx-body .kx-section--dark .kx-checklist--ordered li::before { background: rgba(248, 248, 255, 0.12); color: var(--v3-paper); }
.kx-da-v3.kx-body .kx-section--dark .kx-checklist--ordered li:not(:last-child)::after { background: rgba(248, 248, 255, 0.14); }
/* Citation sur fond encre : texte papier plein, auteur en lavande (la regle du texte courant l'emportait) */
.kx-da-v3.kx-body .kx-section--dark p.kx-quote { color: var(--v3-paper); }
.kx-da-v3.kx-body .kx-section--dark p.kx-quote__author { color: var(--v3-violet-30); }

/* ==========================================================================
   4. Page secteur refaite en v3 (pilote : /secteurs/ia-reseaux-franchises/, retour de Thomas
   du 26/09 : « inspire-toi de Deel et Sana, prends le temps pour chaque section »).
   Hero de la home (photo et cartes produit), cas client DOMetVIE (chiffres a la Sana, recit en
   quatre temps a la Deel), mises en page editoriales a titre fixe, scenes produit face au texte,
   mini-interfaces dans les cartes, frise de la methode. Le texte SEO est garde mot pour mot.
   ========================================================================== */

/* Fonds supplementaires : encre et violet de marque */
.kx-v3-section--encre { background: var(--v3-ink); color: var(--v3-paper); }
.kx-v3-section--violet { position: relative; overflow: hidden; background: var(--v3-violet); color: var(--v3-paper); }
.kx-v3-section--violet > .kx-v3-wrap { position: relative; }
.kx-da-v3 :is(.kx-v3-section--encre, .kx-v3-section--violet) :is(.kx-v3-h2, .kx-v3-h1) { color: var(--v3-paper); }
.kx-da-v3 :is(.kx-v3-section--encre, .kx-v3-section--violet) .kx-v3-h2 em { color: var(--v3-blanc); }
.kx-da-v3 .kx-v3-section--encre .kx-v3-h2 em { color: var(--v3-cyan); }
.kx-da-v3 :is(.kx-v3-section--encre, .kx-v3-section--violet) .kx-v3-surtitre { color: var(--v3-violet-30); }
.kx-da-v3 .kx-v3-section--encre .kx-v3-surtitre { color: var(--v3-cyan); }
.kx-da-v3 .kx-v3-section--violet .kx-v3-surtitre { color: var(--v3-blanc); }
.kx-da-v3 :is(.kx-v3-section--encre, .kx-v3-section--violet) :is(.kx-v3-intro, p) { color: rgba(248, 248, 255, 0.8); }
.kx-da-v3 .kx-v3-section--violet .kx-v3-intro { color: rgba(248, 248, 255, 0.86); }

/* Boutons : contour, et pilule claire sur fond sombre */
.kx-da-v3 a.kx-v3-cta--contour { background: transparent; color: var(--v3-ink); box-shadow: inset 0 0 0 1px var(--v3-ink-20); }
.kx-da-v3 a.kx-v3-cta--contour:hover { background: var(--v3-ink); color: var(--v3-paper); box-shadow: none; }
.kx-da-v3 a.kx-v3-cta--clair { background: var(--v3-paper); color: var(--v3-ink); }
.kx-da-v3 a.kx-v3-cta--clair:hover { background: var(--v3-ink); color: var(--v3-paper); }
.kx-da-v3 .kx-v3-cta--clair .kx-v3-cta__fleche { color: inherit; }
.kx-da-v3 .kx-v3-section--encre a.kx-v3-cta--clair:hover { background: var(--v3-cyan); color: var(--v3-ink); }
.kx-v3-actions--centre { justify-content: center; }

/* Reassurance en ligne, separee par des filets */
.kx-da-v3 .entry-content .kx-v3-reassurance { display: flex; flex-wrap: wrap; gap: .5rem 0; margin: 1.75rem 0 0; padding: 0; list-style: none; font-size: .9375rem; color: var(--v3-ink-70); }
.kx-v3-reassurance li { margin: 0; padding: 0 1rem; border-left: 1px solid var(--v3-line); }
.kx-v3-reassurance li:first-child { padding-left: 0; border-left: 0; }
.kx-v3-reassurance b { font-weight: 600; color: var(--v3-ink); }
.kx-da-v3 .entry-content .kx-v3-reassurance--clair { color: rgba(248, 248, 255, 0.86); }
.kx-v3-reassurance--clair li { border-color: rgba(248, 248, 255, 0.3); }
.kx-da-v3 .entry-content .kx-v3-hero .kx-v3-reassurance { color: rgba(248, 248, 255, 0.8); }
.kx-v3-hero .kx-v3-reassurance li { border-color: rgba(248, 248, 255, 0.25); }
.kx-v3-hero .kx-v3-reassurance b { color: var(--v3-paper); }

/* --- Hero secteur : la composition de la home (texte a gauche, scene produit a droite) --- */
.kx-da-v3 .kx-v3-h1--long { font-size: clamp(2.25rem, 3.9vw, 3.625rem); line-height: 1.04; }
@media (min-width: 1024px) {
  .kx-v3-hero__grille--secteur { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: stretch; gap: 3.5rem; }
}
.kx-v3-hero__grille--secteur .kx-v3-hero__texte { align-self: center; }
.kx-v3-hero--secteur .kx-v3-intro { font-size: 1.125rem; max-width: 40rem; }

.kx-v3-scene { position: relative; min-height: 34rem; margin: 0; overflow: hidden; border-radius: 6px; background: var(--v3-line); }
@media (min-width: 1024px) { .kx-v3-scene { min-height: 40rem; } }
.kx-v3-scene__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; animation: kxV3Pose 1.6s var(--v3-ease) both; }
@keyframes kxV3Pose { from { opacity: 0; transform: scale(1.06); } to { opacity: 1; transform: none; } }

.kx-v3-flot { position: absolute; animation: kxV3Entre .9s var(--v3-ease) both; }
.kx-v3-flot > * { animation: kxV3Flotte 7s ease-in-out 2s infinite; }
.kx-v3-flot--1 { left: 1rem; top: 1rem; animation-delay: .5s; }
.kx-v3-flot--2 { right: 1.5rem; top: 1.5rem; display: none; animation-delay: .75s; }
.kx-v3-flot--2 > * { animation-duration: 8.5s; animation-delay: 2.6s; }
.kx-v3-flot--3 { left: 1rem; right: 1rem; bottom: 1rem; animation-delay: 1s; }
.kx-v3-flot--3 > * { animation-duration: 9.5s; animation-delay: 3.1s; }
@media (min-width: 640px) { .kx-v3-flot--1 { left: 1.5rem; top: 1.5rem; } .kx-v3-flot--3 { left: 1.5rem; right: 1.5rem; bottom: 1.5rem; } }
@media (min-width: 1280px) { .kx-v3-flot--2 { display: block; } }
@keyframes kxV3Entre { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes kxV3Flotte { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }

.kx-v3-carte-ui { border-radius: 8px; background: var(--v3-blanc); color: var(--v3-ink); box-shadow: 0 24px 48px -28px rgba(18, 1, 45, 0.5), 0 1px 3px rgba(18, 1, 45, 0.1); }
.kx-da-v3 .kx-v3-carte-ui p { margin: 0; }
.kx-v3-sante { display: flex; align-items: center; gap: 1rem; padding: .75rem 1rem; }
.kx-v3-sante small { display: block; font-size: .75rem; color: var(--v3-ink-70); }
.kx-v3-sante b { display: block; font-size: 1.5rem; font-weight: 600; line-height: 1.75rem; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.kx-v3-sante svg { width: 5rem; height: 1.9rem; }
.kx-v3-sante path { fill: none; stroke: #5B26FE; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 140; stroke-dashoffset: 140; animation: kxV3Trace 1.6s var(--v3-ease) 1.2s forwards; }
@keyframes kxV3Trace { to { stroke-dashoffset: 0; } }

.kx-v3-grille-pdv { display: flex; flex-direction: column; gap: .6rem; padding: .85rem; }
.kx-da-v3 .kx-v3-grille-pdv > p { display: flex; align-items: center; justify-content: space-between; gap: 1rem; font-size: .75rem; }
.kx-v3-alerte { display: inline-flex; align-items: center; gap: .35rem; padding: .1rem .5rem; border-radius: 3px; background: #F3FF55; color: #12012D; font-weight: 500; white-space: nowrap; }
.kx-v3-alerte::before { content: ""; width: .375rem; height: .375rem; border-radius: 9999px; background: #F3FF55; }
.kx-v3-tuiles { display: grid; grid-template-columns: repeat(15, 10px); gap: 4px; }
.kx-v3-tuiles i { display: block; aspect-ratio: 1; border-radius: 2px; background: rgba(91, 38, 254, 0.28); animation: kxV3Tuile .5s var(--v3-ease) both; }
.kx-v3-tuiles i:nth-child(3n) { animation-delay: 1.2s; } .kx-v3-tuiles i:nth-child(3n+1) { animation-delay: 1.35s; } .kx-v3-tuiles i:nth-child(3n+2) { animation-delay: 1.5s; }
.kx-v3-tuiles i.r { background: #F3FF55; animation: kxV3Tuile .5s var(--v3-ease) 1.8s both, kxV3Pulse 2.4s ease-in-out 2.4s infinite; }
.kx-v3-tuiles i.w { background: #D0CCD5; }
@keyframes kxV3Tuile { from { opacity: 0; transform: scale(.4); } to { opacity: 1; transform: none; } }
@keyframes kxV3Pulse { 50% { opacity: .45; } }

.kx-v3-korbyx { position: relative; overflow: hidden; padding: 1.25rem; background: var(--v3-violet); color: var(--v3-paper); }
.kx-v3-korbyx > :not(.kx-v3-cercles) { position: relative; }
.kx-da-v3 .kx-v3-korbyx__tete { display: flex; align-items: center; gap: .5rem; font-size: .8125rem; font-weight: 600; }
.kx-v3-marque { width: 1.1rem; height: 1.1rem; border-radius: 9999px; background: currentColor; -webkit-mask: radial-gradient(circle at 30% 30%, #000 22%, transparent 24%), radial-gradient(circle at 72% 30%, #000 22%, transparent 24%), radial-gradient(circle at 30% 72%, #000 22%, transparent 24%), radial-gradient(circle at 72% 72%, #000 22%, transparent 24%); mask: radial-gradient(circle at 30% 30%, #000 22%, transparent 24%), radial-gradient(circle at 72% 30%, #000 22%, transparent 24%), radial-gradient(circle at 30% 72%, #000 22%, transparent 24%), radial-gradient(circle at 72% 72%, #000 22%, transparent 24%); }
.kx-v3-direct { display: inline-flex; align-items: center; gap: .35rem; margin-left: auto; font-size: .75rem; font-weight: 500; color: rgba(248, 248, 255, 0.8); }
.kx-v3-direct::before { content: ""; width: .375rem; height: .375rem; border-radius: 9999px; background: var(--v3-jaune); }
.kx-da-v3 .kx-v3-korbyx__q { width: fit-content; max-width: 90%; margin-top: .75rem; padding: .5rem .75rem; border-radius: 4px 4px 4px 2px; background: rgba(248, 248, 255, 0.12); font-size: .875rem; line-height: 1.35; color: var(--v3-paper); }
.kx-da-v3 .kx-v3-korbyx__r { margin-top: .75rem; font-size: 1.0625rem; font-weight: 500; line-height: 1.4; letter-spacing: -0.01em; color: var(--v3-paper); }
@media (min-width: 640px) { .kx-da-v3 .kx-v3-korbyx__r { font-size: 1.125rem; } }
.kx-v3-korbyx__bouton { display: inline-flex; align-items: center; height: 1.9rem; margin-top: 1rem; padding: 0 .75rem; border-radius: 4px; background: var(--v3-blanc); color: var(--v3-violet); font-size: .75rem; font-weight: 600; }

/* Les trois reperes sous le hero : un trait violet, separes par des filets */
.kx-da-v3 .entry-content .kx-v3-reperes { display: grid; gap: 1.5rem; margin: 3.5rem 0 0; padding: 2rem 0 0; list-style: none; border-top: 1px solid var(--v3-line); }
@media (min-width: 768px) { .kx-da-v3 .entry-content .kx-v3-reperes { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; } }
.kx-v3-reperes li { margin: 0; }
@media (min-width: 768px) { .kx-v3-reperes li + li { padding-left: 2rem; margin-left: 2rem; border-left: 1px solid var(--v3-line); } }
/* (09/10) une ligne longue ne vient plus buter contre le filet du repere suivant */
@media (min-width: 768px) { .kx-v3-reperes li:not(:last-child) { padding-right: 2rem; } }
.kx-v3-reperes b { display: block; font-size: 1.25rem; font-weight: 600; letter-spacing: -0.025em; color: var(--v3-ink); }
.kx-v3-reperes b::before { content: ""; display: block; width: 3rem; height: 3px; margin-bottom: 1rem; border-radius: 2px; background: var(--v3-violet); }
.kx-v3-reperes span { display: block; margin-top: .4rem; font-size: .9375rem; line-height: 1.5; color: var(--v3-ink-70); }
.kx-da-v3 .entry-content .kx-v3-hero .kx-v3-reperes { position: relative; z-index: 1; border-top-color: rgba(248, 248, 255, 0.2); }
.kx-v3-hero .kx-v3-reperes li + li { border-left-color: rgba(248, 248, 255, 0.2); }
.kx-v3-hero .kx-v3-reperes b { font-weight: 600; color: var(--v3-paper); }
.kx-v3-hero .kx-v3-reperes b::before { height: 2px; border-radius: 0; background: var(--v3-cyan); }
.kx-v3-hero .kx-v3-reperes span { color: rgba(248, 248, 255, 0.76); }

/* --- Cas DOMetVIE : chiffres a la Sana, recit en quatre temps a la Deel ------------------- */
.kx-v3-cas__client { display: flex; flex-direction: column; gap: .9rem; }
.kx-v3-cas__client img { height: 1.75rem; width: auto; align-self: flex-start; filter: brightness(0) invert(.97); }
.kx-da-v3 .kx-v3-cas__client p { margin: 0; max-width: 26rem; font-size: .9375rem; line-height: 1.5; }
.kx-da-v3 .entry-content .kx-v3-chiffres { display: grid; gap: 1rem; margin: 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .kx-da-v3 .entry-content .kx-v3-chiffres { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; } }
.kx-v3-chiffres li { margin: 0; padding: 1.75rem; border-radius: 6px; border: 1px solid rgba(248, 248, 255, 0.14); background: rgba(248, 248, 255, 0.05); }
.kx-v3-chiffres b { display: block; font-size: clamp(3.5rem, 6vw, 5.5rem); line-height: .95; letter-spacing: -0.05em; font-weight: 300; color: var(--v3-cyan); font-variant-numeric: tabular-nums; }
.kx-v3-chiffres span { display: block; margin-top: 1.25rem; max-width: 20rem; font-size: 1rem; line-height: 1.5; color: rgba(248, 248, 255, 0.8); }

.kx-da-v3 .entry-content .kx-v3-recit { display: grid; gap: 1rem; margin: 1.5rem 0 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .kx-da-v3 .entry-content .kx-v3-recit { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; } }
@media (min-width: 1200px) { .kx-da-v3 .entry-content .kx-v3-recit { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.kx-v3-recit li { display: flex; flex-direction: column; margin: 0; padding: 1rem 1rem 1.5rem; border-radius: 6px; background: rgba(248, 248, 255, 0.05); border: 1px solid rgba(248, 248, 255, 0.14); }
.kx-v3-recit__visuel { display: flex; flex-direction: column; justify-content: center; gap: .5rem; height: 9rem; margin-bottom: 1.25rem; padding: 1rem; border-radius: 6px; background: var(--v3-paper); color: var(--v3-ink); }
.kx-v3-recit__temps { align-self: flex-start; margin: 0 .5rem; padding: .25rem .7rem; border-radius: 4px; background: rgba(248, 248, 255, 0.12); font-size: .8125rem; font-weight: 600; color: var(--v3-paper); }
.kx-da-v3 .kx-v3-recit p { margin: .9rem .5rem 0; font-size: .9375rem; line-height: 1.55; color: rgba(248, 248, 255, 0.78); }
/* Au depart : un tableur fige */
.kx-v3-mini-tableur { display: grid !important; grid-template-columns: repeat(4, 1fr); align-content: center; gap: 4px; }
.kx-v3-mini-tableur i { height: .9rem; border-radius: 3px; background: var(--v3-cream); border: 1px solid var(--v3-line); }
.kx-v3-mini-tableur em { grid-column: 1 / -1; margin-top: .5rem; font-style: normal; font-size: .75rem; color: #12012D; }
/* Ce qui a ete branche : l'ERP relie a Korbyx, un point circule */
.kx-v3-mini-branche { flex-direction: row !important; align-items: center; justify-content: center !important; gap: 0 !important; }
.kx-v3-mini-branche em { padding: .45rem .8rem; border-radius: 4px; border: 1px solid var(--v3-line); background: var(--v3-cream); font-style: normal; font-size: .8125rem; font-weight: 600; }
.kx-v3-mini-branche em.k { border-color: var(--v3-violet); background: var(--v3-violet); color: var(--v3-paper); }
.kx-v3-mini-branche i { position: relative; flex: 1; max-width: 4.5rem; height: 2px; background: var(--v3-line); }
.kx-v3-mini-branche i::after { content: ""; position: absolute; top: -3px; left: 0; width: 8px; height: 8px; border-radius: 9999px; background: var(--v3-violet); animation: kxV3Circule 2.2s ease-in-out infinite; }
@keyframes kxV3Circule { from { left: 0; } to { left: calc(100% - 8px); } }
/* Ce qui a ete repere : l'agence face a la mediane */
.kx-v3-mini-ecart > span { display: grid; grid-template-columns: 1fr; gap: .25rem; }
.kx-v3-mini-ecart small { font-size: .6875rem; color: var(--v3-ink-70); }
.kx-v3-mini-ecart i { display: block; height: .55rem; width: calc(var(--v) * 100%); border-radius: 2px; background: rgba(18, 1, 45, 0.2); }
.kx-v3-mini-ecart b { font-size: .8125rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.kx-v3-mini-ecart > span { grid-template-columns: 1fr auto; column-gap: .75rem; align-items: center; }
.kx-v3-mini-ecart small { grid-column: 1 / -1; }
.kx-v3-mini-ecart .r i { background: #F3FF55; }
.kx-v3-mini-ecart .r b { color: #12012D; }
/* Ce que ca a change : la visite preparee */
.kx-v3-mini-visite em { font-style: normal; font-size: .8125rem; font-weight: 600; }
.kx-v3-mini-visite i { display: flex; align-items: center; gap: .5rem; font-style: normal; font-size: .75rem; color: var(--v3-ink-70); }
.kx-v3-mini-visite i::before { content: ""; width: .9rem; height: .9rem; flex: none; border-radius: 9999px; background: #5B26FE url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F8F8FF' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E") center / .6rem no-repeat; }
.kx-v3-cas .kx-v3-actions { margin-top: 3rem; }

/* --- Mise en page editoriale : titre fixe a gauche, texte a droite (Sana) --------------- */
.kx-v3-edito { display: grid; gap: 2rem; }
@media (min-width: 1024px) { .kx-v3-edito { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 5rem; align-items: start; } .kx-v3-edito__tete { position: sticky; top: 7.5rem; } }
.kx-da-v3 .kx-v3-lead { margin: 0; font-size: clamp(1.25rem, 1.7vw, 1.5rem); font-weight: 400; line-height: 1.4; letter-spacing: -0.015em; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-section--encre .kx-v3-lead { color: var(--v3-paper); }
.kx-da-v3 :is(.kx-v3-edito__corps, .kx-v3-duo__texte, .kx-v3-methode__texte) > p:not(.kx-v3-lead):not(.kx-v3-surtitre) { margin: 1.25rem 0 0; font-size: 1.0625rem; line-height: 1.7; color: var(--v3-ink-70); }
.kx-v3-photo { margin: 2rem 0 0; }
.kx-v3-photo img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 6px; }

/* --- Six usages : cartes a mini-interface (Deel) ---------------------------------------- */
.kx-da-v3 .entry-content .kx-v3-usages { display: grid; gap: 1rem; margin: 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .kx-da-v3 .entry-content .kx-v3-usages { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; } }
@media (min-width: 1200px) { .kx-da-v3 .entry-content .kx-v3-usages { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.kx-v3-usages li { display: flex; flex-direction: column; margin: 0; padding: 1rem 1rem 1.75rem; border-radius: var(--v3-r); background: var(--v3-cream); border: 1px solid var(--v3-line); transition: border-color .35s; }
@media (hover: hover) { .kx-v3-usages li:hover { border-color: var(--v3-lavande); } }
.kx-v3-usage__visuel { display: flex; flex-direction: column; justify-content: center; gap: .5rem; height: 10rem; margin-bottom: 1.5rem; padding: 1.25rem; border-radius: 4px; background: var(--v3-violet-soft); }
.kx-da-v3 .kx-v3-usages h3 { margin: 0 .5rem; font-size: 1.3125rem; font-weight: 600; line-height: 1.25; letter-spacing: -0.025em; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-usages h3 a { color: inherit; text-decoration: none; }
.kx-da-v3 .kx-v3-usages h3 a::after { content: " \2192"; font-weight: 400; color: var(--v3-violet); }
.kx-da-v3 .kx-v3-usages h3 a:hover { color: var(--v3-violet); }
.kx-da-v3 .kx-v3-usages p { margin: .6rem .5rem 0; font-size: .9375rem; line-height: 1.55; color: var(--v3-ink-70); }
.kx-v3-bulle { width: fit-content; max-width: 92%; padding: .5rem .75rem; border-radius: 4px; font-size: .8125rem; line-height: 1.35; }
.kx-v3-bulle.q { align-self: flex-end; border-bottom-right-radius: 2px; background: var(--v3-blanc); color: var(--v3-ink); border: 1px solid var(--v3-line); }
.kx-v3-bulle.r { border-bottom-left-radius: 2px; background: var(--v3-violet-soft); color: var(--v3-violet); font-weight: 600; }
.kx-v3-progres { display: grid; grid-template-columns: 4.5rem 1fr; align-items: center; gap: .6rem; font-size: .75rem; color: var(--v3-ink-70); }
.kx-v3-progres em { font-style: normal; }
.kx-v3-progres i { position: relative; height: .5rem; border-radius: 2px; background: var(--v3-line); overflow: hidden; }
.kx-v3-progres i::after { content: ""; position: absolute; inset: 0 auto 0 0; width: calc(var(--v) * 100%); border-radius: 9999px; background: var(--v3-violet); }
.kx-v3-tuiles--grandes { grid-template-columns: repeat(8, 1fr); gap: 6px; width: 100%; }
.kx-v3-tuiles--grandes i { border-radius: 4px; animation: none; }
.kx-v3-tuiles--grandes i.r { animation: kxV3Pulse 2.4s ease-in-out infinite; }
.kx-v3-villes { display: flex; gap: .4rem; }
.kx-v3-villes em { padding: .3rem .65rem; border-radius: 4px; border: 1px solid var(--v3-line); background: var(--v3-paper); font-style: normal; font-size: .75rem; color: var(--v3-ink-70); }
.kx-v3-villes em.on { border-color: var(--v3-ink); background: var(--v3-ink); color: var(--v3-paper); }
.kx-v3-barres-mini { display: flex; align-items: flex-end; gap: .4rem; height: 100%; }
.kx-v3-barres-mini i { flex: 1; height: calc(var(--v) * 100%); border-radius: 3px 3px 0 0; background: rgba(18, 1, 45, 0.18); }
.kx-v3-barres-mini i.p { background: transparent; border: 2px dashed var(--v3-violet); border-bottom: 0; }
.kx-v3-dossiers { display: flex; flex-direction: column; gap: .35rem; }
.kx-v3-dossiers em { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .35rem .6rem; border-radius: 4px; background: var(--v3-paper); font-style: normal; font-size: .75rem; color: var(--v3-ink); }
.kx-v3-dossiers b { padding: .05rem .45rem; border-radius: 3px; background: #EFEDFF; color: #413457; font-weight: 500; }
.kx-v3-dossiers b.ok { background: #EFEDFF; color: #5B26FE; }
.kx-v3-dossiers b.v { background: var(--v3-violet-soft); color: var(--v3-violet); }

/* --- Scene produit face au texte (Deel) ----------------------------------------------------- */
.kx-v3-duo { display: grid; gap: 2.5rem; align-items: center; }
@media (min-width: 1024px) { .kx-v3-duo { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 5rem; } }
.kx-v3-duo__visuel { position: relative; margin: 0; }
.kx-v3-scene-manuel { padding: 2rem 1.25rem; border-radius: 6px; background: var(--v3-violet-soft); }
@media (min-width: 640px) { .kx-v3-scene-manuel { padding: 3rem 2.5rem; } }
.kx-v3-conv { display: flex; flex-direction: column; gap: 1rem; }
.kx-da-v3 .kx-v3-conv__q { align-self: flex-end; max-width: 85%; margin: 0; padding: .75rem 1rem; border-radius: 6px 6px 2px 6px; background: var(--v3-blanc); font-size: .9375rem; line-height: 1.4; color: var(--v3-ink); }
.kx-v3-conv__r { position: relative; max-width: 92%; padding: 1.25rem; border-radius: 6px 6px 6px 2px; background: var(--v3-violet); color: var(--v3-paper); }
.kx-da-v3 .kx-v3-conv__r p { margin: .6rem 0 0; font-size: 1rem; line-height: 1.5; color: var(--v3-paper); }
.kx-da-v3 .kx-v3-conv__r .kx-v3-korbyx__tete { margin: 0; }
.kx-v3-source { display: inline-flex; align-items: center; gap: .4rem; margin-top: .9rem; padding: .3rem .6rem; border-radius: 4px; background: var(--v3-paper); color: var(--v3-ink); font-size: .75rem; font-weight: 500; }
.kx-v3-source::before { content: ""; width: .8rem; height: .95rem; border-radius: 2px; border: 1.5px solid var(--v3-violet); }
.kx-da-v3 .kx-v3-conv__stat { margin: .5rem 0 0; font-size: .875rem; color: var(--v3-ink-70); }
.kx-v3-conv__stat b { font-weight: 600; color: var(--v3-ink); }

.kx-v3-scene-pilotage { padding-bottom: 2.5rem; }
.kx-v3-scene-pilotage img { display: block; width: 100%; aspect-ratio: 4 / 3.2; object-fit: cover; border-radius: 6px; }
.kx-v3-classement { position: absolute; left: 1rem; right: 1rem; bottom: 0; display: flex; flex-direction: column; gap: .55rem; padding: 1.1rem 1.25rem; border: 1px solid var(--v3-line); }
@media (min-width: 640px) { .kx-v3-classement { left: auto; right: -1rem; width: 22rem; } }
@media (min-width: 1024px) { .kx-v3-classement { right: -2rem; } }
.kx-da-v3 .kx-v3-classement p { display: grid; grid-template-columns: 6.5rem 1fr 3rem; align-items: center; gap: .6rem; font-size: .8125rem; }
.kx-da-v3 .kx-v3-classement .kx-v3-classement__tete { display: flex; justify-content: space-between; margin-bottom: .2rem; }
.kx-v3-classement__tete span { font-size: .75rem; color: var(--v3-ink-70); }
.kx-v3-classement em { font-style: normal; color: var(--v3-ink); }
.kx-v3-classement i { height: .5rem; width: calc(var(--v) * 100%); border-radius: 2px; background: #5B26FE; }
.kx-v3-classement b { text-align: right; font-weight: 600; font-variant-numeric: tabular-nums; }
.kx-v3-classement .r i { background: #F3FF55; }
.kx-v3-classement .r b, .kx-v3-classement .r em { color: #12012D; }

/* --- La strategie en trois temps (sur l'encre) ---------------------------------------------- */
.kx-da-v3 .entry-content .kx-v3-temps { margin: 2rem 0 0; padding: 0; list-style: none; counter-reset: t; }
.kx-v3-temps li { position: relative; margin: 0; padding: 1.5rem 0 1.5rem 4rem; border-top: 1px solid var(--v3-ink-20); counter-increment: t; }
.kx-v3-section--encre .kx-v3-temps li { border-top-color: rgba(248, 248, 255, 0.16); }
.kx-v3-temps li::before { content: "0" counter(t); position: absolute; left: 0; top: 1.5rem; font-size: 1.25rem; font-weight: 500; color: var(--v3-violet); font-variant-numeric: tabular-nums; }
.kx-v3-section--encre .kx-v3-temps li::before { color: var(--v3-cyan); }
.kx-da-v3 .kx-v3-temps p { margin: 0; font-size: 1.0625rem; line-height: 1.7; color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-temps p strong { font-weight: 600; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-section--encre .kx-v3-temps p { color: rgba(248, 248, 255, 0.78); }
.kx-da-v3 .kx-v3-section--encre .kx-v3-temps p strong { color: var(--v3-paper); }

/* --- Bande violette ------------------------------------------------------------------------- */
.kx-v3-bande__grille { display: grid; gap: 1.5rem; }
@media (min-width: 1024px) { .kx-v3-bande__grille { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 5rem; align-items: end; } }
.kx-da-v3 .kx-v3-bande .kx-v3-intro { margin-top: 0; font-size: 1.1875rem; }

/* --- La methode en frise (Deel) ---------------------------------------------------------------- */
.kx-v3-methode__texte { display: grid; gap: 0 3rem; }
@media (min-width: 1024px) { .kx-v3-methode__texte { grid-template-columns: 1fr 1fr; } }
.kx-da-v3 .kx-v3-methode__texte > p:first-child { margin-top: 0; }
.kx-da-v3 .entry-content .kx-v3-frise { display: grid; gap: 1rem; margin: 3rem 0 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .kx-da-v3 .entry-content .kx-v3-frise { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; } }
@media (min-width: 1200px) { .kx-da-v3 .entry-content .kx-v3-frise { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.kx-v3-frise li { position: relative; display: flex; flex-direction: column; margin: 0; padding: 1.5rem; border-radius: 6px; background: var(--v3-cream); border: 1px solid var(--v3-line); }
@media (min-width: 1200px) { .kx-v3-frise li:not(:last-child)::after { content: ""; position: absolute; z-index: 1; top: 50%; right: -1.25rem; width: 1rem; height: 1rem; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A099AB' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat; } }
.kx-v3-frise__num { font-size: 2.25rem; font-weight: 300; line-height: 1; letter-spacing: -0.04em; color: var(--v3-violet); font-variant-numeric: tabular-nums; }
.kx-v3-frise__visuel { display: flex; flex-wrap: wrap; align-content: center; gap: .35rem; height: 4.5rem; margin: 1.25rem 0; }
.kx-v3-frise__visuel i { display: block; }
.kx-v3-frise__visuel--audit i { width: 100%; height: .5rem; border-radius: 2px; background: var(--v3-line); }
.kx-v3-frise__visuel--audit i:nth-child(2) { width: 75%; } .kx-v3-frise__visuel--audit i:nth-child(3) { width: 55%; background: var(--v3-violet-30); }
.kx-v3-frise__visuel--pilote i { width: 1.4rem; height: 1.4rem; border-radius: 9999px; background: var(--v3-line); }
.kx-v3-frise__visuel--pilote i.on { background: var(--v3-violet); }
.kx-v3-frise__visuel--retours i { width: 70%; height: 1.6rem; border-radius: 4px; background: var(--v3-paper); border: 1px solid var(--v3-line); }
.kx-v3-frise__visuel--retours i:last-child { width: 55%; margin-left: auto; background: var(--v3-violet-soft); border-color: var(--v3-violet-soft); }
.kx-v3-frise__visuel--reseau { display: grid; grid-template-columns: repeat(8, 1fr); gap: 4px; }
.kx-v3-frise__visuel--reseau i { aspect-ratio: 1; border-radius: 3px; background: var(--v3-paper); }
.kx-da-v3 .kx-v3-frise p { margin: auto 0 0; font-size: 1.0625rem; font-weight: 600; line-height: 1.35; letter-spacing: -0.01em; color: var(--v3-ink); }
.kx-v3-frise__fin { background: var(--v3-violet) !important; border-color: var(--v3-violet) !important; }
.kx-v3-frise__fin .kx-v3-frise__num { color: var(--v3-violet-30); }
.kx-da-v3 .kx-v3-frise__fin p { color: var(--v3-paper); }
.kx-v3-frise__fin .kx-v3-frise__visuel--reseau i { background: rgba(248, 248, 255, 0.85); }

/* --- Citation en carte de marque (portrait a droite) ---------------------------------------- */
.kx-da-v3 .kx-v3-fondateur--citation figcaption { border-top: 1px solid var(--v3-paper-20); }

/* --- Liens connexes : cartes a fleche --------------------------------------------------------- */
.kx-da-v3 .entry-content .kx-v3-liens { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; }
@media (min-width: 640px) { .kx-da-v3 .entry-content .kx-v3-liens { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .kx-da-v3 .entry-content .kx-v3-liens { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; } }
.kx-v3-liens li { margin: 0; }
.kx-da-v3 .kx-v3-liens a { position: relative; display: flex; flex-direction: column; gap: .35rem; height: 100%; padding: 1.25rem 3.25rem 1.25rem 1.25rem; border-radius: var(--v3-r); background: var(--v3-blanc); border: 1px solid var(--v3-line); font-size: 1.0625rem; font-weight: 600; letter-spacing: -0.01em; color: var(--v3-ink); text-decoration: none; transition: border-color .3s, color .3s; }
.kx-da-v3 .kx-v3-liens a:hover { border-color: var(--v3-violet); color: var(--v3-violet); }
.kx-v3-liens small { font-size: .75rem; font-weight: 500; color: var(--v3-violet); letter-spacing: 0; }
.kx-v3-liens a::after { content: ""; position: absolute; right: 1.25rem; top: 50%; width: 1.125rem; height: 1.125rem; margin-top: -.5625rem; transition: transform .3s var(--v3-ease); background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235B26FE' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat; }
.kx-v3-liens a:hover::after { transform: translateX(4px); }

/* --- Appel final centre -------------------------------------------------------------------------- */
.kx-v3-fin__corps { display: flex; flex-direction: column; align-items: center; text-align: center; }
.kx-da-v3 .kx-v3-fin .kx-v3-h2 { max-width: 48rem; margin-top: 0; }
.kx-da-v3 .kx-v3-fin .kx-v3-intro { max-width: 40rem; }
.kx-v3-section.kx-v3-fin { padding-block: 6rem; background: var(--v3-lavande); }
@media (min-width: 1024px) { .kx-v3-section.kx-v3-fin { padding-block: 9rem; } }
.kx-da-v3 .kx-v3-fin .kx-v3-h2 { max-width: 62rem; font-size: clamp(2.375rem, 5vw, 4.75rem); line-height: 1.03; }
.kx-da-v3 .kx-v3-fin .kx-v3-h2 em { display: block; margin-top: .15em; color: var(--v3-violet); }
.kx-da-v3 .kx-v3-fin .kx-v3-intro { margin-top: 2.25rem; }
.kx-da-v3 .kx-v3-fin .kx-v3-actions { margin-top: 2.5rem; }
.kx-da-v3 .kx-v3-fin .kx-v3-surtitre { color: var(--v3-ink); }
.kx-da-v3 .kx-v3-fin :is(.kx-v3-fin__note, .kx-v3-intro) { color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-fin :is(.kx-v3-fin__note, .kx-v3-intro) a { color: var(--v3-ink); text-decoration: underline; text-underline-offset: .2em; }
.kx-da-v3 .kx-v3-fin a.kx-v3-cta { height: 4rem; padding: 0 2rem; font-size: 1.0625rem; }
.kx-da-v3 .kx-v3-fin a.kx-v3-cta--contour { box-shadow: inset 0 0 0 1px rgba(18, 1, 45, 0.3); }
.kx-da-v3 .entry-content .kx-v3-fin .kx-v3-reassurance { justify-content: center; color: var(--v3-ink-70); }
.kx-v3-fin .kx-v3-reassurance li { border-color: rgba(18, 1, 45, 0.2); }

/* --- Apparitions au defilement (posees par le script de la page, jamais sans lui) --------- */
.kx-v3-js .kx-v3-rv { opacity: 0; transform: translateY(18px); transition: opacity .8s var(--v3-ease), transform .9s var(--v3-ease); }
.kx-v3-js .kx-v3-rv.is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .kx-v3-scene__photo, .kx-v3-flot, .kx-v3-flot > *, .kx-v3-tuiles i, .kx-v3-mini-branche i::after { animation: none !important; }
  .kx-v3-sante path { animation: none; stroke-dashoffset: 0; }
}

/* Correctifs de relecture (26/09) */
.kx-v3-insecable { white-space: nowrap; }
.kx-da-v3 .kx-v3-duo__texte .kx-v3-h2 + .kx-v3-lead { margin-top: 1.25rem; }
.kx-da-v3 :is(.kx-v3-section--encre, .kx-v3-section--violet) p.kx-v3-h2 { color: var(--v3-paper); }
.kx-da-v3 :is(.kx-v3-section--encre, .kx-v3-section--violet) p.kx-v3-surtitre { color: var(--v3-violet-30); }
.kx-da-v3 .kx-v3-section--encre p.kx-v3-surtitre { color: var(--v3-cyan); }
.kx-da-v3 .kx-v3-section--violet p.kx-v3-surtitre { color: var(--v3-blanc); }
.kx-v3-section--lavande :is(.kx-v3-garantie, .kx-v3-carte) { background: var(--v3-paper); }
.kx-v3-section--lavande + .kx-v3-section--serree, .kx-v3-section--encre + .kx-v3-section--serree { padding-top: 4rem; }
@media (min-width: 640px) { .kx-v3-section--lavande + .kx-v3-section--serree, .kx-v3-section--encre + .kx-v3-section--serree { padding-top: 5rem; } }
@media (min-width: 1024px) { .kx-v3-section--lavande + .kx-v3-section--serree, .kx-v3-section--encre + .kx-v3-section--serree { padding-top: 6rem; } }
@media (min-width: 1024px) { .kx-v3-entete:has(> :only-child) { grid-template-columns: minmax(0, 1fr); } .kx-v3-entete:has(> :only-child) .kx-v3-h2 { max-width: 48rem; } }
.kx-v3-fondateur--citation .kx-v3-fondateur__qui b { display: inline; }
.kx-v3-fondateur--citation .kx-v3-fondateur__qui { font-size: 1rem; color: var(--v3-paper-70); }

/* ==========================================================================
   5. Pages Secteurs generees (kx_secteur_v3.py) : elements en plus de la page franchise
   ========================================================================== */
.kx-v3-section--papier { background: var(--v3-paper); }
.kx-v3-section--violet + .kx-v3-section--serree { padding-top: 4rem; }
@media (min-width: 640px) { .kx-v3-section--violet + .kx-v3-section--serree { padding-top: 5rem; } }
@media (min-width: 1024px) { .kx-v3-section--violet + .kx-v3-section--serree { padding-top: 6rem; } }

/* Texte et photo : alignes en haut quand le texte est long */
.kx-v3-duo--haut { align-items: start; }
@media (min-width: 1024px) { .kx-v3-duo--haut .kx-v3-duo__visuel { position: sticky; top: 7.5rem; } }
.kx-v3-duo__photo img { display: block; width: 100%; aspect-ratio: 4 / 3.3; object-fit: cover; border-radius: 6px; }

/* Liste cochee */
.kx-da-v3 .entry-content .kx-v3-checks { display: grid; gap: .75rem; margin: 1.75rem 0 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .kx-da-v3 .entry-content .kx-v3-checks { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem 1.5rem; } }
.kx-v3-checks li { position: relative; margin: 0; padding: .9rem 1rem .9rem 2.9rem; border-radius: var(--v3-r); border: 1px solid var(--v3-line); background: var(--v3-cream); font-size: 1rem; line-height: 1.45; color: var(--v3-ink); }
.kx-v3-section--lavande .kx-v3-checks li { background: var(--v3-blanc); border-color: transparent; }
.kx-v3-checks li::before { content: ""; position: absolute; left: 1rem; top: 1rem; width: 1.125rem; height: 1.125rem; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235B26FE' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E") center / contain no-repeat; }
.kx-v3-section--encre .kx-v3-checks li { background: rgba(248, 248, 255, 0.06); border-color: rgba(248, 248, 255, 0.14); color: var(--v3-paper); }
.kx-v3-section--encre .kx-v3-checks li::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231AECDE' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E"); }

/* Sous-parties (intertitres) en cartes */
.kx-v3-sous { display: grid; gap: 1rem; margin-top: 2rem; }
@media (min-width: 768px) { .kx-v3-sous { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; } }
.kx-v3-sous__item { padding: 1.5rem; border-radius: 6px; background: var(--v3-cream); border: 1px solid var(--v3-line); }
.kx-v3-section--lavande .kx-v3-sous__item { background: var(--v3-blanc); border-color: transparent; }
.kx-v3-section--encre .kx-v3-sous__item { background: rgba(248, 248, 255, 0.06); border-color: rgba(248, 248, 255, 0.14); }
.kx-da-v3 .kx-v3-sous__item p { margin: .5rem 0 0; font-size: .9375rem; line-height: 1.6; color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-sous__item .kx-v3-sous__titre { margin: 0; font-size: 1.125rem; font-weight: 600; letter-spacing: -0.02em; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-section--encre .kx-v3-sous__item p { color: rgba(248, 248, 255, 0.74); }
.kx-da-v3 .kx-v3-section--encre .kx-v3-sous__item .kx-v3-sous__titre { color: var(--v3-paper); }

/* Tableau comparatif : la colonne « avec » en violet */
.kx-v3-table { overflow-x: auto; border-radius: var(--v3-r); border: 1px solid var(--v3-line); background: var(--v3-blanc); }
.kx-v3-section--lavande .kx-v3-table { border-color: transparent; }
.kx-da-v3 .kx-v3-table table { width: 100%; min-width: 40rem; margin: 0; border: 0; border-collapse: collapse; font-size: .9375rem; }
.kx-da-v3 .kx-v3-table :is(th, td) { padding: 1.1rem 1.25rem; border: 0; border-bottom: 1px solid var(--v3-line); text-align: left; vertical-align: top; line-height: 1.5; background: none; }
.kx-da-v3 .kx-v3-table tbody tr:last-child td { border-bottom: 0; }
.kx-da-v3 .kx-v3-table th { font-size: .8125rem; font-weight: 600; color: var(--v3-ink-70); background: var(--v3-paper); }
.kx-da-v3 .kx-v3-table td { color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-table td:first-child { font-weight: 600; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-table :is(th, td):last-child { background: var(--v3-violet-soft); color: var(--v3-ink); }
.kx-da-v3 .kx-v3-table th:last-child { color: var(--v3-violet); }
.kx-v3-section--lavande .kx-v3-table :is(th, td):last-child { background: rgba(91, 38, 254, 0.08); }

/* Cartes d'usages : deux par rangee, ou photo a la place de la mini-interface */
@media (min-width: 1200px) { .kx-da-v3 .entry-content .kx-v3-usages--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.kx-v3-usage__visuel--photo { padding: 0; overflow: hidden; }
.kx-v3-usage__visuel--photo img { width: 100%; height: 100%; object-fit: cover; }
.kx-v3-section--papier .kx-v3-usages li { background: var(--v3-cream); }

/* Mini-interfaces abstraites (sans texte), a la maniere de Deel */
.kx-v3-abs { display: flex; flex-direction: column; justify-content: center; gap: .5rem; width: 100%; }
.kx-v3-abs i { display: block; }
.kx-v3-abs--conv i { height: 1.6rem; border-radius: 4px; }
.kx-v3-abs--conv i:nth-child(1) { width: 62%; align-self: flex-end; background: var(--v3-blanc); border: 1px solid var(--v3-line); }
.kx-v3-abs--conv i:nth-child(2) { width: 82%; background: var(--v3-violet); }
.kx-v3-abs--conv i:nth-child(3) { width: 38%; height: 1.2rem; background: var(--v3-violet-soft); }
.kx-v3-abs--progres i { position: relative; height: .55rem; border-radius: 2px; background: var(--v3-line); overflow: hidden; }
.kx-v3-abs--progres i::after { content: ""; position: absolute; inset: 0 auto 0 0; width: calc(var(--v) * 100%); border-radius: 9999px; background: var(--v3-violet); }
.kx-v3-abs--doc { padding: .9rem; border-radius: 4px; background: var(--v3-blanc); }
.kx-v3-abs--doc i { height: .45rem; border-radius: 2px; background: var(--v3-line); }
.kx-v3-abs--doc i:nth-child(1) { width: 45%; background: var(--v3-ink); height: .55rem; }
.kx-v3-abs--doc i:nth-child(3) { width: 80%; } .kx-v3-abs--doc i:nth-child(4) { width: 60%; }
.kx-v3-abs--doc b { align-self: flex-start; width: 4.5rem; height: 1.3rem; margin-top: .3rem; border-radius: 3px; background: var(--v3-violet-soft); }
.kx-v3-abs--liste i { display: flex; align-items: center; justify-content: space-between; height: 1.9rem; padding: 0 .6rem; border-radius: 4px; background: var(--v3-blanc); }
.kx-v3-abs--liste i::before { content: ""; width: 45%; height: .45rem; border-radius: 2px; background: var(--v3-line); }
.kx-v3-abs--liste b { width: 3.5rem; height: 1rem; border-radius: 3px; background: var(--v3-ink-20); }
.kx-v3-abs--liste b.ok { background: var(--v3-violet); } .kx-v3-abs--liste b.v { background: var(--v3-lavande); }

/* Pictogrammes des benefices avec lien */
.kx-da-v3 .kx-v3-garantie h3 a { color: inherit; text-decoration: none; }
.kx-da-v3 .kx-v3-garantie h3 a::after { content: " \2192"; font-weight: 400; color: var(--v3-violet); }
/* Sur fond papier, les cartes sont creme : la zone de mini-interface passe en papier bordee */
.kx-v3-section--papier .kx-v3-usage__visuel { background: var(--v3-violet-soft); }

/* ==========================================================================
   6. Plus de visuels et de mouvement (27/09) : pages Cas d'usage, Services, Prix, ROI et Secteurs
   Tout mouvement ne part qu'une fois le bloc a l'ecran (.is-in, pose par le script de la page) ;
   sans script ou avec le mouvement reduit, tout est visible et immobile.
   ========================================================================== */

/* --- Hero : Korbyx lit la question, reflechit, puis repond ---------------------------------- */
.kx-v3-korbyx__attente { position: relative; top: 1.1rem; display: flex; gap: .3rem; height: 0; opacity: 0; animation: kxV3Attente 1.5s ease 1.5s both; }
.kx-v3-korbyx__attente i { width: .4rem; height: .4rem; border-radius: 9999px; background: var(--v3-paper); animation: kxV3Rebond 1s ease-in-out infinite; }
.kx-v3-korbyx__attente i:nth-child(2) { animation-delay: .15s; }
.kx-v3-korbyx__attente i:nth-child(3) { animation-delay: .3s; }
.kx-v3-korbyx__q:has(+ .kx-v3-korbyx__attente) { animation: kxV3Entre .6s var(--v3-ease) 1.1s both; }
.kx-v3-korbyx__attente + .kx-v3-korbyx__r { animation: kxV3Entre .7s var(--v3-ease) 2.9s both; }
.kx-v3-korbyx__attente ~ .kx-v3-korbyx__bouton { animation: kxV3Entre .6s var(--v3-ease) 3.3s both; }
@keyframes kxV3Attente { 0% { opacity: 0; } 15%, 80% { opacity: 1; } 100% { opacity: 0; } }
@keyframes kxV3Rebond { 0%, 100% { transform: none; opacity: .5; } 50% { transform: translateY(-3px); opacity: 1; } }

/* Reperes sous le hero : le trait violet se trace */
.kx-v3-reperes b::before { transform-origin: left; animation: kxV3Trait 1s var(--v3-ease) 1s both; }
.kx-v3-reperes li:nth-child(2) b::before { animation-delay: 1.15s; }
.kx-v3-reperes li:nth-child(3) b::before { animation-delay: 1.3s; }
@keyframes kxV3Trait { from { transform: scaleX(0); } to { transform: none; } }

/* --- Titres : l'accent arrive juste apres le titre ------------------------------------------- */
.kx-v3-js .kx-v3-rv .kx-v3-h2 em { transition: opacity 1s ease .3s; }
.kx-v3-js .kx-v3-rv:not(.is-in) .kx-v3-h2 em { opacity: 0; }

/* --- Photos : elles s'ouvrent en entrant a l'ecran --------------------------------------------- */
.kx-v3-js :is(.kx-v3-duo__photo, .kx-v3-entete-photo__visuel, .kx-v3-bandeau__photo) > img { clip-path: inset(0 round 6px); transition: clip-path 1.3s var(--v3-ease), transform 1.8s var(--v3-ease); }
.kx-v3-js .kx-v3-rv:not(.is-in):is(.kx-v3-duo__photo, .kx-v3-entete-photo__visuel, .kx-v3-bandeau__photo) > img { clip-path: inset(9% 7% 9% 7% round 6px); transform: scale(1.08); }

/* --- Petites cartes produit posees sur les photos -------------------------------------------- */
.kx-v3-entete-photo__visuel { position: relative; margin: 0; }
.kx-v3-entete-photo__visuel > img { display: block; width: 100%; aspect-ratio: 4 / 3.1; object-fit: cover; border-radius: 6px; }
.kx-v3-puce { position: absolute; z-index: 1; left: 1rem; bottom: 1rem; display: flex; flex-direction: column; gap: .5rem; width: 12.5rem; padding: .9rem 1rem; border-radius: 6px; background: var(--v3-blanc); border: 0; box-shadow: 0 24px 48px -28px rgba(18, 1, 45, 0.5), 0 1px 3px rgba(18, 1, 45, 0.1); color: var(--v3-ink); }
@media (min-width: 1024px) {
  .kx-v3-puce { left: -1.5rem; bottom: 2rem; }
  .kx-v3-duo--inverse .kx-v3-puce, .kx-v3-entete-photo > .kx-v3-entete-photo__visuel:last-child .kx-v3-puce { left: auto; right: -1.5rem; }
}
.kx-v3-rv.is-in .kx-v3-puce { animation: kxV3Flotte 7s ease-in-out 1.6s infinite; }
.kx-v3-puce i { display: block; }
.kx-v3-puce__tete { display: flex; align-items: center; gap: .4rem; margin-bottom: .15rem; font-size: .75rem; font-weight: 600; }
.kx-v3-puce__tete .kx-v3-marque { width: .9rem; height: .9rem; color: var(--v3-violet); }
.kx-v3-puce--korbyx i { position: relative; height: .45rem; border-radius: 2px; background: var(--v3-line); overflow: hidden; }
.kx-v3-puce--korbyx i::after { content: ""; position: absolute; inset: 0 auto 0 0; width: calc(var(--v) * 100%); border-radius: 9999px; background: var(--v3-violet); transition: width 1.2s var(--v3-ease) .5s; }
.kx-v3-puce--korbyx i:nth-child(3)::after { transition-delay: .65s; }
.kx-v3-puce--korbyx i:nth-child(4)::after { transition-delay: .8s; }
.kx-v3-js .kx-v3-rv:not(.is-in) .kx-v3-puce--korbyx i::after { width: 0; }
.kx-v3-puce--courbe { flex-direction: row; align-items: center; gap: .9rem; width: auto; }
.kx-v3-puce--courbe b { width: 3rem; height: .9rem; border-radius: 3px; background: var(--v3-ink); }
.kx-v3-puce--courbe svg { width: 5.5rem; height: 2rem; }
.kx-v3-puce--courbe path { fill: none; stroke: #5B26FE; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1; stroke-dashoffset: 0; transition: stroke-dashoffset 1.6s var(--v3-ease) .5s; }
.kx-v3-js .kx-v3-rv:not(.is-in) .kx-v3-puce--courbe path { stroke-dashoffset: 1; }
.kx-v3-puce--coches { width: 11rem; }
.kx-v3-puce--coches i { display: flex; align-items: center; gap: .55rem; height: 1.1rem; }
.kx-v3-puce--coches i::before { content: ""; flex: none; width: 1.1rem; height: 1.1rem; border-radius: 9999px; background: #5B26FE url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F8F8FF' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E") center / .65rem no-repeat; transition: transform .5s var(--v3-ease) .6s; }
.kx-v3-puce--coches i::after { content: ""; flex: 1; height: .45rem; border-radius: 2px; background: var(--v3-line); }
.kx-v3-puce--coches i:nth-child(2)::after { flex: 0 1 70%; }
.kx-v3-puce--coches i:nth-child(3)::after { flex: 0 1 45%; }
.kx-v3-puce--coches i:nth-child(2)::before { transition-delay: .9s; }
.kx-v3-puce--coches i:nth-child(3)::before { transition-delay: 1.2s; background-color: var(--v3-violet); }
.kx-v3-js .kx-v3-rv:not(.is-in) .kx-v3-puce--coches i::before { transform: scale(0); }

/* --- Titre et photo cote a cote (sections de cartes, etapes illustrees) ----------------------- */
.kx-v3-entete-photo { display: grid; gap: 2rem; align-items: center; margin-bottom: 2.5rem; }
@media (min-width: 1024px) { .kx-v3-entete-photo { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 5rem; margin-bottom: 4rem; } }
.kx-v3-entete-photo .kx-v3-intro { max-width: 34rem; }
.kx-da-v3 .kx-v3-methode__col > p:not(.kx-v3-surtitre):not(.kx-v3-intro) { margin: 1.1rem 0 0; font-size: 1.0625rem; line-height: 1.7; color: var(--v3-ink-70); }

/* --- Visuel produit sous les titres fixes (grand ecran) --------------------------------------- */
.kx-v3-edito__visuel { display: none; }
@media (min-width: 1024px) {
  .kx-v3-edito__visuel { display: flex; flex-direction: column; justify-content: center; height: 11rem; max-width: 26rem; margin-top: 2.5rem; padding: 1.5rem; border-radius: 6px; background: var(--v3-violet-soft); }
  .kx-v3-section--lavande .kx-v3-edito__visuel { background: var(--v3-blanc); }
  .kx-v3-section--lavande .kx-v3-edito__visuel :is(.kx-v3-abs--liste i, .kx-v3-abs--doc) { background: var(--v3-violet-soft); }
  .kx-v3-section--encre .kx-v3-edito__visuel { background: rgba(248, 248, 255, 0.06); border: 1px solid rgba(248, 248, 255, 0.12); }
}

/* --- Les mini-interfaces s'animent a l'ecran --------------------------------------------------- */
.kx-v3-abs--conv i { transition: opacity .5s ease, transform .6s var(--v3-ease); }
.kx-v3-abs--conv i:nth-child(1) { transition-delay: .2s; }
.kx-v3-abs--conv i:nth-child(2) { transition-delay: .75s; }
.kx-v3-abs--conv i:nth-child(3) { transition-delay: 1.3s; }
.kx-v3-js .kx-v3-rv:not(.is-in) .kx-v3-abs--conv i { opacity: 0; transform: translateY(8px) scale(.94); }
.kx-v3-abs--progres i::after { transition: width 1.3s var(--v3-ease) .3s; }
.kx-v3-abs--progres i:nth-child(2)::after { transition-delay: .45s; }
.kx-v3-abs--progres i:nth-child(3)::after { transition-delay: .6s; }
.kx-v3-js .kx-v3-rv:not(.is-in) .kx-v3-abs--progres i::after { width: 0; }
.kx-v3-tuiles--grandes i { transition: opacity .4s ease, transform .5s var(--v3-ease); transition-delay: calc(var(--k, 0) * 45ms + .2s); }
.kx-v3-js .kx-v3-rv:not(.is-in) .kx-v3-tuiles--grandes i { opacity: 0; transform: scale(.4); }
.kx-v3-abs--doc i, .kx-v3-abs--doc b { transform-origin: left; transition: transform .8s var(--v3-ease); }
.kx-v3-abs--doc i:nth-child(1) { transition-delay: .2s; }
.kx-v3-abs--doc i:nth-child(2) { transition-delay: .35s; }
.kx-v3-abs--doc i:nth-child(3) { transition-delay: .5s; }
.kx-v3-abs--doc i:nth-child(4) { transition-delay: .65s; }
.kx-v3-abs--doc b { transition-delay: 1s; }
.kx-v3-js .kx-v3-rv:not(.is-in) :is(.kx-v3-abs--doc i, .kx-v3-abs--doc b) { transform: scaleX(0); }
.kx-v3-barres-mini i { transform-origin: bottom; transition: transform .9s var(--v3-ease); }
.kx-v3-barres-mini i:nth-child(2) { transition-delay: .1s; }
.kx-v3-barres-mini i:nth-child(3) { transition-delay: .2s; }
.kx-v3-barres-mini i:nth-child(4) { transition-delay: .3s; }
.kx-v3-barres-mini i:nth-child(5) { transition-delay: .5s; }
.kx-v3-barres-mini i:nth-child(6) { transition-delay: .6s; }
.kx-v3-js .kx-v3-rv:not(.is-in) .kx-v3-barres-mini i { transform: scaleY(0); }
.kx-v3-abs--liste i { transition: opacity .5s ease, transform .6s var(--v3-ease); }
.kx-v3-abs--liste i:nth-child(2) { transition-delay: .15s; }
.kx-v3-abs--liste i:nth-child(3) { transition-delay: .3s; }
.kx-v3-abs--liste b { transition: transform .45s var(--v3-ease) .9s; }
.kx-v3-abs--liste i:nth-child(2) b { transition-delay: 1.1s; }
.kx-v3-abs--liste i:nth-child(3) b { transition-delay: 1.3s; }
.kx-v3-js .kx-v3-rv:not(.is-in) .kx-v3-abs--liste i { opacity: 0; transform: translateX(-10px); }
.kx-v3-js .kx-v3-rv:not(.is-in) .kx-v3-abs--liste b { transform: scale(0); }

/* Pictogrammes des benefices : le trait se dessine */
.kx-v3-garantie svg [pathLength] { stroke-dasharray: 1; stroke-dashoffset: 0; transition: stroke-dashoffset 1.4s var(--v3-ease) .35s; }
.kx-v3-js .kx-v3-garantie.kx-v3-rv:not(.is-in) svg [pathLength] { stroke-dashoffset: 1; }

/* --- Frise : les etapes s'allument ; 5 ou 6 etapes sur trois colonnes ----------------------------- */
@media (min-width: 1200px) {
  .kx-da-v3 .entry-content :is(.kx-v3-frise--5, .kx-v3-frise--6) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  :is(.kx-v3-frise--5, .kx-v3-frise--6) li:nth-child(3n)::after { display: none; }
}
.kx-v3-frise__visuel--pilote i { transition: background-color .4s ease; }
.kx-v3-frise__visuel--pilote i.on:nth-child(1) { transition-delay: .4s; }
.kx-v3-frise__visuel--pilote i.on:nth-child(2) { transition-delay: .7s; }
.kx-v3-frise__visuel--pilote i.on:nth-child(3) { transition-delay: 1s; }
.kx-v3-js .kx-v3-rv:not(.is-in) .kx-v3-frise__visuel--pilote i.on { background: var(--v3-line); }
.kx-v3-frise__visuel--audit i { transform-origin: left; transition: transform .9s var(--v3-ease) .3s; }
.kx-v3-frise__visuel--audit i:nth-child(2) { transition-delay: .45s; }
.kx-v3-frise__visuel--audit i:nth-child(3) { transition-delay: .6s; }
.kx-v3-js .kx-v3-rv:not(.is-in) .kx-v3-frise__visuel--audit i { transform: scaleX(0); }
.kx-v3-frise__visuel--retours i { transition: opacity .5s ease .3s, transform .6s var(--v3-ease) .3s; }
.kx-v3-frise__visuel--retours i:last-child { transition-delay: .8s; }
.kx-v3-js .kx-v3-rv:not(.is-in) .kx-v3-frise__visuel--retours i { opacity: 0; transform: translateY(8px); }
.kx-v3-frise__visuel--reseau i { transition: opacity .4s ease .4s; }
.kx-v3-frise__visuel--reseau i:nth-child(even) { transition-delay: .7s; }
.kx-v3-js .kx-v3-rv:not(.is-in) .kx-v3-frise__visuel--reseau i { opacity: 0; }
/* Relier : trois points relies, un point violet circule */
.kx-v3-frise__visuel--branche { position: relative; flex-wrap: nowrap; align-items: center; justify-content: space-between; }
.kx-v3-frise__visuel--branche::before { content: ""; position: absolute; left: .7rem; right: .7rem; top: 50%; height: 2px; margin-top: -1px; background: var(--v3-line); }
.kx-v3-frise__visuel--branche i { position: relative; width: 1.4rem; height: 1.4rem; border-radius: 9999px; background: var(--v3-paper); border: 2px solid var(--v3-line); }
.kx-v3-frise__visuel--branche i:nth-child(2) { border-color: var(--v3-violet); background: var(--v3-violet); }
.kx-v3-frise__visuel--branche::after { content: ""; position: absolute; top: 50%; left: .7rem; width: 8px; height: 8px; margin-top: -4px; border-radius: 9999px; background: var(--v3-violet); animation: kxV3Relie 2.6s ease-in-out infinite alternate; }
@keyframes kxV3Relie { from { left: .7rem; } to { left: calc(100% - .7rem - 8px); } }
.kx-da-v3 .kx-v3-frise__apres { max-width: 48rem; margin-top: 2.5rem; }
.kx-da-v3 .kx-v3-frise__apres > p { margin: 1.1rem 0 0; font-size: 1.0625rem; line-height: 1.7; color: var(--v3-ink-70); }

/* --- Chaine d'etapes : des pastilles reliees, une lumiere les parcourt a tour de role ---------- */
.kx-da-v3 .entry-content .kx-v3-chaine { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 0; margin: 0 0 2.5rem; padding: 0; list-style: none; }
.kx-v3-chaine li { display: flex; align-items: center; margin: 0; padding: 0; background: none; font-size: .9375rem; font-weight: 600; line-height: 1; white-space: nowrap; color: var(--v3-ink); }
.kx-v3-chaine li + li::before { content: ""; width: 1.25rem; height: 2px; background: var(--v3-ink-30); }
.kx-v3-chaine li { --fond: var(--v3-blanc); }
.kx-v3-section--papier .kx-v3-chaine li { --fond: var(--v3-cream); }
.kx-v3-chaine li > span { padding: .65rem 1.1rem; border-radius: 4px; background: var(--fond); border: 1px solid var(--v3-line); }
.kx-v3-chaine.is-in li > span, html:not(.kx-v3-js) .kx-v3-chaine li > span { animation: kxV3Allume calc(var(--n, 5) * .7s) ease-in-out calc(var(--k, 0) * .7s + .4s) infinite; }
@keyframes kxV3Allume { 0%, 16% { background: var(--v3-violet); border-color: var(--v3-violet); color: var(--v3-paper); } 26%, 100% { background: var(--fond); border-color: var(--v3-line); color: var(--v3-ink); } }
.kx-v3-section--encre .kx-v3-chaine li { color: var(--v3-paper); --fond: rgba(248, 248, 255, 0.06); }

/* Pastilles simples : elles arrivent l'une apres l'autre */
.kx-da-v3 .entry-content .kx-v3-pastilles { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.75rem 0 0; padding: 0; list-style: none; }
.kx-v3-cartes + .kx-v3-pastilles, .kx-v3-usages + .kx-v3-pastilles { margin-top: 2rem; }
.kx-v3-pastilles li { margin: 0; padding: .5rem 1rem; border-radius: 4px; background: var(--v3-blanc); border: 1px solid var(--v3-line); font-size: .875rem; font-weight: 500; color: var(--v3-ink); transition: opacity .4s ease, transform .5s var(--v3-ease); transition-delay: calc(var(--k, 0) * 70ms + .15s); }
.kx-v3-section--papier .kx-v3-pastilles li { background: var(--v3-cream); }
.kx-v3-section--encre .kx-v3-pastilles li { background: rgba(248, 248, 255, 0.06); border-color: rgba(248, 248, 255, 0.16); color: var(--v3-paper); }
.kx-v3-js .kx-v3-pastilles.kx-v3-rv:not(.is-in) li { opacity: 0; transform: translateY(6px); }

/* --- Encadre « a retenir » ------------------------------------------------------------------------ */
.kx-v3-note { display: flex; gap: .9rem; margin-top: 2rem; padding: 1.25rem 1.5rem; border-radius: 6px; background: var(--v3-violet-soft); color: var(--v3-ink); }
.kx-v3-section--lavande .kx-v3-note { background: var(--v3-paper); }
.kx-v3-section--encre .kx-v3-note { background: rgba(248, 248, 255, 0.08); color: var(--v3-paper); }
.kx-v3-note .kx-v3-marque { flex: none; width: 1.25rem; height: 1.25rem; margin-top: .2rem; color: var(--v3-violet); }
.kx-v3-section--encre .kx-v3-note .kx-v3-marque { color: var(--v3-violet-30); }
.kx-da-v3 .kx-v3-note p { margin: 0; font-size: 1.0625rem; font-weight: 500; line-height: 1.55; color: inherit; }

/* --- Cartes : etiquette, liste courte -------------------------------------------------------------- */
.kx-v3-etiquette { align-self: flex-start; display: inline-block; margin: 0 .5rem .7rem; padding: .25rem .65rem; border-radius: 4px; background: var(--v3-violet-soft); color: var(--v3-violet); font-size: .75rem; font-weight: 600; line-height: 1.3; }
.kx-v3-garantie .kx-v3-etiquette { margin: 0 0 .7rem; }
.kx-v3-section--lavande .kx-v3-usages .kx-v3-etiquette { background: var(--v3-violet-soft); }
.kx-da-v3 .entry-content .kx-v3-carte__liste { margin: .8rem .5rem 0; padding: 0; list-style: none; }
.kx-v3-garantie .kx-v3-carte__liste, .kx-v3-sous__item .kx-v3-carte__liste { margin-left: 0 !important; margin-right: 0 !important; }
.kx-v3-usages .kx-v3-carte__liste li, .kx-v3-cartes .kx-v3-carte__liste li, .kx-v3-carte__liste li { position: relative; display: block; margin: .35rem 0 0; padding: 0 0 0 1.1rem; border: 0; border-radius: 0; background: none; font-size: .875rem; line-height: 1.5; color: var(--v3-ink-70); transform: none !important; }
.kx-v3-carte__liste li::before { content: ""; position: absolute; left: 0; top: .55em; width: .4rem; height: .4rem; border-radius: 9999px; background: var(--v3-violet); }

/* --- Tableaux : les lignes arrivent une a une ; legende -------------------------------------------- */
.kx-v3-table tbody tr { transition: opacity .5s ease; transition-delay: calc(var(--k, 0) * 90ms + .25s); }
.kx-v3-js .kx-v3-table.kx-v3-rv:not(.is-in) tbody tr { opacity: 0; }
.kx-da-v3 .kx-v3-legende { margin: 1rem 0 0; font-size: .875rem; color: var(--v3-ink-70); }

/* --- Bandeau photo : pleine colonne, leger parallaxe au defilement ---------------------------------- */
.kx-v3-bandeau__photo { position: relative; margin: 0; overflow: hidden; border-radius: 6px; aspect-ratio: 4 / 3; }
@media (min-width: 768px) { .kx-v3-bandeau__photo { aspect-ratio: 16 / 7; } }
.kx-v3-bandeau__photo > img { position: absolute; left: 0; top: -8%; width: 100%; height: 116%; object-fit: cover; }
@supports (animation-timeline: view()) {
  .kx-v3-bandeau__photo > img { animation: kxV3Parallaxe linear both; animation-timeline: view(); animation-range: cover; }
  @keyframes kxV3Parallaxe { from { translate: 0 -6%; } to { translate: 0 6%; } }
}
@media (min-width: 768px) { .kx-v3-bandeau .kx-v3-puce--grande { left: 1.5rem; bottom: 1.5rem; width: 15rem; } }
@media (min-width: 1024px) { .kx-v3-bandeau .kx-v3-puce--grande { left: 2rem; bottom: 2rem; } }
/* Le bandeau garde sa marge avant une section de couleur ; avant une section papier, celle-ci suffit */
.kx-v3-section.kx-v3-bandeau { padding-bottom: 4rem; }
@media (min-width: 640px) { .kx-v3-section.kx-v3-bandeau { padding-bottom: 5rem; } }
@media (min-width: 1024px) { .kx-v3-section.kx-v3-bandeau { padding-bottom: 6rem; } }
.kx-v3-section.kx-v3-bandeau + .kx-v3-section--papier { padding-top: 0; }

/* --- Le chiffre du hero : chiffres a chasse fixe pendant qu'il defile ------------------------------ */
[data-kx-compte] { font-variant-numeric: tabular-nums; }

@media (prefers-reduced-motion: reduce) {
  .kx-v3-korbyx__attente { display: none; }
  .kx-v3-korbyx__q, .kx-v3-korbyx__r, .kx-v3-korbyx__bouton, .kx-v3-reperes b::before, .kx-v3-puce, .kx-v3-chaine li > span, .kx-v3-frise__visuel--branche::after, .kx-v3-bandeau__photo > img { animation: none !important; }
}

/* ==========================================================================
   7. Modules de la home v3 dans les pages interieures (27/09) : surlignage des passages cles,
   bandeau des logos, fenetre de l'application en onglets, bande des secteurs.
   Mouvements : korbyx-v3-modules.js. Aucune ombre, aucun degrade (le marqueur est un aplat).
   ========================================================================== */

/* --- Surlignage : marqueur lavande plein, texte violet, pose a l'arrivee (home : .kx3-surligne) --- */
.kx-da-v3 strong.kx-v3-surligne { font-weight: 600; color: var(--v3-ink); background: none; padding: 0; margin: 0; }
.kx-v3-js-surligne .kx-da-v3 strong.kx-v3-surligne { background: none; }
.kx-v3-js-surligne .kx-da-v3 strong.kx-v3-surligne.is-in { background-size: 100% 100%; }
.kx-v3-js-surligne .kx-da-v3 .kx-v3-hero strong.kx-v3-surligne { transition-delay: 1.3s; }
.kx-da-v3 .kx-v3-section--lavande .kx-v3-surligne { color: var(--v3-ink); }
.kx-da-v3 .kx-v3-section--encre .kx-v3-surligne { color: var(--v3-paper); }
.kx-da-v3 :is(.kx-v3-hero, .kx-v3-section--violet) strong.kx-v3-surligne { color: var(--v3-paper); }

/* --- Bandeau des logos clients : fond encre, logos clairs qui defilent en continu --------------- */
.kx-v3-section.kx3m-logos { padding: 3rem 0; background: var(--v3-ink); color: var(--v3-paper); overflow: hidden; }
@media (min-width: 640px) { .kx-v3-section.kx3m-logos { padding: 3.5rem 0; } }
.kx-da-v3 .kx3m-logos__titre { margin: 0 0 2rem; padding: 0 var(--v3-gouttiere); text-align: center; font-size: .875rem; font-weight: 500; color: var(--v3-paper-70); }
.kx3m-logos__piste { overflow: hidden; }
.kx3m-logos__defile { display: flex; width: max-content; animation: kx3mDefile 60s linear infinite; }
@keyframes kx3mDefile { to { transform: translateX(-50%); } }
.kx3m-logos__rangee { display: flex; align-items: center; }
.kx3m-logo { flex: none; height: 1.75rem; width: auto; margin-right: 4rem; opacity: .55; filter: grayscale(1) brightness(1.9); transition: opacity .3s; }
.kx3m-logo--mono { filter: brightness(0) invert(.96); }
.kx3m-logo:hover { opacity: 1; }
.kx3m-logo--texte { display: inline-flex; align-items: center; gap: .6rem; height: auto; filter: none; }
.kx3m-logo--texte img { height: 2.25rem; width: auto; filter: brightness(0) invert(.96); }
.kx3m-logo--texte span { white-space: nowrap; font-size: 1.125rem; font-weight: 600; letter-spacing: -0.01em; color: var(--v3-paper); }

/* --- La fenetre de l'application, en trois onglets ------------------------------------------- */
.kx3m-produit__tete { max-width: 48rem; margin: 0 auto; text-align: center; }
.kx-da-v3 .kx3m-produit__tete .kx-v3-intro { max-width: 40rem; margin-left: auto; margin-right: auto; }
.kx3m-onglets { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .25rem; width: fit-content; max-width: 100%; margin: 3rem auto 0; padding: .25rem; border: 1px solid var(--v3-line); border-radius: 8px; background: var(--v3-blanc); }
.kx-da-v3 .kx3m-onglets button[role="tab"] { margin: 0; padding: .625rem 1rem; border: 0; border-radius: 6px; background: none; box-shadow: none; font: inherit; font-size: .9375rem; font-weight: 500; line-height: 1.4; color: var(--v3-ink-70); cursor: pointer; transition: background-color .3s, color .3s; }
.kx-da-v3 .kx3m-onglets button[role="tab"]:hover { background: var(--v3-violet-soft); color: var(--v3-ink); }
.kx-da-v3 .kx3m-onglets button[aria-selected="true"] { background: var(--v3-ink); color: var(--v3-paper); }
.kx-da-v3 .kx3m-pause { position: relative; display: flex; width: 2.5rem; height: 2.5rem; margin: 0 0 0 .25rem; padding: 0; align-items: center; justify-content: center; border: 0; border-radius: 6px; background: var(--v3-violet); color: var(--v3-paper); cursor: pointer; }
.kx3m-pause > svg:first-child { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(-90deg); fill: none; stroke: currentColor; stroke-width: 2.5; }
.kx3m-pause > svg:first-child circle:first-child { stroke-opacity: .25; }
.kx3m-anneau { stroke-dasharray: 100; stroke-dashoffset: 100; stroke-linecap: round; }
.kx3m-produit.is-tourne .kx3m-anneau { animation: kx3mAnneau 7s linear forwards; }
@keyframes kx3mAnneau { to { stroke-dashoffset: 0; } }
.kx3m-pause__ic, .kx3m-lecture__ic { width: 1rem; height: 1rem; fill: currentColor; }
.kx3m-lecture__ic, .kx3m-produit.is-pause .kx3m-pause__ic { display: none; }
.kx3m-produit.is-pause .kx3m-lecture__ic { display: block; margin-left: 2px; }
.kx3m-panneaux { display: grid; margin-top: 2rem; }
.kx3m-panneau { grid-area: 1 / 1; transition: opacity .5s ease; }
.kx3m-panneau[data-on="false"] { opacity: 0; pointer-events: none; visibility: hidden; transition: opacity .3s ease, visibility 0s .3s; }
.kx3m-panneau__texte { max-width: 42rem; margin: 0 auto; text-align: center; }
.kx-da-v3 .kx3m-panneau__texte h3 { margin: 0; font-size: clamp(1.5rem, 2.4vw, 2.125rem); font-weight: 300; line-height: 1.15; letter-spacing: -0.03em; color: var(--v3-ink); }
.kx-da-v3 .kx3m-panneau__texte p { margin: 1rem 0 0; font-size: 1.0625rem; line-height: 1.6; color: var(--v3-ink-70); }
.kx3m-fenetre { max-width: 72rem; margin: 2.5rem auto 0; overflow: hidden; border: 1px solid var(--v3-line); border-radius: 8px; background: var(--v3-blanc); color: var(--v3-ink); text-align: left; }
.kx-da-v3 .kx3m-fenetre__barre { display: flex; align-items: center; margin: 0; padding: .6rem 1rem; border-bottom: 1px solid var(--v3-line); background: #F8F8FF; }
.kx3m-points { display: flex; gap: .375rem; }
.kx3m-points i { width: .625rem; height: .625rem; border-radius: 9999px; background: var(--v3-line); }
.kx3m-adresse { display: inline-flex; align-items: center; gap: .375rem; margin: 0 auto; padding: .25rem .75rem; border-radius: 3px; background: var(--v3-blanc); font-size: .75rem; color: var(--v3-ink-70); }
.kx3m-adresse svg { width: .875rem; height: .875rem; color: var(--v3-violet); }
.kx3m-fenetre__corps { padding: 1rem; }
@media (min-width: 640px) { .kx3m-fenetre__corps { padding: 1.5rem; } }
@media (min-width: 1024px) { .kx3m-fenetre__corps { min-height: 25rem; display: flex; align-items: center; } }
.kx3m-duo { display: grid; gap: 1.25rem; width: 100%; align-items: center; }
@media (min-width: 1024px) { .kx3m-duo { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); } }
.kx3m-carte { padding: 1rem; border: 1px solid var(--v3-line); border-radius: 4px; background: var(--v3-blanc); }
.kx-da-v3 .kx3m-carte p { margin: 0; }
.kx-da-v3 .kx3m-carte__tete { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem; font-size: .75rem; }
.kx3m-carte__tete span:first-child { font-weight: 500; color: var(--v3-ink); }
.kx3m-carte__tete span:last-child { color: var(--v3-ink-50); }
.kx3m-carte__tete--petit span:first-child { font-weight: 400; color: var(--v3-ink-50); }
.kx-da-v3 .kx3m-carte__pied { display: flex; align-items: center; gap: .5rem; margin-top: 1.25rem; padding-top: .75rem; border-top: 1px solid var(--v3-line); font-size: .75rem; color: var(--v3-ink-70); }
.kx3m-carte__pied svg { width: 1rem; height: 1rem; color: var(--v3-violet); }
.kx3m-carte__pied--entre { justify-content: space-between; }
.kx-da-v3 .entry-content .kx3m-barres { position: relative; display: grid; gap: .75rem; margin: 1.25rem 0 0; padding: 0; list-style: none; }
.kx3m-barres li { display: grid; grid-template-columns: 7rem minmax(0, 1fr) 2.5rem; align-items: center; gap: .5rem; margin: 0; font-size: .75rem; color: var(--v3-ink-70); }
.kx3m-barres span { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.kx3m-barres i { display: block; height: .625rem; overflow: hidden; border-radius: 2px; background: #E9E6EE; }
.kx3m-barres b { display: block; height: 100%; border-radius: 9999px; background: rgba(18, 1, 45, 0.7); transform-origin: left; transition: transform 1.6s var(--v3-ease); transition-delay: calc(200ms + var(--i) * 150ms); }
.kx3m-barres em { font-style: normal; text-align: right; font-variant-numeric: tabular-nums; color: var(--v3-ink); }
.kx3m-barres li.r span, .kx3m-barres li.r em { font-weight: 500; color: #12012D; }
.kx3m-barres li.r b { background: #F3FF55; }
.kx3m-barres li.v b { background: var(--v3-violet); }
.kx3m-barres::before { content: ""; position: absolute; top: -.25rem; bottom: -.25rem; width: 1px; background: rgba(18, 1, 45, 0.4); left: calc(7.5rem + (100% - 10.5rem) * var(--m, .6)); }
.kx3m-barres--regions::before { content: none; }
.kx3m-barres--regions li { grid-template-columns: 6.5rem minmax(0, 1fr) 2.5rem; }
.kx3m-barres--regions b { transition-delay: calc(3700ms + var(--i) * 140ms); }
.kx3m-panneau[data-on="false"] .kx3m-barres b { transform: scaleX(0); transition: none; }
.kx3m-resultat { display: none; flex-direction: column; padding: 1rem; border: 1px solid var(--v3-line); border-radius: 4px; background: var(--v3-blanc); transition: opacity .7s ease 1.5s, transform .7s var(--v3-ease) 1.5s; }
@media (min-width: 1024px) { .kx3m-resultat { display: flex; } }
.kx3m-panneau[data-on="false"] .kx3m-resultat { opacity: 0; transform: translateY(.75rem); transition: none; }
#kx3m-p-interroger .kx3m-resultat { transition-delay: 3.4s; }
.kx-da-v3 .kx3m-resultat__sur { display: flex; align-items: center; gap: .5rem; margin: 0; font-size: .75rem; font-weight: 600; color: var(--v3-violet); }
.kx3m-resultat__sur svg { width: .875rem; height: .875rem; }
.kx-da-v3 .kx3m-resultat__titre { margin: .25rem 0 .75rem; font-size: 1rem; font-weight: 600; line-height: 1.35; color: var(--v3-ink); }
.kx3m-chiffres { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; margin: 0; }
.kx3m-chiffres > div { padding: .625rem .75rem; border-radius: 4px; background: var(--v3-violet-soft); }
.kx3m-chiffres dt { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.kx3m-chiffres dd { margin: 0; }
.kx3m-chiffres b { display: block; font-size: 1.375rem; font-weight: 600; line-height: 1; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; color: var(--v3-ink); }
.kx3m-chiffres dd span { display: block; margin-top: .25rem; font-size: .75rem; line-height: 1.35; color: var(--v3-ink-70); }
.kx-da-v3 .entry-content .kx3m-lignes { display: grid; gap: .375rem; margin: .75rem 0 0; padding: 0; list-style: none; }
.kx3m-ligne { display: flex; align-items: flex-start; gap: .5rem; margin: 0; font-size: .75rem; line-height: 1.4; color: var(--v3-ink-70); }
.kx3m-ligne svg { width: .875rem; height: .875rem; margin-top: 1px; color: #5B26FE; }
.kx3m-ligne--attente svg { color: var(--v3-ink-50); }
.kx3m-lignes--journal .kx3m-ligne { font-size: .875rem; }
/* Interroger : les messages arrivent l'un apres l'autre */
.kx3m-conv { display: grid; gap: .75rem; font-size: .875rem; }
.kx-da-v3 .kx3m-conv p { margin: 0; }
.kx-da-v3 .kx3m-conv__q { justify-self: end; max-width: 80%; padding: .625rem 1rem; border-radius: 6px 6px 2px 6px; background: var(--v3-violet-soft); color: var(--v3-ink); }
.kx3m-conv__r { display: flex; align-items: flex-start; gap: .5rem; }
.kx3m-conv__r > div { max-width: 88%; padding: .75rem 1rem; border: 1px solid rgba(91, 38, 254, 0.2); border-radius: 6px 6px 6px 2px; background: var(--v3-violet-soft); color: var(--v3-ink); }
.kx3m-conv__avatar { display: flex; width: 1.75rem; height: 1.75rem; flex: none; margin-top: .25rem; align-items: center; justify-content: center; border-radius: 4px; background: var(--v3-violet-soft); }
.kx3m-conv__avatar svg { width: 1rem; height: 1rem; color: var(--v3-violet); }
.kx3m-conv__q, .kx3m-conv__r { transition: opacity .5s ease, transform .5s var(--v3-ease); transition-delay: calc(200ms + var(--t) * 900ms); }
.kx3m-panneau[data-on="false"] :is(.kx3m-conv__q, .kx3m-conv__r) { opacity: 0; transform: translateY(.5rem); transition: none; }
.kx-da-v3 .kx3m-sources { display: flex !important; flex-wrap: wrap; gap: .375rem; margin-top: .625rem !important; }
.kx3m-sources span { padding: .125rem .5rem; border: 1px solid var(--v3-line); border-radius: 3px; background: var(--v3-blanc); font-size: .6875rem; color: var(--v3-ink-70); }
/* Agir : la tache preparee, validee, ecrite dans l'outil */
.kx3m-pile { display: grid; gap: .75rem; }
.kx3m-prepare { display: inline-flex; align-items: center; gap: .25rem; color: var(--v3-violet) !important; }
.kx3m-prepare svg { width: .75rem; height: .75rem; }
.kx-da-v3 .kx3m-tache { margin-top: .5rem !important; font-size: .9375rem; font-weight: 500; color: var(--v3-ink); }
.kx-da-v3 .kx3m-tache__texte { margin-top: .375rem !important; font-size: .875rem; line-height: 1.5; color: var(--v3-ink-70); }
.kx3m-valider { position: relative; display: inline-grid; font-size: .75rem; font-weight: 500; }
.kx3m-valider > span { grid-area: 1 / 1; display: inline-flex; align-items: center; gap: .375rem; padding: .25rem .75rem; border-radius: 4px; transition: opacity .5s ease 1.3s; }
.kx3m-valider > span:first-child { background: var(--v3-violet); color: var(--v3-paper); opacity: 0; }
.kx3m-valider > span:last-child { background: #EFEDFF; color: #5B26FE; }
.kx3m-valider svg { width: .875rem; height: .875rem; }
.kx3m-panneau[data-on="false"] .kx3m-valider > span:first-child { opacity: 1; transition: none; }
.kx3m-panneau[data-on="false"] .kx3m-valider > span:last-child { opacity: 0; transition: none; }
.kx-da-v3 .kx3m-mention { margin: 1rem 0 0; text-align: center; font-size: .75rem; color: var(--v3-ink-50); }

/* --- Bande des secteurs, cas d'usage et guides : pleine largeur, defile seule ----------------- */
.kx-v3-section.kx3m-bande-section { padding-left: 0; padding-right: 0; }
.kx3m-bande-section > .kx-v3-wrap { max-width: calc(88rem + 2 * var(--v3-gouttiere)); padding: 0 var(--v3-gouttiere); }
.kx-da-v3 .entry-content .kx3m-bande-section > .kx-v3-wrap { max-width: calc(88rem + 2 * var(--v3-gouttiere)) !important; }
.kx-da-v3 .entry-content .kx3m-bande { display: flex; gap: 1rem; margin: 0; padding: 0 1rem 0 0; overflow-x: auto; list-style: none; cursor: grab; scrollbar-width: none; }
.kx3m-bande::-webkit-scrollbar { display: none; }
.kx3m-bande:active { cursor: grabbing; }
.kx3m-bande__item { flex: none; width: min(21rem, 80vw); margin: 0 !important; }
.kx3m-bande__item--typo { width: min(26rem, 82vw); }
.kx3m-bande__item--article { width: min(19rem, 78vw); }
.kx-da-v3 .kx3m-c { position: relative; display: flex; flex-direction: column; height: 26rem; overflow: hidden; border-radius: 6px; text-decoration: none; color: var(--v3-ink); -webkit-user-drag: none; }
.kx3m-c img { -webkit-user-drag: none; user-select: none; }
.kx-da-v3 .entry-content a.kx3m-c, .kx-da-v3 .entry-content a.kx3m-c:hover, .kx-da-v3 .entry-content .kx3m-bande__tous { text-decoration: none !important; }
.kx3m-c__corps { position: relative; display: flex; flex: 1; flex-direction: column; padding: 1.25rem; }
.kx3m-pastille { display: inline-flex; width: fit-content; padding: .25rem .625rem; border-radius: 4px; background: var(--v3-violet-soft); font-size: .75rem; font-weight: 600; color: var(--v3-violet); }
.kx3m-pastille--sombre { background: rgba(248, 248, 255, 0.15); color: var(--v3-paper); }
.kx3m-c__titre { display: -webkit-box; margin-top: .75rem; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; font-size: 1.25rem; font-weight: 600; line-height: 1.2; letter-spacing: -0.025em; }
.kx3m-c__titre--serif { -webkit-line-clamp: 3; font-weight: 600; font-size: 1.375rem; letter-spacing: -0.025em; }
.kx3m-c__texte { display: -webkit-box; margin-top: .5rem; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; font-size: .875rem; line-height: 1.55; color: var(--v3-ink-70); }
.kx3m-c__voir { display: inline-flex; align-items: center; gap: .375rem; margin-top: auto; padding-top: .75rem; font-size: .875rem; font-weight: 500; }
.kx3m-c__voir svg { width: .875rem; height: .875rem; transition: transform .3s; }
.kx3m-c:hover .kx3m-c__voir svg { transform: translateX(2px); }
.kx3m-c__img { display: block; height: 12.5rem; flex: none; overflow: hidden; background: var(--v3-cream); }
.kx3m-c__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--v3-ease), filter 1.2s var(--v3-ease); }
.kx3m-c--photo { border: 1px solid var(--v3-line); background: var(--v3-blanc); }
.kx3m-c--photo .kx3m-c__img img { filter: none; }
.kx3m-c--photo:hover .kx3m-c__img img { transform: scale(1.04); }
.kx-da-v3 .kx3m-c--typo { background: var(--v3-ink); color: var(--v3-paper); }
.kx3m-c--typo > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: none; transition: transform 1.2s var(--v3-ease); }
.kx3m-c--typo:hover > img { transform: scale(1.04); }
.kx3m-c__voile { position: absolute; inset: 0; background: rgba(18, 1, 45, 0.55); }
.kx3m-c--typo .kx3m-c__corps { padding: 1.5rem; }
.kx3m-c__milieu { margin: auto 0; text-align: center; }
.kx3m-c__grand { display: block; font-size: clamp(2.25rem, 3.4vw, 3.25rem); font-weight: 600; line-height: .95; letter-spacing: -0.05em; overflow-wrap: anywhere; }
.kx3m-c__milieu em { display: block; margin-top: .75rem; font-style: normal; font-size: 1.125rem; font-weight: 400; line-height: 1.3; opacity: .86; }
.kx3m-c--typo .kx3m-c__voir { justify-content: center; }
.kx-da-v3 .kx3m-c--anim { background: var(--v3-violet); color: var(--v3-paper); }
.kx3m-c--anim .kx3m-c__corps { padding: 1.5rem; }
.kx3m-c__visuel { display: block; margin: auto 0; }
.kx3m-c--anim .kx3m-c__titre { font-size: 1.375rem; }
.kx3m-c--anim .kx3m-c__texte { color: var(--v3-paper-70); }
.kx3m-c--guide { background: var(--v3-violet-soft); }
.kx3m-c--guide .kx3m-c__img { height: 11rem; background: var(--v3-blanc); }
.kx3m-c--guide:hover .kx3m-c__img img { transform: scale(1.04); }
.kx3m-anim-tuiles { display: grid; grid-template-columns: repeat(8, 1fr); gap: .375rem; }
.kx3m-anim-tuiles i { aspect-ratio: 1; border-radius: 4px; background: rgba(248, 248, 255, 0.15); }
.kx3m-anim-tuiles i.r { background: #F3FF55; animation: kxV3Pulse 2.4s ease-in-out infinite; }
.kx3m-anim-relance { display: grid; gap: .5rem; font-size: .875rem; }
.kx3m-anim-relance > span { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .625rem .875rem; border-radius: 4px; background: rgba(248, 248, 255, 0.1); animation: kx3mRelance 3.6s ease-in-out infinite; }
.kx3m-anim-relance b { padding: .125rem .5rem; border-radius: 4px; background: var(--v3-paper); font-size: .75rem; font-weight: 600; color: var(--v3-violet); }
@keyframes kx3mRelance { 0%, 100% { opacity: .55; } 20%, 60% { opacity: 1; } }
.kx3m-anim-barres { display: flex; align-items: flex-end; gap: .5rem; height: 9rem; }
.kx3m-anim-barres i { flex: 1; border-radius: 4px 4px 0 0; background: rgba(248, 248, 255, 0.8); transform-origin: bottom; animation: kx3mBarre 3.2s ease-in-out infinite; }
@keyframes kx3mBarre { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(.72); } }
.kx3m-bande__pied { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2.5rem; margin-top: 2rem; }
.kx3m-bande__fleches { display: flex; gap: .5rem; }
.kx-da-v3 .kx3m-bande__fleches button { display: flex; width: 2.75rem; height: 2.75rem; margin: 0; padding: 0; align-items: center; justify-content: center; border: 1px solid var(--v3-ink-20); border-radius: 4px; background: var(--v3-blanc); color: var(--v3-ink); cursor: pointer; transition: border-color .3s; }
.kx3m-bande__fleches button:hover { border-color: var(--v3-ink); }
.kx3m-bande__fleches svg { width: 1rem; height: 1rem; }
.kx3m-bande__fleches button:first-child svg { transform: rotate(180deg); }
.kx-da-v3 .kx3m-bande__tous { display: inline-flex; align-items: center; gap: .375rem; font-size: 1rem; font-weight: 500; color: var(--v3-violet); text-decoration: none; }
.kx3m-bande__tous svg { width: 1rem; height: 1rem; }

@media (prefers-reduced-motion: reduce) {
  .kx3m-logos__defile, .kx3m-anim-tuiles i.r, .kx3m-anim-relance > span, .kx3m-anim-barres i, .kx3m-produit .kx3m-anneau { animation: none !important; }
  .kx3m-logos__piste { overflow-x: auto; }
}

/* ==========================================================================
   8. Pages faites sur les gabarits d'Aurore (kx_gabarit_v3.py, 27/09) : blocs en plus
   ========================================================================== */
/* Chiffres cles : en grand, separes par des filets, un trait violet qui se trace (home : bandeau) */
.kx-da-v3 .entry-content .kx-v3-stats { display: grid; gap: 2rem; margin: 0; padding: 0; list-style: none; }
@media (min-width: 640px) { .kx-da-v3 .entry-content :is(.kx-v3-stats--2, .kx-v3-stats--4) { grid-template-columns: repeat(2, minmax(0, 1fr)); } .kx-da-v3 .entry-content .kx-v3-stats--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; } }
@media (min-width: 1024px) { .kx-da-v3 .entry-content .kx-v3-stats--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; } }
.kx-v3-stats li { margin: 0; }
@media (min-width: 640px) { .kx-v3-stats--3 li + li, .kx-v3-stats--4 li + li { padding-left: 2rem; margin-left: 2rem; border-left: 1px solid var(--v3-line); } }
.kx-v3-stats b { display: block; font-size: clamp(2.5rem, 3.9vw, 3.75rem); text-wrap: balance; font-weight: 300; line-height: .95; letter-spacing: -0.05em; color: var(--v3-violet); font-variant-numeric: tabular-nums; }
.kx-v3-stats b::after { content: ""; display: block; width: 3rem; height: 2px; margin-top: 1.25rem; border-radius: 0; background: var(--v3-violet); transform-origin: left; transition: transform 1s var(--v3-ease) .3s; }
.kx-v3-js .kx-v3-stats li.kx-v3-rv:not(.is-in) b::after { transform: scaleX(0); }
.kx-v3-stats span { display: block; margin-top: 1rem; max-width: 22rem; font-size: 1rem; line-height: 1.5; color: var(--v3-ink-70); }
.kx-v3-section--encre .kx-v3-stats b { color: var(--v3-cyan); }
.kx-v3-section--encre .kx-v3-stats b::after { background: var(--v3-cyan); }
.kx-v3-section--encre .kx-v3-stats span { color: rgba(248, 248, 255, 0.78); }
.kx-v3-section--encre .kx-v3-stats li + li { border-color: rgba(248, 248, 255, 0.16); }

/* Ce qu'il faut eviter : une croix sobre, pas de rouge */
.kx-da-v3 .entry-content .kx-v3-croix { display: grid; gap: .6rem; margin: 1.5rem 0 0; padding: 0; list-style: none; }
.kx-v3-croix li { position: relative; margin: 0; padding: 0 0 0 2rem; font-size: 1rem; line-height: 1.5; color: var(--v3-ink); }
.kx-v3-croix li::before { content: ""; position: absolute; left: 0; top: .1rem; width: 1.25rem; height: 1.25rem; border-radius: 9999px; background: var(--v3-cream) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23413457' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M7 7l10 10M17 7L7 17'/%3E%3C/svg%3E") center / .7rem no-repeat; border: 1px solid var(--v3-line); }
.kx-v3-section--encre .kx-v3-croix li { color: var(--v3-paper); }

/* Sources citees */
.kx-da-v3 .entry-content .kx-v3-sources { display: grid; gap: .4rem; margin: 1.75rem 0 0; padding: 1.25rem 0 0; list-style: none; border-top: 1px solid var(--v3-line); }
.kx-v3-sources li { margin: 0; font-size: .875rem; line-height: 1.5; color: var(--v3-ink-70); }
.kx-v3-sources a { color: inherit; }

/* Texte sans titre (suite de section) et paragraphes d'introduction en plus */
.kx-v3-texte-seul { max-width: 48rem; }
.kx-da-v3 .kx-v3-texte-seul > p:not(.kx-v3-lead) { margin: 1.25rem 0 0; font-size: 1.0625rem; line-height: 1.7; color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-texte-seul > :first-child { margin-top: 0; }
.kx-v3-intro-suite { max-width: 48rem; margin: -1.5rem 0 2.5rem; }
.kx-da-v3 .kx-v3-intro-suite p { margin: .9rem 0 0; font-size: 1.0625rem; line-height: 1.7; color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-hero .kx-v3-intro--suite { margin-top: .9rem; font-size: 1.0625rem; }

/* Titres d'etape (h3) : un cran sous les titres de section */
.kx-da-v3 .kx-v3-h2.kx-v3-h2--etape { font-size: clamp(1.75rem, 2.6vw, 2.5rem); }

/* Bande violette et appel final : lignes en plus */
.kx-da-v3 :is(.kx-v3-bande__note, .kx-v3-bande__meta) { margin: 1rem 0 0; font-size: .9375rem; line-height: 1.55; color: var(--v3-paper-70); }
.kx-da-v3 .kx-v3-fin__note { max-width: 40rem; margin: 1.25rem auto 0; font-size: .9375rem; line-height: 1.55; color: var(--v3-ink-70); }

/* Modules du theme gardes tels quels (calculateur) */
.kx-v3-brut .kx-calc { margin: 0; }

/* ==========================================================================
   9. Blog (27/09) : articles et index, a la maniere de Stripe, Linear et Sana.
   Colonne de lecture de 46rem, sommaire fixe qui suit la lecture, rail de partage et d'appel.
   ========================================================================== */
.kx-v3-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.kx-da-v3 .post-navigation, .kx-da-v3.single-post .entry-header { display: none; }
.kx-da-v3:is(.blog, .category, .error404) #content > .ast-container { display: block; max-width: none; padding: 0; }
.kx-da-v3:is(.blog, .category, .error404) #primary { margin: 0; padding: 0; width: 100%; }

/* Barre de lecture, tout en haut de l'ecran */
.kx-v3-lecture { position: fixed; z-index: 1002; left: 0; right: 0; top: 0; height: 3px; pointer-events: none; }
body.admin-bar .kx-v3-lecture { top: 32px; }
.kx-v3-lecture i { display: block; height: 100%; background: var(--v3-violet); transform-origin: left; transform: scaleX(var(--p, 0)); }

/* Petit bouton des rails et des cartes */
.kx-da-v3 a.kx-v3-cta.kx-v3-cta--petit { height: 2.75rem; gap: .6rem; padding: 0 .375rem 0 1.25rem; font-size: .875rem; }
.kx-v3-cta--petit .kx-v3-cta__fleche { width: 2rem; height: 2rem; }

/* --- Hero d'article : centre, editorial ---------------------------------------------------------- */
.kx-v3-section.kx-v3-art-hero { padding-bottom: 0; }
.kx-v3-art-hero__texte { max-width: 54rem; margin: 0 auto; text-align: center; }
.kx-da-v3 .kx-v3-art-fil { display: inline-flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .5rem; font-size: .875rem; font-weight: 500; }
.kx-da-v3 .kx-v3-art-fil a { color: var(--v3-violet); text-decoration: none; }
.kx-da-v3 .kx-v3-art-fil a:hover { text-decoration: underline; text-underline-offset: .2em; }
.kx-v3-art-fil span { color: var(--v3-ink-30); }
.kx-da-v3 .kx-v3-h1.kx-v3-art-hero__titre { margin: 1.25rem auto 0; font-size: clamp(2.25rem, 4.4vw, 3.75rem); line-height: 1.04; }
.kx-da-v3 .kx-v3-art-hero__chapo { max-width: 44rem; margin: 1.5rem auto 0; font-size: clamp(1.125rem, 1.5vw, 1.3125rem); line-height: 1.6; color: var(--v3-ink-70); }
.kx-v3-art-hero__infos { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1rem 1.75rem; margin-top: 2rem; }
.kx-v3-art-hero__auteur { display: inline-flex; align-items: center; gap: .75rem; text-align: left; }
.kx-v3-art-hero__avatar { display: flex; width: 2.75rem; height: 2.75rem; align-items: center; justify-content: center; border-radius: 4px; background: var(--v3-violet-soft); color: var(--v3-violet); }
.kx-v3-art-hero__avatar svg { width: 1.4rem; height: 1.4rem; }
.kx-v3-art-hero__auteur b { display: block; font-size: .9375rem; font-weight: 600; color: var(--v3-ink); }
.kx-v3-art-hero__auteur small { display: block; font-size: .8125rem; color: var(--v3-ink-50); }
.kx-v3-art-hero__duree { display: inline-flex; align-items: center; gap: .45rem; padding: .45rem .9rem; border-radius: 4px; background: var(--v3-violet-soft); font-size: .8125rem; font-weight: 500; color: var(--v3-ink-70); }
.kx-v3-art-hero__duree svg { width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.kx-v3-art-hero__couverture { margin: 3rem 0 0; overflow: hidden; border-radius: 6px; background: var(--v3-cream); }
.kx-v3-art-hero__couverture img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 8; object-fit: cover; animation: kxV3Pose 1.6s var(--v3-ease) both; }
@media (max-width: 767px) { .kx-v3-art-hero__couverture img { aspect-ratio: 4 / 3; } }

/* --- Grille de l'article : sommaire, colonne de lecture, rail ------------------------------------ */
.kx-v3-section.kx-v3-art { padding-top: 3.5rem; }
@media (min-width: 1024px) { .kx-v3-section.kx-v3-art { padding-top: 5rem; } }
.kx-v3-art__grille { display: grid; gap: 3rem; }
@media (min-width: 1024px) { .kx-v3-art__grille { grid-template-columns: 13rem minmax(0, 46rem); justify-content: space-between; } .kx-v3-art__rail { grid-column: 2; } }
@media (min-width: 1280px) { .kx-v3-art__grille { grid-template-columns: 13rem minmax(0, 46rem) 15rem; } .kx-v3-art__rail { grid-column: auto; } }

/* Sommaire fixe : la section en cours s'allume, un trait violet suit la lecture */
.kx-v3-art__sommaire { display: none; }
@media (min-width: 1024px) {
  .kx-v3-art__sommaire { display: block; position: sticky; top: 7.5rem; align-self: start; max-height: calc(100vh - 9rem); overflow: auto; scrollbar-width: none; }
}
.kx-da-v3 .kx-v3-art__sommaire > p { margin: 0 0 1rem; font-size: .8125rem; font-weight: 600; color: var(--v3-ink-50); }
.kx-da-v3 .entry-content .kx-v3-art__sommaire ol { position: relative; margin: 0; padding: 0; list-style: none; border-left: 2px solid var(--v3-line); }
.kx-v3-art__sommaire ol::before { content: ""; position: absolute; left: -2px; top: 0; width: 2px; height: 100%; background: var(--v3-violet); transform-origin: top; transform: scaleY(var(--p, 0)); transition: transform .2s linear; }
.kx-v3-art__sommaire li { margin: 0; }
.kx-da-v3 .kx-v3-art__sommaire a { display: block; padding: .45rem 0 .45rem 1rem; font-size: .875rem; line-height: 1.4; color: var(--v3-ink-50); text-decoration: none; transition: color .25s; }
.kx-da-v3 .kx-v3-art__sommaire a:hover, .kx-da-v3 .kx-v3-art__sommaire li.is-actif a { color: var(--v3-ink); }
.kx-da-v3 .kx-v3-art__sommaire li.is-actif a { font-weight: 600; }
.kx-v3-art__sommaire-mobile { margin: 2rem 0 0; border: 1px solid var(--v3-line); border-radius: 6px; background: var(--v3-blanc); }
@media (min-width: 1024px) { .kx-v3-art__sommaire-mobile { display: none; } }
.kx-da-v3 .kx-v3-art__sommaire-mobile summary { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.25rem; font-size: 1rem; font-weight: 600; color: var(--v3-ink); cursor: pointer; list-style: none; }
.kx-v3-art__sommaire-mobile summary::-webkit-details-marker { display: none; }
.kx-v3-art__sommaire-mobile summary span { width: .75rem; height: .75rem; border-right: 2px solid var(--v3-ink); border-bottom: 2px solid var(--v3-ink); transform: rotate(45deg) translate(-2px, -2px); transition: transform .3s; }
.kx-v3-art__sommaire-mobile[open] summary span { transform: rotate(-135deg); }
.kx-da-v3 .entry-content .kx-v3-art__sommaire-mobile ol { margin: 0; padding: 0 1.25rem 1rem 2.5rem; font-size: .9375rem; line-height: 1.5; }
.kx-da-v3 .kx-v3-art__sommaire-mobile li { margin: .5rem 0 0; }
.kx-da-v3 .kx-v3-art__sommaire-mobile a { color: var(--v3-ink-70); text-decoration: none; }

/* --- La colonne de lecture ------------------------------------------------------------------------ */
.kx-v3-art__corps { min-width: 0; font-size: 1.125rem; line-height: 1.75; color: #2A1A42; }
.kx-da-v3 .kx-v3-art__corps > p { margin: 1.25em 0 0; font-size: 1.125rem; line-height: 1.75; color: #2A1A42; }
.kx-da-v3 .kx-v3-art__corps > h2 { margin: 3.5rem 0 0; padding-top: 2.5rem; border-top: 1px solid var(--v3-line); font-size: clamp(1.625rem, 2.3vw, 2.125rem); font-weight: 400; line-height: 1.15; letter-spacing: -0.035em; color: var(--v3-ink); scroll-margin-top: 7rem; }
.kx-da-v3 .kx-v3-art__corps > .kx-v3-art__sommaire-mobile + h2, .kx-da-v3 .kx-v3-art__corps > .kx-v3-art__essentiel + h2 { border-top: 0; padding-top: 0; }
.kx-da-v3 .kx-v3-art__corps > h3 { margin: 2.25rem 0 0; font-size: 1.3125rem; font-weight: 600; line-height: 1.3; letter-spacing: -0.02em; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-art__corps a:not(.kx-v3-cta) { color: var(--v3-violet); text-decoration: underline; text-decoration-color: var(--v3-violet-30); text-decoration-thickness: 1px; text-underline-offset: .2em; transition: text-decoration-color .25s; }
.kx-da-v3 .kx-v3-art__corps a:not(.kx-v3-cta):hover { text-decoration-color: var(--v3-violet); }
.kx-da-v3 .kx-v3-art__corps strong:not(.kx-v3-surligne) { font-weight: 600; color: var(--v3-ink); }
/* Listes : puces violettes, etapes numerotees en pastilles */
.kx-da-v3 .kx-v3-art__liste-titre { margin: 1.75rem 0 0; font-weight: 600; color: var(--v3-ink); }
.kx-da-v3 .entry-content :is(.kx-v3-art__puces, .kx-v3-art__etapes) { margin: 1.25rem 0 0; padding: 0; list-style: none; }
.kx-da-v3 .entry-content .kx-v3-art__puces li { position: relative; margin: .6rem 0 0; padding-left: 1.5rem; }
.kx-v3-art__puces li::before { content: ""; position: absolute; left: .2rem; top: .72em; width: .45rem; height: .45rem; border-radius: 9999px; background: var(--v3-violet); }
.kx-v3-art__etapes { counter-reset: e; }
.kx-da-v3 .entry-content .kx-v3-art__etapes li { position: relative; margin: .9rem 0 0; padding-left: 2.75rem; counter-increment: e; }
.kx-v3-art__etapes li::before { content: counter(e); position: absolute; left: 0; top: .1em; display: flex; width: 1.875rem; height: 1.875rem; align-items: center; justify-content: center; border-radius: 4px; background: var(--v3-violet-soft); font-size: .875rem; font-weight: 600; line-height: 1; color: var(--v3-violet); font-variant-numeric: tabular-nums; }
/* Tableaux et images */
.kx-v3-art__table { margin: 2.25rem 0 0; }
.kx-v3-art__table .kx-v3-table table { min-width: 34rem; font-size: .9375rem; }
.kx-da-v3 .kx-v3-art__corps figcaption { margin-top: .75rem; font-size: .875rem; line-height: 1.5; color: var(--v3-ink-50); }
.kx-v3-art__image { margin: 2.5rem 0 0; }
.kx-v3-art__image img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 6px; }
/* Encadres */
.kx-v3-art__encadre { margin: 2.25rem 0 0; padding: 1.5rem 1.75rem; border: 1px solid var(--v3-line); border-radius: 6px; background: var(--v3-cream); }
.kx-da-v3 .kx-v3-art__encadre-titre { margin: 0; font-size: 1.0625rem; font-weight: 600; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-art__encadre p { margin: .75rem 0 0; font-size: 1rem; line-height: 1.65; }
.kx-v3-art__corps .kx-v3-note { margin-top: 2.25rem; }

/* L'essentiel : en tete, lavande, puces cochees */
.kx-v3-art__essentiel { padding: 1.75rem 1.75rem 1.5rem; border-radius: 6px; background: var(--v3-violet-soft); }
@media (min-width: 640px) { .kx-v3-art__essentiel { padding: 2rem 2.25rem 1.75rem; } }
.kx-da-v3 .kx-v3-art__essentiel-titre { display: flex; align-items: center; gap: .6rem; margin: 0; font-size: 1rem; font-weight: 600; color: var(--v3-violet); }
.kx-v3-art__essentiel-titre .kx-v3-marque { width: 1.1rem; height: 1.1rem; }
.kx-da-v3 .entry-content .kx-v3-art__essentiel ul { margin: 1rem 0 0; padding: 0; list-style: none; }
.kx-da-v3 .entry-content .kx-v3-art__essentiel li { position: relative; margin: .75rem 0 0; padding-left: 2rem; font-size: 1.0625rem; line-height: 1.6; color: var(--v3-ink); }
.kx-v3-art__essentiel li::before { content: ""; position: absolute; left: 0; top: .3rem; width: 1.125rem; height: 1.125rem; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235B26FE' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E") center / contain no-repeat; }
.kx-v3-art__essentiel strong { font-weight: 600; }

/* L'appel dans le fil : carte de marque violette */
.kx-v3-art__cta { position: relative; display: grid; gap: 1.5rem; margin: 3rem 0 0; padding: 2rem; overflow: hidden; border-radius: 6px; background: var(--v3-violet); color: var(--v3-paper); }
@media (min-width: 768px) { .kx-v3-art__cta { grid-template-columns: minmax(0, 1fr) auto; align-items: end; padding: 2.25rem 2.5rem; } }
.kx-v3-art__cta > :not(.kx-v3-cercles) { position: relative; }
.kx-da-v3 .kx-v3-art__cta-titre { margin: 0; font-size: 1.5rem; font-weight: 600; line-height: 1.2; letter-spacing: -0.025em; color: var(--v3-paper); }
.kx-v3-art__cta-titre em { font-style: normal; font-weight: 600; }
.kx-da-v3 .kx-v3-art__cta p:not(.kx-v3-art__cta-titre) { margin: .6rem 0 0; font-size: 1rem; line-height: 1.55; color: var(--v3-paper-70); }
.kx-da-v3 .entry-content .kx-v3-art__cta-meta { display: flex; flex-wrap: wrap; gap: .4rem 1rem; margin: 1rem 0 0; padding: 0; list-style: none; font-size: .8125rem; color: var(--v3-paper-70); }
.kx-da-v3 .entry-content .kx-v3-art__cta-meta li { margin: 0; padding: 0; font-size: .8125rem; line-height: 1.5; }
.kx-v3-art__cta-meta li + li::before { content: "·"; margin-right: 1rem; }

/* Sources, repliees */
.kx-v3-art__sources { margin: 3.5rem 0 0; border-top: 1px solid var(--v3-line); border-bottom: 1px solid var(--v3-line); }
.kx-da-v3 .kx-v3-art__sources summary { display: flex; align-items: center; gap: .6rem; padding: 1.1rem 0; font-size: 1rem; font-weight: 600; color: var(--v3-ink); cursor: pointer; list-style: none; }
.kx-v3-art__sources summary::-webkit-details-marker { display: none; }
.kx-v3-art__sources-n { padding: .1rem .5rem; border-radius: 4px; background: var(--v3-cream); font-size: .75rem; color: var(--v3-ink-70); }
.kx-v3-art__sources summary > span:last-child { width: .6rem; height: .6rem; margin-left: auto; border-right: 2px solid var(--v3-ink); border-bottom: 2px solid var(--v3-ink); transform: rotate(45deg); transition: transform .3s; }
.kx-v3-art__sources[open] summary > span:last-child { transform: rotate(-135deg); }
.kx-da-v3 .entry-content .kx-v3-art__sources ol { margin: 0 0 1.25rem; padding-left: 1.25rem; font-size: .875rem; line-height: 1.6; color: var(--v3-ink-70); }
.kx-v3-art__sources li { margin: .4rem 0 0; }

/* Rail : partage et appel, fixes pendant la lecture */
.kx-v3-art__rail { display: grid; gap: 1.5rem; align-content: start; }
@media (min-width: 1280px) { .kx-v3-art__rail { position: sticky; top: 7.5rem; align-self: start; } }
.kx-da-v3 .kx-v3-art__partage p { margin: 0 0 .6rem; font-size: .8125rem; font-weight: 600; color: var(--v3-ink-50); }
.kx-v3-art__partage { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.kx-v3-art__partage p { flex-basis: 100%; }
.kx-da-v3 .kx-v3-art__partage :is(button, a) { display: inline-flex; align-items: center; gap: .45rem; height: 2.5rem; margin: 0; padding: 0 .9rem; border: 1px solid var(--v3-line); border-radius: 4px; background: var(--v3-blanc); font: inherit; font-size: .8125rem; font-weight: 500; color: var(--v3-ink); text-decoration: none; cursor: pointer; transition: border-color .25s, background-color .25s; }
.kx-da-v3 .kx-v3-art__partage :is(button, a):hover { border-color: var(--v3-ink); }
.kx-v3-art__partage svg { width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.kx-v3-art__partage a svg { fill: currentColor; stroke: none; }
.kx-da-v3 .kx-v3-art__partage button.is-copie { border-color: #5B26FE; background: #EFEDFF; color: #5B26FE; }
.kx-v3-art__rail-cta { padding: 1.25rem; border: 1px solid var(--v3-line); border-radius: 6px; background: var(--v3-cream); }
.kx-da-v3 .kx-v3-art__rail-cta .kx-v3-surtitre { font-size: .8125rem; }
.kx-da-v3 .kx-v3-art__rail-titre { margin: .5rem 0 1rem; font-size: 1.0625rem; font-weight: 600; line-height: 1.3; letter-spacing: -0.015em; color: var(--v3-ink); }
.kx-v3-art__rail-titre em { font-style: normal; font-weight: 600; color: var(--v3-violet); }
@media (max-width: 1279px) { .kx-v3-art__rail { grid-template-columns: minmax(0, 1fr); } .kx-v3-art__rail-cta { display: none; } }

/* Carte auteur */
.kx-v3-art-auteur-section + .kx-v3-section { padding-top: 4rem; }
.kx-v3-art-auteur-carte { display: grid; gap: 1.25rem; max-width: 60rem; margin: 0 auto; padding: 1.75rem; border: 1px solid var(--v3-line); border-radius: 6px; background: var(--v3-cream); }
@media (min-width: 768px) { .kx-v3-art-auteur-carte { grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 1.75rem; padding: 2rem 2.25rem; } }
.kx-v3-art-auteur-carte__logo { display: flex; width: 3.5rem; height: 3.5rem; align-items: center; justify-content: center; border-radius: 4px; background: var(--v3-violet); color: var(--v3-paper); }
.kx-v3-art-auteur-carte__logo .kx-v3-marque { width: 1.6rem; height: 1.6rem; }
.kx-da-v3 .kx-v3-art-auteur-carte p:not(.kx-v3-surtitre) { margin: .4rem 0 0; font-size: 1rem; line-height: 1.6; color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-art-auteur-carte .kx-v3-surtitre { font-size: .9375rem; }
.kx-da-v3 .kx-v3-art-auteur-carte__lien { display: inline-flex; align-items: center; gap: .5rem; font-size: .9375rem; font-weight: 500; color: var(--v3-violet); text-decoration: none; white-space: nowrap; }
.kx-v3-art-auteur-carte__lien .kx-v3-cta__fleche { width: 2rem; height: 2rem; }

/* --- Cartes d'article (index, a lire ensuite) ------------------------------------------------------- */
.kx-v3-cartes-art { display: grid; gap: 2.5rem 1.75rem; }
@media (min-width: 640px) { .kx-v3-cartes-art { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .kx-v3-cartes-art { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3rem 2rem; } }
.kx-v3-carte-art { margin: 0; }
.kx-da-v3 .kx-v3-carte-art__lien { display: flex; flex-direction: column; height: 100%; color: var(--v3-ink); text-decoration: none; }
.kx-v3-carte-art__img { display: block; overflow: hidden; border-radius: 6px; background: var(--v3-cream); aspect-ratio: 16 / 10; }
.kx-v3-carte-art__img img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--v3-ease); }
.kx-v3-carte-art__lien:hover .kx-v3-carte-art__img img { transform: scale(1.04); }
.kx-v3-carte-art__corps { display: flex; flex: 1; flex-direction: column; padding-top: 1.25rem; }
.kx-v3-carte-art__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; font-size: .8125rem; color: var(--v3-ink-50); }
.kx-v3-carte-art__rub { padding: .2rem .6rem; border-radius: 4px; background: var(--v3-violet-soft); font-size: .75rem; font-weight: 600; color: var(--v3-violet); }
.kx-v3-section--lavande .kx-v3-carte-art__rub { background: var(--v3-paper); }
.kx-da-v3 .kx-v3-carte-art__titre { margin: .85rem 0 0; font-size: 1.3125rem; font-weight: 600; line-height: 1.25; letter-spacing: -0.025em; color: var(--v3-ink); transition: color .25s; }
.kx-v3-carte-art__lien:hover .kx-v3-carte-art__titre { color: var(--v3-violet); }
.kx-v3-carte-art__chapo { display: -webkit-box; margin-top: .6rem; overflow: hidden; -webkit-line-clamp: 3; -webkit-box-orient: vertical; font-size: .9375rem; line-height: 1.6; color: var(--v3-ink-70); }
.kx-v3-carte-art__lire { display: inline-flex; align-items: center; gap: .4rem; margin-top: auto; padding-top: 1rem; font-size: .875rem; font-weight: 500; color: var(--v3-ink); }
.kx-v3-carte-art__lire svg { width: .875rem; height: .875rem; transition: transform .3s var(--v3-ease); }
.kx-v3-carte-art__lien:hover .kx-v3-carte-art__lire svg { transform: translateX(3px); }
/* La une : image et texte cote a cote */
@media (min-width: 1024px) { .kx-v3-carte-art--une .kx-v3-carte-art__lien { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 3.5rem; align-items: center; } }
.kx-v3-carte-art--une .kx-v3-carte-art__img { border-radius: 6px; aspect-ratio: 16 / 10; }
.kx-v3-carte-art--une .kx-v3-carte-art__corps { padding-top: 1.5rem; }
@media (min-width: 1024px) { .kx-v3-carte-art--une .kx-v3-carte-art__corps { padding-top: 0; } }
.kx-da-v3 .kx-v3-carte-art--une .kx-v3-carte-art__titre { font-size: clamp(1.75rem, 3vw, 2.75rem); line-height: 1.08; letter-spacing: -0.04em; }
.kx-v3-carte-art--une .kx-v3-carte-art__chapo { -webkit-line-clamp: 4; font-size: 1.0625rem; }
.kx-v3-carte-art--une .kx-v3-carte-art__lire { margin-top: 1.5rem; }

/* A lire ensuite */
.kx-v3-art-lies__tete { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1rem 2rem; margin-bottom: 2.5rem; }
.kx-da-v3 .kx-v3-art-lies__tous { display: inline-flex; align-items: center; gap: .4rem; font-size: 1rem; font-weight: 500; color: var(--v3-violet); text-decoration: none; }
.kx-v3-art-lies__tous svg { width: 1rem; height: 1rem; }

/* --- Index du blog -------------------------------------------------------------------------------- */
.kx-v3-section.kx-v3-blog-hero { padding-bottom: 3rem; }
.kx-da-v3 .kx-v3-blog-hero .kx-v3-surtitre a { color: inherit; text-decoration: none; }
.kx-da-v3 .kx-v3-h1.kx-v3-blog-hero__titre { max-width: 52rem; }
.kx-da-v3 .kx-v3-blog-hero .kx-v3-intro { max-width: 40rem; }
.kx-da-v3 .kx-v3-blog-filtres { display: flex; flex-wrap: wrap; gap: .5rem; margin: 2.5rem 0 0; padding: 0; list-style: none; }
.kx-v3-blog-filtres li { margin: 0; }
.kx-da-v3 .kx-v3-blog-filtres a { display: inline-flex; align-items: center; gap: .45rem; padding: .6rem 1.1rem; border: 1px solid var(--v3-line); border-radius: 4px; background: var(--v3-blanc); font-size: .9375rem; font-weight: 500; color: var(--v3-ink); text-decoration: none; transition: border-color .25s, background-color .25s, color .25s; }
.kx-da-v3 .kx-v3-blog-filtres a:hover { border-color: var(--v3-ink); }
.kx-v3-blog-filtres a span { font-size: .75rem; color: var(--v3-ink-50); font-variant-numeric: tabular-nums; }
.kx-da-v3 .kx-v3-blog-filtres a[aria-current="page"] { border-color: var(--v3-ink); background: var(--v3-ink); color: var(--v3-paper); }
.kx-v3-blog-filtres a[aria-current="page"] span { color: var(--v3-paper-70); }
.kx-v3-section.kx-v3-blog-une { padding-bottom: 0; }
.kx-v3-blog-une + .kx-v3-blog-grille { padding-top: 5rem; }
.kx-v3-blog-une + .kx-v3-blog-grille .kx-v3-wrap { padding-top: 4rem; border-top: 1px solid var(--v3-line); }
.kx-v3-blog-pagination { margin-top: 4rem; }
.kx-da-v3 .kx-v3-blog-pagination ul { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.kx-v3-blog-pagination li { margin: 0; }
.kx-da-v3 .kx-v3-blog-pagination li > .page-numbers { display: inline-flex; min-width: 2.75rem; height: 2.75rem; align-items: center; justify-content: center; padding: 0 .75rem; border: 1px solid var(--v3-line); border-radius: 4px; font-size: .9375rem; font-weight: 500; color: var(--v3-ink); text-decoration: none; }
.kx-da-v3 .kx-v3-blog-pagination a.page-numbers:hover { border-color: var(--v3-ink); }
.kx-da-v3 .kx-v3-blog-pagination li > .page-numbers.current { border-color: var(--v3-ink); background: var(--v3-ink); color: var(--v3-paper); }
.kx-v3-blog-pagination li > .page-numbers svg { width: 1rem; height: 1rem; }
.kx-v3-blog-pagination .prev svg { transform: rotate(180deg); }
.kx-v3-blog-pagination .dots { border: 0; }

/* Le chapo ouvre la colonne de lecture, en corps plus grand */
.kx-da-v3 .kx-v3-art__corps > .kx-v3-art-chapo { margin: 0 0 2.25rem; font-size: clamp(1.1875rem, 1.6vw, 1.375rem); line-height: 1.6; letter-spacing: -0.01em; color: var(--v3-ink); }

/* Articles v3 : l ancienne colonne de 42rem des articles (korbyx-design.css) ne s applique pas aux sections v3 */
.kx-da-v3.single-post .entry-content > .kx-v3-section, .kx-da-v3.single-post .entry-content > div.kx-v3-article { width: auto !important; max-width: none !important; margin: 0 !important; }

/* Articles v3 : Astra souligne tous les liens des articles (.ast-single-post .entry-content a).
   Hors de la colonne de lecture (cartes, a lire ensuite, carte auteur, appels), aucun soulignement. */
.kx-da-v3.single-post .entry-content a:not(.kx-v3-art__corps a), .kx-da-v3.single-post .entry-content .kx-v3-art__corps a.kx-v3-cta { text-decoration: none; }
.kx-da-v3.single-post .kx-v3-art-lies__tous:hover, .kx-da-v3.single-post .kx-v3-art-auteur-carte__lien:hover { color: var(--v3-violet); }

/* --- 10. Simulateur d'economies [kx_roi] (27/09), format Spendesk ---------------------------------
   Deux groupes de questions a gauche, le resultat en direct a droite (fixe au defilement), la
   methode en clair dessous. Violet reserve au resultat : c'est la que Korbyx apporte quelque chose. */
.kx-da-v3 .kx3s { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; align-items: start; }
.kx-da-v3 .kx3s-saisie { display: grid; gap: 1.25rem; min-width: 0; }
.kx-da-v3 .kx3s-groupe { min-width: 0; margin: 0; padding: 1.5rem 1.75rem; border: 1px solid var(--v3-line); border-radius: 6px; background: var(--v3-blanc); }
.kx-da-v3 .kx3s-groupe__titre { float: left; width: 100%; display: flex; align-items: center; gap: .75rem; padding: 0; font-size: 1.125rem; font-weight: 600; letter-spacing: -0.02em; color: var(--v3-ink); }
.kx-da-v3 .kx3s-groupe__titre + * { clear: both; }
.kx-da-v3 .kx3s-champs { display: grid; gap: 1.5rem 2.5rem; margin-top: 1.25rem; }
@media (min-width: 768px) { .kx-da-v3 .kx3s-champs { grid-template-columns: 1fr 1fr; } }
.kx-da-v3 .kx3s-num { display: inline-flex; align-items: center; justify-content: center; width: 1.75rem; height: 1.75rem; border-radius: 4px; background: var(--v3-violet-soft); color: var(--v3-violet); font-size: .875rem; font-weight: 600; }
.kx-da-v3 .kx3s-groupe__aide { margin: .25rem 0 0; font-size: .9375rem; line-height: 1.5; color: var(--v3-ink-70); }
.kx-da-v3 .kx3s-champ { min-width: 0; }
.kx-da-v3 .kx3s-champ__tete { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.kx-da-v3 .kx3s-champ label { font-size: .9375rem; font-weight: 600; line-height: 1.3; color: var(--v3-ink); }
.kx-da-v3 .kx3s-champ__aide { margin: .25rem 0 .875rem; font-size: .8125rem; line-height: 1.5; color: var(--v3-ink-70); }
.kx-da-v3 .kx3s-champ__ligne { display: flex; align-items: center; gap: 1.25rem; margin-top: 1rem; }
.kx-da-v3 .kx3s-range { display: block; width: 100%; height: 6px; margin: 0; border-radius: 2px; cursor: pointer; -webkit-appearance: none; appearance: none;
  background: linear-gradient(to right, var(--v3-violet) 0 var(--p, 50%), var(--v3-line) var(--p, 50%) 100%); }
.kx-da-v3 .kx3s-range::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 24px; height: 24px; border-radius: 9999px; background: var(--v3-violet); border: 5px solid var(--v3-blanc); transition: transform .2s var(--v3-ease); }
.kx-da-v3 .kx3s-range::-moz-range-thumb { width: 14px; height: 14px; border-radius: 9999px; background: var(--v3-violet); border: 5px solid var(--v3-blanc); }
.kx-da-v3 .kx3s-range::-moz-range-track { background: transparent; }
.kx-da-v3 .kx3s-range:hover::-webkit-slider-thumb, .kx-da-v3 .kx3s-range:active::-webkit-slider-thumb { transform: scale(1.15); }
.kx-da-v3 .kx3s-champ__saisie { display: inline-flex; flex: 0 0 auto; align-items: center; gap: .375rem; height: 2.5rem; padding: 0 .75rem; border: 1px solid var(--v3-line); border-radius: 4px; background: var(--v3-paper); transition: border-color .2s; }
.kx-da-v3 .kx3s-champ__saisie:focus-within { border-color: var(--v3-violet); }
.kx-da-v3 .kx3s-champ__saisie input { width: 3.75rem; padding: 0; border: 0; background: transparent; font: inherit; font-size: 1rem; font-weight: 600; font-variant-numeric: tabular-nums; text-align: right; color: var(--v3-ink); -moz-appearance: textfield; appearance: textfield; box-shadow: none; }
.kx-da-v3 .kx3s-champ__saisie input:focus { outline: none; }
.kx-da-v3 .kx3s-champ__saisie input::-webkit-outer-spin-button, .kx-da-v3 .kx3s-champ__saisie input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.kx-da-v3 .kx3s-champ__saisie span { font-size: .75rem; color: var(--v3-ink-70); white-space: nowrap; }
.kx-da-v3 .kx3s-taux { margin: 1.25rem 0 0; padding: .625rem .875rem; border-radius: 4px; background: var(--v3-violet-soft); font-size: .9375rem; color: var(--v3-ink); }

.kx-da-v3 .kx3s-resultat { position: relative; min-width: 0; padding: 2rem; border-radius: 6px; background: var(--v3-violet); color: var(--v3-paper); }
.kx-da-v3 .kx3s-resultat p { margin: 0; color: inherit; }
.kx-da-v3 .kx3s-resultat .kx3s-resultat__surtitre { display: flex; align-items: center; gap: .5rem; font-size: .875rem; font-weight: 600; color: var(--v3-blanc); }
.kx-da-v3 .kx3s-direct { width: .5rem; height: .5rem; border-radius: 9999px; background: #1AECDE; animation: kx3s-pouls 2s ease-in-out infinite; }
@keyframes kx3s-pouls { 50% { opacity: .35; } }
.kx-da-v3 .kx3s-resultat .kx3s-resultat__intro { margin-top: 1rem; font-size: 1.125rem; }
.kx-da-v3 .kx3s-resultat .kx3s-total { margin-top: .5rem; font-size: clamp(2.75rem, 4.4vw, 4rem); font-weight: 600; line-height: 1; letter-spacing: -0.05em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.kx-da-v3 .kx3s-resultat .kx3s-heures { margin-top: 1rem; font-size: 1rem; line-height: 1.5; }
.kx-da-v3 .kx3s-resultat .kx3s-postes__titre { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--v3-paper-20); font-size: .875rem; font-weight: 600; color: var(--v3-blanc); }
.kx-da-v3 .kx3s-postes { display: grid; gap: .875rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.kx-da-v3 .kx3s-postes li { margin: 0; padding: 0; }
.kx-da-v3 .kx3s-poste__tete { display: flex; justify-content: space-between; gap: 1rem; font-size: .9375rem; }
.kx-da-v3 .kx3s-poste__tete span[data-kx3s-cout] { font-variant-numeric: tabular-nums; white-space: nowrap; color: rgba(248, 248, 255, .88); }
.kx-da-v3 .kx3s-poste__tete span[data-kx3s-cout] b { font-weight: 600; color: var(--v3-paper); }
.kx-da-v3 .kx3s-barre { position: relative; display: block; height: 8px; margin-top: .5rem; overflow: hidden; border-radius: 2px; background: var(--v3-paper-10); }
.kx-da-v3 .kx3s-barre i { position: absolute; top: 0; bottom: 0; left: 0; width: 0; border-radius: 9999px; background: var(--v3-paper-20); transition: width .6s var(--v3-ease); }
.kx-da-v3 .kx3s-barre i[data-kx3s-recup] { background: var(--v3-paper); }
.kx-da-v3 .kx3s-postes small { display: block; margin-top: .375rem; font-size: .8125rem; color: rgba(248, 248, 255, .88); }
.kx-da-v3 .kx3s-resultat .kx3s-legende { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; margin-top: .75rem; font-size: .8125rem; color: rgba(248, 248, 255, .88); }
.kx-da-v3 .kx3s-legende span { display: inline-flex; align-items: center; gap: .375rem; }
.kx-da-v3 .kx3s-pastille { width: .625rem; height: .625rem; border-radius: 4px; background: var(--v3-paper-20); }
.kx-da-v3 .kx3s-pastille--recup { background: var(--v3-paper); }
.kx-da-v3 .kx3s-resultat .kx3s-ratio { margin-top: 1.25rem; padding: 1rem 1.125rem; border-radius: 6px; background: var(--v3-paper-10); font-size: .9375rem; line-height: 1.5; }
.kx-da-v3 .kx3s-actions { margin-top: 1.25rem; }
.kx-da-v3 .kx3s-bas { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .5rem 1rem; margin-top: .875rem; }
.kx-da-v3 .kx3s-resultat .kx3s-reassurance { margin-top: 0; font-size: .8125rem; color: rgba(248, 248, 255, .88); }
.kx-da-v3 .kx3s-lien { margin-top: 0; padding: 0; border: 0; background: none; font: inherit; font-size: .875rem; font-weight: 600; color: var(--v3-paper); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.kx-da-v3 .kx3s-lien:hover { color: var(--v3-violet-30); background: none; }

.kx-da-v3 .kx3s-methode { padding: 1.25rem 1.75rem; border: 1px solid var(--v3-line); border-radius: 6px; background: var(--v3-blanc); }
.kx-da-v3 .kx3s-methode summary { font-size: 1rem; font-weight: 600; color: var(--v3-ink); cursor: pointer; }
.kx-da-v3 .kx3s-methode ul { display: grid; gap: .5rem; margin: 1rem 0 0; padding-left: 1.25rem; }
.kx-da-v3 .kx3s-methode li { font-size: .9375rem; line-height: 1.6; color: var(--v3-ink-70); }

.kx-da-v3 .kx3s-pilule { position: fixed; left: 50%; bottom: 1rem; z-index: 60; transform: translateX(-50%); display: inline-flex; align-items: center; padding: .75rem 1.25rem; border-radius: 4px; background: var(--v3-ink); color: var(--v3-paper); font-size: .9375rem; font-weight: 600; white-space: nowrap; text-decoration: none; }
.kx-da-v3 .kx3s-pilule[hidden] { display: none; }

@media (min-width: 1024px) {
  .kx-da-v3 .kx3s { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
  .kx-da-v3 .kx3s-resultat { position: sticky; top: 6.5rem; padding: 2rem; }
  .kx-da-v3 .kx3s-methode { grid-column: 1; }
  .kx-da-v3 .kx3s-pilule { display: none !important; }
}
@media (max-width: 639px) {
  .kx-da-v3 .kx3s-groupe, .kx-da-v3 .kx3s-resultat { padding: 1.375rem; }
}
@media (prefers-reduced-motion: reduce) {
  .kx-da-v3 .kx3s-direct { animation: none; }
  .kx-da-v3 .kx3s-barre i { transition: none; }
}
.kx-da-v3 .kx3s-entete { margin-bottom: 2.5rem; }
.kx-da-v3 .kx3s-entete .kx-v3-intro { max-width: 44rem; }
.kx-da-v3 .kx3s-h1 { margin-top: 1rem; font-size: clamp(2.25rem, 4.2vw, 3.75rem); line-height: 1.02; }

/* ==========================================================================
   11. Pages du plan de Nicolas (01/10) : pages de produit, de methode et de marque, composees depuis
   ses textes (tools/kx_nicolas_v3.py). Blocs simples (Nicolas, 01/10 : « aller vers des blocs
   simples, soigner la typographie, de belles images ») : texte en colonne de lecture, intertitres,
   listes, tableaux, chiffre public avec sa source, citation legere, grille de l'equipe.
   ========================================================================== */

/* Hero : phrase longue en titre, texte seul quand la page n'a pas de photo */
.kx-da-v3 .kx-v3-h1--phrase { font-size: clamp(2.125rem, 3.7vw, 3.5rem); line-height: 1.05; letter-spacing: -0.04em; }
.kx-v3-hero__grille--seul { grid-template-columns: minmax(0, 1fr) !important; }
.kx-v3-hero__grille--seul .kx-v3-hero__texte { max-width: 62rem; }
.kx-v3-hero__grille--seul .kx-v3-intro { max-width: 48rem; }
.kx-da-v3 .kx-v3-accroche { margin: 1.75rem 0 0; max-width: 38rem; font-size: 1.0625rem; font-weight: 600; line-height: 1.45; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-hero .kx-v3-accroche { color: var(--v3-paper); }
.kx-v3-accroche + .kx-v3-actions { margin-top: 1rem; }
.kx-v3-hero .kx-v3-hero__photo > img { aspect-ratio: auto; }

/* Suite d'une section : contenu en pleine largeur sous la mise en page editoriale */
.kx-v3-suite { margin-top: 2.5rem; }
.kx-v3-suite > :first-child { margin-top: 0; }
.kx-v3-suite + .kx-v3-suite { margin-top: 2rem; }

/* Intertitres dans une colonne de lecture */
.kx-da-v3 .kx-v3-h3 { margin: 2.5rem 0 0; font-size: 1.4375rem; font-weight: 600; line-height: 1.22; letter-spacing: -0.025em; color: var(--v3-ink); text-wrap: balance; }
.kx-da-v3 :is(.kx-v3-edito__corps, .kx-v3-texte-seul) > .kx-v3-h3:first-child { margin-top: 0; }
.kx-da-v3 .kx-v3-h3 + p { margin-top: .75rem !important; }
.kx-da-v3 .kx-v3-section--encre .kx-v3-h3 { color: var(--v3-paper); }
.kx-da-v3 .kx-v3-texte-seul > p strong, .kx-da-v3 .kx-v3-edito__corps > p strong { font-weight: 600; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-section--encre :is(.kx-v3-texte-seul, .kx-v3-edito__corps) > p strong { color: var(--v3-paper); }
.kx-da-v3 :is(.kx-v3-texte-seul, .kx-v3-edito__corps, .kx-v3-carte, .kx-v3-sous__item) p a { color: var(--v3-violet); text-decoration: underline; text-underline-offset: .2em; text-decoration-thickness: 1px; }
.kx-da-v3 :is(.kx-v3-texte-seul, .kx-v3-edito__corps) small { display: block; margin-top: .35rem; font-size: .8125rem; color: var(--v3-ink-50); }

/* Liste a puces, dans une colonne de lecture */
.kx-da-v3 .entry-content .kx-v3-puces { display: grid; gap: .7rem; margin: 1.25rem 0 0; padding: 0; list-style: none; }
.kx-v3-puces li { position: relative; margin: 0; padding-left: 1.5rem; font-size: 1.0625rem; line-height: 1.6; color: var(--v3-ink-70); }
.kx-v3-puces li::before { content: ""; position: absolute; left: .1rem; top: .66em; width: .45rem; height: .45rem; border-radius: 9999px; background: var(--v3-violet); }
.kx-v3-puces strong { font-weight: 600; color: var(--v3-ink); }
.kx-v3-puces a { color: var(--v3-violet); }
.kx-v3-section--encre .kx-v3-puces li { color: rgba(248, 248, 255, 0.78); }
.kx-v3-section--encre .kx-v3-puces strong { color: var(--v3-paper); }
.kx-v3-section--encre .kx-v3-puces li::before { background: var(--v3-violet-30); }
/* Liste numerotee : le rang en violet */
.kx-da-v3 .entry-content .kx-v3-puces--rang { counter-reset: kxr; }
.kx-v3-puces--rang li { padding-left: 2.25rem; counter-increment: kxr; }
.kx-v3-puces--rang li::before { content: counter(kxr); top: .1em; left: 0; width: 1.5rem; height: 1.5rem; display: flex; align-items: center; justify-content: center; background: var(--v3-violet-soft); color: var(--v3-violet); font-size: .8125rem; font-weight: 600; }
/* Liste a cocher (plan type, fiche de controle) : la case vide du plan */
.kx-da-v3 .entry-content .kx-v3-cases { display: grid; gap: .6rem; margin: 1.5rem 0 0; padding: 0; list-style: none; }
.kx-v3-cases li { position: relative; margin: 0; padding: .95rem 1.1rem .95rem 3rem; border-radius: 6px; border: 1px solid var(--v3-line); background: var(--v3-blanc); font-size: 1rem; line-height: 1.5; color: var(--v3-ink-70); }
.kx-v3-cases li::before { content: ""; position: absolute; left: 1.1rem; top: 1.05rem; width: 1.15rem; height: 1.15rem; border-radius: 2px; border: 1.5px solid var(--v3-violet); }
.kx-v3-cases strong { font-weight: 600; color: var(--v3-ink); }
.kx-v3-cases em { display: block; margin-top: .2rem; font-style: normal; font-size: .875rem; color: var(--v3-violet); }

/* Chiffre public : le nombre en grand, le fait, la source */
.kx-v3-chiffre { display: grid; gap: 1rem 2.5rem; align-items: center; margin: 2rem 0 0; padding: 1.75rem; border-radius: 6px; background: var(--v3-violet-soft); }
@media (min-width: 768px) { .kx-v3-chiffre { grid-template-columns: auto minmax(0, 1fr); padding: 2rem 2.5rem; } }
.kx-v3-chiffre__nombre { font-size: clamp(2.75rem, 4.6vw, 4.25rem); font-weight: 600; line-height: 1; letter-spacing: -0.05em; color: var(--v3-violet); white-space: nowrap; font-variant-numeric: tabular-nums; }
.kx-da-v3 .kx-v3-chiffre p { margin: 0; max-width: 44rem; font-size: 1.0625rem; line-height: 1.55; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-chiffre p + p { margin-top: .6rem; color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-chiffre .kx-v3-chiffre__source { margin-top: .6rem; font-size: .8125rem; color: var(--v3-ink-50); }
.kx-v3-chiffre strong { font-weight: 600; }
.kx-v3-section--lavande .kx-v3-chiffre { background: var(--v3-paper); }
.kx-v3-section--encre .kx-v3-chiffre { background: rgba(248, 248, 255, 0.06); }
.kx-v3-section--encre .kx-v3-chiffre__nombre { color: var(--v3-violet-30); }
.kx-da-v3 .kx-v3-section--encre .kx-v3-chiffre p { color: var(--v3-paper); }
.kx-da-v3 .kx-v3-section--encre .kx-v3-chiffre :is(p + p, .kx-v3-chiffre__source) { color: rgba(248, 248, 255, 0.7); }

/* Ce que dit le dirigeant : la phrase, en italique a empattement */
.kx-da-v3 .kx-v3-dit { margin: 0 0 1.5rem; font-style: italic; font-weight: 300; font-size: clamp(1.5rem, 2.3vw, 2.125rem); line-height: 1.22; letter-spacing: -0.02em; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-section--encre .kx-v3-dit { color: var(--v3-paper); }

/* Citation legere (au fil du texte) : filet violet, portrait rond */
.kx-da-v3 .kx-v3-citation { margin: 2.25rem 0 0; padding: 0 0 0 1.5rem; border-left: 2px solid var(--v3-violet); }
.kx-da-v3 .kx-v3-citation blockquote { margin: 0; padding: 0; border: 0; background: none; font-size: 1.1875rem; font-weight: 400; font-style: normal; line-height: 1.5; letter-spacing: -0.01em; color: var(--v3-ink); }
.kx-v3-citation figcaption { display: flex; align-items: center; gap: .75rem; margin-top: 1rem; font-size: .9375rem; line-height: 1.35; color: var(--v3-ink-70); }
.kx-v3-citation figcaption img { width: 2.75rem; height: 2.75rem; flex: none; border-radius: 9999px; object-fit: cover; object-position: top; background: var(--v3-violet-soft); }
.kx-v3-citation figcaption b { display: block; font-weight: 600; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-section--encre .kx-v3-citation blockquote, .kx-v3-section--encre .kx-v3-citation figcaption b { color: var(--v3-paper); }
.kx-v3-section--encre .kx-v3-citation figcaption { color: rgba(248, 248, 255, 0.7); }
.kx-da-v3 .kx-v3-section--encre .kx-v3-citation { border-left-color: var(--v3-cyan); }
/* Citation en carte de marque, sans portrait (photo a venir) */
@media (min-width: 1024px) { .kx-v3-fondateur--seule { grid-template-columns: minmax(0, 1fr); } .kx-da-v3 .kx-v3-fondateur--seule blockquote { padding-right: 3.5rem; max-width: 60rem; } .kx-v3-fondateur--seule figcaption { margin-right: 3.5rem; } }

/* Tableau sans colonne mise en avant (plans, calendriers, tableaux de reference) */
.kx-da-v3 .kx-v3-table--neutre :is(th, td):last-child { background: none; color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-table--neutre th:last-child { background: var(--v3-paper); color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-table td strong { font-weight: 600; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-table td a { color: var(--v3-violet); }
.kx-da-v3 .kx-v3-table--large table { min-width: 64rem; }

/* Cartes de sous-parties : un vrai intertitre (h3), deux ou trois par rangee */
.kx-da-v3 .kx-v3-sous__item h3.kx-v3-sous__titre { margin: 0; font-size: 1.1875rem; font-weight: 600; line-height: 1.25; letter-spacing: -0.02em; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-section--encre .kx-v3-sous__item h3.kx-v3-sous__titre { color: var(--v3-paper); }
@media (min-width: 1100px) { .kx-v3-sous--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.kx-da-v3 .entry-content .kx-v3-sous__item :is(.kx-v3-puces, .kx-v3-carte__liste) { margin-top: .75rem; }
.kx-v3-sous__item .kx-v3-puces li { font-size: .9375rem; }
.kx-v3-sous__num { display: block; margin-bottom: .9rem; font-size: .8125rem; font-weight: 600; color: var(--v3-violet); font-variant-numeric: tabular-nums; }

/* Photo dans le fil d'une section */
.kx-v3-photo figcaption { margin-top: .75rem; font-size: .875rem; color: var(--v3-ink-50); }

/* Liens au fil du texte : fleche violette */
.kx-da-v3 .kx-v3-liens-texte { display: flex; flex-wrap: wrap; gap: .75rem 2rem; margin: 1.75rem 0 0; }
.kx-da-v3 .kx-v3-liens-texte a { display: inline-flex; align-items: center; gap: .4rem; font-size: 1rem; font-weight: 600; color: var(--v3-violet); text-decoration: none; }
.kx-da-v3 .kx-v3-liens-texte a::after { content: "\2192"; font-weight: 400; transition: transform .3s var(--v3-ease); }
.kx-da-v3 .kx-v3-liens-texte a:hover::after { transform: translateX(3px); }
.kx-da-v3 .kx-v3-section--encre .kx-v3-liens-texte a { color: var(--v3-violet-30); }

/* Grille de l'equipe : portrait, nom, titre, ce que la personne fait pour le client, sa phrase */
.kx-da-v3 .entry-content .kx-v3-equipe { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.25rem 1rem; margin: 1.5rem 0 0; padding: 0; list-style: none; }
@media (min-width: 640px) { .kx-da-v3 .entry-content .kx-v3-equipe { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem 1.25rem; } }
@media (min-width: 1100px) { .kx-da-v3 .entry-content .kx-v3-equipe { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 3rem 1.5rem; } }
.kx-v3-equipe li { display: block; margin: 0; padding: 0; }

.kx-v3-equipe__photo { width: 100%; aspect-ratio: 3 / 4; margin-bottom: 1rem; overflow: hidden; border-radius: var(--v3-r); background: var(--v3-violet-soft); display: flex; align-items: center; justify-content: center; font-size: 2.5rem; font-weight: 300; letter-spacing: -0.03em; color: var(--v3-violet); }
.kx-v3-section--lavande .kx-v3-equipe__photo { background: var(--v3-blanc); }
.kx-v3-equipe__photo img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.kx-da-v3 .kx-v3-equipe h4 { margin: 0; font-size: 1.0625rem; font-weight: 600; line-height: 1.2; letter-spacing: -0.01em; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-equipe .kx-v3-equipe__role { margin: .25rem 0 0; font-size: .84375rem; font-weight: 500; line-height: 1.35; color: var(--v3-violet); }
.kx-da-v3 .kx-v3-equipe p { margin: .5rem 0 0; font-size: .875rem; line-height: 1.5; color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-equipe .kx-v3-equipe__mot { margin-top: .75rem; padding-left: .75rem; border-left: 2px solid var(--v3-violet); font-style: normal; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-equipe__groupe { margin: 3.5rem 0 0; padding-top: 1.5rem; border-top: 1px solid var(--v3-ink-20); font-size: .9375rem; font-weight: 500; letter-spacing: 0; color: var(--v3-violet); }
.kx-da-v3 .kx-v3-entete + .kx-v3-equipe__groupe { margin-top: 0; }

/* Coordonnees (page contact) */
.kx-v3-coordonnees { display: grid; gap: 1rem; margin-top: 2rem; }
@media (min-width: 768px) { .kx-v3-coordonnees { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.kx-v3-coordonnees > * { padding: 1.5rem; border-radius: 6px; border: 1px solid var(--v3-line); background: var(--v3-blanc); }
.kx-da-v3 .kx-v3-coordonnees p { margin: 0; font-size: 1rem; line-height: 1.55; color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-coordonnees .kx-v3-coordonnees__titre { margin-bottom: .4rem; font-size: .8125rem; font-weight: 600; color: var(--v3-violet); }
.kx-da-v3 .kx-v3-coordonnees a { font-size: 1.125rem; font-weight: 600; color: var(--v3-ink); text-decoration: none; }
.kx-da-v3 .kx-v3-coordonnees a:hover { color: var(--v3-violet); }

/* Pages legales : intertitres de second rang, listes et tableaux dans la colonne de lecture */
.kx-da-v3 .kx-v3-legal__texte h3 { margin: 1.75rem 0 0; font-size: 1.1875rem; font-weight: 600; line-height: 1.25; letter-spacing: -0.02em; color: var(--v3-ink); }
.kx-da-v3 .entry-content .kx-v3-legal__texte ul { margin: .9rem 0 0; padding: 0 0 0 1.25rem; }
.kx-da-v3 .kx-v3-legal__texte li { margin: .4rem 0 0; font-size: 1.0625rem; line-height: 1.65; color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-legal__texte strong { font-weight: 600; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-legal__texte .kx-v3-table { margin-top: 1.25rem; }
.kx-da-v3 .kx-v3-legal__texte .kx-v3-table table { min-width: 34rem; font-size: .875rem; }

/* FAQ generale : les questions par theme */
.kx-v3-faq--themes { grid-template-columns: minmax(0, 1fr) !important; max-width: 60rem; }
.kx-da-v3 .kx-v3-faq__theme { margin: 3rem 0 1rem; font-size: clamp(1.5rem, 2.2vw, 2rem); font-weight: 600; letter-spacing: -0.03em; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-faq__theme:first-child { margin-top: 0; }
.kx-da-v3 .kx-v3-faq__liste summary h3 { margin: 0; font: inherit; color: inherit; letter-spacing: inherit; }
.kx-da-v3 .kx-v3-faq__liste details p + p { padding-top: 0; margin-top: -.5rem; }

/* Colonne de lecture d'une section : le premier bloc s'aligne sur le titre */
.kx-da-v3 .kx-v3-edito__corps > :first-child { margin-top: 0 !important; }
.kx-v3-entete + .kx-v3-suite { margin-top: 0; }

/* Formulaire de contact (shortcode [kx_formulaire]) : champs larges, libelles au-dessus, aucune ombre */
.kx-v3-form { position: relative; display: grid; gap: 1.25rem 1.5rem; max-width: 54rem; margin: 2rem 0 0; padding: 1.5rem; border-radius: 6px; border: 1px solid var(--v3-line); background: var(--v3-cream); }
@media (min-width: 768px) { .kx-v3-form { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 2.5rem; } .kx-v3-form__champ--large { grid-column: 1 / -1; } }
.kx-v3-section--lavande .kx-v3-form { background: var(--v3-paper); border-color: transparent; }
.kx-da-v3 .kx-v3-form p { margin: 0; }
.kx-da-v3 .kx-v3-form label { display: block; margin: 0 0 .4rem; font-size: .9375rem; font-weight: 600; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-form label span { color: var(--v3-violet); }
.kx-da-v3 .kx-v3-form :is(input[type="text"], input[type="email"], input[type="tel"], select, textarea) { width: 100%; min-height: 3rem; padding: .75rem 1rem; border: 1px solid var(--v3-ink-20); border-radius: 4px; background: var(--v3-blanc); box-shadow: none; font: inherit; font-size: 1rem; line-height: 1.4; color: var(--v3-ink); }
.kx-v3-section--lavande .kx-v3-form :is(input[type="text"], input[type="email"], input[type="tel"], select, textarea) { background: var(--v3-paper); }
.kx-da-v3 .kx-v3-form textarea { min-height: 9rem; resize: vertical; }
.kx-da-v3 .kx-v3-form :is(input, select, textarea):focus { outline: 2px solid var(--v3-violet); outline-offset: 1px; border-color: var(--v3-violet); }
.kx-da-v3 .kx-v3-form [aria-invalid="true"] { border-color: var(--v3-ink); box-shadow: inset 0 0 0 1px var(--v3-ink); }
.kx-da-v3 .kx-v3-form small { display: block; margin-top: .35rem; font-size: .8125rem; line-height: 1.45; color: var(--v3-ink-50); }
.kx-da-v3 .kx-v3-form small a, .kx-da-v3 .kx-v3-form label a { color: var(--v3-violet); }
.kx-da-v3 .kx-v3-form__erreur { display: block; margin-top: .35rem; font-style: normal; font-size: .8125rem; font-weight: 600; color: #12012D; }
.kx-da-v3 .kx-v3-form [hidden], .kx-da-v3 .kx-v3-form[hidden], .kx-da-v3 .kx-v3-form__merci[hidden] { display: none !important; }
.kx-v3-form__leurre { position: absolute !important; left: -9999px; top: 0; width: 1px; height: 1px; overflow: hidden; }
.kx-v3-form__case { display: grid; grid-template-columns: 1.25rem minmax(0, 1fr); gap: .25rem .75rem; align-items: start; }
.kx-da-v3 .kx-v3-form__case input { width: 1.15rem; height: 1.15rem; margin: .2rem 0 0; accent-color: var(--v3-violet); }
.kx-da-v3 .kx-v3-form__case label { margin: 0; font-size: .9375rem; font-weight: 400; line-height: 1.5; color: var(--v3-ink-70); }
.kx-v3-form__case .kx-v3-form__erreur { grid-column: 2; }
.kx-da-v3 .kx-v3-form__etat { padding: .8rem 1rem; border-radius: 4px; background: #F3FF55; font-size: .9375rem; font-weight: 600; color: #12012D; }
.kx-da-v3 .kx-v3-form .kx-v3-form__bouton { display: inline-flex; align-items: center; height: 3.5rem; padding: 0 1.5rem; border: 0; border-radius: var(--v3-r-s); background: var(--v3-violet); box-shadow: none; font: inherit; font-size: 1rem; font-weight: 500; color: var(--v3-blanc); cursor: pointer; transition: background-color .25s; }
.kx-da-v3 .kx-v3-form .kx-v3-form__bouton:hover, .kx-da-v3 .kx-v3-form .kx-v3-form__bouton:focus { background: var(--v3-ink); color: var(--v3-blanc); }
.kx-da-v3 .kx-v3-form .kx-v3-form__bouton[disabled] { opacity: .6; cursor: wait; }
.kx-da-v3 .kx-v3-form__mention { font-size: .8125rem; line-height: 1.55; color: var(--v3-ink-50); }
.kx-da-v3 .kx-v3-form__merci { max-width: 54rem; margin: 2rem 0 0; padding: 1.5rem 1.75rem; border-radius: 6px; background: var(--v3-violet-soft); font-size: 1.125rem; font-weight: 600; line-height: 1.45; color: var(--v3-ink); }
.kx-v3-section--lavande .kx-v3-form__merci { background: var(--v3-paper); }

/* Phrase du dirigeant dans une colonne de lecture (la regle du texte courant, plus precise, l'emportait) */
.kx-da-v3 .kx-v3-section :is(.kx-v3-edito__corps, .kx-v3-texte-seul) > p.kx-v3-dit { margin: 0 0 1.5rem !important; font-size: clamp(1.5rem, 2.3vw, 2.125rem); line-height: 1.22; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-section--encre :is(.kx-v3-edito__corps, .kx-v3-texte-seul) > p.kx-v3-dit { color: var(--v3-paper); }
/* Chiffre public : plusieurs nombres sur la meme ligne (« 58 % · 26 % · 43 % ») */
.kx-v3-chiffre__nombre--long { max-width: 16rem; font-size: clamp(1.5rem, 2.3vw, 2.125rem); line-height: 1.15; letter-spacing: -0.03em; white-space: normal; }

/* passe-composants */

/* ==========================================================================
   12. Les zones de la home dans les pages interieures (02/10)
   Thomas : « aucune mise en forme des zones de la HP : deux colonnes avec les ecrans sur un fond
   photo, la bande de cartes, les boutons ». Chaque zone reprend la zone correspondante de la home
   (components/v6/RecitC.tsx) : memes proportions, memes rayons, meme ombre, memes mouvements.
   Les pages sont recomposees par wordpress/tools/kx_zones.py ; les deux modules partages
   (plateforme en onglets, bande de cartes) par kx_zones_modules.py.
   ========================================================================== */

/* --- Les tons des cartes et de leurs scenes (home : .kx6-ton-*) --------------------------------
   --s1 le trait principal, --s2 les pistes, --s3 l'accent, --s4 les surfaces, --s5 le fond. */
.kx-v3-ton--violet { background: var(--v3-violet); color: var(--v3-blanc); --s1: #FFFFFF; --s2: rgba(255, 255, 255, 0.24); --s3: var(--v3-jaune); --s4: rgba(255, 255, 255, 0.14); --s5: var(--v3-violet); }
.kx-v3-ton--erebus { background: var(--v3-ink); color: var(--v3-paper); --s1: #F8F8FF; --s2: rgba(248, 248, 255, 0.2); --s3: var(--v3-cyan); --s4: rgba(248, 248, 255, 0.09); --s5: var(--v3-ink); }
.kx-v3-ton--lavande { background: var(--v3-lavande); color: var(--v3-ink); --s1: var(--v3-ink); --s2: rgba(18, 1, 45, 0.16); --s3: var(--v3-violet); --s4: rgba(255, 255, 255, 0.6); --s5: var(--v3-lavande); }
.kx-v3-ton--cyan { background: var(--v3-cyan); color: var(--v3-ink); --s1: var(--v3-ink); --s2: rgba(18, 1, 45, 0.16); --s3: var(--v3-violet); --s4: rgba(255, 255, 255, 0.55); --s5: var(--v3-cyan); }
.kx-v3-ton--pale { background: var(--v3-violet-soft); color: var(--v3-ink); --s1: var(--v3-ink); --s2: rgba(18, 1, 45, 0.12); --s3: var(--v3-violet); --s4: #FFFFFF; --s5: var(--v3-violet-soft); }
/* La carte pale se detache du fond par un filet (home) */
.kx-v3-tuile.kx-v3-ton--pale { box-shadow: inset 0 0 0 1px var(--v3-line); }
.kx-v3-ton--nuit { background: rgba(248, 248, 255, 0.06); color: var(--v3-paper); --s1: #F8F8FF; --s2: rgba(248, 248, 255, 0.2); --s3: var(--v3-cyan); --s4: rgba(248, 248, 255, 0.09); --s5: var(--v3-ink); }

/* --- Les scenes animees (home : .kx6-scene, .kx6-sc-*) --------------------------------------- */
.kx-v3-sc { display: block; width: 100%; height: auto; overflow: visible; }
.kx-v3-sc * { transform-box: fill-box; }
@keyframes kxScClignote { 0%, 100% { opacity: .35; } 50% { opacity: 1; } }
@keyframes kxScPousse { 0% { transform: scaleX(0); } 22%, 88% { transform: scaleX(1); } 96%, 100% { transform: scaleX(0); } }
@keyframes kxScMonte { 0% { transform: scaleY(0); } 22%, 88% { transform: scaleY(1); } 96%, 100% { transform: scaleY(0); } }
@keyframes kxScApparait { 0% { opacity: 0; } 10%, 88% { opacity: 1; } 96%, 100% { opacity: 0; } }
@keyframes kxScApparaitTard { 0%, 42% { opacity: 0; } 52%, 88% { opacity: 1; } 96%, 100% { opacity: 0; } }
@keyframes kxScTrace { 0% { stroke-dashoffset: 100; } 45%, 88% { stroke-dashoffset: 0; } 97%, 100% { stroke-dashoffset: 100; } }
@keyframes kxScJauge { 0% { stroke-dashoffset: 78; } 40%, 88% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: 78; } }
@keyframes kxScCoche { 0% { opacity: 0; transform: scale(.6); } 8%, 86% { opacity: 1; transform: none; } 94%, 100% { opacity: 0; } }
@keyframes kxScScan { 0% { transform: translateY(0); opacity: 0; } 4% { opacity: .3; } 40% { transform: translateY(98px); opacity: .3; } 46%, 100% { transform: translateY(98px); opacity: 0; } }
@keyframes kxScBulle { 0% { opacity: 0; transform: translateY(6px); } 8%, 86% { opacity: 1; transform: none; } 94%, 100% { opacity: 0; } }
@keyframes kxScLecture { 0% { transform: scaleX(0); } 80%, 100% { transform: scaleX(1); } }
@keyframes kxScTrajet { 0%, 5% { transform: translate(22px, 120px); } 28%, 33% { transform: translate(98px, 48px); } 58%, 63% { transform: translate(172px, 98px); } 88%, 100% { transform: translate(256px, 30px); } }
@keyframes kxScArret1 { 0%, 27% { fill: var(--s4); } 29%, 97% { fill: var(--s3); } 100% { fill: var(--s4); } }
@keyframes kxScArret2 { 0%, 57% { fill: var(--s4); } 59%, 97% { fill: var(--s3); } 100% { fill: var(--s4); } }
@keyframes kxScArret3 { 0%, 87% { fill: var(--s4); } 89%, 97% { fill: var(--s3); } 100% { fill: var(--s4); } }
.kx-sc-clignote { animation: kxScClignote 2.4s ease-in-out infinite both; }
.kx-sc-pousse { transform-origin: left center; animation: kxScPousse 7s cubic-bezier(.65, 0, .35, 1) infinite both; }
.kx-sc-monte { transform-origin: center bottom; animation: kxScMonte 7s cubic-bezier(.65, 0, .35, 1) infinite both; }
.kx-sc-apparait { animation: kxScApparait 7s ease-out infinite both; }
.kx-sc-apparait-tard { animation: kxScApparaitTard 7s ease-out infinite both; }
.kx-sc-trace { animation: kxScTrace 7s cubic-bezier(.45, 0, .25, 1) infinite both; }
.kx-sc-jauge { animation: kxScJauge 7s cubic-bezier(.45, 0, .25, 1) infinite both; }
.kx-sc-coche { transform-origin: center; animation: kxScCoche 7s cubic-bezier(.16, 1, .3, 1) infinite both; }
.kx-sc-scan { opacity: 0; animation: kxScScan 7s linear infinite both; }
.kx-sc-bulle { animation: kxScBulle 7s cubic-bezier(.16, 1, .3, 1) infinite both; }
.kx-sc-lecture { transform-origin: left center; animation: kxScLecture 7s linear infinite both; }
.kx-sc-trajet { transform: translate(256px, 30px); animation: kxScTrajet 7s cubic-bezier(.45, 0, .25, 1) infinite both; }
.kx-sc-arret-0 { fill: var(--s3); }
.kx-sc-arret-1 { animation: kxScArret1 7s linear infinite both; }
.kx-sc-arret-2 { animation: kxScArret2 7s linear infinite both; }
.kx-sc-arret-3 { animation: kxScArret3 7s linear infinite both; }
@media (prefers-reduced-motion: reduce) {
  .kx-v3-sc, .kx-v3-sc * { animation: none !important; }
  .kx-sc-scan { display: none; }
}

/* --- L'ecran du produit pose sur une photo (home : Transmettre, Demarrage) ---------------------
   La photo habille (elle est legerement floutee et voilee), l'ecran est blanc, a 10 px, avec
   l'ombre franche des cartes de la home ; la mention se lit sous l'ecran, en blanc. */
.kx-v3-ecran { position: relative; isolation: isolate; overflow: hidden; margin: 0; padding: 7% 5%; border-radius: var(--v3-r); background: var(--v3-line); }
.kx-v3-ecran__fond { position: absolute; z-index: -2; inset: -4%; width: 108%; height: 108%; max-width: none; object-fit: cover; filter: blur(5px); }
/* Le voile fonce vers le bas, la ou se lit la mention : elle reste lisible meme sur un fond clair (visuels
   « tech » refaits le 02/10, blancs et violets) */
.kx-v3-ecran::before { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg, rgba(18, 1, 45, 0.22) 62%, rgba(18, 1, 45, 0.66)); }
.kx-v3-ecran__cadre { display: block; }
.kx-v3-ecran__capture { display: block; width: auto; max-width: 100%; height: auto; max-height: 34rem; margin-inline: auto; border-radius: 10px; background: var(--v3-blanc); box-shadow: 0 32px 64px -32px rgba(18, 1, 45, 0.5), 0 1px 3px rgba(18, 1, 45, 0.1); }
.kx-da-v3 .kx-v3-ecran figcaption { margin: .75rem 0 0; text-align: right; font-size: .75rem; line-height: 1.3; color: rgba(255, 255, 255, 0.92); }
/* Sur telephone, l'ecran est agrandi et cadre sur sa gauche, pour rester lisible (comme sur la home) */
@media (max-width: 639px) {
  .kx-v3-ecran { padding: 1.25rem 0 1rem 1rem; }
  .kx-v3-ecran__capture { width: 165%; max-width: none; max-height: none; margin: 0; border-radius: 10px 0 0 10px; }
  .kx-da-v3 .kx-v3-ecran figcaption { padding-right: 1rem; }
}
/* Un telephone : le cadre est dans l'image, l'ombre suit son contour */
.kx-v3-ecran--mobile { padding: 8% 5% 6%; }
.kx-v3-ecran--mobile .kx-v3-ecran__capture { width: min(17rem, 62%); max-width: none; max-height: none; margin-inline: auto; border-radius: 0; background: none; box-shadow: none; filter: drop-shadow(0 30px 34px rgba(18, 1, 45, 0.45)); }

/* --- La vue : le texte d'un cote, l'ecran de l'autre (grille 5 / 7, les cotes alternent) ------- */
.kx-v3-vue { display: grid; gap: 3rem; align-items: center; }
@media (min-width: 1024px) {
  .kx-v3-vue { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 4rem; }
  .kx-v3-vue > .kx-v3-vue__texte { grid-column: span 5; }
  .kx-v3-vue > .kx-v3-ecran { grid-column: span 7; }
  .kx-v3-vue--inverse > .kx-v3-vue__texte { order: 2; }
  /* Texte long : l'ecran reste en place pendant qu'on lit */
}
.kx-da-v3 .kx-v3-vue__texte > .kx-v3-surtitre:first-child + .kx-v3-h2 { margin-top: .875rem; }
.kx-da-v3 .kx-v3-vue__texte > .kx-v3-h2:first-child { margin-top: 0; }
.kx-da-v3 .kx-v3-vue__texte .kx-v3-h2 + .kx-v3-lead { margin-top: 1.5rem; }
.kx-da-v3 .kx-v3-vue__texte .kx-v3-lead { font-size: 1.25rem; line-height: 1.5; color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-vue__texte > p:not(.kx-v3-lead):not(.kx-v3-surtitre):not(.kx-v3-intro) { margin: 1.25rem 0 0; font-size: 1.0625rem; line-height: 1.7; color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-vue__texte > p a { color: var(--v3-violet); text-decoration: underline; text-underline-offset: .2em; text-decoration-thickness: 1px; }
/* En-tete d'une liste de cartes, au meme format */
.kx-v3-vue--entete { margin-bottom: 2.5rem; }
@media (min-width: 1024px) { .kx-v3-vue--entete { margin-bottom: 4rem; } }

/* --- Listes cochees : des lignes a filets, la coche dans une pastille (home : lignes des blocs) - */
.kx-da-v3 .entry-content :is(.kx-v3-vue__texte, .kx-v3-edito__corps, .kx-v3-duo__texte) > .kx-v3-checks { display: block; margin: 2rem 0 0; border-top: 1px solid var(--v3-ink-20); }
:is(.kx-v3-vue__texte, .kx-v3-edito__corps, .kx-v3-duo__texte) > .kx-v3-checks li { display: grid; grid-template-columns: 2.25rem minmax(0, 1fr); align-items: center; gap: 1rem; padding: .875rem 0; border: 0; border-bottom: 1px solid var(--v3-ink-20); border-radius: 0; background: none; font-size: 1.0625rem; font-weight: 500; line-height: 1.4; color: var(--v3-ink); }
:is(.kx-v3-vue__texte, .kx-v3-edito__corps, .kx-v3-duo__texte) > .kx-v3-checks li::before { position: static; width: 2.25rem; height: 2.25rem; border-radius: var(--v3-r); background: var(--v3-violet-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235B26FE' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 1.125rem no-repeat; }
.kx-v3-section--lavande :is(.kx-v3-vue__texte, .kx-v3-edito__corps, .kx-v3-duo__texte) > .kx-v3-checks li { background: none; }
.kx-v3-section--lavande :is(.kx-v3-vue__texte, .kx-v3-edito__corps, .kx-v3-duo__texte) > .kx-v3-checks li::before { background-color: var(--v3-blanc); }
.kx-v3-section--encre .kx-v3-edito__corps > .kx-v3-checks { border-top-color: rgba(248, 248, 255, 0.16); }
.kx-v3-section--encre .kx-v3-edito__corps > .kx-v3-checks li { border-bottom-color: rgba(248, 248, 255, 0.16); background: none; color: var(--v3-paper); }
.kx-v3-section--encre .kx-v3-edito__corps > .kx-v3-checks li::before { background: rgba(248, 248, 255, 0.08) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231AECDE' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 1.125rem no-repeat; }
/* Les etapes numerotees : le numero dans la meme pastille */
.kx-v3-temps li { padding-left: 3.75rem; }
.kx-v3-temps li::before { content: counter(t); top: 1.4rem; display: flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border-radius: var(--v3-r); background: var(--v3-violet-soft); font-size: 1rem; font-weight: 600; }
.kx-v3-section--lavande .kx-v3-temps li::before { background: var(--v3-blanc); }
.kx-v3-section--encre .kx-v3-temps li::before { background: rgba(248, 248, 255, 0.08); }

/* --- Premier ecran avec l'ecran de Korbyx (pages a scene) : la photo en fond, fondue dans le violet,
   et la reponse de Korbyx posee dessus, a droite -------------------------------------------------- */
@media (min-width: 1024px) { .kx-v3-hero__grille--ecran { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 4rem; } }
.kx-v3-hero--ecran .kx-v3-intro { max-width: 40rem; }
.kx-v3-hero__ecran { position: relative; z-index: 1; margin: 0; animation: kxV3Entre .9s var(--v3-ease) .35s both; }
.kx-da-v3 .kx-v3-hero__ecran figcaption { margin: .75rem 0 0; text-align: right; font-size: .75rem; color: rgba(255, 255, 255, 0.85); }
.kx-v3-ui { padding: 1.25rem; border-radius: 10px; background: var(--v3-blanc); color: var(--v3-ink); box-shadow: 0 32px 64px -32px rgba(18, 1, 45, 0.6), 0 1px 3px rgba(18, 1, 45, 0.1); }
@media (min-width: 640px) { .kx-v3-ui { padding: 1.5rem; } }
.kx-da-v3 .kx-v3-ui p { margin: 0; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-ui .kx-v3-ui__tete { display: flex; align-items: center; gap: .5rem; padding-bottom: .875rem; border-bottom: 1px solid var(--v3-line); font-size: .9375rem; line-height: 1.2; }
.kx-v3-ui__tete .kx-v3-marque { width: 1rem; height: 1rem; color: var(--v3-violet); }
.kx-v3-ui__tete b { font-weight: 600; }
.kx-v3-ui__tete > span:last-child { font-size: .8125rem; color: var(--v3-ink-50); }
.kx-v3-ui__tete > span:last-child::before { content: "\00B7\00A0"; }
.kx-da-v3 .kx-v3-ui .kx-v3-ui__q { width: fit-content; max-width: 90%; margin: 1rem 0 0 auto; padding: .6rem .875rem; border: 1px solid var(--v3-line); border-radius: var(--v3-r); font-size: .9375rem; line-height: 1.4; }
.kx-da-v3 .kx-v3-ui .kx-v3-ui__r { margin-top: .75rem; padding: .875rem 1rem; border-radius: var(--v3-r); background: var(--v3-violet-soft); font-size: 1rem; font-weight: 500; line-height: 1.45; letter-spacing: -0.005em; }
.kx-v3-ui__duo { display: grid; gap: .75rem; margin-top: .75rem; }
@media (min-width: 480px) { .kx-v3-ui__duo { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); } }
.kx-v3-ui__mesure, .kx-v3-ui__grille { padding: .75rem .875rem; border: 1px solid var(--v3-line); border-radius: var(--v3-r); }
.kx-v3-ui__mesure { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.kx-v3-ui__mesure small { display: block; font-size: .75rem; line-height: 1.3; color: var(--v3-ink-70); }
.kx-v3-ui__mesure b { display: block; margin-top: .15rem; font-size: 1.5rem; font-weight: 600; line-height: 1.1; letter-spacing: -0.03em; white-space: nowrap; }
.kx-v3-ui__mesure svg { flex: none; width: 4rem; height: 1.75rem; }
.kx-v3-ui__mesure path { fill: none; stroke: var(--v3-violet); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.kx-v3-ui__grille { display: flex; flex-direction: column; justify-content: center; gap: .6rem; }
.kx-da-v3 .kx-v3-ui .kx-v3-ui__grille > p { display: flex; align-items: center; justify-content: space-between; gap: .5rem; font-size: .75rem; line-height: 1.3; }
.kx-v3-ui__grille .kx-v3-tuiles { grid-template-columns: repeat(15, minmax(0, 1fr)); gap: 3px; }
.kx-da-v3 .kx-v3-ui .kx-v3-ui__pied { display: flex; justify-content: flex-end; margin-top: .875rem; padding-top: .875rem; border-top: 1px solid var(--v3-line); }
.kx-v3-ui__bouton { display: inline-flex; align-items: center; height: 2rem; padding: 0 .8rem; border-radius: var(--v3-r-s); background: var(--v3-violet); color: var(--v3-blanc); font-size: .8125rem; font-weight: 500; white-space: nowrap; }
/* La photo du fond garde plus de lumiere a droite, derriere l'ecran */
.kx-v3-hero--ecran .kx-v3-hero__photo::after { background: linear-gradient(90deg, rgba(18, 1, 45, 0.82) 0%, rgba(18, 1, 45, 0.6) 46%, rgba(18, 1, 45, 0.18) 100%); }
@media (max-width: 1023px) { .kx-v3-hero--ecran .kx-v3-hero__photo::after { background: rgba(18, 1, 45, 0.66); } }

/* --- Les cartes de couleur (home : « Industrie par industrie ») ---------------------------------
   Une carte : son type, sa scene, son titre, une phrase, « Decouvrir ». Toute la carte se clique. */
.kx-v3-tuile { position: relative; display: flex; flex-direction: column; margin: 0; padding: 1.5rem; border-radius: var(--v3-r); overflow: hidden; }
.kx-v3-tuile__type { align-self: flex-start; padding: .125rem .5rem; border-radius: var(--v3-r-s); background: var(--s4); font-size: .75rem; font-weight: 600; line-height: 1.5; }
.kx-v3-tuile__scene { display: flex; flex: 1; align-items: center; min-height: 9.5rem; padding: 1.25rem 0; }
.kx-da-v3 .kx-v3-tuile .kx-v3-tuile__titre { margin: 0; font-size: 1.3125rem; font-weight: 600; line-height: 1.18; letter-spacing: -0.02em; color: inherit; text-wrap: balance; }
.kx-da-v3 .kx-v3-tuile .kx-v3-tuile__titre a { color: inherit; text-decoration: none; }
.kx-da-v3 .kx-v3-tuile .kx-v3-tuile__titre a::after { content: ""; position: absolute; inset: 0; }
.kx-da-v3 .kx-v3-tuile > p { margin: .5rem 0 0; font-size: .875rem; line-height: 1.6; color: inherit; }
.kx-da-v3 .kx-v3-tuile:not(.kx-v3-tuile--sobre) > p { opacity: .88; }
.kx-v3-tuile__voir { display: inline-flex; align-items: center; gap: .375rem; margin-top: 1rem; font-size: .875rem; font-weight: 500; }
.kx-v3-tuile__voir svg { width: .875rem; height: .875rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: transform .3s var(--v3-ease); }
.kx-v3-tuile:hover .kx-v3-tuile__voir svg { transform: translateX(3px); }
.kx-v3-tuile:has(a:focus-visible) { outline: 2px solid var(--v3-violet); outline-offset: 3px; }
.kx-da-v3 .kx-v3-tuile a:focus-visible { outline: 0; }
.kx-da-v3 .kx-v3-tuile--secteur .kx-v3-tuile__titre { font-size: 1.875rem; line-height: 1.05; }
.kx-da-v3 .entry-content .kx-v3-tuile .kx-v3-carte__liste { margin: .75rem 0 0; }
.kx-v3-tuile:not(.kx-v3-tuile--sobre) .kx-v3-carte__liste li { color: inherit; opacity: .88; }
.kx-v3-tuile:not(.kx-v3-tuile--sobre) .kx-v3-carte__liste li::before { background: var(--s3); }
/* La carte sobre : blanche, la scene sur un fond lavande pale (deuxieme liste d'une page et suivantes) */
.kx-v3-tuile--sobre { padding: 1rem 1rem 1.5rem; border: 1px solid var(--v3-line); background: var(--v3-blanc); color: var(--v3-ink); --s1: var(--v3-ink); --s2: rgba(18, 1, 45, 0.12); --s3: var(--v3-violet); --s4: #FFFFFF; --s5: var(--v3-violet-soft); transition: border-color .35s; }
@media (hover: hover) { .kx-v3-tuile--sobre:hover { border-color: var(--v3-lavande); } }
.kx-v3-tuile--sobre .kx-v3-tuile__scene { flex: none; min-height: 0; margin-bottom: 1.25rem; padding: 1.5rem 1.75rem; border-radius: var(--v3-r-s); background: var(--v3-violet-soft); }
.kx-v3-tuile--sobre .kx-v3-tuile__type { order: 1; margin: 0 .5rem .6rem; background: var(--v3-violet-soft); color: var(--v3-violet); }
.kx-v3-tuile--sobre > :is(.kx-v3-tuile__titre, p, ul, .kx-v3-tuile__voir) { order: 2; }
.kx-da-v3 .kx-v3-tuile--sobre .kx-v3-tuile__titre { margin-inline: .5rem; }
.kx-da-v3 .kx-v3-tuile--sobre > p { margin: .6rem .5rem 0; font-size: .9375rem; color: var(--v3-ink-70); }
.kx-da-v3 .entry-content .kx-v3-tuile--sobre .kx-v3-carte__liste { margin-inline: .5rem; }
.kx-v3-tuile--sobre .kx-v3-tuile__voir { margin: 1rem .5rem 0; color: var(--v3-violet); }
.kx-v3-tuile--sobre .kx-v3-sc { max-width: 17.5rem; margin-inline: auto; }
.kx-da-v3 .kx-v3-rail__outils--seul { justify-content: flex-end; margin: 0 0 1.5rem; }
.kx-v3-vue--entete + .kx-v3-rail__outils--seul { margin-top: -1rem; }
.kx-v3-tuile__photo { display: block; margin-bottom: 1.25rem; overflow: hidden; border-radius: var(--v3-r-s); aspect-ratio: 16 / 10; background: var(--v3-violet-soft); }
.kx-v3-tuile__image { display: block; width: 100%; height: 100%; object-fit: cover; }

/* En mosaique : deux, trois ou quatre cartes par rangee */
.kx-da-v3 .entry-content .kx-v3-mosaique { display: grid; gap: 1rem; margin: 0; padding: 0; list-style: none; }
@media (min-width: 700px) { .kx-da-v3 .entry-content .kx-v3-mosaique { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; } }
@media (min-width: 1100px) {
  .kx-da-v3 .entry-content .kx-v3-mosaique--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .kx-da-v3 .entry-content .kx-v3-mosaique--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.kx-v3-mosaique > .kx-v3-tuile:not(.kx-v3-tuile--sobre) { min-height: 24rem; }

/* En bande : les cartes sortent de la colonne et se font defiler (fleches, souris, doigt) */
.kx-v3-rail-section { overflow: hidden; }
body.kx-da-v3 .entry-content .kx-v3-section > .kx-v3-rail { display: flex; gap: 1rem; margin: 0 calc(var(--v3-gouttiere) * -1); padding: 0 var(--v3-gouttiere) 0 calc(var(--v3-gouttiere) + max(0px, (100% - 88rem) / 2)); list-style: none; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; cursor: grab; }
body.kx-da-v3 .entry-content .kx-v3-section > .kx-v3-rail::-webkit-scrollbar { display: none; }
body.kx-da-v3 .entry-content .kx-v3-section > .kx-v3-rail:active { cursor: grabbing; }
.kx-v3-rail > .kx-v3-tuile { flex: none; width: 20rem; min-height: 26rem; user-select: none; }
@media (max-width: 639px) { .kx-v3-rail > .kx-v3-tuile { width: 78vw; } }
body.kx-da-v3 .entry-content .kx-v3-section > .kx-v3-rail[data-kx-rail="boucle"] { padding-left: 0; }
.kx-v3-rail img { -webkit-user-drag: none; }
/* L'en-tete d'une bande : le titre a gauche ; a droite le texte, les fleches et les liens */
.kx-da-v3 .kx-v3-rail__outils { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.5rem; margin: 1.5rem 0 0; }
.kx-v3-rail__fleches { display: flex; gap: .5rem; }
.kx-da-v3 .kx-v3-rail__fleches button { display: flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; padding: 0; border: 1px solid var(--v3-ink-20); border-radius: var(--v3-r-s); background: var(--v3-blanc); color: var(--v3-ink); cursor: pointer; transition: border-color .25s; }
.kx-da-v3 .kx-v3-rail__fleches button:hover { border-color: var(--v3-ink); background: var(--v3-blanc); color: var(--v3-ink); }
.kx-v3-rail__fleches svg { width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.kx-v3-rail__fleches button:first-child svg { transform: rotate(180deg); }
.kx-da-v3 a.kx-v3-lien-fleche { display: inline-flex; align-items: center; gap: .375rem; font-size: .9375rem; font-weight: 500; color: var(--v3-violet); text-decoration: none; transition: color .25s; }
.kx-da-v3 a.kx-v3-lien-fleche:hover { color: var(--v3-ink); }
.kx-v3-lien-fleche svg { width: .875rem; height: .875rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.kx-v3-section.kx-v3-contenus { border-top: 1px solid var(--v3-line); }

/* --- Titre et texte face a face, centres en hauteur ; une scene animee sous le titre quand elle parle
   du sujet (kx_zones.py : edito). Plus aucune section sur fond sombre (Thomas, 02/10). ------------- */
@media (min-width: 1024px) {
  .kx-da-v3 .kx-v3-edito__visuel.kx-v3-edito__scene { display: block; height: auto; max-width: 21rem; margin-top: 2.5rem; padding: 1.75rem 2rem; border: 0; border-radius: var(--v3-r); }
  .kx-da-v3 .kx-v3-edito__scene.kx-v3-ton--violet { background: var(--v3-violet); }
  .kx-da-v3 .kx-v3-edito__scene.kx-v3-ton--lavande { background: var(--v3-lavande); }
  .kx-da-v3 .kx-v3-edito__scene.kx-v3-ton--cyan { background: var(--v3-cyan); }
  .kx-v3-section[data-kx-zones] .kx-v3-edito, [data-kx-zones] ~ .kx-v3-section .kx-v3-edito { align-items: center; }
  .kx-v3-section[data-kx-zones] .kx-v3-edito__tete, [data-kx-zones] ~ .kx-v3-section .kx-v3-edito__tete { position: static; }
}

/* --- L'appel du milieu de page (home : « Pour toutes les entreprises ») : le titre et le texte
   au-dessus ; dessous, la photo de la page en pleine largeur, un voile Erebus qui s'efface vers la
   droite, et par-dessus, a gauche : le diagnostic en trois points, le bouton, la reassurance. -------- */
.kx-v3-section.kx-v3-appel { padding-bottom: 0; overflow: hidden; }
.kx-v3-appel .kx-v3-entete { margin-bottom: 0; }
body.kx-da-v3 .entry-content .kx-v3-section > .kx-v3-appel__scene { position: relative; isolation: isolate; margin: 2.5rem calc(var(--v3-gouttiere) * -1) 0; background: var(--v3-ink); color: var(--v3-paper); }
.kx-v3-appel__photo { display: block; width: 100%; height: 18rem; max-width: none; object-fit: cover; object-position: 50% 25%; }
@media (min-width: 640px) { .kx-v3-appel__photo { height: 24rem; } }
.kx-v3-appel__scene > .kx-v3-wrap { padding: 3rem var(--v3-gouttiere); }
@media (min-width: 1024px) {
  body.kx-da-v3 .entry-content .kx-v3-section > .kx-v3-appel__scene { display: flex; align-items: center; min-height: 38rem; margin-top: 3.5rem; }
  .kx-v3-appel__photo { position: absolute; z-index: -2; inset: 0; height: 100%; }
  .kx-v3-appel__scene::before { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(18, 1, 45, 0.92) 0%, rgba(18, 1, 45, 0.6) 35%, rgba(18, 1, 45, 0) 64%); }
  .kx-v3-appel__scene > .kx-v3-wrap { width: 100%; padding-block: 5rem; }
}
.kx-v3-appel__corps { max-width: 30rem; }
.kx-da-v3 .kx-v3-diag__titre { margin: 0; font-size: .875rem; font-weight: 500; color: var(--v3-lavande); }
.kx-da-v3 .entry-content .kx-v3-diag__points { display: grid; gap: 1.75rem; margin: 1.5rem 0 0; padding: 0; list-style: none; }
.kx-v3-diag__points > li { margin: 0; padding-left: 1.25rem; border-left: 2px solid var(--v3-cyan); }
.kx-v3-diag__points b { display: block; font-size: 1.25rem; font-weight: 600; line-height: 1.2; letter-spacing: -0.02em; color: var(--v3-paper); }
.kx-v3-diag__points span { display: block; margin-top: .375rem; font-size: .96875rem; line-height: 1.6; color: rgba(248, 248, 255, 0.8); }
.kx-v3-appel__corps .kx-v3-actions { margin-top: 2.25rem; padding-top: 1.75rem; border-top: 1px solid rgba(248, 248, 255, 0.25); }
.kx-da-v3 .kx-v3-appel__scene a.kx-v3-cta { background: var(--v3-paper); color: var(--v3-ink); }
.kx-da-v3 .kx-v3-appel__scene a.kx-v3-cta:hover { background: var(--v3-cyan); color: var(--v3-ink); }
.kx-da-v3 .kx-v3-appel__scene :is(a, button):focus-visible { outline-color: var(--v3-cyan); }
.kx-da-v3 .entry-content .kx-v3-appel__scene .kx-v3-reassurance { color: rgba(248, 248, 255, 0.86); }
.kx-v3-appel__scene .kx-v3-reassurance li { border-color: rgba(248, 248, 255, 0.3); }

/* --- Les questions (home : « Avant de reserver, vos questions ») : a gauche, qui reste en place,
   le titre, le rendez-vous et qui vous appelle ; a droite, les questions ------------------------ */
@media (min-width: 1024px) {
  .kx-v3-faq { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0; }
  .kx-v3-faq > .kx-v3-faq__tete { grid-column: 1 / span 4; position: sticky; top: 7.5rem; align-self: start; }
  .kx-v3-faq > .kx-v3-faq__liste { grid-column: 6 / span 7; }
}
.kx-v3-rdv { margin-top: 1.5rem; }
.kx-da-v3 .kx-v3-rdv__texte { margin: 0; max-width: 28rem; font-size: 1.0625rem; line-height: 1.6; color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-rdv a.kx-v3-cta { height: 3rem; margin-top: 2rem; padding: 0 1.25rem; font-size: .9375rem; }
.kx-da-v3 .kx-v3-rdv__qui { display: flex; align-items: center; gap: .75rem; max-width: 28rem; margin: 1.5rem 0 0; font-size: .84375rem; line-height: 1.4; color: var(--v3-ink-70); }
.kx-v3-rdv__qui img { flex: none; width: 2.75rem; height: 2.75rem; border-radius: 9999px; object-fit: cover; object-position: top; background: var(--v3-line); }
.kx-v3-rdv__qui b { display: block; font-weight: 600; color: var(--v3-ink); }

/* --- Le rendez-vous en ligne : une phrase, le bouton (home : sous la plateforme) ---------------- */
.kx-v3-rdv-ligne { display: flex; flex-direction: column; align-items: center; gap: 1rem; margin-top: 2.5rem; text-align: center; }
@media (min-width: 640px) { .kx-v3-rdv-ligne { flex-direction: row; justify-content: center; gap: 1.5rem; text-align: left; } }
.kx-da-v3 .kx-v3-rdv-ligne p { margin: 0; max-width: 26rem; font-size: 1.0625rem; line-height: 1.5; color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-rdv-ligne a.kx-v3-cta { flex: none; height: 3rem; padding: 0 1.25rem; font-size: .9375rem; }

/* --- La citation : une carte lavande pale, le portrait sur son fond lavande (home : l'equipe) --- */
.kx-da-v3 .kx-v3-fondateur--citation { background: var(--v3-violet-soft); color: var(--v3-ink); }
.kx-da-v3 .kx-v3-fondateur--citation blockquote { font-size: clamp(1.5rem, 2.5vw, 2.25rem); font-weight: 300; line-height: 1.25; letter-spacing: -0.03em; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-fondateur--citation figcaption { border-top-color: rgba(18, 1, 45, 0.14); }
.kx-da-v3 .kx-v3-fondateur--citation .kx-v3-fondateur__qui { color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-fondateur--citation .kx-v3-fondateur__qui b { color: var(--v3-ink); }
.kx-v3-fondateur--citation .kx-v3-fondateur__photo { background: var(--v3-lavande); }

/* --- La plateforme en quatre temps (home : « Korbyx detecte, propose, fait agir et mesure ») ----
   Des onglets simples qui avancent seuls tant qu'on regarde ; la phrase du temps en cours ; la scene :
   la photo d'ambiance qui habille, l'ecran de Korbyx en grand, coupe en bas. */
.kx-v3-pf__tete { max-width: 52rem; margin-inline: auto; text-align: center; }
.kx-da-v3 .kx-v3-pf__tete .kx-v3-h2 { margin-top: 0; }
.kx-da-v3 .kx-v3-pf__tete .kx-v3-h2 em { display: block; }
.kx-da-v3 .kx-v3-pf__tete .kx-v3-intro { max-width: 40rem; margin-inline: auto; }
.kx-v3-pf__onglets { display: flex; gap: .25rem; width: fit-content; max-width: 100%; margin: 3rem auto 0; padding: .25rem; overflow-x: auto; scrollbar-width: none; border: 1px solid var(--v3-line); border-radius: 8px; background: var(--v3-blanc); }
.kx-v3-pf__onglets::-webkit-scrollbar { display: none; }
.kx-da-v3 .kx-v3-pf__onglets button { position: relative; display: flex; flex: none; align-items: center; gap: .5rem; overflow: hidden; padding: .625rem 1rem; border: 0; border-radius: var(--v3-r); background: transparent; color: var(--v3-ink-70); font-size: .9375rem; font-weight: 500; line-height: 1.2; cursor: pointer; transition: background-color .25s, color .25s; }
.kx-da-v3 .kx-v3-pf__onglets button:hover { background: var(--v3-violet-soft); color: var(--v3-ink); }
.kx-da-v3 .kx-v3-pf__onglets button[aria-selected="true"] { background: var(--v3-ink); color: var(--v3-paper); }
.kx-v3-pf__onglets svg { width: 1rem; height: 1rem; flex: none; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.kx-v3-pf__prog { position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--v3-cyan); transform: scaleX(0); transform-origin: left; }
.kx-v3-pf.is-tourne button[aria-selected="true"] .kx-v3-pf__prog { animation: kxPfProg var(--kx-pf-duree, 9s) linear both; }
@keyframes kxPfProg { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.kx-v3-pf__temps { display: grid; max-width: 58rem; margin: 2rem auto 0; text-align: center; }
.kx-v3-pf__temps > div { grid-area: 1 / 1; }
.kx-v3-pf__temps > div[data-on="false"] { visibility: hidden; }
.kx-v3-pf__temps > div[data-on="true"] { animation: kxV3Entre .7s var(--v3-ease) both; }
.kx-da-v3 .kx-v3-pf__phrase { margin: .5rem 0 0; font-size: clamp(1.5rem, 2.5vw, 2.125rem); font-weight: 300; line-height: 1.2; letter-spacing: -0.025em; color: var(--v3-ink); text-wrap: balance; }
.kx-da-v3 .kx-v3-pf__phrase em { font-style: normal; font-weight: 600; color: var(--v3-violet); }
.kx-v3-pf__scene { position: relative; isolation: isolate; overflow: hidden; margin-top: 2rem; border-radius: var(--v3-r); background: var(--v3-line); }
@media (min-width: 1024px) { .kx-v3-pf__scene { height: 44rem; margin-top: 2.5rem; } }
.kx-v3-pf__fond { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; opacity: 0; transition: opacity 1s; }
.kx-v3-pf__fond[data-on="true"] { opacity: 1; }
.kx-v3-pf__scene::before { content: ""; position: absolute; z-index: -1; inset: 0; background: rgba(18, 1, 45, 0.1); }
.kx-v3-pf__ecrans { display: grid; padding: 1.5rem 1rem; }
@media (min-width: 640px) { .kx-v3-pf__ecrans { padding: 3rem 2.5rem 2.5rem; } }
@media (min-width: 1024px) { .kx-v3-pf__ecrans { padding: 3.5rem 0 0; } }
.kx-v3-pf__ecran { position: relative; grid-area: 1 / 1; width: var(--m); max-width: none; margin-left: calc(var(--r) * -1); }
@media (min-width: 640px) { .kx-v3-pf__ecran { width: 100%; margin-left: 0; } }
@media (min-width: 1024px) { .kx-v3-pf__ecran { width: var(--l); margin-inline: auto; } }
.kx-v3-pf__ecran[data-on="false"] { visibility: hidden; opacity: 0; }
.kx-v3-pf__ecran[data-on="true"] { animation: kxV3Entre .9s var(--v3-ease) .15s both; }
.kx-v3-pf__cadre { display: block; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.6); border-radius: 8px; background: var(--v3-blanc); box-shadow: 0 40px 80px -36px rgba(18, 1, 45, 0.55), 0 2px 8px rgba(18, 1, 45, 0.12); }
.kx-v3-pf__capture { display: block; width: 100%; height: auto; }
.kx-v3-pf__tel { display: none; }
@media (min-width: 640px) { .kx-v3-pf__tel { position: absolute; right: -5%; top: 30%; display: block; width: 19%; } .kx-v3-pf__capture-tel { display: block; width: 100%; height: auto; filter: drop-shadow(0 26px 30px rgba(18, 1, 45, 0.45)); } }
.kx-da-v3 .kx-v3-pf__mention { position: absolute; right: 1rem; bottom: .75rem; margin: 0; padding: .15rem .5rem; border-radius: var(--v3-r-s); background: rgba(18, 1, 45, 0.55); font-size: .75rem; color: rgba(255, 255, 255, 0.95); }

/* --- Le rendez-vous, toujours a portee sur telephone (home : CtaMobile) -------------------------- */
.kx-v3-cta-mobile { position: fixed; z-index: 40; left: 0; right: 0; bottom: 0; padding: .75rem 1rem; border-top: 1px solid var(--v3-line); background: rgba(248, 248, 255, 0.95); transform: translateY(100%); transition: transform .3s; }
.kx-v3-cta-mobile.is-visible { transform: none; }
.kx-da-v3 .kx-v3-cta-mobile a { display: flex; align-items: center; justify-content: center; gap: .5rem; height: 3rem; border-radius: var(--v3-r-s); background: var(--v3-violet); color: var(--v3-blanc); font-size: 1rem; font-weight: 500; text-decoration: none; }
.kx-v3-cta-mobile svg { width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.kx-da-v3 .kx-v3-cta-mobile p { margin: .375rem 0 0; text-align: center; font-size: .75rem; color: var(--v3-ink-50); }
@media (min-width: 1024px) { .kx-v3-cta-mobile { display: none; } }
@media (max-width: 1023px) { body.kx-a-cta-mobile .kx3f { padding-bottom: 7.5rem; } }

/* --- Texte seul : une colonne de lecture, les listes cochees en lignes -------------------------- */
.kx-da-v3 .entry-content .kx-v3-texte-seul > .kx-v3-checks { display: block; max-width: 44rem; margin: 2rem 0 0; border-top: 1px solid var(--v3-ink-20); }
.kx-v3-texte-seul > .kx-v3-checks li { display: grid; grid-template-columns: 2.25rem minmax(0, 1fr); align-items: center; gap: 1rem; padding: .875rem 0; border: 0; border-bottom: 1px solid var(--v3-ink-20); border-radius: 0; background: none; font-size: 1.0625rem; font-weight: 500; line-height: 1.4; }
.kx-v3-texte-seul > .kx-v3-checks li::before { position: static; width: 2.25rem; height: 2.25rem; border-radius: var(--v3-r); background: var(--v3-violet-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235B26FE' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 1.125rem no-repeat; }
.kx-v3-section--lavande .kx-v3-texte-seul > .kx-v3-checks li { background: none; }
.kx-v3-section--lavande .kx-v3-texte-seul > .kx-v3-checks li::before { background-color: var(--v3-blanc); }

/* --- Le symbole Korbyx, le vrai (les quatre points approximatifs des premieres cartes sont remplaces) */
.kx-v3-marque { display: inline-block; border-radius: 0; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='47.5 220 132 132'%3E%3Cpath d='m69.55,251.28c7.81-2.96,17.44.92,20.47,8.26,2.99,7.24-1.1,16.83-8.73,19.4-9.47,3.2-17.4-.95-20.72-8.35-3.44-7.66.57-16.12,8.98-19.31Z'/%3E%3Cpath d='m80.33,319.95c-7.81,2.94-16.77-.62-19.71-7.82-2.88-7.05,1.2-15.65,8.77-18.52,7.41-2.81,16.78,1.01,19.77,8.05,3.01,7.1-.96,15.33-8.83,18.29Z'/%3E%3Cpath d='m126.38,234.86c3.09,7.27-.43,15.4-7.92,18.31-7.45,2.89-17.2-.61-19.84-7.8-2.96-8.06.33-15.07,8.61-18.49,7.51-3.1,16.07.74,19.15,7.98Z'/%3E%3Cpath d='m123.61,329.05c2.94,6.68-.06,13.72-7.05,16.51-6.9,2.76-15.12-.34-18.1-6.82-2.79-6.07,1.01-14.42,7.69-16.93,6.77-2.54,14.57.69,17.46,7.24Z'/%3E%3Cpath d='m166.55,252.96c.24,7.01-6.03,13.73-13.57,13.94-11.41.31-19.57,10.47-19.68,20.03-.09,8.37,7.33,19.45,19.3,19.81,5.08.15,9.52,1.51,13.13,5.2,4.93,5.04,4.55,12.63-1.24,18.43-4.3,4.3-13.58,4.54-18.39.57-3.39-2.8-5.16-6.26-5.68-10.44-1.08-8.61-7.01-13.35-16.64-12.81-7.46.42-13.54-1.38-18.83-6.62-6.16-6.09-6.76-18.3-1.06-24.86,5.04-5.8,11.31-8.22,19.1-8.3,9.37-.09,14.48-4.98,15.02-13.82.63-10.24,9.26-16.25,19.23-13.39,5.19,1.49,9.12,6.66,9.31,12.25Z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='47.5 220 132 132'%3E%3Cpath d='m69.55,251.28c7.81-2.96,17.44.92,20.47,8.26,2.99,7.24-1.1,16.83-8.73,19.4-9.47,3.2-17.4-.95-20.72-8.35-3.44-7.66.57-16.12,8.98-19.31Z'/%3E%3Cpath d='m80.33,319.95c-7.81,2.94-16.77-.62-19.71-7.82-2.88-7.05,1.2-15.65,8.77-18.52,7.41-2.81,16.78,1.01,19.77,8.05,3.01,7.1-.96,15.33-8.83,18.29Z'/%3E%3Cpath d='m126.38,234.86c3.09,7.27-.43,15.4-7.92,18.31-7.45,2.89-17.2-.61-19.84-7.8-2.96-8.06.33-15.07,8.61-18.49,7.51-3.1,16.07.74,19.15,7.98Z'/%3E%3Cpath d='m123.61,329.05c2.94,6.68-.06,13.72-7.05,16.51-6.9,2.76-15.12-.34-18.1-6.82-2.79-6.07,1.01-14.42,7.69-16.93,6.77-2.54,14.57.69,17.46,7.24Z'/%3E%3Cpath d='m166.55,252.96c.24,7.01-6.03,13.73-13.57,13.94-11.41.31-19.57,10.47-19.68,20.03-.09,8.37,7.33,19.45,19.3,19.81,5.08.15,9.52,1.51,13.13,5.2,4.93,5.04,4.55,12.63-1.24,18.43-4.3,4.3-13.58,4.54-18.39.57-3.39-2.8-5.16-6.26-5.68-10.44-1.08-8.61-7.01-13.35-16.64-12.81-7.46.42-13.54-1.38-18.83-6.62-6.16-6.09-6.76-18.3-1.06-24.86,5.04-5.8,11.31-8.22,19.1-8.3,9.37-.09,14.48-4.98,15.02-13.82.63-10.24,9.26-16.25,19.23-13.39,5.19,1.49,9.12,6.66,9.31,12.25Z'/%3E%3C/svg%3E") center / contain no-repeat; }

/* --- Les textes longs se deplient (Thomas, 02/10 : « trop de texte ») ---------------------------------
   Sans script, tout le texte est visible. Avec (classe kx-js posee des l'en-tete), le texte courant se
   replie derriere « Lire la suite » ; rien ne sort de la page. */
.kx-v3-replie__action { display: none; }
.kx-js .kx-v3-replie:not(.is-ouvert) { position: relative; max-height: 9rem; overflow: hidden; -webkit-mask-image: linear-gradient(#000 30%, transparent 100%); mask-image: linear-gradient(#000 30%, transparent 100%); }
.kx-v3-replie { transition: max-height .5s var(--v3-ease); }
.kx-da-v3 .kx-v3-replie > p { margin: 1.25rem 0 0; font-size: 1.0625rem; line-height: 1.7; color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-replie > p strong { font-weight: 600; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-replie > p a { color: var(--v3-violet); text-decoration: underline; text-underline-offset: .2em; text-decoration-thickness: 1px; }
.kx-js .kx-da-v3 .kx-v3-replie__action { display: block; margin: .75rem 0 0; }
.kx-da-v3 .kx-v3-replie__bouton { display: inline-flex; align-items: center; gap: .5rem; padding: 0; border: 0; background: none; color: var(--v3-violet); font-size: .9375rem; font-weight: 500; line-height: 1.5; cursor: pointer; transition: color .25s; }
.kx-da-v3 .kx-v3-replie__bouton:hover { background: none; color: var(--v3-ink); }
.kx-v3-replie__bouton svg { width: 1.375rem; height: 1.375rem; padding: .25rem; border-radius: var(--v3-r-s); background: var(--v3-violet-soft); fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; transition: transform .3s var(--v3-ease); }
.kx-v3-section--lavande .kx-v3-replie__bouton svg { background: var(--v3-blanc); }
.kx-v3-replie__bouton[aria-expanded="true"] svg { transform: rotate(45deg); }
/* En accordeon : chaque ligne cochee ouvre le paragraphe qu'elle resume (la premiere est ouverte) */
.kx-v3-points { margin-top: 2rem; border-top: 1px solid var(--v3-ink-20); }
.kx-v3-points > details { border-bottom: 1px solid var(--v3-ink-20); }
.kx-da-v3 .kx-v3-points summary { display: grid; grid-template-columns: 2.25rem minmax(0, 1fr) 1.25rem; align-items: center; gap: 1rem; padding: .875rem 0; list-style: none; cursor: pointer; font-size: 1.0625rem; font-weight: 500; line-height: 1.4; color: var(--v3-ink); transition: color .25s; }
.kx-v3-points summary::-webkit-details-marker { display: none; }
.kx-da-v3 .kx-v3-points summary:hover { color: var(--v3-violet); }
.kx-v3-points summary::before { content: ""; width: 2.25rem; height: 2.25rem; border-radius: var(--v3-r); background: var(--v3-violet-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235B26FE' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 1.125rem no-repeat; }
.kx-v3-section--lavande .kx-v3-points summary::before { background-color: var(--v3-blanc); }
.kx-v3-points summary > span { position: relative; width: 1.25rem; height: 1.25rem; transition: transform .3s; }
.kx-v3-points summary > span::before, .kx-v3-points summary > span::after { content: ""; position: absolute; left: 50%; top: 50%; width: 1.125rem; height: 1.8px; margin: -.9px 0 0 -.5625rem; border-radius: 2px; background: var(--v3-violet); }
.kx-v3-points summary > span::after { transform: rotate(90deg); }
.kx-v3-points details[open] summary > span { transform: rotate(45deg); }
.kx-da-v3 .kx-v3-points details > p { margin: -.125rem 0 0; padding: 0 2.25rem 1.25rem 3.25rem; font-size: 1rem; line-height: 1.7; color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-points details > p strong { font-weight: 600; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-points details > p a { color: var(--v3-violet); text-decoration: underline; text-underline-offset: .2em; text-decoration-thickness: 1px; }
/* Les etapes numerotees : deux lignes, le reste au clic */
.kx-js .kx-v3-temps[data-kx-temps] > li { padding-right: 3rem; cursor: pointer; }
.kx-js .kx-v3-temps[data-kx-temps] > li:not(.is-ouvert) > p { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; }
.kx-da-v3 .kx-v3-temps__plus { position: absolute; right: 0; top: 1.4rem; display: flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; padding: 0; border: 0; border-radius: var(--v3-r-s); background: var(--v3-violet-soft); color: var(--v3-violet); cursor: pointer; }
.kx-da-v3 .kx-v3-temps__plus:hover { background: var(--v3-violet-soft); color: var(--v3-ink); }
.kx-v3-section--lavande .kx-v3-temps__plus { background: var(--v3-blanc); }
.kx-v3-temps__plus svg { width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; transition: transform .3s var(--v3-ease); }
.kx-v3-temps li.is-ouvert .kx-v3-temps__plus svg { transform: rotate(45deg); }

/* --- Tableau de comparaison « sans / avec » (Thomas, 02/10 : « peu ergonomique ») --------------------
   Des lignes aerees : la tache en titre, l'avant en gris avec son tiret, l'apres mis en avant avec sa
   coche ; sur telephone, une fiche par ligne. */
.kx-da-v3 .kx-v3-table--compare { overflow: visible; border: 0; background: none; }
.kx-da-v3 .kx-v3-table--compare table { min-width: 0; border-collapse: separate; border-spacing: 0 .5rem; font-size: 1rem; }
.kx-da-v3 .kx-v3-table--compare thead th { padding: 0 1.5rem .25rem; border: 0; background: none; font-size: .8125rem; font-weight: 600; color: var(--v3-ink-50); }
.kx-da-v3 .kx-v3-table--compare thead th:last-child { background: none; color: var(--v3-violet); }
.kx-da-v3 .kx-v3-table--compare tbody td { padding: 1.25rem 1.5rem; border: 0; border-block: 1px solid var(--v3-line); background: var(--v3-blanc); vertical-align: middle; line-height: 1.45; }
.kx-da-v3 .kx-v3-table--compare tbody td:first-child { width: 26%; border-left: 1px solid var(--v3-line); border-radius: var(--v3-r) 0 0 var(--v3-r); font-size: 1.0625rem; font-weight: 600; letter-spacing: -0.01em; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-table--compare tbody td:nth-child(2) { width: 32%; color: var(--v3-ink-50); }
.kx-da-v3 .kx-v3-table--compare tbody td:last-child { border-color: var(--v3-violet-soft); border-right: 1px solid var(--v3-violet-soft); border-radius: 0 var(--v3-r) var(--v3-r) 0; background: var(--v3-violet-soft); font-weight: 500; color: var(--v3-ink); }
.kx-v3-table--compare tbody td:nth-child(n+2) { position: relative; padding-left: 3.75rem !important; }
.kx-v3-table--compare tbody td:nth-child(n+2)::before { content: ""; position: absolute; left: 1.25rem; top: 50%; width: 1.75rem; height: 1.75rem; margin-top: -.875rem; border-radius: var(--v3-r-s); background: var(--v3-paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23716781' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M7 12h10'/%3E%3C/svg%3E") center / 1.125rem no-repeat; }
.kx-v3-table--compare tbody td:last-child::before { background: var(--v3-blanc) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235B26FE' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 1.125rem no-repeat; }
.kx-v3-section--lavande .kx-v3-table--compare tbody td:last-child { border-color: var(--v3-lavande); background: var(--v3-lavande); }
@media (max-width: 760px) {
  .kx-da-v3 .kx-v3-table--compare table, .kx-v3-table--compare tbody, .kx-v3-table--compare tr, .kx-da-v3 .kx-v3-table--compare tbody td { display: block; width: auto !important; }
  .kx-v3-table--compare thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .kx-v3-table--compare tr { margin-bottom: .75rem; overflow: hidden; border: 1px solid var(--v3-line); border-radius: var(--v3-r); background: var(--v3-blanc); }
  .kx-da-v3 .kx-v3-table--compare tbody td { border: 0 !important; border-radius: 0 !important; }
  .kx-da-v3 .kx-v3-table--compare tbody td:first-child { padding-bottom: .5rem; }
  .kx-da-v3 .kx-v3-table--compare tbody td:nth-child(n+2) { padding-block: .875rem; }
  .kx-v3-table--compare tbody td:nth-child(n+2)::after { content: attr(data-l); display: block; margin-top: .2rem; font-size: .75rem; font-weight: 600; color: var(--v3-ink-50); }
  .kx-v3-table--compare tbody td:last-child::after { color: var(--v3-violet); }
}

/* --- La citation : sa chute mise en avant, comme la partie forte d'un titre ------------------------- */
.kx-da-v3 .kx-v3-fondateur--citation blockquote em { font-style: normal; font-weight: 600; letter-spacing: -0.025em; color: var(--v3-violet); }

/* --- L'appel final : un ecran du produit monte du bas de la section (Thomas, 02/10 : « un peu fade ») */
.kx-v3-section.kx-v3-fin:has(.kx-v3-fin__ecran) { padding-bottom: 0; overflow: hidden; }
body.kx-da-v3 .entry-content .kx-v3-section > .kx-v3-fin__ecran { width: min(100%, 62rem); max-height: 13rem; margin: 3.5rem auto 0; overflow: hidden; border-radius: 10px 10px 0 0; background: var(--v3-blanc); box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.6), 0 -24px 70px -34px rgba(18, 1, 45, 0.5); }
@media (min-width: 1024px) { body.kx-da-v3 .entry-content .kx-v3-section > .kx-v3-fin__ecran { max-height: 21rem; margin-top: 5rem; } }
.kx-v3-fin__capture { display: block; width: 100%; height: auto; }

/* --- Bandeau photo : sans carte posee dessus --------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .kx-v3-hero__ecran, .kx-v3-pf__temps > div, .kx-v3-pf__ecran, .kx-v3-pf__prog { animation: none !important; }
  .kx-v3-pf__fond, .kx-v3-cta-mobile { transition: none; }
}
/* --- Pages de marque (kx_nicolas_v3.py) : les vues au fil du texte, les intertitres des etapes ---- */
.kx-v3-suite:has(> .kx-v3-vue) { margin-top: 3.5rem; }
.kx-v3-suite + .kx-v3-suite:has(> .kx-v3-vue) { margin-top: 4.5rem; }
@media (min-width: 1024px) { .kx-v3-suite + .kx-v3-suite:has(> .kx-v3-vue) { margin-top: 6.5rem; } }
.kx-v3-entete + .kx-v3-suite:has(> .kx-v3-vue) { margin-top: 1rem; }
@media (min-width: 1024px) {
  .kx-v3-vue--mobile > .kx-v3-vue__texte { grid-column: span 7; }
  .kx-v3-vue--mobile > .kx-v3-ecran { grid-column: span 5; }
  .kx-v3-vue > .kx-v3-vue__photo { grid-column: span 7; }
}
.kx-v3-vue__photo { margin: 0; }
.kx-v3-vue__photo img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--v3-r); }
.kx-da-v3 .kx-v3-h3--etape { margin: 0; font-size: clamp(1.625rem, 2.5vw, 2.25rem); font-weight: 600; line-height: 1.1; letter-spacing: -0.03em; color: var(--v3-ink); text-wrap: balance; }
.kx-v3-h3__repere { display: block; margin-bottom: .75rem; font-size: .875rem; font-weight: 500; line-height: 1.4; letter-spacing: 0; color: var(--v3-violet); }
.kx-da-v3 .kx-v3-section--encre .kx-v3-h3__repere { color: var(--v3-cyan); }
.kx-da-v3 .kx-v3-vue__texte > .kx-v3-h3--etape + p { margin-top: 1.25rem !important; }
.kx-da-v3 .kx-v3-vue__texte > p strong { font-weight: 600; color: var(--v3-ink); }
.kx-da-v3 p > a.kx-v3-lien-fleche { display: inline; font-size: inherit; font-weight: 500; text-decoration: none; }
.kx-da-v3 p > a.kx-v3-lien-fleche::after { content: "\00A0\2192"; }
/* Un ecran seul, en grand : centre sur sa photo, comme la scene de la plateforme */
.kx-v3-ecran--grand { padding: 2rem 1.25rem 1.5rem; }
@media (min-width: 1024px) {
  .kx-v3-ecran--grand { padding: 3.5rem 3rem 2.5rem; }
  .kx-v3-ecran--grand .kx-v3-ecran__capture { max-width: min(100%, 62rem); max-height: none; }
  .kx-da-v3 .kx-v3-ecran--grand figcaption { max-width: 62rem; margin-inline: auto; }
}
/* Une capture a fond transparent (deux fenetres, des feuillets) : sans cadre blanc, l ombre suit ses contours */
.kx-v3-ecran--libre .kx-v3-ecran__capture { border-radius: 0; background: none; box-shadow: none; filter: drop-shadow(0 24px 28px rgba(18, 1, 45, 0.38)); }
.kx-v3-photo--bandeau { margin: 0; }
.kx-v3-photo--bandeau img { aspect-ratio: 16 / 7; }

/* --- Schemas en etapes : boucle, chemin, frise (kx_nicolas_v3.py : frise) ------------------------- */
.kx-v3-pas-bloc { margin: 0; }
.kx-da-v3 .entry-content .kx-v3-pas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin: 0; padding: 0; list-style: none; }
@media (min-width: 900px) {
  .kx-da-v3 .entry-content .kx-v3-pas--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .kx-da-v3 .entry-content .kx-v3-pas--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .kx-da-v3 .entry-content .kx-v3-pas--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .kx-da-v3 .entry-content .kx-v3-pas--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .kx-da-v3 .entry-content .kx-v3-pas--7 { grid-template-columns: repeat(7, minmax(0, 1fr)); }
  .kx-v3-pas > li + li::before { content: ""; position: absolute; left: calc(-.75rem - 1px); top: 2.35rem; width: .75rem; height: 1px; background: var(--v3-ink-30); }
}
.kx-v3-pas > li { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: .75rem; margin: 0; padding: 1.25rem 1rem; border: 1px solid var(--v3-line); border-radius: var(--v3-r); background: var(--v3-blanc); }
.kx-da-v3 .kx-v3-pas > li > a { display: contents; color: inherit; text-decoration: none; }
.kx-v3-pas li b { display: flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; border-radius: var(--v3-r); background: var(--v3-violet-soft); font-size: .9375rem; font-weight: 600; color: var(--v3-violet); font-variant-numeric: tabular-nums; }
.kx-v3-pas__nom { font-size: 1.0625rem; font-weight: 600; line-height: 1.25; letter-spacing: -0.01em; color: var(--v3-ink); }
.kx-v3-pas li small { font-size: .875rem; line-height: 1.5; color: var(--v3-ink-70); }
.kx-v3-pas li em { padding: .1rem .5rem; border-radius: var(--v3-r-s); background: var(--v3-jaune); font-style: normal; font-size: .75rem; font-weight: 600; color: var(--v3-ink); }
.kx-v3-pas__role { font-style: normal; font-size: .75rem; font-weight: 600; color: var(--v3-violet); }
.kx-v3-pas > li.est-coeur { border-color: var(--v3-violet); background: var(--v3-violet); }
.kx-v3-pas > li.est-coeur b { background: rgba(255, 255, 255, 0.16); color: var(--v3-blanc); }
.kx-v3-pas > li.est-coeur .kx-v3-pas__nom { color: var(--v3-blanc); }
.kx-v3-pas > li.est-coeur small { color: rgba(255, 255, 255, 0.9); }
.kx-da-v3 .kx-v3-pas__centre { display: flex; align-items: center; justify-content: center; gap: .6rem; margin: 1.25rem 0 0; font-size: .9375rem; font-weight: 500; color: var(--v3-violet); }
.kx-v3-pas__centre svg { width: 1.125rem; height: 1.125rem; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.kx-da-v3 .kx-v3-pas__titre { margin: 0 0 1rem; font-size: 1.0625rem; font-weight: 600; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-pas__bornes { display: flex; justify-content: space-between; gap: 1rem; margin: 0 0 .75rem; font-size: .8125rem; font-weight: 500; color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-pas__suite { margin: .75rem 0 0; padding: .9rem 1.1rem; border-radius: var(--v3-r); background: var(--v3-violet-soft); font-size: .9375rem; font-weight: 500; color: var(--v3-ink); }
.kx-v3-section--lavande .kx-v3-pas__suite { background: var(--v3-blanc); }
.kx-v3-section--encre .kx-v3-pas > li:not(.est-coeur) { border-color: rgba(248, 248, 255, 0.14); background: rgba(248, 248, 255, 0.06); }
.kx-v3-section--encre .kx-v3-pas > li:not(.est-coeur) b { background: rgba(248, 248, 255, 0.1); color: var(--v3-cyan); }
.kx-v3-section--encre .kx-v3-pas > li:not(.est-coeur) .kx-v3-pas__nom { color: var(--v3-paper); }
.kx-v3-section--encre .kx-v3-pas > li small { color: rgba(248, 248, 255, 0.76); }
.kx-da-v3 .kx-v3-section--encre :is(.kx-v3-pas__centre, .kx-v3-pas__titre) { color: var(--v3-cyan); }

/* --- Schema en etoile : la plateforme au centre, ses modules autour (hub) ------------------------- */
.kx-v3-hub { margin: 0; }
.kx-da-v3 .kx-v3-hub__centre { display: flex; align-items: center; justify-content: center; gap: .6rem; margin: 0; padding: 1.25rem 1.5rem; border-radius: var(--v3-r); background: var(--v3-ink); text-align: center; font-size: 1.0625rem; font-weight: 600; line-height: 1.35; color: var(--v3-paper); }
.kx-v3-hub__centre .kx-v3-marque { flex: none; color: var(--v3-cyan); }
.kx-da-v3 .entry-content .kx-v3-hub__items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin: .75rem 0 0; padding: 0; list-style: none; }
@media (min-width: 900px) {
  .kx-da-v3 .entry-content .kx-v3-hub__items--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .kx-da-v3 .entry-content .kx-v3-hub__items--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .kx-da-v3 .entry-content .kx-v3-hub__items--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .kx-da-v3 .entry-content .kx-v3-hub__items--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
.kx-v3-hub__items > li { position: relative; margin: 0; padding: 1.1rem 1rem; border: 1px solid var(--v3-line); border-radius: var(--v3-r); background: var(--v3-blanc); text-align: center; }
.kx-v3-hub__items > li::before { content: ""; position: absolute; left: 50%; top: calc(-.75rem - 1px); width: 1px; height: .75rem; background: var(--v3-ink-30); }
.kx-v3-hub__items b { display: block; font-size: 1rem; font-weight: 600; line-height: 1.3; color: var(--v3-ink); }
.kx-v3-hub__items span { display: block; margin-top: .3rem; font-size: .8125rem; line-height: 1.45; color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-hub__pied { margin: .75rem 0 0; padding: .9rem 1rem; border: 1px dashed var(--v3-ink-30); border-radius: var(--v3-r); text-align: center; font-size: .9375rem; color: var(--v3-ink-70); }

/* --- Trois roles, une seule verite (page « Pour qui ») --------------------------------------------- */
.kx-v3-bandes { margin: 0; padding: 1.25rem; border: 1px solid var(--v3-line); border-radius: var(--v3-r); background: var(--v3-blanc); }
@media (min-width: 640px) { .kx-v3-bandes { padding: 1.75rem; } }
.kx-da-v3 .kx-v3-bandes__verite { margin: 0 0 .75rem; padding: 1rem 1.25rem; border-radius: var(--v3-r); background: var(--v3-violet); color: var(--v3-blanc); }
.kx-v3-bandes__verite b { display: block; font-size: 1.0625rem; font-weight: 600; }
.kx-v3-bandes__verite span { display: block; margin-top: .15rem; font-size: .875rem; color: rgba(255, 255, 255, 0.92); }
.kx-da-v3 .entry-content .kx-v3-bandes ol { display: grid; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.kx-v3-bandes ol > li { display: grid; gap: .25rem 1.25rem; align-items: center; margin: 0; padding: .9rem 1.25rem; border-radius: var(--v3-r); background: var(--v3-violet-soft); }
@media (min-width: 640px) { .kx-v3-bandes ol > li { grid-template-columns: 11rem minmax(0, 1fr); } }
.kx-v3-bandes ol b { font-size: 1rem; font-weight: 600; color: var(--v3-ink); }
.kx-v3-bandes ol span { font-size: .9375rem; color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-bandes__flux { display: grid; gap: .5rem 1.5rem; margin: 1rem 0 0; font-size: .875rem; line-height: 1.5; color: var(--v3-ink-70); }
@media (min-width: 800px) { .kx-da-v3 .kx-v3-bandes__flux { grid-template-columns: 1fr 1fr; } }
.kx-v3-bandes__flux span::before { content: "\2193\00A0"; font-weight: 600; color: var(--v3-violet); }
.kx-v3-bandes__flux span + span::before { content: "\2191\00A0"; }

/* --- Un espace isole par client (page Securite) ---------------------------------------------------- */
.kx-v3-espaces { margin: 0; }
.kx-da-v3 .kx-v3-espaces figcaption { margin: 0 0 1rem; font-size: .9375rem; font-weight: 600; color: var(--v3-ink); }
.kx-v3-espaces__grille { display: grid; gap: .75rem; }
@media (min-width: 900px) { .kx-v3-espaces__grille { grid-template-columns: minmax(0, 1.5fr) auto minmax(0, 1fr) minmax(0, 1fr); align-items: stretch; } }
.kx-v3-espace { padding: 1.1rem 1.25rem; border: 1px solid var(--v3-ink-20); border-radius: var(--v3-r); background: var(--v3-blanc); }
.kx-v3-espace--ouvert { border-color: var(--v3-violet); box-shadow: inset 0 0 0 1px var(--v3-violet); }
.kx-da-v3 .kx-v3-espace__nom { display: flex; align-items: center; gap: .5rem; margin: 0; font-size: 1rem; font-weight: 600; color: var(--v3-ink); }
.kx-v3-espace svg { width: 1.1rem; height: 1.1rem; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.kx-da-v3 .entry-content .kx-v3-espace ol { display: grid; gap: .35rem; margin: .75rem 0 0; padding: 0; list-style: none; }
.kx-v3-espace ol > li { margin: 0; padding: .45rem .7rem; border-radius: var(--v3-r-s); background: var(--v3-violet-soft); font-size: .875rem; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-espace__ajout { display: flex; align-items: center; gap: .4rem; margin: .75rem 0 0; font-size: .8125rem; font-weight: 500; color: var(--v3-violet); }
.kx-da-v3 .kx-v3-espaces__refus { display: flex; align-items: center; justify-content: center; margin: 0; }
.kx-v3-espaces__refus span { padding: .25rem .6rem; border-radius: var(--v3-r-s); background: var(--v3-jaune); font-size: .75rem; font-weight: 600; color: var(--v3-ink); white-space: nowrap; }

/* --- Tableau de couverture a points (page comparatif) ---------------------------------------------- */
.kx-v3-couverture { margin: 0; }
.kx-v3-pt { display: inline-block; width: .875rem; height: .875rem; border-radius: 9999px; background: var(--v3-violet); vertical-align: middle; }
.kx-v3-pt--pointille { background: none; border: 2px dashed var(--v3-violet); }
.kx-v3-couverture small { display: block; margin-top: .2rem; font-size: .75rem; line-height: 1.35; color: var(--v3-ink-70); }
.kx-v3-couverture thead th b { display: block; margin-bottom: .2rem; color: var(--v3-violet); }
.kx-da-v3 .kx-v3-couverture th.est-coeur { background: var(--v3-violet-soft); color: var(--v3-ink); }
.kx-da-v3 .kx-v3-couverture tr.est-korbyx :is(th, td) { background: var(--v3-violet-soft); font-weight: 600; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-couverture tbody th { font-weight: 600; color: var(--v3-ink); text-align: left; }

/* Une carte pleine largeur juste apres un appel sombre garde sa marge */
.kx-v3-appel + .kx-v3-section--serree { padding-top: 4rem; }
@media (min-width: 1024px) { .kx-v3-appel + .kx-v3-section--serree { padding-top: 6rem; } }

/* Intertitres d'etape empiles dans une colonne de lecture (sans ecran a cote) */
.kx-da-v3 :is(.kx-v3-edito__corps, .kx-v3-texte-seul) > .kx-v3-h3--etape { margin-top: 3rem; font-size: clamp(1.375rem, 1.9vw, 1.75rem); }
.kx-da-v3 :is(.kx-v3-edito__corps, .kx-v3-texte-seul) > .kx-v3-h3--etape:first-child { margin-top: 0; }

/* Sur fond sombre, le texte courant des colonnes de lecture passe en clair */
.kx-da-v3 .kx-v3-section--encre :is(.kx-v3-edito__corps, .kx-v3-texte-seul, .kx-v3-vue__texte) > p:not(.kx-v3-lead):not(.kx-v3-surtitre):not(.kx-v3-dit) { color: rgba(248, 248, 255, 0.8); }
.kx-da-v3 .kx-v3-section--encre :is(.kx-v3-edito__corps, .kx-v3-texte-seul, .kx-v3-vue__texte) > p strong { color: var(--v3-paper); }
.kx-da-v3 .kx-v3-section--encre :is(.kx-v3-edito__corps, .kx-v3-texte-seul, .kx-v3-vue__texte) > p a { color: var(--v3-cyan); }
.kx-da-v3 .kx-v3-section--encre :is(.kx-v3-puces, .kx-v3-checks) li { color: rgba(248, 248, 255, 0.86); }
/* Une vue a l'echelle de la section : le titre long tient en quatre lignes au plus */
.kx-da-v3 .kx-v3-vue--section .kx-v3-h2 { font-size: clamp(1.875rem, 3vw, 2.75rem); line-height: 1.08; }

/* --- Dans un article : les schemas, les ecrans et les cartes tiennent dans la colonne de lecture ---- */
.kx-da-v3 .entry-content .kx-v3-art__corps .kx-v3-pas { grid-template-columns: minmax(0, 1fr); gap: .5rem; }
.kx-v3-art__corps .kx-v3-pas > li { flex-direction: row; align-items: center; gap: 1rem; padding: .75rem 1rem; }
.kx-v3-art__corps .kx-v3-pas > li + li::before { display: none; }
.kx-v3-art__corps .kx-v3-pas > li b { flex: none; }
.kx-v3-art__corps .kx-v3-pas li em { margin-left: auto; white-space: nowrap; }
.kx-v3-art__corps .kx-v3-pas__role { flex: none; }
.kx-v3-art__corps :is(.kx-v3-pas-bloc, .kx-v3-ecran, .kx-v3-quadrant, .kx-v3-sous, .kx-v3-chiffre, .kx-v3-citation, .kx-v3-table, .kx-v3-checks, .kx-v3-hub) { margin-block: 2rem; }
.kx-v3-art__corps .kx-v3-sous { grid-template-columns: minmax(0, 1fr); }
.kx-da-v3 .entry-content .kx-v3-art__corps .kx-v3-checks { display: block; border-top: 1px solid var(--v3-ink-20); }
.kx-v3-art__corps .kx-v3-checks li { display: grid; grid-template-columns: 2.25rem minmax(0, 1fr); align-items: center; gap: 1rem; padding: .875rem 0; border: 0; border-bottom: 1px solid var(--v3-ink-20); border-radius: 0; background: none; font-weight: 500; }
.kx-v3-art__corps .kx-v3-checks li::before { position: static; width: 2.25rem; height: 2.25rem; border-radius: var(--v3-r); background-color: var(--v3-violet-soft); background-size: 1.125rem; background-position: center; }
/* Schema a deux axes (guide « signaux faibles ») : quatre zones, la derniere est le point d'attention */
.kx-v3-quadrant { margin: 0; }
.kx-v3-quadrant__grille { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
.kx-da-v3 .kx-v3-quadrant__case { display: flex; align-items: center; min-height: 6rem; margin: 0; padding: 1.25rem 1rem; border: 1px solid var(--v3-line); border-radius: var(--v3-r); background: var(--v3-blanc); font-size: 1rem; font-weight: 600; line-height: 1.35; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-quadrant__case.est-coeur { border-color: var(--v3-jaune); background: var(--v3-jaune); }
.kx-da-v3 .kx-v3-quadrant figcaption { display: flex; flex-wrap: wrap; gap: .25rem 1.5rem; margin: .75rem 0 0; font-size: .8125rem; color: var(--v3-ink-70); }

/* Index du blog : le titre de Nicolas est long, il tient en trois lignes */
.kx-da-v3 .kx-v3-h1.kx-v3-blog-hero__titre { max-width: 62rem; font-size: clamp(2.125rem, 3.6vw, 3.375rem); line-height: 1.06; }
.kx-da-v3 .kx-v3-blog-hero .kx-v3-intro { max-width: 52rem; }

/* Un lien dans le texte d'une carte : il prend la couleur du texte de la carte (lisible sur tous les tons) */
.kx-da-v3 .kx-v3-tuile > p a, .kx-da-v3 .kx-v3-tuile .kx-v3-carte__liste a { position: relative; z-index: 1; color: inherit; text-decoration: underline; text-underline-offset: .2em; text-decoration-thickness: 1px; }
/* --- Texte visible allege (relecture du 02/10) ---------------------------------------------------- */
/* Un chapeau est deja lisible : sa suite se replie entierement (pas de fondu) */
.kx-js .kx-v3-replie.kx-v3-replie--net:not(.is-ouvert) { max-height: 0; -webkit-mask-image: none; mask-image: none; }
.kx-js .kx-v3-replie--net { overflow: hidden; }
.kx-js .kx-v3-replie--net.is-ouvert { overflow: visible; }
.kx-da-v3 .kx-v3-replie--net > p:first-child { margin-top: 1rem; }
.kx-js .kx-da-v3 .kx-v3-replie--net + .kx-v3-replie__action { margin-top: 1rem; }
/* Dans le premier ecran : texte clair, bouton clair */
.kx-da-v3 .kx-v3-hero .kx-v3-replie > p { max-width: 40rem; margin: .9rem 0 0; font-size: 1.0625rem; line-height: 1.65; color: rgba(248, 248, 255, 0.82); }
.kx-da-v3 .kx-v3-hero .kx-v3-replie > p strong { color: var(--v3-paper); }
.kx-da-v3 .kx-v3-hero .kx-v3-replie > p a { color: var(--v3-paper); text-decoration-color: rgba(248, 248, 255, 0.5); }
.kx-da-v3 .kx-v3-hero .kx-v3-replie__bouton { color: var(--v3-paper); }
.kx-da-v3 .kx-v3-hero .kx-v3-replie__bouton:hover { color: var(--v3-cyan); }
.kx-da-v3 .kx-v3-hero .kx-v3-replie__bouton svg { background: rgba(248, 248, 255, 0.14); }
.kx-js .kx-da-v3 .kx-v3-hero .kx-v3-replie__action { margin: .875rem 0 0; }
.kx-js .kx-da-v3 .kx-v3-hero .kx-v3-replie__action + .kx-v3-actions { margin-top: 1.75rem; }
/* En-tete de section dont l'introduction se deplie */
.kx-v3-entete__suite { max-width: 34rem; }
.kx-da-v3 .kx-v3-entete__suite .kx-v3-replie > p { margin: .9rem 0 0; font-size: 1.0625rem; line-height: 1.65; }
/* Reperes sous le premier ecran : trois lignes, le reste au clic */
.kx-js .kx-v3-reperes[data-kx-plis] > li { position: relative; padding-right: 2.75rem; cursor: pointer; }
.kx-js .kx-v3-reperes[data-kx-plis] > li:not(.is-ouvert) > span { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; }
.kx-da-v3 .kx-v3-reperes .kx-v3-temps__plus { top: 1.05rem; right: 0; width: 1.75rem; height: 1.75rem; }
.kx-da-v3 .kx-v3-hero .kx-v3-reperes .kx-v3-temps__plus { background: rgba(248, 248, 255, 0.12); color: var(--v3-paper); }
.kx-da-v3 .kx-v3-hero .kx-v3-reperes .kx-v3-temps__plus:hover { background: rgba(248, 248, 255, 0.2); color: var(--v3-cyan); }
.kx-v3-reperes li.is-ouvert .kx-v3-temps__plus svg { transform: rotate(45deg); }
@media (max-width: 767px) { .kx-js .kx-v3-reperes[data-kx-plis] > li { padding-right: 2.5rem; } }

/* Accordeon a intertitres (pages de marque : un titre de section, plusieurs intertitres et leur texte) */
.kx-v3-points--titres { margin-top: 0; }
.kx-da-v3 .kx-v3-points--titres summary { grid-template-columns: minmax(0, 1fr) 1.25rem; padding: 1.25rem 0; }
.kx-v3-points--titres summary::before { display: none; }
.kx-da-v3 .kx-v3-points--titres summary :is(h3, .kx-v3-h3) { margin: 0; font-size: clamp(1.1875rem, 1.5vw, 1.375rem); font-weight: 500; line-height: 1.25; letter-spacing: -0.015em; color: inherit; }
.kx-da-v3 .kx-v3-points--titres summary .kx-v3-h3__repere { display: block; margin: 0 0 .3rem; font-size: .8125rem; font-weight: 500; letter-spacing: 0; color: var(--v3-violet); }
.kx-v3-points__corps { padding: 0 2.25rem 1.5rem 0; }
.kx-da-v3 .kx-v3-points__corps > p { margin: 1rem 0 0; font-size: 1.0625rem; line-height: 1.7; color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-points__corps > p:first-child { margin-top: 0; }
.kx-da-v3 .kx-v3-points__corps > p strong { font-weight: 600; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-points__corps > p a { color: var(--v3-violet); text-decoration: underline; text-underline-offset: .2em; text-decoration-thickness: 1px; }
.kx-da-v3 .entry-content .kx-v3-points__corps > :is(ul, ol, .kx-v3-chiffre, .kx-v3-citation, .kx-v3-table) { margin-top: 1.25rem; }
.kx-v3-points__avant { margin-bottom: 1.5rem; }

/* Cartes au texte long : quelques lignes visibles, le « plus » en bas a droite deplie la carte */
.kx-js .kx-v3-rail[data-kx-plis] > .kx-v3-tuile:not(.is-ouvert) > p { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; line-clamp: 4; overflow: hidden; }
.kx-js .kx-v3-mosaique[data-kx-plis] > .kx-v3-tuile:not(.is-ouvert) > p { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; line-clamp: 4; overflow: hidden; }
.kx-da-v3 .kx-v3-tuile__plus { position: absolute; z-index: 2; right: 1rem; bottom: 1rem; display: flex; align-items: center; justify-content: center; width: 1.75rem; height: 1.75rem; padding: 0; border: 0; border-radius: var(--v3-r-s); background: var(--s4); color: inherit; cursor: pointer; }
.kx-da-v3 .kx-v3-tuile__plus:hover { background: var(--s4); color: inherit; opacity: .8; }
.kx-da-v3 .kx-v3-tuile--sobre .kx-v3-tuile__plus { background: var(--v3-violet-soft); color: var(--v3-violet); }
.kx-v3-tuile__plus svg { width: .9375rem; height: .9375rem; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; transition: transform .3s var(--v3-ease); }
.kx-v3-tuile.is-ouvert .kx-v3-tuile__plus svg { transform: rotate(45deg); }
/* la carte garde la place du « plus » : le texte ne passe pas dessous */
.kx-js [data-kx-plis] > .kx-v3-tuile:has(> .kx-v3-tuile__plus) { padding-bottom: 3.25rem; }
.kx-js [data-kx-plis] > .kx-v3-tuile:has(> .kx-v3-tuile__plus) > .kx-v3-tuile__voir { position: absolute; left: 1.5rem; bottom: 1.15rem; margin: 0; }
.kx-js [data-kx-plis] > .kx-v3-tuile--sobre:has(> .kx-v3-tuile__plus) > .kx-v3-tuile__voir { left: 1.5rem; }

/* En-tete de section avec une suite qui se deplie : le titre reste en haut quand le texte s'ouvre */
@media (min-width: 1024px) { .kx-v3-entete:has(> .kx-v3-entete__suite) { align-items: start; } .kx-v3-entete:has(> .kx-v3-entete__suite) > .kx-v3-entete__suite { padding-top: .5rem; } }
.kx-da-v3 .kx-v3-entete__suite > p:not(.kx-v3-intro):not(.kx-v3-replie__action) { margin: .9rem 0 0; font-size: 1.0625rem; line-height: 1.65; color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-entete__suite .kx-v3-replie > p strong { font-weight: 600; color: var(--v3-ink); }
/* Cartes a intertitre au texte long : quatre lignes, le reste au clic sur le « plus » */
.kx-js .kx-v3-sous[data-kx-plis] > .kx-v3-sous__item { position: relative; }
.kx-js .kx-v3-sous[data-kx-plis] > .kx-v3-sous__item:not(.is-ouvert) > .kx-v3-sous__titre + p { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; line-clamp: 4; overflow: hidden; }
.kx-js .kx-v3-sous[data-kx-plis] > .kx-v3-sous__item:not(.is-ouvert) > .kx-v3-sous__titre ~ * ~ *:not(.kx-v3-tuile__plus) { display: none; }
.kx-js .kx-v3-sous[data-kx-plis] > .kx-v3-sous__item:has(> .kx-v3-tuile__plus) { padding-bottom: 3.25rem; }
.kx-da-v3 .kx-v3-sous__item .kx-v3-tuile__plus { background: var(--v3-violet-soft); color: var(--v3-violet); }
.kx-da-v3 .kx-v3-sous__item .kx-v3-tuile__plus:hover { background: var(--v3-violet-soft); color: var(--v3-ink); opacity: 1; }
.kx-v3-sous__item.is-ouvert .kx-v3-tuile__plus svg { transform: rotate(45deg); }
/* Un chiffre seul dans sa colonne : toute la largeur de la page */
.kx-v3-suite > .kx-v3-chiffre { margin-top: 0; }
@media (min-width: 768px) { .kx-v3-suite > .kx-v3-chiffre { padding: 2.25rem 3rem; gap: 1rem 4rem; } }

/* Le dossier (pages fusionnees du lot 2) : le texte de fond de la page, en lignes qui se deplient */
.kx-da-v3 .kx-v3-points--titres summary :is(h2, h3) em { font-style: normal; font-weight: inherit; color: inherit; }
.kx-da-v3 .kx-v3-dossier .kx-v3-edito__tete .kx-v3-intro { font-size: 1.0625rem; }
.kx-da-v3 .kx-v3-dossier .kx-v3-edito__tete .kx-v3-h2 { font-size: clamp(1.875rem, 3vw, 2.75rem); line-height: 1.08; }
.kx-da-v3 .kx-v3-points__corps .kx-v3-h3 { margin: 1.5rem 0 0; font-size: 1.0625rem; font-weight: 600; letter-spacing: -0.01em; }
.kx-da-v3 .kx-v3-points__corps > .kx-v3-h3:first-child { margin-top: 0; }
.kx-da-v3 .entry-content .kx-v3-points__corps .kx-v3-table { margin-top: 1.25rem; }
.kx-da-v3 .entry-content .kx-v3-defs { display: grid; gap: 1rem; margin: 1.25rem 0 0; }
@media (min-width: 768px) { .kx-da-v3 .entry-content .kx-v3-defs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem 2rem; } }
.kx-v3-defs dt { margin: 0; font-size: 1rem; font-weight: 600; line-height: 1.35; color: var(--v3-ink); }
.kx-v3-defs dt small { display: block; margin-bottom: .2rem; font-size: .75rem; font-weight: 600; color: var(--v3-violet); }
.kx-da-v3 .kx-v3-defs dt a { color: inherit; text-decoration: underline; text-underline-offset: .2em; text-decoration-thickness: 1px; }
.kx-v3-defs dd { margin: .3rem 0 0; grid-column: auto; }
.kx-v3-defs > dt { grid-column: 1 / -1; }
@media (min-width: 768px) { .kx-da-v3 .entry-content .kx-v3-defs { display: block; columns: 2; column-gap: 2rem; } .kx-v3-defs dt { break-after: avoid; margin-top: 1rem; } .kx-v3-defs dt:first-child { margin-top: 0; } .kx-v3-defs dd { break-inside: avoid; } }
.kx-da-v3 .kx-v3-defs dd p { margin: 0; font-size: .9375rem; line-height: 1.6; color: var(--v3-ink-70); }
.kx-v3-points__apres { margin-top: 1.75rem; }
.kx-da-v3 .kx-v3-points__apres p { margin: .75rem 0 0; font-size: 1rem; line-height: 1.65; color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-points__apres p strong { font-weight: 600; color: var(--v3-ink); }

/* Pages legales sur telephone : la colonne ne s'elargit pas pour un tableau (il defile dans son cadre) */
.kx-v3-legal__grille { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1024px) { .kx-v3-legal__grille { grid-template-columns: 16rem minmax(0, 46rem); } }
.kx-da-v3 .kx-v3-legal__texte .kx-v3-table { overflow-x: auto; -webkit-overflow-scrolling: touch; }
/* Un tableau qui defile dans son cadre garde dans ce cadre ses mentions pour lecteurs d'ecran (sinon la page deborde) */
.kx-v3-table { position: relative; }
/* Un passage en gras dans une carte de couleur : la couleur du texte de la carte (lisible sur tous les tons) */
.kx-da-v3 .entry-content .kx-v3-tuile:not(.kx-v3-tuile--sobre) :is(strong, strong.kx-v3-surligne) { color: inherit; }
/* --- Zones de la home dans les pages de marque (02/10, page « Agents IA ») ------------------------------
   Thomas : « aucune DA reprise de l'existant ». Les blocs de texte prennent les zones de la home : les
   onglets avec un ecran sur sa photo, la bande de cartes de couleur, des lignes aerees pour les tableaux. */

/* Les niveaux : un escalier qui sert d'onglets (la marche en cours se colore), puis le niveau choisi,
   son texte d'un cote et son ecran de l'autre. Sans script, les niveaux se suivent, tous visibles. */
.kx-v3-niv__escalier { margin-top: 2.5rem; }
@media (min-width: 1024px) { .kx-v3-niv__escalier { margin-top: 3.5rem; } }
.kx-da-v3 .kx-v3-niv__rampe { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .5rem; margin: 0 0 1rem; font-size: .8125rem; line-height: 1.3; color: var(--v3-ink-70); }
.kx-v3-niv__rampe b { margin-right: .35rem; font-weight: 600; color: var(--v3-violet); }
.kx-v3-niv__rampe span { padding: .25rem .6rem; border: 1px solid var(--v3-line); border-radius: var(--v3-r-s); background: var(--v3-blanc); }
.kx-v3-section--lavande .kx-v3-niv__rampe span { border-color: transparent; }
.kx-v3-niv__marches { display: flex; gap: .5rem; overflow-x: auto; scrollbar-width: none; margin-inline: calc(var(--v3-gouttiere) * -1); padding-inline: var(--v3-gouttiere); }
.kx-v3-niv__marches::-webkit-scrollbar { display: none; }
.kx-da-v3 .kx-v3-niv__marches button { position: relative; display: flex; flex: none; flex-direction: column; align-items: flex-start; justify-content: flex-end; gap: .2rem; width: 10.5rem; min-height: 6.25rem; overflow: hidden; padding: .875rem 1rem 1rem; border: 1px solid var(--v3-line); border-radius: var(--v3-r); background: var(--v3-blanc); color: var(--v3-ink); text-align: left; cursor: pointer; transition: background-color .3s, border-color .3s, color .3s; }
.kx-v3-section--lavande .kx-v3-niv__marches button { border-color: transparent; }
.kx-da-v3 .kx-v3-niv__marches button:hover { border-color: var(--v3-violet); background: var(--v3-blanc); color: var(--v3-ink); }
.kx-da-v3 .kx-v3-niv__marches button[aria-selected="true"] { border-color: var(--v3-violet); background: var(--v3-violet); color: var(--v3-blanc); }
.kx-v3-niv__marches b { display: flex; align-items: center; justify-content: center; width: 1.75rem; height: 1.75rem; margin-bottom: auto; border-radius: var(--v3-r-s); background: var(--v3-violet-soft); font-size: .875rem; font-weight: 600; color: var(--v3-violet); font-variant-numeric: tabular-nums; }
.kx-v3-niv__marches button[aria-selected="true"] b { background: rgba(255, 255, 255, 0.18); color: var(--v3-blanc); }
.kx-v3-niv__nom { margin-top: .75rem; font-size: 1rem; font-weight: 600; line-height: 1.2; letter-spacing: -0.01em; }
.kx-v3-niv__verbe { font-size: .8125rem; line-height: 1.3; color: var(--v3-ink-70); }
.kx-v3-niv__marches button[aria-selected="true"] .kx-v3-niv__verbe { color: rgba(255, 255, 255, 0.85); }
.kx-v3-niv.is-tourne button[aria-selected="true"] .kx-v3-pf__prog { animation: kxPfProg var(--kx-niv-duree, 12s) linear both; }
@media (min-width: 900px) {
  /* l'escalier : chaque marche monte d'un cran */
  .kx-v3-niv__marches { display: grid; grid-template-columns: repeat(var(--kx-niv-n, 5), minmax(0, 1fr)); align-items: end; overflow: visible; margin-inline: 0; padding-inline: 0; }
  .kx-da-v3 .kx-v3-niv__marches button { width: auto; min-height: calc(6.25rem + var(--k, 0) * 1.25rem); }
}
.kx-v3-niv__panneaux { margin-top: 2.5rem; }
@media (min-width: 1024px) { .kx-v3-niv__panneaux { margin-top: 3.5rem; } }
.kx-v3-niv__panneau + .kx-v3-niv__panneau { margin-top: 4rem; }
.kx-v3-niv.is-pret .kx-v3-niv__panneau + .kx-v3-niv__panneau { margin-top: 0; }
.kx-v3-niv.is-pret .kx-v3-niv__panneau[data-on="false"] { display: none; }
.kx-v3-niv.is-pret .kx-v3-niv__panneau[data-on="true"] { animation: kxV3Entre .6s var(--v3-ease) both; }
.kx-da-v3 .kx-v3-niv__panneau .kx-v3-h3 { margin: 0; font-size: clamp(1.5rem, 2.4vw, 2.125rem); font-weight: 300; line-height: 1.15; letter-spacing: -0.025em; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-niv__panneau .kx-v3-h3__repere { display: block; margin: 0 0 .6rem; font-size: .875rem; font-weight: 500; letter-spacing: 0; color: var(--v3-violet); }
.kx-da-v3 .kx-v3-niv__panneau .kx-v3-vue__texte > p strong { font-weight: 600; color: var(--v3-ink); }
.kx-v3-niv__panneau .kx-v3-points { margin-top: 1.75rem; }
.kx-da-v3 .kx-v3-niv__panneau .kx-v3-points details > p { padding-left: 3.25rem; }
/* dans un niveau, les deux lignes qui se deplient : l'exemple (une loupe), les garde-fous (un bouclier) */
.kx-v3-niv__panneau .kx-v3-points > details:nth-child(1) summary::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235B26FE' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 5.5h15v10h-8l-4.5 3.5v-3.5h-2.5z'/%3E%3C/svg%3E"); }
.kx-v3-niv__panneau .kx-v3-points > details:nth-child(2) summary::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235B26FE' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.5l7 2.8v5.2c0 4.3-2.9 7.6-7 9-4.1-1.4-7-4.7-7-9V6.3z'/%3E%3C/svg%3E"); }
@media (prefers-reduced-motion: reduce) { .kx-v3-niv__panneau, .kx-v3-niv .kx-v3-pf__prog { animation: none !important; } }

/* Les faits d'une carte de couleur (« Ce qui le met en route », « Qui valide ») : replies, au clic sur le « plus » */
.kx-da-v3 .entry-content .kx-v3-tuile__faits { display: grid; gap: .6rem; margin: .875rem 0 0; padding: .875rem 0 0; border-top: 1px solid var(--s2); }
.kx-v3-tuile__faits > div { margin: 0; }
.kx-v3-tuile__faits dt { margin: 0; font-size: .75rem; font-weight: 600; line-height: 1.4; color: inherit; opacity: .75; }
.kx-v3-tuile__faits dd { margin: .1rem 0 0; font-size: .875rem; line-height: 1.5; color: inherit; }
.kx-js [data-kx-plis] > .kx-v3-tuile:not(.is-ouvert) > .kx-v3-tuile__faits { display: none; }
.kx-da-v3 .kx-v3-rail > .kx-v3-tuile:not(.kx-v3-tuile--sobre) > p { font-size: .9375rem; line-height: 1.5; opacity: .95; }
/* une carte ouverte s'allonge sans etirer ses voisines */
.kx-v3-rail[data-kx-plis] { align-items: flex-start; }
.kx-v3-rail[data-kx-plis] > .kx-v3-tuile { min-height: 25rem; }

/* Un tableau de trois a cinq colonnes : des lignes aerees, la premiere colonne en titre ; sur telephone,
   une fiche par ligne, chaque cellule sous le nom de sa colonne (meme principe que le tableau compare) */
.kx-da-v3 .kx-v3-table--lignes { overflow: visible; border: 0; background: none; }
.kx-da-v3 .kx-v3-table--lignes table { min-width: 0; border-collapse: separate; border-spacing: 0 .5rem; font-size: .96875rem; }
.kx-da-v3 .kx-v3-table--lignes thead th { padding: 0 1.25rem .25rem; border: 0; background: none; font-size: .8125rem; font-weight: 600; line-height: 1.35; color: var(--v3-ink-50); vertical-align: bottom; }
.kx-da-v3 .kx-v3-table--lignes thead th:last-child { background: none; color: var(--v3-ink-50); }
.kx-da-v3 .kx-v3-table--lignes:not(.kx-v3-table--neutre) thead th:last-child { color: var(--v3-violet); }
.kx-da-v3 .kx-v3-table--lignes tbody td { padding: 1.15rem 1.25rem; border: 0; border-block: 1px solid var(--v3-line); background: var(--v3-blanc); vertical-align: middle; line-height: 1.5; color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-table--lignes tbody td:first-child { border-left: 1px solid var(--v3-line); border-radius: var(--v3-r) 0 0 var(--v3-r); font-size: 1.0625rem; font-weight: 600; letter-spacing: -0.01em; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-table--lignes tbody td:last-child { border-right: 1px solid var(--v3-line); border-radius: 0 var(--v3-r) var(--v3-r) 0; background: var(--v3-blanc); color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-table--lignes:not(.kx-v3-table--neutre) tbody td:last-child { border-color: var(--v3-violet-soft); background: var(--v3-violet-soft); font-weight: 500; color: var(--v3-ink); }
.kx-v3-section--lavande .kx-v3-table--lignes tbody td { border-color: transparent; }
.kx-v3-section--lavande .kx-v3-table--lignes:not(.kx-v3-table--neutre) tbody td:last-child { border-color: var(--v3-lavande); background: var(--v3-lavande); }
.kx-da-v3 .kx-v3-table--lignes tbody tr:last-child td { border-bottom: 1px solid var(--v3-line); }
.kx-v3-section--lavande .kx-v3-table--lignes tbody tr:last-child td { border-bottom-color: transparent; }
.kx-da-v3 .kx-v3-table--c4 tbody td:first-child { width: 19%; }
.kx-da-v3 .kx-v3-table--c3 tbody td:first-child { width: 26%; }
.kx-da-v3 .kx-v3-table--c5 tbody td:first-child { width: 17%; }
.kx-da-v3 .kx-v3-table--lignes td:first-child:has(.kx-v3-rang) { white-space: nowrap; }
.kx-v3-rang { display: inline-flex; align-items: center; justify-content: center; width: 1.75rem; height: 1.75rem; margin-right: .75rem; border-radius: var(--v3-r-s); background: var(--v3-violet); font-size: .875rem; font-weight: 600; color: var(--v3-blanc); font-variant-numeric: tabular-nums; vertical-align: middle; }
@media (max-width: 860px) {
  .kx-da-v3 .kx-v3-table--lignes table, .kx-v3-table--lignes tbody, .kx-v3-table--lignes tr, .kx-da-v3 .kx-v3-table--lignes tbody td { display: block; width: auto !important; white-space: normal !important; }
  .kx-v3-table--lignes thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .kx-v3-table--lignes tr { margin-bottom: .75rem; overflow: hidden; border: 1px solid var(--v3-line); border-radius: var(--v3-r); background: var(--v3-blanc); }
  .kx-da-v3 .kx-v3-table--lignes tbody td { padding: .75rem 1.25rem; border: 0 !important; border-radius: 0 !important; background: none; }
  .kx-da-v3 .kx-v3-table--lignes tbody td:first-child { padding: 1.1rem 1.25rem .35rem; }
  .kx-da-v3 .kx-v3-table--lignes tbody td:last-child { padding-bottom: 1.1rem; }
  .kx-v3-table--lignes tbody td[data-l]::before { content: attr(data-l); display: block; margin-bottom: .15rem; font-size: .75rem; font-weight: 600; color: var(--v3-ink-50); }
  .kx-da-v3 .kx-v3-table--lignes:not(.kx-v3-table--neutre) tbody td:last-child { background: var(--v3-violet-soft); }
  .kx-v3-table--lignes:not(.kx-v3-table--neutre) tbody td:last-child::before { color: var(--v3-violet); }
}

/* Des cartes a pictogramme : une liste courte dont chaque ligne commence par un titre en gras (comme les
   engagements de la home). Une coche ; une croix quand la section dit ce qu'on ne fait pas. */
.kx-da-v3 .entry-content .kx-v3-pictos { display: grid; gap: 1rem; margin: 0; padding: 0; list-style: none; }
@media (min-width: 640px) { .kx-da-v3 .entry-content .kx-v3-pictos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) {
  .kx-da-v3 .entry-content .kx-v3-pictos { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
  .kx-da-v3 .entry-content .kx-v3-pictos--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .kx-da-v3 .entry-content .kx-v3-pictos--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; }
  .kx-da-v3 .entry-content .kx-v3-pictos--7 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.kx-v3-pictos > li { display: flex; flex-direction: column; margin: 0; padding: 1.5rem; border: 1px solid var(--v3-line); border-radius: var(--v3-r); background: var(--v3-blanc); }
.kx-v3-section--lavande .kx-v3-pictos > li { border-color: transparent; }
.kx-v3-picto { display: block; width: 2.5rem; height: 2.5rem; margin-bottom: 1.25rem; border-radius: var(--v3-r); background: var(--v3-violet-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235B26FE' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 1.25rem no-repeat; }
.kx-v3-picto--non { background-color: var(--v3-ink); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231AECDE' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M7 7l10 10M17 7L7 17'/%3E%3C/svg%3E"); }
.kx-v3-pictos > li > b { font-size: 1.125rem; font-weight: 600; line-height: 1.25; letter-spacing: -0.015em; color: var(--v3-ink); }
.kx-v3-pictos > li > span:last-child { margin-top: .5rem; font-size: .9375rem; line-height: 1.6; color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-pictos a { color: var(--v3-violet); text-decoration: underline; text-underline-offset: .2em; text-decoration-thickness: 1px; }

/* Une frise « parcours » : le symbole Korbyx passe de case en case (l'agent qui fait son travail) */
.kx-v3-pas__piste { position: relative; }
.kx-v3-pas__agent { display: none; }
@media (min-width: 900px) {
  .kx-v3-pas-bloc--parcours .kx-v3-pas__piste { padding-top: 2.75rem; }
  .kx-v3-pas-bloc--parcours .kx-v3-pas__piste::before { content: ""; position: absolute; left: 10%; right: 10%; top: 1.05rem; height: 2px; background: repeating-linear-gradient(90deg, var(--v3-ink-20) 0 6px, transparent 6px 12px); }
  .kx-v3-pas__agent { position: absolute; top: 0; left: 10%; display: flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; margin-left: -1.125rem; border-radius: var(--v3-r); background: var(--v3-violet); color: var(--v3-blanc); animation: kxPasAgent 10s cubic-bezier(.65, 0, .35, 1) infinite both; }
  .kx-v3-pas__agent .kx-v3-marque { width: 1.125rem; height: 1.125rem; }
}
@keyframes kxPasAgent { 0%, 12% { left: 10%; } 20%, 32% { left: 30%; } 40%, 52% { left: 50%; } 60%, 74% { left: 70%; background: var(--v3-cyan); color: var(--v3-ink); } 82%, 96% { left: 90%; } 100% { left: 10%; } }
@media (prefers-reduced-motion: reduce) { .kx-v3-pas__agent { animation: none; } }
/* --- Pages de service fusionnees (02/10) : fiches d'une etape, grille de prix, deux listes, facture, matrice --- */

/* Sous un niveau : ses fiches cote a cote (« Chez vous · Chez nous · Ce que vous recevez ») */
.kx-da-v3 .entry-content .kx-v3-fiches { display: grid; gap: 1rem; margin: 2.5rem 0 0; }
@media (min-width: 900px) { .kx-da-v3 .entry-content .kx-v3-fiches--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; } .kx-da-v3 .entry-content .kx-v3-fiches--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.kx-v3-fiches > div { margin: 0; padding: 1.5rem; border: 1px solid var(--v3-line); border-radius: var(--v3-r); background: var(--v3-blanc); }
.kx-v3-section--lavande .kx-v3-fiches > div { border-color: transparent; }
.kx-v3-fiches > div:last-child { border-color: var(--v3-violet-soft); background: var(--v3-violet-soft); }
.kx-v3-section--lavande .kx-v3-fiches > div:last-child { border-color: var(--v3-lavande); background: var(--v3-lavande); }
.kx-v3-fiches dt { margin: 0; font-size: .8125rem; font-weight: 600; line-height: 1.3; color: var(--v3-violet); }
.kx-v3-fiches dd { margin: .6rem 0 0; font-size: .96875rem; line-height: 1.6; color: var(--v3-ink-70); }
.kx-v3-fiches > div:last-child dd { color: var(--v3-ink); }
/* Six ou sept marches : l'escalier monte moins vite, les noms se serrent */
@media (min-width: 900px) {
  .kx-da-v3 .kx-v3-niv__marches--6 button, .kx-da-v3 .kx-v3-niv__marches--7 button { min-height: calc(6.5rem + var(--k, 0) * .7rem); padding: .75rem .75rem .875rem; }
  .kx-v3-niv__marches--6 .kx-v3-niv__nom, .kx-v3-niv__marches--7 .kx-v3-niv__nom { font-size: .9375rem; }
  .kx-v3-niv__marches--6 .kx-v3-niv__verbe, .kx-v3-niv__marches--7 .kx-v3-niv__verbe { font-size: .75rem; }
}

/* La grille de prix : trois cartes cote a cote (demande de Nicolas), le montant en grand */
.kx-da-v3 .entry-content .kx-v3-prix { display: grid; gap: 1rem; margin: 0; padding: 0; list-style: none; }
@media (min-width: 900px) { .kx-da-v3 .entry-content .kx-v3-prix { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; } }
.kx-v3-prix > li { display: flex; flex-direction: column; margin: 0; padding: 2rem; border: 1px solid var(--v3-line); border-radius: var(--v3-r); background: var(--v3-blanc); }
.kx-v3-section--lavande .kx-v3-prix > li { border-color: transparent; }
.kx-v3-prix > li.est-premier, .kx-v3-section--lavande .kx-v3-prix > li.est-premier { border-color: var(--v3-violet); background: var(--v3-violet); color: var(--v3-blanc); }
.kx-da-v3 .kx-v3-prix p { margin: 0; }
.kx-da-v3 .kx-v3-prix .kx-v3-prix__nom { font-size: 1.125rem; font-weight: 600; letter-spacing: -0.015em; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-prix .kx-v3-prix__montant { display: flex; flex-wrap: wrap; align-items: baseline; gap: .1rem .5rem; margin-top: 1.5rem; color: var(--v3-ink); }
.kx-v3-prix__montant b { font-size: clamp(2rem, 3.2vw, 2.75rem); font-weight: 600; line-height: 1; letter-spacing: -0.035em; white-space: nowrap; }
.kx-v3-prix__montant small { font-size: .9375rem; font-weight: 500; color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-prix .kx-v3-prix__note { width: fit-content; margin-top: .875rem; padding: .2rem .6rem; border-radius: var(--v3-r-s); background: var(--v3-violet-soft); font-size: .8125rem; font-weight: 600; color: var(--v3-violet); }
.kx-da-v3 .kx-v3-prix .kx-v3-prix__texte { margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid var(--v3-line); font-size: .9375rem; line-height: 1.65; color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-prix > li.est-premier :is(.kx-v3-prix__nom, .kx-v3-prix__montant) { color: var(--v3-blanc); }
.kx-v3-prix > li.est-premier .kx-v3-prix__montant small { color: rgba(255, 255, 255, 0.85); }
.kx-da-v3 .kx-v3-prix > li.est-premier .kx-v3-prix__note { background: rgba(255, 255, 255, 0.16); color: var(--v3-blanc); }
.kx-da-v3 .kx-v3-prix > li.est-premier .kx-v3-prix__texte { border-top-color: rgba(255, 255, 255, 0.25); color: rgba(255, 255, 255, 0.92); }

/* « Pour vous si… / Pas pour vous si… » : deux listes face a face, la premiere cochee, la seconde barree */
.kx-v3-pour { display: grid; gap: 1rem; }
@media (min-width: 900px) { .kx-v3-pour { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; } }
.kx-v3-pour__col { padding: 2rem; border: 1px solid var(--v3-violet-soft); border-radius: var(--v3-r); background: var(--v3-violet-soft); }
.kx-v3-section--lavande .kx-v3-pour__col { border-color: var(--v3-lavande); background: var(--v3-lavande); }
.kx-v3-pour__col--non, .kx-v3-section--lavande .kx-v3-pour__col--non { border-color: var(--v3-line); background: var(--v3-blanc); }
.kx-da-v3 .kx-v3-pour__titre { margin: 0; font-size: 1.25rem; font-weight: 600; line-height: 1.25; letter-spacing: -0.02em; color: var(--v3-ink); }
.kx-da-v3 .entry-content .kx-v3-pour ul { display: grid; gap: 1rem; margin: 1.5rem 0 0; padding: 0; list-style: none; }
.kx-v3-pour li { position: relative; margin: 0; padding-left: 2.75rem; font-size: 1rem; line-height: 1.55; color: var(--v3-ink); }
.kx-v3-pour li::before { content: ""; position: absolute; left: 0; top: -.05rem; width: 1.75rem; height: 1.75rem; border-radius: var(--v3-r-s); background: var(--v3-blanc) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235B26FE' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 1.125rem no-repeat; }
.kx-v3-pour__col--non li { color: var(--v3-ink-70); }
.kx-v3-pour__col--non li::before { background: var(--v3-paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23716781' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M7 7l10 10M17 7L7 17'/%3E%3C/svg%3E") center / 1.125rem no-repeat; }

/* La facture en trois lignes (page Prix) : la feuille, et a cote, barrees, les lignes absentes */
.kx-v3-facture { display: grid; gap: 1.25rem; margin: 0; }
@media (min-width: 900px) { .kx-v3-facture { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 2rem; align-items: center; } }
.kx-v3-facture__feuille { padding: 2rem; border-radius: var(--v3-r); background: var(--v3-blanc); box-shadow: 0 32px 64px -40px rgba(18, 1, 45, 0.45), 0 0 0 1px var(--v3-line); }
.kx-da-v3 .kx-v3-facture__titre { display: flex; align-items: center; gap: .6rem; margin: 0; padding-bottom: 1.25rem; border-bottom: 1px solid var(--v3-line); font-size: 1.125rem; font-weight: 600; letter-spacing: -0.015em; color: var(--v3-ink); }
.kx-v3-facture__titre .kx-v3-marque { width: 1.25rem; height: 1.25rem; color: var(--v3-violet); }
.kx-da-v3 .entry-content .kx-v3-facture ol { margin: 0; padding: 0; list-style: none; counter-reset: f; }
.kx-v3-facture ol li { display: grid; grid-template-columns: 2rem minmax(0, 1fr) auto; align-items: center; gap: 1rem; margin: 0; padding: 1.1rem 0; border-bottom: 1px solid var(--v3-line); counter-increment: f; }
.kx-v3-facture ol li:last-child { border-bottom: 0; padding-bottom: 0; }
.kx-v3-facture ol li::before { content: counter(f); display: flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; border-radius: var(--v3-r-s); background: var(--v3-violet-soft); font-size: .875rem; font-weight: 600; color: var(--v3-violet); }
.kx-v3-facture ol b { font-size: 1.0625rem; font-weight: 600; color: var(--v3-ink); }
.kx-v3-facture ol span { font-size: .875rem; color: var(--v3-ink-70); text-align: right; }
.kx-da-v3 .kx-v3-facture__hors p { margin: 0; font-size: .8125rem; font-weight: 600; color: var(--v3-ink-50); }
.kx-da-v3 .entry-content .kx-v3-facture__hors ul { display: grid; gap: .6rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.kx-v3-facture__hors li { margin: 0; padding: .875rem 1.1rem; border: 1px dashed var(--v3-ink-20); border-radius: var(--v3-r); font-size: 1rem; color: var(--v3-ink-50); }
.kx-v3-facture__hors s { text-decoration-thickness: 1.5px; }

/* La matrice valeur x difficulte (page Audit) : quatre zones, les cas a leur place */
.kx-v3-matrice { display: grid; gap: 1.5rem; margin: 0; }
@media (min-width: 900px) { .kx-v3-matrice { grid-template-columns: minmax(0, 32rem) minmax(0, 1fr); gap: 4rem; align-items: center; } }
.kx-v3-matrice__plan { position: relative; aspect-ratio: 1 / 1; margin: 0 0 2rem 2rem; border-radius: var(--v3-r); background: linear-gradient(var(--v3-line), var(--v3-line)) 50% 0 / 1px 100% no-repeat, linear-gradient(var(--v3-line), var(--v3-line)) 0 50% / 100% 1px no-repeat, var(--v3-blanc); box-shadow: 0 0 0 1px var(--v3-line); }
.kx-v3-matrice__zone { position: absolute; width: 50%; height: 50%; padding: .9rem 1rem; font-size: .8125rem; font-weight: 600; line-height: 1.3; color: var(--v3-ink-50); }
.kx-v3-matrice__zone--a { left: 0; top: 0; border-radius: var(--v3-r) 0 0 0; background: var(--v3-violet-soft); color: var(--v3-violet); }
.kx-v3-matrice__zone--b { right: 0; top: 0; text-align: right; }
.kx-v3-matrice__zone--c { left: 0; bottom: 0; display: flex; align-items: flex-end; }
.kx-v3-matrice__zone--d { right: 0; bottom: 0; display: flex; align-items: flex-end; justify-content: flex-end; text-align: right; }
.kx-v3-matrice__pt { position: absolute; z-index: 1; display: flex; align-items: center; justify-content: center; width: 2.125rem; height: 2.125rem; margin: -1.0625rem 0 0 -1.0625rem; border-radius: 9999px; font-style: normal; font-size: .875rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.kx-v3-matrice__pt--1, .kx-v3-matrice__h1::before { background: var(--v3-violet); color: var(--v3-blanc); }
.kx-v3-matrice__pt--2, .kx-v3-matrice__h2::before { background: var(--v3-lavande); color: var(--v3-ink); }
.kx-v3-matrice__pt--3, .kx-v3-matrice__h3::before { background: var(--v3-ink); color: var(--v3-paper); }
.kx-v3-matrice__pt--4, .kx-v3-matrice__h4::before { background: var(--v3-blanc); color: var(--v3-ink-70); box-shadow: inset 0 0 0 1.5px var(--v3-ink-30); }
.kx-v3-matrice__axe { position: absolute; font-size: .75rem; font-weight: 500; color: var(--v3-ink-70); white-space: nowrap; }
.kx-v3-matrice__axe--x { left: 0; right: 0; bottom: -1.75rem; text-align: center; }
.kx-v3-matrice__axe--y { left: -1.25rem; top: 50%; transform: translate(-50%, -50%) rotate(-90deg); }
.kx-da-v3 .entry-content .kx-v3-matrice figcaption ul { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; }
.kx-v3-matrice figcaption li { display: flex; align-items: center; gap: .75rem; margin: 0; font-size: 1rem; font-weight: 500; color: var(--v3-ink); }
.kx-v3-matrice figcaption li::before { content: ""; flex: none; width: 1.25rem; height: 1.25rem; border-radius: 9999px; }
.kx-da-v3 .kx-v3-matrice figcaption > span { display: block; margin-top: 1.5rem; font-size: .75rem; color: var(--v3-ink-50); }
/* --- Retouches de la relecture du 02/10 (pages de service fusionnees) ---------------------------------- */
/* Face a un visuel : le texte qui precede les lignes a deplier garde son espace sous le titre */
.kx-v3-vue__texte > .kx-v3-points__avant { margin: 1.25rem 0 1.5rem; }
.kx-da-v3 .kx-v3-vue__texte > .kx-v3-points__avant > p { margin: 0; font-size: 1.0625rem; line-height: 1.7; color: var(--v3-ink-70); }
/* Un encadre chiffre dans la colonne de texte d'une vue : le nombre au-dessus, le texte dessous */
.kx-v3-vue__texte .kx-v3-chiffre { grid-template-columns: minmax(0, 1fr); gap: .75rem; margin-top: 1.75rem; padding: 1.5rem; }
.kx-v3-vue__texte .kx-v3-chiffre__nombre { font-size: clamp(2rem, 3vw, 2.75rem); white-space: normal; }
.kx-da-v3 .kx-v3-vue__texte .kx-v3-chiffre p { font-size: 1rem; }
/* La fiche mise en avant (« Ce que vous recevez ») : son etiquette en Erebus, lisible sur le fond lavande */
.kx-v3-fiches > div:last-child dt { color: var(--v3-ink); }
/* Blocs de liens (02/10) : au-dela de neuf, les suivants se deplient avec « Afficher les n autres pages » */
.kx-v3-liens > li[hidden] { display: none; }
.kx-da-v3 .kx-v3-liens__action { margin: 1.5rem 0 0; }
/* Sept ou huit cartes a pictogramme : quatre par rangee */
@media (min-width: 1100px) { .kx-da-v3 .entry-content :is(.kx-v3-pictos--6, .kx-v3-pictos--8) { grid-template-columns: repeat(4, minmax(0, 1fr)); } .kx-da-v3 .entry-content .kx-v3-pictos--6 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* Consentement (02/10). Un contenu fourni par un autre service (l'agenda de rendez-vous) est remplace par un
   avis tant que le visiteur n'a pas accepte : un bouton l'affiche pour cette fois, un lien mene au service */
.kx-v3-agenda { min-height: 0; }
.kx-v3-contenu__avis { display: flex; flex-direction: column; align-items: center; max-width: 36rem; margin: 0 auto; padding: 3.5rem 1.5rem 3.25rem; text-align: center; }
.kx-v3-contenu__avis[hidden], .kx-v3-contenu .kx-cal[hidden] { display: none; }
.kx-v3-contenu .kx-cal { margin-top: 0; }
/* L'agenda Microsoft Bookings (04/10). La page de Bookings n'a que deux mises en page : une colonne de 420 px
   (sous 1 024 px de large, entouree de gris au-dela), ou le calendrier et les horaires cote a cote sur une carte de
   1 024 px (a partir de 1 040 px, entouree de gris au-dela). La carte de l'agenda prend donc l'une de ces deux
   largeurs, au pixel pres, et se centre : plus de bandes grises, plus de « page dans la page ». Le cadre defile dans
   sa hauteur (une hauteur fixe laisserait la confirmation hors de vue apres l'envoi). */
.kx-da-v3 .entry-content .kx-v3-agenda:has(.kx-cal:not([hidden])) { max-width: calc(27.25rem + 2px); margin-inline: auto; padding: 0; overflow: hidden; background: var(--v3-blanc); }
@media (min-width: 1152px) {
  .kx-da-v3 .entry-content .kx-v3-agenda:has(.kx-cal:not([hidden])) { max-width: calc(65rem + 2px); }
}
.kx-v3-contenu .kx-cal__cadre { position: relative; background: var(--v3-blanc); }
.kx-v3-contenu .kx-cal iframe { position: relative; z-index: 1; display: block; width: 100%; height: min(88vh, 60rem); min-height: 34rem; border: 0; background: transparent; }
.kx-da-v3 .kx-v3-contenu .kx-cal__pied { margin: 0; padding: .75rem 1.25rem; border-top: 1px solid var(--v3-line); font-size: .8125rem; line-height: 1.5; color: var(--v3-ink-70); text-align: center; }
.kx-v3-contenu .kx-cal__reponses { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1.5rem; margin: 0 0 .5rem; padding: 1rem 1.25rem; border-radius: 4px; background: var(--v3-violet-soft); }
.kx-da-v3 .kx-v3-contenu .kx-cal__reponses p { margin: 0; flex: 1 1 18rem; font-size: .9375rem; line-height: 1.5; color: var(--v3-ink); }
/* (l'agenda met quelques secondes a se dessiner : un mot d'attente derriere le cadre, que l'agenda recouvre) */
.kx-da-v3 .kx-v3-contenu .kx-cal__attente { position: absolute; z-index: 0; left: 0; right: 0; top: 6rem; margin: 0; padding: 0 1.25rem; font-size: 1rem; line-height: 1.5; color: var(--v3-ink-70); text-align: center; }
.kx-v3-contenu__avis > svg { width: 3rem; height: 3rem; margin-bottom: 1.25rem; padding: .7rem; border-radius: var(--v3-r); background: var(--v3-violet-soft); fill: none; stroke: var(--v3-violet); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.kx-da-v3 .kx-v3-contenu__avis p { margin: 0; font-size: 1rem; line-height: 1.6; color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-contenu__avis .kx-v3-contenu__titre { margin-bottom: .375rem; font-size: 1.25rem; font-weight: 600; letter-spacing: -0.02em; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-contenu__avis .kx-v3-contenu__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .75rem 1.5rem; margin-top: 1.5rem; }
.kx-da-v3 .kx-v3-contenu__avis .kx-v3-contenu__note { margin-top: 1.25rem; font-size: .875rem; color: var(--v3-ink-50); }
.kx-da-v3 .kx-v3-contenu__avis a { color: var(--v3-violet); text-decoration: underline; text-underline-offset: .2em; text-decoration-thickness: 1px; }
.kx-da-v3 .kx-v3-contenu__bouton, .kx-da-v3 .kx-v3-cookies__bouton { display: inline-flex; align-items: center; height: 3.25rem; padding: 0 1.5rem; border: 0; border-radius: var(--v3-r-s); background: var(--v3-violet); box-shadow: none; font: inherit; font-size: 1rem; font-weight: 500; color: var(--v3-blanc); cursor: pointer; transition: background-color .25s; }
.kx-da-v3 .kx-v3-contenu__bouton:hover, .kx-da-v3 .kx-v3-contenu__bouton:focus, .kx-da-v3 .kx-v3-cookies__bouton:hover, .kx-da-v3 .kx-v3-cookies__bouton:focus { background: var(--v3-ink); color: var(--v3-blanc); }
.kx-da-v3 .kx-v3-contenu__bouton:focus-visible, .kx-da-v3 .kx-v3-cookies__bouton:focus-visible { outline: 2px solid var(--v3-ink); outline-offset: 2px; }
/* Page Cookies : le bouton « Gerer mes cookies » en tete, avant l'explication */
.kx-da-v3 .kx-v3-legal__texte .kx-v3-cookies { margin: 1.5rem 0 0; }
.kx-da-v3 .kx-v3-legal__texte .kx-v3-cookies + h2 { margin-top: 2.5rem; }
/* Pied de page : « Gerer mes cookies » rouvre la fenetre de choix */
.kx3f-legal a[data-kx-cookies] { cursor: pointer; }
/* Pages legales : un tableau en lignes (une fiche par ligne sur telephone) ne garde pas la largeur minimale
   des tableaux qui defilent dans leur cadre ; un nom de traceur long passe a la ligne */
.kx-da-v3 .kx-v3-legal__texte .kx-v3-table--lignes { overflow: visible; }
.kx-da-v3 .kx-v3-legal__texte .kx-v3-table--lignes table { min-width: 0; }
.kx-da-v3 .kx-v3-legal__texte .kx-v3-table--lignes tbody td:first-child { font-size: 1rem; overflow-wrap: anywhere; }
/* Carrieres (02/10) : la mention sur les donnees de candidature, sous le formulaire */
.kx-da-v3 .kx-v3-candidature__mention { max-width: 54rem; margin: 1rem 0 0; font-size: .8125rem; line-height: 1.55; color: var(--v3-ink-50); }
.kx-da-v3 .kx-v3-candidature__mention a { color: var(--v3-violet); text-decoration: underline; text-underline-offset: .2em; text-decoration-thickness: 1px; }
/* Une ancre de section ne passe pas sous le menu, qui reste en haut de l'ecran */
.kx-da-v3 .kx-v3-section[id] { scroll-margin-top: 4.5rem; }
/* Premier ecran des pages (02/10, Thomas : un violet moins vif en grand aplat) : la photo se fond dans un
   violet nuit, comme sur la home ; le violet franc reste aux boutons et aux accents */
.kx-da-v3 .kx-v3-hero__photo { background: #3A1CAE; }
/* ==========================================================================
   13. Simulateur « Où sont vos écarts » (page de Nicolas n° 31, korbyx-simulateur.js)
   ========================================================================== */
.kx-v3-simu { position: relative; max-width: 58rem; margin: 0 auto; padding: 2.25rem; border: 1px solid var(--v3-line); border-radius: var(--v3-r); background: var(--v3-blanc); scroll-margin-top: 7rem; }
@media (max-width: 640px) { .kx-v3-simu { padding: 1.25rem; } }
.kx-v3-simu__tete { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: .75rem 1.5rem; margin-bottom: 2rem; }
.kx-da-v3 .kx-v3-simu__retour { display: inline-flex; align-items: center; gap: .4rem; height: 2.25rem; padding: 0 .75rem 0 .5rem; border: 1px solid var(--v3-line); border-radius: var(--v3-r-s); background: none; color: var(--v3-ink); font-size: .875rem; font-weight: 500; line-height: 1; cursor: pointer; }
.kx-da-v3 .kx-v3-simu__retour:hover { background: var(--v3-violet-soft); color: var(--v3-ink); }
.kx-da-v3 .kx-v3-simu__retour:disabled { opacity: .35; cursor: default; background: none; }
.kx-v3-simu__retour svg { width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.kx-da-v3 .kx-v3-simu__progres { margin: 0; justify-self: end; font-size: .875rem; font-weight: 500; color: var(--v3-ink-70); font-variant-numeric: tabular-nums; }
.kx-v3-simu__barre { grid-column: 1 / -1; height: 4px; border-radius: 2px; background: var(--v3-violet-soft); overflow: hidden; }
.kx-v3-simu__barre span { display: block; height: 100%; border-radius: 2px; background: var(--v3-violet); transition: width .4s var(--v3-ease); }
.kx-da-v3 .kx-v3-simu__question { margin: 0; padding: 0; border: 0; min-width: 0; }
.kx-da-v3 .kx-v3-simu__question legend { float: none; width: 100%; padding: 0; margin: 0 0 1.5rem; border: 0; font-size: clamp(1.5rem, 2.6vw, 2.125rem); font-weight: 400; line-height: 1.15; letter-spacing: -0.03em; color: var(--v3-ink); text-wrap: balance; outline: 0; }
.kx-da-v3 .kx-v3-simu__sous { margin: 1.5rem 0 .6rem; font-size: .9375rem; font-weight: 500; color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-simu__question legend + .kx-v3-simu__sous { margin-top: 0; }
.kx-v3-simu__choix { display: grid; gap: .625rem; }
@media (min-width: 720px) { .kx-v3-simu__choix--court { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.kx-v3-simu__carte { position: relative; display: grid; grid-template-columns: 2rem minmax(0, 1fr); align-items: center; gap: .875rem; margin: 0; padding: .9rem 1rem; border: 1px solid var(--v3-line); border-radius: var(--v3-r); background: var(--v3-paper); cursor: pointer; transition: border-color .2s, background-color .2s; }
.kx-v3-simu__carte input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.kx-v3-simu__lettre { display: flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; border-radius: var(--v3-r-s); background: var(--v3-violet-soft); color: var(--v3-violet); font-size: .875rem; font-weight: 600; transition: background-color .2s, color .2s; }
.kx-v3-simu__lettre:empty::before { content: ""; width: .75rem; height: .75rem; border: 1.5px solid currentColor; border-radius: 2px; }
.kx-v3-simu__libelle { font-size: 1rem; line-height: 1.45; color: var(--v3-ink); }
@media (hover: hover) { .kx-v3-simu__carte:hover { border-color: var(--v3-lavande); } }
.kx-v3-simu__carte:has(input:checked) { border-color: var(--v3-violet); background: var(--v3-violet-soft); }
.kx-v3-simu__carte:has(input:checked) .kx-v3-simu__lettre { background: var(--v3-violet); color: var(--v3-blanc); }
.kx-v3-simu__carte:has(input:checked) .kx-v3-simu__lettre:empty::before { background: currentColor; }
.kx-v3-simu__carte:has(input:focus-visible) { outline: 2px solid var(--v3-violet); outline-offset: 2px; }
.kx-v3-simu__pied { display: flex; justify-content: flex-end; margin-top: 1.75rem; }
.kx-da-v3 .kx-v3-simu__bouton { display: inline-flex; align-items: center; gap: .75rem; height: 3.5rem; padding: 0 1.5rem; border: 0; border-radius: var(--v3-r-s); background: var(--v3-violet); color: var(--v3-blanc); font-size: 1rem; font-weight: 500; line-height: 1; white-space: nowrap; cursor: pointer; transition: background-color .25s; }
.kx-da-v3 .kx-v3-simu__bouton:hover { background: var(--v3-ink); color: var(--v3-blanc); }
.kx-da-v3 .kx-v3-simu__bouton:disabled { opacity: .4; cursor: default; background: var(--v3-violet); }
.kx-v3-simu__bouton svg { width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
/* Avant de commencer : une question en apercu, le bouton de demarrage par-dessus */
.kx-v3-simu__accueil { position: relative; }
.kx-v3-simu__accueil > .kx-v3-simu__ecran { opacity: .38; pointer-events: none; user-select: none; -webkit-mask-image: linear-gradient(#000 35%, transparent 96%); mask-image: linear-gradient(#000 35%, transparent 96%); }
.kx-v3-simu__lancer { position: absolute; left: 0; right: 0; bottom: 12%; display: flex; flex-direction: column; align-items: center; gap: .875rem; text-align: center; }
.kx-da-v3 .kx-v3-simu__mention { margin: 0; font-size: .875rem; line-height: 1.5; color: var(--v3-ink-70); }
/* Le resultat */
.kx-v3-simu__resultat .kx-v3-surtitre { margin: 0 0 .75rem; }
.kx-da-v3 .kx-v3-simu__profil { margin: 0; font-size: clamp(1.75rem, 3.2vw, 2.625rem); font-weight: 400; line-height: 1.08; letter-spacing: -0.035em; color: var(--v3-ink); text-wrap: balance; outline: 0; }
.kx-da-v3 .kx-v3-simu__profil em { font-style: normal; font-weight: 600; color: var(--v3-violet); }
.kx-da-v3 .kx-v3-simu__texte { max-width: 46rem; margin: 1.25rem 0 0; font-size: 1.0625rem; line-height: 1.65; color: var(--v3-ink-70); }
.kx-da-v3 .entry-content .kx-v3-simu__maillons { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; margin: 2rem 0 0; padding: 0; list-style: none; }
@media (min-width: 860px) { .kx-da-v3 .entry-content .kx-v3-simu__maillons { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.kx-v3-simu__maillon { display: flex; flex-direction: column; gap: .4rem; margin: 0; padding: .875rem; border: 1px solid var(--v3-line); border-radius: var(--v3-r); background: var(--v3-paper); }
.kx-v3-simu__maillon b { display: flex; align-items: center; justify-content: center; width: 1.625rem; height: 1.625rem; border-radius: var(--v3-r-s); background: var(--v3-violet-soft); color: var(--v3-violet); font-size: .8125rem; font-weight: 600; }
.kx-v3-simu__maillon span { font-size: .9375rem; font-weight: 500; line-height: 1.25; color: var(--v3-ink); }
.kx-v3-simu__maillon em { margin-top: auto; align-self: flex-start; padding: .125rem .5rem; border-radius: var(--v3-r-s); font-style: normal; font-size: .75rem; font-weight: 600; line-height: 1.5; }
.kx-v3-simu__maillon--1 em { background: var(--v3-jaune); color: var(--v3-ink); }
.kx-v3-simu__maillon--2 em { background: var(--v3-violet-soft); color: var(--v3-violet); }
.kx-v3-simu__maillon--3 em { background: var(--v3-violet); color: var(--v3-blanc); }
.kx-v3-simu__blocs { display: grid; gap: 1rem; margin-top: 1rem; }
@media (min-width: 860px) { .kx-v3-simu__blocs { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); } }
.kx-v3-simu__bloc { padding: 1.5rem; border-radius: var(--v3-r); background: var(--v3-violet-soft); }
.kx-v3-simu__bloc--ecarts { margin-top: 1rem; background: var(--v3-paper); border: 1px solid var(--v3-line); }
.kx-da-v3 .kx-v3-simu__resultat h3 { margin: 0 0 .75rem; font-size: 1.0625rem; font-weight: 600; line-height: 1.3; letter-spacing: -0.01em; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-simu__bloc p, .kx-da-v3 .kx-v3-simu__note p { margin: .6rem 0 0; font-size: 1rem; line-height: 1.6; color: var(--v3-ink-70); }
.kx-da-v3 .kx-v3-simu__bloc h3 + p { margin-top: 0; }
.kx-da-v3 .kx-v3-simu__bloc p strong { font-weight: 600; color: var(--v3-ink); }
.kx-da-v3 .kx-v3-simu__liens { display: flex; flex-wrap: wrap; gap: .35rem 1.25rem; }
.kx-da-v3 .kx-v3-simu__liens a { color: var(--v3-violet); font-size: .9375rem; font-weight: 500; text-decoration: underline; text-underline-offset: .2em; text-decoration-thickness: 1px; }
.kx-da-v3 .entry-content .kx-v3-simu__bloc--ecarts ol { display: grid; gap: 1rem; margin: 0; padding: 0; list-style: none; counter-reset: e; }
@media (min-width: 860px) { .kx-da-v3 .entry-content .kx-v3-simu__bloc--ecarts ol { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; } }
.kx-v3-simu__bloc--ecarts li { display: flex; flex-direction: column; gap: .35rem; margin: 0; counter-increment: e; }
.kx-v3-simu__bloc--ecarts li::before { content: counter(e); display: flex; align-items: center; justify-content: center; width: 1.75rem; height: 1.75rem; margin-bottom: .35rem; border-radius: var(--v3-r-s); background: var(--v3-violet); color: var(--v3-blanc); font-size: .875rem; font-weight: 600; }
.kx-v3-simu__bloc--ecarts li b { font-size: 1.0625rem; font-weight: 600; line-height: 1.3; color: var(--v3-ink); }
.kx-v3-simu__bloc--ecarts li span { font-size: .9375rem; line-height: 1.55; color: var(--v3-ink-70); }
.kx-v3-simu__bloc--ecarts li small { margin-top: .25rem; font-size: .8125rem; line-height: 1.5; color: var(--v3-ink-50); }
.kx-v3-simu__note { margin-top: 1rem; padding: 1.25rem 1.5rem; border-left: 3px solid var(--v3-violet); background: var(--v3-paper); }
.kx-v3-simu__sorties { margin-top: 2rem; padding-top: 2rem; border-top: 1px solid var(--v3-line); }
.kx-da-v3 .kx-v3-simu__accroche { margin: 0 0 1rem; font-size: clamp(1.25rem, 2vw, 1.625rem); font-weight: 500; line-height: 1.2; letter-spacing: -0.02em; color: var(--v3-ink); }
.kx-v3-simu__joindre { display: flex; align-items: flex-start; gap: .625rem; margin: 0 0 1.25rem; font-size: .9375rem; line-height: 1.5; color: var(--v3-ink-70); cursor: pointer; }
.kx-v3-simu__joindre input { width: 1.125rem; height: 1.125rem; margin: .15rem 0 0; flex: none; accent-color: var(--v3-violet); }
.kx-v3-simu__sorties .kx-v3-simu__mention { margin-top: .75rem; }
.kx-da-v3 .kx-v3-simu__autres { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin: 1.5rem 0 0; }
.kx-da-v3 .kx-v3-simu__autres button, .kx-da-v3 .kx-v3-simu__autres a { padding: 0; border: 0; background: none; color: var(--v3-violet); font-size: .9375rem; font-weight: 500; line-height: 1.5; text-decoration: underline; text-underline-offset: .2em; text-decoration-thickness: 1px; cursor: pointer; }
.kx-da-v3 .kx-v3-simu__autres button:hover, .kx-da-v3 .kx-v3-simu__autres a:hover { background: none; color: var(--v3-ink); }
.kx-v3-simu noscript p { margin: 0; font-size: 1rem; line-height: 1.6; color: var(--v3-ink-70); }
/* Impression : une copie du resultat, posee a la racine de la page, est seule affichee */
.kx-v3-simu-impression { display: none; }
@media print {
  body.kx-imprime-simulateur > *:not(.kx-v3-simu-impression) { display: none !important; }
  body.kx-imprime-simulateur > .kx-v3-simu-impression { display: block; }
  .kx-v3-simu-impression .kx-v3-simu { max-width: none; margin: 0; padding: 0; border: 0; }
  .kx-da-v3 .kx-v3-simu__entete { margin: 0 0 1.5rem; padding-bottom: .75rem; border-bottom: 1px solid var(--v3-line); font-size: .875rem; font-weight: 600; color: var(--v3-ink); }
  .kx-v3-simu-impression .kx-v3-simu__autres, .kx-v3-simu-impression .kx-v3-simu__joindre { display: none !important; }
  .kx-v3-simu-impression .kx-v3-simu__bloc, .kx-v3-simu-impression .kx-v3-simu__note, .kx-v3-simu-impression .kx-v3-simu__maillon { break-inside: avoid; }
}
/* ==========================================================================
   13. Passe de composition (02/10 au soir). Thomas : « centrer les textes en hauteur quand ils sont en
   face a face, s'assurer des alignements et des mauvais retours a la ligne, pas deux fois la meme image
   sur une page ». Mesure avant et apres : tools/kx_ui_releve.py. Ces regles viennent en dernier ; elles
   reglent la composition des blocs des sections 2 a 12 sans en changer les noms.
   ========================================================================== */

/* --- 1. Face a face : deux blocs cote a cote se centrent l'un sur l'autre -------------------------
   En-tete de section (titre a gauche, texte a droite) : il etait cale en bas ou en haut selon ce que
   portait la colonne de droite. Meme regle pour l'en-tete d'une bande de cartes. */
@media (min-width: 1024px) {
  .kx-v3-entete, .kx-v3-entete:has(> .kx-v3-entete__suite) { align-items: center; }
  .kx-v3-entete:has(> .kx-v3-entete__suite) > .kx-v3-entete__suite { padding-top: 0; }
  /* Titre a gauche, texte a droite : centres. Une colonne longue (lignes qui se deplient, tableau, formulaire)
     garde son titre en haut, qui accompagne la lecture ; une liste d'etapes repliees reste centree. */
  .kx-v3-edito { align-items: center; }
  .kx-v3-edito > .kx-v3-edito__tete { position: static; }
  .kx-v3-edito:has(> .kx-v3-edito__corps :is(details, table, form)) { align-items: start; }
  .kx-v3-edito:has(> .kx-v3-edito__corps :is(details, table, form)) > .kx-v3-edito__tete { position: sticky; top: 6rem; }
}
/* Le premier element d'une colonne de texte ne porte pas de marge haute : un intertitre d'etape en tete de
   colonne gardait la sienne (40 px), et le texte, centre sur son visuel, paraissait 20 px trop bas */
.kx-da-v3 .kx-v3-vue__texte > :first-child { margin-top: 0 !important; }
/* Un titre dans une colonne etroite (5 colonnes sur 12, ou 4 pour les questions) : un cran plus petit,
   pour tenir en trois lignes au lieu de quatre ou cinq */
.kx-da-v3 :is(.kx-v3-vue__texte, .kx-v3-edito__tete, .kx-v3-faq__tete) .kx-v3-h2 { font-size: clamp(1.875rem, 3vw, 2.75rem); line-height: 1.08; }

/* Un titre de page tres long (plus de cent signes) : un cran plus petit, quatre lignes au lieu de cinq ou six */
.kx-da-v3 .kx-v3-h1.kx-v3-h1--dense { font-size: clamp(2rem, 3.2vw, 2.875rem); line-height: 1.07; }

/* --- 2. L'appel du milieu de page : son texte part du meme bord que le titre au-dessus ------------
   (la photo sort de la colonne, son contenu etait rentre de 16 px de trop) ; sa reassurance tient sur
   une ligne, sans filet en debut de ligne. */
.kx-da-v3 .entry-content .kx-v3-appel__scene > .kx-v3-wrap { max-width: calc(88rem + 2 * var(--v3-gouttiere)) !important; }
@media (min-width: 1024px) {
  .kx-da-v3 .entry-content .kx-v3-appel__corps .kx-v3-reassurance { flex-wrap: nowrap; width: max-content; white-space: nowrap; }
}
/* Sur telephone et tablette, la reassurance passe a la ligne : chaque ligne commence au bord, sans filet
   (la liste est decalee d'un cran et rognee de ce cran : le filet du premier element de chaque ligne sort du cadre) */
@media (max-width: 1023.98px) {
  .kx-da-v3 .entry-content .kx-v3-reassurance { margin-left: calc(-1rem - 1px); clip-path: inset(0 0 0 calc(1rem + 1px)); }
  .kx-v3-reassurance li, .kx-v3-reassurance li:first-child { padding: 0 1rem; border-left-width: 1px; border-left-style: solid; }
  /* liste centree (appel final) : une ligne par element, sans filet */
  .kx-da-v3 .entry-content .kx-v3-fin .kx-v3-reassurance { flex-direction: column; align-items: center; gap: .25rem; margin-left: 0; clip-path: none; }
  .kx-v3-fin .kx-v3-reassurance li, .kx-v3-fin .kx-v3-reassurance li:first-child { padding: 0; border-left: 0; }
}

/* --- 3. Rangees de cartes : plus de trou en fin de grille ------------------------------------------
   Une derniere rangee incomplete se partage la largeur : les bords gauche et droit de la grille restent
   tenus. Trois colonnes : il reste deux cartes, elles prennent chacune une moitie ; il en reste une,
   les quatre dernieres vont deux par deux. Deux colonnes : la derniere d'un nombre impair prend la rangee. */
@media (min-width: 1100px) {
  .kx-v3-sous--3,
  .kx-da-v3 .entry-content .kx-v3-mosaique--3,
  .kx-da-v3 .entry-content .kx-v3-mosaique--2:has(> :nth-child(5)) { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  :is(.kx-v3-sous--3, .kx-v3-mosaique--3, .kx-v3-mosaique--2:has(> :nth-child(5))) > * { grid-column: span 2; }
  :is(.kx-v3-sous--3, .kx-v3-mosaique--3, .kx-v3-mosaique--2:has(> :nth-child(5))) > :is(
    :nth-child(3n+1):nth-last-child(2), :nth-child(3n+2):last-child,
    :nth-child(3n+1):nth-last-child(4), :nth-child(3n+2):nth-last-child(3), :nth-child(3n):nth-last-child(2), :nth-child(3n+1):last-child:not(:first-child)) { grid-column: span 3; --kx-photo: 5 / 2; }
}
.kx-v3-tuile__photo { aspect-ratio: var(--kx-photo, 16 / 10); }
@media (min-width: 768px) {
  .kx-v3-sous:not(.kx-v3-sous--3) > :nth-child(odd):last-child { grid-column: 1 / -1; }
}
@media (min-width: 768px) and (max-width: 1099.98px) {
  .kx-v3-sous--3 > :nth-child(odd):last-child { grid-column: 1 / -1; }
}
@media (min-width: 700px) and (max-width: 1099.98px) {
  .kx-v3-mosaique > :nth-child(odd):last-child:not(:first-child) { grid-column: 1 / -1; --kx-photo: 5 / 2; }
}
/* Listes d'etapes sur deux colonnes (telephone, tablette) : meme regle, la derniere d'un nombre impair prend la rangee */
@media (max-width: 899.98px) {
  .kx-da-v3 .entry-content .kx-v3-pas > :nth-child(odd):last-child:not(:first-child) { grid-column: 1 / -1; }
}
/* Blocs de liens : meme regle, comptee sur les liens visibles (au-dela de neuf, les suivants sont replies) */
@media (min-width: 640px) and (max-width: 1023.98px) {
  .kx-v3-liens > :nth-child(odd of :not([hidden])):nth-last-child(1 of :not([hidden])) { grid-column: 1 / -1; }
}
@media (min-width: 1024px) {
  .kx-da-v3 .entry-content .kx-v3-liens { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .kx-v3-liens > li { grid-column: span 2; }
  .kx-v3-liens > :is(
    :nth-child(3n+1 of :not([hidden])):nth-last-child(2 of :not([hidden])), :nth-child(3n+2 of :not([hidden])):nth-last-child(1 of :not([hidden])),
    :nth-child(3n+1 of :not([hidden])):nth-last-child(4 of :not([hidden])), :nth-child(3n+2 of :not([hidden])):nth-last-child(3 of :not([hidden])),
    :nth-child(3n of :not([hidden])):nth-last-child(2 of :not([hidden])), :nth-child(3n+1 of :not([hidden])):nth-last-child(1 of :not([hidden])):not(:nth-child(1 of :not([hidden])))) { grid-column: span 3; }
}

/* --- 4. Dans une rangee, les cartes se repondent --------------------------------------------------
   Cartes a intertitre : quand un titre passe sur deux lignes, les textes des cartes voisines partent
   quand meme de la meme hauteur (les rangees de la grille sont partagees par les cartes). Vaut pour les
   grilles dont chaque carte est faite d'un titre et d'un bloc de texte. */
@supports (grid-template-rows: subgrid) {
  @media (min-width: 768px) {
    .kx-v3-sous:not(:has(> .kx-v3-sous__item > :nth-child(3):not(.kx-v3-tuile__plus))) > .kx-v3-sous__item { display: grid; grid-template-rows: subgrid; grid-row: span 2; row-gap: 0; align-content: start; }
  }
  @media (min-width: 640px) {
    /* (un element reserve aux lecteurs d'ecran ne compte pas : il est hors flux) */
    .kx-da-v3 .entry-content .kx-v3-pictos:not(:has(> li > :nth-child(4 of :not(.kx-v3-sr)))):has(> li > :nth-child(3 of :not(.kx-v3-sr))) > li { display: grid; grid-template-rows: subgrid; grid-row: span 3; row-gap: 0; align-content: start; justify-items: start; }
  }
}
/* Cartes a schema : le lien du bas se cale en bas de la carte, a la meme hauteur que celui des voisines */
.kx-v3-mosaique > .kx-v3-tuile--sobre > .kx-v3-tuile__voir { margin-top: auto; padding-top: 1rem; }

/* --- 5. Coupes de ligne : pas de mot seul en derniere ligne d'un paragraphe, titres de cartes equilibres -
   (les petits mots en fin de ligne des titres sont tenus par le theme : korbyx_insecables) */
.kx-da-v3 .entry-content :is(p, li, blockquote, dd, figcaption):not(.kx-v3-h1, .kx-v3-h2, .kx-v3-h3, .kx-v3-sous__titre, .kx-v3-pf__phrase, .kx-v3-prix__nom) { text-wrap: pretty; }
.kx-da-v3 .entry-content :is(.kx-v3-sous__titre, .kx-v3-pictos > li > b, .kx-v3-liens a, .kx-v3-faq__liste summary, .kx-v3-points summary, .kx-v3-prix__nom, .kx-v3-h3, .kx-v3-carte-art__titre) { text-wrap: balance; }

/* L'appel final garde sa marge haute apres une section sans fond (page du blog : son titre touchait le haut du bloc) */
.kx-v3-section:not([class*="--"]) + .kx-v3-section.kx-v3-fin { padding-top: 6rem; }
@media (min-width: 1024px) { .kx-v3-section:not([class*="--"]) + .kx-v3-section.kx-v3-fin { padding-top: 9rem; } }

/* La page du blog n'est pas rendue dans la colonne de contenu : memes regles pour ses cartes et ses textes */
.kx-da-v3 .kx-v3-blog .kx-v3-carte-art__titre { text-wrap: balance; }
.kx-da-v3 .kx-v3-blog :is(p, li) { text-wrap: pretty; }

/* Un mot compose court (« no-code », « rendez-vous ») ne se coupe pas au trait d'union dans un titre : le theme
   le tient par cette balise (korbyx_typo_composes) */
.kx-nb { white-space: nowrap; }

/* --- 6. La citation en carte ne touche plus la section suivante quand celle-ci change de fond ------- */
.kx-v3-section--serree:has(+ .kx-v3-section--lavande) { padding-bottom: 4.5rem; }
@media (min-width: 640px) { .kx-v3-section--serree:has(+ .kx-v3-section--lavande) { padding-bottom: 5.5rem; } }
@media (min-width: 1024px) { .kx-v3-section--serree:has(+ .kx-v3-section--lavande) { padding-bottom: 7rem; } }

/* --- 7. Le chiffre mis en avant : seul dans une colonne de lecture, il prend la largeur de la page comme
   les grilles qu'il suit (il s'arretait a mi-largeur sous une rangee de cartes) */
.kx-v3-texte-seul:has(> .kx-v3-chiffre:first-child):not(:has(> :is(p:not(.kx-v3-liens-texte), ul, ol, h3))) { max-width: none; }

/* --- 8. Un formulaire, un bloc dessine : face au texte qui l'annonce (titre et introduction a gauche,
   formulaire a droite), et non plus sous lui avec la moitie droite de la page vide ------------------- */
@media (min-width: 1024px) {
  .kx-v3-vue > .kx-v3-vue__form, .kx-v3-vue > .kx-v3-facture { grid-column: span 7; }
}
.kx-v3-vue__form { min-width: 0; }
.kx-da-v3 .kx-v3-vue__form :is(.kx-v3-form, .kx-v3-form__merci, .kx-v3-candidature__mention) { max-width: none; }
.kx-da-v3 .kx-v3-vue__form .kx-v3-form { margin-top: 0; }
/* La facture en trois lignes dans sa colonne : la feuille, puis les lignes qu'on ne verra pas */
.kx-v3-vue > .kx-v3-facture { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }

/* --- 9. Filet de securite : un titre ne deborde jamais de sa colonne, meme avec ses mots colles ------ */
.kx-da-v3 .entry-content :is(h1, h2, h3, .kx-v3-h1, .kx-v3-h2, .kx-v3-h3, blockquote) { overflow-wrap: break-word; }

/* --- 10. Cartes d'une suite ordonnee (« pas a pas », « en quatre etapes ») : le numero a la place de la coche */
.kx-v3-picto--num { display: flex; align-items: center; justify-content: center; background-image: none; font-size: 1rem; font-weight: 600; line-height: 1; color: var(--v3-violet); font-variant-numeric: tabular-nums; }

/* --- 11. Une photo et un ecran cote a cote, sous l'en-tete d'une section qui n'a pas d'autre texte --------
   (ils s'empilaient en pleine largeur). Meme hauteur pour les deux ; un telephone prend la colonne etroite. */
@media (min-width: 1024px) {
  .kx-v3-vue--visuels { align-items: stretch; }
  .kx-v3-vue--visuels > .kx-v3-vue__photo, .kx-v3-vue--visuels > .kx-v3-ecran { grid-column: span 6; }
  .kx-v3-vue--visuels.kx-v3-vue--mobile > .kx-v3-vue__photo { grid-column: span 7; }
  .kx-v3-vue--visuels.kx-v3-vue--mobile > .kx-v3-ecran { grid-column: span 5; }
  .kx-v3-vue--visuels > .kx-v3-vue__photo img { height: 100%; aspect-ratio: auto; }
}

/* --- 12. Reperes chiffres sous le premier ecran : quand un repere tient sur une ligne et ses voisins sur
   deux, les filets et les textes restent a la meme hauteur (rangees partagees) --------------------------- */
@supports (grid-template-rows: subgrid) {
  @media (min-width: 640px) {
    .kx-da-v3 .entry-content :is(.kx-v3-stats--3, .kx-v3-stats--4) > li { display: grid; grid-template-rows: subgrid; grid-row: span 2; row-gap: 0; }
    .kx-v3-stats > li > b { align-self: end; }
  }
}

/* --- 13. Citation en carte : ses lignes s'equilibrent, plus de mot seul en derniere ligne ---------------- */
.kx-da-v3 .entry-content .kx-v3-fondateur--citation blockquote { text-wrap: balance; }

/* --- 14. Articles : l'encart d'appel dans le fil, les intertitres -----------------------------------------
   Le bouton de l'encart se centre sur son texte (il etait cale en bas). Sa ligne de reassurance ne commence
   jamais par un point de separation quand elle passe a la ligne (meme principe qu'au point 2 : la liste est
   decalee d'un cran et rognee de ce cran). Les intertitres de la colonne de lecture s'equilibrent : plus de
   mot seul en derniere ligne. */
@media (min-width: 768px) { .kx-v3-art__cta { align-items: center; } }
.kx-da-v3 .entry-content .kx-v3-art__cta-meta { gap: .4rem 0; margin-left: -2.25rem; clip-path: inset(0 0 0 2.25rem); }
.kx-da-v3 .entry-content .kx-v3-art__cta-meta li { position: relative; padding-left: 2.25rem; }
.kx-da-v3 .entry-content .kx-v3-art__cta-meta li::before { content: "·"; position: absolute; left: 1rem; margin: 0; }
.kx-da-v3 .kx-v3-art__corps > :is(h2, h3) { text-wrap: balance; }

/* --- 15. Carte a lien : la fleche reste collee au dernier mot du titre (elle passait seule a la ligne) ----- */
.kx-da-v3 .kx-v3-garantie h3 a::after { content: "\00a0\2192"; }

/* --- 16. Cartes a picto dessine (picto, titre, texte) et cartes a intertitre de trois elements : rangees
   partagees, comme au point 4. Un titre sur deux lignes ne decale plus le texte de sa carte.
   (« toutes les cartes ont trois elements » s'ecrit : aucune n'en a un quatrieme, aucune n'a son dernier
   element au premier ou au deuxieme rang ; un :has() ne peut pas en contenir un autre) */
@supports (grid-template-rows: subgrid) {
  @media (min-width: 768px) {
    .kx-da-v3 .entry-content .kx-v3-cartes:not(:has(> li > :nth-child(4))):not(:has(> li > :last-child:nth-child(-n+2))) > li { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: subgrid; grid-row: span 3; row-gap: 0; align-content: start; }
    /* (cartes a intertitre : seulement celles qui s'ouvrent par une etiquette, puis un titre, puis un texte. Pour un
       titre, un texte et une liste, on ne partage pas les rangees : dans une colonne etroite, un texte plus long chez
       la voisine creusait un grand blanc entre le texte et la liste) */
    .kx-v3-sous:not([data-kx-plis]):has(> .kx-v3-sous__item > .kx-v3-etiquette:first-child):not(:has(> .kx-v3-sous__item > :nth-child(4))):not(:has(> .kx-v3-sous__item > :last-child:nth-child(-n+2))) > .kx-v3-sous__item { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: subgrid; grid-row: span 3; row-gap: 0; align-content: start; }
    .kx-v3-sous > .kx-v3-sous__item > .kx-v3-etiquette { justify-self: start; }
  }
}

/* --- 17. Mosaique de cartes blanches : dans une rangee, les titres, les textes, les listes et les liens
   partent de la meme hauteur, meme quand un titre ou un texte prend une ligne de plus chez la voisine.
   Chaque element a sa rangee, partagee par les cartes : visuel, etiquette, titre, texte, second texte, liste,
   reperes, lien. L'ecart entre deux rangees de cartes passe de la grille aux cartes : une rangee vide (une
   carte sans etiquette, sans liste) ne laisse ainsi aucun blanc. */
@supports (grid-template-rows: subgrid) {
  @media (min-width: 700px) {
    .kx-da-v3 .entry-content .kx-v3-mosaique:not(:has(> :not(.kx-v3-tuile--sobre), > li > p ~ p ~ p)) { row-gap: 0; margin-bottom: -1.25rem; }
    .kx-da-v3 .entry-content .kx-v3-mosaique:not(:has(> :not(.kx-v3-tuile--sobre), > li > p ~ p ~ p)) > .kx-v3-tuile { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: subgrid; grid-row: span 8; row-gap: 0; margin-bottom: 1.25rem; }
    .kx-v3-mosaique:not(:has(> :not(.kx-v3-tuile--sobre), > li > p ~ p ~ p)) > .kx-v3-tuile > :not(.kx-v3-tuile__plus) { grid-column: 1; }
    .kx-v3-mosaique:not(:has(> :not(.kx-v3-tuile--sobre), > li > p ~ p ~ p)) > .kx-v3-tuile > :is(.kx-v3-tuile__photo, .kx-v3-tuile__scene) { grid-row: 1; }
    .kx-v3-mosaique:not(:has(> :not(.kx-v3-tuile--sobre), > li > p ~ p ~ p)) > .kx-v3-tuile > .kx-v3-tuile__type { grid-row: 2; justify-self: start; }
    .kx-v3-mosaique:not(:has(> :not(.kx-v3-tuile--sobre), > li > p ~ p ~ p)) > .kx-v3-tuile > .kx-v3-tuile__titre { grid-row: 3; }
    .kx-v3-mosaique:not(:has(> :not(.kx-v3-tuile--sobre), > li > p ~ p ~ p)) > .kx-v3-tuile > p { grid-row: 4; }
    .kx-v3-mosaique:not(:has(> :not(.kx-v3-tuile--sobre), > li > p ~ p ~ p)) > .kx-v3-tuile > p ~ p { grid-row: 5; }
    /* une carte sans liste : son texte occupe aussi les rangees de la liste des voisines (sans cela, un texte
       long chez elle creusait un blanc entre le texte et la liste des autres) */
    .kx-v3-mosaique:not(:has(> :not(.kx-v3-tuile--sobre), > li > p ~ p ~ p)) > .kx-v3-tuile:not(:has(> ul, > dl)) > p:not(:has(~ p)) { grid-row-end: 8; }
    .kx-v3-mosaique:not(:has(> :not(.kx-v3-tuile--sobre), > li > p ~ p ~ p)) > .kx-v3-tuile > ul { grid-row: 6; }
    /* une carte sans texte : sa liste part sous le titre, dans les rangees du texte des voisines */
    .kx-v3-mosaique:not(:has(> :not(.kx-v3-tuile--sobre), > li > p ~ p ~ p)) > .kx-v3-tuile:not(:has(> p)) > ul { grid-row: 4 / 7; }
    .kx-v3-mosaique:not(:has(> :not(.kx-v3-tuile--sobre), > li > p ~ p ~ p)) > .kx-v3-tuile > dl { grid-row: 7; }
    .kx-v3-mosaique:not(:has(> :not(.kx-v3-tuile--sobre), > li > p ~ p ~ p)) > .kx-v3-tuile > .kx-v3-tuile__voir { grid-row: 8; align-self: end; }
  }
}

/* --- 18. Carte a deplier : son lien du bas reste dans le fil de la carte et laisse la place du « plus »
   (pose en absolu, un lien long passait sous le bouton). Il peut tenir sur deux lignes ; sa fleche suit le
   dernier mot. */
/* (la carte garde sa marge basse : son lien reste a la hauteur de celui des voisines sans « plus » ; c'est le
   bouton qui remonte d'un cran pour se centrer sur la ligne du lien) */
.kx-js [data-kx-plis] > .kx-v3-tuile:has(> .kx-v3-tuile__plus):has(> .kx-v3-tuile__voir) { padding-bottom: 1.5rem; }
.kx-da-v3 .kx-v3-tuile:has(> .kx-v3-tuile__voir) > .kx-v3-tuile__plus { bottom: 1.3rem; }
.kx-js [data-kx-plis] > .kx-v3-tuile:has(> .kx-v3-tuile__plus) > .kx-v3-tuile__voir { position: static; display: block; margin: auto 0 0; padding: 1rem 2.75rem 0 0; text-wrap: balance; }
.kx-js [data-kx-plis] > .kx-v3-tuile--sobre:has(> .kx-v3-tuile__plus) > .kx-v3-tuile__voir { margin-left: .5rem; }
.kx-js [data-kx-plis] > .kx-v3-tuile:has(> .kx-v3-tuile__plus) > .kx-v3-tuile__voir svg { display: inline-block; margin-left: .25rem; vertical-align: -0.125em; }
/* ==========================================================================
   14. Largeurs (03/10). Thomas : « fais attention au width de chaque contenu ». Trois regles, mesurees
   par tools/kx_largeurs.py (releve) et tools/kx_largeurs_bilan.py (bilan) :
   1. une seule grille : douze colonnes, 4rem entre elles. Deux blocs cote a cote se partagent en 5 et 7,
      en 7 et 5 ou en 6 et 6 : la colonne de droite part toujours du meme trait, d'un bloc a l'autre ;
   2. une seule mesure pour le texte courant : 38rem, soit 80 signes par ligne au plus (il en comptait
      jusqu'a 100 dans les reponses, les textes deplies, les articles et les pages legales) ;
   3. un titre qui a un texte a cote tient dans sept colonnes ; seul sur sa rangee, dans neuf.
   Ces regles viennent en dernier ; elles ne changent aucun nom de bloc.
   Les largeurs en colonnes (--v3-col5, 7, 9) sont des parts de la colonne de la page : elles ne valent
   que pour un bloc pose directement dans .kx-v3-wrap (ou dans une grille qui a sa largeur).
   ========================================================================== */
body.kx-da-v3 {
  --v3-g: 4rem;
  --v3-col5: calc((100% - 11 * var(--v3-g)) / 12 * 5 + 4 * var(--v3-g));
  --v3-col7: calc((100% - 11 * var(--v3-g)) / 12 * 7 + 6 * var(--v3-g));
  --v3-col9: calc((100% - 11 * var(--v3-g)) / 12 * 9 + 8 * var(--v3-g));
  --v3-mesure: 38rem;
}

/* --- 1. La grille ------------------------------------------------------------------------------------
   En-tete de section et premier ecran : sept colonnes pour le titre, cinq pour le texte ou l'ecran.
   Colonne editoriale et questions : le titre sur cinq colonnes, le corps a partir de la sixieme.
   Moities : 4rem entre les deux. La home suit la meme grille (components/v6/RecitC.tsx). */
@media (min-width: 1024px) {
  .kx-v3-entete { grid-template-columns: var(--v3-col7) minmax(0, 1fr); gap: var(--v3-g); }
  .kx-v3-entete:has(> :only-child) { grid-template-columns: minmax(0, 1fr); }
  .kx-v3-hero__grille, .kx-v3-hero__grille--secteur, .kx-v3-hero__grille--ecran { grid-template-columns: var(--v3-col7) minmax(0, 1fr); gap: var(--v3-g); }
  .kx-v3-edito { grid-template-columns: var(--v3-col5) minmax(0, 1fr); gap: var(--v3-g); }
  .kx-v3-faq { column-gap: var(--v3-g); }
  /* Le titre des questions prend les cinq colonnes avant la liste (il en avait quatre : un titre long y
     passait sur six lignes) */
  .kx-v3-faq > .kx-v3-faq__tete { grid-column: 1 / span 5; }
  .kx-v3-duo, .kx-v3-bande__grille, .kx-v3-entete-photo { gap: var(--v3-g); }
  .kx-v3-matrice { grid-template-columns: var(--v3-col5) minmax(0, 1fr); gap: var(--v3-g); }
  /* Premier ecran sans ecran a droite (pages de Nicolas, la photo est en fond) : la colonne de texte garde
     sa largeur d'avant, au pixel pres (ses titres-phrases y ont ete coupes a la main, et un demi-pixel
     de plus suffit a les faire basculer) ; rien a droite ne s'aligne sur elle */
  .kx-v3-hero__grille:not([class*="--"]) { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); }
  /* Un titre seul sur sa rangee : neuf colonnes (il tenait dans 48rem, sur quatre ou cinq lignes quand il est long) */
  .kx-da-v3 .kx-v3-entete:has(> :only-child) .kx-v3-h2 { max-width: var(--v3-col9); }
  /* Le bloc de texte seul : sept colonnes pour ses cartes et ses lignes a filets ; son texte garde la mesure */
  .kx-v3-wrap > :is(.kx-v3-texte-seul, .kx-v3-intro-suite, .kx-v3-frise__apres) { max-width: var(--v3-col7); }
}
.kx-da-v3 .entry-content :is(.kx-v3-texte-seul, .kx-v3-faq__liste) > .kx-v3-checks,
.kx-v3-faq__liste > .kx-v3-texte-seul { max-width: none; }
/* Dans une colonne de cinq, le texte d'introduction remplit sa colonne (il s'arretait 50 px avant) */
.kx-da-v3 :is(.kx-v3-entete, .kx-v3-entete-photo) .kx-v3-intro, .kx-da-v3 .kx-v3-entete__suite { max-width: var(--v3-mesure); }

/* --- 2. La mesure du texte courant -----------------------------------------------------------------
   Un paragraphe ou une liste a puces ne depasse pas la mesure, quelle que soit la colonne qui le porte.
   Les blocs a filets ou a fond (listes cochees, lignes a deplier, cartes, tableaux, figures) gardent la
   largeur de leur colonne : seul le texte se resserre. */
.kx-da-v3 .entry-content :is(.kx-v3-edito__corps, .kx-v3-texte-seul, .kx-v3-points__corps, .kx-v3-points__avant, .kx-v3-points__apres, .kx-v3-replie, .kx-v3-frise__apres, .kx-v3-vue__texte, .kx-v3-duo__texte, .kx-v3-legal__texte, .kx-v3-intro-suite, details)
  > :is(p:not(.kx-v3-h2, .kx-v3-h3, .kx-v3-dit, .kx-v3-replie__action), .kx-v3-puces, ul:not([class]), ol:not([class])) { max-width: var(--v3-mesure); }
.kx-da-v3 .entry-content :is(.kx-v3-chiffre p, .kx-v3-citation blockquote, .kx-v3-temps > li > p) { max-width: var(--v3-mesure); }
/* Une citation se lit en lignes egales : resserree a la mesure, sa derniere ligne restait parfois sur deux mots */
.kx-da-v3 .entry-content .kx-v3-citation blockquote { text-wrap: balance; }
.kx-da-v3 .entry-content .kx-v3-faq__liste details p { max-width: var(--v3-mesure); padding-right: 0; }
.kx-da-v3 .kx-v3-hero .kx-v3-intro, .kx-da-v3 .kx-v3-hero .kx-v3-replie > p, .kx-da-v3 .kx-v3-accroche, .kx-da-v3 .kx3s-entete .kx-v3-intro,
.kx-da-v3 .kx-v3-blog-hero .kx-v3-intro { max-width: var(--v3-mesure); }
/* Petit texte dans une carte large (15 px) : meme nombre de signes par ligne */
.kx-da-v3 .entry-content :is(.kx-v3-sous__item, .kx-v3-tuile) > :is(p:not([class]), ul:not([class]), .kx-v3-carte__liste) { max-width: 34rem; }
/* Une section qui ne porte qu'un paragraphe : il se lit comme une phrase d'appui, en plus grand, sur
   sept colonnes (il etait en petit corps, a gauche, seul dans sa bande) */
.kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-texte-seul:only-child > p:only-child { max-width: none; font-size: clamp(1.1875rem, 1.6vw, 1.4375rem); line-height: 1.5; color: var(--v3-ink); text-wrap: pretty; }

/* Des cartes dans une colonne de cinq (a cote d'un ecran) : une par rangee ; a deux, leur texte tenait
   sur 200 px, jusqu'a quatorze lignes de vingt-cinq signes */
@media (min-width: 1024px) { .kx-da-v3 .entry-content .kx-v3-vue__texte > .kx-v3-sous { grid-template-columns: minmax(0, 1fr); } }
/* Sur un petit portable (1 024 a 1 279 px), la colonne de sept fait 515 a 650 px : ses cartes et ses
   definitions passent une par rangee (a deux, 200 px de texte chacune) */
@media (min-width: 1024px) and (max-width: 1279.98px) {
  .kx-da-v3 .entry-content .kx-v3-edito__corps .kx-v3-sous { grid-template-columns: minmax(0, 1fr); }
  .kx-da-v3 .entry-content .kx-v3-edito__corps .kx-v3-defs { columns: auto; }
}
/* Un schema en etapes dans la colonne des questions : en lignes, comme dans un article (cinq cartes de
   front n'y laissaient que 108 px a leur texte) */
.kx-da-v3 .entry-content .kx-v3-faq__liste .kx-v3-pas { grid-template-columns: minmax(0, 1fr); gap: .5rem; }
.kx-v3-faq__liste .kx-v3-pas > li { flex-direction: row; align-items: center; gap: 1rem; padding: .75rem 1rem; }
.kx-v3-faq__liste .kx-v3-pas > li + li::before { display: none; }
.kx-v3-faq__liste .kx-v3-pas > li b { flex: none; }
.kx-v3-faq__liste .kx-v3-pas li em { margin-left: auto; white-space: nowrap; }

/* Sur telephone, un schema en etapes se lit en lignes (le numero a gauche, le texte a droite) : a deux
   cartes de front, le nom d'une etape tenait sur 140 px, six lignes de quatorze signes */
@media (max-width: 639.98px) {
  .kx-da-v3 .entry-content .kx-v3-pas-bloc:not(.kx-v3-pas-bloc--parcours) .kx-v3-pas { grid-template-columns: minmax(0, 1fr); gap: .5rem; }
  .kx-v3-pas-bloc:not(.kx-v3-pas-bloc--parcours) .kx-v3-pas > li { display: grid; grid-template-columns: 2.25rem minmax(0, 1fr); column-gap: 1rem; row-gap: 0; align-items: center; padding: .875rem 1rem; }
  .kx-v3-pas-bloc:not(.kx-v3-pas-bloc--parcours) .kx-v3-pas > li > b { grid-row: 1 / span 4; }
  .kx-v3-pas-bloc:not(.kx-v3-pas-bloc--parcours) .kx-v3-pas > li > :not(b) { grid-column: 2; justify-self: start; }
  .kx-v3-pas-bloc:not(.kx-v3-pas-bloc--parcours) .kx-v3-pas > li > :not(b) + :not(b) { margin-top: .25rem; }
}

/* L'article : la colonne de lecture au centre de la page, sous le titre et la couverture (elle etait
   decalee de 16 px), et resserree de 46 a 42rem : 80 signes par ligne en corps 18 */
@media (min-width: 1024px) { .kx-v3-art__grille { grid-template-columns: 13rem minmax(0, 42rem); } }
@media (min-width: 1280px) {
  .kx-v3-art__grille { grid-template-columns: minmax(0, 1fr) minmax(0, 42rem) minmax(0, 1fr); justify-content: normal; column-gap: 3rem; }
  .kx-v3-art__sommaire { max-width: 13rem; }
  .kx-v3-art__rail { width: 100%; max-width: 15rem; justify-self: end; }
}

/* --- 3. Listes cochees en lignes : une ligne qui porte un mot en gras ne se casse plus ----------------
   La ligne etait une grille (pastille, texte) : un mot en gras et la suite du texte y devenaient deux
   cases, et la suite tombait dans la colonne de la pastille, une lettre par ligne. La pastille est posee
   a part ; le texte reste un seul bloc. */
:is(.kx-v3-vue__texte, .kx-v3-edito__corps, .kx-v3-duo__texte, .kx-v3-texte-seul) > .kx-v3-checks li,
.kx-v3-art__corps .kx-v3-checks li { display: block; position: relative; box-sizing: border-box; min-height: 4rem; padding-left: 3.25rem; align-content: center; }
:is(.kx-v3-vue__texte, .kx-v3-edito__corps, .kx-v3-duo__texte, .kx-v3-texte-seul) > .kx-v3-checks li::before,
.kx-v3-art__corps .kx-v3-checks li::before { position: absolute; left: 0; top: 50%; margin-top: -1.125rem; }
/* ==========================================================================
   15. Derniere repasse (03/10, Thomas : « ameliore encore les pages et les blogs, fais une derniere
       repasse ») : ce que les releves et les captures a 1 024, 1 440 et 390 px ont encore trouve.
   ========================================================================== */

/* La reassurance (« 60 minutes avec un dirigeant de Korbyx | Sur vos chiffres | Offert, sans engagement ») :
   quand elle passe a la ligne, la ligne suivante ne commence plus par un filet, a toutes les largeurs (la
   liste est decalee d'un cran et rognee de ce cran, comme sur telephone). A 1 024 px, dans le premier ecran,
   « | Offert, sans engagement » ouvrait la deuxieme ligne. La liste centree de l'appel final garde sa regle. */
.kx-da-v3 .entry-content .kx-v3-reassurance { margin-left: calc(-1rem - 1px); clip-path: inset(0 0 0 calc(1rem + 1px)); }
.kx-v3-reassurance li, .kx-v3-reassurance li:first-child { padding: 0 1rem; border-left-width: 1px; border-left-style: solid; white-space: nowrap; }
@media (min-width: 1024px) {
  .kx-da-v3 .entry-content .kx-v3-fin .kx-v3-reassurance { margin-left: 0; clip-path: none; }
  .kx-v3-fin .kx-v3-reassurance li:first-child { padding-left: 0; border-left: 0; }
}

/* L'appel du milieu de page, sur ordinateur : sa reassurance tenait sur une ligne qui sortait du voile (sur
   /tarifs/ a 1 024 px, « Offert, sans engagement » en blanc sur la chemise blanche de la photo ; a 1 280 px,
   1,7 de contraste sur vingt pages). Elle passe a la ligne dans la colonne du texte (30rem), et le voile est
   cale sur cette colonne a toutes les largeurs, au lieu d'un pourcentage de la photo : fonce sous le texte,
   il s'efface ensuite sur 18rem. (Le bord droit de la colonne : 3rem + 30rem, puis centre au-dela de 94rem.) */
@media (min-width: 1024px) {
  .kx-da-v3 .entry-content .kx-v3-appel__corps .kx-v3-reassurance { flex-wrap: wrap; width: auto; white-space: normal; }
  .kx-v3-appel__scene::before { background: linear-gradient(90deg, rgba(18, 1, 45, 0.92) 0, rgba(18, 1, 45, 0.8) max(33rem, 50% - 14rem), rgba(18, 1, 45, 0) calc(max(33rem, 50% - 14rem) + 18rem)); }
}

/* La mention « Donnees d'illustration » sous un ecran pose sur une photo : sur une photo claire, elle tombait a
   2,5 de contraste (/cas-usage/ia-prospection-commerciale/ ; 4,2 sur l'ecran au camion des pages d'agence a
   1 280 px). Quand l'ecran porte sa mention, le voile du bas fonce davantage, la ou elle se lit. */
.kx-v3-ecran:has(> figcaption)::before { background: linear-gradient(180deg, rgba(18, 1, 45, 0.22) 45%, rgba(18, 1, 45, 0.85) 85%); }

/* La mention du module « plateforme » (ecrans qui defilent sur les photos) : sa pastille a 55 % laissait passer
   une photo claire (4,2 de contraste sur l'ecran au camion, pages d'agence). Pastille plus opaque. */
.kx-da-v3 .kx-v3-pf__mention { background: rgba(18, 1, 45, 0.78); }

/* ==========================================================================
   Retours de Thomas sur les pages (03/10, apres-midi), bloc par bloc
   ========================================================================== */

/* Les liens rapides : « il faut une harmonie des mises en forme (que 1/3) ». Toutes les cartes ont la meme
   largeur, un tiers sur ordinateur, une moitie sur tablette ; la derniere rangee reste incomplete plutot que
   d'etirer ses cartes. */
@media (min-width: 640px) {
  .kx-da-v3 .entry-content .kx-v3-liens > li { grid-column: auto !important; }
}
@media (min-width: 1024px) {
  .kx-da-v3 .entry-content .kx-v3-liens { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Un texte seul qui suit une grille de cartes et porte un intertitre (« le texte est pose tout seul comme
   ca », /tarifs/) : il se pose sur les colonnes editoriales de la page, l'intertitre a gauche, le texte a
   droite, comme les en-tetes de section ; le paragraphe qui precede l'intertitre va dans la colonne du texte. */
@media (min-width: 1024px) {
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:not(:only-child):has(> :is(h2, h3, .kx-v3-h3)) {
    display: grid; grid-template-columns: var(--v3-col5) minmax(0, 1fr); column-gap: var(--v3-g); align-items: start; max-width: none;
  }
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:not(:only-child):has(> :is(h2, h3, .kx-v3-h3)) > * { grid-column: 2; }
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:not(:only-child):has(> :is(h2, h3, .kx-v3-h3)) > :is(h2, h3, .kx-v3-h3) { grid-column: 1; margin-top: 2.5rem !important; }
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:not(:only-child):has(> :is(h2, h3, .kx-v3-h3)) > :is(h2, h3, .kx-v3-h3):first-child { margin-top: 0 !important; }
  /* le texte qui suit l'intertitre part de la meme hauteur que lui */
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:not(:only-child):has(> :is(h2, h3, .kx-v3-h3)) > :is(h2, h3, .kx-v3-h3):not(:first-child) + * { margin-top: 2.5rem !important; }
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:not(:only-child):has(> :is(h2, h3, .kx-v3-h3)) > :is(h2, h3, .kx-v3-h3):first-child + * { margin-top: 0 !important; }
  /* (03/10) le paragraphe qui precede l'intertitre conclut la grille du dessus : il se pose sous elle, a gauche,
     plutot que seul dans la colonne de droite */
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:not(:only-child):has(> :is(h2, h3, .kx-v3-h3)) > :not(h2, h3, .kx-v3-h3):not(:is(h2, h3, .kx-v3-h3) ~ *) { grid-column: 1 / -1; max-width: var(--v3-mesure); }
}

/* Les cartes a intertitre d'une derniere rangee elargie (deux cartes sur la largeur de trois) : le texte prend la
   largeur de sa carte, au lieu de s'arreter aux deux tiers (34rem) en laissant un vide a droite. */
.kx-da-v3 .entry-content .kx-v3-sous__item > :is(p:not([class]), ul:not([class]), .kx-v3-carte__liste) { max-width: none; }

/* Deux colonnes face a face, la droite bien plus haute que la gauche (« la mise en page est pauvre », le titre
   flottait au milieu d'un grand vide) : la colonne de gauche se cale en haut et reste visible pendant la
   lecture. La mesure est faite par korbyx-v3-modules.js (classe --long) ; sans script, rien ne change. */
@media (min-width: 1024px) {
  .kx-da-v3 .entry-content .kx-v3-edito.kx-v3-edito--long { align-items: start; }
  .kx-da-v3 .entry-content .kx-v3-edito.kx-v3-edito--long > .kx-v3-edito__tete { position: sticky; top: 7.5rem; }
}

/* Les questions (« la liste des questions reponses ne convient pas du tout ») : une liste plus calme. Questions
   en 17 px (19 avant), l'ouverture d'une question ne change plus sa couleur, le signe plus est gris et fin, la
   reponse prend la largeur de la colonne ; la colonne de gauche reste visible pendant la lecture. */
.kx-da-v3 .kx-v3-faq__liste summary { padding: 1.125rem 0; font-size: 1.0625rem; line-height: 1.4; }
.kx-da-v3 .kx-v3-faq__liste summary:hover { color: var(--v3-ink); }
.kx-v3-faq__liste summary > span { width: 1rem; height: 1rem; }
.kx-v3-faq__liste summary > span::before, .kx-v3-faq__liste summary > span::after,
.kx-v3-faq__liste details[open] summary > span::before, .kx-v3-faq__liste details[open] summary > span::after { width: .875rem; height: 1.5px; margin: -.75px 0 0 -.4375rem; background: var(--v3-ink-50); }
.kx-v3-faq__liste summary:hover > span::before, .kx-v3-faq__liste summary:hover > span::after { background: var(--v3-violet); }
.kx-da-v3 .entry-content .kx-v3-faq__liste details p { max-width: 46rem; margin-top: -.125rem; padding-bottom: 1.25rem; }
@media (min-width: 1024px) {
  .kx-da-v3 .entry-content .kx-v3-faq > .kx-v3-faq__tete { position: sticky; top: 7.5rem; align-self: start; }
}

/* Un chiffre cle trop long pour son grand format (« 55 %, dont 17 % regulierement ») : la variante longue
   l'emporte aussi dans une colonne de texte, et un mot ne se coupe jamais en son milieu. */
.kx-da-v3 .entry-content .kx-v3-chiffre .kx-v3-chiffre__nombre--long { max-width: 18rem; font-size: clamp(1.5rem, 2.1vw, 2rem); line-height: 1.15; letter-spacing: -0.03em; white-space: normal; overflow-wrap: normal; word-break: normal; hyphens: manual; }

/* Le dossier (« dans ce type de contenu, la mise en forme est lourde ») : moins de violet et moins de gras.
   Le repere au-dessus de chaque ligne passe en gris, le titre de la ligne garde sa couleur au survol, le signe
   plus devient gris et fin ; dans le texte, les passages mis en avant perdent leur gras appuye. */
.kx-da-v3 .kx-v3-points--titres summary .kx-v3-h3__repere { color: var(--v3-ink-50); font-weight: 400; }
.kx-da-v3 .kx-v3-points--titres summary :is(h2, h3, .kx-v3-h3) { font-size: clamp(1.125rem, 1.35vw, 1.25rem); }
.kx-da-v3 .kx-v3-points summary:hover { color: var(--v3-ink); }
.kx-v3-points summary > span::before, .kx-v3-points summary > span::after { background: var(--v3-ink-50); }
.kx-v3-points summary:hover > span::before, .kx-v3-points summary:hover > span::after { background: var(--v3-violet); }
.kx-da-v3 :is(.kx-v3-points__corps, .kx-v3-points__apres, .kx-v3-edito__tete) strong.kx-v3-surligne,
.kx-da-v3 .kx-v3-points__corps > p strong, .kx-da-v3 .kx-v3-points__apres p strong { font-weight: 500; }

/* La colonne de gauche d'un bloc long porte aussi le chapeau du bloc, quand il n'avait que son titre : le
   premier paragraphe de la colonne de droite y remonte (korbyx-v3-modules.js), sous le titre. */
.kx-da-v3 .entry-content .kx-v3-edito__tete > .kx-v3-edito__chapeau { max-width: var(--v3-mesure); margin: 1.5rem 0 0; font-size: 1.0625rem; line-height: 1.7; color: var(--v3-ink-70); }
.kx-da-v3 .entry-content .kx-v3-section--encre .kx-v3-edito__tete > .kx-v3-edito__chapeau { color: rgba(248, 248, 255, 0.8); }

/* Les liens rapides sans leur etiquette : « Cas d'usage », « Service », « Plateforme »… revenaient jusqu'a cinq
   fois dans un meme bloc (« des wordings repetitifs »). Le titre suffit, centre dans sa carte. */
.kx-da-v3 .entry-content .kx-v3-liens small { display: none; }
.kx-da-v3 .entry-content .kx-v3-liens a { justify-content: center; min-height: 4.5rem; }
/* ==========================================================================
   16. Citations et chiffres poses seuls (04/10). Thomas : « la citation en bas est mal calee. Elle est
   boxee » ; « idem sur le bandeau des 15 % » ; « idem ici pour la citation de Theo » ; « check toutes les
   pages ». Une citation ou un chiffre seul dans la colonne de lecture (sept colonnes, a gauche) laissait
   la moitie droite vide sous un tableau ou une bande de cartes ; un chiffre en pleine largeur bridait son
   texte a la mesure et son encadre restait vide sur un tiers. Ils se posent sur la grille editoriale des
   pages, celle des en-tetes et des blocs de texte : le nom ou le chiffre dans les cinq colonnes de
   gauche, le texte dans les sept de droite. Un chiffre qui accompagne un texte se met en face de lui.
   (22 blocs sur 14 pages ; les citations et chiffres des colonnes d'edito, des dossiers, des vues et des
   articles sont deja dans une colonne et ne changent pas.)
   ========================================================================== */
@media (min-width: 1024px) {
  /* a. Citation seule, chiffre seul (avec leurs liens) : la grille 5 | 7 */
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:has(> :is(.kx-v3-citation, .kx-v3-chiffre)):not(:has(> :not(.kx-v3-citation, .kx-v3-chiffre, .kx-v3-liens-texte))),
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite:not(.kx-v3-texte-seul):has(> .kx-v3-chiffre:only-child) {
    display: grid; grid-template-columns: var(--v3-col5) minmax(0, 1fr); column-gap: var(--v3-g); max-width: none;
  }
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:not(:has(> :not(.kx-v3-citation, .kx-v3-chiffre, .kx-v3-liens-texte))) > .kx-v3-liens-texte {
    grid-column: 2; margin-top: 1.75rem;
  }

  /* b. La citation : le nom en face de la premiere ligne, a gauche ; la citation a droite, plus grande ;
     un filet au-dessus, comme les grandes citations ; plus de trait vertical. Meme dessin pour une
     citation dans un bloc a intertitres (l'intertitre a gauche, le texte a droite), avant ou apres eux. */
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:not(:has(> :not(.kx-v3-citation, .kx-v3-chiffre, .kx-v3-liens-texte))) > .kx-v3-citation,
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:not(:only-child):has(> :is(h2, h3, .kx-v3-h3)) > .kx-v3-citation {
    grid-column: 1 / -1; display: grid; grid-template-columns: subgrid; align-items: start; max-width: none;
    margin: 3rem 0 0; padding: 2.25rem 0 0; border-left: 0; border-top: 1px solid rgba(18, 1, 45, 0.12);
  }
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:not(:has(> :not(.kx-v3-citation, .kx-v3-chiffre, .kx-v3-liens-texte))) > .kx-v3-citation:first-child,
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:not(:only-child):has(> :is(h2, h3, .kx-v3-h3)) > .kx-v3-citation:first-child { margin-top: 0.5rem; }
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:not(:has(> :not(.kx-v3-citation, .kx-v3-chiffre, .kx-v3-liens-texte))) > .kx-v3-citation blockquote,
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:not(:only-child):has(> :is(h2, h3, .kx-v3-h3)) > .kx-v3-citation blockquote {
    grid-column: 2; grid-row: 1; max-width: 46rem;
    font-size: clamp(1.25rem, 1.6vw, 1.5rem); line-height: 1.45; letter-spacing: -0.015em;
  }
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:not(:has(> :not(.kx-v3-citation, .kx-v3-chiffre, .kx-v3-liens-texte))) > .kx-v3-citation figcaption,
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:not(:only-child):has(> :is(h2, h3, .kx-v3-h3)) > .kx-v3-citation figcaption {
    grid-column: 1; grid-row: 1; margin: 0.2rem 0 0; font-size: 1rem;
  }
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:not(:has(> :not(.kx-v3-citation, .kx-v3-chiffre, .kx-v3-liens-texte))) > .kx-v3-citation figcaption img,
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:not(:only-child):has(> :is(h2, h3, .kx-v3-h3)) > .kx-v3-citation figcaption img {
    width: 3.5rem; height: 3.5rem;
  }

  /* c. Le chiffre seul : un bandeau sur la meme grille, le nombre a gauche, son texte a droite, sur toute
     la colonne (il s'arretait a la mesure, un tiers de l'encadre restait vide) */
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:not(:has(> :not(.kx-v3-citation, .kx-v3-chiffre, .kx-v3-liens-texte))) > .kx-v3-chiffre,
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite:not(.kx-v3-texte-seul) > .kx-v3-chiffre:only-child {
    grid-column: 1 / -1; grid-template-columns: subgrid; column-gap: var(--v3-g); padding: 2.5rem 3rem;
  }
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:not(:has(> :not(.kx-v3-citation, .kx-v3-chiffre, .kx-v3-liens-texte))) > .kx-v3-chiffre p,
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite:not(.kx-v3-texte-seul) > .kx-v3-chiffre:only-child p { max-width: 46rem; }
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:not(:has(> :not(.kx-v3-citation, .kx-v3-chiffre, .kx-v3-liens-texte))) > .kx-v3-chiffre .kx-v3-chiffre__nombre:not(.kx-v3-chiffre__nombre--long),
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite:not(.kx-v3-texte-seul) > .kx-v3-chiffre:only-child .kx-v3-chiffre__nombre:not(.kx-v3-chiffre__nombre--long) { font-size: clamp(3rem, 5vw, 4.75rem); }

  /* c bis. La grande citation sans portrait (À propos, 04/10 : « la largeur de la citation n'est pas sur toute
     la zone ») : la colonne du portrait restait reservee et vide ; la citation prend tout l'encadre */
  .kx-da-v3 .entry-content .kx-v3-fondateur--seule { grid-template-columns: minmax(0, 1fr); }
  .kx-da-v3 .entry-content .kx-v3-fondateur--seule blockquote { padding-right: 3.5rem; max-width: none; font-size: clamp(1.75rem, 2.45vw, 2.75rem); text-wrap: pretty; }
  .kx-da-v3 .entry-content .kx-v3-fondateur--seule figcaption { margin-right: 3.5rem; }

  /* c ter. Une carte a intertitre qui prend toute la rangee (seule, ou derniere d'un nombre impair) : sa liste
     passe sur deux colonnes et remplit la carte (elle en laissait la moitie, voire les deux tiers, vides).
     Memes conditions que la regle qui etire la carte (section 14, rangees de cartes). */
  .kx-da-v3 .entry-content .kx-v3-sous:not(.kx-v3-sous--3) > .kx-v3-sous__item:nth-child(odd):last-child > :is(ul, ol) { columns: 2; column-gap: 2.5rem; }
  .kx-da-v3 .entry-content .kx-v3-sous:not(.kx-v3-sous--3) > .kx-v3-sous__item:nth-child(odd):last-child > :is(ul, ol) > li { break-inside: avoid; }

  /* d. Le chiffre qui accompagne un texte (sans intertitre ni citation) : en face de lui, sur cinq
     colonnes, du cote ou il vient dans la lecture (avant le texte : a gauche ; apres : a droite) */
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:has(> .kx-v3-chiffre):has(> :is(p:not(.kx-v3-liens-texte), .kx-v3-replie, ul, ol)):not(:has(> :is(h2, h3, .kx-v3-h3, .kx-v3-citation, .kx-v3-chiffre ~ .kx-v3-chiffre))) {
    display: grid; column-gap: var(--v3-g); align-items: start; max-width: none;
  }
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:has(> .kx-v3-chiffre:first-child):has(> :is(p:not(.kx-v3-liens-texte), .kx-v3-replie, ul, ol)):not(:has(> :is(h2, h3, .kx-v3-h3, .kx-v3-citation, .kx-v3-chiffre ~ .kx-v3-chiffre))) {
    grid-template-columns: var(--v3-col5) minmax(0, 1fr);
  }
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:has(> .kx-v3-chiffre:first-child):has(> :is(p:not(.kx-v3-liens-texte), .kx-v3-replie, ul, ol)):not(:has(> :is(h2, h3, .kx-v3-h3, .kx-v3-citation, .kx-v3-chiffre ~ .kx-v3-chiffre))) > * { grid-column: 2; }
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:has(> .kx-v3-chiffre:first-child):has(> :is(p:not(.kx-v3-liens-texte), .kx-v3-replie, ul, ol)):not(:has(> :is(h2, h3, .kx-v3-h3, .kx-v3-citation, .kx-v3-chiffre ~ .kx-v3-chiffre))) > .kx-v3-chiffre { grid-column: 1; grid-row: 1 / span 30; }
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:has(> .kx-v3-chiffre:not(:first-child)):has(> :is(p:not(.kx-v3-liens-texte), .kx-v3-replie, ul, ol)):not(:has(> :is(h2, h3, .kx-v3-h3, .kx-v3-citation, .kx-v3-chiffre ~ .kx-v3-chiffre))) {
    grid-template-columns: minmax(0, 1fr) var(--v3-col5);
  }
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:has(> .kx-v3-chiffre:not(:first-child)):has(> :is(p:not(.kx-v3-liens-texte), .kx-v3-replie, ul, ol)):not(:has(> :is(h2, h3, .kx-v3-h3, .kx-v3-citation, .kx-v3-chiffre ~ .kx-v3-chiffre))) > * { grid-column: 1; }
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:has(> .kx-v3-chiffre:not(:first-child)):has(> :is(p:not(.kx-v3-liens-texte), .kx-v3-replie, ul, ol)):not(:has(> :is(h2, h3, .kx-v3-h3, .kx-v3-citation, .kx-v3-chiffre ~ .kx-v3-chiffre))) > .kx-v3-chiffre { grid-column: 2; grid-row: 1 / span 30; }
  /* (le texte part de la meme hauteur que l'encadre : son premier element perd sa marge haute) */
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:has(> .kx-v3-chiffre:first-child):has(> :is(p:not(.kx-v3-liens-texte), .kx-v3-replie, ul, ol)):not(:has(> :is(h2, h3, .kx-v3-h3, .kx-v3-citation, .kx-v3-chiffre ~ .kx-v3-chiffre))) > .kx-v3-chiffre:first-child + *,
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:has(> .kx-v3-chiffre:not(:first-child)):has(> :is(p:not(.kx-v3-liens-texte), .kx-v3-replie, ul, ol)):not(:has(> :is(h2, h3, .kx-v3-h3, .kx-v3-citation, .kx-v3-chiffre ~ .kx-v3-chiffre))) > :first-child { margin-top: 0; }
  /* (dans cinq colonnes, le chiffre passe au-dessus de son texte, comme dans les vues) */
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:has(> :is(p:not(.kx-v3-liens-texte), .kx-v3-replie, ul, ol)):not(:has(> :is(h2, h3, .kx-v3-h3, .kx-v3-citation, .kx-v3-chiffre ~ .kx-v3-chiffre))) > .kx-v3-chiffre {
    grid-template-columns: minmax(0, 1fr); gap: 0.75rem; margin: 0; padding: 2rem;
  }
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:has(> :is(p:not(.kx-v3-liens-texte), .kx-v3-replie, ul, ol)):not(:has(> :is(h2, h3, .kx-v3-h3, .kx-v3-citation, .kx-v3-chiffre ~ .kx-v3-chiffre))) > .kx-v3-chiffre .kx-v3-chiffre__nombre:not(.kx-v3-chiffre__nombre--long) {
    font-size: clamp(2.25rem, 3.2vw, 3rem); white-space: normal;
  }
}

/* e. La derniere carte d'une mosaique, seule sur sa rangee entre 700 et 1 099 px (04/10) : elle prenait toute la
   rangee, son illustration grossissait jusqu'a 700 px de haut et son texte restait sur la moitie gauche. Elle
   se couche : l'illustration a gauche, le texte a droite. */
@media (min-width: 700px) and (max-width: 1099.98px) {
  .kx-da-v3 .entry-content .kx-v3-mosaique > .kx-v3-tuile:nth-child(odd):last-child:not(:first-child) {
    display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important; grid-template-rows: none !important;
    grid-auto-rows: auto; grid-row: auto !important; column-gap: 2rem; row-gap: .5rem; align-content: center; --kx-photo: 4 / 3;
  }
  .kx-da-v3 .entry-content .kx-v3-mosaique > .kx-v3-tuile:nth-child(odd):last-child:not(:first-child) > :is(.kx-v3-tuile__photo, .kx-v3-tuile__scene) {
    grid-column: 1 !important; grid-row: 1 / span 6 !important; align-self: center; margin: 0 !important; min-height: 0;
  }
  .kx-da-v3 .entry-content .kx-v3-mosaique > .kx-v3-tuile:nth-child(odd):last-child:not(:first-child) > :not(.kx-v3-tuile__photo, .kx-v3-tuile__scene, .kx-v3-tuile__plus) {
    grid-column: 2 !important; grid-row: auto !important;
  }
}
/* ==========================================================================
   17. Telephone : les boutons fixes ne se chevauchent plus (04/10). Thomas : « sur mobile, tout est ok ? ».
   En bas des pages, le bouton rond « haut de page » se posait sur la barre « Reserver mon diagnostic » ; et
   menu ouvert, la barre restait affichee sous le bouton du menu (deux fois le meme appel a l'ecran).
   ========================================================================== */
@media (max-width: 1023px) {
  /* le bouton « haut de page » remonte au-dessus de la barre quand elle est affichee */
  body:has(.kx-v3-cta-mobile.is-visible) #ast-scroll-top { bottom: calc(6.75rem + env(safe-area-inset-bottom, 0px)) !important; }
  /* (en fin de page, les derniers liens du pied de page passent au-dessus de ce bouton : 7,5rem pour la barre,
     3rem de plus pour le bouton) */
  body.kx-a-cta-mobile .kx3f { padding-bottom: 10.5rem; }
  /* menu ouvert : la barre s'efface (le menu porte deja le bouton de rendez-vous) */
  body:has(.kx3h-burger[aria-expanded="true"]) .kx-v3-cta-mobile.is-visible { transform: translateY(100%); }
}
/* ==========================================================================
   18. Telephone : les grilles de cartes se font glisser (04/10). Thomas : « sur mobile, il faut optimiser
   certains blocs pour les passer en slide ». Releve a 390 px sur les 203 pages : les cartes empilees une par
   rangee faisaient l'essentiel de la longueur des pages (mosaiques de cartes a photo : 129 piles, 2 400 px en
   moyenne ; cartes par quatre : 96 piles ; frises, cartes a intertitre, pictos, prix). En dessous de 768 px,
   la ou ces grilles passent sur une colonne, elles deviennent une bande : une carte sur 82 % de la largeur,
   la suivante qui depasse, un arret net sur chaque carte ; des points sous la bande disent ou l'on en est
   (korbyx-v3-modules.js). Le bandeau defilant existant (.kx-v3-rail) garde son dessin.
   ========================================================================== */
@media (max-width: 767px) {
  .kx-da-v3 .entry-content :is(.kx-v3-mosaique, .kx-v3-cartes, .kx-v3-frise, .kx-v3-sous, .kx-v3-pictos, .kx-v3-prix):not(.kx-v3-rail, .kx-v3-pile) {
    display: flex !important; flex-wrap: nowrap !important; align-items: stretch; gap: .75rem !important;
    overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; scroll-snap-type: x mandatory;
    scroll-padding-inline: var(--v3-gouttiere); scrollbar-width: none;
    margin-left: calc(var(--v3-gouttiere) * -1) !important; margin-right: calc(var(--v3-gouttiere) * -1) !important;
    padding: .25rem var(--v3-gouttiere) .5rem !important; max-width: none !important;
    /* (sa largeur ne vient pas de ses cartes : dans une colonne d'edito, la grille s'elargissait a la somme des
       cartes et la page debordait sur le cote) */
    contain: inline-size;
    /* (et elle tient ses elements places en absolu, comme les textes reserves aux lecteurs d'ecran : sans
       cela ils sortaient de la bande et elargissaient la page) */
    position: relative;
  }
  .kx-da-v3 .entry-content :is(.kx-v3-mosaique, .kx-v3-cartes, .kx-v3-frise, .kx-v3-sous, .kx-v3-pictos, .kx-v3-prix):not(.kx-v3-rail, .kx-v3-pile)::-webkit-scrollbar { display: none; }
  .kx-da-v3 .entry-content :is(.kx-v3-mosaique, .kx-v3-cartes, .kx-v3-frise, .kx-v3-sous, .kx-v3-pictos, .kx-v3-prix):not(.kx-v3-rail, .kx-v3-pile) > * {
    flex: 0 0 82% !important; width: auto !important; max-width: 21rem !important; min-width: 0; margin: 0 !important; scroll-snap-align: start;
  }
  .kx-da-v3 .entry-content :is(.kx-v3-mosaique, .kx-v3-cartes, .kx-v3-frise, .kx-v3-sous, .kx-v3-pictos, .kx-v3-prix):not(.kx-v3-rail, .kx-v3-pile):focus-visible { outline: 2px solid var(--v3-violet); outline-offset: 2px; }
  /* les points sous la bande : un par carte, le courant s'allonge */
  .kx-v3-glisse__points { display: flex; justify-content: center; gap: .375rem; margin: .75rem 0 0; }
  .kx-v3-glisse__points i { display: block; width: .375rem; height: .375rem; border-radius: 9999px; background: rgba(18, 1, 45, 0.18); transition: width .2s ease, background-color .2s ease; }
  .kx-v3-glisse__points i.is-actif { width: 1.125rem; background: var(--v3-violet); }
  .kx-v3-section--violet .kx-v3-glisse__points i { background: rgba(248, 248, 255, 0.35); }
  .kx-v3-section--violet .kx-v3-glisse__points i.is-actif { background: var(--v3-paper); }
}
@media (min-width: 768px) { .kx-v3-glisse__points { display: none; } }
@media (prefers-reduced-motion: reduce) { .kx-v3-glisse__points i { transition: none; } }
/* --- 19. Textes seuls a la largeur des blocs voisins (04/10 au soir) -----------------------------------
   Thomas, sur la page de reservation : « tu as encore laisse des zones de textes contenues dans un width trop
   petit ». Une phrase posee sous trois cartes, la mention sous l'agenda, un intertitre au-dessus d'un tableau :
   chacun restait dans la colonne de lecture (38rem) alors que le bloc du dessus ou du dessous prend toute la
   grille. Regle : dans une section qui contient un bloc pleine largeur, un texte pose seul prend la meme
   largeur que lui. La colonne de lecture reste la regle pour un texte qui a un visuel ou un titre en face. */
@media (min-width: 1024px) {
  /* a. le bloc de texte voisin d'un bloc qui prend toute la grille (cartes, tableau, agenda, frise, liens,
        en-tete a deux colonnes) */
  .kx-da-v3 .entry-content .kx-v3-wrap > :is(.kx-v3-suite:not(.kx-v3-texte-seul), .kx-v3-agenda, .kx-v3-vue, .kx-v3-frise, .kx-v3-mosaique, .kx-v3-cartes, .kx-v3-liens, .kx-v3-entete:has(.kx-v3-intro)) ~ :is(.kx-v3-texte-seul, .kx-v3-frise__apres, .kx-v3-intro-suite),
  .kx-da-v3 .entry-content .kx-v3-wrap > :is(.kx-v3-texte-seul, .kx-v3-frise__apres, .kx-v3-intro-suite):has(~ :is(.kx-v3-suite:not(.kx-v3-texte-seul), .kx-v3-agenda, .kx-v3-vue, .kx-v3-frise, .kx-v3-mosaique, .kx-v3-cartes, .kx-v3-liens)) { max-width: none; }
  .kx-da-v3 .entry-content .kx-v3-wrap > :is(.kx-v3-suite:not(.kx-v3-texte-seul), .kx-v3-agenda, .kx-v3-vue, .kx-v3-frise, .kx-v3-mosaique, .kx-v3-cartes, .kx-v3-liens, .kx-v3-entete:has(.kx-v3-intro)) ~ :is(.kx-v3-texte-seul, .kx-v3-frise__apres, .kx-v3-intro-suite) > :is(p:not(.kx-v3-h2, .kx-v3-h3, .kx-v3-dit, .kx-v3-replie__action), .kx-v3-puces, ul:not([class]), ol:not([class]), .kx-v3-replie, .kx-v3-points__avant, .kx-v3-points),
  .kx-da-v3 .entry-content .kx-v3-wrap > :is(.kx-v3-texte-seul, .kx-v3-frise__apres, .kx-v3-intro-suite):has(~ :is(.kx-v3-suite:not(.kx-v3-texte-seul), .kx-v3-agenda, .kx-v3-vue, .kx-v3-frise, .kx-v3-mosaique, .kx-v3-cartes, .kx-v3-liens)) > :is(p:not(.kx-v3-h2, .kx-v3-h3, .kx-v3-dit, .kx-v3-replie__action), .kx-v3-puces, ul:not([class]), ol:not([class]), .kx-v3-replie, .kx-v3-points__avant, .kx-v3-points),
  .kx-da-v3 .entry-content .kx-v3-wrap > :is(.kx-v3-suite:not(.kx-v3-texte-seul), .kx-v3-agenda, .kx-v3-vue, .kx-v3-frise, .kx-v3-mosaique, .kx-v3-cartes, .kx-v3-liens, .kx-v3-entete:has(.kx-v3-intro)) ~ :is(.kx-v3-texte-seul, .kx-v3-frise__apres, .kx-v3-intro-suite) > :is(.kx-v3-replie, .kx-v3-points__avant) > :is(p, ul, ol),
  .kx-da-v3 .entry-content .kx-v3-wrap > :is(.kx-v3-texte-seul, .kx-v3-frise__apres, .kx-v3-intro-suite):has(~ :is(.kx-v3-suite:not(.kx-v3-texte-seul), .kx-v3-agenda, .kx-v3-vue, .kx-v3-frise, .kx-v3-mosaique, .kx-v3-cartes, .kx-v3-liens)) > :is(.kx-v3-replie, .kx-v3-points__avant) > :is(p, ul, ol) { max-width: none; text-wrap: pretty; }
  /* b. dans la grille « intertitre | texte » : le paragraphe d'avant l'intertitre court sur toute la rangee, et
        un intertitre que rien ne suit (le tableau vient juste apres) aussi : il tient sur une ligne */
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:not(:only-child):has(> :is(h2, h3, .kx-v3-h3)) > :not(h2, h3, .kx-v3-h3):not(:is(h2, h3, .kx-v3-h3) ~ *) { max-width: none; text-wrap: pretty; }
  .kx-da-v3 .entry-content .kx-v3-wrap > .kx-v3-suite.kx-v3-texte-seul:not(:only-child):has(> :is(h2, h3, .kx-v3-h3)) > :is(h2, h3, .kx-v3-h3):last-child { grid-column: 1 / -1; max-width: none; }
}
/* L'agenda de rendez-vous : la mention d'information qui le suit se lit en petit, sur toute la largeur */
.kx-da-v3 .entry-content .kx-v3-agenda + .kx-v3-texte-seul { margin-top: 1.25rem; }
/* ==========================================================================
   20. Page introuvable (06/10, 404.php). Le texte a gauche, le « 404 » a droite : les deux 4 en lavande,
   le zero trace en pointilles violets, la donnee qui manque. Dessous, six pages du menu en cartes, sur
   deux niveaux de lecture (le nom, une ligne). Ni photo ni decor : la typographie fait le visuel.
   ========================================================================== */
.kx-v3-section.kx-v3-404__tete { padding-block: 2.5rem 4rem; }
@media (min-width: 1024px) { .kx-v3-section.kx-v3-404__tete { padding-block: 4.5rem 6.5rem; } }
.kx-v3-404__grille { display: grid; gap: 1.5rem; align-items: center; }
@media (min-width: 1024px) {
  .kx-v3-404__grille { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0 4rem; }
  .kx-v3-404__texte { grid-column: 1 / span 7; }
  .kx-v3-404__chiffre { grid-column: 8 / -1; }
}
.kx-da-v3 .kx-v3-404__texte .kx-v3-intro { max-width: 38rem; text-wrap: pretty; }
/* Sur telephone et tablette, le chiffre ouvre la page, a gauche, sur la marge du texte */
@media (max-width: 1023.98px) { .kx-v3-404__chiffre { order: -1; width: min(100%, 17rem); } }
.kx-v3-404__chiffre svg { display: block; width: 100%; height: auto; overflow: visible; }
.kx-v3-404__chiffre text { font-family: inherit; font-size: 300px; font-weight: 300; fill: var(--v3-lavande); }
/* Le zero : des rayons violets (un cercle au trait epais, en pointilles) decoupes par le chiffre lui-meme */
.kx-v3-404__zero { fill: none; stroke: var(--v3-violet); stroke-width: 160; stroke-dasharray: 1 1; animation: kxV3Pointilles 6s linear infinite; }
@keyframes kxV3Pointilles { to { stroke-dashoffset: -2; } }
@media (prefers-reduced-motion: reduce) { .kx-v3-404__zero { animation: none; } }
/* L'adresse demandee : le visiteur y repere une faute de frappe */
.kx-da-v3 .kx-v3-404__adresse { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; margin: 1.75rem 0 0; font-size: .875rem; line-height: 1.4; color: var(--v3-ink-50); }
.kx-da-v3 .kx-v3-404__adresse code { max-width: 100%; padding: .4rem .7rem; border: 1px solid var(--v3-line); border-radius: var(--v3-r-s); background: var(--v3-blanc); font-family: inherit; font-size: .875rem; font-weight: 500; color: var(--v3-ink); overflow-wrap: anywhere; }
/* Les six pages : cartes blanches au filet fin, la fleche avance au survol */
.kx-da-v3 .kx-v3-404__suite .kx-v3-h2 { margin-top: 0; }
.kx-da-v3 .kx-v3-404__liens { display: grid; gap: .75rem; margin: 2.5rem 0 0; padding: 0; list-style: none; }
@media (min-width: 640px) { .kx-da-v3 .kx-v3-404__liens { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .kx-da-v3 .kx-v3-404__liens { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 3.5rem; } }
.kx-v3-404__liens li { margin: 0; }
.kx-da-v3 .kx-v3-404__liens a { position: relative; display: flex; flex-direction: column; gap: .35rem; height: 100%; padding: 1.5rem 3.5rem 1.5rem 1.5rem; border: 1px solid var(--v3-line); border-radius: var(--v3-r); background: var(--v3-blanc); color: var(--v3-ink); text-decoration: none; transition: border-color .3s; }
.kx-da-v3 .kx-v3-404__liens a:hover { border-color: var(--v3-violet); }
.kx-v3-404__liens b { font-size: 1.0625rem; font-weight: 600; line-height: 1.3; letter-spacing: -0.01em; transition: color .3s; }
.kx-v3-404__liens a:hover b { color: var(--v3-violet); }
.kx-v3-404__liens span { font-size: .9375rem; line-height: 1.5; color: var(--v3-ink-70); }
.kx-v3-404__liens a::after { content: ""; position: absolute; right: 1.5rem; top: 50%; width: 1.125rem; height: 1.125rem; margin-top: -.5625rem; transition: transform .3s var(--v3-ease); background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235B26FE' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat; }
.kx-v3-404__liens a:hover::after { transform: translateX(4px); }

/* Lisibilité sur mobile (13/10) : sous 544 px la racine vaut 14,6 px (réglage d'Astra), les étiquettes en .75rem
   tombaient à 10,9 px. Plancher à 12 px ; rien ne change là où la racine vaut 16 px. */
.kx-v3-tuile__type { font-size: max(.75rem, 12px); }
.kx-da-v3 .kx-v3-cta-mobile p { font-size: max(.75rem, 12px); }

/* Scenes des tuiles a l'arret hors de l'ecran (14/10) : la classe est posee par korbyx-v3-modules.js. */
.kx-sc-repos, .kx-sc-repos * { animation-play-state: paused !important; }
/* ==========================================================================
   21. Retours de l'equipe du 06/10 (14/10). La page de reservation montre l'agenda des le premier ecran ;
   le comparatif se lit sur telephone sans defiler de cote.
   ========================================================================== */
/* a. Reserver : sous le titre, une phrase, puis l'agenda, dans la meme section (Raphaela, Yann : « l'agenda
      visible sans defiler »). Ni photo ni bouton : le premier ecran est l'agenda. */
body.kx-da-v3:has(.entry-content > .kx-v3-hero--agenda) .kx-v3-hero--agenda { padding-top: calc(var(--kx-entete) + 2rem); padding-bottom: 3.5rem; }
@media (min-width: 1024px) { body.kx-da-v3:has(.entry-content > .kx-v3-hero--agenda) .kx-v3-hero--agenda { padding-top: calc(var(--kx-entete) + 2.75rem); padding-bottom: 4.5rem; } }
.kx-da-v3 .kx-v3-hero--agenda .kx-v3-hero__texte { max-width: 52rem; }
.kx-da-v3 .kx-v3-hero--agenda .kx-v3-intro { max-width: 46rem; }
.kx-da-v3 .entry-content .kx-v3-hero--agenda .kx-v3-agenda { margin-top: 2rem; }
@media (min-width: 1024px) { .kx-da-v3 .entry-content .kx-v3-hero--agenda .kx-v3-agenda { margin-top: 2.5rem; } }
/* la suite du chapeau et la mention d'information, sous l'agenda, en clair sur le fond sombre */
.kx-da-v3 .entry-content .kx-v3-hero--agenda .kx-v3-agenda__apres { margin-top: 1.5rem; }
.kx-da-v3 .entry-content .kx-v3-hero--agenda .kx-v3-agenda__apres p { color: rgba(248, 248, 255, 0.86); }
.kx-da-v3 .entry-content .kx-v3-hero--agenda .kx-v3-agenda__apres small { color: rgba(248, 248, 255, 0.72); }
.kx-da-v3 .entry-content .kx-v3-hero--agenda .kx-v3-agenda__apres a { color: var(--v3-paper); text-decoration: underline; text-underline-offset: .2em; }
/* b. L'avis qui remplace l'agenda tant que les contenus integres sont refuses : l'ouverture dans un nouvel
      onglet est un second bouton, a cote du premier (Yann : apres « Tout refuser », on ne la voyait pas) */
.kx-da-v3 a.kx-v3-contenu__bouton--contour { border: 1.5px solid var(--v3-violet); background: transparent; color: var(--v3-violet); text-decoration: none; }
.kx-da-v3 a.kx-v3-contenu__bouton--contour:hover, .kx-da-v3 a.kx-v3-contenu__bouton--contour:focus { border-color: var(--v3-ink); background: var(--v3-ink); color: var(--v3-blanc); }
.kx-da-v3 .kx-v3-contenu__avis .kx-v3-contenu__actions { gap: .75rem; }
@media (max-width: 479px) { .kx-da-v3 .kx-v3-contenu__avis .kx-v3-contenu__actions > * { width: 100%; justify-content: center; } }
.kx-da-v3 .entry-content .kx-v3-hero--agenda .kx-v3-contenu__avis { padding-block: 2.5rem 2.25rem; }
/* c. Sur telephone, des cartes empilees au lieu d'une bande a faire glisser (kx-v3-pile) */
@media (max-width: 767px) {
  .kx-da-v3 .entry-content .kx-v3-sous.kx-v3-pile { grid-template-columns: minmax(0, 1fr); gap: .75rem; }
}
/* d. Un grand tableau ou Korbyx tient la derniere colonne (kx-v3-table--fiches) : sur telephone et tablette, une
      fiche par critere ; la reponse de Korbyx juste sous le critere, les autres solutions en dessous, deux par
      rangee, chacune sous son nom. Plus rien ne defile de cote. */
@media (max-width: 860px) {
  .kx-da-v3 .kx-v3-table--fiches { overflow: visible; border: 0; background: none; }
  .kx-da-v3 .kx-v3-table--fiches table { display: block; min-width: 0 !important; font-size: .875rem; }
  .kx-v3-table--fiches thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .kx-v3-table--fiches tbody { display: block; }
  .kx-v3-table--fiches tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin-bottom: .75rem; overflow: hidden; border: 1px solid var(--v3-line); border-radius: var(--v3-r); background: var(--v3-blanc); }
  .kx-v3-section--lavande .kx-v3-table--fiches tr { border-color: transparent; }
  .kx-da-v3 .kx-v3-table--fiches tbody td { display: block; padding: .625rem 1rem; border: 0; background: none; line-height: 1.45; color: var(--v3-ink-70); white-space: normal; }
  .kx-v3-table--fiches tbody td:empty { display: none; }
  .kx-v3-table--fiches tbody td[data-l]::before { content: attr(data-l); display: block; margin-bottom: .15rem; font-size: .75rem; font-weight: 600; line-height: 1.35; color: var(--v3-ink-50); }
  /* le critere, en titre de la fiche */
  .kx-da-v3 .kx-v3-table--fiches tbody td:first-child { grid-column: 1 / -1; order: -2; padding: 1rem 1rem .5rem; font-size: 1rem; font-weight: 600; letter-spacing: -0.01em; color: var(--v3-ink); }
  /* Korbyx, juste dessous, sur toute la largeur */
  .kx-da-v3 .kx-v3-table--fiches tbody td:last-child { grid-column: 1 / -1; order: -1; margin: 0 .75rem .5rem; padding: .75rem 1rem; border-radius: var(--v3-r-s); background: var(--v3-violet-soft); font-size: .9375rem; font-weight: 500; color: var(--v3-ink); }
  .kx-v3-table--fiches tbody td:last-child::before { color: var(--v3-violet); }
  .kx-v3-table--fiches tbody td:last-child:empty { display: none; }
}
