/* ==========================================================================
   IRI Conseil — feuille de style
   Une seule couleur d'accent (bordeaux), des neutres chauds, deux familles.
   ========================================================================== */

/* --- 1. Jetons ----------------------------------------------------------- */
:root{
  --bordeaux:#66140F;
  --bordeaux-2:#84241D;
  --rose:#D9B9B3;          /* accent sur fond sombre */
  --ink:#1B1715;
  --ink-2:#3B3431;
  --mute:#6C625D;
  --line:#E5DDD7;
  --line-dark:rgba(255,255,255,.14);
  --paper:#FBF9F6;
  --ivory:#F3EDE7;
  --night:#161210;

  --serif:"Newsreader","PT Serif",Georgia,serif;
  --sans:"Geist","Helvetica Neue",Arial,sans-serif;
  --logo:"PT Serif",Georgia,serif;

  --container:1280px;
  --gutter:clamp(20px,5vw,56px);
  --section:clamp(88px,11vw,152px);
  --gap:clamp(16px,2.2vw,32px);       /* gouttière de la grille 12 colonnes */
  --s1:8px;--s2:16px;--s3:24px;--s4:32px;--s5:48px;--s6:clamp(56px,7vw,88px);

  --ease:cubic-bezier(.2,.7,.2,1);
  --z-header:50;
  --z-menu:60;
  --z-grain:70;
}

/* --- 2. Base ------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-size:1.0625rem;line-height:1.65;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
[hidden]{display:none!important}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
p{margin:0 0 1.1em;text-wrap:pretty}
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;margin:0;line-height:1.08;letter-spacing:-.015em;text-wrap:balance;font-optical-sizing:auto}
ul,ol{margin:0;padding:0;list-style:none}
:focus-visible{outline:2px solid var(--bordeaux);outline-offset:4px}
.on-dark :focus-visible,.band :focus-visible,.hero :focus-visible{outline-color:#fff}
::selection{background:var(--bordeaux);color:#fff}

/* grain discret : casse la planéité numérique */
body::after{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:var(--z-grain);opacity:.045;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.skip{position:absolute;left:-9999px;top:12px;z-index:100;background:var(--bordeaux);color:#fff;padding:10px 16px;text-decoration:none;font-weight:500}
.skip:focus{left:12px}

.container{max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}
.section{padding:var(--section) 0 calc(var(--section) * 1.08)}
.section--ivory{background:var(--ivory)}
.section--tight{padding-top:calc(var(--section) * .6)}
.section + .section:not(.section--ivory):not(.band){padding-top:0}

/* utilitaires — une seule échelle d'espacement */
.mt-2{margin-top:var(--s2)}.mt-3{margin-top:var(--s3)}.mt-4{margin-top:var(--s4)}.mt-5{margin-top:var(--s5)}.mt-6{margin-top:var(--s6)}
.mb-4{margin-bottom:var(--s4)}.mb-6{margin-bottom:var(--s6)}
.narrow{max-width:640px}
.accent{color:var(--bordeaux)}
.ratio-54{aspect-ratio:5/4!important}
.section--page{padding-top:clamp(150px,16vw,200px)}
.section--fill{min-height:70vh}

/* --- 3. Typographie utilitaire ------------------------------------------ */
.eyebrow{
  display:flex;align-items:center;gap:14px;
  font-family:var(--serif);font-style:italic;font-size:1.05rem;color:var(--bordeaux);margin:0 0 22px;
}
.eyebrow::before{content:"";width:32px;height:1px;background:currentColor;flex:none}
.on-dark .eyebrow,.band .eyebrow,.hero .eyebrow{color:var(--rose)}

.display{font-size:clamp(2.6rem,6vw,5.2rem);line-height:1.02;letter-spacing:-.025em;font-weight:400}
.h1{font-size:clamp(2.3rem,4.8vw,4rem);letter-spacing:-.022em;font-weight:400}
.h2{font-size:clamp(1.9rem,3.3vw,2.85rem);font-weight:400}
.h3{font-size:clamp(1.35rem,1.9vw,1.65rem);font-weight:500}
.h1 em,.h2 em,.display em{font-style:italic;color:var(--bordeaux)}
.on-dark .h1 em,.on-dark .h2 em,.band .h1 em,.band .h2 em,.band .display em,.hero .display em,.hero .h1 em{color:var(--rose)}

/* harmonisation des photos : saturation contenue, même température */
.figure img,.lever__img img,.case__media img,.course__media img{filter:saturate(.8) contrast(1.03)}
.hero__media img,.band__media img{filter:saturate(.7)}
.hero--mono .hero__media img{filter:grayscale(1) contrast(1.08)}

.lede{font-size:clamp(1.12rem,1.5vw,1.3rem);line-height:1.6;color:var(--ink-2);max-width:58ch}
.muted{color:var(--mute)}
.measure{max-width:62ch}
.statement{font-family:var(--serif);font-size:clamp(1.6rem,2.9vw,2.5rem);line-height:1.3;letter-spacing:-.012em;font-weight:400;max-width:24ch;margin:0}
.statement b{font-weight:500;color:var(--bordeaux)}
.quote{font-family:var(--serif);font-style:italic;font-size:clamp(1.35rem,2.3vw,1.9rem);line-height:1.35;color:var(--bordeaux);max-width:40ch;margin:0}
.quote--short{max-width:30ch}
.quote--sm{font-size:1.4rem}
.small{font-size:.9rem}

/* --- 4. Boutons et liens ------------------------------------------------ */
.btn{
  display:inline-flex;align-items:center;gap:12px;
  background:var(--bordeaux);color:#fff;text-decoration:none;
  font-family:var(--sans);font-weight:500;font-size:.98rem;letter-spacing:.005em;
  padding:16px 26px;border:1px solid var(--bordeaux);border-radius:2px;cursor:pointer;
  transition:background .25s var(--ease),border-color .25s var(--ease),transform .15s var(--ease);
}
.btn:hover{background:var(--bordeaux-2);border-color:var(--bordeaux-2)}
.btn:active{transform:translateY(1px)}
.btn .arr{transition:transform .3s var(--ease)}
.btn:hover .arr{transform:translateX(4px)}
.btn--light{background:#fff;color:var(--ink);border-color:#fff}
.btn--light:hover{background:var(--ivory);border-color:var(--ivory)}
.btn--ghost{background:transparent;color:inherit;border-color:currentColor}
.btn--ghost:hover{background:rgba(255,255,255,.1);border-color:currentColor}

.link{
  display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-weight:500;color:var(--bordeaux);
  background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;padding-bottom:4px;
  transition:background-size .35s var(--ease);
}
.link:hover{background-size:0 1px;background-position:100% 100%}
.link .arr{transition:transform .3s var(--ease)}
.link:hover .arr{transform:translateX(4px)}
.on-dark .link,.band .link,.hero .link{color:#fff}

/* --- 5. En-tête --------------------------------------------------------- */
.header{position:fixed;top:0;left:0;right:0;z-index:var(--z-header);color:#fff;transition:background .35s var(--ease),color .35s var(--ease),box-shadow .35s var(--ease)}
.header__bar{max-width:var(--container);margin:0 auto;padding:0 var(--gutter);height:88px;display:flex;align-items:center;gap:40px;transition:height .35s var(--ease)}
.header.is-solid{background:rgba(251,249,246,.94);color:var(--ink);box-shadow:0 1px 0 var(--line);-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px)}
.header.is-solid .header__bar{height:72px}

.brand{display:block;text-decoration:none;flex:none}
.brand svg{height:44px;width:auto;overflow:visible;display:block}
.brand .l1{font-family:var(--logo);font-weight:700;font-size:32.36px;fill:currentColor;opacity:.72}
.brand .l2{font-family:var(--logo);font-weight:700;font-size:31.34px;fill:currentColor}
.brand rect{fill:currentColor}
.header.is-solid .brand .l1{fill:#6F6F6E;opacity:1}
.header.is-solid .brand .l2,.header.is-solid .brand rect{fill:var(--bordeaux)}

.nav{margin-left:auto;display:flex;align-items:center;gap:34px}
.nav__list{display:flex;gap:30px}
.nav__list a{position:relative;text-decoration:none;font-size:.95rem;font-weight:450;padding:6px 0;opacity:.88;transition:opacity .2s}
.nav__list a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
.nav__list a:hover{opacity:1}
.nav__list a:hover::after{transform:scaleX(1);transform-origin:left}
.nav__list a[aria-current="page"]{opacity:1}
.nav__list a[aria-current="page"]::after{transform:scaleX(1);background:var(--rose)}
.header.is-solid .nav__list a[aria-current="page"]{color:var(--bordeaux)}
.header.is-solid .nav__list a[aria-current="page"]::after{background:var(--bordeaux)}
.nav__cta{padding:11px 20px;font-size:.92rem}
.header:not(.is-solid) .nav__cta{background:transparent;border-color:rgba(255,255,255,.55)}
.header:not(.is-solid) .nav__cta:hover{background:#fff;color:var(--ink);border-color:#fff}

.burger{display:none;margin-left:auto;width:44px;height:44px;background:none;border:0;color:inherit;cursor:pointer;position:relative}
.burger span{position:absolute;left:10px;right:10px;height:1.5px;background:currentColor;transition:transform .35s var(--ease),opacity .2s}
.burger span:nth-child(1){top:16px}
.burger span:nth-child(2){top:22px}
.burger span:nth-child(3){top:28px}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

body.header-solid .header{background:rgba(251,249,246,.94);color:var(--ink);box-shadow:0 1px 0 var(--line)}
body.header-solid .header .brand .l1{fill:#6F6F6E;opacity:1}
body.header-solid .header .brand .l2,body.header-solid .header .brand rect{fill:var(--bordeaux)}
body.header-solid .nav__list a[aria-current="page"]{color:var(--bordeaux)}

/* --- 6. Héros ----------------------------------------------------------- */
.hero{position:relative;color:#fff;display:flex;align-items:flex-end;overflow:hidden;isolation:isolate;min-height:78vh;min-height:78dvh;padding:160px 0 clamp(56px,8vw,96px)}
.hero--full{min-height:100vh;min-height:100dvh}
.hero__media,.band__media{position:absolute;inset:-12% 0;z-index:-2;will-change:transform}
.hero__media img,.band__media img{width:100%;height:100%;object-fit:cover}
.hero__shade{position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(180deg,rgba(22,18,16,.62) 0%,rgba(22,18,16,.28) 30%,rgba(22,18,16,.55) 58%,rgba(22,18,16,.9) 100%),
    linear-gradient(90deg,rgba(22,18,16,.55) 0%,rgba(22,18,16,0) 65%)}
.hero__inner{width:100%}
.hero .lede{color:rgba(255,255,255,.84);margin-top:26px}
.hero__actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px 30px;margin-top:40px}
.hero__foot{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-top:clamp(48px,7vw,88px);padding-top:22px;border-top:1px solid var(--line-dark);font-size:.9rem;color:rgba(255,255,255,.72)}
.hero__foot b{color:#fff;font-weight:500}
.hero__foot p{margin:0}
.scroll-cue{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:rgba(255,255,255,.8)}
.scroll-cue i{display:block;width:1px;height:38px;background:rgba(255,255,255,.5);position:relative;overflow:hidden}
.scroll-cue i::after{content:"";position:absolute;left:0;top:-40%;width:1px;height:40%;background:#fff;animation:cue 2.4s var(--ease) infinite}
@keyframes cue{to{top:100%}}

.crumbs{display:flex;gap:10px;font-size:.88rem;color:rgba(255,255,255,.7);margin-bottom:28px}
.crumbs a{text-decoration:none}
.crumbs a:hover{color:#fff}

/* --- 7. Bandeaux parallaxe --------------------------------------------- */
.band{position:relative;overflow:hidden;isolation:isolate;color:#fff;padding:clamp(110px,15vw,200px) 0 clamp(118px,16vw,210px)}
.band__shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(22,18,16,.78),rgba(22,18,16,.7) 45%,rgba(22,18,16,.86))}
.band__shade--left{background:linear-gradient(90deg,rgba(22,18,16,.92) 0%,rgba(22,18,16,.8) 45%,rgba(22,18,16,.45) 100%)}
.band .lede{color:rgba(255,255,255,.82)}
.band .quote{color:#fff}
.band--short{padding:clamp(80px,10vw,130px) 0}

/* --- 8. Mises en page ------------------------------------------------- */
/* Grille de référence : 12 colonnes, gouttière --gap.
   Colonne de gauche 1→7, colonne de droite 8→12 : même axe partout. */
.split,.head,.cta,.case,.course,.lever,.index li,.audiences,.pairs,.footer__top{
  display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap)}
.split{align-items:end}
.split > :first-child{grid-column:1/7}
.split > :last-child{grid-column:8/13}
.split--form > :first-child{grid-column:1/6}
.split--form > :last-child{grid-column:7/13}
.split--top{align-items:start}
.split--center{align-items:center}
.head{align-items:end;margin-bottom:clamp(48px,6vw,80px)}
.head > :first-child{grid-column:1/8}
.head > :last-child{grid-column:8/13}
.head > :only-child{grid-column:1/11}
.head p{margin:0}
.sticky{position:sticky;top:120px}

/* figure éditoriale */
.figure{margin:0;position:relative}
.figure img{width:100%;aspect-ratio:4/5;object-fit:cover}
.figure--wide img{aspect-ratio:3/2}
.figure--land img{aspect-ratio:16/10}
.figure figcaption{font-size:.85rem;color:var(--mute);margin-top:12px;display:flex;gap:10px}
.figure figcaption::before{content:"";width:18px;height:1px;background:var(--bordeaux);margin-top:.75em;flex:none}
.offset{margin-top:clamp(-120px,-8vw,-60px)}
.frame{position:relative;isolation:isolate}
.frame::before{content:"";position:absolute;inset:auto auto -18px -18px;width:46%;height:46%;border-left:1px solid var(--bordeaux);border-bottom:1px solid var(--bordeaux);z-index:-1}

/* --- 9. Leviers (accueil) --------------------------------------------- */
.levers{border-top:1px solid var(--line)}
.lever{padding:clamp(36px,4.5vw,56px) 0;border-bottom:1px solid var(--line);align-items:baseline}
.lever__num{grid-column:1/2}
.lever > div:not(.lever__img){grid-column:2/8}
.lever__img{grid-column:8/13;align-self:start}
.lever__num{font-family:var(--serif);font-style:italic;color:var(--bordeaux);font-size:1.05rem}
.lever__word{font-size:clamp(2.4rem,4.6vw,3.9rem);font-weight:400;letter-spacing:-.03em;color:var(--ink)}
.lever__tag{font-family:var(--serif);font-style:italic;font-size:1.15rem;color:var(--bordeaux);margin:14px 0 18px}
.lever p{color:var(--mute);max-width:52ch}
.lever__img{overflow:hidden}
.lever__img img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform 1.2s var(--ease)}
.lever:hover .lever__img img{transform:scale(1.04)}

/* --- 10. Index (listes numérotées) ------------------------------------ */
.index{border-top:1px solid var(--line);counter-reset:i}
.index li{padding:26px 0;border-bottom:1px solid var(--line);counter-increment:i;align-items:baseline}
.index li::before{grid-column:1/2}
.index li > h3{grid-column:2/8}
.index li > p{grid-column:8/13}
.index li::before{content:counter(i,decimal-leading-zero);font-family:var(--serif);font-style:italic;color:var(--bordeaux)}
.index h3{font-family:var(--serif);font-size:1.3rem;font-weight:500;letter-spacing:-.01em}
.index p{margin:0;color:var(--mute);max-width:60ch}
.index li > div{grid-column:2/13}
.index li > div h3{margin-bottom:8px}
.index .deliv{display:block;margin-top:10px;font-size:.9rem;color:var(--ink-2)}
.index .deliv b{font-weight:500;color:var(--ink)}
.on-dark .index,.on-dark .index li{border-color:var(--line-dark)}
.on-dark .index p{color:rgba(255,255,255,.66)}

/* liste simple à filet */
.ticks li{position:relative;padding:14px 0 14px 30px;border-top:1px solid var(--line);color:var(--ink-2)}
.ticks li:last-child{border-bottom:1px solid var(--line)}
.ticks li::before{content:"";position:absolute;left:0;top:1.45em;width:14px;height:1px;background:var(--bordeaux)}

/* --- 11. Pôles ----------------------------------------------------------- */
.poles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto auto 1fr auto;border-top:1px solid var(--line)}
.pole{position:relative;display:grid;grid-row:span 4;grid-template-rows:subgrid;align-items:start;padding:40px clamp(20px,3vw,40px) 44px 0;text-decoration:none;color:inherit}
.pole + .pole{padding-left:clamp(20px,3vw,40px);border-left:1px solid var(--line)}
.pole__count{font-family:var(--serif);font-style:italic;color:var(--bordeaux);padding-bottom:56px}
.pole h3{font-size:clamp(1.5rem,2.2vw,1.95rem);font-weight:400;margin-bottom:14px}
.pole p{color:var(--mute);margin:0 0 26px;max-width:38ch}
.pole .link{justify-self:start;align-self:end}
.pole::after{content:"";position:absolute;left:0;right:0;top:-1px;height:2px;background:var(--bordeaux);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.pole + .pole::after{left:-1px}
.pole:hover::after{transform:scaleX(1)}

/* sous-navigation collante */
.subnav{position:sticky;top:72px;z-index:20;background:rgba(251,249,246,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.subnav ul{display:flex;gap:34px;overflow-x:auto;scrollbar-width:none}
.subnav ul::-webkit-scrollbar{display:none}
.subnav a{display:block;padding:18px 0;white-space:nowrap;text-decoration:none;font-size:.95rem;color:var(--mute);border-bottom:1px solid transparent;margin-bottom:-1px;transition:color .2s,border-color .2s}
.subnav a:hover{color:var(--ink)}
.subnav a.is-active{color:var(--bordeaux);border-color:var(--bordeaux)}

/* --- 12. Méthode -------------------------------------------------------- */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:var(--gap);margin-top:clamp(48px,6vw,72px);counter-reset:s}
.step{position:relative;padding:34px 0 0;counter-increment:s}
.step::before{content:"";position:absolute;left:0;right:calc(var(--gap) * -1);top:0;height:1px;background:var(--line-dark)}
.step:last-child::before{right:0}
.step::after{content:"";position:absolute;left:0;top:-4px;width:9px;height:9px;background:var(--rose);border-radius:50%}
.step__n{font-family:var(--serif);font-style:italic;color:var(--rose);font-size:.98rem}
.step h3{font-size:clamp(1.5rem,2.2vw,2rem);font-weight:400;margin:10px 0 14px}
.step p{color:rgba(255,255,255,.72);font-size:.98rem;margin:0}
.steps--light .step::before{background:var(--line)}
.steps--light .step::after{background:var(--bordeaux)}
.steps--light .step__n{color:var(--bordeaux)}
.steps--light .step p{color:var(--mute)}
.step ul{margin-top:16px;font-size:.92rem;color:var(--ink-2)}
.step ul li{padding:6px 0;border-top:1px solid var(--line)}

/* --- 13. Publics -------------------------------------------------------- */
.audiences{border-bottom:1px solid var(--line)}
.audiences > :nth-child(odd),.pairs > :nth-child(odd){grid-column:1/7}
.audiences > :nth-child(even),.pairs > :nth-child(even){grid-column:8/13}
.audiences > :nth-last-child(-n+2),.pairs > :nth-last-child(-n+2){padding-bottom:40px}
.audience{padding:34px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:44px 1fr;gap:18px;align-items:baseline}
.audience span{font-family:var(--serif);font-style:italic;color:var(--bordeaux)}
.audience h3{font-size:1.35rem;font-weight:500;margin-bottom:10px}
.audience p{margin:0;color:var(--mute)}

/* --- 14. Logos ---------------------------------------------------------- */
.logos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.logos li{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:18px;padding:40px 20px 32px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:190px;text-align:center}
.logos img{width:100%;object-fit:contain;filter:grayscale(1) contrast(1.05);opacity:.72;transition:opacity .3s,filter .3s;mix-blend-mode:multiply}
.logos li:hover img{opacity:1;filter:none}
.logos small{font-size:.8rem;color:var(--mute);line-height:1.35;max-width:22ch}
.logos--strip{grid-template-columns:repeat(8,minmax(0,1fr));border:0}
.logos--strip li{border:0;min-height:0;padding:10px;justify-content:center}
.logos--strip img{height:60px;max-height:none;max-width:110px}
.logos:not(.logos--strip) img{height:72px;max-height:none;max-width:150px}
.logos li.is-wide img{padding:6px 0}

/* --- 15. Cas d'étude ---------------------------------------------------- */
.case{padding:clamp(64px,8vw,110px) 0;border-top:1px solid var(--line);align-items:start}
.case > .case__media{grid-column:1/6}
.case > :not(.case__media){grid-column:7/13}
.case--rev > .case__media{grid-column:8/13;grid-row:1}
.case--rev > :not(.case__media){grid-column:1/7;grid-row:1}
.case:first-of-type{border-top:0;padding-top:0}
.case__media{position:sticky;top:110px}
.case__media img{width:100%;aspect-ratio:4/5;object-fit:cover}
.case__num{font-family:var(--serif);font-style:italic;color:var(--bordeaux);margin-bottom:16px}
.case h2{font-size:clamp(1.7rem,2.7vw,2.4rem);font-weight:400;margin-bottom:34px;max-width:22ch}
.case dl{margin:0}
.case dt{font-family:var(--serif);font-style:italic;font-size:1.1rem;color:var(--bordeaux);padding-top:22px;border-top:1px solid var(--line)}
.case dd{margin:8px 0 22px;color:var(--ink-2)}

/* conclusion de section */
.closing{margin-top:clamp(64px,8vw,110px);padding-top:clamp(48px,6vw,72px);border-top:1px solid var(--ink);display:grid;grid-template-columns:minmax(0,.5fr) minmax(0,1.5fr);gap:40px}
.closing .quote{max-width:52ch}
@media (max-width:960px){.closing{grid-template-columns:1fr;gap:16px}}

/* --- 16. Formations ----------------------------------------------------- */
.course{padding:clamp(56px,7vw,96px) 0;border-top:1px solid var(--line);align-items:start}
.course > .course__media{grid-column:1/6}
.course > :not(.course__media){grid-column:7/13}
.course:nth-child(even) > .course__media{grid-column:8/13;grid-row:1}
.course:nth-child(even) > :not(.course__media){grid-column:1/7;grid-row:1}
.course:first-child{border-top:0;padding-top:0}
.course__media img{width:100%;aspect-ratio:5/4;object-fit:cover}
.course__tag{font-family:var(--serif);font-style:italic;color:var(--bordeaux);margin-bottom:12px}
.course h3{font-size:clamp(1.6rem,2.5vw,2.2rem);font-weight:400;margin-bottom:20px}
.course .out{font-family:var(--serif);font-style:italic;font-size:1.2rem;color:var(--ink);border-left:2px solid var(--bordeaux);padding-left:18px;margin:26px 0 0}
.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;margin-top:26px}
.facts div{padding:14px 0;border-top:1px solid var(--line)}
.facts dt{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);margin-bottom:4px}
.facts dd{margin:0;font-size:.97rem}

/* acronyme */
.acro{border-top:1px solid var(--line)}
.acro li{display:grid;grid-template-columns:clamp(56px,7vw,88px) minmax(0,1fr);gap:22px;padding:22px 0;border-bottom:1px solid var(--line);align-items:baseline}
.acro .l{font-family:var(--serif);font-size:clamp(2.2rem,3.6vw,3rem);line-height:1;color:var(--bordeaux)}
.acro h4{font-family:var(--sans);font-size:1.02rem;font-weight:600;margin-bottom:4px;letter-spacing:0}
.acro p{margin:0;color:var(--mute)}

/* tableau */
.table{width:100%;border-collapse:collapse;margin-top:12px}
.table th{text-align:left;font-weight:500;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);padding:0 24px 14px 0;border-bottom:1px solid var(--ink)}
.table td{padding:22px 24px 22px 0;border-bottom:1px solid var(--line);vertical-align:top;color:var(--ink-2)}
.table td:first-child{color:var(--mute);width:22%}
.table td.rep{font-family:var(--serif);font-size:1.2rem;color:var(--bordeaux);width:26%}

/* --- 17. Valeurs / grilles 2 colonnes ---------------------------------- */
.pairs{border-bottom:1px solid var(--line)}
.pairs > div{padding:30px 0 34px;border-top:1px solid var(--line)}
.pairs h3{font-size:1.45rem;font-weight:500;margin-bottom:10px}
.pairs p{margin:0;color:var(--mute)}
.on-dark .pairs > div{border-color:var(--line-dark)}
.on-dark .pairs p{color:rgba(255,255,255,.7)}

.chips{display:flex;flex-wrap:wrap;gap:10px}
.chips span{border:1px solid var(--line);padding:9px 16px;font-size:.92rem;color:var(--bordeaux);background:var(--paper)}

/* --- 18. Formulaires --------------------------------------------------- */
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 28px}
.field{display:flex;flex-direction:column;gap:8px}
.field--full{grid-column:1/-1}
.field label,.field .label{font-size:.85rem;font-weight:500;color:var(--ink-2)}
.field label .opt{font-weight:400;color:var(--mute)}
.input,.select,.textarea{
  width:100%;font:inherit;font-size:1rem;color:var(--ink);background:transparent;
  border:0;border-bottom:1px solid #CFC5BE;border-radius:0;padding:12px 0;
  transition:border-color .25s var(--ease),box-shadow .25s var(--ease);
}
.textarea{resize:vertical;min-height:140px;border:1px solid #CFC5BE;padding:14px 16px}
.textarea:focus{box-shadow:inset 0 0 0 1px var(--bordeaux)}
.select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%2366140F' stroke-width='1.4'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 4px center;padding-right:28px;cursor:pointer}
.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--bordeaux);box-shadow:0 1px 0 var(--bordeaux)}
.field.is-invalid .input,.field.is-invalid .textarea{border-color:#A3261C;box-shadow:0 1px 0 #A3261C}
.field .err{font-size:.84rem;color:#A3261C;min-height:0}
.file{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:18px 20px;border:1px dashed #CFC5BE}
.file input{position:absolute;width:1px;height:1px;opacity:0}
.file label{cursor:pointer;color:var(--bordeaux);font-weight:500;font-size:.95rem;border-bottom:1px solid currentColor;padding-bottom:2px}
.file input:focus-visible + label{outline:2px solid var(--bordeaux);outline-offset:4px}
.file .name{font-size:.9rem;color:var(--mute)}
.form__foot{grid-column:1/-1;display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:6px}
.form__note{font-size:.9rem;color:var(--mute);margin:0}
.form__note.is-ok{color:var(--ink)}
.form__note.is-err{color:#A3261C}

/* champ piège anti-robots : hors écran, jamais display:none */
.trap{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.btn[disabled]{opacity:.6;cursor:progress}

/* --- 19. Contact -------------------------------------------------------- */
.coords{display:grid;gap:0}
.coords div{padding:22px 0;border-top:1px solid var(--line)}
.coords dt{font-family:var(--serif);font-style:italic;color:var(--bordeaux);margin-bottom:6px}
.coords dd{margin:0;font-size:1.08rem}
.coords a{text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .3s var(--ease)}
.coords a:hover{background-size:100% 1px}

/* --- 20. Bandeau d'appel final ----------------------------------------- */
.cta{align-items:end}
.cta > :first-child{grid-column:1/8}
.cta > :last-child{grid-column:9/13;justify-self:end;text-align:right}
.cta .lede{margin-bottom:var(--s3);margin-left:auto}
.cta .h1{max-width:16ch}

/* --- 21. Pied de page --------------------------------------------------- */
.footer{position:relative;margin-top:-1px;background:var(--night);color:rgba(255,255,255,.7);padding:clamp(72px,9vw,110px) 0 36px;font-size:.95rem}
.footer a{text-decoration:none;transition:color .2s}
.footer a:hover{color:#fff}
.footer__top{row-gap:40px;padding-bottom:56px;border-bottom:1px solid var(--line-dark)}
.footer__top > :nth-child(1){grid-column:1/7}
.footer__top > :nth-child(2){grid-column:8/10}
.footer__top > :nth-child(3){grid-column:10/13}
.footer .brand svg{height:50px}
.footer .brand .l1{fill:#A49893;opacity:1}
.footer .brand .l2,.footer .brand rect{fill:#fff}
.footer__sign{font-family:var(--serif);font-style:italic;font-size:1.2rem;color:var(--rose);margin:26px 0 0;max-width:28ch}
.footer h2{font-family:var(--sans);font-size:.8rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.56);margin-bottom:18px}
.footer li{padding:5px 0}
.footer__bottom p{margin:0}
.footer__bottom{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-top:28px;font-size:.85rem;color:rgba(255,255,255,.56)}
.footer__bottom nav{display:flex;gap:24px}

/* --- 22. Apparition au défilement ------------------------------------- */
.js [data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:var(--d,0s)}
.js [data-reveal].is-in{opacity:1;transform:none}
.js [data-reveal="fade"]{transform:none}

/* --- 23. Pages légales ------------------------------------------------- */
.prose{max-width:70ch}
.prose h2{font-size:1.6rem;font-weight:500;margin:52px 0 14px}
.prose h2:first-child{margin-top:0}
.prose p{color:var(--ink-2)}

/* --- 24. Adaptatif ----------------------------------------------------- */
@media (max-width:1100px){
  .nav__list{gap:22px}
  .logos--strip{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:28px}
}
@media (max-width:960px){
  .burger{display:block}
  .nav{position:fixed;inset:0;z-index:var(--z-menu);background:var(--night);color:#fff;flex-direction:column;align-items:flex-start;justify-content:center;gap:40px;padding:0 var(--gutter);
       opacity:0;visibility:hidden;transition:opacity .35s var(--ease),visibility .35s}
  .nav.is-open{opacity:1;visibility:visible}
  .nav__list{flex-direction:column;gap:6px}
  .nav__list a{font-family:var(--serif);font-size:2.1rem;font-weight:400;letter-spacing:-.01em;opacity:1}
  .nav__list a[aria-current="page"]{color:var(--rose)!important}
  .nav__list a::after{display:none}
  .nav__cta{background:var(--bordeaux)!important;border-color:var(--bordeaux)!important;color:#fff!important}
  .burger{position:relative;z-index:calc(var(--z-menu) + 1)}
  body.menu-open .header{color:#fff;background:transparent;box-shadow:none;backdrop-filter:none}
  body.menu-open{overflow:hidden}

  .split,.head,.cta,.case,.course,.audiences,.pairs{grid-template-columns:1fr;align-items:start}
  .split > *,.head > *,.cta > *,.case > *,.course > *,.audiences > *,.pairs > *{grid-column:1/-1!important;grid-row:auto!important}
  .head{row-gap:20px}
  .split{row-gap:48px}
  .case,.course{row-gap:36px}
  .cta{row-gap:28px}
  .cta > :last-child{justify-self:start;text-align:left}
  .cta .lede{margin-left:0}
  .audiences > :nth-last-child(2),.pairs > :nth-last-child(2){padding-bottom:34px}
  .lever{row-gap:24px}
  .lever__img img{aspect-ratio:3/2}
  .sticky,.case__media{position:static}
  .lever{grid-template-columns:44px minmax(0,1fr)}
  .lever > div:not(.lever__img),.lever__img{grid-column:2/3}
  .poles{grid-template-columns:1fr}
  .pole,.pole + .pole{padding:34px 0 38px;border-left:0;border-top:1px solid var(--line)}
  .pole:first-child{border-top:0}
  .pole__count{padding-bottom:26px}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:44px}
  .case__media img{aspect-ratio:3/2}
  .offset{margin-top:0}
  .index li{grid-template-columns:44px minmax(0,1fr);row-gap:10px}
  .index li > h3,.index li > p,.index li > div{grid-column:2/3}
}
@media (max-width:640px){
  body{font-size:1rem}
  .header__bar{height:72px}
  .brand svg{height:36px}
  .audiences,.pairs,.form,.facts{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .logos{grid-template-columns:repeat(2,minmax(0,1fr))}
  .logos li{min-height:150px;padding:24px 12px}
  .hero__foot{flex-direction:column;align-items:flex-start}
  .table thead{display:none}
  .table tr{display:block;padding:18px 0;border-bottom:1px solid var(--line)}
  .table td{display:block;border:0;padding:4px 0;width:auto!important}
  .footer__top{grid-template-columns:1fr}
  .footer__top > *{grid-column:1/-1!important}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js [data-reveal]{opacity:1;transform:none}
  .hero__media,.band__media{inset:0}
}
