@font-face{font-family:Nunito;src:url('assets/Nunito.woff2') format('woff2'),url('assets/Nunito.ttf') format('truetype');font-weight:200 1000;font-display:swap}
:root{--brand-blue:#2668de;--brand-ink:#0e1627;--brand-green:#22cc8c;--sortie:cubic-bezier(.23,1,.32,1)}html{scroll-padding-top:90px}body{margin:0;overflow-x:clip}.site-header,.site-footer{font-family:Nunito,system-ui,sans-serif;box-sizing:border-box}.site-header *,.site-footer *{box-sizing:border-box}.site-header{height:72px;padding:0 max(24px,calc((100vw - 1240px)/2));display:flex;gap:30px;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:50;background:rgba(255,255,255,.93);backdrop-filter:blur(18px);border-bottom:1px solid #dfe7f080;color:var(--brand-ink)}.site-brand{display:inline-flex;flex:none;text-decoration:none}.site-brand img{display:block;width:125px;height:auto}.site-nav{display:flex;align-items:center;gap:28px;font-size:14px;font-weight:800}.site-nav a{position:relative;text-decoration:none;color:#46556c;white-space:nowrap}.site-nav a:not(.header-cta)::after{content:'';position:absolute;left:0;right:0;height:2px;bottom:-8px;background:var(--brand-blue);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--sortie)}.site-nav a:hover,.site-nav a[aria-current]{color:var(--brand-blue)}.site-nav a:hover::after,.site-nav a[aria-current]::after{transform:scaleX(1)}.site-nav .lang-link{color:#6b7a90;font-size:12px}.site-nav .header-cta{background:var(--brand-ink);color:#fff;border:1px solid var(--brand-ink);border-radius:99px;padding:11px 17px;display:flex;gap:18px;align-items:center;transition:background-color .2s ease,transform .2s var(--sortie)}.site-nav .header-cta:hover{background:var(--brand-blue);color:white}.menu-toggle{display:none;border:1px solid #d8e0ec;border-radius:99px;padding:9px 15px;background:white;color:var(--brand-ink);font:800 14px Nunito,system-ui;cursor:pointer}.menu-toggle span{margin-left:10px}.site-footer{display:block;width:100%;margin:0;padding:48px max(24px,calc((100vw - 1240px)/2)) 30px;color:#53647b;background:#fff;font-size:14px;border-top:1px solid #e6ecf4}.footer-top,.footer-bottom{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.footer-top{padding-bottom:35px}.site-footer p{margin:0 auto 0 0}.site-footer a{color:inherit}.footer-bottom{padding-top:22px;border-top:1px solid #e6ecf4;font-size:12px}.footer-bottom>span{margin-right:auto}.site-footer button{border:0;background:transparent;color:#53647b;font:inherit;text-decoration:underline;text-underline-offset:4px;cursor:pointer;padding:0}.site-footer img{width:110px;height:auto}.skip{position:absolute;left:15px;top:-100px;z-index:1000;background:white;color:#0e1627;padding:12px 20px;border-radius:8px}.skip:focus{top:10px}:focus-visible{outline:3px solid #b97608;outline-offset:5px}[hidden]{display:none!important}button,a,input,summary{-webkit-tap-highlight-color:transparent}a,button{touch-action:manipulation}.english-mascots{display:flex;justify-content:center;background:#e7f6f0;border-radius:30px;margin-bottom:35px;padding-top:25px;overflow:hidden}.english-mascots img{width:38%;max-width:220px;animation:coach-drift 8s ease-in-out infinite}.english-mascots img+img{animation-delay:-3s}.no-motion *,.no-motion *::before,.no-motion *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.no-motion .reveal{opacity:1!important;transform:none!important}.no-motion{scroll-behavior:auto!important}
@keyframes coach-drift{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-9px) rotate(1deg)}}
@media(max-width:1000px){.site-header{padding-inline:24px}.site-nav{gap:18px}.site-nav .header-cta{font-size:12px;padding:10px 13px}.site-brand img{width:110px}}
@media(max-width:850px){.site-header{height:64px;gap:20px}.menu-toggle{display:block}.site-nav{display:none;position:absolute;left:14px;right:14px;top:70px;background:#fff;padding:22px;border:1px solid #dfe7f0;border-radius:22px;box-shadow:0 20px 50px #0e16271a;flex-direction:column;align-items:stretch;gap:4px;font-size:16px}.site-nav.open{display:flex}.site-nav a,.site-nav a:last-child{display:block;padding:12px 6px}.site-nav a::after{display:none}.site-nav .header-cta{margin-top:6px;text-align:center;padding:13px;font-size:15px;display:block}.site-nav .lang-link{font-size:14px}.site-footer{padding:35px 24px}.footer-top{gap:17px}.site-footer p{flex-basis:calc(100% - 140px);font-size:13px}.footer-bottom{gap:15px 20px}.footer-bottom>span{flex-basis:100%}.site-footer button{margin-left:0}html{scroll-padding-top:78px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation:none!important;transition:none!important}.js .reveal{opacity:1!important;transform:none!important}}

.site-footer [hidden]{display:none!important}.site-header .site-nav a:last-child{display:flex}.site-header .site-nav a{line-height:1.5}.site-nav .header-cta span{margin:0}@media(max-width:850px){.site-header .site-nav .header-cta{display:block}.site-header .site-nav .header-cta span{margin-left:12px}}

/* Les cercles décoratifs du haut dépassent légèrement sur un écran étroit : la page ne
   doit pas pouvoir glisser sur le côté pour autant. « clip » plutôt que « hidden » pour
   ne pas casser l'en-tête qui reste collé en haut. */
html{overflow-x:clip}

/* Toucher et survoler.

   Un bouton qu'on presse s'enfonce un peu, tout de suite : on sait que le geste a été reçu.
   Les survols qui soulèvent un élément ne jouent qu'avec une vraie souris. Sur un téléphone,
   le toucher déclenche le survol, et l'élément resterait soulevé après le passage du doigt.
   L'ordre compte : pressé, un bouton survolé s'enfonce au lieu de rester en l'air. */
@media (hover: hover) and (pointer: fine) {
  .button:hover { transform: translateY(-3px); box-shadow: 0 10px 25px #3b82f633; }
  .button:hover span { transform: translate(3px, -2px); }
  .site-nav .header-cta:hover { transform: translateY(-2px); }
  .stat:hover { transform: translateY(-5px); }
  .transparency-card:hover { transform: translateY(-5px); box-shadow: 0 18px 45px #152d5010; }
  .transparency-card:hover .card-link b { transform: translate(3px, -3px); }
  .step summary:hover > span,
  .step summary:hover h3 { transform: translateX(7px); }
  .toc a:hover { transform: translateY(-2px); }
}
.button:active,
.site-nav .header-cta:active,
.store-link:not([aria-disabled]):active,
.menu-toggle:active {
  transform: scale(0.97);
}
a.transparency-card:active {
  transform: scale(0.985);
}
.store-link,
.menu-toggle,
.toc a {
  transition: transform 0.16s var(--sortie), background-color 0.2s ease;
}
