
.duo{position:relative;overflow:hidden;margin:0;isolation:isolate;}
.duo img{width:100%;height:100%;object-fit:cover;display:block;
  filter:grayscale(1) contrast(1.32) brightness(.92);}
.duo::before{content:'';position:absolute;inset:0;background:#0E3A79;mix-blend-mode:multiply;}
.duo::after{content:'';position:absolute;inset:0;background:#DDBA2A;mix-blend-mode:screen;opacity:.18;}
/* Grain : masque la montée en taille d'une photo de 320 px de large. */
.duo .grain,.grain{position:absolute;inset:0;pointer-events:none;opacity:.16;
  background-image:radial-gradient(rgba(255,255,255,.6) .5px,transparent .5px);
  background-size:3px 3px;mix-blend-mode:overlay;}
:root{--sp:0;--alt:#EFF3F8;}
.fx__in{max-width:1140px;margin:0 auto;padding:0 28px;}
.fx__hero{padding:110px 0 96px;}
.fx__hero h1{font-weight:800;font-size:clamp(2.2rem,6vw,4.4rem);line-height:1.04;letter-spacing:-.036em;
  color:var(--navy-800);max-width:17ch;}
.fx__phrase{margin-top:26px;font-size:1.14rem;line-height:1.56;max-width:52ch;color:var(--ink-700);}
.fx__acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px;}
/* Séquence épinglée : hauteur de piste = durée du défilement latéral. */
.fx__pin{height:320vh;background:var(--navy-800);color:#fff;}
.fx__sticky{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;
  justify-content:center;gap:40px;overflow:hidden;}
.fx__head{max-width:1140px;margin:0 auto;padding:0 28px;width:100%;}
.fx__head h2{font-weight:800;font-size:clamp(1.9rem,4.4vw,3rem);line-height:1.04;letter-spacing:-.032em;}
.fx__head p{margin-top:14px;color:var(--navy-200);max-width:56ch;}
.fx__track{display:flex;gap:24px;padding:0 28px;will-change:transform;
  transform:translate3d(calc(var(--fx,0) * -1px),0,0);}
.fx__st{flex:0 0 min(420px,78vw);border:1px solid rgba(255,255,255,.2);padding:32px 30px;
  background:rgba(255,255,255,.05);border-radius:18px;}
.fx__st span{font-family:var(--font-display);font-weight:700;font-size:1.4rem;letter-spacing:-.024em;
  display:block;}
.fx__st p{margin-top:12px;color:var(--navy-200);}
.fx__st a{display:inline-block;margin-top:18px;font-family:var(--font-display);font-weight:600;
  font-size:.94rem;color:var(--gold-300);text-decoration:none;border-bottom:1.5px solid currentColor;}
.fx__s{padding:92px 0;}
.fx__s--alt{background:var(--alt);}
.fx__s h2{font-weight:800;font-size:clamp(1.9rem,4.2vw,2.8rem);line-height:1.06;letter-spacing:-.032em;
  color:var(--navy-800);}
.fx__sub{margin-top:16px;color:var(--ink-700);max-width:70ch;}
.fx__forms{margin-top:42px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
.fx__f{border:1px solid var(--ink-100);border-radius:16px;padding:26px 24px;text-decoration:none;
  background:#fff;display:flex;flex-direction:column;gap:8px;
  transition:transform .28s var(--ease),box-shadow .28s var(--ease);}
.fx__f:hover{transform:translateY(-4px);box-shadow:var(--sh-md);}
.fx__f b{font-family:var(--font-display);font-weight:700;font-size:1.05rem;color:var(--navy-800);}
.fx__f span{font-size:.88rem;color:var(--ink-500);font-variant-numeric:tabular-nums;}
.fx__f em{font-style:normal;font-weight:600;font-size:.93rem;color:var(--gold-700);}
.fx__split{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:52px;align-items:center;}
.fx__split svg{width:100%;height:auto;}
@media(max-width:900px){.fx__forms{grid-template-columns:minmax(0,1fr);}
  .fx__split{grid-template-columns:minmax(0,1fr);gap:32px;}}
/* Sur petit écran, on abandonne l'épinglage : la piste devient un simple défilement tactile. */
@media(max-width:760px){
  .fx__pin{height:auto;padding:64px 0;}
  .fx__sticky{position:static;height:auto;gap:28px;}
  .fx__track{transform:none !important;overflow-x:auto;scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;padding-bottom:8px;}
  .fx__st{scroll-snap-align:start;}
}
