:root {
  --navy:#05182a;
  --navy-2:#092239;
  --ink:#0b2440;
  --teal:#30c5a7;
  --teal-deep:#0aa98d;
  --mist:#f3f7f7;
  --line:#dce8e7;
  --white:#fff;
  --research-paper:#f7f9f8;
  --research-pale:#eaf6f3;
  --font-body:Montserrat,"Avenir Next",Avenir,Arial,sans-serif;
  --page-max:1320px;
  --page-gutter:80px;
  --tablet-max:760px;
  --tablet-gutter:40px;
  --mobile-max:520px;
  --mobile-gutter:30px;
  --space-xs:8px;
  --space-sm:12px;
  --space-md:16px;
  --space-lg:24px;
  --space-xl:32px;
  --space-2xl:48px;
  --space-3xl:64px;
  --section-space:88px;
  --research-section-space:var(--section-space);
  --mobile-section-space:56px;
  --section-inner-space:40px;
  --reading-section-space:40px;
  --heading-space:16px;
  --content-space:24px;
  --title-home:clamp(62px,5.4vw,88px);
  --title-research:clamp(58px,5.6vw,86px);
  --heading-large:clamp(42px,4.3vw,68px);
  --button-radius:8px;
  --chart-radius:24px;
  --study-radius:26px;
  --closing-radius:18px;
  --hero-image:url('/medias/images/hero.png');
  --recovery-image:url('/medias/images/recovery.png');
  --research-image:url('/medias/images/research-hero.png');
  --photo-cycle:22s;
  --recovery-photo-cycle:26s;
  --research-photo-cycle:24s;
  --home-signal-cycle:7.5s;
  --research-signal-cycle:9s;
  --cep-signal-cycle:15s;
  --title-enter:1.15s;
  --research-title-enter:1.2s;
  --reveal-opacity:.85s;
  --reveal-travel:1s;
}
:root{--deep:var(--teal-deep);--paper:var(--mist)}
@font-face{font-family:Montserrat;src:url('/medias/polices/Montserrat-Variable.woff2') format('woff2'),url('/medias/polices/Montserrat-Variable.ttf') format('truetype');font-weight:100 900;font-style:normal;font-display:swap}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.epsilon-footer{margin-top:var(--content-space);padding:var(--section-inner-space) 0 var(--space-xl);background:var(--research-paper);border-top:1px solid var(--line);color:var(--ink);font-family:var(--font-body)}
.epsilon-footer__inner{width:min(var(--page-max),calc(100% - var(--page-gutter)));margin-inline:auto}
.epsilon-footer__main{display:flex;align-items:center;justify-content:space-between;gap:var(--space-xl);padding-bottom:var(--space-xl)}
.epsilon-footer__identity{display:flex;flex-direction:column;gap:4px}
.epsilon-footer__brand{display:inline-flex;align-items:center;width:fit-content;min-height:32px;line-height:0}
.epsilon-footer__brand img{display:block;width:156px;height:auto}
.epsilon-footer__identity p{margin:0;color:#526777;font-size:14px;line-height:1.65}
.epsilon-footer__navigation{display:flex;align-items:flex-start;flex-wrap:wrap;gap:12px 32px}
.epsilon-footer__navigation a{display:inline-flex;align-items:center;gap:7px;min-height:44px;font-size:14px;font-weight:650;line-height:1.5;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:5px}
.epsilon-footer__research{display:flex;flex-direction:column;align-items:flex-start}
.epsilon-footer__research>a:first-child{min-height:34px;align-items:flex-start;padding-top:10px}
.epsilon-footer__navigation a.epsilon-footer__sublink{align-items:flex-start;min-height:32px;font-size:12px;font-weight:400;line-height:1.5;color:#526777}
.epsilon-footer__navigation a.epsilon-footer__sublink:hover,.epsilon-footer__navigation a.epsilon-footer__sublink[aria-current=page]{color:#076754;text-decoration-color:currentColor}
.epsilon-footer__navigation .external-arrow{width:16px;height:16px}
.epsilon-footer__navigation a:hover{color:#076754;text-decoration-color:currentColor}
.epsilon-footer a:focus-visible{outline:3px solid #076754;outline-offset:5px;border-radius:2px}
.epsilon-footer__bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 24px;padding-top:20px;padding-right:64px;border-top:1px solid var(--line);color:#526777;font-size:12px;line-height:1.75}
.epsilon-footer__bottom p{margin:0}
.epsilon-footer__legal{display:flex;align-items:center;flex-wrap:wrap;gap:8px 24px}
.epsilon-footer__legal a{display:inline-flex;align-items:center;min-height:44px;text-underline-offset:4px}
.epsilon-footer__legal a:hover,.epsilon-footer__legal a[aria-current=page]{color:#076754;text-decoration:underline}
.meeting-privacy{margin:10px 24px;font:12px/1.7 var(--font-body);color:#526777}
.meeting-privacy a{color:#076754;text-decoration:underline;text-underline-offset:3px}
@media(max-width:1000px){.epsilon-footer__inner{width:min(var(--page-max),calc(100% - var(--tablet-gutter)))}}
@media(max-width:640px){
  .epsilon-footer{padding:var(--space-xl) 0 86px}
  .epsilon-footer__inner{width:min(var(--mobile-max),calc(100% - var(--mobile-gutter)))}
  .epsilon-footer__main{align-items:flex-start;flex-direction:column;gap:20px;padding-bottom:22px}
  .epsilon-footer__identity{gap:4px}
  .epsilon-footer__identity p{font-size:13px}
  .epsilon-footer__navigation{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:8px 20px;width:100%}
  .epsilon-footer__bottom{align-items:flex-start;flex-direction:column;gap:14px;padding-right:0}
  .epsilon-footer__legal{gap:8px 20px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Une composition commune pour les conclusions Accueil et Recherche. */
.epsilon-closing {
  position:relative; display:grid; grid-template-columns:104px minmax(0,1fr) auto;
  gap:var(--content-space); align-items:center; min-height:230px; padding:var(--section-inner-space);
  margin-top:0; margin-bottom:0; border:1px solid var(--line);
  border-radius:22px; background:linear-gradient(120deg,#fff,#f1faf6);
  scroll-margin-top:35px;
}
.epsilon-closing__symbol { display:block; width:104px; height:104px; object-fit:contain; }
.epsilon-closing .epsilon-closing__copy { min-width:0; }
.epsilon-closing .epsilon-closing__copy h2 {
  margin:0; color:var(--ink); font-size:32px; font-weight:600;
  line-height:1.2; letter-spacing:-.04em;
}
.epsilon-closing .epsilon-closing__copy h2 em { color:var(--teal-deep); font-style:normal; }
.epsilon-closing .epsilon-closing__copy p {
  max-width:58ch; margin:12px 0 0; color:#5e7083; font-size:12px; line-height:1.65;
}
.epsilon-closing__action { justify-self:end; }
.epsilon-closing .epsilon-closing__action .button {
  display:inline-flex; align-items:center; justify-content:center; min-height:48px;
  padding:15px 20px; gap:24px; font-size:12px; line-height:1.6; text-align:center; white-space:nowrap;
}
@media(max-width:1100px) {
  .epsilon-closing { grid-template-columns:88px minmax(0,1fr) auto; gap:24px; padding:32px; }
  .epsilon-closing__symbol { width:88px; height:88px; }
  .epsilon-closing .epsilon-closing__copy h2 { font-size:30px; }
  .epsilon-closing__action { max-width:270px; }
}
@media(max-width:760px) {
  .epsilon-closing { grid-template-columns:minmax(0,1fr); padding:var(--space-lg); gap:var(--content-space); }
  .epsilon-closing__symbol { display:none; }
  .epsilon-closing .epsilon-closing__copy h2 { font-size:29px; }
  .epsilon-closing__action { justify-self:start; max-width:100%; }
  .epsilon-closing .epsilon-closing__action .button { white-space:normal; }
}

/* Une échelle commune ; les bannières conservent leur composition. */
@media(max-width:1000px){:root{--section-space:80px}}
@media(max-width:760px){:root{--section-space:56px;--section-inner-space:32px;--reading-section-space:32px;--content-space:20px}}

/* Un contour commun ; seule l’échéance active reçoit un fond. */
.chart-axis{position:relative;height:44px;margin:0 0 20px;isolation:isolate}
.chart-axis::before{content:"";position:absolute;inset:0 -8px;border:1px solid #dce6e4;border-radius:999px;background:#ffffffb3;pointer-events:none;z-index:-1}
.chart-axis button{position:absolute;top:0;left:0;transform:translateX(-50%);display:inline-flex;align-items:center;justify-content:center;gap:7px;width:var(--stage-width,23%);min-width:44px;min-height:44px;padding:8px 6px;border:0;border-radius:999px;background:transparent;color:#536a7c;font:650 11px var(--font-body);white-space:nowrap;cursor:pointer;isolation:isolate;transition:color .2s}
.chart-axis button::before{content:"";position:absolute;inset:5px 0;border-radius:inherit;background:transparent;z-index:-1;pointer-events:none;transition:background .2s}
.chart-axis button::after{content:"";width:3px;height:3px;flex-shrink:0;border-radius:50%;background:currentColor;opacity:.45}
.chart-axis button:hover{color:#076754}
.chart-axis button[aria-pressed="true"]{color:#fff;outline:none}
.chart-axis button[aria-pressed="true"]::before{background:var(--ink)}
.chart-axis button:focus-visible{outline:2px solid var(--teal-deep);outline-offset:1px}
