/* Navigation Synchrone commune a toutes les pages. Menu hamburger sur mobile et desktop. */
body.has-unified-nav { --syn-nav-bg:#090611; --syn-nav-ink:#f8f4ff; --syn-nav-violet:#ab80f5; --syn-nav-line:rgba(255,255,255,.2); }
body.has-unified-nav:not(.page-home) { padding-top:clamp(74px,6.4vw,90px); }
body.has-unified-nav .syn-nav,
body.has-unified-nav .syn-nav * { box-sizing:border-box; }
body.has-unified-nav .syn-nav {
  position:fixed !important; top:0; right:0; left:0; z-index:1100 !important;
  width:100%; height:clamp(74px,6.4vw,90px); padding:12px clamp(20px,4vw,72px) !important;
  display:flex !important; align-items:center; justify-content:space-between;
  background:rgba(9,6,17,.94); border:0; border-bottom:1px solid var(--syn-nav-line);
  backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); isolation:isolate;
}
body.has-unified-nav .syn-nav__brand {
  position:relative; display:inline-flex; align-items:center; gap:10px;
  color:var(--syn-nav-ink) !important; font-family:Manrope,Arial,sans-serif;
  font-size:clamp(16px,1.75vw,24px); font-weight:800; letter-spacing:-.075em;
  text-decoration:none !important; white-space:nowrap; line-height:1.1;
}
body.has-unified-nav .syn-nav__brand img { display:block; width:clamp(41px,4vw,57px); height:clamp(41px,4vw,57px); object-fit:contain; flex:none; }
body.has-unified-nav .syn-nav__brand > span { color:var(--syn-nav-ink); }
body.has-unified-nav .syn-nav__dot { color:var(--syn-nav-violet); }
body.has-unified-nav .syn-nav__toggle {
  display:flex !important; position:relative; flex:none; z-index:1102;
  width:56px; height:50px; border:0; padding:0; cursor:pointer;
  flex-direction:column; justify-content:center; align-items:center; gap:9px;
  background:transparent; color:var(--syn-nav-ink);
}
body.has-unified-nav .syn-nav__toggle span {
  display:block; flex:none; width:35px; height:2.5px; margin:0 !important;
  border-radius:1px; background:currentColor; opacity:1;
  transform:none; transition:transform .3s ease;
}
body.has-unified-nav .syn-nav__toggle[aria-expanded="true"] span:first-child { transform:translateY(5.75px) rotate(45deg); }
body.has-unified-nav .syn-nav__toggle[aria-expanded="true"] span:last-child { transform:translateY(-5.75px) rotate(-45deg); }
body.has-unified-nav .syn-nav__panel {
  display:flex !important; position:fixed !important; top:0; right:0; bottom:0; left:0;
  z-index:1080 !important; background:#160921; color:var(--syn-nav-ink);
  padding:clamp(105px,12vh,156px) clamp(22px,5vw,80px) clamp(28px,5vh,55px);
  flex-direction:column; justify-content:center; overflow-y:auto;
  opacity:0; visibility:hidden; pointer-events:none; clip-path:inset(0 0 100% 0);
  transition:opacity .36s ease, clip-path .5s cubic-bezier(.2,.8,.15,1), visibility 0s linear .5s;
}
body.has-unified-nav .syn-nav__panel.is-open {
  visibility:visible; pointer-events:auto; opacity:1; clip-path:inset(0 0 0 0);
  transition:opacity .32s ease, clip-path .5s cubic-bezier(.2,.8,.15,1), visibility 0s;
}
body.has-unified-nav .syn-nav__links { display:grid; width:100%; max-width:1500px; margin-inline:auto; gap:0; }
body.has-unified-nav .syn-nav__links a {
  display:flex; align-items:center; gap:clamp(12px,2vw,24px);
  width:100%; padding:clamp(10px,1.5vh,19px) 0; border-bottom:1px solid var(--syn-nav-line);
  text-decoration:none; color:var(--syn-nav-ink); font-family:Manrope,Arial,sans-serif;
  font-size:clamp(29px,5.5vw,76px); font-weight:800; letter-spacing:-.07em; line-height:1.05;
  transition:color .2s ease;
}
body.has-unified-nav .syn-nav__links a:hover,
body.has-unified-nav .syn-nav__links a:focus-visible,
body.has-unified-nav .syn-nav__links a[aria-current="page"] { color:var(--syn-nav-violet); }
body.has-unified-nav .syn-nav__links small {
  color:var(--syn-nav-violet); flex:none; min-width:24px; align-self:center;
  font:12px 'DM Mono',monospace; letter-spacing:0;
}
body.has-unified-nav .syn-nav__links a > span:nth-child(2) { flex:1; }
body.has-unified-nav .syn-nav__arrow { margin-left:auto; flex:none; width:clamp(22px,3.2vw,47px); height:clamp(22px,3.2vw,47px); color:var(--syn-nav-violet); }
body.has-unified-nav .syn-nav__arrow svg { width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:1.75; stroke-linecap:round; stroke-linejoin:round; }
body.has-unified-nav .syn-nav__panel > p {
  width:100%; max-width:1500px; margin:clamp(18px,4vh,60px) auto 0;
  color:#cbb7e1; font:clamp(11px,1.2vw,15px) 'DM Mono',monospace; letter-spacing:.04em;
}
body.has-unified-nav.menu-open { overflow:hidden; }
body.has-unified-nav .syn-nav a:focus-visible,
body.has-unified-nav .syn-nav button:focus-visible,
body.has-unified-nav .syn-nav__panel a:focus-visible { outline:2px solid var(--syn-nav-violet); outline-offset:5px; }
@media(max-width:680px) {
  body.has-unified-nav .syn-nav { padding-inline:clamp(16px,5vw,25px) !important; }
  body.has-unified-nav .syn-nav__brand { font-size:clamp(15px,4.1vw,21px); gap:7px; }
  body.has-unified-nav .syn-nav__toggle { width:48px; height:44px; }
  body.has-unified-nav .syn-nav__toggle span { width:30px; }
  body.has-unified-nav .syn-nav__panel { padding-inline:clamp(19px,5.2vw,32px); padding-top:95px; justify-content:center; }
  body.has-unified-nav .syn-nav__links a { font-size:clamp(29px,9vw,52px); min-height:70px; }
  body.has-unified-nav .syn-nav__links small { font-size:10px; min-width:17px; }
}
@media(max-height:610px) and (orientation:landscape) {
  body.has-unified-nav .syn-nav__panel { justify-content:flex-start; }
  body.has-unified-nav .syn-nav__links a { font-size:clamp(24px,5vh,42px); padding-block:8px; min-height:0; }
}
@media(prefers-reduced-motion:reduce) {
  body.has-unified-nav .syn-nav__panel { transition:none; }
  body.has-unified-nav .syn-nav__toggle span { transition:none; }
}

/* Garantie d'affichage du logo de l'association sur toutes les pages */
body.has-unified-nav .syn-nav .syn-nav__brand { display:inline-flex!important; visibility:visible!important; opacity:1!important; align-items:center; flex-shrink:0; min-width:0; }
body.has-unified-nav .syn-nav .syn-nav__brand img { display:block!important; visibility:visible!important; opacity:1!important; flex:0 0 auto; max-width:none; object-fit:contain; }
body.has-unified-nav .syn-nav .syn-nav__brand > span { display:inline!important; visibility:visible!important; opacity:1!important; }
@media (max-width:380px) { body.has-unified-nav .syn-nav .syn-nav__brand { font-size:15px!important; gap:5px; } body.has-unified-nav .syn-nav .syn-nav__brand img { width:40px; height:40px; } }
