/* =============================================================
   K-INVEST — Styles composants
   Palette : Navy #162741 | Gold #bf8d38 | Inter
   ============================================================= */

/* ─────────────────────────────────────────────
   RESET TYPOGRAPHIE — surcharge thème parent
   base.css impose var(--sc-font-secondary) sur h1-h6.
   k-invest.css est chargé en dernier → gagne en ordre de cascade.
   body prefix ajoute la spécificité (0,1,1 vs 0,0,1).
   ───────────────────────────────────────────── */
body h1,
body h2,
body h3,
body h4,
body h5,
body h6 {
  font-family: var(--ki-font);
}

/* Liens — survol or, sans soulignement (surcharge starterCreative base.css a:hover) */
body a:hover,
body a:focus-visible {
  color: var(--ki-gold);
  text-decoration: none;
}

body .sc-mega__link:hover,
body .sc-mega__link:focus-visible,
body .sc-mega__sub .menu-item a:hover,
body .sc-mega__sub .menu-item a:focus-visible {
  color: var(--ki-gold);
  text-decoration: none;
}

/*
 * Sous-liens méga (WP depth ≥ 2). Ne pas utiliser .sc-mega__sub--nested seul : le premier <ul>
 * sous une colonne est .sc-mega__sub (voir MegaMenuWalker::start_lvl — --nested seulement si depth ≥ 2).
 * La classe .sc-mega__link--nested est sur le <a> : sélecteur fiable.
 */
.sc-mega__sub .menu-item a.sc-mega__link--nested {
  color: var(--ki-navy, #162741);
  font-weight: 600;
  font-size: 0.875rem;
  line-height: 1.35;
  gap: 0.875rem;
}

body .sc-mega__link--nested:hover,
body .sc-mega__link--nested:focus-visible {
  color: var(--ki-gold);
  text-decoration: none;
}

body .sc-mega__link--nested.sc-mega__link--placeholder,
body .sc-mega__link--nested.sc-mega__link--placeholder:hover,
body .sc-mega__link--nested.sc-mega__link--placeholder:focus-visible {
  color: var(--ki-navy, #162741);
  cursor: default;
}

body .sc-mega__desc--nested {
  color: color-mix(in srgb, var(--ki-navy, #162741) 72%, transparent);
}

body .sc-mega__link--nested .ki-mega-col-icon {
  display: inline-flex;
  flex-shrink: 0;
  color: var(--ki-gold);
}

body .sc-mega__link--nested .ki-mega-col-icon svg {
  display: block;
  width: 1.125rem;
  height: 1.125rem;
}

/* ─────────────────────────────────────────────
   HEADER
   ───────────────────────────────────────────── */
.ki-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  /*
   * Sur le hero : dégradé horizontal.
   * Opaque à gauche (zone logo + nav) → transparent à droite (zone photo).
   * Le fondu démarre à ~60% pour coïncider avec la colonne photo (35%).
   */
  background: linear-gradient(
    to right,
    rgba(22, 39, 65, 1.0) 0%,
    rgba(22, 39, 65, 1.0) 60%,
    rgba(22, 39, 65, 0.0) 70%
  );
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  transition: background 0.4s ease, backdrop-filter 0.4s ease,
              padding 0.3s ease, box-shadow 0.3s ease;
}

/* Sous le hero : fond plein + blur */
.ki-header.is-scrolled {
  background: rgba(22, 39, 65, 0.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.2);
}

/* Gabarit page.php (mentions légales, etc.) : pas de photo hero → barre navy sur toute la largeur */
body.ki-page-default-template .ki-header {
  background: var(--ki-navy);
}

body.ki-page-default-template .ki-header.is-scrolled {
  background: rgba(22, 39, 65, 0.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.2);
}

.ki-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}

.ki-header__logo {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  padding-block: 0.25rem;
  transition: padding-block 0.3s ease;
}

.ki-header.is-scrolled .ki-header__logo {
  padding-block: 0.25rem;
}

/* Logo : img seule dans le lien (pas de custom-logo-link imbriqué — voir k_invest_the_custom_logo_image). */
.ki-header__logo img,
.ki-header__logo .custom-logo {
  width: var(--ki-logo-width, 10rem);
  max-width: 100%;
  height: auto;
  object-fit: contain;
  display: block;
}

.ki-header__logo-text {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--ki-white);
  letter-spacing: -0.02em;
}

/* Logo principal vs logo « burger » : même case (grille), swap quand .sc-nav__menu.is-open (≤899px). */
.ki-header__logo--has-menu-logo {
  display: grid;
  align-items: center;
  justify-items: start;
  grid-template-columns: max-content;
}

.ki-header__logo--has-menu-logo .ki-header__logo-mark {
  grid-area: 1 / 1;
  display: flex;
  align-items: center;
}

@media (min-width: 900px) {
  .ki-header__logo--has-menu-logo .ki-header__logo-mark--burger {
    display: none !important;
  }
}

@media (max-width: 899px) {
  body:not(:has(.sc-nav__menu.is-open)) .ki-header__logo--has-menu-logo .ki-header__logo-mark--burger {
    display: none !important;
  }

  body:has(.sc-nav__menu.is-open) .ki-header__logo--has-menu-logo .ki-header__logo-mark--primary {
    display: none !important;
  }

  body:has(.sc-nav__menu.is-open) .ki-header__logo--has-menu-logo .ki-header__logo-mark--burger {
    display: flex !important;
  }
}

/* Menu principal : StarterCreative (sc-nav + MegaMenu) dans le header K-Invest */
.ki-header__sc-nav.sc-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex: 1;
  min-width: 0;
  position: relative;
}

:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu {
  list-style: none;
  list-style-type: none;
  margin: 0;
  padding: 0;
}

:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item {
  list-style: none;
  list-style-type: none;
  padding-block: 0.25rem;
  transition: padding-block 0.3s ease;
}

.ki-header.is-scrolled .sc-nav__menu > .menu-item {
  padding-block: 0.75rem;
}

:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item::marker {
  content: none;
}

/*
 * Menu racine uniquement (> .menu-item > …) : taille plus lisible.
 * Sous-menus (.sub-menu, .sc-nav__dropdown-item, .sc-mega__*) : tailles inchangées.
 */
/* Mega : lien / trigger ; menu classique (mega désactivé) : bouton .sc-nav__dropdown-toggle */
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item > a,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item > .sc-mega__trigger,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item .sc-nav__dropdown-toggle,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item > .sc-nav__simple-submenu-row .sc-nav__simple-submenu-link,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item > .sc-nav__simple-submenu-toggle.sc-nav__simple-submenu-toggle--full {
  font-size: 1rem;
  font-weight: 500;
  color: #d1d5db;
  text-decoration: none;
  transition: color 0.2s;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  font-family: inherit;
}

:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item > a:hover,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item > a:focus,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item > .sc-mega__trigger:hover,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item > .sc-mega__trigger:focus,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item .sc-nav__dropdown-toggle:hover,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item .sc-nav__dropdown-toggle:focus,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item > .sc-nav__simple-submenu-row .sc-nav__simple-submenu-link:hover,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item > .sc-nav__simple-submenu-row .sc-nav__simple-submenu-link:focus,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item > .sc-nav__simple-submenu-toggle.sc-nav__simple-submenu-toggle--full:hover,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item > .sc-nav__simple-submenu-toggle.sc-nav__simple-submenu-toggle--full:focus {
  color: var(--ki-gold);
  outline: none;
}

/*
 * Bouton or (racine) : ajouter la classe CSS « ki-nav-gold-btn » sur l’entrée de menu (li),
 * ou utiliser ki-nav-cta / sc-nav-cta (équivalent).
 */
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-cta > a,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-cta > .sc-mega__trigger,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-cta > .sc-nav__simple-submenu-toggle.sc-nav__simple-submenu-toggle--full,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-cta > .sc-nav__simple-submenu-row .sc-nav__simple-submenu-link,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav-cta > a,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav-cta > .sc-mega__trigger,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav-cta > .sc-nav__simple-submenu-toggle.sc-nav__simple-submenu-toggle--full,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav-cta > .sc-nav__simple-submenu-row .sc-nav__simple-submenu-link,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-gold-btn > a,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-gold-btn > .sc-mega__trigger,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-gold-btn > .sc-nav__simple-submenu-toggle.sc-nav__simple-submenu-toggle--full,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-gold-btn > .sc-nav__simple-submenu-row .sc-nav__simple-submenu-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.625rem 1.25rem;
  font-size: 1.0625rem;
  font-weight: 600;
  border-radius: var(--ki-radius-full);
  background: var(--ki-gold);
  color: var(--ki-navy);
  box-shadow: var(--ki-shadow-gold);
}

:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-cta > a:hover,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-cta > a:focus,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-cta > a:focus-visible,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-cta > .sc-mega__trigger:hover,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-cta > .sc-mega__trigger:focus,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-cta > .sc-mega__trigger:focus-visible,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-cta > .sc-nav__simple-submenu-toggle.sc-nav__simple-submenu-toggle--full:hover,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-cta > .sc-nav__simple-submenu-toggle.sc-nav__simple-submenu-toggle--full:focus,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-cta > .sc-nav__simple-submenu-toggle.sc-nav__simple-submenu-toggle--full:focus-visible,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-cta > .sc-nav__simple-submenu-row .sc-nav__simple-submenu-link:hover,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-cta > .sc-nav__simple-submenu-row .sc-nav__simple-submenu-link:focus,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-cta > .sc-nav__simple-submenu-row .sc-nav__simple-submenu-link:focus-visible,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav-cta > a:hover,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav-cta > a:focus,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav-cta > a:focus-visible,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav-cta > .sc-mega__trigger:hover,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav-cta > .sc-mega__trigger:focus,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav-cta > .sc-mega__trigger:focus-visible,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav-cta > .sc-nav__simple-submenu-toggle.sc-nav__simple-submenu-toggle--full:hover,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav-cta > .sc-nav__simple-submenu-toggle.sc-nav__simple-submenu-toggle--full:focus,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav-cta > .sc-nav__simple-submenu-toggle.sc-nav__simple-submenu-toggle--full:focus-visible,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav-cta > .sc-nav__simple-submenu-row .sc-nav__simple-submenu-link:hover,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav-cta > .sc-nav__simple-submenu-row .sc-nav__simple-submenu-link:focus,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav-cta > .sc-nav__simple-submenu-row .sc-nav__simple-submenu-link:focus-visible,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-gold-btn > a:hover,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-gold-btn > a:focus,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-gold-btn > a:focus-visible,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-gold-btn > .sc-mega__trigger:hover,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-gold-btn > .sc-mega__trigger:focus,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-gold-btn > .sc-mega__trigger:focus-visible,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-gold-btn > .sc-nav__simple-submenu-toggle.sc-nav__simple-submenu-toggle--full:hover,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-gold-btn > .sc-nav__simple-submenu-toggle.sc-nav__simple-submenu-toggle--full:focus,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-gold-btn > .sc-nav__simple-submenu-toggle.sc-nav__simple-submenu-toggle--full:focus-visible,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-gold-btn > .sc-nav__simple-submenu-row .sc-nav__simple-submenu-link:hover,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-gold-btn > .sc-nav__simple-submenu-row .sc-nav__simple-submenu-link:focus,
:is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-gold-btn > .sc-nav__simple-submenu-row .sc-nav__simple-submenu-link:focus-visible {
  background: var(--ki-gold-dark);
  color: var(--ki-navy);
}

/* Burger / menu horizontal : breakpoint K-Invest à 900px (parent StarterCreative : 769px). */
@media (min-width: 900px) {
  /*
   * Aligner le bas des <li> sur la zone utile du header : évite que le panneau .sc-mega
   * (top: 100%) démarre au milieu de la barre (items centrés sans hauteur pleine).
   */
  /*
   * Bloc de positionnement du mega : largeur = zone .ki-container.
   */
  .ki-header__inner {
    align-items: stretch;
    position: relative;
  }

  .ki-header__logo {
    align-self: center;
  }

  /* Le mega ne doit pas être cadré sur le <li> */
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav__item--mega {
    position: static;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    height: 100%;
    gap: 1.5rem;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item {
    display: flex;
    align-items: center;
  }

  .ki-header .sc-nav__toggle {
    display: none;
  }

  /*
   * Le mega menu doit se coller EXACTEMENT sous le header.
   * Puisqu’il est relatif à .ki-header__inner, on le décale vers le bas
   * de la valeur du padding-bottom du header (1.25rem par défaut, 0.75rem au scroll).
   */
  .ki-header .sc-mega {
    background: var(--ki-white);
    border-color: rgba(0, 0, 0, 0.08);
    border-top: none;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    border-bottom-left-radius: var(--ki-radius);
    border-bottom-right-radius: var(--ki-radius);
    overflow: hidden;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12);
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav__item--mega > .sc-mega {
    left: 0;
    right: 0;
    width: auto;
    top: 100%;
    padding-top: 0;
  }

  /* Grille mega : 1–4 pistes quand le root a une meta (classe .ki-mega-grid-layout) */
  .ki-header .sc-mega__grid.ki-mega-grid-layout {
    grid-template-columns: repeat(var(--ki-mega-cols, 4), minmax(0, 1fr));
  }

  .ki-header .ki-mega-column {
    display: flex;
    flex-direction: column;
    gap: var(--ki-spacing-md, 1rem);
    min-width: 0;
  }

  .ki-header .sc-mega__link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--ki-navy);
  }

  .ki-header .ki-mega-col-icon {
    display: inline-flex;
    flex-shrink: 0;
    color: var(--ki-gold);
  }

  .ki-header .ki-mega-col-icon svg {
    display: block;
    width: 1.125rem;
    height: 1.125rem;
  }

  .ki-header .sc-mega__desc {
    color: color-mix(in srgb, var(--ki-navy) 72%, transparent);
  }

  /* Liens sous-colonne hors gabarit nested (ex. anciens menus) */
  .ki-header .sc-mega__sub .menu-item a:not(.sc-mega__link--nested) {
    color: color-mix(in srgb, var(--ki-navy) 65%, transparent);
  }

  .ki-header .sc-mega__sub .menu-item a:not(.sc-mega__link--nested):hover,
  .ki-header .sc-mega__sub .menu-item a:not(.sc-mega__link--nested):focus-visible {
    color: var(--ki-gold);
    text-decoration: none;
  }

  .ki-header .sc-mega__link--nested {
    color: var(--ki-navy);
    font-size: 1rem;
    line-height: 1.35;
  }

  .ki-header .sc-mega__link:hover,
  .ki-header .sc-mega__link:focus-visible {
    color: var(--ki-gold);
    text-decoration: none;
  }

  .ki-header .sc-mega__link.sc-mega__link--placeholder,
  .ki-header .sc-mega__link--placeholder:hover,
  .ki-header .sc-mega__link--placeholder:focus-visible {
    cursor: default;
    color: var(--ki-navy);
    text-decoration: none;
    outline: none;
  }

  .ki-header .sc-mega__sub .menu-item > span {
    display: block;
    padding: var(--sc-spacing-xs, 0.25rem) 0;
    font-size: 0.875rem;
    color: color-mix(in srgb, var(--ki-navy) 65%, transparent);
    text-decoration: none;
    cursor: default;
  }

  /* Sous-menus classiques (sans mega menu sur l’item) */
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item:not(.sc-nav__item--mega) {
    position: relative;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu .sub-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    list-style: none;
    padding: 0.5rem 0;
    background: var(--ki-white);
    border-radius: var(--ki-radius);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12);
    min-width: 14rem;
    z-index: 200;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu .menu-item:hover > .sub-menu,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu .menu-item:focus-within > .sub-menu {
    display: block !important;
  }

  /*
   * Sous-menu simple (ligne lien + chevron) : le <li> est en flex ; garder overflow visible + z-index au survol
   * pour que le panneau absolu ne soit pas masqué et passe au-dessus des voisins.
   */
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav__item--simple-submenu {
    overflow: visible;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav__item--simple-submenu:hover,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav__item--simple-submenu:focus-within {
    z-index: 220;
  }

  /*
   * Chevron « sous-menu simple » (parent avec URL réelle) : uniquement mobile ; desktop = survol .sub-menu.
   */
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__simple-submenu-row .sc-nav__simple-submenu-toggle {
    display: none;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__simple-submenu-row {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu .sub-menu a {
    display: block;
    padding: 0.5rem 1rem;
    color: var(--ki-navy);
    font-size: 0.875rem;
    text-decoration: none;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu .sub-menu a:hover,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu .sub-menu a:focus {
    color: var(--ki-gold);
  }

  /* Panneau menu classique (walker StandardPrimaryMenu — pas de .sub-menu) */
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu--standard-dropdown > .menu-item:not(.sc-nav__item--mega) {
    position: relative;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu .sc-nav__dropdown {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu .sc-nav__dropdown-item {
    display: block;
    padding: 0.5rem 1rem;
    color: var(--ki-navy);
    font-size: 0.875rem;
    text-decoration: none;
    border-radius: var(--ki-radius-sm);
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu .sc-nav__dropdown-item:hover,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu .sc-nav__dropdown-item:focus {
    color: var(--ki-gold);
    background: rgba(22, 39, 65, 0.04);
    outline: none;
  }
}

@media (max-width: 899px) {
  /* Bandeau plein navy (le dégradé hero est réservé au desktop ≥900px). */
  .ki-header {
    background: var(--ki-navy, #162741);
  }

  .ki-header.is-scrolled {
    background: var(--ki-navy, #162741);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .ki-header__inner {
    position: static; /* so absolute menu relates to header */
  }

  .ki-header__logo {
    position: relative;
    z-index: 100;
  }

  .ki-header .sc-nav__toggle {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 2.25rem;
    height: 2.25rem;
    margin-left: auto;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.25rem;
    position: relative;
    z-index: 100;
  }

  .ki-header .sc-nav__toggle-icon,
  .ki-header .sc-nav__toggle-icon::before,
  .ki-header .sc-nav__toggle-icon::after {
    transition: top 0.2s ease, transform 0.2s ease, background-color 0.2s ease;
  }

  .ki-header .sc-nav__toggle[aria-expanded="true"] .sc-nav__toggle-icon {
    background-color: transparent;
  }

  .ki-header .sc-nav__toggle[aria-expanded="true"] .sc-nav__toggle-icon::before {
    top: 0;
    transform: rotate(45deg);
    background-color: var(--ki-navy);
  }

  .ki-header .sc-nav__toggle[aria-expanded="true"] .sc-nav__toggle-icon::after {
    top: 0;
    transform: rotate(-45deg);
    background-color: var(--ki-navy);
  }

  /* Si le menu est ouvert, le texte du logo passe en sombre (menu peut être dans #ki-mobile-nav-dialog) */
  body:has(.sc-nav__menu.is-open) .ki-header .ki-header__logo-text {
    color: var(--ki-navy);
  }

  .ki-header .sc-nav__toggle-icon {
    display: block;
    width: 1.375rem;
    height: 2px;
    background: var(--ki-white);
    border-radius: 2px;
    position: relative;
  }

  .ki-header .sc-nav__toggle-icon::before,
  .ki-header .sc-nav__toggle-icon::after {
    content: '';
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    background: var(--ki-white);
    border-radius: 2px;
  }

  .ki-header .sc-nav__toggle-icon::before { top: -7px; }
  .ki-header .sc-nav__toggle-icon::after { top: 7px; }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: 0;
    flex-direction: column;
    gap: 0;
    background: var(--ki-white);
    padding: 6rem 1.5rem 3rem; /* padding-top leaves room for logo/toggle */
    max-height: none;
    overflow-y: auto;
    overflow-x: hidden;
    display: none;
    border-radius: 0;
    box-shadow: none;
    z-index: 90; /* below logo and toggle */
    box-sizing: border-box;
    flex-wrap: inherit;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu.is-open {
    display: flex;
    justify-content: safe center;
    align-items: center;
  }

  /*
   * UX demandée:
   * - menu centré par défaut
   * - si un mega menu est ouvert, toute la pile passe alignée à gauche
   */
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu.is-open:has(.sc-nav__item--mega.is-mega-open) {
    justify-content: flex-start;
    align-items: stretch;
  }

  /*
   * Sous-menu simple : ne pas changer justify-content sur tout le <ul> (sinon la pile « remonte »
   * comme pour le méga). On cible seulement la ligne du li ouvert (voir plus bas).
   */

  /* Bloc menu centré (largeur max lisible) */
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item {
    padding: 0;
    width: 100%;
    max-width: min(28rem, 100%);
    text-align: center;
  }

  /* Bloquer le scroll du body quand le menu est ouvert */
  body:has(.sc-nav__menu.is-open) {
    overflow: hidden;
  }

  /*
   * Menu burger ouvert : bandeau header en fond blanc (hero ou scroll), même si .is-scrolled
   * (sinon dégradé navy / blur sous le hero).
   */
  body:has(.sc-nav__menu.is-open) .ki-header {
    z-index: 110;
    background: var(--ki-white);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    box-shadow: none;
  }

  /*
   * Portail mobile : <dialog#ki-mobile-nav-dialog.ki-mobile-nav-portal> (voir k-invest.js).
   * Ouvert avec dialog.show() (non modal) pour que #ki-header (z-index 100) reste au-dessus du panneau.
   * ::backdrop transparent — le fond blanc vient du <ul>.
   */
  dialog.ki-mobile-nav-portal {
    position: fixed;
    inset: 0;
    z-index: 90;
    margin: 0;
    padding: 0;
    border: none;
    max-width: none;
    max-height: none;
    width: 100%;
    min-height: 100%;
    min-height: 100dvh;
    height: auto;
    background: transparent;
    box-sizing: border-box;
  }

  dialog.ki-mobile-nav-portal::backdrop {
    background: transparent;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item > a,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item > .sc-mega__trigger,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item .sc-nav__dropdown-toggle,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item > .sc-nav__simple-submenu-row .sc-nav__simple-submenu-link,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item > .sc-nav__simple-submenu-toggle.sc-nav__simple-submenu-toggle--full {
    color: var(--ki-navy);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.5rem;
    padding: 1rem 0;
    font-size: 1.25rem;
    font-weight: 500;
    text-decoration: none;
    width: 100%;
    background: transparent;
    border: none;
    text-align: center;
    cursor: pointer;
  }

  /*
   * Lien + chevron regroupés (pas space-between sur toute la largeur — évite le chevron collé au bord droit).
   */
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item > .sc-nav__simple-submenu-row {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    width: auto;
    max-width: 100%;
    margin-inline: auto;
    padding: 0;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item > .sc-nav__simple-submenu-row .sc-nav__simple-submenu-link {
    justify-content: center;
    text-align: center;
    width: auto;
    flex: 0 1 auto;
    min-width: 0;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item > .sc-nav__simple-submenu-row .sc-nav__simple-submenu-toggle {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: auto;
    min-width: 2.25rem;
    min-height: 2.75rem;
    padding: 0.35rem 0.25rem;
    color: var(--ki-navy);
    background: transparent;
    border: none;
    cursor: pointer;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu.is-open:has(.sc-nav__item--mega.is-mega-open) > .menu-item {
    max-width: 100%;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav__item--simple-submenu.is-open {
    max-width: 100%;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav__item--simple-submenu.is-open > .sc-nav__simple-submenu-row {
    margin-inline: 0;
    justify-content: flex-start;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu.is-open:has(.sc-nav__item--mega.is-mega-open) > .menu-item > a,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu.is-open:has(.sc-nav__item--mega.is-mega-open) > .menu-item > .sc-mega__trigger,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu.is-open:has(.sc-nav__item--mega.is-mega-open) > .menu-item .sc-nav__dropdown-toggle,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav__item--simple-submenu.is-open > .sc-nav__simple-submenu-row .sc-nav__simple-submenu-link,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav__item--simple-submenu.is-open > .sc-nav__simple-submenu-toggle.sc-nav__simple-submenu-toggle--full {
    justify-content: flex-start;
    text-align: left;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav__item--simple-submenu.is-open > .sc-nav__simple-submenu-row .sc-nav__simple-submenu-toggle {
    justify-content: center;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__chevron {
    width: 1.25rem;
    height: 1.25rem;
    transition: transform 0.3s ease;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu .is-mega-open > .sc-mega__trigger .sc-nav__chevron,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu .is-open > .sc-nav__dropdown-toggle .sc-nav__chevron,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu .sc-nav__item--simple-submenu.is-open .sc-nav__simple-submenu-toggle .sc-nav__chevron {
    transform: rotate(180deg);
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-mega-menu--a .sc-mega__col {
    border: 0;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu .sc-mega,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu .sub-menu {
    position: static !important;
    margin-top: 0 !important;
    margin-bottom: 1rem !important;
    border: none !important;
    background: transparent !important;
    padding-left: 0 !important;
    list-style: none !important;
    border-left: none !important;
    text-align: center !important;
    display: none;
    box-shadow: none !important;
    width: 100% !important;
    max-width: 100% !important;
    border-radius: 0 !important;
    min-width: 0 !important;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu.is-open:has(.sc-nav__item--mega.is-mega-open) .sc-mega,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu.is-open:has(.sc-nav__item--mega.is-mega-open) .sub-menu {
    text-align: left !important;
  }

  /*
   * Sous-menu « simple » (MegaMenuWalker .sub-menu) : comme la ligne parent — centré, navy, bold, sans puce.
   * (Les règles desktop .sub-menu a 0.875rem / bloc ne s’appliquent pas ici : breakpoint séparé.)
   */
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu .sc-nav__item--simple-submenu > .sub-menu {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: center !important;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu .sc-nav__item--simple-submenu > .sub-menu > .menu-item {
    list-style: none;
    list-style-type: none;
    padding: 0;
    margin: 0;
    text-align: center;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu .sc-nav__item--simple-submenu > .sub-menu > .menu-item::marker {
    content: none;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu .sc-nav__item--simple-submenu > .sub-menu a {
    display: block;
    padding: 0.65rem 0;
    color: var(--ki-navy) !important;
    font-size: 1.25rem;
    font-weight: 500;
    text-decoration: none;
    text-align: center;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu .sc-nav__item--simple-submenu > .sub-menu a:visited {
    color: var(--ki-navy) !important;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu .sc-nav__item--simple-submenu > .sub-menu a:hover,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu .sc-nav__item--simple-submenu > .sub-menu a:focus-visible {
    color: var(--ki-gold) !important;
    outline: none;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu .sc-mega__grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu .is-mega-open > .sc-mega,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu .is-open > .sub-menu {
    display: block !important;
  }

  /*
   * MegaMenuWalker : <div class="sc-mega__inner sc-container"> — .sc-container ajoute padding-inline (base.css).
   * En burger plein largeur, on aligne le contenu sur les bords du panneau (padding déjà sur le <ul> parent).
   */
  :is(.ki-header, .ki-mobile-nav-portal) .sc-mega__inner.sc-container {
    padding-inline: 0;
  }

  /* Sous-menus Mega (colonnes et liens imbriqués) — :is(…, .ki-mobile-nav-portal) : menu parfois dans #ki-mobile-nav-dialog */
  :is(.ki-header, .ki-mobile-nav-portal) .sc-mega__col-head {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu.is-open:has(.sc-nav__item--mega.is-mega-open) .sc-mega__col-head {
    justify-content: flex-start;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-mega__col-toggle {
    position: absolute;
    right: 0.35rem;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    padding: 0.75rem;
    color: var(--ki-navy);
    cursor: pointer;
  }

  /*
   * Une seule icône d’action par colonne : le picto K-Invest (.ki-mega-col-icon) + le bouton « + »
   * faisaient doublon. On masque le picto dans l’en-tête quand un toggle d’accordéon est présent.
   */
  :is(.ki-header, .ki-mobile-nav-portal) .sc-mega__col-head:has(.sc-mega__col-toggle) .ki-mega-col-icon {
    display: none;
  }

  /* Réserve l’espace à droite pour le bouton « + » (le texte ne passe pas sous le toggle) */
  :is(.ki-header, .ki-mobile-nav-portal) .sc-mega__col-head:has(.sc-mega__col-toggle) {
    padding-inline-end: 2.75rem;
    cursor: pointer;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-mega__col-toggle-icon {
    position: relative;
    display: block;
    width: 1rem;
    height: 2px;
    background: currentColor;
  }

  /* Neutralise le chevron mobile du parent (<768px) pour éviter doublon avec le "+" */
  :is(.ki-header, .ki-mobile-nav-portal) .sc-mega__col-toggle-icon::before {
    content: none !important;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-mega__col-toggle-icon::after {
    content: '';
    position: absolute;
    top: -7px;
    left: 7px;
    width: 2px;
    height: 1rem;
    background: currentColor;
    transition: transform 0.2s ease;
  }

  /* is-open est posée sur .sc-mega__col (data-sc-mega-col), pas sur .ki-mega-column — aligné sur theme.js */
  :is(.ki-header, .ki-mobile-nav-portal) .sc-mega__col.is-open .sc-mega__col-toggle-icon::after {
    transform: rotate(90deg);
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-mega__link {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    font-size: 1.125rem;
    text-decoration: none;
    text-align: center;
    cursor: pointer;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu.is-open:has(.sc-nav__item--mega.is-mega-open) .sc-mega__link {
    justify-content: flex-start;
    text-align: left;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-mega__link .ki-mega-col-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.25rem;
    height: 1.25rem;
    flex: 0 0 1.25rem;
    line-height: 1;
    color: var(--ki-gold);
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-mega__link .ki-mega-col-icon svg {
    display: block;
    width: 1.125rem;
    height: 1.125rem;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-mega__link--nested .ki-mega-col-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.25rem;
    height: 1.25rem;
    flex: 0 0 1.25rem;
    line-height: 1;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-mega__col.is-open .sc-mega__col-body {
    display: block;
    padding-left: 0;
    margin-top: 0.5rem;
    text-align: center;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu.is-open:has(.sc-nav__item--mega.is-mega-open) .sc-mega__col.is-open .sc-mega__col-body {
    text-align: left;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-mega__sub {
    list-style: none;
    padding: 0;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-mega__link--nested {
    color: #6b7280;
    padding: 0.5rem 0;
    font-size: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    text-decoration: none;
    text-align: center;
    cursor: pointer;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu.is-open:has(.sc-nav__item--mega.is-mega-open) .sc-mega__link--nested {
    justify-content: flex-start;
    text-align: left;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-cta > a,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-cta > .sc-mega__trigger,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav-cta > a,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav-cta > .sc-mega__trigger,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-gold-btn > a,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-gold-btn > .sc-mega__trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    margin-top: 0.25rem;
    margin-bottom: 0.25rem;
    padding: 0.625rem 1.25rem;
    font-size: 1.0625rem;
    font-weight: 600;
    border-radius: var(--ki-radius-full);
    background: var(--ki-gold);
    color: var(--ki-navy);
    box-shadow: var(--ki-shadow-gold);
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-cta > a:hover,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-cta > a:focus,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-cta > a:focus-visible,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-cta > .sc-mega__trigger:hover,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-cta > .sc-mega__trigger:focus,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-cta > .sc-mega__trigger:focus-visible,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav-cta > a:hover,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav-cta > a:focus,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav-cta > a:focus-visible,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav-cta > .sc-mega__trigger:hover,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav-cta > .sc-mega__trigger:focus,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.sc-nav-cta > .sc-mega__trigger:focus-visible,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-gold-btn > a:hover,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-gold-btn > a:focus,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-gold-btn > a:focus-visible,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-gold-btn > .sc-mega__trigger:hover,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-gold-btn > .sc-mega__trigger:focus,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu > .menu-item.ki-nav-gold-btn > .sc-mega__trigger:focus-visible {
    background: var(--ki-gold-dark);
    color: var(--ki-navy);
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu .sc-nav__dropdown-item {
    color: #4b5563;
    padding: 0.75rem 0;
    font-size: 1.125rem;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    text-align: center;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
    cursor: pointer;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu.is-open:has(.sc-nav__item--mega.is-mega-open) .sc-nav__dropdown-item {
    justify-content: flex-start;
    text-align: left;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu .sc-nav__dropdown-item:last-child {
    border-bottom: none;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu .sc-nav__dropdown-item:hover,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__menu .sc-nav__dropdown-item:focus {
    color: var(--ki-gold);
    outline: none;
  }
}

/*
 * 769px–899px : mega-menu.css (parent) ouvre encore au survol. Le header K-Invest est en mode
 * burger jusqu’à 900px : on n’affiche le panneau mega qu’avec .is-mega-open (clic / accordéon).
 * On force aussi l'affichage en mode "pile" (static) pour écraser tout positionnement absolu du parent.
 */
@media (min-width: 769px) and (max-width: 899px) {
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__item--mega:hover > .sc-mega,
  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__item--mega:focus-within > .sc-mega {
    display: none !important;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-nav__item--mega.is-mega-open > .sc-mega {
    display: block !important;
    position: static !important;
    transform: none !important;
    width: 100% !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    margin: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-mega__grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-mega__col-body {
    display: none !important;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-mega__col.is-open .sc-mega__col-body {
    display: block !important;
  }

  :is(.ki-header, .ki-mobile-nav-portal) .sc-mega__col-toggle {
    display: block !important;
  }
}

.ki-btn--nav {
  font-size: 0.875rem !important;
}

/* ─────────────────────────────────────────────
   BOUTONS — système unique (API PHP : k_invest_render_button)
   Variantes : primary (or) | secondary = .ki-btn--navy sans ombre |
   on_dark = .ki-btn--ghost (bordure claire sur fond navy) |
   outline = .ki-btn--outline-navy (fond clair).
   ───────────────────────────────────────────── */
.ki-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font-family: var(--ki-font);
  font-weight: 600;
  border-radius: var(--ki-radius-full);
  cursor: pointer;
  border: none;
  text-decoration: none;
  transition: all 0.3s ease;
  white-space: nowrap;
}

/* Annule le soulignement du parent starterCreative (base.css : a:hover) */
.ki-btn:hover,
.ki-btn:focus,
.ki-btn:focus-visible,
.ki-btn:active,
.ki-btn:visited {
  text-decoration: none;
}

.ki-btn--primary {
  background: var(--ki-gold);
  color: var(--ki-navy);
  padding: 0.625rem 1.25rem;
  font-size: 0.875rem;
  box-shadow: var(--ki-shadow-gold);
}

.ki-btn--primary:hover,
.ki-btn--primary:focus {
  background: var(--ki-gold-dark);
  color: var(--ki-navy);
  box-shadow: var(--ki-shadow-gold-xl);
}

/* Hero : px-8 py-4, shadow-xl or — Hero.tsx */
.ki-btn--primary.ki-btn--lg {
  padding: 1rem 2rem;
  font-size: 0.875rem;
  box-shadow: var(--ki-shadow-gold-xl);
}

@media (min-width: 768px) {
  .ki-btn--primary.ki-btn--lg {
    font-size: 1rem;
  }
}

.ki-btn--ghost {
  background: transparent;
  color: var(--ki-white);
  padding: 0.625rem 1.25rem;
  font-size: 0.875rem;
  border: 1px solid rgba(255, 255, 255, 0.25);
}

.ki-btn--ghost:hover,
.ki-btn--ghost:focus {
  background: rgba(255, 255, 255, 0.05);
  color: var(--ki-white);
  border-color: rgba(255, 255, 255, 0.4);
}

/* Hero secondaire : border-gray-600 — Hero.tsx */
.ki-btn--ghost.ki-btn--lg {
  padding: 1rem 2rem;
  border-color: var(--ki-gray-600);
}

.ki-btn--ghost.ki-btn--lg:hover,
.ki-btn--ghost.ki-btn--lg:focus {
  border-color: var(--ki-gray-600);
}

@media (min-width: 768px) {
  .ki-btn--ghost.ki-btn--lg {
    font-size: 1rem;
  }
}

/* Padding « px-8 py-4 » — la taille de police est portée par chaque variante */
.ki-btn--lg {
  padding: 1rem 2rem;
  gap: 0.75rem;
}

.ki-btn--secondary,
.ki-btn--navy {
  background: var(--ki-navy);
  color: var(--ki-white);
  font-weight: 600;
}

/* Taille compacte (header objectifs, etc.) */
.ki-btn--secondary:not(.ki-btn--lg),
.ki-btn--navy:not(.ki-btn--lg) {
  padding: 0.625rem 1.25rem;
  font-size: 0.875rem;
}

/* Secondary / navy lg : text-base, pas d’ombre */
.ki-btn--secondary.ki-btn--lg,
.ki-btn--navy.ki-btn--lg {
  padding: 1rem 2rem;
  font-size: 1.125rem;
  box-shadow: none;
}

.ki-btn--secondary:hover,
.ki-btn--secondary:focus,
.ki-btn--navy:hover,
.ki-btn--navy:focus {
  background: var(--ki-navy-cta-hover);
  color: var(--ki-white);
  box-shadow: none;
}

/* Flèche or (Services, avis, CTA, etc.) */
.ki-btn--navy .ki-btn__arrow {
  color: var(--ki-gold);
  transition: transform 0.3s ease;
}

.ki-btn--secondary:hover .ki-btn__arrow,
.ki-btn--secondary:focus .ki-btn__arrow,
.ki-btn--navy:hover .ki-btn__arrow,
.ki-btn--navy:focus .ki-btn__arrow {
  transform: translateX(6px);
}

.ki-btn--full {
  width: 100%;
}

/* Focus clavier — anneau visible au Tab uniquement (pas au clic souris) */
.ki-btn:focus:not(:focus-visible) {
  outline: none;
}

.ki-btn:focus-visible {
  outline: 2px solid var(--ki-focus-ring);
  outline-offset: var(--ki-focus-offset);
}

.ki-btn--primary:focus-visible {
  outline-color: var(--ki-focus-ring-strong);
}

.ki-btn--ghost:focus-visible,
.ki-btn--secondary:focus-visible,
.ki-btn--navy:focus-visible {
  outline-color: var(--ki-focus-ring);
}

@media (prefers-contrast: more) {
  .ki-btn:focus-visible {
    outline-width: 3px;
  }
}

/* Boutons — mobile : pas de 600 / pas de 1rem « large », retour à la ligne si libellé long */
@media (width < 768px) {
  .ki-btn {
    font-weight: 400;
    white-space: normal;
    max-width: 100%;
    overflow-wrap: anywhere;
    box-sizing: border-box;
  }

  .ki-btn--secondary,
  .ki-btn--navy {
    font-weight: 400;
  }

  .ki-btn--secondary.ki-btn--lg,
  .ki-btn--navy.ki-btn--lg {
    font-size: 0.875rem;
  }

  .ki-btn--outline-navy {
    font-weight: 400;
    font-size: 0.875rem;
  }

  .ki-btn--primary.ki-btn--lg,
  .ki-btn--ghost.ki-btn--lg,
  .ki-btn--secondary.ki-btn--lg,
  .ki-btn--navy.ki-btn--lg {
    padding: 1rem clamp(0.75rem, 4vw, 1.25rem);
  }
}

/* ─────────────────────────────────────────────
   SECTIONS COMMUNES
   ───────────────────────────────────────────── */
.ki-section {
  padding-block: var(--ki-section-padding-y);
}

.ki-section--light  { background: var(--ki-bg-light); }
.ki-section--white  { background: var(--ki-white); }
.ki-section--off    { background: var(--ki-bg-light); }
.ki-section--dark   { background: #111e32; }

/* Spécificité ID — garantit le bg même si un autre style écrase la classe */
#approche { background: #ffffff; }

.ki-section__header {
  text-align: center;
  max-width: 70rem;
  margin-inline: auto;
  margin-bottom: 4rem;
}

.ki-section__label {
  font-size: 0.875rem;        /* text-sm — était 0.75rem */
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ki-gold);
  margin-bottom: 1rem;
}

.ki-section__title {
  font-size: clamp(1.5rem, 3.5vw, 2.5rem);
  font-weight: 600;
  letter-spacing: -0.025em;   /* tracking-tight — était -0.02em */
  line-height: 1.2;
  color: var(--ki-navy);
  margin-bottom: 1.25rem;
}

.ki-section__title--white { color: var(--ki-white); }

.ki-section__intro {
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 1.75;           /* leading-7 — était 1.7 */
  color: var(--ki-text-muted);
  max-width: 70rem;
  margin-inline: auto;
}

.ki-section__intro--muted {
  color: var(--ki-gray-400);
}

@media (width < 768px) {
  .ki-section__intro {
    font-size: 1rem;
    line-height: 1.5;
  }
}

.ki-text-gold { color: var(--ki-gold); }

/* Morceaux de titre animés séparément au scroll (inline-block pour transform) */
.ki-section__header .ki-section__title .ki-section__title-lead,
.ki-section__header .ki-section__title .ki-text-gold {
  display: inline-block;
}

/* ─────────────────────────────────────────────
   PAGE WORDPRESS GÉNÉRIQUE (thème enfant page.php)
   ───────────────────────────────────────────── */
.ki-default-page.ki-section {
  /* Header fixe : même ordre de grandeur que .ki-hero (≤1023px) */
  padding-top: calc(5rem + var(--ki-space-6));
  padding-bottom: var(--ki-section-padding-y);
}

@media (min-width: 1024px) {
  .ki-default-page.ki-section {
    padding-top: calc(6rem + var(--ki-space-6));
  }
}

.ki-default-page__article {
  max-width: 42rem;
  margin-inline: auto;
}

.ki-default-page__title {
  font-size: clamp(1.75rem, 4vw, 2.25rem);
  font-weight: 700;
  line-height: 1.2;
  color: var(--ki-navy);
  margin: 0 0 var(--ki-space-6);
}

.ki-default-page__content {
  font-size: 1rem;
  line-height: 1.65;
  color: var(--ki-text-muted);
}

.ki-default-page__content > *:first-child {
  margin-top: 0;
}

.ki-default-page__content p {
  margin: 0 0 1em;
}

.ki-default-page__content p:last-child {
  margin-bottom: 0;
}

.ki-default-page__content h2,
.ki-default-page__content h3,
.ki-default-page__content h4 {
  color: var(--ki-navy);
  font-weight: 600;
  line-height: 1.3;
  margin: var(--ki-space-8) 0 var(--ki-space-3);
}

.ki-default-page__content h2:first-child,
.ki-default-page__content h3:first-child,
.ki-default-page__content h4:first-child {
  margin-top: 0;
}

.ki-default-page__content h2 {
  font-size: clamp(1.25rem, 2.5vw, 1.5rem);
}

.ki-default-page__content h3 {
  font-size: 1.125rem;
}

.ki-default-page__content h4 {
  font-size: 1rem;
}

.ki-default-page__content strong {
  color: var(--ki-navy);
  font-weight: 600;
}

.ki-default-page__content a {
  color: var(--ki-navy);
  text-decoration: underline;
  text-underline-offset: 0.15em;
  transition: color var(--ki-transition-fast);
}

.ki-default-page__content a:hover,
.ki-default-page__content a:focus-visible {
  color: var(--ki-gold);
}

.ki-default-page__content ul:not(.blocks-gallery-grid),
.ki-default-page__content ol {
  margin: var(--ki-space-3) 0 var(--ki-space-4);
  padding-left: var(--ki-space-6);
}

.ki-default-page__content li {
  margin-bottom: var(--ki-space-2);
}

.ki-default-page__content li:last-child {
  margin-bottom: 0;
}

.ki-default-page__content blockquote {
  margin: var(--ki-space-6) 0;
  padding-left: var(--ki-space-4);
  border-left: 3px solid var(--ki-gold);
  color: var(--ki-gray-600);
  font-style: italic;
}

.ki-default-page__page-links {
  display: block;
  margin-top: var(--ki-space-8);
  font-size: 0.9375rem;
  color: var(--ki-text-muted);
}

.ki-default-page__page-links-label {
  font-weight: 600;
  color: var(--ki-navy);
  margin-right: var(--ki-space-2);
}

/* ─────────────────────────────────────────────
   HERO
   ───────────────────────────────────────────── */
/* ─── HERO — structure identique au composant React ───────────────
   Desktop ≥1024px : hauteur pilotée par la colonne gauche ; l’image est en
   absolute (object-fit: cover) pour ne pas imposer la hauteur de ligne flex.
   • Colonne gauche : 65 % avec padding-left calé sur le container 1280 px
   • Colonne droite : 35 % sans max-width → touche le bord droit du viewport
   ─────────────────────────────────────────────────────────────────── */
.ki-hero {
  position: relative;
  background: var(--ki-navy);
  min-height: 70vh;
  display: flex;
  flex-direction: column;
  padding-top: 5rem; /* compense la navbar fixe */
  /* Aligné sur le rythme des sections ; pas de doublon avec .ki-hero__content (<1024px) */
  padding-bottom: var(--ki-section-padding-y);
  overflow: hidden;
}

@media (min-width: 1024px) {
  .ki-hero {
    padding-top: 0;
    padding-bottom: 0;
    /* Hauteur = contenu colonne gauche, pas min-viewport ni image */
    min-height: 0;
  }
}

/* Wrapper full-width — flex row sur desktop */
.ki-hero__content {
  display: flex;
  flex-direction: column;
  width: 100%;
  flex: 1;
}

@media (min-width: 1024px) {
  .ki-hero__content {
    flex-direction: row;
    align-items: stretch;
    min-height: 0;
    padding-bottom: 0;
  }

  /* Annule le mode « image sous h1 » (mobile / tablette empilée) */
  .ki-hero__badge-row,
  .ki-hero__title,
  .ki-hero__desc,
  .ki-hero__cta-group,
  .ki-hero__pillars,
  .ki-hero__content > .ki-hero__badge {
    order: initial;
    padding-inline: initial;
    padding-top: initial;
  }

  .ki-hero__right {
    order: initial;
  }
}

/* ── Colonne gauche ──────────────────────────────────────────────── */
.ki-hero__left {
  width: 100%;
  display: flex;
  flex-direction: column;   /* enfants empilés verticalement */
  justify-content: center;  /* centrage vertical sur desktop */
  align-items: flex-start;
  padding-block: 3rem 2.5rem;
  padding-left:  max(1rem, calc((100vw - 1280px) / 2 + 2rem));
  padding-right: clamp(1rem, 4vw, 2rem);
  z-index: 10;
}

@media (min-width: 1024px) {
  .ki-hero__left {
    width: 65%;
    flex-shrink: 0;
    padding-block: 7rem;
    padding-right: 3rem;
  }
}

/*
 * Hero empilé (<1024px) : photo sous le h1 (toutes les pages .ki-hero).
 * .ki-hero__left en display:contents pour intercaler .ki-hero__right via flex order.
 * Variante fiscal : .ki-hero__badge seul (sans .ki-hero__badge-row).
 */
@media (width < 1024px) {
  .ki-hero__left {
    display: contents;
  }

  .ki-hero__badge-row,
  .ki-hero__title,
  .ki-hero__desc,
  .ki-hero__cta-group,
  .ki-hero__pillars,
  .ki-hero__content > .ki-hero__badge {
    padding-inline: max(1rem, calc((100vw - 1280px) / 2 + 2rem)) clamp(1rem, 4vw, 2rem);
  }

  .ki-hero__badge-row,
  .ki-hero__content > .ki-hero__badge {
    order: 1;
    padding-top: 3rem;
  }

  .ki-hero__content > .ki-hero__title:first-child {
    padding-top: 3rem;
  }

  .ki-hero__title {
    order: 2;
  }

  .ki-hero__right {
    order: 3;
    width: 100%;
    margin-bottom: 1.5rem;
  }

  .ki-hero__desc {
    order: 4;
  }

  .ki-hero__cta-group {
    order: 5;
  }

  .ki-hero__pillars {
    order: 6;
  }
}

.ki-hero__badge-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}

.ki-hero__badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  border-radius: var(--ki-radius-full);
  border: 1px solid rgba(255,255,255,0.15);
  background: rgba(22,39,65,0.5);
  backdrop-filter: blur(8px);
  font-size: 0.875rem;
  font-weight: 500;
  color: #e5e7eb;
  margin-bottom: 0;
}

.ki-hero__badge-icon { color: var(--ki-gold); flex-shrink: 0; }

.ki-hero__badge-row .rank-math-breadcrumb {
  margin: 0;
  font-size: 0.8125rem;
  color: var(--ki-white);
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.4rem 0.75rem;
  border-radius: var(--ki-radius-full);
  border: 1px solid rgba(255,255,255,0.16);
  background: rgba(255,255,255,0.07);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.ki-hero__badge-row .rank-math-breadcrumb p{
  margin: 0;
}

.ki-hero__badge-row .rank-math-breadcrumb a {
  color: var(--ki-white);
  text-decoration: none;
}

.ki-hero__badge-row .rank-math-breadcrumb a:hover,
.ki-hero__badge-row .rank-math-breadcrumb a:focus-visible {
  color: var(--ki-gold);
}

.ki-hero__title {
  font-size: clamp(1.875rem, 4vw, 3rem);
  font-weight: 600;
  line-height: 1.15;
  color: var(--ki-white);
  margin-bottom: 1.5rem;
  letter-spacing: -0.02em;
}

.ki-hero__desc {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 2.5rem;
}

.ki-hero__desc p {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--ki-white);
}

.ki-hero__cta-group {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: center;
  margin-bottom: 3rem;
}

.ki-hero__cta-group--single {
  margin-bottom: 2rem;
}

@media (width < 1024px) {
  /* Vue empilée : pas de marge sous le seul CTA (l’air sous le bloc = padding-bottom du .ki-hero) */
  .ki-hero__cta-group--single {
    margin-bottom: 0;
  }
}

/* Hero pages internes (template hero-k-invest layout inner) */
.ki-hero--inner .ki-hero__body {
  margin-top: 0.5rem;
  font-size: 0.95rem;
  line-height: 1.65;
  color: color-mix(in srgb, var(--ki-white) 82%, transparent);
}

.ki-hero--inner .ki-hero__body strong {
  font-weight: 600;
  color: var(--ki-white);
}

.ki-hero--inner .ki-hero__body p {
  margin: 0 0 0.75rem;
}

.ki-hero--inner .ki-hero__body p:last-child {
  margin-bottom: 0;
}

/* Intro / citation riches (hero inner) — forcer clair sur fond navy (évite héritage body / blocs WP) */
.ki-hero--inner .ki-hero__intro-rich,
.ki-hero--inner .ki-hero__intro-rich p,
.ki-hero--inner .ki-hero__intro-rich li {
  color: color-mix(in srgb, var(--ki-white) 88%, transparent);
}

.ki-hero--inner .ki-hero__intro-rich strong {
  color: var(--ki-white);
  font-weight: 600;
}

.ki-hero--inner .ki-hero__intro-rich a {
  color: var(--ki-gold);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.ki-hero--inner .ki-hero__intro-rich a:hover,
.ki-hero--inner .ki-hero__intro-rich a:focus-visible {
  color: color-mix(in srgb, var(--ki-gold) 90%, var(--ki-white));
}

.ki-hero--inner .ki-hero__quote .ki-hero__quote-inner,
.ki-hero--inner .ki-hero__quote .ki-hero__quote-inner p {
  color: color-mix(in srgb, var(--ki-white) 90%, transparent);
}

.ki-hero--inner .ki-hero__quote .ki-hero__quote-inner a {
  color: var(--ki-gold);
}

.ki-hero.ki-hero--inner .ki-hero__title {
  color: var(--ki-white);
}

.ki-hero.ki-hero--inner .ki-hero__title .ki-text-gold {
  color: var(--ki-gold);
}

/* Hero page d’accueil (layout home, sans ki-hero--inner) — .ki-hero__desc-rich + titre */
.ki-hero:not(.ki-hero--inner) .ki-hero__desc-rich {
  color: color-mix(in srgb, var(--ki-white) 88%, transparent);
}

.ki-hero:not(.ki-hero--inner) .ki-hero__desc-rich p,
.ki-hero:not(.ki-hero--inner) .ki-hero__desc-rich li {
  color: inherit;
}

.ki-hero:not(.ki-hero--inner) .ki-hero__desc-rich strong {
  color: var(--ki-white);
  font-weight: 600;
}

.ki-hero:not(.ki-hero--inner) .ki-hero__desc-rich a {
  color: var(--ki-gold);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.ki-hero:not(.ki-hero--inner) .ki-hero__desc-rich a:hover,
.ki-hero:not(.ki-hero--inner) .ki-hero__desc-rich a:focus-visible {
  color: color-mix(in srgb, var(--ki-gold) 90%, var(--ki-white));
}

.ki-hero:not(.ki-hero--inner) .ki-hero__title {
  color: var(--ki-white);
}

.ki-hero:not(.ki-hero--inner) .ki-hero__title .ki-text-gold {
  color: var(--ki-gold);
}

/* =============================================================================
   COMPOSANT — Infobox (.ki-infobox)
   Deux variantes uniquement :
     .ki-infobox--dark   Fond navy, border-left 6px gold — encadré premium
     .ki-infobox--warn   Fond gold, border-left 6px navy — avertissement
   ============================================================================= */

.ki-infobox {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  padding: 1.25rem 1.5rem;
  border-radius: var(--ki-radius-lg, 1rem);
  font-size: 1rem;
  line-height: 1.65;
  align-items: center;
}

.ki-infobox__icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  margin-top: 0.05rem;
}

.ki-infobox__icon svg {
  display: block;
  width: 24px;
  height: 24px;
}

.ki-infobox__body {
  flex: 1;
  min-width: 0;
}

.ki-infobox__title {
  margin: 0 0 0.4rem;
  font-size: 1.125rem;
  font-weight: 700;
  letter-spacing: -0.01em;
}

.ki-infobox__text {
  margin: 0;
  color: inherit;
}

.ki-infobox__text p { margin: 0 0 0.75rem; }
.ki-infobox__text p:last-child { margin-bottom: 0; }

/* ── Variante dark — fond navy, border-left gold ───────────────────────────── */
.ki-infobox--dark {
  background: var(--ki-navy, #162741);
  border-left: 6px solid var(--ki-gold, #bf8d38);
  color: color-mix(in srgb, var(--ki-white) 85%, transparent);
  box-shadow: 0 4px 24px rgba(15, 26, 44, 0.18);
}

.ki-infobox--dark .ki-infobox__icon {
  background: color-mix(in srgb, var(--ki-gold) 16%, transparent);
  color: var(--ki-gold, #bf8d38);
}

.ki-infobox--dark .ki-infobox__title {
  color: var(--ki-gold, #bf8d38);
}

.ki-infobox--dark strong { color: var(--ki-white, #ffffff); }

.ki-infobox--dark a,
.ki-infobox--dark .ki-infobox__link {
  color: var(--ki-gold, #bf8d38);
}

/* ── Variante warn — fond gold, border-left navy ───────────────────────────── */
.ki-infobox--warn {
  background: var(--ki-gold, #bf8d38);
  border-left: 6px solid var(--ki-navy, #162741);
  color: var(--ki-white, #ffffff);
  box-shadow: 0 4px 24px rgba(191, 141, 56, 0.25);
}

.ki-infobox--warn .ki-infobox__icon {
  background: color-mix(in srgb, var(--ki-navy) 16%, transparent);
  color: var(--ki-white, #ffffff);
}

.ki-infobox--warn .ki-infobox__title {
  color: var(--ki-white, #ffffff);
}

.ki-infobox--warn strong { color: var(--ki-white, #ffffff); }

/* ── Lien interne dans une infobox ─────────────────────────────────────────── */
.ki-infobox a,
.ki-infobox .ki-infobox__link {
  color: var(--ki-gold, #bf8d38);
  font-weight: 600;
  text-decoration: none;
  transition: color 180ms ease;
}

.ki-infobox a:hover,
.ki-infobox a:focus,
.ki-infobox a:focus-visible,
.ki-infobox .ki-infobox__link:hover,
.ki-infobox .ki-infobox__link:focus,
.ki-infobox .ki-infobox__link:focus-visible {
  color: var(--ki-gold, #bf8d38);
  text-decoration: none;
}

/* Variante warn : liens en navy sur fond gold (lisibilité + cohérence marque) */
.ki-infobox--warn a,
.ki-infobox--warn .ki-infobox__link {
  color: var(--ki-navy, #162741);
}

.ki-infobox--warn a:hover,
.ki-infobox--warn a:focus,
.ki-infobox--warn a:focus-visible,
.ki-infobox--warn .ki-infobox__link:hover,
.ki-infobox--warn .ki-infobox__link:focus,
.ki-infobox--warn .ki-infobox__link:focus-visible {
  color: color-mix(in srgb, var(--ki-navy) 88%, #000);
  text-decoration: underline;
}

@media (prefers-reduced-motion: reduce) {
  .ki-infobox { transition: none; }
}

/* =============================================================================
   FIN — Infobox
   ============================================================================= */

/* Pont rétrocompatible : .ki-hero__quote hérite visuellement de .ki-infobox
   Les blockquotes existants (bilan, hero) gardent leur balisage HTML intact. */
.ki-hero__quote {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  margin: 1.25rem 0 0;
  padding: 1.15rem 1.25rem;
  border-radius: var(--ki-radius-lg);
  border: 1px solid color-mix(in srgb, var(--ki-gold) 25%, transparent);
  border-left: 3px solid var(--ki-gold, #bf8d38);
  background: color-mix(in srgb, var(--ki-white) 6%, transparent);
}

.ki-hero__quote p {
  margin: 0;
  font-size: 1.0625rem;
  font-style: italic;
  font-weight: 500;
  line-height: 1.6;
  color: color-mix(in srgb, var(--ki-white) 90%, transparent);
}

/* Variante pleine largeur (Bilan diagnostic) */
.ki-hero__quote--navy {
  margin: clamp(2rem, 4vw, 3rem) 0 0;
  padding: 1.25rem 1.5rem;
  border-radius: var(--ki-radius-lg);
  border: 1px solid color-mix(in srgb, var(--ki-gold) 28%, transparent);
  border-left: 6px solid var(--ki-gold, #bf8d38);
  background: color-mix(in srgb, var(--ki-navy) 90%, transparent);
  box-shadow: 0 2px 16px rgba(15, 26, 44, 0.12);
}

.ki-hero__quote--navy p {
  color: color-mix(in srgb, var(--ki-white) 90%, transparent);
}

/* Pillars */
.ki-hero__pillars {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

@media (min-width: 640px) {
  .ki-hero__pillars { grid-template-columns: repeat(3, 1fr); }
}

.ki-hero__pillar {
  padding: 1.25rem;
  border-radius: var(--ki-radius-lg);
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(30, 47, 76, 0.5);
  backdrop-filter: blur(4px);
  transition: background 0.2s;
}

.ki-hero__pillar:hover { background: rgba(30,47,76,0.7); }

.ki-hero__pillar-head {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.5rem;
}

.ki-hero__pillar-icon { color: var(--ki-gold); flex-shrink: 0; }

.ki-hero__pillar-title {
  font-size: 1rem;
  font-weight: 600;
  color: var(--ki-white);
}

.ki-hero__pillar-desc {
  font-size: 0.875rem;
  line-height: 1.5;
  color: #9ca3af;
}

/* ── Colonne droite — photo full-bleed bord droit ───────────────── */
.ki-hero__right {
  position: relative;
  width: 100%;
  overflow: hidden;
  flex-shrink: 0;
}

@media (min-width: 1024px) {
  .ki-hero__right {
    width: 35%;
    border-radius: 0;     /* flush au bord du viewport */
    align-self: stretch;
    min-height: 0;
    /* Pas de hauteur intrinsèque imposée par l’image : la ligne flex prend la hauteur de .ki-hero__left */
  }

  .ki-hero__photo {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
  }

  .ki-hero__photo-placeholder {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
    border-radius: 0;
  }
}
@media (max-width: 1024px) {
  .ki-hero__right {
    height: 40vh;
  }
}

/* Overlay navy multiply */
.ki-hero__right::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(22, 39, 65, 0.35);
  mix-blend-mode: multiply;
  z-index: 1;
}

/* Dégradé : bas→haut sur mobile, droite→gauche sur desktop */
.ki-hero__right::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, var(--ki-navy) 0%, rgba(22,39,65,0.4) 40%, transparent 100%);
  z-index: 2;
}

@media (min-width: 1024px) {
  .ki-hero__right::after {
    background: linear-gradient(to right, var(--ki-navy) 0%, rgba(22,39,65,0.25) 35%, transparent 100%);
  }
}

.ki-hero__photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}

/* Page « Conseiller gestion patrimoine indépendant » : cadrage mobile centré sur le sujet */
@media (max-width: 1024px) {
  .page-template-page-conseiller-gestion-patrimoine-independant .ki-hero__photo {
    object-position: center center;
  }
}

.ki-hero__photo-placeholder {
  width: 100%;
  height: 100%;
  min-height: 300px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  background: rgba(30,47,76,0.5);
  color: rgba(255,255,255,0.3);
  font-size: 0.875rem;
  border-radius: var(--ki-radius-xl);
  border: 1px dashed rgba(255,255,255,0.15);
}

/* Hero : révélation gérée avec .ki-reveal + observer (voir bloc « RÉVÉLATION AU SCROLL ») */

/* ─────────────────────────────────────────────
   STATS / SOCIAL PROOF
   ───────────────────────────────────────────── */
.ki-stats {
  display: block;
  width: 100%;
  background: var(--ki-bg-light);
  padding-block: var(--ki-section-padding-y);
}

.ki-stats__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem 0;
}

@media (min-width: 768px) {
  .ki-stats__grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
  }
}

.ki-stats__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding-inline: 1rem;
}

/* Séparateurs verticaux : entre tous les items sur desktop */
@media (min-width: 768px) {
  .ki-stats__item + .ki-stats__item {
    border-left: 1px solid #e5e7eb;
  }
}

/* Mobile : une colonne (plus de séparateur vertical 2-col) */
@media (width < 768px) {
  .ki-stats__grid {
    grid-template-columns: repeat(1, 1fr);
  }
}

.ki-stats__value {
  font-size: clamp(2.25rem, 4vw, 3rem);
  font-weight: 600;
  color: var(--ki-gold);
  line-height: 1;
  margin-bottom: 0.5rem;
  /* Animation counter : part de 0, arrive à la valeur cible */
  transition: none;
}

.ki-stats__label {
  font-size: 1rem;
  font-weight: 500;
  color: var(--ki-navy);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

/* ─────────────────────────────────────────────
   SERVICES
   ───────────────────────────────────────────── */
.ki-services__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}

@media (min-width: 768px)  { .ki-services__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1280px) { .ki-services__grid { grid-template-columns: repeat(4, 1fr); } }

/* CTA sous la grille — aligné maquette Services.tsx (mt-16, centré) */
.ki-services__cta {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  margin-top: 4rem;
  padding-inline: 0;
  text-align: center;
}

.ki-services__cta .ki-btn {
  flex-shrink: 0;
  max-width: min(100%, 36rem);
  white-space: normal;
  text-align: center;
  line-height: 1.35;
}

@media (min-width: 768px) {
  .ki-services__cta .ki-btn {
    white-space: nowrap;
  }
}

/* =============================================================================
   COMPOSANT — Card (.ki-card)
   Base commune réutilisable sur toutes les pages.
   Utilisée par : ki-service-card, ki-trust-card, ki-fiscal__mini-card,
                  ki-fiscal__device-card et toute future card.

   Structure HTML minimale :
     <div class="ki-card">
       <div class="ki-card__top">   (flex-grow : absorbe la hauteur grille ; desc sans flex-grow)
         <div class="ki-card__icon-wrap"><svg …></div>   (optionnel)
         <h3 class="ki-card__title">…</h3>
         <div class="ki-card__desc">…</div>
       </div>
       <ul class="ki-card__bullets">…</ul>   (optionnel ; marge haute fixe au-dessus des puces)
     </div>

   Modificateurs :
     .ki-card--top-bar   Ajoute une barre colorée en haut via ::before (or par défaut)
     .ki-card--navy-bar  Barre top en navy (ex. device-card)   — combine avec --top-bar
   ============================================================================= */

.ki-card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 2rem;
  background: var(--ki-white);
  border-radius: var(--ki-radius-xl);
  border: var(--ki-card-border);
  box-shadow: var(--ki-card-shadow);
  overflow: hidden;
  transition: box-shadow 0.3s, transform 0.3s, border-color 0.3s;
}

.ki-card:hover {
  box-shadow: var(--ki-card-shadow-hover);
  border-color: var(--ki-gold);
  transform: translateY(-4px);
}

/* Barre de couleur en haut de la card */
.ki-card--top-bar::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--ki-gold, #bf8d38), var(--ki-gold-dark, #a6772a));
  border-radius: var(--ki-radius-xl) var(--ki-radius-xl) 0 0;
}

.ki-card--navy-bar::before {
  background: linear-gradient(90deg, var(--ki-navy, #162741), color-mix(in srgb, var(--ki-navy) 60%, transparent));
}

/* Icon wrap commun */
.ki-card__icon-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 0.75rem;
  background: var(--ki-navy);
  margin-bottom: 1.5rem;
  transition: background 0.3s;
}

.ki-card:hover .ki-card__icon-wrap { background: var(--ki-gold); }

.ki-card__icon { color: var(--ki-white); }

.ki-card__title {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--ki-navy);
  margin-bottom: 0.75rem;
}

/* Bloc haut (icône, titre, desc) : grandit dans la grille ; la desc garde une hauteur texte naturelle */
.ki-card__top {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  min-height: 0;
}

/* Espace entre .ki-card__top et la liste (sélecteur adjacent + 2 classes : au-dessus des resets ul) */
.ki-card > .ki-card__top + .ki-card__bullets {
  margin-block-start: var(--ki-space-6);
}

.ki-card__desc {
  font-size: 1rem;
  line-height: 1.65;
  color: #64748b;
}

/* Corps riche (body_html) — au-dessus du filigrane .ki-card__num */
.ki-card__prose {
  position: relative;
  z-index: 1;
  font-size: 1rem;
  line-height: 1.65;
  color: var(--ki-text-muted);
  flex-grow: 1;
}

.ki-card__prose p {
  margin: 0 0 1em;
}

.ki-card__prose p:last-child {
  margin-bottom: 0;
}

.ki-card__prose strong {
  color: var(--ki-navy);
  font-weight: 600;
}

.ki-card__prose ul:not(.ki-card__bullets) {
  margin: var(--ki-space-3, 0.75rem) 0 var(--ki-space-4, 1rem);
  margin-left: var(--ki-space-3, 0.75rem);
  padding-left: var(--ki-space-5, 1.25rem);
  list-style: disc;
  list-style-position: outside;
  box-sizing: border-box;
}

.ki-card__prose ul:not(.ki-card__bullets) li {
  margin-bottom: var(--ki-space-2, 0.5rem);
}

.ki-card__prose ul:not(.ki-card__bullets) li:last-child {
  margin-bottom: 0;
}

/* Numéro décoratif (ex. service-card) */
.ki-card__num {
  position: absolute;
  top: -1rem;
  right: 0;
  font-size: 6rem;
  font-weight: 900;
  line-height: 1;
  color: rgba(191,141,56,0.05);
  pointer-events: none;
  user-select: none;
  transition: color 0.3s;
}

.ki-card:hover .ki-card__num { color: rgba(191,141,56,0.08); }

/* Badge numéro cerclé (ex. mini-card) */
.ki-card__num-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  margin-bottom: 0.875rem;
  border-radius: 50%;
  font-size: 0.875rem;
  font-weight: 800;
  color: var(--ki-gold, #bf8d38);
  background: color-mix(in srgb, var(--ki-gold) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--ki-gold) 25%, transparent);
}

/* Badge taux (ex. device-card) */
.ki-card__rate {
  display: inline-block;
  margin: 0 0 0.875rem;
  padding: 0.2em 0.7em;
  border-radius: 2rem;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--ki-white);
  background: var(--ki-gold, #bf8d38);
}

/* Bullets list (ex. service-card) — marge au-dessus si la liste suit .ki-card__top : règle adjacente plus haut */
.ki-card__bullets {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  font-size: 1rem;
  color: #64748b;
}

/* Block + puce absolue : évite que flex traite <strong> et les nœuds texte comme des items séparés */
.ki-card__bullets li {
  display: block;
  position: relative;
  padding-left: calc(0.375rem + 0.6rem);
}

.ki-card__bullets li .ki-bullet-dot {
  position: absolute;
  left: 0;
  top: 0.55em;
}

/* =============================================================================
   FIN — Card
   ============================================================================= */

/* =============================================================================
   LISTES PROSE — puces dans le corps de page (HTML metabox / templates)
   .ki-list-plain = liste à puces disc, indentée comme le texte courant
   .ki-list-disc  = alias identique (nom explicite)
   ============================================================================= */

.ki-list-plain,
.ki-list-disc {
  margin: var(--ki-space-3, 0.75rem) 0 var(--ki-space-4, 1rem);
  margin-left: var(--ki-space-3, 0.75rem);
  padding-left: var(--ki-space-5, 1.25rem);
  list-style: disc;
  list-style-position: outside;
  line-height: 1.65;
}

.ki-list-plain li,
.ki-list-disc li {
  margin-bottom: var(--ki-space-2, 0.5rem);
}

.ki-list-plain li:last-child,
.ki-list-disc li:last-child {
  margin-bottom: 0;
}

/* =============================================================================
   FIN — Listes prose
   ============================================================================= */

/* ── Aliases rétrocompatibles — ki-service-card ─────────────────────────────── */
.ki-service-card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 2rem;
  background: var(--ki-white);
  border-radius: var(--ki-radius-xl);
  border: var(--ki-card-border);
  box-shadow: var(--ki-card-shadow);
  overflow: hidden;
  transition: box-shadow 0.3s, transform 0.3s, border-color 0.3s;
}

.ki-service-card:hover {
  box-shadow: var(--ki-card-shadow-hover);
  border-color: var(--ki-gold);
  transform: translateY(-4px);
}

.ki-service-card__num {
  position: absolute;
  top: -1rem;
  right: 0;
  font-size: 6rem;
  font-weight: 900;
  line-height: 1;
  color: rgba(191,141,56,0.05);
  pointer-events: none;
  user-select: none;
  transition: color 0.3s;
}

.ki-service-card:hover .ki-service-card__num { color: rgba(191,141,56,0.08); }

.ki-service-card__icon-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 0.75rem;
  background: var(--ki-navy);
  margin-bottom: 1.5rem;
  transition: background 0.3s;
}

.ki-service-card:hover .ki-service-card__icon-wrap { background: var(--ki-gold); }

.ki-service-card__icon { color: var(--ki-white); }

.ki-service-card__title {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--ki-navy);
  margin-bottom: 0.75rem;
}

.ki-service-card__desc {
  font-size: 1rem;
  line-height: 1.65;
  color: #64748b;
}

.ki-service-card__bullets {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  font-size: 0.875rem;
  color: #64748b;
}

.ki-service-card__bullets li {
  display: block;
  position: relative;
  padding-left: calc(0.375rem + 0.6rem);
}

.ki-service-card__bullets li .ki-bullet-dot {
  position: absolute;
  left: 0;
  top: 0.55em;
}

.ki-bullet-dot {
  display: inline-block;
  width: 0.375rem;
  height: 0.375rem;
  border-radius: 50%;
  background: var(--ki-gold);
  flex-shrink: 0;
}

/* ─────────────────────────────────────────────
   OBJECTIFS (#objectifs) — ObjectiveSlider Figma
   ───────────────────────────────────────────── */

/* Liste mobile (<640px) : liens vers les panneaux + scroll (JS) */
.ki-obj-select-wrap {
  margin-bottom: 3rem;
}

@media (min-width: 640px) {
  .ki-obj-select-wrap {
    display: none;
  }
}

.ki-obj-select-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.ki-obj-select-list__item {
  margin: 0;
}

.ki-obj-select-list__link {
  display: block;
  width: 100%;
  padding: 1rem 1.25rem;
  border-radius: var(--ki-radius-xl);
  border: 1px solid var(--ki-gray-200);
  background: var(--ki-gray-100);
  color: var(--ki-navy);
  font-family: var(--ki-font);
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.35;
  text-decoration: none;
  text-align: left;
  box-shadow: none;
  transition:
    border-color 0.2s ease,
    background 0.2s ease,
    color 0.2s ease,
    box-shadow 0.2s ease;
}

.ki-obj-select-list__link:hover,
.ki-obj-select-list__link:focus-visible {
  border-color: rgba(191, 141, 56, 0.45);
  background: var(--ki-white);
  color: var(--ki-navy);
  text-decoration: none;
}

.ki-obj-select-list__link:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px rgba(191, 141, 56, 0.35);
}

.ki-obj-select-list__link.is-active {
  border-color: var(--ki-gold);
  background: color-mix(in srgb, var(--ki-gold) 12%, var(--ki-white));
  color: var(--ki-navy);
}

/*
 * Slider desktop — aligné sur la maquette fournie :
 * ligne grise continue fine ; centre de chaque cercle sur l’axe de la ligne ;
 * inactif = petit cercle creux navy ; actif = cercle doré plus grand, bordure blanche + halo (pas d’ovale).
 */
.ki-obj-slider--desktop {
  display: none;
  margin-bottom: 7rem;
  padding-top: 0.5rem;
}

@media (min-width: 640px) {
  .ki-obj-slider--desktop {
    display: block;
    margin-bottom: 6rem;
  }
}

.ki-obj-slider__thumbs-line {
  --ki-obj-rail-h: 2.75rem;
  --ki-obj-line-h: 0.25rem;
  --ki-obj-thumb-inactive: 1.5rem;
  --ki-obj-thumb-active: 2.5rem;

  position: relative;
  padding: 0 1rem;
}

/* Ligne derrière les pastilles — centrée sur la zone rail */
.ki-obj-slider__tracks {
  position: absolute;
  z-index: 0;
  left: 2rem;
  right: 2rem;
  top: calc(0.5rem + var(--ki-obj-rail-h) / 2);
  height: var(--ki-obj-line-h);
  transform: translateY(-50%);
  pointer-events: none;
}

.ki-obj-slider__track-bg {
  position: absolute;
  inset: 0;
  background: var(--ki-gray-200);
  border-radius: var(--ki-radius-full);
}

/* Maquette : ligne uniformément grise (pas de segment navy) */
.ki-obj-slider__track-fill {
  display: none;
}

.ki-obj-slider__steps {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.25rem;
  margin: 0;
  padding: 0.5rem 0 0;
  list-style: none;
}

.ki-obj-slider__step {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
  font: inherit;
  color: inherit;
  min-width: 0;
  overflow: visible;
}

/* Centrage vertical des pastilles sur l’axe de la ligne */
.ki-obj-slider__marker-zone {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: var(--ki-obj-rail-h);
  flex-shrink: 0;
}

/* Inactif : petit cercle creux */
.ki-obj-slider__thumb {
  display: block;
  flex-shrink: 0;
  width: var(--ki-obj-thumb-inactive);
  height: var(--ki-obj-thumb-inactive);
  border-radius: 50%;
  border: 3px solid var(--ki-navy);
  background: var(--ki-white);
  box-sizing: border-box;
  transition:
    width 0.25s cubic-bezier(0.22, 1, 0.36, 1),
    height 0.25s cubic-bezier(0.22, 1, 0.36, 1),
    border-width 0.25s ease,
    border-color 0.25s ease,
    background 0.25s ease,
    box-shadow 0.25s ease,
    transform 0.25s ease;
}

.ki-obj-slider__step:hover:not(.is-active) .ki-obj-slider__thumb {
  transform: scale(1.08);
}

/* Actif : cercle doré plus grand, anneau blanc, halo */
.ki-obj-slider__step.is-active .ki-obj-slider__thumb {
  width: var(--ki-obj-thumb-active);
  height: var(--ki-obj-thumb-active);
  border-width: 3px;
  border-color: var(--ki-white);
  background: var(--ki-gold);
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.85),
    0 2px 8px rgba(22, 39, 65, 0.08),
    0 6px 20px rgba(191, 141, 56, 0.42);
  transform: none;
}

.ki-obj-slider__step.is-active:hover .ki-obj-slider__thumb {
  transform: none;
}

.ki-obj-slider__short {
  margin-top: 0.5rem;
  font-size: clamp(0.6875rem, 1.1vw, 0.875rem);
  font-weight: 600;
  text-align: center;
  line-height: 1.25;
  max-width: 7rem;
  color: var(--ki-gray-500);
  transition: color 0.25s ease, font-weight 0.25s ease;
}

.ki-obj-slider__step.is-active .ki-obj-slider__short {
  color: var(--ki-gold);
  font-weight: 600;
}

.ki-obj-slider__step:hover:not(.is-active) .ki-obj-slider__short {
  color: var(--ki-navy);
}

.ki-obj-slider__step.is-active:hover .ki-obj-slider__short {
  color: var(--ki-gold);
}

/* Panneau de contenu */
.ki-obj-panels {
  position: relative;
  margin-top: 2rem;
}

@media (min-width: 640px) {
  .ki-obj-panels {
    margin-top: 0;
  }
}

.ki-obj-panel {
  scroll-margin-top: 5.5rem;
  display: none;
  position: relative;
  border-radius: var(--ki-radius-xl);
  padding: 2rem;
  background: var(--ki-bg-light);
  border: var(--ki-card-border);
  box-shadow: var(--ki-card-shadow);
  overflow: hidden;
}

/* Filet or gauche — même logique d’arrondi que la carte (coins haut-bas à gauche) */
.ki-obj-panel::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0 auto 0 0;
  width: 0.5rem;
  background: var(--ki-gold);
  border-top-left-radius: var(--ki-radius-xl);
  border-bottom-left-radius: var(--ki-radius-xl);
}

/* Filigrane : même cercle que .ki-panel--on-white::after */
.ki-obj-panel::after {
  content: "";
  position: absolute;
  z-index: 0;
  bottom: -2rem;
  right: -2rem;
  width: 8rem;
  height: 8rem;
  border-radius: 50%;
  pointer-events: none;
  background: color-mix(in srgb, var(--ki-gold) 14%, transparent);
}

.ki-obj-panel.is-active {
  display: block;
}

@media (min-width: 768px) {
  .ki-obj-panel {
    padding: 3rem;
  }
}

.ki-obj-panel__inner {
  position: relative;
  z-index: 2;
  max-width: 48rem;
  margin-inline: auto;
  text-align: center;
}

.ki-obj-panel__title {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--ki-navy);
  line-height: 1.3;
  margin: 0 0 1.5rem;
}

.ki-obj-panel__desc {
  margin: 0 0 2rem;
  font-size: clamp(1rem, 2vw, 1.125rem);
  line-height: 1.625;
  color: var(--ki-gray-600);
}

.ki-obj-panel__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  justify-content: center;
  align-items: center;
}

.ki-obj-panel__cta {
  padding: 0.75rem 1.5rem;
  font-size: 0.9375rem;
  font-weight: 500;
}

@media (prefers-reduced-motion: reduce) {
  .ki-obj-slider__track-fill,
  .ki-obj-slider__thumb {
    transition: none;
  }

  .ki-obj-slider__step:hover:not(.is-active) .ki-obj-slider__thumb {
    transform: none;
  }
}

/* ─────────────────────────────────────────────
   SIMULATEUR PATRIMONIAL
   ───────────────────────────────────────────── */
.ki-simulator {
  background: var(--ki-bg-light);
  padding-block: var(--ki-section-padding-y);
}

/* Carte principale */
.ki-simulator__card {
  display: flex;
  flex-direction: column;
  background: var(--ki-white);
  border-radius: var(--ki-radius-xl);
  border: var(--ki-card-border);
  box-shadow: var(--ki-card-shadow);
  overflow: hidden;
  transition: box-shadow 0.3s ease, border-color 0.3s;
}

.ki-simulator__card:hover {
  box-shadow: var(--ki-card-shadow-hover);
}

@media (min-width: 1024px) {
  .ki-simulator__card {
    flex-direction: row;
  }
}

/* ── Panneau gauche — contrôles ──────────────── */
.ki-simulator__controls {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  padding: 2rem;
  background: var(--ki-white);
}

@media (min-width: 1024px) {
  .ki-simulator__controls {
    width: 33.333%;
    flex-shrink: 0;
    border-right: 1px solid #f1f5f9;
    padding: 2.5rem;
    justify-content: center;
  }
}

/* Champ slider */
.ki-sim-field {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}

.ki-sim-field__row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.5rem;
}

.ki-sim-field__label {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--ki-navy);
}

.ki-sim-field__val {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--ki-navy);
  white-space: nowrap;
}

/* Range input — accent gold natif */
.ki-sim-range {
  width: 100%;
  height: 0.5rem;
  background: #e5e7eb;
  border-radius: 9999px;
  appearance: none;
  cursor: pointer;
  accent-color: var(--ki-gold);
  outline: none;
}

.ki-sim-range:focus-visible {
  outline: 2px solid var(--ki-gold);
  outline-offset: 3px;
}

/* Boutons profil de risque */
.ki-sim-profiles {
  display: flex;
  gap: 0.5rem;
}

.ki-sim-profile {
  flex: 1;
  padding: 0.5rem 0.25rem;
  font-size: 0.75rem;
  font-weight: 500;
  border-radius: var(--ki-radius-sm);
  border: none;
  background: #f3f4f6;
  color: #4b5563;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
}

.ki-sim-profile:hover {
  background: #e5e7eb;
}

.ki-sim-profile.is-active {
  background: var(--ki-navy);
  color: var(--ki-white);
}

/* ── Panneau droit — graphique ───────────────── */
.ki-simulator__right {
  display: flex;
  flex-direction: column;
  padding: 2rem;
  background: rgba(249,250,251,0.5);
}

@media (min-width: 1024px) {
  .ki-simulator__right {
    flex: 1;
    padding: 2.5rem;
  }
}

/* Ligne résultat + CTA */
.ki-simulator__result-row {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 2rem;
}

@media (min-width: 640px) {
  .ki-simulator__result-row {
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-end;
  }
}

.ki-simulator__result-label {
  font-size: 0.875rem;
  color: #6b7280;
  margin-bottom: 0.25rem;
}

.ki-simulator__result-val {
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  font-weight: 600;
  color: var(--ki-navy);
  line-height: 1;
  transition: all 0.3s ease;
}

/* Canvas */
.ki-simulator__canvas-wrap {
  position: relative;
  flex: 1;
  min-height: 280px;
  width: 100%;
}

.ki-simulator__canvas-wrap canvas {
  width: 100% !important;
  height: 100% !important;
}

/* Disclaimer */
.ki-simulator__disclaimer {
  font-size: 0.75rem;
  color: #9ca3af;
  text-align: center;
  margin-top: 1rem;
}

/* ─────────────────────────────────────────────
   MÉTHODOLOGIE
   ───────────────────────────────────────────── */
.ki-method__wrap {
  position: relative;
}

.ki-method__line {
  display: none;
}

@media (min-width: 1024px) {
  .ki-method__line {
    display: block;
    position: absolute;
    top: 2.5rem;
    left: 12.5%;
    right: 12.5%;
    height: 1px;
    background: rgba(255, 255, 255, 0.08);
    z-index: 0;
  }
}

.ki-method__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  position: relative;
  z-index: 1;
}

@media (min-width: 768px)  { .ki-method__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .ki-method__grid { grid-template-columns: repeat(4, 1fr); } }

.ki-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  position: relative;
}

.ki-step__ghost-num {
  position: absolute;
  top: -2rem;
  left: -1rem;
  font-size: 4rem;
  font-weight: 900;
  line-height: 1;
  color: rgba(191, 141, 56, 0.15);
  pointer-events: none;
  user-select: none;
  transition: transform 0.5s ease;
}

@media (width < 768px) {
  .ki-step__ghost-num {
    left: 60%;
  }
}

@media (min-width: 768px) {
  .ki-step__ghost-num {
    left: auto;
    right: 1rem;
  }
}

.ki-step:hover .ki-step__ghost-num {
  transform: translateY(-0.5rem);
}

.ki-step__icon-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 5rem;
  height: 5rem;
  border-radius: 50%;
  background: var(--ki-navy);
  border: 1px solid rgba(255, 255, 255, 0.12);
  margin-bottom: 2rem;
  position: relative;
  z-index: 1;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);
  transition: border-color 0.3s, background 0.3s;
}

.ki-step:hover .ki-step__icon-wrap {
  border-color: var(--ki-gold);
  background: rgba(22, 39, 65, 0.8);
}

.ki-step__icon { color: var(--ki-gold); }

.ki-step__title {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--ki-white);
  margin-bottom: 0.75rem;
  transition: color 0.3s;
}

.ki-step:hover .ki-step__title { color: var(--ki-gold); }

.ki-step__desc {
  font-size: 0.875rem;
  line-height: 1.65;
  color: #9ca3af;
}

/* ─────────────────────────────────────────────
   TRUST BLOCK
   ───────────────────────────────────────────── */
.ki-trust__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}

@media (min-width: 768px) { .ki-trust__grid { grid-template-columns: repeat(3, 1fr); } }

.ki-trust__simulator {
  margin-block-start: 3rem;
}

/* Simulateur 4 leviers (shortcode) : masqué en dessous de 500px (layout trop dense). */
@media (max-width: 500px) {
  #simu-wrapper.ki-simu {
    display: none !important;
  }

  .ki-trust__simulator {
    display: none;
    margin-block-start: 0;
  }
}

.ki-trust-card {
  padding: 2rem;
  background: var(--ki-white);
  border-radius: var(--ki-radius-xl);
  border: 1px solid #f3f4f6;
  /* shadow-lg shadow-gray-200/50 — identique au design Figma */
  box-shadow:
    0 10px 15px -3px rgba(229, 231, 235, 0.5),
    0 4px 6px  -4px rgba(229, 231, 235, 0.5);
  transition: box-shadow 0.3s, transform 0.3s, border-color 0.3s;
}

.ki-trust-card:hover {
  /* shadow-xl au hover */
  box-shadow:
    0 20px 25px -5px rgba(229, 231, 235, 0.6),
    0 8px 10px  -6px rgba(229, 231, 235, 0.6);
  border-color: var(--ki-gold);
  transform: translateY(-4px);
}

.ki-trust-card__icon-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 0.75rem;
  background: var(--ki-navy);
  margin-bottom: 1.5rem;
  transition: background 0.3s;
}

.ki-trust-card:hover .ki-trust-card__icon-wrap { background: var(--ki-gold); }

.ki-trust-card__icon { color: var(--ki-white); }

.ki-trust-card__title {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--ki-navy);
  margin-bottom: 0.75rem;
}

.ki-trust-card__desc {
  font-size: 1rem;
  line-height: 1.65;
  color: #64748b;
}

/* TrustBlock — bloc testimonial + pourquoi */
.ki-trust__bottom {
  margin-top: 4rem;
  border-radius: var(--ki-radius-xl);
  background: var(--ki-bg-light);
  border: var(--ki-card-border);
  box-shadow: var(--ki-card-shadow);
  padding: 2.5rem;
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
}

@media (min-width: 768px) {
  .ki-trust__bottom {
    grid-template-columns: 1.2fr 0.8fr;
    gap: 3rem;
    align-items: center;
    padding: 3rem;
  }
}

/* Mobile : aligné sur .ki-trust__grid / .ki-trust__bottom (min-width: 768px) */
@media (width < 768px) {
  .ki-trust__bottom {
    padding: 1.5rem;
  }

  .ki-trust__testimonial-quote {
    font-size: 1rem;
    line-height: 1.5;
  }
}

.ki-trust__testimonial-label {
  font-size: 0.875rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #9ca3af;
  margin-bottom: 1.25rem;
}

.ki-trust__testimonial-quote {
  font-size: 1.25rem;         /* text-lg — était 1.0625rem */
  line-height: 1.625;          /* leading-relaxed — était 1.7 */
  color: var(--ki-navy);
  font-style: normal;
  font-weight: 400;
  letter-spacing: -0.015em;   /* tracking-tight — était -0.01em */
  margin: 0;
}

.ki-trust__why {
  background: var(--ki-white);
  border: var(--ki-card-border);
  border-radius: var(--ki-radius-xl);
  padding: 1.5rem;
  box-shadow: var(--ki-card-shadow);
}

.ki-trust__why-title {
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ki-navy);
  margin-bottom: 1.25rem;
}

.ki-trust__why-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.ki-trust__why-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  font-size: 1rem;
  color: #374151;
}

.ki-trust__why-icon {
  color: var(--ki-gold);
  flex-shrink: 0;
  margin-top: 0.1rem;
}

/* ─────────────────────────────────────────────
   AVIS
   ───────────────────────────────────────────── */
.ki-reviews__rating {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  margin-top: 1rem;
}

.ki-reviews__score {
  font-size: 2rem;
  font-weight: 700;
  color: var(--ki-navy);
}

.ki-reviews__stars {
  display: flex;
  color: var(--ki-gold);
}

.ki-reviews__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}

@media (min-width: 768px) { .ki-reviews__grid { grid-template-columns: repeat(3, 1fr); } }

/* Trustindex (shortcode Google) */
.ki-reviews__trustindex {
  width: 100%;
  margin-top: 1rem;
}

.ki-reviews__trustindex iframe {
  max-width: 100%;
}

.ki-reviews__cta {
  margin-top: 3rem;
  text-align: center;
}

.ki-review-card {
  display: flex;
  flex-direction: column;
  padding: 2rem;
  background: var(--ki-white);
  border-radius: var(--ki-radius-xl);
  border: var(--ki-card-border);
  box-shadow: var(--ki-card-shadow);
  transition: box-shadow 0.3s, transform 0.3s, border-color 0.3s;
}

.ki-review-card:hover {
  box-shadow: var(--ki-card-shadow-hover);
  border-color: var(--ki-gold);
  transform: translateY(-4px);
}

.ki-review-card__stars {
  display: flex;
  color: var(--ki-gold);
  margin-bottom: 1rem;
}

.ki-review-card__text {
  font-size: 1rem;
  line-height: 1.65;
  color: #64748b;
  font-style: italic;
  flex-grow: 1;
  margin: 0 0 1.5rem;
}

.ki-review-card__author {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.ki-review-card__avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background: var(--ki-navy);
  color: var(--ki-white);
  font-size: 0.875rem;
  font-weight: 600;
  flex-shrink: 0;
}

.ki-review-card__name {
  font-size: 1rem;
  font-weight: 600;
  color: var(--ki-navy);
  margin: 0;
}

.ki-review-card__role {
  font-size: 0.8125rem;
  color: #9ca3af;
  margin: 0;
}

/* ─────────────────────────────────────────────
   FAQ — surcharges marque uniquement (structure + tokens génériques : parent sc-faq-accordion)
   k-invest-components dépend de sc-faq-accordion pour charger après le parent.
   ───────────────────────────────────────────── */
.sc-faq.ki-faq .sc-faq__item {
  background: var(--ki-white);
  border-radius: var(--ki-radius-lg);
  border: var(--ki-card-border);
  box-shadow: var(--ki-card-shadow);
}

.sc-faq.ki-faq .sc-faq__item:hover {
  box-shadow: var(--ki-card-shadow-hover);
  border-color: var(--ki-gold);
}

.sc-faq.ki-faq .sc-faq__question {
  font-family: var(--ki-font);
  color: var(--ki-text-muted);
}

.sc-faq.ki-faq .sc-faq__question:hover,
.sc-faq.ki-faq .sc-faq__question[aria-expanded="true"] {
  color: var(--ki-gold);
}

.sc-faq.ki-faq .sc-faq__chevron {
  color: var(--ki-gold);
}

.sc-faq.ki-faq .sc-faq__answer {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--ki-text-muted);
}

.sc-faq.ki-faq .sc-faq__answer-inner p:last-child {
  margin-bottom: 0;
}

/* ─────────────────────────────────────────────
   Page Contact — coordonnées (2 col.) + avis Trustindex
   ───────────────────────────────────────────── */
.ki-section--contact-coords {
  padding-block: var(--ki-section-padding-y);
}

.ki-contact-coords__header.ki-section__header {
  margin-bottom: var(--ki-space-12);
}

.ki-contact-coords__layout {
  display: grid;
  gap: var(--ki-space-6);
  grid-template-columns: 1fr;
  align-items: start;
}

@media (min-width: 960px) {
  .ki-contact-coords__layout:not(.ki-contact-coords__layout--single) {
    grid-template-columns: minmax(0, 3fr) minmax(0, 7fr);
    gap: clamp(var(--ki-space-6), 4vw, var(--ki-space-12));
  }
}

.ki-contact-coords__primary {
  display: flex;
  flex-direction: column;
  gap: var(--ki-space-6);
  min-width: 0;
}

.ki-contact-coords__row--tel-mail {
  display: grid;
  gap: var(--ki-space-6);
  grid-template-columns: 1fr;
}

.ki-contact-coords__block {
  display: flex;
  gap: var(--ki-space-6);
  align-items: flex-start;
  padding: var(--ki-radius-lg);
  border-radius: var(--ki-radius-lg);
  border: var(--ki-card-border);
  box-shadow: var(--ki-shadow);
  background: var(--ki-white);
  transition: var(--ki-transition);
}

.ki-contact-coords__block:hover {
  border-color: color-mix(in srgb, var(--ki-gold) 35%, transparent);
  box-shadow: var(--ki-card-shadow-hover);
}

.ki-contact-coords__icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--ki-contact-coords-icon-size);
  height: var(--ki-contact-coords-icon-size);
  border-radius: var(--ki-radius);
  color: var(--ki-gold);
  background: color-mix(in srgb, var(--ki-navy) 6%, transparent);
}

.ki-contact-coords__body {
  min-width: 0;
}

.ki-contact-coords__label {
  margin: 0 0 0.35rem;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ki-text-muted);
}

.ki-contact-coords__value {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--ki-navy);
  text-decoration: none;
  word-break: break-word;
}

a.ki-contact-coords__value:hover,
a.ki-contact-coords__value:focus-visible {
  color: var(--ki-gold);
  text-decoration: none;
}

a.ki-contact-coords__value:focus-visible {
  outline: 2px solid var(--ki-focus-ring);
  outline-offset: var(--ki-focus-offset);
}

.ki-contact-coords__value--text {
  font-weight: 500;
}

.ki-contact-coords__socials {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--ki-space-3);
}

.ki-contact-coords__social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--ki-contact-coords-social-hit);
  height: var(--ki-contact-coords-social-hit);
  border-radius: var(--ki-radius-full);
  border: var(--ki-card-border);
  color: var(--ki-navy);
  background: var(--ki-white);
  box-shadow: var(--ki-shadow);
  transition: var(--ki-transition);
}

.ki-contact-coords__social-link:hover {
  color: var(--ki-gold);
  border-color: color-mix(in srgb, var(--ki-gold) 40%, transparent);
  box-shadow: var(--ki-card-shadow-hover);
  transform: translateY(-2px);
}

.ki-contact-coords__social-link:focus-visible {
  outline: 2px solid var(--ki-focus-ring);
  outline-offset: var(--ki-focus-offset);
}

.ki-contact-coords__social-svg {
  display: block;
}

.ki-contact-coords__reviews {
  min-width: 0;
  padding: var(--ki-radius-lg);
  border-radius: var(--ki-radius-lg);
  border: var(--ki-card-border);
  box-shadow: var(--ki-shadow);
  background: var(--ki-white);
}

@media (min-width: 960px) {
  .ki-contact-coords__layout:not(.ki-contact-coords__layout--single) .ki-contact-coords__reviews {
    position: sticky;
    top: var(--ki-space-24);
  }
}

/* Hero page Contact : léger repère visuel (structure hero inchangée) */
.ki-hero--inner.ki-hero--contact .ki-hero__badge {
  border-color: color-mix(in srgb, var(--ki-gold) 35%, transparent);
}

/* ─────────────────────────────────────────────
   CTA CONTACT — aligné ContactCTA.tsx (Références)
   ───────────────────────────────────────────── */
.ki-section--contact-cta {
  padding-block: var(--ki-section-padding-y);
}

.ki-cta-block {
  display: grid;
  grid-template-columns: 1fr;
  border-radius: var(--ki-radius-2xl);
  overflow: hidden;
  background: var(--ki-navy);
  border: var(--ki-card-border);
  box-shadow: var(--ki-card-shadow);
}

@media (min-width: 1024px) {
  .ki-cta-block {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  }
}

.ki-cta-block__left {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: var(--ki-space-8);
  border-bottom: 1px solid var(--ki-on-navy-border);
}

@media (min-width: 768px) {
  .ki-cta-block__left {
    padding: var(--ki-space-12);
  }
}

@media (min-width: 1024px) {
  .ki-cta-block__left {
    border-bottom: none;
    border-right: 1px solid var(--ki-on-navy-border);
  }
}

.ki-cta-block__left-top {
  flex: 1 1 auto;
}

.ki-cta-block__left .ki-cta-block__mini-faq {
  flex-shrink: 0;
  margin-top: var(--ki-space-12);
}

.ki-cta-block__title {
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  font-weight: 600;
  color: var(--ki-white);
  line-height: 1.2;
  margin-top: var(--ki-space-4);
  margin-bottom: var(--ki-space-6);
  letter-spacing: -0.02em;
}

.ki-cta-block__desc {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--ki-gray-300);
  margin-bottom: var(--ki-space-10);
}

.ki-cta-block__checklist {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--ki-space-10);
  display: flex;
  flex-direction: column;
  gap: var(--ki-space-5);
}

.ki-cta-block__checklist li {
  display: flex;
  align-items: flex-start;
  gap: var(--ki-space-3);
  font-size: 1rem;
  color: var(--ki-gray-200);
  font-weight: 400;
}

.ki-cta-block__check-icon { color: var(--ki-gold); flex-shrink: 0; margin-top: 0.1rem; }

.ki-cta-block__mini-faq {
  background: var(--ki-on-navy-surface);
  border: 1px solid var(--ki-on-navy-border);
  border-radius: var(--ki-radius-xl);
  padding: var(--ki-space-6);
}

.ki-cta-block__mini-faq-label {
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ki-gray-400);
  margin-bottom: var(--ki-space-5);
}

.ki-cta-block__mini-faq-item {
  padding-bottom: var(--ki-space-5);
  margin-bottom: var(--ki-space-5);
  border-bottom: 1px solid var(--ki-on-navy-divider);
}

.ki-cta-block__mini-faq-item:last-child {
  padding-bottom: 0;
  margin-bottom: 0;
  border-bottom: none;
}

.ki-cta-block__mini-faq-q {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--ki-white);
  margin: 0 0 0.25rem;
}

.ki-cta-block__mini-faq-a {
  font-size: 0.875rem;
  color: var(--ki-gray-400);
  margin: 0;
}

/* Colonne droite : calendrier (blanc) ou formulaire (repli) */
.ki-cta-block__right {
  padding: var(--ki-space-8);
  background: var(--ki-white);
}

@media (min-width: 768px) {
  .ki-cta-block__right {
    padding: var(--ki-space-12);
  }
}

.ki-cta-block__right--booking {
  display: flex;
  flex-direction: column;
}

/* Ancrage depuis les CTA « contact » : évite que le header fixe masque la colonne RDV */
#contact-booking {
  scroll-margin-top: 6rem;
}

/* Bloc réservation Outlook — ContactCTA.tsx */
.ki-cta-booking {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 0;
}

.ki-cta-booking__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ki-space-4);
  margin-bottom: var(--ki-space-8);
}

.ki-cta-booking__header-text {
  min-width: 0;
}

.ki-cta-booking__kicker {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ki-gray-500);
}

.ki-cta-booking__title {
  margin: 0.5rem 0 0;
  font-size: clamp(1.25rem, 2.5vw, 1.5rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.25;
  color: var(--ki-navy);
}

.ki-cta-booking__sub {
  margin: 0.5rem 0 0;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: var(--ki-text-muted);
}

.ki-cta-booking__icon-wrap {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--ki-cta-booking-icon-wrap);
  height: var(--ki-cta-booking-icon-wrap);
  border-radius: var(--ki-radius-lg);
  background: var(--ki-on-navy-gold-tint);
}

.ki-cta-booking__icon {
  color: var(--ki-gold);
}

.ki-cta-booking__card {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--ki-space-5);
  padding: var(--ki-space-6);
  border-radius: var(--ki-radius-xl);
  border: var(--ki-card-border);
  box-shadow: var(--ki-card-shadow);
  background: var(--ki-bg-light);
}

.ki-cta-booking__primary-block {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.375rem;
}

.ki-cta-booking__hint {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.55;
  color: var(--ki-text-muted);
  text-align: center;
}

.ki-cta-booking__primary {
  width: 100%;
  max-width: 100%;
  justify-content: center;
  text-align: center;
  white-space: normal;
  line-height: 1.35;
}

.ki-cta-booking__or {
  margin: var(--ki-space-6) 0 var(--ki-space-3);
  text-align: center;
  font-size: 0.875rem;
  color: var(--ki-gray-500);
}

/* « ou » entre le bloc calendrier et la carte formulaire (ou lien secondaire) */
.ki-cta-booking__or--before-form {
  margin: var(--ki-space-6) 0 var(--ki-space-3);
}

.ki-cta-booking__alt {
  width: 100%;
  max-width: 100%;
  justify-content: center;
  text-align: center;
  white-space: normal;
}

/* Shortcode thème parent [sc_contact_form] */
.ki-cta-booking__sc-form.ki-sc-contact-form {
  width: 100%;
  margin-top: 0;
}

.ki-cta-booking__sc-form .sc-contact-form {
  max-width: 100%;
}

.ki-contact-form-wrap--fallback .ki-sc-contact-form .sc-contact-form {
  max-width: 100%;
}

/*
 * Bouton « Envoyer » — même rendu que « Choisir un créneau » (.ki-btn--navy.ki-btn--lg)
 */
.ki-sc-contact-form .sc-contact-form__submit.sc-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 1rem 2rem;
  font-family: var(--ki-font);
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.35;
  white-space: normal;
  text-align: center;
  color: var(--ki-white);
  background: var(--ki-navy);
  border: none;
  border-radius: var(--ki-radius-full);
  box-shadow: var(--ki-shadow-navy);
  cursor: pointer;
  transition: background 0.3s ease, box-shadow 0.3s ease;
}

.ki-sc-contact-form .sc-contact-form__submit.sc-btn:hover,
.ki-sc-contact-form .sc-contact-form__submit.sc-btn:focus {
  opacity: 1;
  color: var(--ki-white);
  background: var(--ki-navy-cta-hover);
}

.ki-sc-contact-form .sc-contact-form__submit.sc-btn:focus-visible {
  outline: 2px solid var(--ki-focus-ring);
  outline-offset: var(--ki-focus-offset);
}

.ki-sc-contact-form .sc-contact-form__submit.sc-btn::after {
  content: '';
  display: inline-block;
  flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23bf8d38' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3Cpolyline points='12 5 19 12 12 19'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  transition: transform 0.3s ease;
}

.ki-sc-contact-form .sc-contact-form__submit.sc-btn:hover::after,
.ki-sc-contact-form .sc-contact-form__submit.sc-btn:focus::after {
  transform: translateX(6px);
}

@media (min-width: 640px) {
  .ki-sc-contact-form .sc-contact-form__submit.sc-btn {
    width: 100%;
    min-width: 0;
  }
}

/* Bouton secondaire — maquette « Contactez-moi » */
.ki-btn--outline-navy {
  background: transparent;
  color: var(--ki-navy);
  border: 2px solid var(--ki-navy);
  font-weight: 600;
  padding: 1rem 1.5rem;
  font-size: 1rem;
  border-radius: var(--ki-radius-lg);
  box-shadow: none;
}

.ki-btn--outline-navy:hover,
.ki-btn--outline-navy:focus {
  background: var(--ki-bg-light);
  color: var(--ki-navy);
  border-color: var(--ki-navy);
  box-shadow: none;
}

.ki-btn--outline-navy:focus-visible {
  outline-color: var(--ki-navy);
}

/* Repli formulaire (pas d’URL calendrier) */
.ki-cta-block__right--form-fallback {
  background: var(--ki-bg-light);
}

.ki-contact-form-wrap--fallback {
  background: var(--ki-white);
  border: var(--ki-card-border);
  border-radius: var(--ki-radius-xl);
  padding: var(--ki-space-8);
  box-shadow: var(--ki-card-shadow);
}

.ki-contact-form-wrap--fallback .ki-contact-cta__fallback-note {
  margin-top: var(--ki-space-5);
}

/* Titre + sous-titre seuls : le formulaire [sc_contact_form] est dans ki-cta-booking__card */
.ki-contact-form-wrap--with-booking-card {
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
}

.ki-contact-form-wrap--with-booking-card .ki-contact-form-wrap__title--fallback {
  margin-bottom: 0.25rem;
}

.ki-contact-form-wrap--with-booking-card .ki-contact-form-wrap__sub--fallback {
  margin-bottom: var(--ki-space-5);
}

.ki-contact-form-wrap--with-booking-card .ki-cta-booking__card {
  margin-top: 0;
}

.ki-contact-form-wrap__title--fallback {
  font-size: 1.375rem;
  font-weight: 600;
  color: var(--ki-navy);
  margin-bottom: 0.25rem;
}

.ki-contact-form-wrap__sub--fallback {
  font-size: 0.875rem;
  color: var(--ki-gray-500);
  margin-bottom: var(--ki-space-6);
}

.ki-form--light .ki-form__field label {
  color: var(--ki-gray-800);
}

.ki-form--light .ki-form__field input,
.ki-form--light .ki-form__field select,
.ki-form--light .ki-form__field textarea {
  background: var(--ki-white);
  border: 1px solid var(--ki-gray-200);
  color: var(--ki-gray-800);
}

.ki-form--light .ki-form__field input::placeholder,
.ki-form--light .ki-form__field textarea::placeholder {
  color: var(--ki-gray-400);
}

.ki-form--light .ki-form__field input:focus,
.ki-form--light .ki-form__field select:focus,
.ki-form--light .ki-form__field textarea:focus {
  border-color: var(--ki-gold);
  background: var(--ki-white);
}

.ki-form--light .ki-form__field select option {
  background: var(--ki-white);
  color: var(--ki-gray-800);
}

.ki-contact-form-wrap__title {
  font-size: 1.375rem;
  font-weight: 600;
  color: var(--ki-white);
  margin-bottom: 0.25rem;
}

.ki-contact-form-wrap__sub {
  font-size: 0.875rem;
  color: var(--ki-gold);
  margin-bottom: 2rem;
}

.ki-form {
  display: flex;
  flex-direction: column;
  gap: var(--ki-space-5);
}

.ki-form__row--2col {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--ki-space-5);
}

@media (min-width: 640px) {
  .ki-form__row--2col { grid-template-columns: 1fr 1fr; }
}

.ki-form__field {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}

.ki-form__field label {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--ki-gray-300);
}

.ki-form__field input,
.ki-form__field select,
.ki-form__field textarea {
  padding: var(--ki-space-3) var(--ki-space-4);
  background: var(--ki-on-navy-surface);
  border: 1px solid var(--ki-on-navy-border);
  border-radius: var(--ki-radius);
  color: var(--ki-white);
  font-family: var(--ki-font);
  font-size: 1rem;
  transition: border-color 0.2s, background 0.2s;
  width: 100%;
}

.ki-form__field input::placeholder,
.ki-form__field textarea::placeholder {
  color: color-mix(in srgb, var(--ki-white) 30%, transparent);
}

.ki-form__field input:focus,
.ki-form__field select:focus,
.ki-form__field textarea:focus {
  outline: none;
  border-color: var(--ki-gold);
  background: color-mix(in srgb, var(--ki-white) 8%, transparent);
}

.ki-form__field select option { background: var(--ki-navy); color: var(--ki-white); }

.ki-form__field textarea { resize: vertical; min-height: 7rem; }

/* ─────────────────────────────────────────────
   FOOTER
   ───────────────────────────────────────────── */
.ki-footer {
  background: var(--ki-navy-deep);
  color: var(--ki-white);
  /* Même rythme vertical que les sections (.ki-section) */
  padding-top: var(--ki-section-padding-y);
}

.ki-footer__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
  padding-bottom: var(--ki-section-padding-y);
}

@media (min-width: 768px) { .ki-footer__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .ki-footer__grid { grid-template-columns: 2fr 1fr 1fr 1fr; } }

.ki-footer__logo img,
.ki-footer__logo .custom-logo {
  width: var(--ki-logo-width, 10rem);
  max-width: 100%;
  height: auto;
  object-fit: contain;
  display: block;
  margin-bottom: 1.25rem;
}
.ki-footer__logo-text {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--ki-white);
  display: block;
  margin-bottom: 1rem;
}

.ki-footer__desc {
  font-size: 0.875rem;
  line-height: 1.65;
  color: var(--ki-white);
  max-width: 22rem;
  margin-bottom: 1.5rem;
}

.ki-footer__desc strong { color: var(--ki-white); }

.ki-footer__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}

.ki-footer__badge {
  font-size: 0.75rem;
  padding: 0.25rem 0.625rem;
  border-radius: var(--ki-radius-sm);
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.08);
  color: var(--ki-white);
}

.ki-footer__regulatory-badges {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  margin-top: 0.5rem;
}

.ki-footer__regulatory-badge {
  font-size: 0.875rem;
  line-height: 1.4;
  color: var(--ki-white);
  display: flex;
  align-items: flex-start;
  gap: 0.375rem;
}

.ki-footer__regulatory-badge::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background-color: var(--ki-gold);
  margin-top: 0.5rem;
  flex-shrink: 0;
}

.ki-footer__heading {
  font-size: 1rem;
  font-weight: 600;
  color: var(--ki-white);
  margin-bottom: 1.25rem;
}

.ki-footer__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.ki-footer__list a {
  font-size: 0.875rem;
  color: var(--ki-white);
  transition: color 0.2s;
}

.ki-footer__list a:hover,
.ki-footer__list a:focus-visible {
  color: var(--ki-gold);
  text-decoration: none;
}

.ki-footer__list-link--external {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
}

.ki-footer__list-link--external::after {
  content: "";
  display: inline-block;
  width: 12px;
  height: 12px;
  flex-shrink: 0;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3Cpolyline points='15 3 21 3 21 9'/%3E%3Cline x1='10' y1='14' x2='21' y2='3'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3Cpolyline points='15 3 21 3 21 9'/%3E%3Cline x1='10' y1='14' x2='21' y2='3'/%3E%3C/svg%3E");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}

.ki-footer__bottom {
  border-top: 1px solid rgba(255,255,255,0.06);
  padding-block: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  align-items: flex-start;
}

@media (min-width: 768px) {
  .ki-footer__bottom {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}

.ki-footer__copy {
  font-size: 0.8125rem;
  color: var(--ki-white);
  margin: 0;
}

.ki-footer__disclaimer {
  font-size: 0.75rem;
  color: var(--ki-white);
  max-width: 40rem;
  margin: 0;
}

/* ─────────────────────────────────────────────
   UTILITAIRES — BODY PADDING POUR HEADER FIXE
   ───────────────────────────────────────────── */
body {
  padding-top: 0; /* Géré par le hero min-height */
}

/* ─────────────────────────────────────────────
   ACCESSIBILITÉ
   ───────────────────────────────────────────── */
:focus-visible {
  outline: 2px solid var(--ki-gold);
  outline-offset: 3px;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
}

/* ─────────────────────────────────────────────
   RÉVÉLATION AU SCROLL — cascade titres → cartes, rejouable
   (html.js + .ki-reveal + .is-inview ; pas d’anim si prefers-reduced-motion)
   ───────────────────────────────────────────── */
:root {
  --ki-reveal-distance: 1.5rem;
  --ki-reveal-duration: 0.95s;
  --ki-reveal-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --ki-reveal-delay-header: 0.08s;
  --ki-reveal-stagger: 0.1s;
  /* Après label + 2 parties de titre + intro (+ bloc avis optionnel) */
  --ki-reveal-after-header: calc(var(--ki-reveal-delay-header) + 6 * var(--ki-reveal-stagger));
  --ki-reveal-exit-duration: 0.38s;
}

@media (prefers-reduced-motion: no-preference) {
  /*
   * État masqué : sans .is-inview (ou hors viewport en remontant)
   * html.js évite le masquage avant exécution du script dans le header
   */
  html.js .ki-reveal:not(.is-inview) .ki-section__header > .ki-section__label,
  html.js .ki-reveal:not(.is-inview) .ki-section__header > .ki-section__title .ki-section__title-lead,
  html.js .ki-reveal:not(.is-inview) .ki-section__header > .ki-section__title .ki-text-gold,
  html.js .ki-reveal:not(.is-inview) .ki-section__header > .ki-section__intro,
  html.js .ki-reveal:not(.is-inview) .ki-section__header > .ki-reviews__rating,
  html.js .ki-reveal:not(.is-inview) .ki-stats__item,
  html.js .ki-reveal:not(.is-inview) .ki-trust__grid > .ki-trust-card,
  html.js .ki-reveal:not(.is-inview) .ki-trust__testimonial,
  html.js .ki-reveal:not(.is-inview) .ki-trust__why,
  html.js .ki-reveal:not(.is-inview) .ki-services__grid > .ki-service-card,
  html.js .ki-reveal:not(.is-inview) .ki-services__cta,
  html.js .ki-reveal:not(.is-inview) .ki-obj-select-wrap,
  html.js .ki-reveal:not(.is-inview) .ki-obj-slider,
  html.js .ki-reveal:not(.is-inview) .ki-obj-panels,
  html.js .ki-reveal:not(.is-inview) .ki-method__grid > .ki-step,
  html.js .ki-reveal:not(.is-inview) .ki-reviews__grid > .ki-review-card,
  html.js .ki-reveal:not(.is-inview) .ki-reviews__trustindex,
  html.js .ki-reveal:not(.is-inview) .ki-reviews__cta,
  html.js .ki-reveal:not(.is-inview) .ki-simulator__controls,
  html.js .ki-reveal:not(.is-inview) .ki-simulator__right,
  html.js .ki-reveal:not(.is-inview) .ki-faq > .ki-faq__item,
  html.js .ki-reveal:not(.is-inview) .ki-cta-block__reveal,
  html.js .ki-reveal:not(.is-inview) .ki-cta-block__right,
  html.js .ki-reveal:not(.is-inview) .ki-footer__grid > .ki-footer__col,
  html.js .ki-reveal:not(.is-inview) .ki-footer__bottom,
  html.js .ki-reveal:not(.is-inview) .ki-panel,
  html.js .ki-reveal:not(.is-inview) .ki-bilan__ing-cards > .ki-bilan__ing-card,
  html.js .ki-reveal:not(.is-inview) .ki-bilan__timeline > .ki-bilan__timeline-item,
  html.js .ki-reveal:not(.is-inview) .ki-bilan__method-footer,
  html.js .ki-reveal:not(.is-inview) .ki-bilan__cta-btn-wrap,
  html.js .ki-reveal:not(.is-inview) .ki-bilan__cta-footer-line,
  html.js .ki-reveal:not(.is-inview) .ki-bilan__diag-grid > .ki-bilan__diag-col,
  html.js .ki-reveal:not(.is-inview) .ki-bilan__diag-quote-full,
  html.js .ki-reveal:not(.is-inview) .ki-invest-immo__why-shell,
  html.js .ki-reveal:not(.is-inview) .ki-invest-immo__cross,
  html.js .ki-reveal:not(.is-inview) .ki-section__header > .ki-section__title:not(:has(.ki-section__title-lead)),
  html.js .ki-reveal:not(.is-inview) .ki-content-flow > *,
  html.js .ki-reveal:not(.is-inview) .ki-table__wrap,
  html.js .ki-reveal:not(.is-inview) .ki-prevoyance__method-grid > *,
  html.js .ki-reveal:not(.is-inview) .ki-container > .ki-container--narrow:not(.ki-bilan__cta-inner) > *,
  html.js .ki-reveal:not(.is-inview) .ki-transmission-immo__prose,
  html.js .ki-reveal:not(.is-inview) .ki-transmission-immo__reasons-grid > *,
  html.js .ki-reveal:not(.is-inview) .ki-transmission-immo__mec-grid > *,
  html.js .ki-reveal:not(.is-inview) .ki-transmission-immo__stack > *,
  html.js .ki-reveal:not(.is-inview) .ki-transmission-immo__axis-grid > *,
  html.js .ki-reveal:not(.is-inview) .ki-transmission__prose,
  html.js .ki-reveal:not(.is-inview) .ki-transmission__two-col > *,
  html.js .ki-reveal:not(.is-inview) .ki-transmission__role-grid > *,
  html.js .ki-reveal:not(.is-inview) .ki-transmission__axis-grid > *,
  html.js .ki-reveal:not(.is-inview) .ki-guyane__axis-grid > .ki-axis-item,
  html.js .ki-reveal:not(.is-inview) .ki-cgp-independant__vision-shell,
  html.js .ki-reveal:not(.is-inview) .ki-cgp-independant__architecture .ki-container > .ki-cgp-independant__prose--arch,
  html.js .ki-reveal:not(.is-inview) .ki-cgp-independant__trans-h3,
  html.js .ki-reveal:not(.is-inview) .ki-cgp-independant__h3,
  html.js .ki-reveal:not(.is-inview) .ki-cgp-independant__figure-slot,
  html.js .ki-reveal:not(.is-inview) .ki-cgp-independant__axis-grid > .ki-axis-item,
  html.js .ki-reveal:not(.is-inview) .ki-cgp-independant__trans-stack > .ki-cgp-independant__prose,
  html.js .ki-reveal:not(.is-inview) .ki-cgp-independant__rem-stack > .ki-cgp-independant__prose,
  html.js .ki-reveal:not(.is-inview) .ki-cgp-independant__meth-stack > .ki-cgp-independant__meth-after,
  html.js .ki-reveal:not(.is-inview) .ki-cgp-independant__rem-stack .ki-infobox,
  html.js .ki-reveal:not(.is-inview) .ki-cgp-independant__trans-stack .ki-infobox,
  html.js .ki-reveal:not(.is-inview) #processus .ki-prose,
  html.js .ki-reveal:not(.is-inview) #processus > .ki-container > aside.ki-infobox {
    opacity: 0;
    transform: translate3d(0, var(--ki-reveal-distance), 0);
  }

  /* Transitions : entrée (délais gérés sur .is-inview) */
  html.js .ki-reveal .ki-section__header > .ki-section__label,
  html.js .ki-reveal .ki-section__header > .ki-section__title .ki-section__title-lead,
  html.js .ki-reveal .ki-section__header > .ki-section__title .ki-text-gold,
  html.js .ki-reveal .ki-section__header > .ki-section__intro,
  html.js .ki-reveal .ki-section__header > .ki-reviews__rating,
  html.js .ki-reveal .ki-stats__item,
  html.js .ki-reveal .ki-trust__grid > .ki-trust-card,
  html.js .ki-reveal .ki-trust__testimonial,
  html.js .ki-reveal .ki-trust__why,
  html.js .ki-reveal .ki-services__grid > .ki-service-card,
  html.js .ki-reveal .ki-services__cta,
  html.js .ki-reveal .ki-obj-select-wrap,
  html.js .ki-reveal .ki-obj-slider,
  html.js .ki-reveal .ki-obj-panels,
  html.js .ki-reveal .ki-method__grid > .ki-step,
  html.js .ki-reveal .ki-reviews__grid > .ki-review-card,
  html.js .ki-reveal .ki-reviews__trustindex,
  html.js .ki-reveal .ki-reviews__cta,
  html.js .ki-reveal .ki-simulator__controls,
  html.js .ki-reveal .ki-simulator__right,
  html.js .ki-reveal .ki-faq > .ki-faq__item,
  html.js .ki-reveal .ki-cta-block__reveal,
  html.js .ki-reveal .ki-cta-block__right,
  html.js .ki-reveal .ki-footer__grid > .ki-footer__col,
  html.js .ki-reveal .ki-footer__bottom,
  html.js .ki-reveal .ki-bilan__diag-grid > .ki-bilan__diag-col,
  html.js .ki-reveal .ki-bilan__ing-cards > .ki-bilan__ing-card,
  html.js .ki-reveal .ki-bilan__timeline > .ki-bilan__timeline-item,
  html.js .ki-reveal .ki-bilan__method-footer,
  html.js .ki-reveal .ki-bilan__cta-btn-wrap,
  html.js .ki-reveal .ki-bilan__cta-footer-line,
  html.js .ki-reveal .ki-bilan__diag-quote-full,
  html.js .ki-reveal .ki-panel,
  html.js .ki-reveal .ki-invest-immo__why-shell,
  html.js .ki-reveal .ki-invest-immo__cross,
  html.js .ki-reveal .ki-section__header > .ki-section__title:not(:has(.ki-section__title-lead)),
  html.js .ki-reveal .ki-content-flow > *,
  html.js .ki-reveal .ki-table__wrap,
  html.js .ki-reveal .ki-prevoyance__method-grid > *,
  html.js .ki-reveal .ki-container > .ki-container--narrow:not(.ki-bilan__cta-inner) > *,
  html.js .ki-reveal .ki-transmission-immo__prose,
  html.js .ki-reveal .ki-transmission-immo__reasons-grid > *,
  html.js .ki-reveal .ki-transmission-immo__mec-grid > *,
  html.js .ki-reveal .ki-transmission-immo__stack > *,
  html.js .ki-reveal .ki-transmission-immo__axis-grid > *,
  html.js .ki-reveal .ki-transmission__prose,
  html.js .ki-reveal .ki-transmission__two-col > *,
  html.js .ki-reveal .ki-transmission__role-grid > *,
  html.js .ki-reveal .ki-transmission__axis-grid > *,
  html.js .ki-reveal .ki-guyane__axis-grid > .ki-axis-item,
  html.js .ki-reveal .ki-cgp-independant__vision-shell,
  html.js .ki-reveal .ki-cgp-independant__architecture .ki-container > .ki-cgp-independant__prose--arch,
  html.js .ki-reveal .ki-cgp-independant__trans-h3,
  html.js .ki-reveal .ki-cgp-independant__h3,
  html.js .ki-reveal .ki-cgp-independant__figure-slot,
  html.js .ki-reveal .ki-cgp-independant__axis-grid > .ki-axis-item,
  html.js .ki-reveal .ki-cgp-independant__trans-stack > .ki-cgp-independant__prose,
  html.js .ki-reveal .ki-cgp-independant__rem-stack > .ki-cgp-independant__prose,
  html.js .ki-reveal .ki-cgp-independant__meth-stack > .ki-cgp-independant__meth-after,
  html.js .ki-reveal .ki-cgp-independant__rem-stack .ki-infobox,
  html.js .ki-reveal .ki-cgp-independant__trans-stack .ki-infobox,
  html.js .ki-reveal #processus .ki-prose,
  html.js .ki-reveal #processus > .ki-container > aside.ki-infobox {
    transition:
      opacity var(--ki-reveal-duration) var(--ki-reveal-ease),
      transform var(--ki-reveal-duration) var(--ki-reveal-ease);
  }

  /* Sortie : pas de délai pour réinitialiser vite */
  html.js .ki-reveal:not(.is-inview) .ki-section__header > .ki-section__label,
  html.js .ki-reveal:not(.is-inview) .ki-section__header > .ki-section__title .ki-section__title-lead,
  html.js .ki-reveal:not(.is-inview) .ki-section__header > .ki-section__title .ki-text-gold,
  html.js .ki-reveal:not(.is-inview) .ki-section__header > .ki-section__intro,
  html.js .ki-reveal:not(.is-inview) .ki-section__header > .ki-reviews__rating,
  html.js .ki-reveal:not(.is-inview) .ki-stats__item,
  html.js .ki-reveal:not(.is-inview) .ki-trust__grid > .ki-trust-card,
  html.js .ki-reveal:not(.is-inview) .ki-trust__testimonial,
  html.js .ki-reveal:not(.is-inview) .ki-trust__why,
  html.js .ki-reveal:not(.is-inview) .ki-services__grid > .ki-service-card,
  html.js .ki-reveal:not(.is-inview) .ki-services__cta,
  html.js .ki-reveal:not(.is-inview) .ki-obj-select-wrap,
  html.js .ki-reveal:not(.is-inview) .ki-obj-slider,
  html.js .ki-reveal:not(.is-inview) .ki-obj-panels,
  html.js .ki-reveal:not(.is-inview) .ki-method__grid > .ki-step,
  html.js .ki-reveal:not(.is-inview) .ki-reviews__grid > .ki-review-card,
  html.js .ki-reveal:not(.is-inview) .ki-reviews__trustindex,
  html.js .ki-reveal:not(.is-inview) .ki-reviews__cta,
  html.js .ki-reveal:not(.is-inview) .ki-simulator__controls,
  html.js .ki-reveal:not(.is-inview) .ki-simulator__right,
  html.js .ki-reveal:not(.is-inview) .ki-faq > .ki-faq__item,
  html.js .ki-reveal:not(.is-inview) .ki-cta-block__reveal,
  html.js .ki-reveal:not(.is-inview) .ki-cta-block__right,
  html.js .ki-reveal:not(.is-inview) .ki-footer__grid > .ki-footer__col,
  html.js .ki-reveal:not(.is-inview) .ki-footer__bottom,
  html.js .ki-reveal:not(.is-inview) .ki-panel,
  html.js .ki-reveal:not(.is-inview) .ki-bilan__ing-cards > .ki-bilan__ing-card,
  html.js .ki-reveal:not(.is-inview) .ki-bilan__timeline > .ki-bilan__timeline-item,
  html.js .ki-reveal:not(.is-inview) .ki-bilan__method-footer,
  html.js .ki-reveal:not(.is-inview) .ki-bilan__cta-btn-wrap,
  html.js .ki-reveal:not(.is-inview) .ki-bilan__cta-footer-line,
  html.js .ki-reveal:not(.is-inview) .ki-bilan__diag-grid > .ki-bilan__diag-col,
  html.js .ki-reveal:not(.is-inview) .ki-bilan__diag-quote-full,
  html.js .ki-reveal:not(.is-inview) .ki-invest-immo__why-shell,
  html.js .ki-reveal:not(.is-inview) .ki-invest-immo__cross,
  html.js .ki-reveal:not(.is-inview) .ki-section__header > .ki-section__title:not(:has(.ki-section__title-lead)),
  html.js .ki-reveal:not(.is-inview) .ki-content-flow > *,
  html.js .ki-reveal:not(.is-inview) .ki-table__wrap,
  html.js .ki-reveal:not(.is-inview) .ki-prevoyance__method-grid > *,
  html.js .ki-reveal:not(.is-inview) .ki-container > .ki-container--narrow:not(.ki-bilan__cta-inner) > *,
  html.js .ki-reveal:not(.is-inview) .ki-transmission-immo__prose,
  html.js .ki-reveal:not(.is-inview) .ki-transmission-immo__reasons-grid > *,
  html.js .ki-reveal:not(.is-inview) .ki-transmission-immo__mec-grid > *,
  html.js .ki-reveal:not(.is-inview) .ki-transmission-immo__stack > *,
  html.js .ki-reveal:not(.is-inview) .ki-transmission-immo__axis-grid > *,
  html.js .ki-reveal:not(.is-inview) .ki-transmission__prose,
  html.js .ki-reveal:not(.is-inview) .ki-transmission__two-col > *,
  html.js .ki-reveal:not(.is-inview) .ki-transmission__role-grid > *,
  html.js .ki-reveal:not(.is-inview) .ki-transmission__axis-grid > *,
  html.js .ki-reveal:not(.is-inview) .ki-guyane__axis-grid > .ki-axis-item,
  html.js .ki-reveal:not(.is-inview) .ki-cgp-independant__vision-shell,
  html.js .ki-reveal:not(.is-inview) .ki-cgp-independant__architecture .ki-container > .ki-cgp-independant__prose--arch,
  html.js .ki-reveal:not(.is-inview) .ki-cgp-independant__trans-h3,
  html.js .ki-reveal:not(.is-inview) .ki-cgp-independant__h3,
  html.js .ki-reveal:not(.is-inview) .ki-cgp-independant__figure-slot,
  html.js .ki-reveal:not(.is-inview) .ki-cgp-independant__axis-grid > .ki-axis-item,
  html.js .ki-reveal:not(.is-inview) .ki-cgp-independant__trans-stack > .ki-cgp-independant__prose,
  html.js .ki-reveal:not(.is-inview) .ki-cgp-independant__rem-stack > .ki-cgp-independant__prose,
  html.js .ki-reveal:not(.is-inview) .ki-cgp-independant__meth-stack > .ki-cgp-independant__meth-after,
  html.js .ki-reveal:not(.is-inview) .ki-cgp-independant__rem-stack .ki-infobox,
  html.js .ki-reveal:not(.is-inview) .ki-cgp-independant__trans-stack .ki-infobox,
  html.js .ki-reveal:not(.is-inview) #processus .ki-prose,
  html.js .ki-reveal:not(.is-inview) #processus > .ki-container > aside.ki-infobox {
    transition-duration: var(--ki-reveal-exit-duration);
    transition-delay: 0s;
  }

  /* En-tête : label → 1re partie titre → partie dorée → intro → bloc avis (si présent) */
  html.js .ki-reveal.is-inview .ki-section__header > .ki-section__label {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-delay-header) + var(--ki-reveal-stagger) * 0);
  }

  html.js .ki-reveal.is-inview .ki-section__header > .ki-section__title .ki-section__title-lead {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-delay-header) + var(--ki-reveal-stagger) * 1);
  }

  html.js .ki-reveal.is-inview .ki-section__header > .ki-section__title .ki-text-gold {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-delay-header) + var(--ki-reveal-stagger) * 2);
  }

  html.js .ki-reveal.is-inview .ki-section__header > .ki-section__intro {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-delay-header) + var(--ki-reveal-stagger) * 3);
  }

  html.js .ki-reveal.is-inview .ki-section__header > .ki-reviews__rating {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-delay-header) + var(--ki-reveal-stagger) * 4);
  }

  /* FAQ : pas de label — titre en deux temps puis intro */
  html.js .ki-reveal.is-inview .ki-section__header:not(:has(> .ki-section__label)) > .ki-section__title .ki-section__title-lead {
    transition-delay: calc(var(--ki-reveal-delay-header) + var(--ki-reveal-stagger) * 0);
  }

  html.js .ki-reveal.is-inview .ki-section__header:not(:has(> .ki-section__label)) > .ki-section__title .ki-text-gold {
    transition-delay: calc(var(--ki-reveal-delay-header) + var(--ki-reveal-stagger) * 1);
  }

  html.js .ki-reveal.is-inview .ki-section__header:not(:has(> .ki-section__label)) > .ki-section__intro {
    transition-delay: calc(var(--ki-reveal-delay-header) + var(--ki-reveal-stagger) * 2);
  }

  /* Stats (pas d’en-tête de section) */
  html.js .ki-reveal.is-inview .ki-stats__item:nth-child(1) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-delay-header) + var(--ki-reveal-stagger) * 0);
  }

  html.js .ki-reveal.is-inview .ki-stats__item:nth-child(2) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-delay-header) + var(--ki-reveal-stagger) * 1);
  }

  html.js .ki-reveal.is-inview .ki-stats__item:nth-child(3) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-delay-header) + var(--ki-reveal-stagger) * 2);
  }

  html.js .ki-reveal.is-inview .ki-stats__item:nth-child(4) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-delay-header) + var(--ki-reveal-stagger) * 3);
  }

  /* Simulateur : colonne contrôles puis résultat */
  html.js .ki-reveal.is-inview .ki-simulator__controls {
    opacity: 1;
    transform: none;
    transition-delay: var(--ki-reveal-after-header);
  }

  html.js .ki-reveal.is-inview .ki-simulator__right {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger));
  }

  /* Objectifs : enchaînement select → slider → panneaux */
  html.js .ki-reveal.is-inview .ki-obj-select-wrap {
    opacity: 1;
    transform: none;
    transition-delay: var(--ki-reveal-after-header);
  }

  html.js .ki-reveal.is-inview .ki-obj-slider {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger));
  }

  html.js .ki-reveal.is-inview .ki-obj-panels {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }

  /* Cartes et grilles : décalage par rang */
  html.js .ki-reveal.is-inview .ki-trust__grid > .ki-trust-card:nth-child(1),
  html.js .ki-reveal.is-inview .ki-services__grid > .ki-service-card:nth-child(1),
  html.js .ki-reveal.is-inview .ki-method__grid > .ki-step:nth-child(1),
  html.js .ki-reveal.is-inview .ki-reviews__grid > .ki-review-card:nth-child(1),
  html.js .ki-reveal.is-inview .ki-faq > .ki-faq__item:nth-child(1),
  html.js .ki-reveal.is-inview .ki-footer__grid > .ki-footer__col:nth-child(1) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 0);
  }

  html.js .ki-reveal.is-inview .ki-trust__grid > .ki-trust-card:nth-child(2),
  html.js .ki-reveal.is-inview .ki-services__grid > .ki-service-card:nth-child(2),
  html.js .ki-reveal.is-inview .ki-method__grid > .ki-step:nth-child(2),
  html.js .ki-reveal.is-inview .ki-reviews__grid > .ki-review-card:nth-child(2),
  html.js .ki-reveal.is-inview .ki-faq > .ki-faq__item:nth-child(2),
  html.js .ki-reveal.is-inview .ki-footer__grid > .ki-footer__col:nth-child(2) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 1);
  }

  html.js .ki-reveal.is-inview .ki-trust__grid > .ki-trust-card:nth-child(3),
  html.js .ki-reveal.is-inview .ki-services__grid > .ki-service-card:nth-child(3),
  html.js .ki-reveal.is-inview .ki-method__grid > .ki-step:nth-child(3),
  html.js .ki-reveal.is-inview .ki-reviews__grid > .ki-review-card:nth-child(3),
  html.js .ki-reveal.is-inview .ki-faq > .ki-faq__item:nth-child(3),
  html.js .ki-reveal.is-inview .ki-footer__grid > .ki-footer__col:nth-child(3) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }

  html.js .ki-reveal.is-inview .ki-services__grid > .ki-service-card:nth-child(4),
  html.js .ki-reveal.is-inview .ki-method__grid > .ki-step:nth-child(4),
  html.js .ki-reveal.is-inview .ki-faq > .ki-faq__item:nth-child(4) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 3);
  }

  html.js .ki-reveal.is-inview .ki-faq > .ki-faq__item:nth-child(5) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 4);
  }

  html.js .ki-reveal.is-inview .ki-faq > .ki-faq__item:nth-child(6) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 5);
  }

  html.js .ki-reveal.is-inview .ki-footer__grid > .ki-footer__col:nth-child(4) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 3);
  }

  /* Bilan — diagnostic : deux colonnes cartes */
  html.js .ki-reveal.is-inview .ki-bilan__diag-grid > .ki-bilan__diag-col:nth-child(1) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 0);
  }

  html.js .ki-reveal.is-inview .ki-bilan__diag-grid > .ki-bilan__diag-col:nth-child(2) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 1);
  }

  html.js .ki-reveal.is-inview .ki-bilan__diag-quote-full {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }

  /* Bilan — profils : cascade comme .ki-services__grid (remplace ki-service-card par ki-panel) */
  html.js .ki-reveal.is-inview .ki-bilan__aud .ki-services__grid > .ki-bilan__aud-panel:nth-child(1) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 0);
  }

  html.js .ki-reveal.is-inview .ki-bilan__aud .ki-services__grid > .ki-bilan__aud-panel:nth-child(2) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 1);
  }

  html.js .ki-reveal.is-inview .ki-bilan__aud .ki-services__grid > .ki-bilan__aud-panel:nth-child(3) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }

  html.js .ki-reveal.is-inview .ki-bilan__aud .ki-services__grid > .ki-bilan__aud-panel:nth-child(4) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 3);
  }

  /* .ki-panel : entrée par défaut (délais plus spécifiques ailleurs, ex. bilan / fiscal) */
  html.js .ki-reveal.is-inview .ki-panel {
    opacity: 1;
    transform: none;
    transition-delay: var(--ki-reveal-after-header);
  }

  /* Titres h2 sans span .ki-section__title-lead (pages pilier, etc.) */
  html.js .ki-reveal.is-inview .ki-section__header > .ki-section__title:not(:has(.ki-section__title-lead)) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-delay-header) + var(--ki-reveal-stagger) * 1);
  }

  html.js .ki-reveal.is-inview .ki-section__header:not(:has(> .ki-section__label)) > .ki-section__title:not(:has(.ki-section__title-lead)) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-delay-header) + var(--ki-reveal-stagger) * 0);
  }

  /* Corps : flux éditorial, tableaux, blocs étroits sous .ki-container */
  html.js .ki-reveal.is-inview .ki-table__wrap {
    opacity: 1;
    transform: none;
    transition-delay: var(--ki-reveal-after-header);
  }

  html.js .ki-reveal.is-inview .ki-transmission-immo__prose,
  html.js .ki-reveal.is-inview .ki-transmission__prose {
    opacity: 1;
    transform: none;
    transition-delay: var(--ki-reveal-after-header);
  }

  html.js .ki-reveal.is-inview .ki-content-flow > *:nth-child(1),
  html.js .ki-reveal.is-inview .ki-container > .ki-container--narrow:not(.ki-bilan__cta-inner) > *:nth-child(1) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 0);
  }

  html.js .ki-reveal.is-inview .ki-content-flow > *:nth-child(2),
  html.js .ki-reveal.is-inview .ki-container > .ki-container--narrow:not(.ki-bilan__cta-inner) > *:nth-child(2) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 1);
  }

  html.js .ki-reveal.is-inview .ki-content-flow > *:nth-child(3),
  html.js .ki-reveal.is-inview .ki-container > .ki-container--narrow:not(.ki-bilan__cta-inner) > *:nth-child(3) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }

  html.js .ki-reveal.is-inview .ki-content-flow > *:nth-child(4),
  html.js .ki-reveal.is-inview .ki-container > .ki-container--narrow:not(.ki-bilan__cta-inner) > *:nth-child(4) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 3);
  }

  html.js .ki-reveal.is-inview .ki-content-flow > *:nth-child(5),
  html.js .ki-reveal.is-inview .ki-container > .ki-container--narrow:not(.ki-bilan__cta-inner) > *:nth-child(5) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 4);
  }

  html.js .ki-reveal.is-inview .ki-content-flow > *:nth-child(6),
  html.js .ki-reveal.is-inview .ki-container > .ki-container--narrow:not(.ki-bilan__cta-inner) > *:nth-child(6) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 5);
  }

  html.js .ki-reveal.is-inview .ki-content-flow > *:nth-child(7),
  html.js .ki-reveal.is-inview .ki-container > .ki-container--narrow:not(.ki-bilan__cta-inner) > *:nth-child(7) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 6);
  }

  html.js .ki-reveal.is-inview .ki-content-flow > *:nth-child(8),
  html.js .ki-reveal.is-inview .ki-container > .ki-container--narrow:not(.ki-bilan__cta-inner) > *:nth-child(8) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 7);
  }

  /* Flux longs (ex. garanties : 9e+ bloc) : fin de cascade explicite */
  html.js .ki-reveal.is-inview .ki-content-flow > *:nth-child(n+9),
  html.js .ki-reveal.is-inview .ki-container > .ki-container--narrow:not(.ki-bilan__cta-inner) > *:nth-child(n+9) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 7);
  }

  html.js .ki-reveal.is-inview .ki-prevoyance__method-grid > *:nth-child(1),
  html.js .ki-reveal.is-inview .ki-transmission-immo__reasons-grid > *:nth-child(1),
  html.js .ki-reveal.is-inview .ki-transmission-immo__mec-grid > *:nth-child(1),
  html.js .ki-reveal.is-inview .ki-transmission-immo__axis-grid > *:nth-child(1),
  html.js .ki-reveal.is-inview .ki-transmission__role-grid > *:nth-child(1),
  html.js .ki-reveal.is-inview .ki-transmission__axis-grid > *:nth-child(1),
  html.js .ki-reveal.is-inview .ki-transmission__two-col > *:nth-child(1) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 0);
  }

  html.js .ki-reveal.is-inview .ki-prevoyance__method-grid > *:nth-child(2),
  html.js .ki-reveal.is-inview .ki-transmission-immo__reasons-grid > *:nth-child(2),
  html.js .ki-reveal.is-inview .ki-transmission-immo__mec-grid > *:nth-child(2),
  html.js .ki-reveal.is-inview .ki-transmission-immo__axis-grid > *:nth-child(2),
  html.js .ki-reveal.is-inview .ki-transmission__role-grid > *:nth-child(2),
  html.js .ki-reveal.is-inview .ki-transmission__axis-grid > *:nth-child(2),
  html.js .ki-reveal.is-inview .ki-transmission__two-col > *:nth-child(2) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 1);
  }

  html.js .ki-reveal.is-inview .ki-prevoyance__method-grid > *:nth-child(3),
  html.js .ki-reveal.is-inview .ki-transmission-immo__reasons-grid > *:nth-child(3),
  html.js .ki-reveal.is-inview .ki-transmission-immo__mec-grid > *:nth-child(3),
  html.js .ki-reveal.is-inview .ki-transmission-immo__axis-grid > *:nth-child(3),
  html.js .ki-reveal.is-inview .ki-transmission__role-grid > *:nth-child(3),
  html.js .ki-reveal.is-inview .ki-transmission__axis-grid > *:nth-child(3) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }

  html.js .ki-reveal.is-inview .ki-prevoyance__method-grid > *:nth-child(4),
  html.js .ki-reveal.is-inview .ki-transmission-immo__reasons-grid > *:nth-child(4),
  html.js .ki-reveal.is-inview .ki-transmission-immo__mec-grid > *:nth-child(4),
  html.js .ki-reveal.is-inview .ki-transmission-immo__axis-grid > *:nth-child(4),
  html.js .ki-reveal.is-inview .ki-transmission__role-grid > *:nth-child(4),
  html.js .ki-reveal.is-inview .ki-transmission__axis-grid > *:nth-child(4) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 3);
  }

  html.js .ki-reveal.is-inview .ki-prevoyance__method-grid > *:nth-child(5),
  html.js .ki-reveal.is-inview .ki-transmission-immo__axis-grid > *:nth-child(5),
  html.js .ki-reveal.is-inview .ki-transmission__axis-grid > *:nth-child(5) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 4);
  }

  html.js .ki-reveal.is-inview .ki-prevoyance__method-grid > *:nth-child(6),
  html.js .ki-reveal.is-inview .ki-transmission-immo__axis-grid > *:nth-child(6),
  html.js .ki-reveal.is-inview .ki-transmission__axis-grid > *:nth-child(6) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 5);
  }

  /* Page Investir en Guyane — prose processus, grille d’axes, infobox finale */
  html.js .ki-reveal.is-inview #processus .ki-prose {
    opacity: 1;
    transform: none;
    transition-delay: var(--ki-reveal-after-header);
  }

  html.js .ki-reveal.is-inview .ki-guyane__axis-grid > *:nth-child(1) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 1);
  }

  html.js .ki-reveal.is-inview .ki-guyane__axis-grid > *:nth-child(2) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }

  html.js .ki-reveal.is-inview .ki-guyane__axis-grid > *:nth-child(3) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 3);
  }

  html.js .ki-reveal.is-inview .ki-guyane__axis-grid > *:nth-child(4) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 4);
  }

  html.js .ki-reveal.is-inview #processus > .ki-container > aside.ki-infobox {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 5);
  }

  /* Page CGP indépendant — infobox vision, prose architecture, transparence / rémunération / méthode */
  html.js .ki-reveal.is-inview .ki-cgp-independant__vision-shell {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 0);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__architecture .ki-container > .ki-cgp-independant__prose--arch {
    opacity: 1;
    transform: none;
    transition-delay: var(--ki-reveal-after-header);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__architecture .ki-cgp-independant__figure-slot {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 1);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__architecture .ki-table__wrap {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__architecture:not(:has(.ki-cgp-independant__prose--arch)) .ki-cgp-independant__figure-slot {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 0);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__architecture:not(:has(.ki-cgp-independant__prose--arch)) .ki-table__wrap {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 1);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__architecture:not(:has(.ki-cgp-independant__figure-slot)) .ki-table__wrap {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 1);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__architecture:not(:has(.ki-cgp-independant__prose--arch)):not(:has(.ki-cgp-independant__figure-slot)) .ki-table__wrap {
    opacity: 1;
    transform: none;
    transition-delay: var(--ki-reveal-after-header);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__trans-h3 {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 0);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__trans-grid > .ki-panel:nth-child(1) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 1);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__trans-grid > .ki-panel:nth-child(2) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__trans-grid > .ki-panel:nth-child(3) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 3);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__trans-grid > .ki-panel:nth-child(4) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 4);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__trans-stack > .ki-cgp-independant__prose {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 5);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__trans-stack .ki-infobox {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 6);
  }

  /* Transparence CGP : délais si H3 ou grille absents (évite des trous artificiels *5 / *6) */
  html.js .ki-reveal.is-inview .ki-cgp-independant__trans-stack:not(:has(.ki-cgp-independant__trans-h3)) .ki-cgp-independant__trans-grid > .ki-panel:nth-child(1) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 0);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__trans-stack:not(:has(.ki-cgp-independant__trans-h3)) .ki-cgp-independant__trans-grid > .ki-panel:nth-child(2) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 1);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__trans-stack:not(:has(.ki-cgp-independant__trans-h3)) .ki-cgp-independant__trans-grid > .ki-panel:nth-child(3) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__trans-stack:not(:has(.ki-cgp-independant__trans-h3)) .ki-cgp-independant__trans-grid > .ki-panel:nth-child(4) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 3);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__trans-stack:not(:has(.ki-cgp-independant__trans-h3)):has(.ki-cgp-independant__trans-grid) > .ki-cgp-independant__prose {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 4);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__trans-stack:not(:has(.ki-cgp-independant__trans-h3)):has(.ki-cgp-independant__trans-grid) .ki-infobox {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 5);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__trans-stack:not(:has(.ki-cgp-independant__trans-h3)):has(.ki-cgp-independant__trans-grid):not(:has(> .ki-cgp-independant__prose)) .ki-infobox {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 4);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__trans-stack:has(.ki-cgp-independant__trans-h3):not(:has(.ki-cgp-independant__trans-grid)) > .ki-cgp-independant__prose {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 1);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__trans-stack:has(.ki-cgp-independant__trans-h3):not(:has(.ki-cgp-independant__trans-grid)) .ki-infobox {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__trans-stack:not(:has(.ki-cgp-independant__trans-h3)):not(:has(.ki-cgp-independant__trans-grid)) > .ki-cgp-independant__prose {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 0);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__trans-stack:not(:has(.ki-cgp-independant__trans-h3)):not(:has(.ki-cgp-independant__trans-grid)) .ki-infobox {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 1);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__rem-stack > .ki-cgp-independant__h3 {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 0);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__rem-stack > .ki-cgp-independant__prose {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 1);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__rem-stack .ki-infobox {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__rem-stack:not(:has(.ki-cgp-independant__h3)) > .ki-cgp-independant__prose {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 0);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__rem-stack:not(:has(.ki-cgp-independant__h3)) .ki-infobox {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 1);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__rem-stack:has(.ki-cgp-independant__h3):not(:has(> .ki-cgp-independant__prose)) .ki-infobox {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 1);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__axis-grid > *:nth-child(1) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 1);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__axis-grid > *:nth-child(2) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__axis-grid > *:nth-child(3) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 3);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__axis-grid > *:nth-child(4) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 4);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__meth-stack > .ki-cgp-independant__meth-after {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 5);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__meth-stack:not(:has(.ki-cgp-independant__axis-grid)) > .ki-cgp-independant__meth-after {
    opacity: 1;
    transform: none;
    transition-delay: var(--ki-reveal-after-header);
  }

  html.js .ki-reveal.is-inview .ki-transmission-immo__stack > *:nth-child(1) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 0);
  }

  html.js .ki-reveal.is-inview .ki-transmission-immo__stack > *:nth-child(2) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 1);
  }

  html.js .ki-reveal.is-inview .ki-transmission-immo__stack > *:nth-child(3) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }

  html.js .ki-reveal.is-inview .ki-transmission-immo__stack > *:nth-child(4) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 3);
  }

  /* Investissement immo — corps sous l’en-tête + grilles en cascade */
  html.js .ki-reveal.is-inview .ki-invest-immo__why-shell {
    opacity: 1;
    transform: none;
    transition-delay: var(--ki-reveal-after-header);
  }

  html.js .ki-reveal.is-inview .ki-invest-immo__errors-grid > .ki-invest-immo__errors-grid-cell:nth-child(1) .ki-panel {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 0);
  }

  html.js .ki-reveal.is-inview .ki-invest-immo__errors-grid > .ki-invest-immo__errors-grid-cell:nth-child(2) .ki-panel {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 1);
  }

  html.js .ki-reveal.is-inview .ki-invest-immo__errors-grid > .ki-invest-immo__errors-grid-cell:nth-child(3) .ki-panel {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }

  html.js .ki-reveal.is-inview .ki-invest-immo__errors-grid > .ki-invest-immo__errors-grid-cell:nth-child(4) .ki-panel {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 3);
  }

  html.js .ki-reveal.is-inview .ki-invest-immo__errors-grid > .ki-invest-immo__errors-grid-cell:nth-child(5) .ki-panel {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 4);
  }

  html.js .ki-reveal.is-inview .ki-invest-immo__choose-grid > .ki-invest-immo__choose-grid-cell:nth-child(1) .ki-panel {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 0);
  }

  html.js .ki-reveal.is-inview .ki-invest-immo__choose-grid > .ki-invest-immo__choose-grid-cell:nth-child(2) .ki-panel {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 1);
  }

  html.js .ki-reveal.is-inview .ki-invest-immo__choose-grid > .ki-invest-immo__choose-grid-cell:nth-child(3) .ki-panel {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }

  html.js .ki-reveal.is-inview .ki-invest-immo__choose-grid > .ki-invest-immo__choose-grid-cell:nth-child(4) .ki-panel {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 3);
  }

  html.js .ki-reveal.is-inview .ki-invest-immo__devices > .ki-panel:nth-child(1) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 0);
  }

  html.js .ki-reveal.is-inview .ki-invest-immo__devices > .ki-panel:nth-child(2) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 1);
  }

  html.js .ki-reveal.is-inview .ki-invest-immo__devices > .ki-panel:nth-child(3) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }

  html.js .ki-reveal.is-inview .ki-invest-immo__devices > .ki-panel:nth-child(4) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 3);
  }

  html.js .ki-reveal.is-inview .ki-invest-immo__cross {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 4);
  }

  /* Bilan — ingénierie : cartes */
  html.js .ki-reveal.is-inview .ki-bilan__ing-cards > .ki-bilan__ing-card:nth-child(1) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 0);
  }

  html.js .ki-reveal.is-inview .ki-bilan__ing-cards > .ki-bilan__ing-card:nth-child(2) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 1);
  }

  /* Bilan — méthodologie : timeline */
  html.js .ki-reveal.is-inview .ki-bilan__timeline > .ki-bilan__timeline-item:nth-child(1) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 0);
  }

  html.js .ki-reveal.is-inview .ki-bilan__timeline > .ki-bilan__timeline-item:nth-child(2) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 1);
  }

  html.js .ki-reveal.is-inview .ki-bilan__timeline > .ki-bilan__timeline-item:nth-child(3) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }

  html.js .ki-reveal.is-inview .ki-bilan__timeline > .ki-bilan__timeline-item:nth-child(4) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 3);
  }

  html.js .ki-reveal.is-inview .ki-bilan__timeline > .ki-bilan__timeline-item:nth-child(5) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 4);
  }

  html.js .ki-reveal.is-inview .ki-bilan__method-footer {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 5);
  }

  /* Bilan — CTA : bouton puis ligne sous le header */
  html.js .ki-reveal.is-inview .ki-bilan__cta-btn-wrap {
    opacity: 1;
    transform: none;
    transition-delay: var(--ki-reveal-after-header);
  }

  html.js .ki-reveal.is-inview .ki-bilan__cta-footer-line {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger));
  }

  /* Trust : témoignage et encart « pourquoi » séparés */
  html.js .ki-reveal.is-inview .ki-trust__testimonial {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 3);
  }

  html.js .ki-reveal.is-inview .ki-trust__why {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 4);
  }

  /* Expertises : CTA sous la grille */
  html.js .ki-reveal.is-inview .ki-services__cta {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 4);
  }

  html.js .ki-reveal.is-inview .ki-reviews__trustindex {
    opacity: 1;
    transform: none;
    transition-delay: var(--ki-reveal-after-header);
  }

  html.js .ki-reveal.is-inview .ki-reviews__cta {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 4);
  }

  /* Contact : colonne gauche ligne par ligne, mini-FAQ, puis colonne droite */
  html.js .ki-reveal.is-inview .ki-cta-block__left-top > .ki-cta-block__reveal:nth-child(1) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-delay-header) + var(--ki-reveal-stagger) * 0);
  }

  html.js .ki-reveal.is-inview .ki-cta-block__left-top > .ki-cta-block__reveal:nth-child(2) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-delay-header) + var(--ki-reveal-stagger) * 1);
  }

  html.js .ki-reveal.is-inview .ki-cta-block__left-top > .ki-cta-block__reveal:nth-child(3) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-delay-header) + var(--ki-reveal-stagger) * 2);
  }

  html.js .ki-reveal.is-inview .ki-cta-block__left-top > .ki-cta-block__reveal:nth-child(4) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-delay-header) + var(--ki-reveal-stagger) * 3);
  }

  html.js .ki-reveal.is-inview .ki-cta-block__mini-faq > .ki-cta-block__reveal:nth-child(1) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-delay-header) + var(--ki-reveal-stagger) * 4);
  }

  html.js .ki-reveal.is-inview .ki-cta-block__mini-faq > .ki-cta-block__reveal:nth-child(2) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-delay-header) + var(--ki-reveal-stagger) * 5);
  }

  html.js .ki-reveal.is-inview .ki-cta-block__mini-faq > .ki-cta-block__reveal:nth-child(3) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-delay-header) + var(--ki-reveal-stagger) * 6);
  }

  html.js .ki-reveal.is-inview .ki-cta-block__mini-faq > .ki-cta-block__reveal:nth-child(4) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-delay-header) + var(--ki-reveal-stagger) * 7);
  }

  html.js .ki-reveal.is-inview .ki-cta-block__right {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-delay-header) + var(--ki-reveal-stagger) * 8);
  }

  /* Pied de page : bandeau sous les colonnes */
  html.js .ki-reveal.is-inview .ki-footer__bottom {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 4);
  }

  /* Hero — même logique (observer dédié, rejouable au retour en haut de page) */
  html.js .ki-hero.ki-reveal:not(.is-inview) .ki-hero__badge,
  html.js .ki-hero.ki-reveal:not(.is-inview) .ki-hero__title,
  html.js .ki-hero.ki-reveal:not(.is-inview) .ki-hero__desc,
  html.js .ki-hero.ki-reveal:not(.is-inview) .ki-hero__cta-group,
  html.js .ki-hero.ki-reveal:not(.is-inview) .ki-hero__right,
  html.js .ki-hero.ki-reveal:not(.is-inview) .ki-hero__pillar {
    opacity: 0;
    transform: translate3d(0, var(--ki-reveal-distance), 0);
  }

  html.js .ki-hero.ki-reveal .ki-hero__badge,
  html.js .ki-hero.ki-reveal .ki-hero__title,
  html.js .ki-hero.ki-reveal .ki-hero__desc,
  html.js .ki-hero.ki-reveal .ki-hero__cta-group,
  html.js .ki-hero.ki-reveal .ki-hero__right,
  html.js .ki-hero.ki-reveal .ki-hero__pillar {
    transition:
      opacity var(--ki-reveal-duration) var(--ki-reveal-ease),
      transform var(--ki-reveal-duration) var(--ki-reveal-ease);
  }

  html.js .ki-hero.ki-reveal:not(.is-inview) .ki-hero__badge,
  html.js .ki-hero.ki-reveal:not(.is-inview) .ki-hero__title,
  html.js .ki-hero.ki-reveal:not(.is-inview) .ki-hero__desc,
  html.js .ki-hero.ki-reveal:not(.is-inview) .ki-hero__cta-group,
  html.js .ki-hero.ki-reveal:not(.is-inview) .ki-hero__right,
  html.js .ki-hero.ki-reveal:not(.is-inview) .ki-hero__pillar {
    transition-duration: var(--ki-reveal-exit-duration);
    transition-delay: 0s;
  }

  html.js .ki-hero.ki-reveal.is-inview .ki-hero__badge {
    opacity: 1;
    transform: none;
    transition-delay: 0.1s;
  }

  html.js .ki-hero.ki-reveal.is-inview .ki-hero__title {
    opacity: 1;
    transform: none;
    transition-delay: 0.26s;
  }

  html.js .ki-hero.ki-reveal.is-inview .ki-hero__desc {
    opacity: 1;
    transform: none;
    transition-delay: 0.42s;
  }

  html.js .ki-hero.ki-reveal.is-inview .ki-hero__right {
    opacity: 1;
    transform: none;
    transition-delay: 0.38s;
  }

  html.js .ki-hero.ki-reveal.is-inview .ki-hero__cta-group {
    opacity: 1;
    transform: none;
    transition-delay: 0.56s;
  }

  html.js .ki-hero.ki-reveal.is-inview .ki-hero__pillar:nth-child(1) {
    opacity: 1;
    transform: none;
    transition-delay: 0.68s;
  }

  html.js .ki-hero.ki-reveal.is-inview .ki-hero__pillar:nth-child(2) {
    opacity: 1;
    transform: none;
    transition-delay: 0.82s;
  }

  html.js .ki-hero.ki-reveal.is-inview .ki-hero__pillar:nth-child(3) {
    opacity: 1;
    transform: none;
    transition-delay: 0.96s;
  }

  /* Pages — révélations au scroll : fiscal, transmission entreprise, prép. retraite, transmission immo */

  /* ---- Optimisation fiscale : intro (axes, texte, infobox) ---- */
  html.js .ki-fiscal__intro.ki-reveal:not(.is-inview) .ki-fiscal__axis,
  html.js .ki-fiscal__intro.ki-reveal:not(.is-inview) .ki-fiscal__intro-text,
  html.js .ki-fiscal__intro.ki-reveal:not(.is-inview) .ki-infobox {
    opacity: 0;
    transform: translate3d(0, var(--ki-reveal-distance), 0);
  }
  html.js .ki-fiscal__intro.ki-reveal .ki-fiscal__axis,
  html.js .ki-fiscal__intro.ki-reveal .ki-fiscal__intro-text,
  html.js .ki-fiscal__intro.ki-reveal .ki-infobox {
    transition:
      opacity var(--ki-reveal-duration) var(--ki-reveal-ease),
      transform var(--ki-reveal-duration) var(--ki-reveal-ease);
  }
  html.js .ki-fiscal__intro.ki-reveal:not(.is-inview) .ki-fiscal__axis,
  html.js .ki-fiscal__intro.ki-reveal:not(.is-inview) .ki-fiscal__intro-text,
  html.js .ki-fiscal__intro.ki-reveal:not(.is-inview) .ki-infobox {
    transition-duration: var(--ki-reveal-exit-duration);
    transition-delay: 0s;
  }
  html.js .ki-fiscal__intro.ki-reveal.is-inview .ki-fiscal__intro-text {
    opacity: 1; transform: none;
    transition-delay: var(--ki-reveal-after-header);
  }
  html.js .ki-fiscal__intro.ki-reveal.is-inview .ki-fiscal__axis:nth-child(1) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 1);
  }
  html.js .ki-fiscal__intro.ki-reveal.is-inview .ki-fiscal__axis:nth-child(2) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }
  html.js .ki-fiscal__intro.ki-reveal.is-inview .ki-infobox {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 3);
  }

  /* Entreprises : axes puis mini-cards */
  html.js .ki-fiscal__entreprises.ki-reveal:not(.is-inview) .ki-fiscal__axis,
  html.js .ki-fiscal__entreprises.ki-reveal:not(.is-inview) .ki-fiscal__card-grid > .ki-card,
  html.js .ki-fiscal__entreprises.ki-reveal:not(.is-inview) .ki-infobox {
    opacity: 0;
    transform: translate3d(0, var(--ki-reveal-distance), 0);
  }
  html.js .ki-fiscal__entreprises.ki-reveal .ki-fiscal__axis,
  html.js .ki-fiscal__entreprises.ki-reveal .ki-fiscal__card-grid > .ki-card,
  html.js .ki-fiscal__entreprises.ki-reveal .ki-infobox {
    transition:
      opacity var(--ki-reveal-duration) var(--ki-reveal-ease),
      transform var(--ki-reveal-duration) var(--ki-reveal-ease);
  }
  html.js .ki-fiscal__entreprises.ki-reveal:not(.is-inview) .ki-fiscal__axis,
  html.js .ki-fiscal__entreprises.ki-reveal:not(.is-inview) .ki-fiscal__card-grid > .ki-card,
  html.js .ki-fiscal__entreprises.ki-reveal:not(.is-inview) .ki-infobox {
    transition-duration: var(--ki-reveal-exit-duration);
    transition-delay: 0s;
  }
  html.js .ki-fiscal__entreprises.ki-reveal.is-inview .ki-fiscal__axis:nth-child(1) {
    opacity: 1; transform: none;
    transition-delay: var(--ki-reveal-after-header);
  }
  html.js .ki-fiscal__entreprises.ki-reveal.is-inview .ki-fiscal__axis:nth-child(2) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger));
  }
  html.js .ki-fiscal__entreprises.ki-reveal.is-inview .ki-fiscal__card-grid > .ki-card:nth-child(1) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }
  html.js .ki-fiscal__entreprises.ki-reveal.is-inview .ki-fiscal__card-grid > .ki-card:nth-child(2) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 3);
  }
  html.js .ki-fiscal__entreprises.ki-reveal.is-inview .ki-fiscal__card-grid > .ki-card:nth-child(3) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 4);
  }
  html.js .ki-fiscal__entreprises.ki-reveal.is-inview .ki-infobox {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 5);
  }

  /* Particulier : rich-intro, table, leviers, centered */
  html.js .ki-fiscal__particulier.ki-reveal:not(.is-inview) .ki-fiscal__rich-intro,
  html.js .ki-fiscal__particulier.ki-reveal:not(.is-inview) .ki-fiscal__table-wrap,
  html.js .ki-fiscal__particulier.ki-reveal:not(.is-inview) .ki-fiscal__levers > .ki-panel,
  html.js .ki-fiscal__particulier.ki-reveal:not(.is-inview) .ki-fiscal__centered,
  html.js .ki-fiscal__particulier.ki-reveal:not(.is-inview) .ki-infobox {
    opacity: 0;
    transform: translate3d(0, var(--ki-reveal-distance), 0);
  }
  html.js .ki-fiscal__particulier.ki-reveal .ki-fiscal__rich-intro,
  html.js .ki-fiscal__particulier.ki-reveal .ki-fiscal__table-wrap,
  html.js .ki-fiscal__particulier.ki-reveal .ki-fiscal__levers > .ki-panel,
  html.js .ki-fiscal__particulier.ki-reveal .ki-fiscal__centered,
  html.js .ki-fiscal__particulier.ki-reveal .ki-infobox {
    transition:
      opacity var(--ki-reveal-duration) var(--ki-reveal-ease),
      transform var(--ki-reveal-duration) var(--ki-reveal-ease);
  }
  html.js .ki-fiscal__particulier.ki-reveal:not(.is-inview) .ki-fiscal__rich-intro,
  html.js .ki-fiscal__particulier.ki-reveal:not(.is-inview) .ki-fiscal__table-wrap,
  html.js .ki-fiscal__particulier.ki-reveal:not(.is-inview) .ki-fiscal__levers > .ki-panel,
  html.js .ki-fiscal__particulier.ki-reveal:not(.is-inview) .ki-fiscal__centered,
  html.js .ki-fiscal__particulier.ki-reveal:not(.is-inview) .ki-infobox {
    transition-duration: var(--ki-reveal-exit-duration);
    transition-delay: 0s;
  }
  html.js .ki-fiscal__particulier.ki-reveal.is-inview .ki-fiscal__rich-intro {
    opacity: 1; transform: none;
    transition-delay: var(--ki-reveal-after-header);
  }
  html.js .ki-fiscal__particulier.ki-reveal.is-inview .ki-fiscal__table-wrap {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger));
  }
  html.js .ki-fiscal__particulier.ki-reveal.is-inview .ki-fiscal__levers > .ki-panel:nth-child(1) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }
  html.js .ki-fiscal__particulier.ki-reveal.is-inview .ki-fiscal__levers > .ki-panel:nth-child(2) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 3);
  }
  html.js .ki-fiscal__particulier.ki-reveal.is-inview .ki-infobox {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 4);
  }
  html.js .ki-fiscal__particulier.ki-reveal.is-inview .ki-fiscal__centered {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 5);
  }

  /* Immobilier : device-cards puis infobox */
  html.js .ki-fiscal__immo.ki-reveal:not(.is-inview) .ki-fiscal__card-grid > .ki-card,
  html.js .ki-fiscal__immo.ki-reveal:not(.is-inview) .ki-infobox {
    opacity: 0;
    transform: translate3d(0, var(--ki-reveal-distance), 0);
  }
  html.js .ki-fiscal__immo.ki-reveal .ki-fiscal__card-grid > .ki-card,
  html.js .ki-fiscal__immo.ki-reveal .ki-infobox {
    transition:
      opacity var(--ki-reveal-duration) var(--ki-reveal-ease),
      transform var(--ki-reveal-duration) var(--ki-reveal-ease);
  }
  html.js .ki-fiscal__immo.ki-reveal:not(.is-inview) .ki-fiscal__card-grid > .ki-card,
  html.js .ki-fiscal__immo.ki-reveal:not(.is-inview) .ki-infobox {
    transition-duration: var(--ki-reveal-exit-duration);
    transition-delay: 0s;
  }
  html.js .ki-fiscal__immo.ki-reveal.is-inview .ki-fiscal__card-grid > .ki-card:nth-child(1) {
    opacity: 1; transform: none;
    transition-delay: var(--ki-reveal-after-header);
  }
  html.js .ki-fiscal__immo.ki-reveal.is-inview .ki-fiscal__card-grid > .ki-card:nth-child(2) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger));
  }
  html.js .ki-fiscal__immo.ki-reveal.is-inview .ki-fiscal__card-grid > .ki-card:nth-child(3) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }
  html.js .ki-fiscal__immo.ki-reveal.is-inview .ki-fiscal__card-grid > .ki-card:nth-child(4) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 3);
  }
  html.js .ki-fiscal__immo.ki-reveal.is-inview .ki-infobox {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 4);
  }

  /* Cabinet : cards puis CTAs */
  html.js .ki-fiscal__cabinet.ki-reveal:not(.is-inview) .ki-fiscal__card-grid > .ki-card,
  html.js .ki-fiscal__cabinet.ki-reveal:not(.is-inview) .ki-fiscal__cab-ctas {
    opacity: 0;
    transform: translate3d(0, var(--ki-reveal-distance), 0);
  }
  html.js .ki-fiscal__cabinet.ki-reveal .ki-fiscal__card-grid > .ki-card,
  html.js .ki-fiscal__cabinet.ki-reveal .ki-fiscal__cab-ctas {
    transition:
      opacity var(--ki-reveal-duration) var(--ki-reveal-ease),
      transform var(--ki-reveal-duration) var(--ki-reveal-ease);
  }
  html.js .ki-fiscal__cabinet.ki-reveal:not(.is-inview) .ki-fiscal__card-grid > .ki-card,
  html.js .ki-fiscal__cabinet.ki-reveal:not(.is-inview) .ki-fiscal__cab-ctas {
    transition-duration: var(--ki-reveal-exit-duration);
    transition-delay: 0s;
  }
  html.js .ki-fiscal__cabinet.ki-reveal.is-inview .ki-fiscal__card-grid > .ki-card:nth-child(1) {
    opacity: 1; transform: none;
    transition-delay: var(--ki-reveal-after-header);
  }
  html.js .ki-fiscal__cabinet.ki-reveal.is-inview .ki-fiscal__card-grid > .ki-card:nth-child(2) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger));
  }
  html.js .ki-fiscal__cabinet.ki-reveal.is-inview .ki-fiscal__card-grid > .ki-card:nth-child(3) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }
  html.js .ki-fiscal__cabinet.ki-reveal.is-inview .ki-fiscal__cab-ctas {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 3);
  }

  /* ---- Page transmission & succession ---- */

  /* Dutreil : prose → table → panels → lead → soulte */
  html.js #dutreil.ki-reveal:not(.is-inview) .ki-transmission__prose,
  html.js #dutreil.ki-reveal:not(.is-inview) .ki-table__wrap,
  html.js #dutreil.ki-reveal:not(.is-inview) .ki-transmission__cond-lead,
  html.js #dutreil.ki-reveal:not(.is-inview) .ki-transmission__two-col > .ki-panel {
    opacity: 0;
    transform: translate3d(0, var(--ki-reveal-distance), 0);
  }
  html.js #dutreil.ki-reveal .ki-transmission__prose,
  html.js #dutreil.ki-reveal .ki-table__wrap,
  html.js #dutreil.ki-reveal .ki-transmission__cond-lead,
  html.js #dutreil.ki-reveal .ki-transmission__two-col > .ki-panel {
    transition: opacity var(--ki-reveal-duration) var(--ki-reveal-ease),
                transform var(--ki-reveal-duration) var(--ki-reveal-ease);
  }
  html.js #dutreil.ki-reveal:not(.is-inview) .ki-transmission__prose,
  html.js #dutreil.ki-reveal:not(.is-inview) .ki-table__wrap,
  html.js #dutreil.ki-reveal:not(.is-inview) .ki-transmission__cond-lead,
  html.js #dutreil.ki-reveal:not(.is-inview) .ki-transmission__two-col > .ki-panel {
    transition-duration: var(--ki-reveal-exit-duration);
    transition-delay: 0s;
  }
  html.js #dutreil.ki-reveal.is-inview .ki-transmission__prose:nth-of-type(1) {
    opacity: 1; transform: none;
    transition-delay: var(--ki-reveal-after-header);
  }
  html.js #dutreil.ki-reveal.is-inview .ki-transmission__prose:nth-of-type(2) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger));
  }
  html.js #dutreil.ki-reveal.is-inview .ki-table__wrap {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }
  html.js #dutreil.ki-reveal.is-inview .ki-transmission__cond-lead {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 3);
  }
  html.js #dutreil.ki-reveal.is-inview .ki-transmission__two-col > .ki-panel:nth-child(1) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 4);
  }
  html.js #dutreil.ki-reveal.is-inview .ki-transmission__two-col > .ki-panel:nth-child(2) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 5);
  }
  html.js #dutreil.ki-reveal.is-inview .ki-transmission__prose:nth-of-type(3) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 6);
  }

  /* Cession : prose → panels */
  html.js #cession-tiers.ki-reveal:not(.is-inview) .ki-transmission__prose,
  html.js #cession-tiers.ki-reveal:not(.is-inview) .ki-transmission__two-col > .ki-panel {
    opacity: 0;
    transform: translate3d(0, var(--ki-reveal-distance), 0);
  }
  html.js #cession-tiers.ki-reveal .ki-transmission__prose,
  html.js #cession-tiers.ki-reveal .ki-transmission__two-col > .ki-panel {
    transition: opacity var(--ki-reveal-duration) var(--ki-reveal-ease),
                transform var(--ki-reveal-duration) var(--ki-reveal-ease);
  }
  html.js #cession-tiers.ki-reveal:not(.is-inview) .ki-transmission__prose,
  html.js #cession-tiers.ki-reveal:not(.is-inview) .ki-transmission__two-col > .ki-panel {
    transition-duration: var(--ki-reveal-exit-duration);
    transition-delay: 0s;
  }
  html.js #cession-tiers.ki-reveal.is-inview .ki-transmission__prose:nth-of-type(1) {
    opacity: 1; transform: none;
    transition-delay: var(--ki-reveal-after-header);
  }
  html.js #cession-tiers.ki-reveal.is-inview .ki-transmission__prose:nth-of-type(2) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger));
  }
  html.js #cession-tiers.ki-reveal.is-inview .ki-transmission__two-col > .ki-panel:nth-child(1) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }
  html.js #cession-tiers.ki-reveal.is-inview .ki-transmission__two-col > .ki-panel:nth-child(2) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 3);
  }
  html.js #cession-tiers.ki-reveal.is-inview .ki-transmission__prose:nth-of-type(3) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 4);
  }

  /* Chef d'orchestre : prose → 4 role-cards → footer */
  html.js #chef-orchestre.ki-reveal:not(.is-inview) .ki-transmission__prose,
  html.js #chef-orchestre.ki-reveal:not(.is-inview) .ki-transmission__role-grid > .ki-card {
    opacity: 0;
    transform: translate3d(0, var(--ki-reveal-distance), 0);
  }
  html.js #chef-orchestre.ki-reveal .ki-transmission__prose,
  html.js #chef-orchestre.ki-reveal .ki-transmission__role-grid > .ki-card {
    transition: opacity var(--ki-reveal-duration) var(--ki-reveal-ease),
                transform var(--ki-reveal-duration) var(--ki-reveal-ease);
  }
  html.js #chef-orchestre.ki-reveal:not(.is-inview) .ki-transmission__prose,
  html.js #chef-orchestre.ki-reveal:not(.is-inview) .ki-transmission__role-grid > .ki-card {
    transition-duration: var(--ki-reveal-exit-duration);
    transition-delay: 0s;
  }
  html.js #chef-orchestre.ki-reveal.is-inview .ki-transmission__prose:nth-of-type(1) {
    opacity: 1; transform: none;
    transition-delay: var(--ki-reveal-after-header);
  }
  html.js #chef-orchestre.ki-reveal.is-inview .ki-transmission__role-grid > .ki-card:nth-child(1) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger));
  }
  html.js #chef-orchestre.ki-reveal.is-inview .ki-transmission__role-grid > .ki-card:nth-child(2) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }
  html.js #chef-orchestre.ki-reveal.is-inview .ki-transmission__role-grid > .ki-card:nth-child(3) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 3);
  }
  html.js #chef-orchestre.ki-reveal.is-inview .ki-transmission__role-grid > .ki-card:nth-child(4) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 4);
  }
  html.js #chef-orchestre.ki-reveal.is-inview .ki-transmission__prose:nth-of-type(2) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 5);
  }

  /* Anticipation : prose → 4 axis-items en cascade */
  html.js #anticipation.ki-reveal:not(.is-inview) .ki-transmission__prose,
  html.js #anticipation.ki-reveal:not(.is-inview) .ki-axis-item {
    opacity: 0;
    transform: translate3d(0, var(--ki-reveal-distance), 0);
  }
  html.js #anticipation.ki-reveal .ki-transmission__prose,
  html.js #anticipation.ki-reveal .ki-axis-item {
    transition: opacity var(--ki-reveal-duration) var(--ki-reveal-ease),
                transform var(--ki-reveal-duration) var(--ki-reveal-ease);
  }
  html.js #anticipation.ki-reveal:not(.is-inview) .ki-transmission__prose,
  html.js #anticipation.ki-reveal:not(.is-inview) .ki-axis-item {
    transition-duration: var(--ki-reveal-exit-duration);
    transition-delay: 0s;
  }
  html.js #anticipation.ki-reveal.is-inview .ki-transmission__prose {
    opacity: 1; transform: none;
    transition-delay: var(--ki-reveal-after-header);
  }
  html.js #anticipation.ki-reveal.is-inview .ki-axis-item:nth-child(1) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger));
  }
  html.js #anticipation.ki-reveal.is-inview .ki-axis-item:nth-child(2) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }
  html.js #anticipation.ki-reveal.is-inview .ki-axis-item:nth-child(3) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 3);
  }
  html.js #anticipation.ki-reveal.is-inview .ki-axis-item:nth-child(4) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 4);
  }

  /* FAQ : 4 items en cascade */
  html.js #transmission-faq.ki-reveal:not(.is-inview) .sc-faq__item {
    opacity: 0;
    transform: translate3d(0, var(--ki-reveal-distance), 0);
  }
  html.js #transmission-faq.ki-reveal .sc-faq__item {
    transition: opacity var(--ki-reveal-duration) var(--ki-reveal-ease),
                transform var(--ki-reveal-duration) var(--ki-reveal-ease);
  }
  html.js #transmission-faq.ki-reveal:not(.is-inview) .sc-faq__item {
    transition-duration: var(--ki-reveal-exit-duration);
    transition-delay: 0s;
  }
  html.js #transmission-faq.ki-reveal.is-inview .sc-faq__item:nth-child(1) {
    opacity: 1; transform: none;
    transition-delay: var(--ki-reveal-after-header);
  }
  html.js #transmission-faq.ki-reveal.is-inview .sc-faq__item:nth-child(2) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger));
  }
  html.js #transmission-faq.ki-reveal.is-inview .sc-faq__item:nth-child(3) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }
  html.js #transmission-faq.ki-reveal.is-inview .sc-faq__item:nth-child(4) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 3);
  }

  /* ---- Page préparation retraite ---- */

  /* Constat (intro) */
  html.js .ki-prep-retraite__intro.ki-reveal:not(.is-inview) .ki-prep-retraite__prose,
  html.js .ki-prep-retraite__intro.ki-reveal:not(.is-inview) .ki-prep-retraite__intro-chart {
    opacity: 0;
    transform: translate3d(0, var(--ki-reveal-distance), 0);
  }
  html.js .ki-prep-retraite__intro.ki-reveal .ki-prep-retraite__prose,
  html.js .ki-prep-retraite__intro.ki-reveal .ki-prep-retraite__intro-chart {
    transition: opacity var(--ki-reveal-duration) var(--ki-reveal-ease),
                transform var(--ki-reveal-duration) var(--ki-reveal-ease);
  }
  html.js .ki-prep-retraite__intro.ki-reveal:not(.is-inview) .ki-prep-retraite__prose,
  html.js .ki-prep-retraite__intro.ki-reveal:not(.is-inview) .ki-prep-retraite__intro-chart {
    transition-duration: var(--ki-reveal-exit-duration);
    transition-delay: 0s;
  }
  html.js .ki-prep-retraite__intro.ki-reveal.is-inview .ki-prep-retraite__prose {
    opacity: 1; transform: none;
    transition-delay: var(--ki-reveal-after-header);
  }
  html.js .ki-prep-retraite__intro.ki-reveal.is-inview .ki-prep-retraite__intro-chart {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger));
  }

  /* Enveloppes financières */
  html.js .ki-prep-retraite__enveloppes.ki-reveal:not(.is-inview) .ki-prep-retraite__prose,
  html.js .ki-prep-retraite__enveloppes.ki-reveal:not(.is-inview) .ki-infobox,
  html.js .ki-prep-retraite__enveloppes.ki-reveal:not(.is-inview) .ki-prep-retraite__figure {
    opacity: 0;
    transform: translate3d(0, var(--ki-reveal-distance), 0);
  }
  html.js .ki-prep-retraite__enveloppes.ki-reveal .ki-prep-retraite__prose,
  html.js .ki-prep-retraite__enveloppes.ki-reveal .ki-infobox,
  html.js .ki-prep-retraite__enveloppes.ki-reveal .ki-prep-retraite__figure {
    transition: opacity var(--ki-reveal-duration) var(--ki-reveal-ease),
                transform var(--ki-reveal-duration) var(--ki-reveal-ease);
  }
  html.js .ki-prep-retraite__enveloppes.ki-reveal:not(.is-inview) .ki-prep-retraite__prose,
  html.js .ki-prep-retraite__enveloppes.ki-reveal:not(.is-inview) .ki-infobox,
  html.js .ki-prep-retraite__enveloppes.ki-reveal:not(.is-inview) .ki-prep-retraite__figure {
    transition-duration: var(--ki-reveal-exit-duration);
    transition-delay: 0s;
  }
  html.js .ki-prep-retraite__enveloppes.ki-reveal.is-inview .ki-prep-retraite__prose:nth-child(1) {
    opacity: 1; transform: none;
    transition-delay: var(--ki-reveal-after-header);
  }
  html.js .ki-prep-retraite__enveloppes.ki-reveal.is-inview .ki-infobox {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger));
  }
  html.js .ki-prep-retraite__enveloppes.ki-reveal.is-inview .ki-prep-retraite__prose:nth-child(3) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }
  html.js .ki-prep-retraite__enveloppes.ki-reveal.is-inview .ki-prep-retraite__figure {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 3);
  }

  /* Immobilier : panels en cascade + cross-link */
  html.js .ki-prep-retraite__immo.ki-reveal:not(.is-inview) .ki-prep-retraite__immo-panel,
  html.js .ki-prep-retraite__immo.ki-reveal:not(.is-inview) .ki-prep-retraite__cross {
    opacity: 0;
    transform: translate3d(0, var(--ki-reveal-distance), 0);
  }
  html.js .ki-prep-retraite__immo.ki-reveal .ki-prep-retraite__immo-panel,
  html.js .ki-prep-retraite__immo.ki-reveal .ki-prep-retraite__cross {
    transition: opacity var(--ki-reveal-duration) var(--ki-reveal-ease),
                transform var(--ki-reveal-duration) var(--ki-reveal-ease);
  }
  html.js .ki-prep-retraite__immo.ki-reveal:not(.is-inview) .ki-prep-retraite__immo-panel,
  html.js .ki-prep-retraite__immo.ki-reveal:not(.is-inview) .ki-prep-retraite__cross {
    transition-duration: var(--ki-reveal-exit-duration);
    transition-delay: 0s;
  }
  html.js .ki-prep-retraite__immo.ki-reveal.is-inview .ki-prep-retraite__immo-panel:nth-child(1) {
    opacity: 1; transform: none;
    transition-delay: var(--ki-reveal-after-header);
  }
  html.js .ki-prep-retraite__immo.ki-reveal.is-inview .ki-prep-retraite__immo-panel:nth-child(2) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger));
  }
  html.js .ki-prep-retraite__immo.ki-reveal.is-inview .ki-prep-retraite__immo-panel:nth-child(3) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }
  html.js .ki-prep-retraite__immo.ki-reveal.is-inview .ki-prep-retraite__cross {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 3);
  }

  /* Projection sur mesure */
  html.js .ki-prep-retraite__projection.ki-reveal:not(.is-inview) .ki-prep-retraite__prose {
    opacity: 0;
    transform: translate3d(0, var(--ki-reveal-distance), 0);
  }
  html.js .ki-prep-retraite__projection.ki-reveal .ki-prep-retraite__prose {
    transition: opacity var(--ki-reveal-duration) var(--ki-reveal-ease),
                transform var(--ki-reveal-duration) var(--ki-reveal-ease);
  }
  html.js .ki-prep-retraite__projection.ki-reveal:not(.is-inview) .ki-prep-retraite__prose {
    transition-duration: var(--ki-reveal-exit-duration);
    transition-delay: 0s;
  }
  html.js .ki-prep-retraite__projection.ki-reveal.is-inview .ki-prep-retraite__prose:nth-child(1) {
    opacity: 1; transform: none;
    transition-delay: var(--ki-reveal-after-header);
  }
  html.js .ki-prep-retraite__projection.ki-reveal.is-inview .ki-prep-retraite__prose:nth-child(2) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger));
  }

  /* FAQ */
  html.js .ki-prep-retraite__faq.ki-reveal:not(.is-inview) .sc-faq__item {
    opacity: 0;
    transform: translate3d(0, var(--ki-reveal-distance), 0);
  }
  html.js .ki-prep-retraite__faq.ki-reveal .sc-faq__item {
    transition: opacity var(--ki-reveal-duration) var(--ki-reveal-ease),
                transform var(--ki-reveal-duration) var(--ki-reveal-ease);
  }
  html.js .ki-prep-retraite__faq.ki-reveal:not(.is-inview) .sc-faq__item {
    transition-duration: var(--ki-reveal-exit-duration);
    transition-delay: 0s;
  }
  html.js .ki-prep-retraite__faq.ki-reveal.is-inview .sc-faq__item:nth-child(1) {
    opacity: 1; transform: none;
    transition-delay: var(--ki-reveal-after-header);
  }
  html.js .ki-prep-retraite__faq.ki-reveal.is-inview .sc-faq__item:nth-child(2) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger));
  }
  html.js .ki-prep-retraite__faq.ki-reveal.is-inview .sc-faq__item:nth-child(3) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }
  html.js .ki-prep-retraite__faq.ki-reveal.is-inview .sc-faq__item:nth-child(4) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 3);
  }
  html.js .ki-prep-retraite__faq.ki-reveal.is-inview .sc-faq__item:nth-child(5) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 4);
  }
  html.js .ki-prep-retraite__faq.ki-reveal.is-inview .sc-faq__item:nth-child(6) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 5);
  }
  html.js .ki-prep-retraite__faq.ki-reveal.is-inview .sc-faq__item:nth-child(7) {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 6);
  }

  /* Tableau indicatif */
  html.js .ki-prep-retraite__closing.ki-reveal:not(.is-inview) .ki-prep-retraite__prose,
  html.js .ki-prep-retraite__closing.ki-reveal:not(.is-inview) .ki-prep-retraite__table-wrap,
  html.js .ki-prep-retraite__closing.ki-reveal:not(.is-inview) .ki-prep-retraite__closing-btn-wrap {
    opacity: 0;
    transform: translate3d(0, var(--ki-reveal-distance), 0);
  }
  html.js .ki-prep-retraite__closing.ki-reveal .ki-prep-retraite__prose,
  html.js .ki-prep-retraite__closing.ki-reveal .ki-prep-retraite__table-wrap,
  html.js .ki-prep-retraite__closing.ki-reveal .ki-prep-retraite__closing-btn-wrap {
    transition: opacity var(--ki-reveal-duration) var(--ki-reveal-ease),
                transform var(--ki-reveal-duration) var(--ki-reveal-ease);
  }
  html.js .ki-prep-retraite__closing.ki-reveal:not(.is-inview) .ki-prep-retraite__prose,
  html.js .ki-prep-retraite__closing.ki-reveal:not(.is-inview) .ki-prep-retraite__table-wrap,
  html.js .ki-prep-retraite__closing.ki-reveal:not(.is-inview) .ki-prep-retraite__closing-btn-wrap {
    transition-duration: var(--ki-reveal-exit-duration);
    transition-delay: 0s;
  }
  html.js .ki-prep-retraite__closing.ki-reveal.is-inview .ki-prep-retraite__prose {
    opacity: 1; transform: none;
    transition-delay: var(--ki-reveal-after-header);
  }
  html.js .ki-prep-retraite__closing.ki-reveal.is-inview .ki-prep-retraite__table-wrap {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger));
  }
  html.js .ki-prep-retraite__closing.ki-reveal.is-inview .ki-prep-retraite__closing-btn-wrap {
    opacity: 1; transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }

}

@media (prefers-reduced-motion: reduce) {
  html.js .ki-hero.ki-reveal .ki-hero__badge,
  html.js .ki-hero.ki-reveal .ki-hero__title,
  html.js .ki-hero.ki-reveal .ki-hero__desc,
  html.js .ki-hero.ki-reveal .ki-hero__cta-group,
  html.js .ki-hero.ki-reveal .ki-hero__right,
  html.js .ki-hero.ki-reveal .ki-hero__pillar {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  html.js .ki-reveal .ki-section__header > .ki-section__label,
  html.js .ki-reveal .ki-section__header > .ki-section__title .ki-section__title-lead,
  html.js .ki-reveal .ki-section__header > .ki-section__title .ki-text-gold,
  html.js .ki-reveal .ki-section__header > .ki-section__intro,
  html.js .ki-reveal .ki-section__header > .ki-reviews__rating,
  html.js .ki-reveal .ki-stats__item,
  html.js .ki-reveal .ki-trust__grid > .ki-trust-card,
  html.js .ki-reveal .ki-trust__testimonial,
  html.js .ki-reveal .ki-trust__why,
  html.js .ki-reveal .ki-services__grid > .ki-service-card,
  html.js .ki-reveal .ki-services__cta,
  html.js .ki-reveal .ki-obj-select-wrap,
  html.js .ki-reveal .ki-obj-slider,
  html.js .ki-reveal .ki-obj-panels,
  html.js .ki-reveal .ki-method__grid > .ki-step,
  html.js .ki-reveal .ki-reviews__grid > .ki-review-card,
  html.js .ki-reveal .ki-reviews__trustindex,
  html.js .ki-reveal .ki-reviews__cta,
  html.js .ki-reveal .ki-simulator__controls,
  html.js .ki-reveal .ki-simulator__right,
  html.js .ki-reveal .ki-faq > .ki-faq__item,
  html.js .ki-reveal .ki-cta-block__reveal,
  html.js .ki-reveal .ki-cta-block__right,
  html.js .ki-reveal .ki-footer__grid > .ki-footer__col,
  html.js .ki-reveal .ki-footer__bottom,
  html.js .ki-reveal .ki-bilan__diag-grid > .ki-bilan__diag-col,
  html.js .ki-reveal .ki-bilan__ing-cards > .ki-bilan__ing-card,
  html.js .ki-reveal .ki-bilan__timeline > .ki-bilan__timeline-item,
  html.js .ki-reveal .ki-bilan__method-footer,
  html.js .ki-reveal .ki-bilan__cta-btn-wrap,
  html.js .ki-reveal .ki-bilan__cta-footer-line,
  html.js .ki-reveal .ki-bilan__diag-quote-full,
  html.js .ki-fiscal__intro.ki-reveal .ki-fiscal__axis,
  html.js .ki-fiscal__intro.ki-reveal .ki-fiscal__intro-text,
  html.js .ki-fiscal__entreprises.ki-reveal .ki-fiscal__axis,
  html.js .ki-fiscal__entreprises.ki-reveal .ki-fiscal__card-grid > .ki-card,
  html.js .ki-fiscal__particulier.ki-reveal .ki-fiscal__rich-intro,
  html.js .ki-fiscal__particulier.ki-reveal .ki-fiscal__table-wrap,
  html.js .ki-fiscal__particulier.ki-reveal .ki-fiscal__levers > .ki-panel,
  html.js .ki-fiscal__particulier.ki-reveal .ki-fiscal__centered,
  html.js .ki-fiscal__immo.ki-reveal .ki-fiscal__card-grid > .ki-card,
  html.js .ki-fiscal__cabinet.ki-reveal .ki-fiscal__card-grid > .ki-card,
  html.js .ki-fiscal__cabinet.ki-reveal .ki-fiscal__cab-ctas,
  html.js .ki-reveal .ki-infobox {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* ─────────────────────────────────────────────
   PAGE BILAN PATRIMONIAL (template page-bilan-patrimonial.php)
   ───────────────────────────────────────────── */
.ki-bilan {
  background: var(--ki-white);
}

.ki-bilan__section-label {
  margin: 0 0 0.75rem;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ki-gold, #bf8d38);
}

.ki-bilan__section-label--on-dark {
  color: var(--ki-gold, #bf8d38);
}

.ki-bilan__section-title {
  margin: 0 0 1rem;
  font-size: clamp(1.5rem, 2.8vw, 2.25rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--ki-navy, #162741);
}

.ki-bilan__section-title--white {
  color: var(--ki-white, #fff);
}

.ki-bilan__diag {
  padding-block: var(--ki-section-padding-y);
  background: var(--ki-white, #fff);
}

.ki-bilan__diag-grid {
  display: grid;
  gap: clamp(2rem, 4vw, 3.5rem);
}

@media (min-width: 1024px) {
  .ki-bilan__diag-grid {
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   COMPOSANT GÉNÉRIQUE : .ki-panel
   Utilisé par .ki-bilan__diag-col, .ki-bilan__ing-card, .ki-fiscal__lever
   Variantes contextuelles :
     .ki-panel--on-white  → bg light, hover border gold  (section --white)
     .ki-panel--on-light  → bg white, hover border navy  (section --light)
   ═══════════════════════════════════════════════════════════════════════════ */

.ki-panel {
  padding: clamp(1.75rem, 3vw, 2.5rem);
  border-radius: var(--ki-radius-xl);
  border: var(--ki-card-border);
  box-shadow: var(--ki-card-shadow);
  transition:
    opacity var(--ki-reveal-duration, 0.55s) var(--ki-reveal-ease, ease),
    transform var(--ki-reveal-duration, 0.55s) var(--ki-reveal-ease, ease),
    box-shadow 0.3s ease,
    border-color 0.3s ease;
}

/* Sur section --white : fond light, hover border gold */
.ki-panel--on-white {
  background: var(--ki-bg-light);
}

.ki-panel--on-white:hover {
  border-color: var(--ki-gold);
  box-shadow: var(--ki-card-shadow-hover);
  transform: translateY(-4px);
}

/* Sur section --light : fond white, hover border navy */
.ki-panel--on-light {
  background: var(--ki-white);
}

.ki-panel--on-light:hover {
  border-color: var(--ki-navy);
  box-shadow: var(--ki-card-shadow-hover);
  transform: translateY(-4px);
}

/* Cercle décoratif en bas à droite */
.ki-panel {
  position: relative;
  overflow: hidden;
}

.ki-panel::after {
  content: '';
  position: absolute;
  bottom: -2rem;
  right: -2rem;
  width: 8rem;
  height: 8rem;
  border-radius: 50%;
  pointer-events: none;
}

.ki-panel--on-white::after {
  background: color-mix(in srgb, var(--ki-gold) 14%, transparent);
}

.ki-panel--on-light::after {
  background: color-mix(in srgb, var(--ki-navy) 10%, transparent);
}

@media (prefers-reduced-motion: reduce) {
  .ki-panel--on-white:hover,
  .ki-panel--on-light:hover {
    transform: none;
  }
}

.ki-panel__title {
  margin: 0 0 1.25rem;
  font-size: 1.35rem;
  font-weight: 600;
  color: var(--ki-navy);
}

/* Colonnes — même logique que .ki-trust-card / .ki-service-card (accueil) */
/* Alias → .ki-panel--on-white (section --white, hover gold) */
.ki-bilan__diag-col {
  padding: clamp(1.75rem, 3vw, 2.5rem);
  border-radius: var(--ki-radius-xl);
  background: var(--ki-bg-light);
  border: var(--ki-card-border);
  box-shadow: var(--ki-card-shadow);
  transition:
    opacity var(--ki-reveal-duration) var(--ki-reveal-ease),
    transform var(--ki-reveal-duration) var(--ki-reveal-ease),
    box-shadow 0.3s ease,
    border-color 0.3s ease;
}

.ki-bilan__diag-col:hover {
  border-color: var(--ki-gold);
  box-shadow: var(--ki-card-shadow-hover);
  transform: translateY(-4px);
}

.ki-bilan__diag-list-title {
  margin: 0 0 1rem;
  font-weight: 600;
  color: var(--ki-navy);
}

.ki-bilan__diag-list-title:not(:first-child) {
  margin-top: 1.5rem;
}

.ki-bilan__diag-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.ki-bilan__diag-li {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin: 0;
  font-size: 1rem;
  line-height: 1.55;
  color: var(--ki-text-muted);
}

/* Icône = même picto que le checklist CTA accueil (polyline + presse-papiers) */
.ki-bilan__diag-li-icon-wrap {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 0.1rem;
}

.ki-bilan__diag-li-icon {
  display: block;
  color: var(--ki-gold);
}

@media (prefers-reduced-motion: reduce) {
  .ki-bilan__diag-col:hover {
    transform: none;
  }
}

/* Panneau droit : même enveloppe que la colonne gauche (.ki-bilan__diag-col) ; textes lisibles sur fond clair */
.ki-bilan__diag-panel {
  color: var(--ki-text-muted);
}

.ki-bilan__diag-lead {
  font-size: 1rem;
  line-height: 1.65;
  color: var(--ki-navy);
}

.ki-bilan__diag-lead strong {
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--ki-gold);
}

.ki-bilan__diag-hr {
  margin: 1.5rem 0;
  border: none;
  border-top: 1px solid var(--ki-gray-200);
}

.ki-bilan__diag-body {
  margin: 0;
  font-size: 1rem;
  line-height: 1.65;
  color: var(--ki-text-muted);
}

.ki-bilan__ing {
  padding-block: var(--ki-section-padding-y);
  background: var(--ki-bg-light);
}

.ki-bilan__ing-cards {
  display: grid;
  gap: 1.75rem;
  margin-top: 0;
}

@media (min-width: 768px) {
  .ki-bilan__ing-cards {
    grid-template-columns: 1fr 1fr;
  }
}

/* Alias → .ki-panel--on-light (section --light, hover navy) */
.ki-bilan__ing-card {
  padding: clamp(1.75rem, 3vw, 2.5rem);
  border-radius: var(--ki-radius-xl);
  border: var(--ki-card-border);
  background: var(--ki-white, #fff);
  box-shadow: var(--ki-card-shadow);
  transition:
    box-shadow 0.3s ease,
    border-color 0.3s ease,
    transform 0.3s ease;
}

.ki-bilan__ing-card:hover {
  border-color: var(--ki-navy);
  box-shadow: var(--ki-card-shadow-hover);
  transform: translateY(-4px);
}

@media (prefers-reduced-motion: reduce) {
  .ki-bilan__ing-card:hover {
    transform: none;
  }
}

.ki-bilan__ing-card-title {
  margin: 0 0 1.25rem;
  font-size: 1.35rem;
  font-weight: 600;
  color: var(--ki-navy);
}

.ki-bilan__ing-card-body p {
  margin: 0 0 1rem;
  font-size: 0.92rem;
  line-height: 1.65;
  color: var(--ki-text-muted);
}

.ki-bilan__ing-card-body p:last-child {
  margin-bottom: 0;
}

/* Bilan ingénierie — même rendu que .ki-hero__quote ; texte navy sur fond clair */

.ki-bilan__method {
  padding-block: var(--ki-section-padding-y);
  background: var(--ki-white, #fff);
}

.ki-bilan__timeline {
  position: relative;
  margin: 0;
  padding: 0 0 0 2.5rem;
  list-style: none;
}

@media (min-width: 768px) {
  .ki-bilan__timeline {
    padding: 0;
  }

  .ki-bilan__timeline::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 0;
    bottom: 0;
    width: 2px;
    transform: translateX(-50%);
    background: linear-gradient(180deg, transparent, #e2e8f0 12%, #e2e8f0 88%, transparent);
  }
}

.ki-bilan__timeline-item {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 2rem;
}

@media (min-width: 768px) {
  .ki-bilan__timeline-item {
    justify-content: flex-end;
    margin-bottom: 2.5rem;
  }

  .ki-bilan__timeline-item--alt {
    justify-content: flex-start;
  }

  .ki-bilan__timeline-item .ki-bilan__timeline-num {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    top:40%;
  }

  .ki-bilan__timeline-item--alt .ki-bilan__timeline-card {
    margin-right: calc(50% + 1.75rem);
  }

  .ki-bilan__timeline-item:not(.ki-bilan__timeline-item--alt) .ki-bilan__timeline-card {
    margin-left: calc(50% + 1.75rem);
    text-align: left;
  }
}

.ki-bilan__timeline-num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  flex-shrink: 0;
  border-radius: 50%;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--ki-white, #fff);
  border: 4px solid var(--ki-white, #fff);
  background: var(--ki-navy, #162741);
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.12);
}

.ki-bilan__timeline-item:nth-child(even) .ki-bilan__timeline-num {
  background: var(--ki-gold, #bf8d38);
}

.ki-bilan__timeline-card {
  flex: 1;
  min-width: 12rem;
  max-width: 100%;
  padding: 1.25rem 1.5rem;
  border-radius: 1rem;
  border: 1px solid #e2e8f0;
  background: var(--ki-white, #fff);
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.06);
}

.ki-bilan__timeline-title {
  margin: 0 0 0.5rem;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--ki-navy, #162741);
}

.ki-bilan__timeline-desc {
  margin: 0;
  font-size: 1rem;
  line-height: 1.6;
  color: #64748b;
}

/* Complément .ki-panel--on-white : espacement + typo (révélation scroll inchangée) */
.ki-bilan__method-footer {
  margin-top: 2.5rem;
  text-align: center;
}

.ki-bilan__method-footer p {
  margin: 0;
  font-size: 1rem;
  line-height: 1.65;
  color: #334155;
}

/* Bilan — profils : panneaux .ki-panel (cercle ::after) comme la grille Expertises */
.ki-bilan__aud-panel.ki-panel .ki-panel__title,
.ki-bilan__aud-panel.ki-panel .ki-card__icon-wrap,
.ki-bilan__aud-panel.ki-panel .ki-card__desc {
  position: relative;
  z-index: 1;
}

.ki-bilan__aud-panel.ki-panel:hover .ki-card__num {
  color: rgba(191, 141, 56, 0.08);
}

.ki-bilan__aud .ki-bilan__aud-panel .ki-card__desc {
  margin-bottom: 0;
}

.ki-bilan__cta-block {
  padding-block: var(--ki-section-padding-y);
  background: var(--ki-navy, #162741);
}

.ki-bilan__cta-inner {
  text-align: center;
}

.ki-bilan__cta-block .ki-section__header {
  margin-bottom: 1.75rem;
}

/* Intro dans le header — sur fond navy (annule le gris de .ki-section__intro) */
.ki-bilan__cta-block .ki-section__header .ki-section__intro.ki-bilan__cta-text {
  color: color-mix(in srgb, var(--ki-white) 88%, transparent);
}

.ki-bilan__cta-block .ki-section__header .ki-section__intro.ki-bilan__cta-text p + p {
  margin-top: 1em;
}

.ki-bilan__cta-block .ki-bilan__cta-text strong {
  font-weight: 600;
  color: var(--ki-gold, #bf8d38);
}

.ki-bilan__cta-block .ki-bilan__cta-text .ki-link-inline {
  color: var(--ki-gold, #bf8d38);
  text-decoration: none;
}

.ki-bilan__cta-block .ki-bilan__cta-text .ki-link-inline:hover,
.ki-bilan__cta-block .ki-bilan__cta-text .ki-link-inline:focus,
.ki-bilan__cta-block .ki-bilan__cta-text .ki-link-inline:focus-visible {
  color: var(--ki-gold, #bf8d38);
  text-decoration: none;
}

.ki-bilan__cta-btn-wrap {
  margin: 2rem 0 0;
}

/* Page CGP indép. : libellé CTA long sur plusieurs lignes */
.ki-cgp-independant__cta-block .ki-bilan__cta-btn-wrap .ki-btn {
  white-space: normal;
  max-width: min(100%, 40rem);
  margin-inline: auto;
  line-height: 1.35;
  padding-block: 0.875rem;
}

.ki-bilan__cta-footer-line {
  margin: 1.5rem 0 0;
  font-size: 1rem;
  line-height: 1.55;
  color: color-mix(in srgb, var(--ki-white) 65%, transparent);
}

.ki-bilan__faq {
  padding-block: var(--ki-section-padding-y);
}

.ki-bilan__faq-title {
  margin: 0 0 2rem;
  text-align: center;
  font-size: clamp(1.35rem, 2.5vw, 2rem);
  font-weight: 600;
  color: var(--ki-navy, #162741);
}

.ki-bilan__faq .ki-section__header .ki-bilan__faq-title {
  margin-bottom: 0;
}

/* =============================================================================
   PAGE — Optimisation fiscale (.ki-fiscal)
   ============================================================================= */

/* ── Utilitaire accessibilité ─────────────────────────────────────────────── */
.screen-reader-text {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* ── Typographie commune ──────────────────────────────────────────────────── */
.ki-fiscal__h3,
.ki-prep-retraite__h3,
.ki-prevoyance-pro__h3,
.ki-guyane__h3,
.ki-cgp-independant__h3 {
  position: relative;
  margin: 0 0 1.5rem;
  padding-bottom: 0.625rem;
  font-size: clamp(1.2rem, 2vw, 1.5rem);
  font-weight: 700;
  color: var(--ki-navy, #162741);
  letter-spacing: -0.01em;
}

.ki-fiscal__h3::after,
.ki-prep-retraite__h3::after,
.ki-prevoyance-pro__h3::after,
.ki-guyane__h3::after,
.ki-cgp-independant__h3::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 2.5rem;
  height: 2px;
  background: var(--ki-gold);
  border-radius: 2px;
}

.ki-fiscal__h3--center {
  text-align: right;
  margin-top: 2.5rem;
}

.ki-fiscal__h3--spaced {
  margin-top: 3rem;
}

.ki-prevoyance-pro__h3--spaced {
  margin-top: 2.5rem;
}

/* Grille fiscalité prévoyance pro : 2 cartes Madelin / entreprise */
.ki-prevoyance-pro__fisc-grid.ki-prevoyance__pro-grid {
  margin-top: 2rem;
}

/* Panneaux fiscalité : titre et corps au-dessus du filigrane .ki-card__num */
.ki-prevoyance-pro__fisc-panel.ki-panel .ki-panel__title {
  position: relative;
  z-index: 1;
}

.ki-prevoyance-pro__fisc-panel.ki-panel:hover .ki-card__num {
  color: rgba(191, 141, 56, 0.08);
}

.ki-prevoyance-pro__warn {
  margin-block: 1.5rem;
}

.ki-prevoyance-pro__table-wrap {
  margin-block: 2rem;
}

.ki-prevoyance-pro__section-spacing {
  margin: 3rem auto 0;
}

/* Tableau comparatif (dans section choix) : espacement seul, pas de barre or */
.ki-prevoyance-pro__comparatif > h3 {
  margin: 0 0 var(--ki-space-4, 1rem);
}

.ki-fiscal__h4 {
  margin: 0 0 0.5rem;
  font-size: 1rem;
  font-weight: 700;
  color: var(--ki-navy, #162741);
}

.ki-fiscal__p {
  margin: 0 0 1rem;
  font-size: 1rem;
  line-height: 1.7;
  color: color-mix(in srgb, var(--ki-navy) 72%, transparent);
}

.ki-fiscal__p:last-child { margin-bottom: 0; }

.ki-fiscal__p--sm {
  font-size: 0.875rem;
  line-height: 1.6;
  color: color-mix(in srgb, var(--ki-navy) 58%, transparent);
}

.ki-fiscal__rich-intro p {
  margin: 0 0 1rem;
}

.ki-fiscal__rich-intro p:last-child {
  margin-bottom: 0;
}

.ki-fiscal__inline-link {
  color: var(--ki-gold, #bf8d38);
  font-weight: 600;
  text-decoration: none;
  transition: color 180ms ease;
}

.ki-fiscal__inline-link:hover,
.ki-fiscal__inline-link:focus,
.ki-fiscal__inline-link:focus-visible {
  color: var(--ki-gold, #bf8d38);
  text-decoration: none;
}

.ki-fiscal__hl {
  font-weight: 700;
}

/* ── HERO — adaptations fiscale ──────────────────────────────────────────── */
.ki-hero__desc.ki-hero--fiscal__desc {
  gap: 1.25rem;
}

.ki-hero--fiscal__intro {
  margin: 0;
  font-size: clamp(1rem, 0.35vw + 0.95rem, 1.2rem);
  line-height: 1.7;
  color: color-mix(in srgb, var(--ki-white) 88%, transparent);
}

/* Checklist hero : verre sur fond navy */
.ki-fiscal__checklist-card {
  width: 100%;
  max-width: 26rem;
  padding: clamp(1.25rem, 2.5vw, 1.75rem);
  border-radius: var(--ki-radius-lg, 1.25rem);
  border: 1px solid color-mix(in srgb, var(--ki-white) 16%, transparent);
  border-left: 3px solid var(--ki-gold, #bf8d38);
  background: color-mix(in srgb, var(--ki-white) 7%, transparent);
  box-shadow:
    inset 0 1px 0 color-mix(in srgb, var(--ki-white) 12%, transparent),
    0 8px 32px rgba(0, 0, 0, 0.12);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.ki-fiscal__checklist-card--hero {
  max-width: none;
  margin-top: 0;
}

.ki-fiscal__checklist-title {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin: 0 0 1.25rem;
  font-size: 1rem;
  font-weight: 700;
  color: var(--ki-white);
  letter-spacing: 0.01em;
}

.ki-fiscal__checklist-title-icon {
  flex-shrink: 0;
  color: var(--ki-gold, #bf8d38);
  margin-top: 0.05rem;
}

.ki-fiscal__checklist {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
}

.ki-fiscal__checklist-item {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
}

.ki-fiscal__checklist-icon {
  flex-shrink: 0;
  margin-top: 0.1rem;
  color: var(--ki-gold, #bf8d38);
}

.ki-fiscal__checklist-text {
  font-size: 0.875rem;
  line-height: 1.55;
  color: color-mix(in srgb, var(--ki-white) 88%, transparent);
}

/* ── INTRO — layout 2 colonnes ───────────────────────────────────────────── */
.ki-fiscal__intro {
  padding-block: var(--ki-section-padding-y);
}

.ki-fiscal__intro-inner {
  display: grid;
  gap: 2.5rem;
  align-items: center;
}

@media (min-width: 900px) {
  .ki-fiscal__intro-inner {
    grid-template-columns: 1fr 1fr;
    gap: 3.5rem;
  }
}

/* Colonne texte */
.ki-fiscal__intro-text .ki-fiscal__p {
  font-size: clamp(1rem, 1.2vw, 1.125rem);
  line-height: 1.75;
}

/* Callout bilan — alias vers .ki-infobox--tip */
.ki-fiscal__callout {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.25rem 1.5rem;
  border-radius: var(--ki-radius-lg, 1.25rem);
  border: 1px solid color-mix(in srgb, var(--ki-gold) 28%, transparent);
  background: linear-gradient(
    135deg,
    color-mix(in srgb, var(--ki-gold) 8%, white) 0%,
    color-mix(in srgb, var(--ki-navy) 3%, white) 100%
  );
  box-shadow: 0 2px 16px rgba(191, 141, 56, 0.08);
  font-size: 0.9375rem;
  line-height: 1.65;
  color: color-mix(in srgb, var(--ki-navy) 75%, transparent);
}

.ki-fiscal__callout-icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  margin-top: 0.05rem;
  background: color-mix(in srgb, var(--ki-gold) 14%, transparent);
  color: var(--ki-gold, #bf8d38);
}

.ki-fiscal__callout-text {
  flex: 1;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: color-mix(in srgb, var(--ki-navy) 75%, transparent);
}

/* ── ENTREPRISES — timeline verticale élégante ───────────────────────────── */
.ki-fiscal__entreprises {
  padding-block: var(--ki-section-padding-y);
}

/* Axe = ligne verticale + contenu */
.ki-fiscal__axis {
  position: relative;
  display: grid;
  grid-template-columns: 3rem 1fr;
  gap: 0 1.5rem;
  margin-top: 2.5rem;
}

/* Ligne verticale entre les deux axes */
.ki-fiscal__axis + .ki-fiscal__axis {
  margin-top: 0;
  padding-top: 2rem;
}

.ki-fiscal__axis + .ki-fiscal__axis::before {
  content: ‘’;
  position: absolute;
  top: 0;
  left: 1.375rem; /* centre du badge */
  width: 2px;
  height: 2rem;
  background: linear-gradient(
    to bottom,
    color-mix(in srgb, var(--ki-gold) 40%, transparent),
    color-mix(in srgb, var(--ki-gold) 10%, transparent)
  );
}

@media (max-width: 639px) {
  .ki-fiscal__axis {
    grid-template-columns: 1fr;
  }

  .ki-fiscal__axis + .ki-fiscal__axis::before {
    display: none;
  }
}

.ki-fiscal__axis-num {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--ki-white);
  background: var(--ki-navy, #162741);
  border: 4px solid var(--ki-white, #fff);
  align-self: flex-start;
  flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.12);
}

.ki-fiscal__axis:nth-child(even) .ki-fiscal__axis-num {
  background: var(--ki-gold, #bf8d38);
}

/* Après les styles du badge : sinon display:flex écrase display:none (cascade) */
@media (max-width: 639px) {
  .ki-fiscal__axis-num {
    display: none;
  }
}

.ki-fiscal__axis-body {
  padding-bottom: 0.5rem;
}

/* Callout navy : encadré levier sous-utilisé */
.ki-fiscal__callout--navy {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  margin-top: 1.25rem;
  padding: 1.25rem 1.5rem;
  border-radius: var(--ki-radius-md, 0.75rem);
  border: 1px solid color-mix(in srgb, var(--ki-navy) 14%, transparent);
  background: color-mix(in srgb, var(--ki-navy) 5%, white);
  box-shadow: 0 2px 12px rgba(15, 26, 44, 0.05);
}

.ki-fiscal__callout--navy::before {
  content: ‘★’;
  flex-shrink: 0;
  font-size: 1rem;
  line-height: 1.5;
  color: var(--ki-gold, #bf8d38);
}

.ki-fiscal__callout--navy .ki-fiscal__callout-title {
  margin: 0 0 0.5rem;
  font-weight: 700;
  font-size: 0.9375rem;
  color: var(--ki-navy, #162741);
}

/* Grilles de cards */
.ki-fiscal__card-grid {
  display: grid;
  gap: 1.25rem;
  margin-top: 1.5rem;
}

@media (min-width: 768px) {
  .ki-fiscal__card-grid--3 {
    grid-template-columns: repeat(3, 1fr);
  }

  .ki-fiscal__card-grid--4 {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .ki-fiscal__card-grid--4 {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* Mini-cards holding — alias de .ki-card + .ki-card--top-bar */

.ki-fiscal__mini-card::before {
  content: ‘’;
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--ki-gold, #bf8d38), var(--ki-gold-dark, #a6772a));
  border-radius: var(--ki-radius-xl) var(--ki-radius-xl) 0 0;
}

.ki-fiscal__mini-card:hover {
  box-shadow: var(--ki-card-shadow-hover);
  border-color: var(--ki-gold);
  transform: translateY(-4px);
}

.ki-fiscal__mini-card:hover .ki-card__icon-wrap { background: var(--ki-gold); }
.ki-fiscal__mini-card:hover .ki-card__num       { color: rgba(191,141,56,0.08); }

/* ── SCHEMA FLUX — inchangé structurellement ─────────────────────────────── */
.ki-fiscal__schema {
  padding-block: var(--ki-section-padding-y);
}

.ki-fiscal__schema-panel {
  border-radius: var(--ki-radius-lg, 1.25rem);
  border: 1px solid color-mix(in srgb, var(--ki-navy) 10%, transparent);
  padding: clamp(1rem, 2vw, 2rem);
  background: var(--ki-white);
  box-shadow:
    0 4px 24px rgba(15, 26, 44, 0.06),
    inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.ki-fiscal__schema-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.ki-fiscal__schema-svg {
  display: block;
  min-width: 680px;
  max-width: 100%;
  height: auto;
}

.ki-fiscal__schema-footnote {
  margin: 1.25rem 0 0;
  font-size: 0.875rem;
  line-height: 1.6;
  font-style: italic;
  text-align: center;
  color: color-mix(in srgb, var(--ki-navy) 40%, transparent);
}

/* ── PARTICULIER — table TMI + leviers ───────────────────────────────────── */
.ki-fiscal__particulier {
  padding-block: var(--ki-section-padding-y);
}

/* Alias pour l'animation scroll — styles délégués à .ki-table__wrap / .ki-table */
.ki-fiscal__table-wrap { margin-bottom: 1.5rem; }


/* Leviers PER + Déficit foncier : cards navy élégantes */
.ki-fiscal__levers {
  display: grid;
  gap: 1.5rem;
  margin-top: 0.5rem;
}

@media (min-width: 768px) {
  .ki-fiscal__levers {
    grid-template-columns: repeat(2, 1fr);
  }
}


.ki-fiscal__lever-title {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  margin: 0 0 1rem;
  font-size: 1.275rem;
  font-weight: 700;
  color: var(--ki-gold, #bf8d38);
  letter-spacing: -0.01em;
}

.ki-fiscal__lever-title::before {
  content: ‘’;
  display: inline-block;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: var(--ki-gold, #bf8d38);
  flex-shrink: 0;
}

.ki-fiscal__lever .ki-fiscal__p {
  color: var(--ki-text-muted);
  font-size: 1rem;
  line-height: 1.65;
}

.ki-fiscal__lever .ki-fiscal__p:last-child {
  margin-bottom: 0;
}

.ki-fiscal__note {
  margin: 1rem 0 0;
  padding: 0.75rem 1rem;
  border-radius: 0.5rem;
  font-size: 0.875rem;
  font-style: italic;
  line-height: 1.55;
  color: var(--ki-text-muted);
  border-top: 1px solid color-mix(in srgb, var(--ki-navy) 12%, transparent);
  background: color-mix(in srgb, var(--ki-navy) 4%, transparent);
}

.ki-fiscal__centered {
  margin: 2.5rem auto 0;
  max-width: 52rem;
  text-align: center;
  font-size: 1rem;
  line-height: 1.7;
  color: color-mix(in srgb, var(--ki-navy) 65%, transparent);
  font-style: italic;
}

/* ── IMMOBILIER ───────────────────────────────────────────────────────────── */
.ki-fiscal__immo {
  padding-block: var(--ki-section-padding-y);
}

.ki-fiscal__immo .ki-infobox + .ki-fiscal__h3 {
  margin-top: 2.5rem;
}

.ki-fiscal__immo .ki-fiscal__card-grid + .ki-infobox {
  margin-top: 2.5rem;
}

/* Alerte — alias vers .ki-infobox--warn */
.ki-fiscal__alert {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  max-width: 58rem;
  margin: 0 auto 2.5rem;
  padding: 1.25rem 1.5rem;
  border-radius: var(--ki-radius-lg, 1.25rem);
  border: 1px solid var(--ki-warning-border);
  background: linear-gradient(135deg, var(--ki-warning-bg-alt) 0%, var(--ki-warning-bg) 100%);
  color: var(--ki-warning-text);
  box-shadow: 0 2px 16px var(--ki-warning-shadow);
}

.ki-fiscal__alert-inner {
  flex: 1;
  min-width: 0;
}

.ki-fiscal__alert-title {
  margin: 0 0 0.5rem;
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--ki-warning-mid);
}

.ki-fiscal__alert .ki-fiscal__p {
  font-size: 0.9375rem;
  color: var(--ki-warning-text);
}

.ki-fiscal__alert .ki-fiscal__p strong {
  color: var(--ki-warning-dark);
}

/* Device-cards — alias de .ki-card + .ki-card--top-bar */
.ki-fiscal__device-card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 2rem;
  background: var(--ki-white);
  border-radius: var(--ki-radius-xl);
  border: var(--ki-card-border);
  box-shadow: var(--ki-card-shadow);
  overflow: hidden;
  transition: box-shadow 0.3s, transform 0.3s, border-color 0.3s;
}

.ki-fiscal__device-card::before {
  content: ‘’;
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--ki-gold, #bf8d38), var(--ki-gold-dark, #a6772a));
  border-radius: var(--ki-radius-xl) var(--ki-radius-xl) 0 0;
}

.ki-fiscal__device-card:hover {
  box-shadow: var(--ki-card-shadow-hover);
  border-color: var(--ki-gold);
  transform: translateY(-4px);
}

.ki-fiscal__device-card:hover .ki-card__icon-wrap { background: var(--ki-gold); }
.ki-fiscal__device-card:hover .ki-card__num       { color: rgba(191,141,56,0.08); }


/* ── CABINET — section navy ───────────────────────────────────────────────── */
.ki-fiscal__cabinet {
  padding-block: var(--ki-section-padding-y);
}

/* Cards cabinet : alias .ki-panel--on-white */
/* Alias ki-card */
.ki-fiscal__cab-card {
  background: var(--ki-white);
}

.ki-fiscal__cab-para {
  margin: 2.5rem auto 0;
  max-width: 60rem;
  text-align: center;
  font-size: 1rem;
  line-height: 1.7;
  color: var(--ki-text-muted);
}

.ki-fiscal__inline-link--on-dark {
  color: var(--ki-gold, #bf8d38);
}

.ki-fiscal__cab-ctas {
  display: grid;
  gap: 1rem;
  margin: 2.5rem auto 0;
  max-width: 52rem;
}

@media (min-width: 640px) {
  .ki-fiscal__cab-ctas {
    grid-template-columns: repeat(2, 1fr);
  }
}

.ki-fiscal__cab-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 0.3rem;
  min-height: 4.5rem;
  cursor: pointer;
}

.ki-fiscal__cab-cta-main {
  font-weight: 700;
}

.ki-fiscal__cab-cta-sub {
  font-size: 0.875rem;
  font-weight: 400;
  opacity: 0.8;
}

.ki-fiscal__cab-footer {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 0.5rem;
  margin: 2.5rem auto 0;
  max-width: 60rem;
  font-size: 1rem;
  line-height: 1.6;
  color: color-mix(in srgb, var(--ki-text-muted) 45%, transparent);
}

.ki-fiscal__cab-footer svg {
  flex-shrink: 0;
  margin-top: 0.15rem;
  color: var(--ki-gold, #bf8d38);
}

/* =============================================================================
   PAGE — Conseil investissement immobilier Montpellier (.ki-invest-immo)
   ============================================================================= */

.ki-invest-immo__prose p {
  margin: 0 0 1rem;
  font-size: 1.125rem;
  line-height: 1.75;
  color: var(--ki-text-muted);
}

.ki-invest-immo__prose p:last-child {
  margin-bottom: 0;
}

/* Bloc « pourquoi un conseil » : intro dans le header (DS) + prose brute */
.ki-invest-immo__why-shell {
  max-width: 100rem;
  margin-inline: auto;
}

.ki-invest-immo__why-intro.ki-section__intro {
  margin-top: 0;
  margin-bottom: 0;
  color: var(--ki-text-muted);
}

/* Grilles erreurs / critères : même rythme que .ki-invest-immo__devices */
.ki-invest-immo__errors-grid,
.ki-invest-immo__choose-grid {
  display: grid;
  gap: 1.25rem;
}

@media (min-width: 768px) {
  .ki-invest-immo__errors-grid,
  .ki-invest-immo__choose-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
  }
}

/* Erreurs : même hauteur par ligne + .ki-card__num comme ki-fiscal__mini-card */
.ki-invest-immo__errors-grid-cell {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.ki-invest-immo__errors-grid-cell > .ki-panel.ki-invest-immo__error-panel {
  flex: 1 1 auto;
  width: 100%;
  display: flex;
  flex-direction: column;
}

.ki-invest-immo__errors-grid-cell .ki-invest-immo__error-panel .ki-invest-immo__rich {
  flex: 1 1 auto;
}

.ki-invest-immo__errors-grid-cell .ki-invest-immo__error-panel:hover .ki-card__num {
  color: rgba(191, 141, 56, 0.08);
}

.ki-invest-immo__errors-intro.ki-section__intro {
  margin-top: 0;
  margin-bottom: 0;
  color: var(--ki-text-muted);
}

/* Choisir son cabinet : même hauteur par ligne (grille 2 col) */
.ki-invest-immo__choose-grid-cell {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.ki-invest-immo__choose-grid-cell > .ki-panel.ki-invest-immo__choose-panel {
  flex: 1 1 auto;
  width: 100%;
  display: flex;
  flex-direction: column;
}

.ki-invest-immo__choose-grid-cell .ki-invest-immo__choose-panel .ki-invest-immo__rich {
  flex: 1 1 auto;
}

/* Icônes type ki-fiscal__mini-card dans les panels « choisir » */
.ki-invest-immo__choose-panel:hover .ki-card__icon-wrap {
  background: var(--ki-gold);
}

/* Intro section « choisir son cabinet » : slot .ki-section__intro du design system */
.ki-invest-immo__choose-intro.ki-section__intro {
  margin-top: 0;
  margin-bottom: 0;
  color: var(--ki-text-muted);
}

.ki-invest-immo__choose-intro.ki-section__intro p {
  margin: 0 0 0.75rem;
}

.ki-invest-immo__choose-intro.ki-section__intro p:last-child {
  margin-bottom: 0;
}

.ki-invest-immo__choose-intro a {
  color: var(--ki-gold);
  text-decoration: none;
}

.ki-invest-immo__choose-intro a:hover,
.ki-invest-immo__choose-intro a:focus,
.ki-invest-immo__choose-intro a:focus-visible {
  color: var(--ki-gold);
  text-decoration: none;
}

.ki-invest-immo__body-panel .ki-panel__title {
  font-size: clamp(1.05rem, 1.8vw, 1.25rem);
}

.ki-invest-immo__why-shell .ki-invest-immo__prose p {
  font-size: 1.0625rem;
  line-height: 1.7;
}

.ki-invest-immo__rich p {
  margin: 0 0 0.75rem;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: color-mix(in srgb, var(--ki-navy) 72%, transparent);
}

.ki-invest-immo__rich p:last-child {
  margin-bottom: 0;
}

.ki-invest-immo__rich a {
  color: var(--ki-gold);
  text-decoration: none;
}

.ki-invest-immo__rich a:hover,
.ki-invest-immo__rich a:focus,
.ki-invest-immo__rich a:focus-visible {
  color: var(--ki-gold);
  text-decoration: none;
}

.ki-invest-immo__devices {
  display: grid;
  gap: 1.25rem;
}

@media (min-width: 768px) {
  .ki-invest-immo__devices {
    grid-template-columns: repeat(2, 1fr);
  }
}

.ki-invest-immo__device .ki-panel__title {
  font-size: clamp(1.05rem, 1.8vw, 1.25rem);
  color: var(--ki-gold);
}

.ki-invest-immo__device .ki-invest-immo__do {
  margin: 1rem 0 0;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: color-mix(in srgb, var(--ki-navy) 70%, transparent);
}

.ki-invest-immo__device p {
  margin: 0 0 1rem;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: color-mix(in srgb, var(--ki-navy) 72%, transparent);
}

.ki-invest-immo__device p:last-child {
  margin-bottom: 0;
}

.ki-invest-immo__cross {
  margin-top: 2.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid color-mix(in srgb, var(--ki-navy) 8%, transparent);
  text-align: center;
  font-size: 1rem;
  line-height: 1.65;
}

.ki-invest-immo .ki-link-inline {
  color: var(--ki-gold, #bf8d38);
  font-weight: 600;
  text-decoration: none;
}

.ki-invest-immo .ki-link-inline:hover,
.ki-invest-immo .ki-link-inline:focus,
.ki-invest-immo .ki-link-inline:focus-visible {
  color: var(--ki-gold, #bf8d38);
  text-decoration: none;
}

.ki-invest-immo__faq {
  padding-block: var(--ki-section-padding-y);
}

.ki-invest-immo__faq .ki-section__header {
  margin-bottom: 2rem;
}

.ki-invest-immo__faq-ol {
  margin: 0.75rem 0 0;
  padding-left: 1.25rem;
  list-style: decimal;
  line-height: 1.65;
}

.ki-invest-immo__faq-ol li {
  margin-bottom: 0.5rem;
}

/* ── Page : Préparation retraite (.ki-prep-retraite) ───────────────────────── */
.ki-prep-retraite__prose {
  font-size: 1rem;
  line-height: 1.7;
  color: color-mix(in srgb, var(--ki-navy) 78%, transparent);
}

.ki-prep-retraite__prose p {
  margin: 0 0 1rem;
}

.ki-prep-retraite__prose p:last-child {
  margin-bottom: 0;
}

.ki-prep-retraite__intro-chart {
  margin-top: clamp(2rem, 4vw, 3rem);
}


.ki-prep-retraite__intro-chart .ki-prep-retraite__figure {
  margin-top: 1rem;
}

.ki-prep-retraite__prose--h3 .ki-prep-retraite__h3 {
  margin: 0 0 1rem;
  font-size: clamp(1.1rem, 2vw, 1.35rem);
  font-weight: 700;
  color: var(--ki-navy);
}

.ki-prep-retraite__stack {
  display: flex;
  flex-direction: column;
  gap: clamp(1.5rem, 3vw, 2.25rem);
}

.ki-prep-retraite__ol,
.ki-prep-retraite__ul {
  margin: 0.75rem 0 1rem;
  padding-left: 1.35rem;
  line-height: 1.65;
}

.ki-prep-retraite__ol {
  list-style: decimal;
}

.ki-prep-retraite__ul {
  list-style: disc;
}

.ki-prep-retraite__ol li,
.ki-prep-retraite__ul li {
  margin-bottom: 0.5rem;
}

.ki-prep-retraite__figure {
  margin: 2rem 0 0;
  padding: clamp(1.25rem, 3vw, 2rem);
  background: var(--ki-white);
  border: 1px solid color-mix(in srgb, var(--ki-navy) 8%, transparent);
  border-radius: var(--ki-radius-lg);
  box-shadow: var(--ki-shadow);
}

.ki-section--light .ki-prep-retraite__figure {
  background: var(--ki-white);
}

.ki-prep-retraite__figcaption {
  margin: 0 0 1.5rem;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: color-mix(in srgb, var(--ki-navy) 68%, transparent);
}

.ki-prep-retraite__chart--replace,
.ki-prep-retraite__chart--compound {
  overflow: hidden;
}

.ki-prep-retraite__chart-inner {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
  gap: clamp(1rem, 2.5vw, 1.75rem);
  align-items: end;
}

.ki-prep-retraite__bar-group {
  text-align: center;
}

.ki-prep-retraite__bar-label {
  margin: 0 0 0.65rem;
  font-size: 0.8125rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: color-mix(in srgb, var(--ki-navy) 55%, transparent);
}

.ki-prep-retraite__bar-pair {
  display: flex;
  gap: 0.4rem;
  justify-content: center;
  height: 11rem;
  align-items: flex-end;
}

.ki-prep-retraite__bar-track {
  flex: 1;
  max-width: 2.75rem;
  height: 100%;
  display: flex;
  align-items: flex-end;
  background: color-mix(in srgb, var(--ki-navy) 6%, transparent);
  border-radius: var(--ki-radius-sm);
  overflow: hidden;
}

.ki-prep-retraite__bar {
  display: block;
  width: 100%;
  min-height: 3px;
  border-radius: var(--ki-radius-sm);
  transition: transform 0.2s ease;
}

.ki-prep-retraite__bar--ref {
  background: var(--ki-navy);
}

.ki-prep-retraite__bar--pen {
  background: var(--ki-gold);
}

.ki-prep-retraite__chart-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.5rem;
  justify-content: center;
  margin: 1.25rem 0 0;
  font-size: 0.8125rem;
  color: color-mix(in srgb, var(--ki-navy) 58%, transparent);
}

.ki-prep-retraite__swatch {
  display: inline-block;
  width: 0.65rem;
  height: 0.65rem;
  margin-right: 0.35rem;
  border-radius: 2px;
  vertical-align: middle;
}

.ki-prep-retraite__swatch--ref {
  background: var(--ki-navy);
}

.ki-prep-retraite__swatch--pen {
  background: var(--ki-gold);
}

.ki-prep-retraite__compound {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.ki-prep-retraite__compound-row {
  display: grid;
  grid-template-columns: minmax(10rem, 14rem) 1fr;
  gap: 0.75rem 1rem;
  align-items: center;
}

@media (max-width: 520px) {
  .ki-prep-retraite__compound-row {
    grid-template-columns: 1fr;
  }
}

.ki-prep-retraite__compound-label {
  margin: 0;
  font-weight: 600;
  font-size: 0.9375rem;
  color: var(--ki-navy);
}

.ki-prep-retraite__compound-value {
  margin: 0.2rem 0 0;
  font-size: 0.875rem;
  color: var(--ki-gold);
  font-weight: 600;
}

.ki-prep-retraite__compound-bar-wrap {
  height: 0.65rem;
  background: color-mix(in srgb, var(--ki-navy) 8%, transparent);
  border-radius: var(--ki-radius-full);
  overflow: hidden;
}

.ki-prep-retraite__compound-bar {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, var(--ki-navy), var(--ki-gold));
  border-radius: var(--ki-radius-full);
  transition: width 0.35s ease;
}

.ki-prep-retraite__immo-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(1.25rem, 2.5vw, 1.75rem);
}

.ki-prep-retraite__immo-panel--full {
  grid-column: 1 / -1;
}

@media (max-width: 640px) {
  .ki-prep-retraite__immo-grid {
    grid-template-columns: 1fr;
  }
}

.ki-prep-retraite__immo-panel .ki-panel__title {
  font-size: clamp(1.05rem, 1.8vw, 1.2rem);
  color: var(--ki-navy);
}

.ki-prep-retraite__panel-inner p {
  margin: 0 0 0.85rem;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: color-mix(in srgb, var(--ki-navy) 72%, transparent);
}

.ki-prep-retraite__panel-inner p:last-child {
  margin-bottom: 0;
}

.ki-prep-retraite__cross {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid color-mix(in srgb, var(--ki-navy) 8%, transparent);
  text-align: center;
  font-size: 1rem;
  line-height: 1.65;
}

.ki-prep-retraite .ki-link-inline {
  color: var(--ki-gold);
  font-weight: 600;
  text-decoration: none;
}

.ki-prep-retraite .ki-link-inline:hover,
.ki-prep-retraite .ki-link-inline:focus,
.ki-prep-retraite .ki-link-inline:focus-visible {
  color: var(--ki-gold);
  text-decoration: none;
}

.ki-prep-retraite__faq {
  padding-block: var(--ki-section-padding-y);
}

.ki-prep-retraite__faq .ki-section__header {
  margin-bottom: 2rem;
}

/* Espacement vertical entre blocs de réponse FAQ (paragraphes, listes) */
.ki-prep-retraite__faq .sc-faq__answer-inner > p + p,
.ki-prep-retraite__faq .sc-faq__answer-inner > p + ul,
.ki-prep-retraite__faq .sc-faq__answer-inner > ul + p,
.ki-prep-retraite__faq .sc-faq__answer-inner > p + ol,
.ki-prep-retraite__faq .sc-faq__answer-inner > ol + p {
  margin-top: 1rem;
}

.ki-prep-retraite__faq .sc-faq__answer-inner > p:first-child {
  margin-top: 0;
}

.ki-prep-retraite__faq .sc-faq__answer-inner ul,
.ki-prep-retraite__faq .sc-faq__answer-inner ol {
  padding-left: 1.5rem;
}

/* Alias pour l'animation scroll — styles délégués à .ki-table__wrap / .ki-table */
.ki-prep-retraite__table-wrap { margin: 1.5rem 0; }

.ki-prep-retraite__closing-btn-wrap {
  margin: 1.75rem 0 0;
  text-align: center;
}

/* ── FAQ ──────────────────────────────────────────────────────────────────── */
.ki-fiscal__faq {
  padding-block: var(--ki-section-padding-y);
}

.ki-fiscal__faq-title {
  margin: 0 0 2.5rem;
  text-align: center;
}

/* ── Reduced motion ───────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .ki-fiscal__mini-card,
  .ki-fiscal__lever,
  .ki-fiscal__device-card,
  .ki-fiscal__cab-card {
    transition: none;
  }

  .ki-fiscal__mini-card:hover,
  .ki-fiscal__lever:hover,
  .ki-fiscal__device-card:hover,
  .ki-fiscal__cab-card:hover {
    transform: none;
  }
}

/* ============================================================================
   COMPOSANT TABLE — réutilisable inter-pages
   .ki-table
============================================================================ */

.ki-table__wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin-block: 2rem;
  border-radius: var(--ki-radius-lg);
  box-shadow: var(--ki-shadow);
}

.ki-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9375rem;
  background: var(--ki-white);
}

.ki-table__caption {
  font-size: 0.8125rem;
  color: var(--ki-text-muted);
  caption-side: bottom;
  text-align: left;
  padding: 0.6rem 1rem 0;
  font-style: italic;
}

.ki-table thead th {
  background: var(--ki-navy);
  color: var(--ki-white);
  font-weight: 600;
  font-size: 0.8125rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.9rem 1rem;
  text-align: left;
  border-bottom: 2px solid var(--ki-gold);
}

.ki-table th[scope="row"] {
  font-weight: 600;
  color: var(--ki-navy);
}

.ki-table td,
.ki-table tbody th {
  padding: 0.85rem 1rem;
  text-align: left;
  border-bottom: 1px solid color-mix(in srgb, var(--ki-navy) 10%, transparent);
}

.ki-table tbody tr:nth-child(even) {
  background: color-mix(in srgb, var(--ki-bg-light) 85%, var(--ki-white));
}

/* ── Modificateurs de ligne ─────────────────────────────────────────────────── */
.ki-table__row--accent td,
.ki-table__row--accent th {
  font-weight: 700;
  color: var(--ki-navy);
  background: color-mix(in srgb, var(--ki-gold) 14%, var(--ki-white)) !important;
}

.ki-table__row--total td,
.ki-table__row--total th {
  border-top: 1px solid color-mix(in srgb, var(--ki-navy) 18%, transparent);
  font-weight: 600;
  font-size: 0.9375rem;
}

/* ── Modificateurs de cellule ───────────────────────────────────────────────── */
.ki-table__cell--good {
  color: var(--ki-gold-dark);
  font-weight: 600;
}

.ki-table__cell--bad {
  color: var(--ki-warning-accent);
  font-weight: 500;
}

.ki-table__cell--warn {
  color: var(--ki-warning-accent);
  font-weight: 700;
}

.ki-table__note {
  font-size: 0.8125rem;
  color: var(--ki-text-muted);
  font-style: italic;
  margin-top: 0.75rem;
}

/* ============================================================================
   PAGE — PRÉVOYANCE INDIVIDUELLE ET PROFESSIONNELLE
   .ki-prevoyance
============================================================================ */


/* ── Section pro — Prévoyance professionnelle ──────────────────────────────── */
.ki-prevoyance__pro {
  padding-block: var(--ki-section-padding-y);
}

.ki-prevoyance__pro-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr));
  gap: 1.5rem;
  margin-top: 2.5rem;
}

.ki-prevoyance__cross {
  margin-top: 2rem;
  padding: 1.25rem 1.5rem;
  background: color-mix(in srgb, var(--ki-navy) 6%, transparent);
  border-left: 3px solid var(--ki-gold);
  border-radius: var(--ki-radius);
  font-size: 0.9375rem;
  color: var(--ki-navy);
}

.ki-prevoyance__cross p {
  margin: 0;
}

/* ── Section indiv — Prévoyance individuelle ───────────────────────────────── */
.ki-prevoyance__indiv {
  padding-block: var(--ki-section-padding-y);
}

.ki-prevoyance__gap-block {
  margin-bottom: 3rem;
}

.ki-prevoyance__indiv-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr));
  gap: 1.5rem;
  margin-top: 2.5rem;
}

/* ── Section method — Audit ────────────────────────────────────────────────── */
.ki-prevoyance__method {
  padding-block: var(--ki-section-padding-y);
}

.ki-prevoyance__method-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2.5rem 3rem;
  margin-top: 2.5rem;
  margin-bottom: 2rem;
}

/* ── Composant axis (générique, inter-pages) ───────────────────────────────── */
.ki-axis-item {
  display: grid;
  grid-template-columns: 2.5rem 1fr;
  gap: 0 1.25rem;
}

.ki-axis__num {
  flex-shrink: 0;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background: var(--ki-gold);
  color: var(--ki-white);
  font-weight: 700;
  font-size: 0.9375rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 4px solid var(--ki-white);
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.12);
  align-self: start;
}

.ki-axis__body {
  padding-bottom: 0.5rem;
}

.ki-axis__title {
  position: relative;
  margin: 0.25rem 0 1.5rem;
  padding-bottom: 0.625rem;
  font-size: clamp(1.2rem, 2vw, 1.5rem);
  font-weight: 700;
  color: var(--ki-navy);
  letter-spacing: -0.01em;
}

.ki-axis__title::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 2.5rem;
  height: 2px;
  background: var(--ki-gold);
  border-radius: 2px;
}

@media (max-width: 639px) {
  .ki-prevoyance__method-grid {
    grid-template-columns: 1fr;
  }
}

/* ── Section CTA ────────────────────────────────────────────────────────────── */
.ki-prevoyance__cta-block {
  padding-block: var(--ki-section-padding-y);
}

/* ── FAQ ────────────────────────────────────────────────────────────────────── */
.ki-prevoyance__faq {
  padding-block: var(--ki-section-padding-y);
}

/* ─── Prévoyance individuelle — page-prevoyance-individuelle.php ─────────── */

.ki-prevoyance-indiv__h3 {
  position: relative;
  margin: 0 0 1.5rem;
  padding-bottom: 0.625rem;
  font-size: clamp(1.2rem, 2vw, 1.5rem);
  font-weight: 700;
  color: var(--ki-navy);
  letter-spacing: -0.01em;
}

.ki-prevoyance-indiv__h3::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 2.5rem;
  height: 2px;
  background: var(--ki-gold);
  border-radius: 2px;
}

.ki-prevoyance-indiv__h3--spaced {
  margin-top: 2.5rem;
}

/* Sous-blocs garanties : espacement + révélation au scroll par bloc */
.ki-prevoyance-indiv__garanties-stack > .ki-prevoyance-indiv__garantie-reveal:not(:first-child) {
  margin-top: 2.5rem;
}

/* Grille 2×2 — critères de coût */
.ki-prevoyance-indiv__cost-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
  margin-top: 2.5rem;
}

/* Révélation en cascade des 4 panels tarif (surcharge du délai unique .ki-panel) */
@media (prefers-reduced-motion: no-preference) {
  html.js .ki-reveal.is-inview .ki-prevoyance-indiv__cost-grid > .ki-panel:nth-child(1) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 0);
  }

  html.js .ki-reveal.is-inview .ki-prevoyance-indiv__cost-grid > .ki-panel:nth-child(2) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 1);
  }

  html.js .ki-reveal.is-inview .ki-prevoyance-indiv__cost-grid > .ki-panel:nth-child(3) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }

  html.js .ki-reveal.is-inview .ki-prevoyance-indiv__cost-grid > .ki-panel:nth-child(4) {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 3);
  }
}

.ki-prevoyance-indiv__infobox,
.ki-prevoyance-indiv__warn {
  margin-block: 1.5rem;
}

.ki-prevoyance-indiv__table-wrap {
  margin-block: 2rem;
}

.ki-prevoyance-indiv__section-spacing {
  margin-top: 3rem;
}

.ki-prevoyance-indiv__comparatif > h3 {
  font-size: clamp(1.1rem, 1.8vw, 1.35rem);
  font-weight: 700;
  color: var(--ki-navy);
  margin: 0 0 1.25rem;
}

.ki-prevoyance-indiv__resume {
  margin-top: 2rem;
}

/* Prose dans les panels */
.ki-prevoyance-indiv__panel-prose p {
  font-size: 0.9375rem;
  line-height: 1.75;
  color: var(--ki-text-muted);
  margin: 0 0 0.875rem;
}

.ki-prevoyance-indiv__panel-prose p:last-child {
  margin-bottom: 0;
}

/* Listes dans ki-content-flow */
.ki-prevoyance-indiv .ki-content-flow ul {
  padding-left: 1.25rem;
  margin: 0.75rem 0 1rem;
  list-style: none;
}

.ki-prevoyance-indiv .ki-content-flow ul li {
  position: relative;
  padding-left: 1rem;
  margin-bottom: 0.375rem;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--ki-text-muted);
}

.ki-prevoyance-indiv .ki-content-flow ul li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 0.375rem;
  height: 0.375rem;
  border-radius: 50%;
  background: var(--ki-gold);
}

@media (max-width: 640px) {
  .ki-prevoyance-indiv__cost-grid {
    grid-template-columns: 1fr;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   TRANSMISSION & SUCCESSION — page-transmission-succession.php
   Tokens uniquement (--ki-*). Tableau comparatif, grilles, FAQ highlight.
   ═══════════════════════════════════════════════════════════════════════════ */

.ki-transmission {
  --ki-transmission-bad: oklch(42% 0.14 25);
  --ki-transmission-good: oklch(38% 0.1 155);
}

.ki-transmission__prose > p,
.ki-transmission__cond-lead {
  font-size: 1rem;
  line-height: 1.75;
  color: var(--ki-text-muted);
  margin: 0 0 var(--ki-space-4, 1rem);
}

.ki-transmission__prose > p:last-child {
  margin-bottom: 0;
}

.ki-transmission__subhead {
  position: relative;
  margin: 2rem 0 1.5rem;
  padding-bottom: 0.625rem;
  font-size: clamp(1.2rem, 2vw, 1.5rem);
  font-weight: 700;
  color: var(--ki-navy);
  letter-spacing: -0.01em;
}

.ki-transmission__subhead::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 2.5rem;
  height: 2px;
  background: var(--ki-gold);
  border-radius: 2px;
}

/* Tableau comparatif : réutilise .ki-prevoyance__table — surcharges couleurs uniquement */
.ki-transmission__th--good {
  color: var(--ki-transmission-good);
}

.ki-transmission__td--bad {
  color: var(--ki-transmission-bad);
  font-weight: 500;
}

.ki-transmission__td--good {
  color: var(--ki-transmission-good);
  font-weight: 600;
}


.ki-transmission__two-col {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--ki-space-4, 1rem);
  margin: var(--ki-space-5, 1.25rem) 0 var(--ki-space-6, 1.5rem);
}

@media (min-width: 640px) {
  .ki-transmission__two-col {
    grid-template-columns: 1fr 1fr;
  }
}

.ki-transmission__cond-panel.ki-panel .ki-panel__title {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--ki-gold);
}

.ki-transmission__role-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--ki-space-4, 1rem);
  margin: var(--ki-space-6, 1.5rem) 0;
}

@media (min-width: 480px) {
  .ki-transmission__role-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 960px) {
  .ki-transmission__role-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* Cercle décoratif gold — aligné sur .ki-panel--on-white::after */
.ki-transmission__role-card {
  position: relative;
  overflow: hidden;
}

.ki-transmission__role-card::after {
  content: '';
  position: absolute;
  bottom: -2rem;
  right: -2rem;
  width: 8rem;
  height: 8rem;
  border-radius: 50%;
  background: color-mix(in srgb, var(--ki-gold) 14%, transparent);
  pointer-events: none;
}

.ki-transmission__role-card .ki-card__rate {
  font-size: 0.7rem;
  letter-spacing: 0.06em;
}

.ki-transmission__role-card .ki-card__title {
  font-size: 1.125rem;
}

.ki-transmission__axis-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2.5rem 3rem;
  margin-top: 2.5rem;
}

@media (max-width: 639px) {
  .ki-transmission__axis-grid {
    grid-template-columns: 1fr;
  }
}

.ki-transmission__faq-highlight {
  background: var(--ki-bg-light);
  border-left: 3px solid var(--ki-gold);
  border-radius: 0 var(--ki-radius-lg) var(--ki-radius-lg) 0;
  padding: var(--ki-space-3, 0.75rem) var(--ki-space-4, 1rem);
  margin: var(--ki-space-4, 1rem) 0;
  font-size: 0.875rem;
  line-height: 1.65;
  color: var(--ki-text-muted);
}

.sc-faq__answer-inner .ki-transmission__faq-highlight {
  color: var(--ki-text-muted);
}

.ki-transmission__faq-ul {
  margin: var(--ki-space-3, 0.75rem) 0;
  padding-left: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: var(--ki-space-2, 0.5rem);
}

.ki-transmission__faq-ul li {
  font-size: 0.875rem;
  line-height: 1.65;
  color: var(--ki-text-muted);
}

/* --- Prévoyance professionnelle (page dédiée) --- */
.ki-prevoyance-pro__def-example > p:first-child {
  margin-top: var(--ki-space-5, 1.25rem);
}

/* Listes sans classe dans le flux : même indentation que .ki-list-plain (puces visibles dans la colonne) */
.ki-prevoyance-pro .ki-content-flow ul:not(.ki-list-plain):not(.ki-list-disc) {
  margin: var(--ki-space-3, 0.75rem) 0 var(--ki-space-4, 1rem);
  margin-left: var(--ki-space-3, 0.75rem);
  padding-left: var(--ki-space-5, 1.25rem);
  list-style: disc;
  list-style-position: outside;
  line-height: 1.65;
  box-sizing: border-box;
}

.ki-prevoyance-pro .ki-content-flow ul:not(.ki-list-plain):not(.ki-list-disc) li {
  margin-bottom: var(--ki-space-2, 0.5rem);
}

.ki-prevoyance-pro .ki-content-flow ul:not(.ki-list-plain):not(.ki-list-disc) li:last-child {
  margin-bottom: 0;
}

.ki-prevoyance-pro .ki-content-flow ol {
  margin: var(--ki-space-3, 0.75rem) 0 var(--ki-space-4, 1rem);
  margin-left: var(--ki-space-3, 0.75rem);
  padding-left: var(--ki-space-5, 1.25rem);
  list-style-position: outside;
  line-height: 1.65;
  box-sizing: border-box;
}

@media (prefers-reduced-motion: reduce) {
  .ki-transmission__role-card {
    transition: none;
  }
}

/* --- Articles (single post) — prose Gutenberg --- */
.ki-single-post .ki-article__body {
  padding-block: var(--ki-section-padding-y);
}

.ki-single-post .ki-article__entry {
  margin: 0;
}

.ki-single-post .ki-article__prose {
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--ki-navy);
}

@media (min-width: 48rem) {
  .ki-single-post .ki-article__prose {
    font-size: 1.125rem;
  }
}

.ki-single-post .ki-article__prose > *:first-child {
  margin-top: 0;
}

.ki-single-post .ki-article__prose > *:last-child {
  margin-bottom: 0;
}

.ki-single-post .ki-article__prose h2,
.ki-single-post .ki-article__prose h3,
.ki-single-post .ki-article__prose h4 {
  font-family: var(--ki-font);
  font-weight: 700;
  color: var(--ki-navy);
  margin-top: var(--ki-space-8);
  margin-bottom: var(--ki-space-4);
  line-height: 1.25;
}

.ki-single-post .ki-article__prose h2 {
  font-size: clamp(1.375rem, 1.2rem + 0.5vw, 1.75rem);
}

.ki-single-post .ki-article__prose h3 {
  font-size: clamp(1.125rem, 1rem + 0.35vw, 1.375rem);
}

.ki-single-post .ki-article__prose p {
  margin: 0 0 var(--ki-space-5);
}

.ki-single-post .ki-article__prose ul,
.ki-single-post .ki-article__prose ol {
  margin: 0 0 var(--ki-space-5);
  padding-left: var(--ki-space-6);
  box-sizing: border-box;
}

.ki-single-post .ki-article__prose li {
  margin-bottom: var(--ki-space-2);
}

.ki-single-post .ki-article__prose blockquote {
  margin: var(--ki-space-6) 0;
  padding: var(--ki-space-4) var(--ki-space-5);
  border-left: 4px solid var(--ki-gold);
  background: var(--ki-bg-light);
  border-radius: var(--ki-radius-lg);
  font-style: italic;
  color: var(--ki-text-muted);
}

.ki-single-post .ki-article__prose blockquote cite {
  font-style: normal;
  font-size: 0.9em;
}

.ki-single-post .ki-article__prose figure {
  margin: var(--ki-space-6) 0;
}

.ki-single-post .ki-article__prose figcaption {
  margin-top: var(--ki-space-2);
  font-size: 0.875rem;
  color: var(--ki-text-muted);
}

.ki-single-post .ki-article__prose img {
  height: auto;
  max-width: 100%;
  border-radius: var(--ki-radius);
}

.ki-single-post .ki-article__prose .alignwide {
  max-width: min(100%, var(--ki-article-prose-max));
  margin-left: auto;
  margin-right: auto;
}

.ki-single-post .ki-article__prose .alignfull {
  width: auto;
  max-width: none;
  margin-left: calc(-1 * var(--ki-space-4));
  margin-right: calc(-1 * var(--ki-space-4));
}

.ki-single-post .ki-article__prose .wp-block-table {
  margin: var(--ki-space-6) 0;
  overflow-x: auto;
}

.ki-single-post .ki-article__prose table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9375rem;
}

.ki-single-post .ki-article__prose th,
.ki-single-post .ki-article__prose td {
  border: 1px solid var(--ki-border-navy-muted);
  padding: var(--ki-space-3) var(--ki-space-4);
}

.ki-single-post .ki-article__prose a {
  color: var(--ki-gold-dark);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.ki-single-post .ki-article__prose a:hover,
.ki-single-post .ki-article__prose a:focus-visible {
  color: var(--ki-gold);
}

@media (prefers-reduced-motion: reduce) {
  .ki-single-post .ki-article__prose a {
    transition: none;
  }
}

/* ── Blog / liste d’articles ───────────────────────────────────────── */

.ki-blog__list {
  padding-block: var(--ki-section-padding-y);
}

.ki-blog__filters {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ki-space-6);
  align-items: flex-end;
  margin-bottom: var(--ki-space-10);
  padding: var(--ki-space-6);
  background: var(--ki-bg-light);
  border-radius: var(--ki-radius-lg);
  border: 1px solid var(--ki-border-navy-muted, rgba(22, 39, 65, 0.12));
}

.ki-blog__filter-field {
  display: flex;
  flex-direction: column;
  gap: var(--ki-space-3);
  min-width: min(100%, 14rem);
  flex: 1 1 12rem;
}

.ki-blog__label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--ki-text-muted);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.ki-blog__input,
.ki-blog__select {
  width: 100%;
  padding: var(--ki-space-3) var(--ki-space-4);
  font-size: 1rem;
  font-family: var(--ki-font);
  color: var(--ki-navy);
  background: var(--ki-white);
  border: 1px solid var(--ki-border-navy-muted, rgba(22, 39, 65, 0.2));
  border-radius: var(--ki-radius);
  min-height: 44px;
}

.ki-blog__input:focus-visible,
.ki-blog__select:focus-visible {
  outline: 2px solid var(--ki-gold);
  outline-offset: 2px;
}

.ki-blog__filter-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ki-space-4);
  align-items: center;
}

.ki-blog__reset.ki-btn {
  cursor: pointer;
}

.ki-blog__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr));
  gap: var(--ki-space-8);
}

.ki-article-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--ki-white);
  border: 1px solid var(--ki-card-border, rgba(22, 39, 65, 0.12));
  border-radius: var(--ki-radius-lg);
  box-shadow: var(--ki-shadow);
  overflow: hidden;
  transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.ki-article-card:hover {
  transform: translateY(-4px);
  border-color: var(--ki-gold);
  box-shadow: var(--ki-card-shadow-hover, var(--ki-shadow));
}

.ki-article-card__media {
  display: block;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--ki-navy-mid);
}

.ki-article-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* Portraits : le cadre reste 16/10 ; on ancre le haut pour garder visages / sujet. */
  object-position: center top;
}

.ki-article-card__media--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
}

.ki-article-card__placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  min-height: 10rem;
  color: var(--ki-gold);
  opacity: 0.6;
}

.ki-article-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: var(--ki-space-3);
  padding: var(--ki-space-6);
}

.ki-article-card__date {
  font-size: 0.8125rem;
  color: var(--ki-text-muted);
  letter-spacing: 0.02em;
}

.ki-article-card__title {
  margin: 0;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.35;
  color: var(--ki-navy);
}

.ki-article-card__title a {
  color: inherit;
  text-decoration: none;
}

.ki-article-card__title a:hover,
.ki-article-card__title a:focus-visible {
  color: var(--ki-gold-dark);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.ki-article-card__excerpt {
  margin: 0;
  flex: 1;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--ki-text-muted);
}

.ki-article-card__read {
  align-self: flex-start;
  margin-top: var(--ki-space-2);
  cursor: pointer;
}

.ki-blog__empty {
  margin: 0;
  padding: var(--ki-space-8);
  text-align: center;
  font-size: 1rem;
  line-height: 1.6;
  color: var(--ki-text-muted);
  background: var(--ki-bg-light);
  border-radius: var(--ki-radius-lg);
}

.ki-blog__pagination {
  margin-top: var(--ki-space-10);
}

.ki-blog__pagination .nav-links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ki-space-3);
  justify-content: center;
  align-items: center;
}

.ki-blog__pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: var(--ki-space-2) var(--ki-space-4);
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--ki-navy);
  text-decoration: none;
  border: 1px solid var(--ki-border-navy-muted, rgba(22, 39, 65, 0.2));
  border-radius: var(--ki-radius);
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.ki-blog__pagination .page-numbers:hover,
.ki-blog__pagination .page-numbers:focus-visible {
  border-color: var(--ki-gold);
  color: var(--ki-gold-dark);
}

.ki-blog__pagination .page-numbers.current {
  background: var(--ki-navy);
  color: var(--ki-white);
  border-color: var(--ki-navy);
}

.ki-blog__pagination .page-numbers.prev,
.ki-blog__pagination .page-numbers.next {
  padding-left: var(--ki-space-6);
  padding-right: var(--ki-space-6);
}

.ki-blog__faq {
  padding-top: var(--ki-space-12);
  padding-bottom: var(--ki-space-12);
}

.ki-blog__faq-title {
  text-align: center;
}

@media (prefers-reduced-motion: reduce) {
  .ki-article-card {
    transition: none;
  }

  .ki-blog__pagination .page-numbers {
    transition: none;
  }
}

/* ── Page Investir en Guyane ─────────────────────────────────────────────── */

/* Dispositifs : articles empilés — les utilitaires ki-mb-* / ki-mt-* ne sont pas définis dans le thème */
.ki-guyane__articles {
  margin-top: var(--ki-space-10);
}

.ki-guyane__articles > .ki-guyane__article + .ki-guyane__article {
  margin-top: var(--ki-space-16);
}

.ki-guyane__articles .ki-infobox {
  margin-top: var(--ki-space-8);
  margin-bottom: var(--ki-space-6);
}

.ki-guyane__disp-table-block {
  margin-top: var(--ki-space-12);
}

.ki-guyane__table-title {
  margin: 0 0 var(--ki-space-6);
}

.ki-guyane__process-before {
  margin-bottom: var(--ki-space-8);
}

.ki-guyane__process-quote {
  margin-top: var(--ki-space-10);
}

/* Marché : bloc tableau sous les cartes zones */
.ki-guyane__marche-table {
  margin-top: var(--ki-space-16);
}

.ki-guyane__marche-table .ki-table__wrap {
  margin-top: var(--ki-space-6);
}

.ki-guyane__grid {
  display: grid;
  gap: var(--ki-space-6);
  margin-top: var(--ki-space-10);
}

.ki-guyane__grid.ki-grid-2 {
  grid-template-columns: 1fr;
}

@media (min-width: 768px) {
  .ki-guyane__grid.ki-grid-2 {
    grid-template-columns: repeat(2, 1fr);
  }
}

.ki-guyane__grid.ki-grid-3 {
  grid-template-columns: 1fr;
}

@media (min-width: 768px) {
  .ki-guyane__grid.ki-grid-3 {
    grid-template-columns: repeat(3, 1fr);
  }
}

.ki-guyane__axis-grid {
  display: grid;
  gap: var(--ki-space-8);
  margin-top: var(--ki-space-10);
  grid-template-columns: 1fr;
}

@media (min-width: 768px) {
  .ki-guyane__axis-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ── Conseiller gestion patrimoine indépendant ───────────────────────────── */
.ki-cgp-independant__section-stack {
  display: flex;
  flex-direction: column;
  gap: clamp(1.25rem, 3vw, 2rem);
}

.ki-cgp-independant__section-stack--reading {
  margin-inline: auto;
  width: 100%;
}

.ki-cgp-independant__body-panel.ki-panel {
  text-align: left;
}

.ki-cgp-independant__body-panel .ki-cgp-independant__prose {
  text-align: left;
}

.ki-cgp-independant__architecture .ki-cgp-independant__compare-table {
  margin-top: clamp(1.75rem, 4vw, 3rem);
}

.ki-cgp-independant__vision-shell {
  margin-top: clamp(1rem, 3vw, 1.75rem);
}

.ki-cgp-independant__vision .ki-cgp-independant__pillars-grid {
  margin-top: clamp(2rem, 5vw, 3rem);
}

.ki-cgp-independant__pillars-grid {
  display: grid;
  gap: 1.25rem;
}

@media (min-width: 768px) {
  .ki-cgp-independant__pillars-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
  }
}

.ki-cgp-independant__pillars-grid-cell {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.ki-cgp-independant__pillars-grid-cell > .ki-panel.ki-cgp-independant__pillar-panel {
  flex: 1 1 auto;
  width: 100%;
  display: flex;
  flex-direction: column;
}

.ki-cgp-independant__pillars-grid-cell .ki-cgp-independant__pillar-panel .ki-cgp-independant__rich {
  flex: 1 1 auto;
}

.ki-cgp-independant__trans-stack {
  margin-top: clamp(1.25rem, 3vw, 2rem);
  display: flex;
  flex-direction: column;
  gap: clamp(1.25rem, 3vw, 2rem);
  margin-inline: auto;
  width: 100%;
}

.ki-cgp-independant__trans-h3 {
  margin: 0;
  font-size: clamp(1.125rem, 2vw, 1.25rem);
  font-weight: 600;
  color: var(--ki-navy, #162741);
  line-height: 1.35;
}

.ki-cgp-independant__trans-grid {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: 1fr;
}

@media (min-width: 768px) {
  .ki-cgp-independant__trans-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
  }
}

.ki-cgp-independant__trans-grid > .ki-panel {
  width: 100%;
  min-height: 0;
}

.ki-cgp-independant__trans-warn {
  margin-top: 0;
}

.ki-cgp-independant__rem-stack {
  margin-top: clamp(1.25rem, 3vw, 2rem);
  display: flex;
  flex-direction: column;
  gap: clamp(0.875rem, 2vw, 1.25rem);
  margin-inline: auto;
  width: 100%;
}

/* Le h3 partagé a 1.5rem de marge-bas : avec gap flex, l’espace sous le titre était doublé. */
.ki-cgp-independant__rem-stack > .ki-cgp-independant__h3 {
  margin-bottom: 0;
}

.ki-cgp-independant__rem-infobox {
  margin-top: 0;
}

.ki-cgp-independant__meth-stack {
  margin-top: clamp(1.25rem, 3vw, 2rem);
  margin-inline: auto;
  width: 100%;
}

.ki-cgp-independant__axis-grid {
  display: grid;
  gap: var(--ki-space-8);
  grid-template-columns: 1fr;
}

@media (min-width: 768px) {
  .ki-cgp-independant__axis-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

.ki-cgp-independant__axis-grid + .ki-cgp-independant__meth-after {
  margin-top: clamp(1.5rem, 3vw, 2.25rem);
}

/* Liens inline (méthode, architecture, etc.) — navy sur fond clair ; le hero est .ki-hero, exclu. */
.ki-cgp-independant .ki-section .ki-link-inline {
  color: var(--ki-navy, #162741);
  font-weight: 600;
  text-decoration: none;
}

.ki-cgp-independant .ki-section .ki-link-inline:hover,
.ki-cgp-independant .ki-section .ki-link-inline:focus,
.ki-cgp-independant .ki-section .ki-link-inline:focus-visible {
  color: color-mix(in srgb, var(--ki-navy) 88%, #000);
  text-decoration: underline;
}

.ki-cgp-independant__prose p {
  margin: 0 0 1rem;
  color: var(--ki-text-muted);
  line-height: 1.65;
}

.ki-cgp-independant__prose p:last-child {
  margin-bottom: 0;
}

.ki-cgp-independant__rich p {
  margin: 0 0 0.75rem;
  color: var(--ki-text-muted);
  line-height: 1.6;
  font-size: 0.9375rem;
}

.ki-cgp-independant__rich p:last-child {
  margin-bottom: 0;
}

.ki-cgp-independant__prose--arch ul,
.ki-cgp-independant__prose ul {
  margin: 0 0 1rem;
  padding-left: 1.25rem;
  color: var(--ki-text-muted);
  line-height: 1.65;
}

.ki-cgp-independant__prose--arch ul li {
  margin-bottom: 0.35rem;
}

.ki-cgp-independant__prose--methode h3 {
  margin: 1.75rem 0 0.75rem;
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--ki-navy);
  line-height: 1.35;
}

.ki-cgp-independant__prose--methode h3:first-child {
  margin-top: 0;
}

.ki-cgp-independant__figure-note {
  margin: 0;
  font-size: 0.9375rem;
  color: var(--ki-text-muted);
}

.ki-cgp-independant__figure-slot {
  margin: 1.5rem 0;
}

@media (prefers-reduced-motion: no-preference) {
  html.js .ki-reveal.is-inview .ki-cgp-independant__pillars-grid > .ki-cgp-independant__pillars-grid-cell:nth-child(1) .ki-panel {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 1);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__pillars-grid > .ki-cgp-independant__pillars-grid-cell:nth-child(2) .ki-panel {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 2);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__pillars-grid > .ki-cgp-independant__pillars-grid-cell:nth-child(3) .ki-panel {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 3);
  }

  html.js .ki-reveal.is-inview .ki-cgp-independant__pillars-grid > .ki-cgp-independant__pillars-grid-cell:nth-child(4) .ki-panel {
    opacity: 1;
    transform: none;
    transition-delay: calc(var(--ki-reveal-after-header) + var(--ki-reveal-stagger) * 4);
  }
}
