/* ==========================================================================
   Cadran Talents — sections basses de l'accueil + pied de page (refonte 2026)

   Feuille autonome : aucune classe du template d'origine n'est réutilisée,
   tout est préfixé `k-`. Supprimer ce fichier et le <link> qui l'appelle
   suffit à revenir à l'état antérieur.

   Sommaire
     1.  Jetons & primitives
     2.  Verbatim client        (remplace la bande photo parallaxe)
     3.  Chiffres « registre »  (remplace la pile de cartes collantes)
     4.  Journal                (remplace la mosaïque d'articles)
     5.  Références clients     (remplace les bandeaux défilants)
     6.  Pied de page
     7.  Sélecteur de langue
   ========================================================================== */

/* -- 1. Jetons & primitives ------------------------------------------------ */

:root {
  --k-cream: #f5f1e4;
  --k-sand: #e6e0d1;
  --k-paper: #fffdf7;
  --k-ink: #20211e;
  --k-ink-soft: #5f625a;
  --k-line: rgba(32, 33, 30, 0.14);
  --k-azure: #2b8fe0;
  --k-deep: #1c6bb8;
  --k-navy: #102438;
  --k-navy-soft: #1b3550;
  --k-on-navy: #e8eef5;
  --k-on-navy-soft: rgba(232, 238, 245, 0.62);
  --k-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

.k-wrap {
  margin-inline: auto;
  width: 100%;
  max-width: 1440px;
  padding-inline: clamp(1.25rem, 4.5vw, 5rem);
}

/* `position` + `z-index` sont indispensables, pas décoratifs : sur l'accueil ces
   sections vivent dans `.c-hero-home`, qui contient toute la page, et le décor
   `.kt-hero` y est en `absolute; z-index:0` sur toute la hauteur du document.
   Une section non positionnée passerait donc SOUS son dégradé et son grain. */
.k-sec,
.k-footer {
  position: relative;
  z-index: 1;
}

.k-sec {
  font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  color: var(--k-ink);
  font-feature-settings: "cv05" 1, "ss03" 1;
}

/* Surtitre commun : petite capitale espacée, précédée d'un filet. */
.k-eyebrow {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 0;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--k-ink-soft);
}
.k-eyebrow::before {
  content: "";
  width: 2.25rem;
  height: 1px;
  background: currentColor;
  opacity: 0.5;
  flex: none;
}

.k-title {
  margin: 0;
  font-size: clamp(1.875rem, 1.15rem + 2.4vw, 3rem);
  line-height: 1.06;
  letter-spacing: -0.028em;
  font-weight: 600;
  text-wrap: balance;
}

/* Lien texte à soulignement progressif. */
.k-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: inherit;
  text-decoration: none;
  font-weight: 500;
  padding-bottom: 2px;
  background-image: linear-gradient(currentColor, currentColor);
  background-size: 0% 1px;
  background-position: 0 100%;
  background-repeat: no-repeat;
  transition: background-size 0.4s var(--k-ease);
}
.k-link:hover,
.k-link:focus-visible {
  background-size: 100% 1px;
}
.k-link svg {
  flex: none;
  transition: transform 0.4s var(--k-ease);
}
.k-link:hover svg {
  transform: translateX(3px);
}

/* Bouton plein. */
.k-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  padding: 0.9375rem 1.5rem;
  border-radius: 999px;
  background: var(--k-azure);
  color: #fff;
  font-weight: 500;
  font-size: 0.9375rem;
  text-decoration: none;
  border: 0;
  cursor: pointer;
  transition: background-color 0.3s var(--k-ease), transform 0.3s var(--k-ease);
}
.k-btn:hover {
  background: var(--k-deep);
  transform: translateY(-1px);
}
.k-btn svg {
  transition: transform 0.4s var(--k-ease);
}
.k-btn:hover svg {
  transform: translateX(3px);
}

:where(.k-sec, .k-footer) :focus-visible {
  outline: 2px solid var(--k-azure);
  outline-offset: 3px;
  border-radius: 2px;
}

/* -- 2. Verbatim client ---------------------------------------------------- */
/* Composition : la citation occupe la page, le sélecteur se retire. Pas de
   cartouche, pas d'encadré — le contraste d'échelle fait la hiérarchie. */

.k-verbatim {
  position: relative;
  background: var(--k-navy);
  color: var(--k-on-navy);
  border-radius: 10px;
  overflow: hidden;
  padding-block: clamp(4.5rem, 10vw, 9rem);
}
.k-verbatim::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(70% 90% at 88% -10%, rgba(43,143,224,.20), transparent 62%);
  pointer-events: none;
}
.k-verbatim > input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.k-verbatim .k-wrap {
  position: relative;
  z-index: 1;
}

.k-verbatim__top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 2rem;
  padding-bottom: clamp(2.5rem, 5vw, 4rem);
  border-bottom: 1px solid rgba(232, 238, 245, 0.14);
}
.k-verbatim .k-eyebrow {
  color: var(--k-on-navy-soft);
}
.k-verbatim__idx {
  font-size: 0.8125rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.08em;
  color: var(--k-on-navy-soft);
}
.k-verbatim__idx b {
  color: var(--k-on-navy);
  font-weight: 600;
}

.k-verbatim__body {
  display: grid;
  gap: clamp(2.5rem, 5vw, 5rem);
  padding-top: clamp(2.5rem, 5vw, 4.5rem);
}
@media (min-width: 1000px) {
  .k-verbatim__body {
    grid-template-columns: minmax(0, 1fr) minmax(15rem, 19rem);
    align-items: start;
  }
}

.k-quote {
  margin: 0;
  display: none;
}
.k-quote blockquote {
  margin: 0;
  font-size: clamp(1.5rem, 0.9rem + 2.6vw, 3.125rem);
  line-height: 1.16;
  letter-spacing: -0.032em;
  font-weight: 400;
  text-wrap: pretty;
  max-width: 22ch;
}
/* Une barre d'accent plutôt que des guillemets : moins bavard, plus net. */
.k-quote figcaption {
  margin-top: clamp(2rem, 4vw, 3rem);
  padding-left: 1.125rem;
  border-left: 2px solid var(--k-azure);
  font-size: 0.9375rem;
  line-height: 1.5;
  color: var(--k-on-navy-soft);
}
.k-quote figcaption b {
  display: block;
  color: var(--k-on-navy);
  font-weight: 600;
  letter-spacing: -0.01em;
}

/* Sélecteur : une liste, pas des cartes. */
.k-picker {
  display: flex;
  flex-direction: column;
}
.k-pick {
  display: flex;
  align-items: center;
  gap: 0.875rem;
  padding: 0.9375rem 0 0.9375rem 1.125rem;
  border-left: 1px solid rgba(232, 238, 245, 0.14);
  cursor: pointer;
  color: var(--k-on-navy-soft);
  transition: color 0.35s var(--k-ease), border-color 0.35s var(--k-ease);
}
.k-pick:hover {
  color: var(--k-on-navy);
}
.k-pick img {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  object-fit: cover;
  flex: none;
  filter: grayscale(1) contrast(1.05);
  opacity: 0.55;
  transition: filter 0.4s var(--k-ease), opacity 0.4s var(--k-ease);
}
.k-pick__id {
  min-width: 0;
  font-size: 0.875rem;
  line-height: 1.35;
}
.k-pick__id b {
  display: block;
  font-weight: 600;
  color: inherit;
}
.k-pick__id span {
  opacity: 0.7;
  font-size: 0.8125rem;
}

#k-vb-1:checked ~ .k-wrap .k-quote[data-vb="1"],
#k-vb-2:checked ~ .k-wrap .k-quote[data-vb="2"],
#k-vb-3:checked ~ .k-wrap .k-quote[data-vb="3"] {
  display: block;
}
#k-vb-1:checked ~ .k-wrap .k-pick[for="k-vb-1"],
#k-vb-2:checked ~ .k-wrap .k-pick[for="k-vb-2"],
#k-vb-3:checked ~ .k-wrap .k-pick[for="k-vb-3"] {
  color: var(--k-on-navy);
  border-left-color: var(--k-azure);
}
#k-vb-1:checked ~ .k-wrap .k-pick[for="k-vb-1"] img,
#k-vb-2:checked ~ .k-wrap .k-pick[for="k-vb-2"] img,
#k-vb-3:checked ~ .k-wrap .k-pick[for="k-vb-3"] img {
  filter: none;
  opacity: 1;
}
#k-vb-1:focus-visible ~ .k-wrap .k-pick[for="k-vb-1"],
#k-vb-2:focus-visible ~ .k-wrap .k-pick[for="k-vb-2"],
#k-vb-3:focus-visible ~ .k-wrap .k-pick[for="k-vb-3"] {
  outline: 2px solid var(--k-azure);
  outline-offset: 2px;
}

/* -- 3. Chiffres ----------------------------------------------------------- */
/* Les pictogrammes ont sauté : à cette échelle le chiffre se suffit. */

.k-ledger {
  background: var(--k-cream);
  padding-block: clamp(4.5rem, 9vw, 8rem);
}
.k-ledger__head {
  display: grid;
  gap: clamp(1.5rem, 3vw, 3rem);
  align-items: end;
  padding-bottom: clamp(3rem, 6vw, 5rem);
}
@media (min-width: 900px) {
  .k-ledger__head {
    grid-template-columns: minmax(0, 1fr) minmax(0, 24rem);
  }
}
.k-ledger__head .k-title {
  margin-top: 1.5rem;
  max-width: 18ch;
}
.k-note {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--k-ink-soft);
  max-width: 36ch;
}

.k-ledger__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  border-top: 1px solid var(--k-line);
}
@media (min-width: 620px) {
  .k-ledger__row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1040px) {
  .k-ledger__row { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.k-fig {
  padding: clamp(2rem, 3.5vw, 3rem) clamp(1.25rem, 2.5vw, 2.5rem) clamp(2rem, 3.5vw, 3rem) 0;
  border-bottom: 1px solid var(--k-line);
}
@media (min-width: 620px) {
  .k-fig { border-left: 1px solid var(--k-line); padding-left: clamp(1.25rem, 2.5vw, 2.5rem); }
  .k-fig:nth-child(odd) { border-left: 0; padding-left: 0; }
}
@media (min-width: 1040px) {
  .k-fig { border-bottom: 0; border-left: 1px solid var(--k-line); padding-left: clamp(1.25rem, 2.5vw, 2.5rem); }
  .k-fig:first-child { border-left: 0; padding-left: 0; }
  .k-fig:nth-child(odd) { border-left: 1px solid var(--k-line); }
  .k-fig:first-child { border-left: 0; }
}
.k-fig__n {
  display: block;
  font-size: clamp(2.75rem, 1.4rem + 4.6vw, 5rem);
  line-height: 0.9;
  letter-spacing: -0.055em;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  color: var(--k-ink);
}
.k-fig__l {
  display: block;
  margin-top: clamp(1.25rem, 2.5vw, 2rem);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--k-deep);
}
.k-fig__d {
  margin: 0.75rem 0 0;
  font-size: 0.875rem;
  line-height: 1.6;
  color: var(--k-ink-soft);
  max-width: 24ch;
}

/* -- 4. Journal ------------------------------------------------------------ */
/* Index éditorial : pas de pastilles, la métadonnée se met en retrait. */

.k-journal {
  background: var(--k-sand);
  padding-block: clamp(4.5rem, 9vw, 8rem);
  border-radius: 10px;
}
.k-journal__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5rem;
  padding-bottom: clamp(2.5rem, 5vw, 4rem);
}
.k-journal__head .k-title {
  margin-top: 1.5rem;
}
.k-journal__list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--k-line);
}
.k-entry { border-bottom: 1px solid var(--k-line); }
.k-entry__a {
  position: relative;
  display: grid;
  align-items: baseline;
  gap: 0.625rem 2rem;
  padding: clamp(1.75rem, 3.2vw, 2.75rem) 0;
  color: inherit;
  text-decoration: none;
  grid-template-areas: "idx meta" "ttl ttl";
  grid-template-columns: auto minmax(0, 1fr);
}
@media (min-width: 900px) {
  .k-entry__a {
    grid-template-areas: "idx ttl meta arw";
    grid-template-columns: 4rem minmax(0, 1fr) auto 1.75rem;
    gap: 2.5rem;
    align-items: center;
  }
}
.k-entry__idx {
  grid-area: idx;
  font-size: 0.75rem;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.1em;
  color: var(--k-ink-soft);
  opacity: 0.75;
}
.k-entry__ttl {
  grid-area: ttl;
  margin: 0;
  font-size: clamp(1.1875rem, 0.9rem + 1.1vw, 1.875rem);
  line-height: 1.2;
  letter-spacing: -0.025em;
  font-weight: 500;
  text-wrap: pretty;
  max-width: 30ch;
}
.k-entry__meta {
  grid-area: meta;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8125rem;
  color: var(--k-ink-soft);
  white-space: nowrap;
}
.k-entry__tag { letter-spacing: 0.02em; }
.k-entry__meta span + span::before {
  content: "·";
  margin-right: 0.5rem;
  opacity: 0.6;
}
.k-entry__arw {
  grid-area: arw;
  display: none;
  color: var(--k-ink-soft);
  transition: transform 0.45s var(--k-ease), color 0.3s var(--k-ease);
}
@media (min-width: 900px) { .k-entry__arw { display: block; } }
.k-entry__a:hover .k-entry__arw { transform: translateX(5px); color: var(--k-azure); }

.k-entry__thumb {
  position: absolute;
  right: clamp(1rem, 6vw, 6rem);
  top: 50%;
  width: clamp(9rem, 13vw, 12rem);
  aspect-ratio: 3 / 2;
  border-radius: 4px;
  overflow: hidden;
  pointer-events: none;
  opacity: 0;
  transform: translateY(-50%);
  display: none;
  box-shadow: 0 22px 50px -22px rgba(32, 33, 30, 0.6);
  z-index: 2;
}
.k-entry__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (min-width: 1100px) { .k-entry__thumb { display: block; } }

/* -- 5. Références --------------------------------------------------------- */
/* Une grille typographique, pas un tableau : filets horizontaux seulement. */

.k-clients {
  background: var(--k-cream);
  padding-block: clamp(4.5rem, 9vw, 8rem);
}
.k-clients__head { padding-bottom: clamp(2.5rem, 5vw, 4rem); }
.k-clients__head .k-title { margin-top: 1.5rem; }
.k-clients__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--k-line);
}
@media (min-width: 640px) { .k-clients__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1040px) { .k-clients__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.k-client {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.25rem;
  min-height: clamp(8rem, 11vw, 10rem);
  padding: clamp(1.5rem, 2.5vw, 2rem) 1rem clamp(1.5rem, 2.5vw, 2rem) 0;
  border-bottom: 1px solid var(--k-line);
}
.k-client svg {
  width: 28px;
  height: 28px;
  color: var(--k-deep);
  opacity: 0.42;
  transition: opacity 0.35s var(--k-ease);
}
.k-client:hover svg { opacity: 1; }
.k-client span {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--k-ink);
  letter-spacing: -0.01em;
}
.k-clients__foot {
  margin: clamp(2rem, 4vw, 3rem) 0 0;
  font-size: 0.8125rem;
  color: var(--k-ink-soft);
  max-width: 48ch;
}

/* -- 6. Pied de page ------------------------------------------------------- */

.k-footer {
  position: relative;
  z-index: 1;
  background: var(--k-navy);
  color: var(--k-on-navy);
  border-radius: 10px 10px 0 0;
  padding-block: clamp(4.5rem, 9vw, 8rem) clamp(1.75rem, 3vw, 2.5rem);
}
.k-footer a { color: inherit; text-decoration: none; }
.k-footer__call {
  display: grid;
  gap: clamp(2rem, 4vw, 3rem);
  align-items: end;
  padding-bottom: clamp(3.5rem, 7vw, 5.5rem);
  border-bottom: 1px solid rgba(232, 238, 245, 0.14);
}
@media (min-width: 900px) {
  .k-footer__call { grid-template-columns: minmax(0, 1fr) auto; }
}
.k-footer__call h2 {
  margin: 0;
  font-size: clamp(2rem, 1rem + 3.4vw, 4rem);
  line-height: 1.02;
  letter-spacing: -0.04em;
  font-weight: 600;
  max-width: 15ch;
  text-wrap: balance;
}
.k-footer__cols {
  display: grid;
  gap: clamp(2.5rem, 4vw, 3.5rem);
  padding-block: clamp(3.5rem, 6vw, 5rem);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (min-width: 760px) { .k-footer__cols { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.k-fcol h3 {
  margin: 0 0 1.5rem;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(232, 238, 245, 0.45);
}
.k-fcol ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.8125rem;
  font-size: 0.9375rem;
}
.k-fcol a,
.k-fcol button {
  background: none;
  border: 0;
  padding: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
  text-align: left;
  opacity: 0.78;
  transition: opacity 0.25s var(--k-ease);
}
.k-fcol a:hover,
.k-fcol button:hover { opacity: 1; }
.k-office {
  font-size: 0.875rem;
  line-height: 1.7;
  color: var(--k-on-navy-soft);
}
.k-office + .k-office { margin-top: 1.5rem; }
.k-office b {
  display: block;
  color: var(--k-on-navy);
  font-weight: 600;
  margin-bottom: 0.375rem;
}
.k-mail {
  display: inline-block;
  font-size: 1.0625rem;
  font-weight: 500;
  color: var(--k-on-navy);
  border-bottom: 1px solid rgba(232, 238, 245, 0.3);
  padding-bottom: 3px;
  transition: border-color 0.25s var(--k-ease);
}
.k-mail:hover { border-color: var(--k-azure); }
.k-footer__bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem 2rem;
  padding-top: clamp(1.75rem, 3vw, 2.5rem);
  border-top: 1px solid rgba(232, 238, 245, 0.14);
  font-size: 0.75rem;
  letter-spacing: 0.02em;
  color: rgba(232, 238, 245, 0.5);
}
.k-sign {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  color: var(--k-on-navy);
  font-weight: 600;
  letter-spacing: -0.015em;
  font-size: 0.9375rem;
}
.k-sign svg { flex: none; color: var(--k-azure); }
.k-footer__bar ul {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 1.75rem;
  margin: 0;
  padding: 0;
}
.k-footer__bar a:hover { color: var(--k-on-navy); }

/* -- 7. Sélecteur de langue ------------------------------------------------ */

/* Posé par `i18n/construire.py` à trois endroits, avec la même structure et
   trois habillages : barre de bureau (fond blanc), menu mobile (cartes
   blanches sur fond transparent), pied de page (fond marine).
   Les couleurs passent par des variables locales, la structure ne bouge pas. */

.k-lang {
  --k-lang-bg: var(--k-cream);
  --k-lang-pill: var(--k-paper);
  --k-lang-on: var(--k-ink);
  --k-lang-off: var(--k-ink-soft);
  flex: none;
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 3px;
  border-radius: 999px;
  background: var(--k-lang-bg);
  font-family: Inter, system-ui, -apple-system, sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 1;
}

.k-lang__opt {
  padding: 0.4375rem 0.625rem;
  border-radius: 999px;
  color: var(--k-lang-off);
  text-decoration: none;
  transition: color 0.35s var(--k-ease), background-color 0.35s var(--k-ease);
}
.k-lang__opt:hover { color: var(--k-lang-on); }
.k-lang__opt.is-on {
  background: var(--k-lang-pill);
  color: var(--k-lang-on);
  box-shadow: 0 1px 2px rgba(32, 33, 30, 0.08);
}

/* Barre de bureau : le `<div>` qui portait le seul bouton de contact devient
   une rangée, sinon la pastille se placerait au-dessus du bouton. */
.k-navend {
  display: flex;
  align-items: center;
  gap: clamp(0.5rem, 1.2vw, 1rem);
}

/* Menu mobile : même carte blanche que la liste et le bouton voisins, et même
   entrée décalée — une pastille immobile au milieu d'éléments qui montent se
   remarquerait immédiatement. */
.c-menu-mobile_nav .k-lang {
  --k-lang-bg: #fff;
  --k-lang-pill: var(--k-cream);
  display: flex;
  width: calc(100% - calc(var(--spacing, 0.25rem) * 8));
  margin: 0 calc(var(--spacing, 0.25rem) * 4) calc(var(--spacing, 0.25rem) * 2);
  padding: 5px;
  border-radius: var(--radius-sm, 10px);
  font-size: 0.8125rem;
  opacity: 0;
  transform: translate3d(0, calc(var(--spacing, 0.25rem) * 4), 0);
  transition-property: transform, opacity;
  transition-duration: var(--transition-duration-fast, 0.4s);
  transition-timing-function: var(--ease, ease);
}
html.has-menu-mobile-open .c-menu-mobile_nav .k-lang {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}
.c-menu-mobile_nav .k-lang__opt {
  flex: 1;
  text-align: center;
  padding-block: 0.6875rem;
  border-radius: calc(var(--radius-sm, 10px) - 4px);
}

/* Pied de page : `order` la renvoie en fin de rangée, la barre étant en flex
   avec `justify-content: space-between`. */
.k-footer__bar .k-lang {
  --k-lang-bg: rgba(232, 238, 245, 0.1);
  --k-lang-pill: var(--k-on-navy);
  --k-lang-on: var(--k-navy);
  --k-lang-off: rgba(232, 238, 245, 0.62);
  order: 3;
}

/* -- Mouvement réduit ------------------------------------------------------ */

@media (prefers-reduced-motion: reduce) {
  .k-sec *,
  .k-footer * {
    transition-duration: 0.01ms !important;
  }
  .k-entry__a:hover,
  .k-entry__a:focus-visible {
    padding-inline: 0;
  }
  .k-entry__thumb {
    display: none !important;
  }
}

/* -- Icône du bouton d'en-tête -------------------------------------------- */
/* Remplace le curseur animé Rive hérité du gabarit. Une pastille et une flèche
   disent mieux l'action, reprennent le vocabulaire des flèches des sections, et
   retirent au passage la dernière dépendance Rive héritée. Le nom du fichier
   d'origine est consigné dans le README, qui lui n'est pas servi. */
.k-cta-icon {
  width: 100%;
  height: 100%;
  display: block;
  overflow: visible;
}
.k-cta-icon__disc {
  fill: var(--k-azure, #2b8fe0);
  transition: fill 0.3s var(--k-ease);
}
.k-cta-icon__arrow {
  stroke: #fff;
  stroke-width: 2;
  transition: transform 0.42s var(--k-ease);
  transform-origin: center;
}
/* La flèche avance, le disque fonce : le bouton répond au survol. */
.c-button-quote:hover .k-cta-icon__arrow {
  transform: translateX(3px);
}
.c-button-quote:hover .k-cta-icon__disc {
  fill: var(--k-deep, #1c6bb8);
}
@media (prefers-reduced-motion: reduce) {
  .k-cta-icon__arrow { transition: none; }
}

/* -- Correction : superpositions de l'accueil ----------------------------- */
/* 1. Les quatre tuiles d'arguments sont en `z-index:3`, plusieurs personnages
      en `z-index:10` : ils passaient DEVANT et masquaient le début de chaque
      ligne de texte. Les tuiles repassent au-dessus. */
.c-homepage-timeline-cards {
  z-index: 20;
}

/* 2. Dans l'introduction, le bloc de texte est en `z-index:1` et l'illustration
      en `z-index:2`. Sur large écran ils sont côte à côte, mais sous 1000 px ils
      se superposent et l'illustration passe sur le chapô. On remonte le texte
      au-dessus et on lui donne le fond crème de la section : il reste lisible
      quoi qu'il y ait derrière. */
@media (max-width: 999.98px) {
  .c-homepage-timeline_intro > .container {
    position: relative;
    z-index: 4;
  }
  .c-homepage-timeline_intro > .container > .grid {
    background: var(--k-cream);
    border-radius: 10px;
    padding-block: clamp(1rem, 3vw, 2rem);
  }
}

/* -- Correction : en-tête mobile ------------------------------------------ */
/* Mesuré à 485 px : logo 175 px + bloc CTA 245 px = 420 px pour une barre qui
   n'en offre que ~350 sur un téléphone de 390 px. L'en-tête débordait.
   On raccourcit l'intitulé du bouton — le texte complet reste dans le DOM,
   donc le nom accessible du lien ne change pas — et on resserre le logo. */
@media (max-width: 520px) {
  .c-menu-mobile_contact {
    font-size: 0;
    padding-inline: 0.75rem;
    white-space: nowrap;
  }
  .c-menu-mobile_contact::after {
    content: "Recruter";
    font-size: 0.8125rem;
    font-weight: 500;
    letter-spacing: -0.02em;
  }
}
@media (max-width: 420px) {
  .c-menu-mobile_logo .svg-logo,
  .c-menu-mobile_logo svg {
    max-width: 118px;
  }
  .c-menu-mobile_bar {
    padding-inline: 0.625rem 0.5rem;
  }
}

/* -- Correction : repère de défilement du hero ----------------------------- */
/* `.kt-scroll` est en `absolute; bottom:5vh` dans `.c-hero-home`. Ce conteneur
   enveloppant toute la page, le repère se retrouvait ancré au bas du document,
   par-dessus le pied de page (z-index 4). On le ramène dans le premier écran,
   là où il a un sens. */
.kt-scroll {
  top: calc(100svh - 14vh);
  bottom: auto;
}
