/* ═══════════════════════════════════════════════
   MODA — charte graphique officielle
   Bleu MODA #102E93 · Noir #010101 (Black C)
   Gris Anthracite #3C3E42 (425C) · Ardoise Pâle #CED3DC (428C) · Neige #FCF7F8 (663C)
   Type : Poppins (Black pour les titres, Regular pour le texte)
═══════════════════════════════════════════════ */

:root{
  --accent:#102E93;        /* Bleu MODA */
  --black:#000000;
  --white:#FCF7F8;         /* Neige — Pantone 663 C */
  --grey:#CED3DC;          /* Ardoise Pâle — Pantone 428 C */
  --ink:#010101;           /* Noir — Pantone Black C */
  --anthracite:#3C3E42;    /* Gris Anthracite — Pantone 425 C */
  --mute:#6b6f76;
  --line:#dde1e6;
  --paper:#f4f2f1;

  /* gris métalisé — mode alu, dérivé de la charte (Ardoise Pâle / Gris Anthracite) */
  --alu-100:#f2f3f5;
  --alu-300:#CED3DC;
  --alu-500:#8b9099;
  --alu-700:#3C3E42;
  --alu-grad:linear-gradient(90deg,var(--alu-700) 0%,var(--alu-300) 45%,#fff 50%,var(--alu-300) 55%,var(--alu-700) 100%);

  --ease:cubic-bezier(.19,1,.22,1);
  --ease-out:cubic-bezier(.16,1,.3,1);

  --pad: clamp(20px, 6vw, 110px);
  --maxw: 1680px;
}

*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{
  font-family:"Poppins",system-ui,sans-serif;
  font-weight:400;
  background:var(--white);
  color:var(--ink);
  overflow-x:hidden;
  font-size:17px;
  line-height:1.6;
  cursor:none;
}
@media (hover:none){ body{cursor:auto} }

h1,h2,h3,h4,.nav__logo,.loader__word,.sf-brand__logo{font-weight:900}

img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul{list-style:none}
::selection{background:var(--accent);color:#fff}

/* ───── utilitaires typo ───── */
.section-tag{
  display:inline-flex;align-items:center;gap:10px;
  font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  color:var(--mute);
}
.section-tag i{width:26px;height:1px;background:var(--accent);display:inline-block}
.accent{color:var(--accent)}

/* ═══════════ CURSEUR ═══════════ */
.cursor{position:fixed;top:0;left:0;z-index:9999;pointer-events:none;mix-blend-mode:difference}
.cursor__dot{position:fixed;width:6px;height:6px;border-radius:50%;background:#fff;
  transform:translate(-50%,-50%);transition:width .25s,height .25s,opacity .25s}
.cursor__ring{position:fixed;width:44px;height:44px;border:1px solid rgba(255,255,255,.6);border-radius:50%;
  transform:translate(-50%,-50%);transition:width .3s var(--ease),height .3s var(--ease),opacity .3s,background .3s}
.cursor__label{position:fixed;transform:translate(-50%,-50%);color:#fff;font-size:13px;font-weight:600;opacity:0;transition:opacity .2s}
body.cur-link .cursor__ring{width:64px;height:64px;background:rgba(255,255,255,.08)}
body.cur-link .cursor__dot{opacity:0}
body.cur-link .cursor__label{opacity:1}
@media (hover:none){.cursor{display:none}}

/* ═══════════ LOADER ═══════════ */
.loader{position:fixed;inset:0;z-index:9000;background:var(--white);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:34px}
.loader__mark{display:flex;align-items:center;justify-content:center}
.loader__mark img{width:clamp(160px,26vw,300px);height:auto;display:block}
.loader__bar{width:min(240px,52vw);height:1px;background:var(--grey);overflow:hidden}
.loader__bar span{display:block;height:100%;width:0;background:var(--accent)}
.loader__count{font-size:12px;font-weight:600;letter-spacing:.2em;color:var(--mute)}
.loader.is-done{transform:translateY(-101%);transition:transform 1s var(--ease)}

/* ═══════════ NAV ═══════════ */
.nav{
  position:fixed;top:12px;left:14px;right:14px;
  max-width:1240px;margin:0 auto;z-index:800;
  display:flex;align-items:center;justify-content:space-between;
  padding:8px 8px 8px 26px;
  border-radius:100px;
  color:#fff;
  box-shadow:none;
  transition:box-shadow .5s var(--ease),transform .5s var(--ease-out),color .4s var(--ease);
}
.nav::before{
  content:'';position:absolute;inset:0;border-radius:100px;z-index:-1;
  background:rgba(255,255,255,.06);
  backdrop-filter:blur(10px) saturate(120%);
  -webkit-backdrop-filter:blur(10px) saturate(120%);
  border:1px solid rgba(255,255,255,.18);
  transition:background .45s var(--ease),border-color .45s var(--ease);
}
.nav.is-solid{color:var(--ink);box-shadow:0 4px 28px rgba(0,0,0,.09)}
.nav.is-solid::before{
  background:linear-gradient(180deg,rgba(206,211,220,.92),rgba(168,174,184,.90));
  backdrop-filter:saturate(160%) blur(22px);
  -webkit-backdrop-filter:saturate(160%) blur(22px);
  border-color:rgba(0,0,0,.08);
}
.nav.is-hidden{transform:translateY(calc(-100% - 14px))}
.nav__logo{position:relative;display:block;width:92px;height:22px}
.nav__logo img{position:absolute;top:50%;left:0;transform:translateY(-50%);height:22px;width:auto;transition:opacity .4s var(--ease)}
.nav__logo .nav__logo-white{opacity:1}
.nav__logo .nav__logo-blue{opacity:0}
.nav.is-solid .nav__logo .nav__logo-white{opacity:0}
.nav.is-solid .nav__logo .nav__logo-blue{opacity:1}
.nav__links{display:flex;align-items:center;gap:32px}
.nav__links a{font-size:13px;font-weight:500;letter-spacing:.02em;position:relative;color:inherit}
.nav__links a:not(.nav__cta)::after{content:"";position:absolute;left:0;bottom:-5px;width:0;height:1px;background:currentColor;transition:width .4s var(--ease)}
.nav__links a:not(.nav__cta):hover::after{width:100%}
.nav__cta{
  background:rgba(255,255,255,.14);color:inherit!important;
  padding:10px 22px;border-radius:100px;font-weight:600;font-size:13px;letter-spacing:.01em;
  border:1px solid rgba(255,255,255,.32);
  transition:background .4s var(--ease),border-color .4s var(--ease),transform .3s var(--ease);
}
.nav.is-solid .nav__cta{background:var(--ink);color:#fff!important;border-color:transparent}
.nav__cta:hover{transform:scale(1.04)}
.nav__home{display:none}
.nav__burger{display:none;background:none;border:none;flex-direction:column;gap:5px;cursor:none;padding:8px;color:inherit;transition:color .4s var(--ease)}
.nav__burger span{width:22px;height:1.5px;background:currentColor;display:block;transition:transform .4s var(--ease)}
.nav.is-solid .nav__burger{color:var(--accent)}
.nav.is-open .nav__burger{color:var(--ink)!important}

/* ═══════════ reveals ═══════════ */
.reveal-line{overflow:hidden}
.reveal-line>span,.reveal-word>span{display:inline-block;transform:translateY(110%);transition:transform 1s var(--ease)}
.reveal-line.in>span,.reveal-word.in>span{transform:translateY(0)}

.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}

/* ═══════════ SITE FOOTER ═══════════ */
.site-footer{
  background:var(--white);
  border-top:1px solid var(--line);
  padding:64px var(--pad) 0;
}
.site-footer__inner{
  max-width:var(--maxw);margin:0 auto;
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr;
  gap:48px;
  padding-bottom:56px;
}
.sf-brand__logo{display:inline-block;margin-bottom:14px}
.sf-brand__logo img{height:26px;width:auto;display:block}
.sf-brand__desc{font-size:13px;color:var(--mute);line-height:1.65;margin-bottom:22px;max-width:260px}
.sf-brand__links{display:flex;flex-direction:column;gap:8px}
.sf-brand__links a{
  font-size:13px;color:var(--mute);
  display:flex;align-items:center;gap:7px;
  transition:color .2s;width:fit-content;
}
.sf-brand__links a:hover{color:var(--ink)}
.sf-col__title{
  font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink);margin-bottom:20px;
}
.sf-col__links{display:flex;flex-direction:column;gap:11px}
.sf-col__links a{font-size:14px;color:var(--mute);transition:color .2s;width:fit-content}
.sf-col__links a:hover{color:var(--ink)}
.site-footer__bar{
  max-width:var(--maxw);margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 0;border-top:1px solid var(--line);
}
.sf-bar__rights{font-size:12px;color:var(--mute)}
.sf-bar__top{
  font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink);display:flex;align-items:center;gap:5px;
  transition:opacity .2s;
}
.sf-bar__top:hover{opacity:.5}

/* ═══════════ RESPONSIVE ═══════════ */
@media (max-width:1000px){
  .site-footer__inner{grid-template-columns:1fr 1fr;gap:36px}
}
@media (max-width:600px){
  .site-footer__inner{grid-template-columns:1fr;gap:28px}
  .site-footer__bar{flex-direction:column;gap:10px;text-align:center}
}
@media (max-width:720px){
  body{font-size:16px}
  .nav__cta{background:var(--ink)!important;color:#fff!important;border-color:transparent!important;font-size:16px!important;padding:14px 36px!important;font-weight:700!important;margin-top:8px}
  .nav__home{display:block}
  .nav{width:calc(100% - 28px);padding:6px 6px 6px 20px}
  .nav__links{position:fixed;inset:0;background:var(--white);color:var(--ink);
    flex-direction:column;align-items:center;justify-content:center;gap:30px;transform:translateY(-100%);
    transition:transform .6s var(--ease);border-radius:0;visibility:hidden;text-align:center}
  .nav.is-open .nav__links{transform:translateY(0);visibility:visible}
  .nav__links a{font-size:24px;font-weight:700;color:var(--ink)}
  .nav__links a[aria-current="page"]{
    color:var(--ink)!important;
    text-decoration:underline!important;
    text-decoration-color:var(--accent)!important;
    text-underline-offset:5px!important;
    font-weight:700!important;
  }
  .nav__burger{display:flex;z-index:10}
  .nav.is-open .nav__burger span:first-child{transform:rotate(45deg) translate(3px,4px)}
  .nav.is-open .nav__burger span:last-child{transform:rotate(-45deg) translate(3px,-4px)}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition-duration:.01ms!important}
  .reveal-line>span,.reveal-word>span{transform:none;opacity:1}
}
