/* ===== Identité : logo, nom, pied de page ===== */
.hero{min-height:calc(100vh - 84px)}
.brand img{height:58px;width:58px;border-radius:50%}
.brand b,.fbrand b{font-family:'Source Sans 3',system-ui,sans-serif;font-weight:700;letter-spacing:.08em}
.brand b{font-size:1.4rem;line-height:1.1}
.fbrand img{height:56px;width:56px;background:none;padding:0;border-radius:50%}
.fbrand b{font-size:1.45rem}
.fcontact{list-style:none;margin-top:22px}
.fcontact li{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}
.fcontact svg{flex:0 0 16px;width:16px;height:16px;margin-top:4px;color:#7fb8e6}
.fcontact a:hover{color:#fff}

/* ===== Partenaires : bande défilante ===== */
.marquee{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px 0;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.marquee-track{display:flex;align-items:center;width:max-content;animation:marquee 40s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.logo-item{flex:0 0 auto;display:flex;align-items:center;margin-right:72px}
.logo-item img{height:96px;width:auto;max-width:300px;object-fit:contain;transition:transform .3s}
.logo-item:hover img{transform:scale(1.08)}
@keyframes marquee{to{transform:translateX(-50%)}}
@media (max-width:720px){.logo-item{margin-right:44px}.logo-item img{height:70px;max-width:210px}.marquee{padding:22px 0}}
@media (prefers-reduced-motion:reduce){.marquee-track{animation:none;flex-wrap:wrap;justify-content:center;width:auto}.marquee-track [aria-hidden]{display:none}}

/* ===== Partenaires ===== */
.partners-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.partner{display:flex;align-items:center;gap:18px;padding:22px 24px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);transition:.25s}
a.partner:hover,.partner:hover{border-color:transparent;box-shadow:var(--shadow);transform:translateY(-3px)}
.p-mark{flex:0 0 64px;height:64px;display:grid;place-items:center}
.p-mark img{max-width:64px;max-height:64px;object-fit:contain;filter:grayscale(1);opacity:.8;transition:.25s}
.partner:hover .p-mark img{filter:none;opacity:1}
.p-mark .mono{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--sky);color:var(--navy);font-family:'Source Sans 3',sans-serif;font-weight:700;font-size:.92rem;letter-spacing:.06em;border:1px solid #d6e6f3}
.partner b{display:block;color:var(--navy);font-size:.98rem;line-height:1.35;font-weight:600}
.partner small{display:block;margin-top:4px;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600}
.partner-cta{margin-top:40px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding:30px 34px;border-radius:var(--radius);background:var(--navy);color:#c9d6e8}
.partner-cta h3{color:#fff;font-size:1.4rem;margin-bottom:6px}
.partner-cta p{margin:0;max-width:62ch}
.partner-cta .btn{background:#fff;color:var(--navy)}
.partner-cta .btn:hover{background:var(--gold)}
@media (max-width:1080px){.partners-grid{grid-template-columns:1fr 1fr}}
@media (max-width:720px){.partners-grid{grid-template-columns:1fr}.partner-cta{padding:26px 22px}}

/* ===== Bandeau de consentement (Google Analytics) ===== */
.consent{position:fixed;left:16px;right:16px;bottom:16px;z-index:150;max-width:720px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 20px 50px -15px rgba(10,35,66,.4);padding:20px 24px;display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.consent p{flex:1 1 320px;font-size:.92rem;color:var(--ink);margin:0}
.consent div{display:flex;gap:10px}
.consent .btn{padding:10px 20px}
.btn-ghost-dark{border-color:var(--line);color:var(--navy);background:#fff}
.btn-ghost-dark:hover{border-color:var(--navy)}

/* ===== Animation d'ouverture ===== */
#preloader{position:fixed;inset:0;z-index:200;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;background:radial-gradient(circle at 50% 45%,#13386a 0%,var(--navy) 55%,#061730 100%);transition:opacity .8s ease,visibility .8s ease}
#preloader.done{opacity:0;visibility:hidden}
#preloader.done .pl-ring{transform:scale(1.08)}
.no-intro #preloader{display:none}
.pl-ring{position:relative;width:184px;height:184px;display:grid;place-items:center;transition:transform .8s ease}
.pl-ring::before{content:"";position:absolute;inset:0;border-radius:50%;
  background:conic-gradient(from 0deg,#007fff 0 30%,transparent 30% 34%,#f7d618 34% 64%,transparent 64% 68%,#ce1021 68% 96%,transparent 96%);
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 5px),#000 calc(100% - 4px));
  mask:radial-gradient(farthest-side,transparent calc(100% - 5px),#000 calc(100% - 4px));
  animation:pl-spin 1.6s linear infinite}
.pl-ring::after{content:"";position:absolute;inset:14px;border-radius:50%;border:1px solid rgba(255,255,255,.18);border-top-color:rgba(255,255,255,.7);animation:pl-spin 2.4s linear infinite reverse}
.pl-ring img{width:136px;height:136px;border-radius:50%;box-shadow:0 0 0 6px rgba(255,255,255,.06),0 20px 50px -10px rgba(0,0,0,.6);animation:pl-pop .9s cubic-bezier(.2,.9,.3,1.3) both}
.pl-name{text-align:center;color:#fff;animation:pl-up .8s .35s ease both}
.pl-name b{display:block;font-family:'Source Sans 3',system-ui,sans-serif;font-weight:700;font-size:1.6rem;letter-spacing:.32em;margin-right:-.32em}
.pl-name span{display:block;margin-top:6px;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:#9fb3cc}
@keyframes pl-spin{to{transform:rotate(360deg)}}
@keyframes pl-pop{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}
@keyframes pl-up{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.pl-ring::before,.pl-ring::after{animation:none}}
