/*
Theme Name: Wellco Custom
Template: wellco
Description: Habillage sur mesure (DA 4impact.ai) : en-tête, menu, pied de page, fiches, animations. Parent : Wellco (Bravis).
Version: 0.14.4
Text Domain: wellco
*/

/* ---------- Police auto-hébergée (Geist, variable) — licence SIL OFL. Une seule police sur tout le site (retour client 30/10/2026) ---------- */
@font-face { font-family: "Geist"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("assets/fonts/geist-latin-ext-wght-normal.woff2") format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Geist"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("assets/fonts/geist-latin-wght-normal.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

:root {
  --c-black: #000;
  --c-white: #fff;
  --c-jungle: #1d2e1d;
  --c-kombu: #304d30;
  --c-hunter: #436743;
  --c-artichoke: #89ab89;
  --c-grey: #eef2ee;
  --c-soft: #c9d4c9;
  /* verts de la présentation 4 Impact Academy : du plus clair au plus foncé ; --c-accent = mot en couleur dans les titres sur fond blanc (plus foncé que l'artichaut, lisible) */
  --c-accent: #4f7f52;
  --c-g1: #6b9b6e;
  --c-g2: #4f7f52;
  --c-g3: #3e6b41;
  --c-g4: #26412b;
  --c-mint: #e4eee4;
  --radius: 24px;
  --ease: cubic-bezier(.2, .8, .2, 1);
  --ease-io: cubic-bezier(.4, 0, .1, 1);
  --font: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mono: var(--font); /* ancienne police « machine à écrire » : remplacée par la police principale partout */
  --ab: 0px; /* hauteur de la barre d'admin WP (quand connecté) */
  --arrow-w: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%23fff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8h10M9 4l4 4-4 4'/%3E%3C/svg%3E");
  --arrow-d: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%231d2e1d' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8h10M9 4l4 4-4 4'/%3E%3C/svg%3E");
  --chev-w: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 4l7 7-7 7'/%3E%3C/svg%3E");
  --chev-d: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22' fill='none' stroke='%231d2e1d' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 4l7 7-7 7'/%3E%3C/svg%3E");
}
body.admin-bar { --ab: 32px; }
@media (max-width: 782px) { body.admin-bar { --ab: 46px; } }
@media (max-width: 600px) { body.admin-bar { --ab: 0px; } } /* la barre d'admin n'est plus fixe */

/* ---------- Socle (remplace le reset de Hello Elementor) ---------- */
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; }
button, input, select, textarea { font: inherit; color: inherit; margin: 0; }
button { cursor: pointer; }
p { margin: 0 0 1em; }
ul, ol { margin: 0 0 1em; padding-left: 1.2em; }
figure { margin: 0; }
[hidden] { display: none !important; }

html { scroll-padding-top: calc(var(--ab) + 110px); }
html:not(.lenis) { scroll-behavior: smooth; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }
body { background: var(--c-white); color: var(--c-kombu); font-family: var(--font); font-weight: 400; font-size: 17px; line-height: 1.6; -webkit-font-smoothing: antialiased; overflow-x: clip; }
html.wc-menu-open { overflow: hidden; }
/* le « kit » Elementor d'un site déjà en ligne peut encore nommer l'ancienne police : on impose celle du thème */
body[class*="elementor-kit-"] { --e-global-typography-primary-font-family: "Geist"; --e-global-typography-secondary-font-family: "Geist"; --e-global-typography-text-font-family: "Geist"; --e-global-typography-accent-font-family: "Geist"; font-family: var(--font); }
body[class*="elementor-kit-"] h1, body[class*="elementor-kit-"] h2, body[class*="elementor-kit-"] h3, body[class*="elementor-kit-"] h4, body[class*="elementor-kit-"] h5, body[class*="elementor-kit-"] h6 { font-family: var(--font); }
/* … et aux vrais boutons (button, input submit) des pages Elementor : sans cette règle, « Envoyer » ou « Filtrer » gardaient l'ancienne police sur Accueil, Formations, Formateurs et Contact */
body[class*="elementor-kit-"] button, body[class*="elementor-kit-"] input[type="button"], body[class*="elementor-kit-"] input[type="submit"] { font-family: inherit; }
body[class*="elementor-kit-"] .wc-btn, body[class*="elementor-kit-"] .wc-cchip { font-family: var(--mono); }
h1,h2,h3,h4 { font-family: var(--font); font-weight: 400; letter-spacing: -.03em; line-height: 1.05; color: var(--c-jungle); margin: 0 0 .5em; }
h1 { font-size: clamp(2.5rem, 6.4vw, 5.2rem); }
h2 { font-size: clamp(2rem, 4.6vw, 3.8rem); }
h3 { font-size: 1.5rem; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; }
:focus-visible { outline: 2px solid var(--c-artichoke); outline-offset: 3px; border-radius: 6px; }

/* ---------- Mise en page ---------- */
.wc-wrap, .e-con.wc-wrap { width: min(1240px, 100% - 48px); margin-inline: auto; padding: 0; }
.wc-section, .e-con.wc-section { padding-block: clamp(64px, 7vw, 108px); }
.wc-dark { background: var(--c-black); color: #fff; }
.wc-dark h1, .wc-dark h2, .wc-dark h3, body .elementor .wc-dark .elementor-heading-title { color: #fff; font-weight: 400; }
.wc-dark p, .wc-dark .elementor-widget-text-editor { color: var(--c-soft); }
.wc-light { background: var(--c-white); color: var(--c-kombu); }
/* (la bande teintée a disparu : le fond est blanc sur tout le site) */
body .elementor .wc-light .elementor-heading-title { color: var(--c-jungle); font-weight: 400; }
body .elementor .accent, body .elementor .elementor-heading-title .accent, .accent { color: var(--c-accent); }
body .elementor .wc-dark .accent, body .elementor .wc-dark .elementor-heading-title .accent, .wc-dark .accent { color: var(--c-artichoke); } /* sur fond sombre : le vert clair */
.wc-eyebrow, .elementor-widget-text-editor.wc-eyebrow { font: 600 .78rem/1.4 var(--font); text-transform: uppercase; letter-spacing: .12em; color: var(--c-artichoke); margin: 0 0 10px; }
.wc-light .wc-eyebrow, .wc-light .elementor-widget-text-editor.wc-eyebrow { color: var(--c-hunter); }
.wc-lead { font-size: clamp(1.1rem, 1.6vw, 1.3rem); max-width: 640px; }
.wc-section .wc-wrap > h2 { margin-bottom: 28px; }
/* blocs sombres insérés : cartes arrondies sur la page blanche (comme 4impact) */
.wc-inset { margin: 12px; border-radius: 36px; overflow: hidden; }
.wc-inset.wc-section, .e-con.wc-inset.wc-section { padding-block: clamp(56px, 6vw, 96px); }
.e-con.wc-inset { width: calc(100% - 24px) !important; margin-inline: 12px; }

.e-con.wc-wrap .e-con { padding: 0; }

/* ---------- En-têtes de page : fond clair et illustrations animées ---------- */
.e-con.wc-hero { position: relative; overflow: hidden; justify-content: center; min-height: 100vh; min-height: 100svh; padding-block: calc(var(--ab) + 112px) 72px; } /* le héros occupe toute la hauteur de l'écran */
.e-con.wc-pagehead, .wc-sh { position: relative; overflow: hidden; }
.e-con.wc-hero.wc-light, .e-con.wc-pagehead.wc-light, .wc-sh { background: var(--c-white); color: var(--c-kombu); }
.e-con.wc-pagehead { padding-block: calc(var(--ab) + 132px) clamp(24px, 3vw, 40px); }
.e-con.wc-pagehead + .e-con.wc-section { padding-top: clamp(28px, 3vw, 44px); } /* fond blanc des deux côtés : le contenu suit l'en-tête de près */
.wc-sh { padding-block: calc(var(--ab) + 150px) clamp(56px, 7vw, 96px); }
.e-con.wc-hero > .e-con, .e-con.wc-pagehead > .e-con, .wc-sh > .wc-wrap { position: relative; z-index: 1; }
/* le décor animé du héros : un calque derrière le texte */
.e-con.wc-hero > .e-con.wc-hero__bg { position: absolute; inset: 0; z-index: 0; padding: 0; pointer-events: none; }
.e-con.wc-hero__bg > .elementor-widget { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; }
/* pages intérieures : le texte à gauche, le ciel à droite (une seule colonne sous 900 px) */
.e-con.wc-pagehead__grid { display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 84px); align-items: center; }
.e-con.wc-hero__text, .e-con.wc-pagehead__text { align-items: flex-start; text-align: left; gap: 22px; }
.e-con.wc-hero__text { max-width: 640px; }
.e-con.wc-pagehead__text { gap: 14px; }
.e-con.wc-hero .elementor-widget-text-editor { max-width: 560px; font-size: 1.1rem; }
.e-con.wc-pagehead .elementor-widget-text-editor { max-width: 520px; font-size: 1.1rem; }
.e-con.wc-pagehead__art { align-items: center; justify-content: center; }
.e-con.wc-pagehead__art .elementor-widget { width: 100%; }
@media (max-width: 900px) {
  .e-con.wc-pagehead__grid { grid-template-columns: 1fr; }
  .e-con.wc-pagehead__art { max-width: 520px; width: 100%; margin-inline: auto; }
}
.e-con.wc-actions { width: 100%; justify-content: center; flex-wrap: wrap; }
.e-con.wc-hero__text .e-con.wc-actions { justify-content: flex-start; }
.e-con.wc-actions .elementor-widget-button { width: auto; }

/* ---------- Boutons : pastille pleine, fond qui monte + texte qui défile au survol ---------- */
.wc-btn, body .elementor .elementor-widget-button .elementor-button {
  --bb: #fff; --bf: var(--c-jungle); --bbh: var(--c-artichoke); --bfh: var(--c-jungle);
  position: relative; isolation: isolate; overflow: hidden; display: inline-flex; align-items: center; justify-content: center;
  padding: 19px 34px; border: 0; border-radius: 999px; background: var(--bb); color: var(--bf) !important;
  font: 400 .85rem/1 var(--mono); letter-spacing: .01em; cursor: pointer; text-decoration: none !important; white-space: nowrap; box-shadow: none;
  transition: color .5s var(--ease), transform .4s var(--ease);
}
body .elementor .elementor-widget-button .elementor-button .elementor-button-content-wrapper,
body .elementor .elementor-widget-button .elementor-button-text { display: contents; }
.wc-btn::before, body .elementor .elementor-widget-button .elementor-button::before {
  content: ""; position: absolute; inset: 0; z-index: -1; background: var(--bbh);
  border-radius: 50% 50% 0 0 / 170% 170% 0 0; transform: translateY(102%);
  transition: transform .65s var(--ease), border-radius .65s var(--ease);
}
.wc-btn:hover, body .elementor .elementor-widget-button .elementor-button:hover { color: var(--bfh) !important; }
.wc-btn:hover::before, body .elementor .elementor-widget-button .elementor-button:hover::before { transform: translateY(0); border-radius: 0; }
.wc-btn:active, body .elementor .elementor-widget-button .elementor-button:active { transform: scale(.97); }
/* le texte défile vers le haut (la copie arrive par le bas) */
.wc-roll { position: relative; display: block; overflow: hidden; }
.wc-roll__a, .wc-roll__b { display: block; transition: transform .55s var(--ease); }
.wc-roll__b { position: absolute; left: 0; top: 100%; width: 100%; text-align: center; }
.wc-btn:hover .wc-roll__a, body .elementor .elementor-widget-button .elementor-button:hover .wc-roll__a,
.wc-btn:hover .wc-roll__b, body .elementor .elementor-widget-button .elementor-button:hover .wc-roll__b { transform: translateY(-100%); }
/* variante pour fonds blancs : pastille verte foncée */
.wc-light .wc-btn, body .elementor .wc-light .elementor-widget-button .elementor-button, .wc-btn--solid { --bb: var(--c-jungle); --bf: #fff; --bbh: var(--c-artichoke); --bfh: var(--c-jungle); }
/* variante verre dépoli (bouton secondaire sur fond animé) */
body .elementor .wc-light .wc-bw--line .elementor-button { --bb: transparent; --bf: var(--c-jungle); --bbh: var(--c-jungle); --bfh: #fff; box-shadow: inset 0 0 0 1.5px var(--c-jungle); }
body .elementor .wc-bw--glass .elementor-button { --bb: rgba(255,255,255,.1); --bf: #fff; --bbh: #fff; --bfh: var(--c-jungle); -webkit-backdrop-filter: blur(14px) saturate(140%); backdrop-filter: blur(14px) saturate(140%); box-shadow: inset 0 0 0 1px rgba(255,255,255,.22); }
/* envoi des formulaires */
.wc-dark .wc-btn--form { --bb: var(--c-artichoke); --bf: var(--c-jungle); --bbh: #fff; --bfh: var(--c-jungle); }

/* ---------- En-tête : logo rond + burger rond, flottants ---------- */
.wc-header { position: fixed; top: var(--ab); left: 0; right: 0; z-index: 100; padding: 18px 0; pointer-events: none; }
.wc-header__in { width: min(1240px, 100% - 48px); margin-inline: auto; display: flex; align-items: center; justify-content: space-between; }
.wc-header__in > * { pointer-events: auto; }
.wc-brand { position: relative; display: inline-flex; align-items: center; gap: 12px; padding-right: 20px; color: #fff; transition: filter .4s var(--ease); }
.wc-brand--foot { padding-right: 0; }
body.wc-top-light .wc-header:not(.is-scrolled) .wc-brand { color: var(--c-jungle); }
.wc-brand__mark { position: relative; z-index: 1; width: 52px; height: 52px; border-radius: 50%; background: #fff; color: var(--c-hunter); display: grid; place-items: center; box-shadow: 0 6px 22px rgba(0,0,0,.2); transition: transform .9s var(--ease-io), box-shadow .4s var(--ease); }
.wc-markico { width: 26px; height: 26px; display: block; }
.wc-brand:hover .wc-brand__mark { transform: rotate(90deg); }
.wc-brand__name { position: relative; z-index: 1; display: inline-flex; align-items: center; white-space: nowrap; }
.wc-wordmark { display: block; height: 22px; width: auto; color: inherit; transition: color .4s var(--ease); }

/* En-tête replié : la pastille blanche s'étire en pilule au survol pour contenir le mot-symbole.
   Animation en clip-path + opacité/transform (aucun recalcul de mise en page) ; l'ombre suit la forme grâce à drop-shadow. */
.wc-header.is-scrolled .wc-brand { pointer-events: none; filter: drop-shadow(0 8px 14px rgba(0,0,0,.22)); }
.wc-header.is-scrolled .wc-brand__mark { pointer-events: auto; box-shadow: none; }
.wc-header.is-scrolled .wc-brand::before { content: ""; position: absolute; inset: 0; border-radius: 999px; background: #fff; clip-path: inset(0 calc(100% - 52px) 0 0 round 26px); transition: clip-path .7s var(--ease-io); }
.wc-header.is-scrolled .wc-brand__name { opacity: 0; transform: translateX(-14px); pointer-events: none; transition: opacity .25s ease, transform .6s var(--ease-io); }
.wc-header.is-scrolled .wc-wordmark { color: var(--c-jungle); }
.wc-header.is-scrolled .wc-brand:hover::before, .wc-header.is-scrolled .wc-brand:focus-visible::before, html.wc-menu-open .wc-header.is-scrolled .wc-brand::before { clip-path: inset(0 0 0 0 round 26px); }
.wc-header.is-scrolled .wc-brand:hover .wc-brand__name, .wc-header.is-scrolled .wc-brand:focus-visible .wc-brand__name, html.wc-menu-open .wc-header.is-scrolled .wc-brand__name { opacity: 1; transform: none; pointer-events: auto; transition: opacity .4s ease .12s, transform .8s var(--ease-io) .06s; }

/* burger : pastille sombre (comme les boutons), trois traits de même longueur ; en croix quand le menu est ouvert */
.wc-header .wc-burger { position: relative; width: 52px; height: 52px; padding: 0; border: 0; border-radius: 50%; background: var(--c-jungle); cursor: pointer; box-shadow: 0 12px 26px -12px rgba(29,46,29,.6); transition: transform .45s var(--ease), box-shadow .45s var(--ease); -webkit-tap-highlight-color: transparent; }
.wc-header .wc-burger:hover, .wc-header .wc-burger:focus-visible { transform: scale(1.07); box-shadow: 0 16px 30px -12px rgba(29,46,29,.65); }
.wc-header .wc-burger:active { transform: scale(.93); }
.wc-burger__lines { position: absolute; inset: 0; display: block; }
.wc-burger__lines i { position: absolute; left: 50%; top: 50%; width: 22px; height: 2px; margin: -1px 0 0 -11px; border-radius: 2px; background: #fff; transition: transform .5s var(--ease), opacity .2s; }
.wc-burger__lines i:nth-child(1) { transform: translateY(-6px); }
.wc-burger__lines i:nth-child(3) { transform: translateY(6px); }
.wc-burger[aria-expanded="true"] .wc-burger__lines i:nth-child(1) { transform: rotate(45deg); }
.wc-burger[aria-expanded="true"] .wc-burger__lines i:nth-child(2) { opacity: 0; transform: scaleX(.2); }
.wc-burger[aria-expanded="true"] .wc-burger__lines i:nth-child(3) { transform: rotate(-45deg); }

/* menu plein écran */
/* line-height fixe : sur les pages Elementor, le menu héritait de 27,2 px (17 px × 1,6) ; sur les pages simples (Qui sommes-nous, mentions…), de 1,6 fois sa grande police,
   d'où des entrées deux fois plus hautes (retour du 10/11/2026). On fixe la même valeur partout. */
.wc-menu { position: fixed; inset: 0; z-index: 90; background: #fff; color: var(--c-jungle); line-height: calc(17px * 1.6); padding: calc(var(--ab) + 130px) 0 36px; visibility: hidden; overflow-y: auto;
  clip-path: circle(0px at var(--mx, 50%) var(--my, 44px)); transition: clip-path .9s var(--ease), visibility 0s .9s; }
.wc-menu.is-open { visibility: visible; clip-path: circle(var(--mr, 160vmax) at var(--mx, 50%) var(--my, 44px)); transition-delay: 0s; }
.wc-menu__in { width: min(1240px, 100% - 48px); min-height: 100%; margin-inline: auto; display: flex; flex-direction: column; justify-content: space-between; gap: 48px; }
.wc-menu__nav ul { list-style: none; margin: 0; padding: 0; counter-reset: n; }
.wc-menu__nav li { counter-increment: n; border-bottom: 1px solid rgba(29,46,29,.14); opacity: 0; transform: translateY(28px); transition: opacity .5s var(--ease), transform .7s var(--ease); }
.wc-menu.is-open .wc-menu__nav li { opacity: 1; transform: none; transition-delay: calc(.28s + var(--k, 0) * .08s); }
.wc-menu__nav li:nth-child(1) { --k: 0; } .wc-menu__nav li:nth-child(2) { --k: 1; } .wc-menu__nav li:nth-child(3) { --k: 2; }
.wc-menu__nav li:nth-child(4) { --k: 3; } .wc-menu__nav li:nth-child(5) { --k: 4; } .wc-menu__nav li:nth-child(6) { --k: 5; }
.wc-menu__nav a { display: flex; align-items: center; gap: clamp(16px, 4vw, 48px); padding: clamp(16px, 3.2vh, 32px) 0; font-size: clamp(1.9rem, 5.2vw, 3.6rem); letter-spacing: -.03em; color: var(--c-jungle); transition: color .3s var(--ease), padding .5s var(--ease); }
.wc-menu__nav a::before { content: "No. " counter(n, decimal-leading-zero); font: 400 .8rem var(--mono); color: var(--c-hunter); min-width: 56px; }
.wc-menu__nav a::after { content: ""; margin-left: auto; width: 22px; height: 22px; background: var(--chev-d) center / contain no-repeat; transition: transform .5s var(--ease); }
.wc-menu__nav a:hover { color: var(--c-hunter); padding-left: 14px; }
.wc-menu__nav a:hover::after { transform: translateX(6px); }
.wc-menu__nav .current-menu-item a { color: var(--c-hunter); }
.wc-menu__foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; opacity: 0; transform: translateY(16px); transition: opacity .5s var(--ease), transform .7s var(--ease); }
.wc-menu.is-open .wc-menu__foot { opacity: 1; transform: none; transition-delay: .7s; }
.wc-menu__cta { font-size: 1.15rem; color: var(--c-jungle); border-bottom: 1px solid rgba(29,46,29,.4); padding-bottom: 2px; transition: color .3s, border-color .3s; }
.wc-menu__cta:hover { color: var(--c-hunter); border-color: var(--c-hunter); }
.wc-menu__copy { font: 400 .8rem var(--mono); color: var(--c-hunter); }
html.wc-menu-open .wc-header .wc-brand { color: var(--c-jungle); } /* le mot-symbole reste lisible sur le menu blanc */

/* ---------- Pied de page ---------- */
.wc-footer { background: #fff; color: var(--c-kombu); border-top: 1px solid rgba(29,46,29,.1); padding-block: clamp(64px, 8vw, 110px) 28px; font-size: .95rem; }
.wc-footer__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; margin: clamp(36px, 5vw, 64px) 0; }
.wc-footer h4 { font: 400 .8rem var(--mono); color: var(--c-hunter); margin-bottom: 16px; }
.wc-footer .wc-brand { color: var(--c-jungle); }
.wc-footer ul { list-style: none; margin: 0; padding: 0; }
.wc-footer li { margin-bottom: 10px; }
.wc-footer a { color: var(--c-jungle); transition: color .25s; }
.wc-footer a:hover { color: var(--c-hunter); }
.wc-footer__legal { margin-top: 24px; font: 400 .78rem var(--mono); color: var(--c-hunter); }


/* ---------- Galerie horizontale épinglée ---------- */
.e-con.wc-railsec { padding: 0; }
.wc-rail { position: relative; }
.wc-rail__pin { position: sticky; top: 0; min-height: 100vh; min-height: 100svh; display: flex; flex-direction: column; justify-content: center; gap: clamp(24px, 5vh, 56px); padding: calc(var(--ab) + 104px) 0 48px; overflow: hidden; }
.wc-rail__head { width: min(1240px, 100% - 48px); margin-inline: auto; display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; }
.wc-rail__head h2 { margin: 0; }
.wc-rail__prog { min-width: min(260px, 40%); text-align: right; }
.wc-rail__count { font: 400 .8rem var(--mono); color: var(--c-hunter); }
.wc-rail__count b { font-weight: 400; color: var(--c-jungle); font-size: 1.6rem; letter-spacing: -.02em; }
.wc-rail__bar { display: block; height: 1px; margin-top: 12px; background: rgba(29,46,29,.16); overflow: hidden; }
.wc-rail__bar i { display: block; height: 100%; background: var(--c-hunter); transform: scaleX(0); transform-origin: left; }
/* marge verticale : la carte survolée se soulève et son ombre déborde, sans être rognée par overflow */
.wc-rail__viewport { overflow: hidden; padding: 36px 0 64px; margin: -36px 0 -64px; }
.wc-rail__track { display: flex; align-items: center; gap: 22px; width: max-content; padding-inline: max(24px, calc((100vw - 1240px) / 2)); will-change: transform; }

.wc-pcard { position: relative; flex: none; height: min(560px, 62vh); height: min(560px, 62svh); aspect-ratio: 5 / 7; border-radius: 26px; overflow: hidden; color: #fff; isolation: isolate; transition: transform .7s var(--ease), box-shadow .7s var(--ease); }
.wc-pcard:hover { transform: translateY(-10px); box-shadow: 0 30px 60px -28px rgba(137,171,137,.45); color: #fff; }
.wc-pcard__vis { position: absolute; inset: 0; z-index: -2; }
.wc-pcard__vis .wc-visual { height: 100%; aspect-ratio: auto; border-radius: 0; }
.wc-pcard__vis .wc-visual img { transform: scale(1.08); transition: transform 1.2s var(--ease); }
.wc-pcard:hover .wc-pcard__vis .wc-visual img { transform: scale(1.16); }
.wc-pcard__vis .wc-visual--ph span { font-size: clamp(8rem, 15vw, 13rem); transform: translateX(calc(var(--par, 0) * 46px)); transition: transform .12s linear; }
.wc-pcard:nth-child(3n+1) .wc-visual--ph { background: radial-gradient(80% 60% at 30% 25%, var(--c-hunter), var(--c-jungle)); }
.wc-pcard:nth-child(3n+2) .wc-visual--ph { background: radial-gradient(80% 60% at 70% 25%, var(--c-kombu), #0c140c); }
.wc-pcard:nth-child(3n+3) .wc-visual--ph { background: radial-gradient(80% 60% at 50% 20%, #5b7f5b, var(--c-jungle)); }
.wc-pcard::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(to top, rgba(0,0,0,.72), rgba(0,0,0,0) 58%), linear-gradient(to bottom, rgba(0,0,0,.4), rgba(0,0,0,0) 24%); } /* voile en haut aussi : le numéro reste lisible sur une photo claire */
.wc-pcard__n { position: absolute; top: 24px; left: 24px; font: 400 .8rem var(--mono); color: #fff; opacity: .9; }
.wc-pcard .wc-go { top: 18px; right: 18px; bottom: auto; width: 46px; height: 46px; --chip-bg: #fff; --chip-ar: var(--arrow-d); }
.wc-pcard:hover .wc-go { --chip-bg: var(--c-artichoke); transform: rotate(-45deg) scale(1.08); }
.wc-pcard__txt { position: absolute; left: 24px; right: 24px; bottom: 24px; display: flex; flex-direction: column; gap: 14px; }
.wc-pcard__txt h3 { margin: 0; color: #fff; font-size: clamp(1.2rem, 8cqi, 2.2rem); letter-spacing: -.03em; line-height: 1.05; }
/* textes à la taille de la carte (cqi) et non de la fenêtre : la carte suit la hauteur de l'écran, une police calée sur sa largeur débordait sur un écran large mais bas
   (« Product Management Data & IA » sur ses étiquettes, retour du 10/11/2026) */
.wc-pcard { container-type: inline-size; }
.wc-pcard .wc-visual--name span { font-size: clamp(1.35rem, 9.5cqi, 2.5rem); }
.wc-pcard .wc-chip { background: rgba(255,255,255,.16); color: #fff; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.wc-rail__all { position: relative; flex: none; height: min(560px, 62vh); height: min(560px, 62svh); aspect-ratio: 5 / 7; border-radius: 26px; background: var(--c-artichoke); color: var(--c-jungle); overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; gap: 6px; padding: 24px; transition: background-color .6s var(--ease), transform .7s var(--ease); }
.wc-rail__all .wc-pcard__n { color: var(--c-jungle); }
.wc-rail__all .wc-go { top: 18px; right: 18px; bottom: auto; width: 46px; height: 46px; --chip-bg: var(--c-jungle); --chip-ar: var(--arrow-w); }
.wc-rail__total { font-size: clamp(6rem, 12vw, 10rem); line-height: .85; letter-spacing: -.06em; transition: transform .7s var(--ease); }
.wc-rail__alltxt { font-size: clamp(1.5rem, 2.3vw, 2.2rem); letter-spacing: -.03em; line-height: 1.05; max-width: 12ch; }
.wc-rail__all:hover { background: #fff; transform: translateY(-10px); color: var(--c-jungle); }
.wc-rail__all:hover .wc-go { transform: rotate(-45deg) scale(1.08); }
.wc-rail__all:hover .wc-rail__total { transform: translateX(8px); }
@media (max-width: 900px) {
  .wc-rail__pin { position: static; min-height: 0; padding: clamp(64px, 9vw, 96px) 0; gap: 28px; overflow: visible; }
  .wc-rail__prog { display: none; }
  .wc-rail__viewport { overflow-x: auto; padding: 12px 0 28px; margin: -12px 0 -28px; scroll-padding-inline: 24px; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .wc-rail__viewport::-webkit-scrollbar { display: none; }
  .wc-rail__track { transform: none !important; padding-inline: 24px; scroll-padding-inline: 24px; }
  .wc-pcard { height: auto; width: min(78vw, 360px); scroll-snap-align: start; }
  .wc-rail__all { scroll-snap-align: start; height: auto; width: min(78vw, 360px); }
}

/* ---------- Cartes de liste (formations / formateurs) ---------- */
.wc-list { width: 100%; }
.wc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(310px, 1fr)); gap: 22px; }
.wc-card { background: #fff; color: var(--c-jungle); border: 1px solid rgba(29,46,29,.14); border-radius: var(--radius); padding: 12px; display: flex; flex-direction: column; transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.wc-card:hover { transform: translateY(-5px); box-shadow: 0 30px 50px -34px rgba(29,46,29,.42); color: var(--c-jungle); }
.wc-card__media { position: relative; }
.wc-card__media .wc-visual { aspect-ratio: 4/3; border-radius: 16px; -webkit-mask: radial-gradient(circle 58px at 100% 100%, transparent 57px, #000 58px); mask: radial-gradient(circle 58px at 100% 100%, transparent 57px, #000 58px); }
.wc-go { position: absolute; right: 0; bottom: 0; width: 44px; height: 44px; border-radius: 50%; background: var(--chip-ar, var(--arrow-w)) center / 16px no-repeat, var(--chip-bg, var(--c-jungle)); transition: transform .5s var(--ease); }
.wc-card:hover .wc-go { --chip-bg: var(--c-artichoke); --chip-ar: var(--arrow-d); transform: rotate(-45deg) scale(1.08); }
.wc-visual { aspect-ratio: 16/10; border-radius: 16px; overflow: hidden; background: var(--c-jungle); }
.wc-visual img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1s var(--ease); }
/* logo officiel d'une technologie : seul, entier (jamais rogné), centré sur fond blanc */
.wc-visual.wc-visual--logo { display: grid; place-items: center; background: #fff; }
.wc-visual.wc-visual--logo img.wc-logo { width: 72%; height: 46%; object-fit: contain; transition: none; transform: none; }
.wc-card .wc-visual.wc-visual--logo { background: #f4f5f3; }
/* galerie : carte blanche cernée d'un filet, le logo en haut, le texte en bas */
.wc-pcard--logo { background: #fff; color: var(--c-jungle); border: 1px solid rgba(29,46,29,.16); }
.wc-pcard--logo::before { display: none; }
.wc-pcard--logo .wc-pcard__vis { bottom: 46%; }
.wc-pcard--logo .wc-pcard__vis .wc-visual.wc-visual--logo img.wc-logo, .wc-pcard--logo:hover .wc-pcard__vis .wc-visual.wc-visual--logo img.wc-logo { width: 70%; height: 46%; transform: none; }
.wc-pcard--logo .wc-pcard__n { color: var(--c-jungle); }
.wc-pcard--logo .wc-go { --chip-bg: var(--c-jungle); --chip-ar: var(--arrow-w); }
.wc-pcard--logo:hover .wc-go { --chip-bg: var(--c-artichoke); --chip-ar: var(--arrow-d); }
.wc-pcard--logo .wc-pcard__txt h3 { color: var(--c-jungle); }
.wc-pcard--logo .wc-chip { background: var(--c-grey); color: var(--c-jungle); -webkit-backdrop-filter: none; backdrop-filter: none; }
.wc-card:hover .wc-visual img { transform: scale(1.06); }
.wc-visual--ph { display: grid; place-items: center; background: #eff0ee; }
.wc-visual--ph span { font-size: 4.5rem; color: var(--c-jungle); font-weight: 300; transition: transform .8s var(--ease); }
.wc-pcard .wc-visual--ph span { color: var(--c-artichoke); }
.wc-card:hover .wc-visual--ph span { transform: scale(1.12) rotate(-4deg); }
.wc-card__body { padding: 20px 12px 12px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.wc-card__body h3 { margin: 0; font-size: 1.7rem; color: var(--c-jungle); }
.wc-card__body p { margin: 0; color: rgba(29,46,29,.78); font-size: .98rem; }
.wc-by { font: 400 .78rem var(--mono); color: var(--c-hunter); }
.wc-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.wc-card .wc-chip { background: #f1f2f0; color: var(--c-jungle); }
.wc-card .wc-chip--accent { background: var(--c-jungle); color: #fff; }
.wc-chip { font: 400 .72rem/1 var(--mono); background: rgba(255,255,255,.92); color: var(--c-jungle); border-radius: 999px; padding: 7px 12px; }
.wc-chip--accent { background: var(--c-jungle); color: #fff; }
.wc-sh .wc-chip { background: var(--c-grey); color: var(--c-jungle); }
.wc-sh .wc-chip--accent { background: var(--c-jungle); color: #fff; }

/* ---------- Filtres ---------- */
.wc-filters { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 18px; }
.wc-filters input[type=search], .wc-filters select {
  background: #fff; color: var(--c-jungle); border: 1px solid #c9d4c9; border-radius: 999px; padding: 15px 22px; font: 400 .95rem var(--font); min-width: 0; height: auto; box-shadow: none;
  transition: border-color .25s var(--ease), box-shadow .25s var(--ease);
}
.wc-filters input[type=search] { flex: 1 1 240px; }
.wc-filters select { flex: 0 1 190px; appearance: none; -webkit-appearance: none; padding-right: 40px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23304d30' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 18px center; }
.wc-filters input:focus, .wc-filters select:focus { outline: 0; border-color: var(--c-hunter); box-shadow: 0 0 0 4px rgba(137,171,137,.35); }
.wc-reset { font: 400 .8rem var(--mono); text-decoration: underline; text-underline-offset: 3px; }
.wc-count { font: 400 .8rem var(--mono); margin: 0 0 24px; color: var(--c-hunter); }
.wc-empty { color: var(--c-hunter); padding: 24px 0; }
.wc-pager { margin-top: 36px; display: flex; gap: 8px; justify-content: center; }
.wc-pager .page-numbers { font: 400 .85rem var(--mono); padding: 10px 16px; border-radius: 999px; background: var(--c-grey); color: var(--c-jungle); transition: background-color .25s; }
.wc-pager a.page-numbers:hover { background: var(--c-artichoke); }
.wc-pager .current { background: var(--c-jungle); color: #fff; }

/* ---------- Fiches détail ---------- */
.wc-sh__grid { display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 84px); align-items: center; }
@media (max-width: 900px) { .wc-sh__grid { grid-template-columns: 1fr; } .wc-sh__grid .wc-art { margin-top: 12px; } }
.wc-person__visual { max-width: 400px; margin-left: auto; }
.wc-sh h1 { margin: 18px 0 14px; max-width: 980px; font-size: clamp(2.4rem, 5.6vw, 4.6rem); }
.wc-sh .wc-lead { margin: 0 0 30px; color: var(--c-kombu); }
.wc-back { display: inline-flex; align-items: center; gap: 10px; font: 400 .8rem var(--mono); color: var(--c-hunter); margin-bottom: 26px; transition: gap .3s var(--ease), color .2s; }
.wc-back::before { content: ""; width: 16px; height: 16px; background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%2389ab89' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 8H3M7 4L3 8l4 4'/%3E%3C/svg%3E"); }
.wc-back:hover { gap: 14px; color: var(--c-jungle); }
.wc-split { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: clamp(32px, 6vw, 88px); align-items: start; }
.wc-split__side { position: sticky; top: calc(var(--ab) + 110px); }
.wc-summary { background: #fff; border: 1px solid rgba(29,46,29,.14); border-radius: var(--radius); padding: 28px; display: flex; flex-direction: column; gap: 18px; }
.wc-summary h3 { margin: 0; }
.wc-summary dl { margin: 0; }
.wc-summary dl > div { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid rgba(48,77,48,.15); }
.wc-summary dt { font: 400 .78rem var(--mono); color: var(--c-hunter); align-self: center; }
.wc-summary dd { margin: 0; color: var(--c-jungle); font-weight: 500; text-align: right; }
.wc-mini { display: flex; align-items: center; gap: 14px; padding: 8px; margin: 0 -8px; border-radius: 18px; transition: background-color .25s var(--ease); }
.wc-mini:hover { background: rgba(29,46,29,.05); }
.wc-summary .wc-chip { background: #f1f2f0; }
.wc-mini .wc-visual { width: 64px; flex: none; aspect-ratio: 1; border-radius: 14px; }
.wc-mini .wc-visual--ph span { font-size: 1.8rem; }
.wc-mini span { color: var(--c-jungle); }
.wc-mini small { display: block; font: 400 .72rem var(--mono); color: var(--c-hunter); }
.wc-summary .wc-btn { align-self: stretch; }
.wc-prose { font-size: 1.08rem; color: var(--c-kombu); }
.wc-prose h2 { font-size: clamp(1.6rem, 2.8vw, 2.2rem); margin: 1.6em 0 .5em; }
.wc-prose h2:first-child { margin-top: 0; }
.wc-prose ul { padding-left: 0; list-style: none; }
.wc-prose li { position: relative; padding-left: 30px; margin-bottom: 10px; }
.wc-prose li::before { content: ""; position: absolute; left: 0; top: .55em; width: 14px; height: 14px; border-radius: 50%; background: var(--c-artichoke); box-shadow: inset 0 0 0 4px var(--c-artichoke), inset 0 0 0 14px var(--c-jungle); }
.wc-prose--narrow { max-width: 760px; }
.wc-prose ol { margin: 0 0 1em; padding-left: 1.4em; }
.wc-prose ol li { padding-left: 6px; }
.wc-prose ol li::before { display: none; }
.wc-prose a { color: var(--c-hunter); text-decoration: underline; text-underline-offset: .2em; }
.wc-prose strong { font-weight: 600; color: var(--c-jungle); }
.wc-form-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.wc-person { display: grid; grid-template-columns: 1.2fr 1fr; gap: clamp(32px, 6vw, 80px); align-items: center; }
.wc-person__visual .wc-visual { aspect-ratio: 4/5; border-radius: var(--radius); }
.wc-person__visual .wc-visual--ph span { font-size: 8rem; }
@media (max-width: 900px) {
  .wc-split, .wc-form-grid, .wc-person { grid-template-columns: 1fr; }
  .wc-split__side { position: static; }
  .wc-person__visual { order: -1; max-width: 340px; }
}

/* ---------- Formulaires : lignes soulignées (comme 4impact) ---------- */
.wpcf7 { --ink: var(--c-jungle); --line: rgba(29,46,29,.35); --ph: rgba(48,77,48,.55); }
.wc-dark .wpcf7 { --ink: #fff; --line: rgba(255,255,255,.4); --ph: rgba(255,255,255,.45); }
.wc-fgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 26px 32px; margin-bottom: 34px; }
.wc-fgrid__full { grid-column: 1 / -1; }
.wpcf7 label { display: block; font: 400 .78rem var(--mono); color: var(--ink); }
.wpcf7 .wpcf7-form-control-wrap { display: block; }
.wpcf7 input[type=text], .wpcf7 input[type=email], .wpcf7 input[type=tel], .wpcf7 textarea {
  width: 100%; margin-top: 8px; background: transparent; color: var(--ink); border: 0; border-bottom: 1px solid var(--line); border-radius: 0; padding: 12px 0; font: 300 1rem var(--font); box-shadow: none; transition: border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.wpcf7 textarea { min-height: 120px; resize: vertical; }
.wpcf7 ::placeholder { color: var(--ph); font: italic 400 .85rem var(--mono); opacity: 1; }
.wpcf7 input:focus, .wpcf7 textarea:focus { outline: 0; border-bottom-color: var(--c-artichoke); box-shadow: 0 1px 0 var(--c-artichoke); }
.wpcf7-not-valid-tip { font: 400 .75rem var(--mono); color: #ffb4a8; margin-top: 6px; }
.wc-light .wpcf7-not-valid-tip { color: #b42318; }
.wpcf7-response-output { border-radius: 14px; font-size: .9rem; margin: 20px 0 0 !important; }
.wpcf7-spinner { display: none; }
.wc-formbox, .e-con.wc-formbox, .e-con.wc-contact-form { width: 100%; padding: 0; align-items: stretch; }
.wc-formbox .elementor-widget, .wc-contact-form .elementor-widget, .wc-formbox .wpcf7, .wc-contact-form .wpcf7, .wpcf7 form { width: 100%; }
.e-con.wc-contact { display: grid; grid-template-columns: 1fr 1.4fr; gap: clamp(32px, 6vw, 80px); }
@media (max-width: 800px) { .e-con.wc-contact { grid-template-columns: 1fr; } .wc-fgrid { grid-template-columns: 1fr; } }

/* Pages Elementor : on masque le titre par défaut de Hello */
body.page .page-header { display: none; }
body.page .page-content { width: 100%; max-width: none; padding: 0; }
.elementor-widget-shortcode { width: 100%; }

/* ---------- Animations ---------- */
@keyframes wc-spin { to { transform: rotate(360deg); } }
@keyframes wc-in { from { opacity: 0; } }
@keyframes wc-arrow {
  0% { background-position: center, 0 0; }
  45% { background-position: 200% center, 0 0; }
  46% { background-position: -100% center, 0 0; }
  100% { background-position: center, 0 0; }
}
.wc-js body { animation: wc-in .9s var(--ease); }
/* apparition générique */
.wc-js .wc-r { opacity: 0; transform: translateY(28px); transition: opacity .9s var(--ease) var(--d, 0ms), transform 1s var(--ease) var(--d, 0ms); will-change: opacity, transform; }
.wc-js .wc-r.is-in { opacity: 1; transform: none; will-change: auto; }
.wc-js .wc-member.wc-r.is-in { transition: opacity .9s var(--ease) var(--d, 0ms), transform .5s var(--ease), box-shadow .5s var(--ease); }
.wc-js .wc-member.wc-r.is-in:hover { transform: translateY(-6px); }
.wc-js .wc-card.wc-r.is-in { transition: opacity .9s var(--ease) var(--d, 0ms), transform .5s var(--ease), box-shadow .5s var(--ease); }
/* titres : mots qui montent derrière un masque */
.wc-w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .14em; margin-bottom: -.14em; }
.wc-w > i { display: inline-block; font-style: normal; }
.wc-js .wc-words .wc-w > i { transform: translateY(115%) rotate(4deg); transition: transform 1.1s var(--ease) calc(var(--wi, 0) * 55ms); will-change: transform; }
.wc-js .wc-words.is-in .wc-w > i { transform: none; will-change: auto; }
/* images : révélation par masque + dézoom */
.wc-js .wc-card .wc-visual img, .wc-js .wc-card .wc-visual--ph span, .wc-js .wc-card .wc-ill { transform: scale(1.25); transition: transform 1.6s var(--ease) var(--d, 0ms); }
.wc-js .wc-card.is-in .wc-visual img, .wc-js .wc-card.is-in .wc-visual--ph span, .wc-js .wc-card.is-in .wc-ill { transform: none; }
.wc-js .wc-card.is-in:hover .wc-visual img, .wc-js .wc-card.is-in:hover .wc-ill { transform: scale(1.06); transition-duration: 1s; }
.wc-js .wc-card.is-in:hover .wc-visual--ph span { transform: scale(1.12) rotate(-4deg); transition-duration: .8s; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .wc-js .wc-r, .wc-js .wc-words .wc-w > i { opacity: 1; transform: none; }
  }
.e-con.wc-form-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
@media (max-width: 900px) { .e-con.wc-form-grid { grid-template-columns: 1fr; } }

/* ---------- Illustrations des formations (schémas SVG de l'extension) ---------- */
.wc-visual--art { position: relative; background: radial-gradient(85% 75% at 50% 38%, #2a442a, #0e170e); }
.wc-visual--art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(rgba(137,171,137,.07) 1px, transparent 1px) 0 0 / 100% 36px, linear-gradient(90deg, rgba(137,171,137,.07) 1px, transparent 1px) 0 0 / 36px 100%; -webkit-mask: radial-gradient(70% 70% at 50% 45%, #000, transparent); mask: radial-gradient(70% 70% at 50% 45%, #000, transparent); pointer-events: none; }
.wc-ill { position: absolute; inset: 0; width: 100%; height: 100%; display: block; fill: none; stroke-linecap: round; stroke-linejoin: round; z-index: 1; transition: transform 1.2s var(--ease); }
.wc-ill .il-s { stroke: var(--c-artichoke); stroke-width: 2; }
.wc-ill .il-d, .wc-ill .il-d * { stroke: var(--c-hunter); stroke-width: 1.5; }
.wc-ill .il-w { stroke: #fff; stroke-width: 2.5; }
.wc-ill .il-wf { fill: #fff; stroke: none; }
.wc-ill .il-af { fill: var(--c-artichoke); stroke: none; }
.wc-ill .il-df { fill: var(--c-hunter); stroke: none; }
.wc-ill .il-fill { fill: rgba(137,171,137,.08); }
.wc-ill .il-nf { fill: #142214; }
.wc-ill .il-tf { fill: #2b472b; }
.wc-ill .il-lf { fill: #1b301b; }
.wc-ill .il-rf { fill: #122012; }
.wc-ill .il-sd { stroke: var(--c-artichoke); stroke-width: 2; }
.wc-ill .il-flow { stroke: #fff; stroke-width: 3.5; stroke-dasharray: 7 93; stroke-dashoffset: 7; animation: il-flow 3.4s linear infinite; }
.wc-ill .il-ping { stroke: #fff; stroke-width: 1.5; opacity: 0; transform-box: fill-box; transform-origin: center; animation: il-ping 3s ease-out infinite; }
.wc-ill .il-bar { transform-box: fill-box; transform-origin: bottom; animation: il-bar 3.6s ease-in-out infinite; }
.wc-ill .il-spin { animation: il-spin 2.6s linear infinite; }
@keyframes il-flow { to { stroke-dashoffset: -93; } }
@keyframes il-ping { 0% { transform: scale(1); opacity: .75; } 100% { transform: scale(2.3); opacity: 0; } }
@keyframes il-bar { 0%, 100% { transform: scaleY(.55); } 50% { transform: scaleY(1); } }
@keyframes il-spin { to { transform: rotate(360deg); } }
.wc-card:hover .wc-ill, .wc-pcard:hover .wc-ill { transform: scale(1.06); }
/* carte portrait de la galerie : le schéma remonte pour laisser la place au titre */
.wc-pcard__vis .wc-visual--art { position: absolute; inset: 0; }
.wc-pcard .wc-ill { top: 8%; bottom: auto; height: 54%; overflow: visible; }
/* fiche : visuel en tête de l'encart « En bref » */
.wc-summary__art { margin: -6px -6px 22px; }
.wc-summary__art .wc-visual { aspect-ratio: 4 / 3; border-radius: 18px; }
@media (prefers-reduced-motion: reduce) { .wc-ill .il-flow { display: none; } .wc-ill * { animation: none !important; } }

/* ---------- Contact : coordonnées, champ piège anti-spam, mention, message de réponse ---------- */
.wc-coords { margin: 0; }
.wc-coords > div { padding: 16px 0; border-bottom: 1px solid rgba(48,77,48,.18); }
.wc-coords > div:first-child { padding-top: 6px; }
.wc-coords dt { margin: 0 0 4px; font: 400 .72rem var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--c-hunter); }
.wc-coords dd { margin: 0; font-size: 1.15rem; line-height: 1.5; color: var(--c-jungle); }
.wc-coords a { text-decoration: underline; text-decoration-color: rgba(67,103,67,.4); text-underline-offset: .2em; transition: text-decoration-color .3s var(--ease); }
.wc-coords a:hover { text-decoration-color: var(--c-jungle); }
.wc-coords__empty { margin: 0; color: var(--c-kombu); }
.wc-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.wpcf7 .wc-privacy { margin: 18px 0 0; font: 400 .75rem/1.6 var(--mono); color: var(--ph); }
.wpcf7 .wc-privacy a { color: inherit; text-decoration: underline; text-underline-offset: .2em; }
.wpcf7 form .wpcf7-response-output { padding: 16px 22px !important; border: 0 !important; background: rgba(137,171,137,.2); color: var(--ink); font-size: .95rem; line-height: 1.5; }
.wpcf7 form.sent .wpcf7-response-output { background: rgba(137,171,137,.34); }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.failed .wpcf7-response-output, .wpcf7 form.spam .wpcf7-response-output { background: rgba(217,130,43,.18); }
.wpcf7 form.init .wpcf7-response-output { display: none; }

/* ---------- Formateurs : cartes, profil, fiche formation ---------- */
.wc-section.wc-after { padding-top: 0; }
.wc-grid--trainers { grid-template-columns: repeat(auto-fill, minmax(280px, 340px)); }
.wc-card--person .wc-card__media .wc-visual { aspect-ratio: 5 / 4; }
.wc-card--person .wc-card__body { gap: 12px; }
.wc-card--person .wc-by { line-height: 1.5; }
.wc-card--person .wc-chip--accent { background: #f1f2f0; color: var(--c-jungle); } /* les technologies d'un formateur : pastilles claires */
.wc-split--one { grid-template-columns: minmax(0, 1fr); }
.wc-split--one .wc-split__main { max-width: 760px; }
.wc-quote { padding: 2px 0 2px 24px; border-left: 3px solid var(--c-artichoke); font-size: 1.2rem; line-height: 1.6; color: var(--c-jungle); }
.wc-quote p { margin: 0 0 1em; }
.wc-quote p:last-child { margin-bottom: 0; }
.wc-summary .wc-chips { gap: 8px; }
.wc-summary .wc-chip { background: #fff; }

/* ---------- Catalogue : filtres par technologie + fiche formation ---------- */
.wc-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.wc-pill { font: 400 .8rem var(--mono); padding: 12px 20px; border-radius: 999px; background: var(--c-grey); color: var(--c-jungle); transition: background-color .3s var(--ease), color .3s var(--ease), transform .3s var(--ease); }
.wc-pill:hover { background: var(--c-artichoke); transform: translateY(-1px); }
.wc-pill.is-active { background: var(--c-jungle); color: #fff; }
.wc-days { display: grid; gap: 14px; margin-top: 8px; }
.wc-day { display: grid; grid-template-columns: 110px 1fr; gap: 20px; padding: 22px 26px; border-radius: 20px; background: #fff; border: 1px solid rgba(29,46,29,.14); }
.wc-day__n { font: 400 .8rem var(--mono); color: var(--c-hunter); padding-top: 4px; }
.wc-day ul { margin: 0; }
.wc-day li { margin-bottom: 6px; }
.wc-day li:last-child { margin-bottom: 0; }
.wc-summary__block { padding-top: 6px; border-top: 1px solid rgba(48,77,48,.15); }
.wc-summary__label { display: block; font: 400 .78rem var(--mono); color: var(--c-hunter); margin: 12px 0 8px; }
.wc-summary__tbd { margin: 0; color: var(--c-kombu); font-size: .95rem; }
.wc-sessions { list-style: none; margin: 0; padding: 0; }
.wc-sessions li { padding: 8px 0; border-bottom: 1px dashed rgba(48,77,48,.22); font-size: .95rem; }
.wc-sessions li:last-child { border-bottom: 0; }
.wc-summary .wc-chip--link { background: #fff; color: var(--c-jungle); transition: background-color .3s var(--ease), color .3s var(--ease); }
.wc-summary .wc-chip--link:hover { background: var(--c-jungle); color: #fff; }
.wc-extra { margin-top: 2.2em; }
@media (max-width: 600px) { .wc-day { grid-template-columns: 1fr; gap: 8px; } }
/* titres : retours à la ligne équilibrés (pas de mot orphelin) */
.wc-hero h1, .wc-sh h1, .e-con.wc-pagehead h1 { text-wrap: balance; }
.wc-hero .elementor-heading-title { text-wrap: balance; }

/* ---------- Accueil orienté conversion (0.10.0) ---------- */
/* conteneur sans marge : le bloc dynamique (shortcode) gère son propre espacement et disparaît quand il est vide */
.e-con.wc-bare { padding: 0; gap: 0; }
.e-con.wc-bare .elementor-widget { margin: 0; }
.e-con.wc-bare:has(.wc-sess) + .e-con.wc-light { padding-top: 0; }
.e-con.wc-section .elementor-widget-text-editor.wc-intro { max-width: 680px; }
.e-con.wc-section .elementor-widget-text-editor.wc-intro--c { margin-inline: auto; } /* introduction centrée : le bloc de 680 px l'est aussi, pas seulement son texte */

/* héros : titre ; la ligne de réassurance ([wellco_trust]) n'est plus dans le héros mais reste disponible pour les anciennes pages */
.e-con.wc-hero h1.elementor-heading-title { font-size: clamp(2.2rem, 4vw, 3.7rem); }
.wc-trustline { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 8px 26px; font: 400 .78rem/1.4 var(--mono); color: var(--c-kombu); }
.wc-trustline li { display: inline-flex; align-items: center; gap: 9px; margin: 0; }
.wc-trustline li::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--c-artichoke); }

/* bandeau de preuves */
.wc-stats { background: #fff; border-top: 1px solid rgba(29,46,29,.1); border-bottom: 1px solid rgba(29,46,29,.1); padding: clamp(32px, 4.5vw, 56px) 0; }
.wc-stats__in { width: min(1240px, 100% - 48px); margin-inline: auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 28px 36px; }
.wc-stats__i b { display: block; font-weight: 400; font-size: clamp(1.9rem, 3.6vw, 3rem); letter-spacing: -.04em; line-height: 1; color: var(--c-jungle); }
.wc-stats__i span { display: block; margin-top: 10px; font: 400 .78rem/1.5 var(--mono); color: var(--c-hunter); }

/* formateurs : secteurs d'intervention */
.wc-sectors { margin: clamp(28px, 4vw, 48px) 0; text-align: center; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.16); font: 400 .8rem/1.7 var(--mono); color: var(--c-soft); }
.wc-sectors b { display: block; margin-bottom: 4px; font-weight: 400; color: var(--c-artichoke); }
.wc-sectors:last-child { margin-bottom: 0; }
.wc-light .wc-sectors { border-top-color: rgba(29,46,29,.14); color: var(--c-kombu); }
.wc-light .wc-sectors b { color: var(--c-hunter); }
.wc-teamfoot > .elementor-widget-shortcode { flex: 1 1 420px; min-width: 0; margin: 0; }
.wc-teamfoot .wc-sectors { margin: 0; padding-top: 0; border-top: 0; text-align: left; }
.wc-teamfoot .elementor-widget-button { flex: none; }

/* sur mesure : quatre points */
.e-con.wc-points { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.e-con.wc-wrap .e-con.wc-points > .e-con { padding: 24px 26px; border-radius: 20px; background: #fff; border: 1px solid rgba(29,46,29,.14); gap: 8px; align-content: start; }
.wc-points h3 { margin: 0; font-size: 1.2rem; letter-spacing: -.02em; line-height: 1.2; }
.wc-points p { margin: 0; font-size: .95rem; }
.wc-domains { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 10px; padding: 0; list-style: none; }
.wc-domains li { margin: 0; padding: 11px 20px; border-radius: 999px; background: var(--c-jungle); color: #fff; font: 400 .85rem/1 var(--mono); }
.wc-domains--alt li { background: transparent; color: var(--c-jungle); box-shadow: inset 0 0 0 1px var(--c-jungle); }
.e-con.wc-section .elementor-widget-text-editor.wc-offer__tech { margin-top: 18px; font: 400 .78rem/1.7 var(--mono); color: var(--c-hunter); }
@media (max-width: 700px) { .e-con.wc-points { grid-template-columns: 1fr; } }

/* déroulé : trois étapes illustrées (elles se jouent à l'apparition), reliées par des flèches, puis l'exemple de programme dans un bloc noir */
.e-con.wc-steps { --wc-gap: 56px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--wc-gap); margin: 52px 0 clamp(52px, 6vw, 88px); }
.e-con.wc-wrap .e-con.wc-steps > .e-con { position: relative; padding: 0; gap: 12px; align-content: start; }
.e-con.wc-steps > .e-con:nth-child(2) { --t: .7s; }
.e-con.wc-steps > .e-con:nth-child(3) { --t: 1.4s; }
.wc-step__art { position: relative; margin-bottom: 8px; }
.wc-step__art .st { display: block; width: 100%; height: auto; }
.elementor-widget-text-editor.wc-step__n { position: absolute; top: -18px; left: 18px; z-index: 3; width: 44px; height: 44px; margin: 0; display: grid; place-items: center; border-radius: 50%; background: #fff; box-shadow: 0 0 0 1px rgba(29,46,29,.1); color: var(--c-jungle); font: 500 .9rem/1 var(--mono); }
.wc-steps h3 { margin: 0; font-size: 1.65rem; line-height: 1.12; }
.wc-steps p { margin: 0; max-width: 36ch; font-size: 1rem; }

/* illustrations (aplats et traits, couleurs du site) */
.st-bg { fill: var(--c-grey); }
.st-card { fill: #fff; stroke: var(--c-jungle); stroke-width: 2; stroke-linejoin: round; }
.st-dark { fill: var(--c-jungle); stroke: var(--c-jungle); stroke-width: 2; }
.st-dk, .st-dot { fill: var(--c-jungle); }
.st-bar, .st-ctl { fill: #c8d9c8; }
.st-barw { fill: rgba(255,255,255,.88); }
.st-acc { fill: var(--c-artichoke); }
.st-badge { fill: var(--c-artichoke); stroke: #fff; stroke-width: 4; }
.st-tick { fill: none; stroke: var(--c-jungle); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 24; }
.st-sep { fill: none; stroke: #d7e3d7; stroke-width: 2; }
.st-lnk { fill: none; stroke: #d7e3d7; stroke-width: 3; stroke-linecap: round; }
.st-flow { fill: none; stroke: var(--c-hunter); stroke-width: 3.5; stroke-linecap: round; stroke-dasharray: 7 93; stroke-dashoffset: 7; }
.st-node { fill: #fff; stroke: var(--c-jungle); stroke-width: 2; }
.st-pop, .st-grow, .st-rise, .st-node { transform-box: fill-box; }
.st-node { transform-origin: 50% 50%; }
.st-pop { transform-origin: 50% 60%; }
.st-grow { transform-origin: 0 50%; }
.st-rise { transform-origin: 50% 100%; }

/* connecteurs entre les étapes : un trait en pointillés qui se trace, puis une pointe de flèche */
.e-con.wc-steps > .e-con:not(:last-child) .wc-step__art::after { content: ""; position: absolute; top: calc(50% - 1px); left: calc(100% + 10px); width: calc(var(--wc-gap) - 20px); height: 2px; background: repeating-linear-gradient(90deg, var(--c-jungle) 0 6px, transparent 6px 12px); opacity: .5; }
.e-con.wc-steps > .e-con:not(:last-child) .wc-step__art::before { content: ""; position: absolute; top: calc(50% - 4px); left: calc(100% + var(--wc-gap) - 17px); width: 8px; height: 8px; border-top: 2px solid var(--c-jungle); border-right: 2px solid var(--c-jungle); transform: rotate(45deg); opacity: .6; }

/* animations : déclenchées quand l'étape devient visible (classe is-in posée par main.js) ; sans JavaScript, tout reste affiché */
.wc-js .wc-step.is-in .st-pop { animation: st-pop .7s var(--ease) both; animation-delay: calc(var(--t, 0s) + .35s + var(--i, 0) * .2s); }
.wc-js .wc-step.is-in .st-grow { animation: st-grow .6s var(--ease) both; animation-delay: calc(var(--t, 0s) + .35s + var(--i, 0) * .2s); }
.wc-js .wc-step.is-in .st-rise { animation: st-rise .8s var(--ease) both, st-breath 3.4s ease-in-out infinite; animation-delay: calc(var(--t, 0s) + .35s + var(--i, 0) * .2s), calc(var(--t, 0s) + 3.2s + var(--k, 0) * .5s); }
.wc-js .wc-step.is-in .st-node { animation: st-node .9s ease both; animation-delay: calc(var(--t, 0s) + .35s + var(--i, 0) * .2s); }
.wc-js .wc-step.is-in .st-tick { animation: st-tick .5s ease both; animation-delay: calc(var(--t, 0s) + .7s + var(--i, 0) * .2s); }
.wc-js .wc-step.is-in .st-dot { animation: st-dots 1.4s ease-in-out infinite; animation-delay: calc(var(--t, 0s) + 1s + var(--i, 0) * .2s + var(--k, 0) * .18s); }
.wc-js .wc-step.is-in .st-lnk { animation: st-show .5s ease both; animation-delay: calc(var(--t, 0s) + .35s + var(--i, 0) * .2s); }
.wc-js .wc-step.is-in .st-flow { animation: st-flow 3s linear infinite; animation-delay: calc(var(--t, 0s) + 2.2s); }
.wc-js .e-con.wc-steps > .e-con:not(:last-child):not(.is-in) .wc-step__art::before, .wc-js .e-con.wc-steps > .e-con:not(:last-child):not(.is-in) .wc-step__art::after { opacity: 0; }
.wc-js .e-con.wc-steps > .e-con.is-in:not(:last-child) .wc-step__art::after { animation: st-line .8s var(--ease) both, st-march 1.2s linear infinite; animation-delay: calc(var(--t, 0s) + 1.6s), calc(var(--t, 0s) + 2.4s); }
.wc-js .e-con.wc-steps > .e-con.is-in:not(:last-child) .wc-step__art::before { animation: st-show .4s ease both; animation-delay: calc(var(--t, 0s) + 2.3s); }
@keyframes st-pop { from { opacity: 0; transform: translateY(10px) scale(.86); } to { opacity: 1; transform: none; } }
@keyframes st-grow { from { opacity: 0; transform: scaleX(0); } to { opacity: 1; transform: none; } }
@keyframes st-rise { from { opacity: 0; transform: scaleY(0); } to { opacity: 1; transform: none; } }
@keyframes st-breath { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(.78); } }
@keyframes st-node { 0% { opacity: 0; transform: scale(.5); fill: #fff; } 45% { opacity: 1; transform: none; fill: #fff; } 100% { opacity: 1; transform: none; fill: var(--c-artichoke); } }
@keyframes st-tick { from { stroke-dashoffset: 24; } to { stroke-dashoffset: 0; } }
@keyframes st-dots { 0%, 70%, 100% { opacity: .25; } 35% { opacity: 1; } }
@keyframes st-flow { to { stroke-dashoffset: -93; } }
@keyframes st-line { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0); } }
@keyframes st-march { to { background-position: 12px 0; } }
@keyframes st-show { from { opacity: 0; } }

@media (max-width: 800px) {
  .e-con.wc-wrap .e-con.wc-steps { display: flex; flex-direction: row; flex-wrap: nowrap; align-items: stretch; gap: 14px; width: calc(100% + 48px); max-width: none; margin-inline: -24px; padding: 4px 24px 16px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: 24px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .e-con.wc-steps::-webkit-scrollbar { display: none; }
  .e-con.wc-wrap .e-con.wc-steps > .e-con { flex: 0 0 min(80vw, 330px); scroll-snap-align: start; --t: 0s; }
  .e-con.wc-steps > .e-con:nth-child(n) { --t: 0s; }
  .e-con.wc-steps > .e-con .wc-step__art::before, .e-con.wc-steps > .e-con .wc-step__art::after { display: none; }
}

/* exemple de programme : bloc noir, trois colonnes qui se tracent à l'apparition */
.wc-example { display: grid; grid-template-columns: 1fr auto; grid-template-areas: "h link" "days days"; align-items: end; gap: 6px 28px; padding: clamp(28px, 4.2vw, 56px); border-radius: 32px; background: #fff; color: var(--c-kombu); border: 1px solid rgba(29,46,29,.16); }
.wc-example__h { grid-area: h; margin: 0; font: 400 clamp(1.6rem, 2.8vw, 2.3rem)/1.1 var(--font); letter-spacing: -.03em; color: var(--c-jungle); }
.wc-example__h span { display: block; margin-bottom: 10px; font: 400 .8rem/1.4 var(--mono); letter-spacing: 0; color: var(--c-hunter); }
.wc-example > .wc-link { grid-area: link; margin: 0 0 6px; color: var(--c-jungle); }
.wc-example .wc-days { grid-area: days; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0 44px; margin-top: clamp(30px, 3.6vw, 48px); }
.wc-example .wc-day { position: relative; grid-template-columns: 1fr; gap: 14px; align-content: start; padding: 26px 0 8px; border: 0; border-radius: 0; background: transparent; color: var(--c-kombu); }
.wc-example .wc-day::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: rgba(29,46,29,.22); transform-origin: left; }
.wc-example .wc-day::after { content: ""; position: absolute; top: -4px; left: 0; width: 9px; height: 9px; border-radius: 50%; background: var(--c-artichoke); }
.wc-example .wc-day__n { padding: 0; color: var(--c-hunter); }
.wc-example .wc-day ul { padding: 0; list-style: none; }
.wc-example .wc-day li { position: relative; padding-left: 20px; margin-bottom: 9px; color: var(--c-kombu); }
.wc-example .wc-day li::before { content: ""; position: absolute; left: 0; top: .66em; width: 7px; height: 7px; border-radius: 50%; background: var(--c-artichoke); }
.wc-js .wc-example.is-in .wc-day::before { animation: st-draw .9s var(--ease) both; animation-delay: calc(.2s + var(--n, 0) * .28s); }
.wc-js .wc-example.is-in .wc-day::after { animation: st-pin .5s var(--ease) both; animation-delay: calc(.2s + var(--n, 0) * .28s); }
.wc-js .wc-example.is-in .wc-day__n, .wc-js .wc-example.is-in .wc-day li { animation: st-up .6s var(--ease) both; animation-delay: calc(.45s + var(--n, 0) * .28s + var(--m, 0) * .09s); }
@keyframes st-draw { from { transform: scaleX(0); } }
@keyframes st-pin { from { transform: scale(0); } }
@keyframes st-up { from { opacity: 0; transform: translateY(10px); } }
@media (max-width: 700px) { .wc-example { grid-template-columns: 1fr; grid-template-areas: "h" "days" "link"; } .wc-example > .wc-link { margin: 18px 0 0; } .wc-example .wc-days { gap: 0; } }

@media (prefers-reduced-motion: reduce) {
  .wc-js .wc-step .st-pop, .wc-js .wc-step .st-grow, .wc-js .wc-step .st-rise, .wc-js .wc-step .st-node, .wc-js .wc-step .st-tick, .wc-js .wc-step .st-dot, .wc-js .wc-step .st-flow,
  .wc-js .wc-step .wc-step__art::before, .wc-js .wc-step .wc-step__art::after, .wc-js .wc-example .wc-day::before, .wc-js .wc-example .wc-day::after, .wc-js .wc-example .wc-day__n, .wc-js .wc-example .wc-day li { animation: none !important; }
  .st-node { fill: var(--c-artichoke); }
  .wc-js .e-con.wc-steps > .e-con:not(:last-child):not(.is-in) .wc-step__art::before, .wc-js .e-con.wc-steps > .e-con:not(:last-child):not(.is-in) .wc-step__art::after { opacity: .5; }
}
.wc-dark .wc-day { background: rgba(255,255,255,.07); color: #fff; }
.wc-dark .wc-day__n { color: var(--c-artichoke); }
.wc-link { display: inline-block; margin-top: 18px; font: 400 .85rem var(--mono); color: inherit; text-decoration: underline; text-underline-offset: .25em; text-decoration-color: rgba(137,171,137,.6); transition: color .3s var(--ease), text-decoration-color .3s var(--ease); }
.wc-link:hover { color: var(--c-artichoke); text-decoration-color: currentColor; }

/* prochaines sessions (n'apparaît que s'il y en a) */
.wc-slist { border-top: 1px solid rgba(48,77,48,.2); }
.wc-srow { display: grid; grid-template-columns: 1.1fr 2.2fr 1fr .9fr auto; align-items: center; gap: 12px 24px; padding: 20px 0; border-bottom: 1px solid rgba(48,77,48,.2); }
.wc-srow__d { font: 400 .85rem var(--mono); color: var(--c-hunter); }
.wc-srow__t { font-size: 1.2rem; letter-spacing: -.02em; line-height: 1.2; color: var(--c-jungle); transition: color .25s; }
.wc-srow__t:hover { color: var(--c-hunter); }
.wc-srow__v, .wc-srow__p { font: 400 .85rem var(--mono); color: var(--c-kombu); }
.wc-srow .wc-btn { padding: 14px 22px; }
@media (max-width: 900px) { .wc-srow { grid-template-columns: 1fr 1fr; } .wc-srow__t { grid-column: 1 / -1; order: -1; } .wc-srow .wc-btn { grid-column: 1 / -1; } }

/* questions fréquentes */
.wc-faq { display: grid; gap: 10px; max-width: 880px; margin-inline: auto; }
.wc-faq details { border-radius: 20px; background: #fff; border: 1px solid rgba(29,46,29,.14); }
.wc-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 22px 26px; cursor: pointer; list-style: none; font-size: 1.1rem; line-height: 1.35; color: var(--c-jungle); transition: color .25s; }
.wc-faq summary::-webkit-details-marker { display: none; }
.wc-faq summary:hover { color: var(--c-hunter); }
.wc-faq summary::after { content: ""; flex: none; width: 22px; height: 22px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22' fill='none' stroke='%23304d30' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M11 4v14M4 11h14'/%3E%3C/svg%3E") center / contain no-repeat; transition: transform .4s var(--ease); }
.wc-faq details[open] summary::after { transform: rotate(45deg); }
.wc-faq details[data-state="open"] summary::after { transform: rotate(45deg); }
.wc-faq details[data-state="closed"] summary::after { transform: none; }
.wc-faq details > div { padding: 0 26px 24px; }
.wc-faq details p { margin: 0 0 .8em; }
.wc-faq details p:last-child { margin-bottom: 0; }

/* formulaires : listes déroulantes soulignées */
.wpcf7 select { width: 100%; margin-top: 8px; padding: 12px 26px 12px 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23304d30' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 4px center; color: var(--ink); font: 300 1rem var(--font); box-shadow: none; appearance: none; -webkit-appearance: none; transition: border-color .3s var(--ease), box-shadow .3s var(--ease); }
.wc-dark .wpcf7 select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23ffffff' stroke-width='1.6'/%3E%3C/svg%3E"); }
.wpcf7 select:focus { outline: 0; border-bottom-color: var(--c-artichoke); box-shadow: 0 1px 0 var(--c-artichoke); }
.wpcf7 select option { color: var(--c-jungle); background: #fff; }

/* pied de page : certification, déclaration d'activité, coordonnées */
.wc-footer__proof { margin: 22px 0 0; font: 400 .85rem/1.6 var(--mono); color: var(--c-kombu); }
.wc-footer__proof--small { margin-top: 6px; font-size: .78rem; color: var(--c-hunter); }

/* héros sur mobile : le contenu est plus long qu'avant (surtitre, deux boutons, légende, réassurance) */
@media (max-width: 700px) {
  .e-con.wc-hero { justify-content: flex-start; padding-top: calc(var(--ab) + 108px); padding-bottom: 40px; }
  .e-con.wc-hero .elementor-widget-text-editor.wc-eyebrow { font-size: .8rem; }
  .e-con.wc-hero .elementor-widget-text-editor { font-size: 1rem; }
}


/* ==========================================================================
   Retours client (30-31/10/2026) et textes de la présentation 4 Impact Academy V1
   ========================================================================== */

/* ---------- Marque : « Academy » sous le mot-symbole, comme sur la présentation ---------- */
.wc-brand__name { flex-direction: column; align-items: flex-start; gap: 4px; }
.wc-brand__academy { display: block; font: 600 .78rem/1 var(--font); letter-spacing: .02em; color: var(--c-accent); transition: color .4s var(--ease); }
.wc-header.is-scrolled .wc-brand__academy, html.wc-menu-open .wc-header .wc-brand__academy { color: var(--c-accent); }
/* accueil : en-tête posé sur le fond vert foncé */
body:not(.wc-top-light) .wc-header:not(.is-scrolled) .wc-brand__academy { color: var(--c-artichoke); }
body:not(.wc-top-light) .wc-header:not(.is-scrolled) .wc-burger { background: var(--c-artichoke); box-shadow: none; }
body:not(.wc-top-light) .wc-header:not(.is-scrolled) .wc-burger__lines i { background: var(--c-jungle); }
html.wc-menu-open body:not(.wc-top-light) .wc-header .wc-burger { background: var(--c-jungle); }
html.wc-menu-open body:not(.wc-top-light) .wc-header .wc-burger__lines i { background: #fff; }

/* ---------- Pied de page allégé (slogan et mention des marques retirés : la mention est dans les Mentions légales) ---------- */
.wc-footer__legal { padding-top: 24px; border-top: 1px solid rgba(29,46,29,.14); }

/* ---------- Héros de l'accueil : fond noir, la scène de 4impact.ai dans ses couleurs d'origine (retour client du 10/11/2026, à la place du vert foncé) ---------- */
.e-con.wc-hero.wc-dark { background: #000; color: #fff; }
.e-con.wc-hero.wc-dark .elementor-widget-text-editor { color: var(--c-soft); }
.wc-hero.wc-dark .wc-art--spline { --ws-filter: none; --ws-opacity: 1; }
.wc-hero.wc-dark .wc-art--spline .wa-still { filter: invert(1) hue-rotate(180deg); mix-blend-mode: screen; } /* l'image fixe est préparée pour un fond blanc : on la rend à son fond noir */
/* la flèche animée du bas du héros, comme sur 4impact.ai : un trait vert clair descend, la pointe apparaît, puis le trait se retire ; elle mène aux formations */
.e-con.wc-hero > .elementor-widget.wc-scrollcue-w { position: absolute; left: 50%; bottom: 0; z-index: 2; width: auto; margin: 0; translate: -50% 0; }
.wc-scrollcue { position: relative; display: block; width: 44px; height: 112px; }
.wc-scrollcue__bar { position: absolute; left: 50%; top: 0; bottom: 0; width: 2px; margin-left: -1px; background: var(--c-artichoke); transform-origin: top; animation: wc-cue-bar 2.6s var(--ease-io) infinite; }
.wc-scrollcue__arrow { position: absolute; left: 50%; bottom: 3px; width: 14px; height: 14px; margin-left: -7px; border-right: 2px solid var(--c-artichoke); border-bottom: 2px solid var(--c-artichoke); transform: rotate(45deg); animation: wc-cue-arrow 2.6s var(--ease-io) infinite; }
@keyframes wc-cue-bar { 0% { transform: scaleY(0); transform-origin: top; } 45%, 62% { transform: scaleY(1); transform-origin: top; } 63% { transform: scaleY(1); transform-origin: bottom; } 100% { transform: scaleY(0); transform-origin: bottom; } }
@keyframes wc-cue-arrow { 0%, 36% { opacity: 0; translate: 0 -10px; } 48%, 70% { opacity: 1; translate: 0 0; } 100% { opacity: 0; translate: 0 6px; } }
@media (prefers-reduced-motion: reduce) { .wc-scrollcue__bar, .wc-scrollcue__arrow { animation: none; } }
@media (max-width: 700px), (max-height: 640px) { .wc-scrollcue { height: 72px; } }
body .elementor .wc-hero.wc-dark .wc-bw .elementor-button { --bb: #fff; --bf: var(--c-jungle); --bbh: var(--c-artichoke); --bfh: var(--c-jungle); }
body .elementor .wc-herostage .wc-hero.wc-dark .wc-hero__slide .wc-bw--line .elementor-button { --bb: transparent; --bf: #fff; --bbh: #fff; --bfh: var(--c-jungle); box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.7); }

/* ---------- Cartes en grille : constat, approche, modalités ---------- */
.e-con.wc-cards3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: clamp(20px, 3vw, 40px); }
.e-con.wc-cards3--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.e-con.wc-wrap .e-con.wc-card3 { padding: 30px 28px; border-radius: 22px; background: #fff; border: 1px solid rgba(29,46,29,.12); gap: 10px; justify-content: flex-start; }
.wc-card3 h3 { margin: 0; font-size: 1.35rem; letter-spacing: -.02em; line-height: 1.15; }
.wc-card3 p { margin: 0; font-size: .98rem; }
.e-con .wc-ico-w { margin: 0 0 6px; }
.wc-ico { width: 34px; height: 34px; display: block; fill: none; stroke: var(--c-accent); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.wc-card3__n { font: 600 2rem/1 var(--font); letter-spacing: -.02em; color: var(--c-artichoke); }
/* bloc vert foncé, comme la page « Notre approche » de la présentation */
.wc-forest, .e-con.wc-forest { background: var(--c-g4); }
.e-con.wc-wrap .e-con.wc-cards3--dark .e-con.wc-card3 { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.12); }
@media (max-width: 1000px) { .e-con.wc-cards3--four { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 800px) { .e-con.wc-cards3, .e-con.wc-cards3--four { grid-template-columns: 1fr; } }

/* ---------- Qui sommes-nous : texte à gauche, chiffres à droite ---------- */
.e-con.wc-about { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
.e-con.wc-about__text { gap: 12px; }
.wc-about__lead { font-size: 1.22rem; line-height: 1.5; color: var(--c-jungle); }
.wc-tiles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.wc-tiles li { margin: 0; padding: 28px 26px; border-radius: 22px; background: var(--c-mint); display: flex; flex-direction: column; gap: 8px; }
.wc-tiles li.wc-tiles__wide { grid-column: 1 / -1; }
.wc-tiles b { font: 600 clamp(2.4rem, 4vw, 3.4rem)/1 var(--font); letter-spacing: -.03em; color: var(--c-g3); }
.wc-tiles span { font-size: 1rem; line-height: 1.4; color: var(--c-jungle); }
@media (max-width: 900px) { .e-con.wc-about { grid-template-columns: 1fr; } }
/* sans les chiffres (retirés le 10/11/2026) : le texte seul, sur une largeur de lecture */
.e-con.wc-about:not(:has(.wc-about__tiles)) { grid-template-columns: minmax(0, 1fr); }
.e-con.wc-about:not(:has(.wc-about__tiles)) .e-con.wc-about__text { max-width: 860px; }

/* ---------- Nos preuves terrain : trois cartes à bandeau vert ---------- */
.e-con.wc-proofs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: clamp(20px, 3vw, 40px); }
.e-con.wc-wrap .e-con.wc-proof { padding: 0; gap: 0; border-radius: 22px; overflow: hidden; background: #fff; border: 1px solid rgba(29,46,29,.12); justify-content: flex-start; }
.wc-proof > .elementor-widget-heading { margin: 0; padding: 20px 26px; background: var(--c-g3); }
.wc-proof--2 > .elementor-widget-heading { background: var(--c-g2); }
.wc-proof--3 > .elementor-widget-heading { background: var(--c-g4); }
body .elementor .wc-light .wc-proof .elementor-heading-title { margin: 0; font-size: 1.3rem; color: #fff; }
.wc-proof > .elementor-widget-text-editor { padding: 22px 26px 26px; }
.wc-proof__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }
.wc-proof__list li { margin: 0; display: grid; gap: 2px; }
.wc-proof__list b { font-weight: 600; color: var(--c-jungle); }
.wc-proof__list span { font-size: .95rem; line-height: 1.5; color: var(--c-kombu); }
@media (max-width: 900px) { .e-con.wc-proofs { grid-template-columns: 1fr; } }

/* ---------- Le déroulé : quatre étapes, du vert clair au vert foncé (la dernière en plein) ---------- */
.e-con.wc-flow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px; margin: clamp(20px, 3vw, 40px) 0 clamp(48px, 6vw, 80px); }
.e-con.wc-wrap .e-con.wc-flow__step { position: relative; padding: 30px 26px; border-radius: 22px; background: #fff; border: 1px solid rgba(29,46,29,.12); gap: 10px; justify-content: flex-start; }
.wc-flow__n { font: 600 2.4rem/1 var(--font); letter-spacing: -.02em; color: var(--c-g1); }
.wc-flow__step:nth-child(2) .wc-flow__n { color: var(--c-g2); }
.wc-flow__step:nth-child(3) .wc-flow__n { color: var(--c-g3); }
.wc-flow__step h3 { margin: 0; font-size: 1.35rem; }
.wc-flow__step p { margin: 0; font-size: .98rem; }
.e-con.wc-wrap .e-con.wc-flow__step:last-child { background: var(--c-g4); border-color: var(--c-g4); }
.wc-flow__step:last-child .wc-flow__n { color: var(--c-artichoke); }
body .elementor .wc-light .wc-flow__step:last-child .elementor-heading-title { color: #fff; }
.wc-flow__step:last-child p { color: var(--c-soft); }
.e-con.wc-flow__step:not(:last-child)::after { content: ""; position: absolute; top: 50%; right: -33px; width: 26px; height: 14px; transform: translateY(-50%); background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 14'%3E%3Cpath d='M0 5h16V0l10 7-10 7V9H0z' fill='%2389ab89'/%3E%3C/svg%3E"); }
@media (max-width: 1000px) { .e-con.wc-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } .e-con.wc-flow__step::after { display: none; } }
@media (max-width: 600px) { .e-con.wc-flow { grid-template-columns: 1fr; } }

/* ---------- Photos des pages « Qui sommes-nous ? » et « Contacter l'équipe » (Médias → Photos et logos) : trois photos en mosaïque ---------- */
.wc-photos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: clamp(150px, 17vw, 240px); gap: 14px; }
.wc-photos__item { margin: 0; border-radius: 20px; overflow: hidden; background: var(--c-grey); }
.wc-photos__item img { display: block; width: 100%; height: 100%; object-fit: cover; }
.wc-photos--n1 { grid-template-columns: minmax(0, 1fr); grid-auto-rows: clamp(220px, 34vw, 480px); }
.wc-photos--n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: clamp(200px, 26vw, 380px); }
.wc-photos--n3 .wc-photos__item:first-child { grid-column: span 2; grid-row: span 2; }
.wc-photos--n4 { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); grid-auto-rows: auto; } /* quatre photos ou plus : une grille régulière */
.wc-photos--n4 .wc-photos__item { aspect-ratio: 4 / 3; }
@media (max-width: 700px) {
  .wc-photos:not(.wc-photos--n1):not(.wc-photos--n4) { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 150px; }
  .wc-photos--n3 .wc-photos__item:first-child { grid-column: 1 / -1; grid-row: auto; }
}
/* « Qui sommes-nous ? » : la mosaïque prend toute la largeur, au-dessus du texte */
.wc-prose .wc-photos { width: min(1240px, 100vw - 64px); margin: 0 0 clamp(40px, 5vw, 64px); } /* le texte part du bord gauche du cadre : la mosaïque s'étend jusqu'à son bord droit (16 px de marge pour une barre de défilement) */

/* ---------- Ils nous ont fait confiance : logos des clients (Médias → Photos et logos), en gris, en couleur au survol ---------- */
.wc-trust .wc-wrap { text-align: center; }
.wc-trust__logos { list-style: none; margin: clamp(24px, 3vw, 40px) 0 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: clamp(28px, 4vw, 64px); }
.wc-trust__logos li { margin: 0; }
.wc-trust__logos img { display: block; width: auto; height: auto; max-width: 170px; max-height: 56px; object-fit: contain; filter: grayscale(1); opacity: .75; transition: filter .4s var(--ease), opacity .4s var(--ease); }
.wc-trust__logos li:hover img { filter: none; opacity: 1; }
/* en attendant les logos : six cases en pointillé, en rangées pleines (6, puis 3 + 3, puis 2 + 2 + 2) */
.wc-trust__logos:has(> .wc-trust__ph) { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 16px; max-width: 1100px; margin-inline: auto; }
.wc-trust__logos .wc-trust__ph { display: grid; place-items: center; height: 64px; border: 1.5px dashed rgba(29,46,29,.28); border-radius: 14px; font: 400 .78rem var(--font); letter-spacing: .04em; color: rgba(48,77,48,.6); }
@media (max-width: 1000px) { .wc-trust__logos:has(> .wc-trust__ph) { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 600px) { .wc-trust__logos:has(> .wc-trust__ph) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } .wc-trust__logos .wc-trust__ph { height: 56px; } }

/* ---------- Contacter l'équipe : fond noir et poussière verte, au format du formulaire de 4impact.ai (accueil, page Formations, page Contact ; retour client du 10/11/2026) ---------- */
.e-con.wc-contactblk { background: #000 url("assets/img/fond-formulaire.webp") left center / cover no-repeat; color: #fff; }
body .elementor .wc-contactblk .elementor-heading-title { font-size: clamp(2.4rem, 4.6vw, 4rem); line-height: 1.02; }
.e-con.wc-contactblk .elementor-widget-text-editor { max-width: 460px; color: #fff; }
.wc-contactblk .wc-coords { margin-top: 18px; }
.wc-contactblk .wc-coords > div { border-bottom-color: rgba(255,255,255,.2); }
.wc-contactblk .wc-coords dt { color: var(--c-artichoke); }
.wc-contactblk .wc-coords dd, .wc-contactblk .wc-coords a { color: #fff; }
.wc-contactblk .wpcf7 label { font-size: .95rem; }
/* page Contact : le bloc ouvre la page, sous l'en-tête flottant (logo et menu en clair, voir functions.php) */
.e-con.wc-contactblk--page { min-height: 100vh; min-height: 100svh; padding-block: calc(var(--ab) + 150px) clamp(64px, 7vw, 108px); }
@media (max-width: 900px) { .e-con.wc-contactblk { background-position: 30% top; } .e-con.wc-contactblk--page { padding-top: calc(var(--ab) + 120px); } }

/* ---------- Fiche formation : compléments (parcours, avant / pendant / après, ce que les équipes emportent) ---------- */
.wc-more h2 { margin-top: 1.6em; }
.wc-more .wc-path { list-style: none; margin: 18px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.wc-more .wc-path li { margin: 0; padding: 16px 18px; border-radius: 16px; background: var(--c-g1); color: #fff; font-size: .95rem; line-height: 1.4; }
.wc-more .wc-path li::before { display: none; }
.wc-more .wc-path li:nth-child(2) { background: var(--c-g2); }
.wc-more .wc-path li:nth-child(3) { background: var(--c-g3); }
.wc-more .wc-path li:nth-child(4) { background: var(--c-g4); }
.wc-more .wc-path b { display: block; margin-bottom: 2px; font-weight: 600; }
.wc-more .wc-final { margin-top: 18px; padding: 16px 20px; border-radius: 16px; background: var(--c-g4); color: #fff; }
.wc-more .wc-final b { margin-right: 8px; font-size: .78rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--c-artichoke); }

/* ---------- Cartes des parcours : le nom en grand, en vert, sur fond blanc ; Netvibes aussi depuis le 10/11/2026 (plus de logo) ---------- */
.wc-visual.wc-visual--name { display: grid; place-items: center; padding: 8%; background: #fff; }
.wc-card .wc-visual.wc-visual--name { background: #fff; } /* comme la carte Netvibes (logo sur fond blanc) */
.wc-visual--name span { font: 600 clamp(1.7rem, 2.6vw, 2.5rem)/1.05 var(--font); letter-spacing: -.03em; text-align: center; text-wrap: balance; color: var(--c-accent); }
