:root{--accent:#FFFFFF}
body{margin:0}
a{color:inherit}
html{scroll-behavior:smooth}
a:hover{opacity:.85}
.cd{font-family:'Open Sans',Arial,sans-serif;font-weight:700;text-transform:uppercase}
.h2{font-family:'Open Sans',Arial,sans-serif;font-weight:700;text-transform:uppercase;font-size:clamp(30px,4.6vw,56px);line-height:.92;margin:0 0 24px}
.btn{display:inline-block;color:#1A3DAD;font-weight:500;font-size:18px;padding:16px 32px;border-radius:999px;text-decoration:none;transition:transform .2s}
.btn:hover{transform:scale(1.04)}
.wrap{max-width:1140px;margin:0 auto}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}
.bento{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.span2{grid-column:span 2}
@media (max-width:700px){.span2{grid-column:auto}}
.tile{border-radius:28px;padding:32px;transition:transform .2s}
.tile:hover{transform:translateY(-4px)}
.out{color:transparent;-webkit-text-stroke:2px #6F8BE0}
.ck{list-style:none;margin:0;padding:0;display:grid;gap:14px;font-size:18px}
.ck li{padding-left:36px;position:relative;line-height:1.45}
.ck li::before{content:"✓";position:absolute;left:0;top:0;width:24px;height:24px;border-radius:50%;background:#1A3DAD;color:#fff;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center}
.ph{border:2px dashed #8FA0B5;border-radius:28px;display:flex;align-items:center;justify-content:center;text-align:center;color:#3C4A5C;padding:16px;min-height:110px;background:#fff}
.mq{display:flex;width:max-content;animation:mq 28s linear infinite}
.mq span{padding-right:40px;white-space:nowrap}
@keyframes mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes bn{0%,100%{transform:translateY(0)}50%{transform:translateY(-16px)}}
.spin{animation:spin 18s linear infinite}
.bn{animation:bn 1.6s ease-in-out infinite}
@keyframes sw{0%,100%{transform:rotate(-16deg)}50%{transform:rotate(-8deg)}}
.sw{transform:rotate(-12deg);transform-origin:50% 85%;animation:sw 4s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.mq,.spin,.bn,.sw{animation:none}}
.fab{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:20;box-shadow:0 8px 24px rgba(0,0,0,.35)}
details{border-bottom:1px solid #C9D3E0}
summary{cursor:pointer;min-height:44px;display:flex;align-items:center;justify-content:space-between;font-size:22px;font-weight:500;padding:14px 0;list-style:none}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-size:30px}
details[open] summary::after{content:"–"}
details p{margin:0 0 18px;line-height:1.6;color:#3C4A5C}
@keyframes rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@supports (animation-timeline: view()){.tile,.step{animation:rise linear backwards;animation-timeline:view();animation-range:entry 0% entry 40%}}
@media (prefers-reduced-motion:reduce){.tile,.step{animation:none}}
.lg{transition:transform .25s}
.lg:hover{transform:scale(1.06)}
.galwrap{position:relative}
.galscroll{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch}
.galscroll::-webkit-scrollbar{display:none}
.gal{display:flex;width:max-content}
.galbtn{position:absolute;top:50%;margin-top:-26px;width:52px;height:52px;border-radius:50%;background:#fff;color:#1A3DAD;border:0;padding:0;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center;z-index:2;transition:transform .2s}
.galbtn:hover{transform:scale(1.08)}
.galbtn:focus-visible{outline:3px solid #fff;outline-offset:3px}
.galbtn.l{left:16px}
.galbtn.r{right:16px}
@media (max-width:700px){.galbtn{width:44px;height:44px;margin-top:-22px}.galbtn.l{left:8px}.galbtn.r{right:8px}}
.gset{display:flex;gap:16px;padding-right:16px}
.gset img{height:320px;width:480px;object-fit:cover;border-radius:20px;display:block}
.gset img.p{width:213px}
.deco{position:absolute;right:56px;top:64px;width:64px}
@media (max-width:1000px){.deco{display:none}}
.vid{position:relative;width:100%;max-width:900px;aspect-ratio:16/9;border-radius:20px;overflow:hidden;background:#0B1A2C}
.vid iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vcard{position:relative;display:block;width:100%;max-width:900px;aspect-ratio:16/9;border-radius:20px;overflow:hidden;background:#1A3DAD;text-decoration:none;color:#fff}
.vcard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;opacity:.85;transition:transform .4s}
.vcard:hover img{transform:scale(1.04)}
.vplay{position:absolute;left:50%;top:50%;width:88px;height:88px;margin:-44px 0 0 -44px;border-radius:50%;background:#1A3DAD;border:3px solid #fff;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 30px rgba(0,0,0,.35)}
.vlabel{position:absolute;left:0;right:0;bottom:0;padding:48px 24px 20px;font-size:20px;font-weight:600;background:linear-gradient(transparent,rgba(11,26,44,.85))}
.vcard iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hd{position:sticky;top:0;z-index:10;background:#fff;color:#0B1A2C;box-shadow:0 1px 0 #DCE4FA}
.hd-top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:12px 32px}
.hd-r{display:flex;gap:16px;align-items:center;justify-self:end;grid-column:3;grid-row:1}
.hd-logo{display:block;grid-column:2;grid-row:1}
.hd-logo img{height:58px;width:auto;display:block}
.hd-nav{display:flex;justify-content:center;gap:4px;border-top:1px solid #DCE4FA;padding:0 16px;overflow-x:auto;scrollbar-width:none}
.hd-nav::-webkit-scrollbar{display:none}
.hd-nav a{padding:13px 16px 10px;font-size:15px;font-weight:600;text-decoration:none;white-space:nowrap;color:#0B1A2C;border-bottom:3px solid transparent;transition:color .2s,border-color .2s}
.hd-nav a:hover{color:#1A3DAD;border-bottom-color:#9FB3EA;opacity:1}
.hd-nav a[aria-current="true"]{color:#1A3DAD;border-bottom-color:#1A3DAD}
section[id]{scroll-margin-top:110px}
.sm-l{display:none}
@media (max-width:900px){.hd-top{padding:8px 16px}.hd-cta{display:none}.hd-logo img{height:44px}.hd-nav a{padding:12px 10px 9px;font-size:14px}section[id]{scroll-margin-top:100px}}
@media (max-width:700px){.hd-nav{overflow:visible;justify-content:space-between;gap:0;padding:0 6px}.hd-nav a{flex:1 1 auto;text-align:center;padding:12px 2px 9px;font-size:13px}.lg-l{display:none}.sm-l{display:inline}}

/* partenaires : logos un peu plus grands sur ordinateur */
#partenaires img.lg{height:var(--h);width:auto;display:block}
@media (min-width:900px){#partenaires img.lg{height:calc(var(--h)*1.12)}}
/* pied de page centré et compact */
.ft{background:#1A3DAD;color:#DCE4FA;padding:40px 24px 40px;text-align:center}
.ft-in{display:flex;flex-direction:column;align-items:center;gap:18px}
.ft-logo{background:#fff;border-radius:50%;width:84px;height:84px;display:flex;align-items:center;justify-content:center}
.ft-logo img{width:58px;height:auto;display:block}
.ft-name{display:flex;flex-direction:column;align-items:center;font-family:'Open Sans',Arial,sans-serif;color:#fff;line-height:1;margin:0}
.ft-p{font-weight:700;font-size:clamp(34px,4.6vw,52px);letter-spacing:.04em}
.ft-o{font-weight:300;font-size:clamp(14px,1.9vw,21px);letter-spacing:.62em;margin-top:8px;margin-right:-.62em}
.ft-links{display:flex;align-items:center;flex-wrap:wrap;gap:10px 28px;justify-content:center;font-size:15px}
.ft-copy{font-size:14px;opacity:.85;max-width:640px}
@media (max-width:700px){.ft{padding:36px 20px 96px}}
