
/* Menu items: black text and arrow whenever the background is acid yellow */
html body .section-menu .pill:hover,
html body .section-menu .pill:focus,
html body .section-menu .pill:focus-visible,
html body .section-menu .pill:active,
html body .section-menu .pill[aria-current="page"],
html body .section-menu .pill.is-active{
  color:#050505 !important;
  -webkit-text-fill-color:#050505 !important;
}

html body .section-menu .pill:hover *,
html body .section-menu .pill:focus *,
html body .section-menu .pill:focus-visible *,
html body .section-menu .pill:active *,
html body .section-menu .pill[aria-current="page"] *,
html body .section-menu .pill.is-active *{
  color:#050505 !important;
  -webkit-text-fill-color:#050505 !important;
}

html body .section-menu .pill:hover::after,
html body .section-menu .pill:focus::after,
html body .section-menu .pill:focus-visible::after,
html body .section-menu .pill:active::after,
html body .section-menu .pill[aria-current="page"]::after,
html body .section-menu .pill.is-active::after{
  color:#050505 !important;
  -webkit-text-fill-color:#050505 !important;
  opacity:1 !important;
}

/* Explicitly preserve acid-yellow background on interactive state */
html body .section-menu .pill:hover,
html body .section-menu .pill:focus,
html body .section-menu .pill:focus-visible,
html body .section-menu .pill:active,
html body .section-menu .pill[aria-current="page"],
html body .section-menu .pill.is-active{
  background:#ccff00 !important;
  background-color:#ccff00 !important;
}


/* =========================================================
   LET'S TALK + FOOTER INTERACTIONS
   Consistent acid-yellow interaction language
   ========================================================= */

:root{
  --ic-acid:#ccff00;
  --ic-ink:#050505;
  --ic-ease:cubic-bezier(.16,1,.3,1);
}

/* LET'S TALK — keep black text/icon on yellow */
html body .floating-talk:hover,
html body .floating-talk:focus,
html body .floating-talk:focus-visible,
html body .floating-talk:active,
html body .footer-talk:hover,
html body .footer-talk:focus,
html body .footer-talk:focus-visible,
html body .footer-talk:active,
html body a[href^="mailto:"].floating-talk:hover,
html body a[href^="mailto:"].floating-talk:focus-visible{
  background:var(--ic-acid) !important;
  background-color:var(--ic-acid) !important;
  border-color:var(--ic-acid) !important;
  color:var(--ic-ink) !important;
  -webkit-text-fill-color:var(--ic-ink) !important;
  opacity:1 !important;
  transform:translateY(-2px) !important;
  box-shadow:
    0 16px 42px rgba(204,255,0,.20),
    0 10px 30px rgba(0,0,0,.16) !important;
}

html body .floating-talk:hover *,
html body .floating-talk:focus *,
html body .floating-talk:focus-visible *,
html body .floating-talk:active *,
html body .footer-talk:hover *,
html body .footer-talk:focus *,
html body .footer-talk:focus-visible *,
html body .footer-talk:active *{
  color:var(--ic-ink) !important;
  -webkit-text-fill-color:var(--ic-ink) !important;
}

/* Footer links — subtle premium response */
html body footer a,
html body .footer a,
html body .footer-redesign a,
html body .footer-redesign-bottom a{
  position:relative !important;
  display:inline-block !important;
  transition:
    color .45s ease,
    opacity .45s ease,
    transform .75s var(--ic-ease),
    text-shadow .75s var(--ic-ease) !important;
}

html body footer a::after,
html body .footer a::after,
html body .footer-redesign a::after,
html body .footer-redesign-bottom a::after{
  content:"" !important;
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  bottom:-5px !important;
  height:1.5px !important;
  border-radius:999px !important;
  background:var(--ic-acid) !important;
  transform:scaleX(0) !important;
  transform-origin:right center !important;
  transition:transform .75s var(--ic-ease) !important;
  pointer-events:none !important;
}

/* Exclude logos / image links / CTA buttons from underline */
html body footer a:has(img)::after,
html body .footer a:has(img)::after,
html body .footer-redesign a:has(img)::after,
html body .footer-redesign-bottom a:has(img)::after,
html body footer .floating-talk::after,
html body .footer .floating-talk::after,
html body footer .footer-talk::after,
html body .footer .footer-talk::after{
  display:none !important;
}

html body footer a:hover,
html body footer a:focus-visible,
html body .footer a:hover,
html body .footer a:focus-visible,
html body .footer-redesign a:hover,
html body .footer-redesign a:focus-visible,
html body .footer-redesign-bottom a:hover,
html body .footer-redesign-bottom a:focus-visible{
  color:#fff !important;
  opacity:1 !important;
  transform:translateY(-2px) !important;
  text-shadow:0 0 18px rgba(204,255,0,.22) !important;
}

html body footer a:hover::after,
html body footer a:focus-visible::after,
html body .footer a:hover::after,
html body .footer a:focus-visible::after,
html body .footer-redesign a:hover::after,
html body .footer-redesign a:focus-visible::after,
html body .footer-redesign-bottom a:hover::after,
html body .footer-redesign-bottom a:focus-visible::after{
  transform:scaleX(1) !important;
  transform-origin:left center !important;
}

/* Footer headings: quiet acid halo only, no movement */
html body footer h2:hover,
html body footer h3:hover,
html body footer h4:hover,
html body .footer h2:hover,
html body .footer h3:hover,
html body .footer h4:hover,
html body .footer-redesign h2:hover,
html body .footer-redesign h3:hover,
html body .footer-redesign h4:hover{
  text-shadow:0 0 20px rgba(204,255,0,.18) !important;
}

/* Keyboard focus */
html body .floating-talk:focus-visible,
html body .footer-talk:focus-visible,
html body footer a:focus-visible,
html body .footer a:focus-visible,
html body .footer-redesign a:focus-visible{
  outline:2px solid var(--ic-acid) !important;
  outline-offset:4px !important;
}

/* Fallback for browsers without :has() */
html body footer .footer-logo-link::after,
html body .footer .footer-logo-link::after,
html body .footer-redesign .footer-logo-link::after{
  display:none !important;
}

@media(prefers-reduced-motion:reduce){
  html body .floating-talk,
  html body .footer-talk,
  html body footer a,
  html body .footer a,
  html body .footer-redesign a,
  html body .footer-redesign-bottom a,
  html body footer a::after,
  html body .footer a::after,
  html body .footer-redesign a::after,
  html body .footer-redesign-bottom a::after{
    transition:none !important;
    transform:none !important;
  }
}


/* =========================================================
   INDEX MENU — FINAL REFINEMENT
   Off-centre close icon, no arrows, refined proportions
   ========================================================= */

/* Slightly off-centre close icon when open */
body.menu-open .menu-toggle .menu-lines{
  transform:translate(-2px,-1px) !important;
}

body.menu-open .menu-toggle .menu-lines::before{
  transform:translateY(4px) rotate(45deg) !important;
  transform-origin:48% 50% !important;
}

body.menu-open .menu-toggle .menu-lines::after{
  transform:translateY(-4px) rotate(-45deg) !important;
  transform-origin:44% 50% !important;
}

/* Refined panel proportions */
html body .section-menu{
  width:310px !important;
  min-width:310px !important;
  padding:16px !important;
  gap:4px !important;
  border-radius:22px !important;
}

/* More elegant rows */
html body .section-menu .pill{
  min-height:56px !important;
  padding:0 18px !important;
  justify-content:flex-start !important;
  border-radius:14px !important;
  font-size:15px !important;
  letter-spacing:.075em !important;
}

/* Remove all menu arrows */
html body .section-menu .pill::after{
  content:none !important;
  display:none !important;
}

/* Keep text vertically centred */
html body .section-menu .pill span{
  width:100% !important;
  text-align:left !important;
}

/* Fine separators, like the reference, without adding visual noise */
html body .section-menu .pill:not(:last-child){
  border-bottom:1px solid rgba(255,255,255,.08) !important;
  border-bottom-left-radius:0 !important;
  border-bottom-right-radius:0 !important;
}

/* Hover remains acid but cleaner */
html body .section-menu .pill:hover,
html body .section-menu .pill:focus-visible,
html body .section-menu .pill:active{
  padding-left:21px !important;
}

/* Mobile */
@media(max-width:820px){
  html body .section-menu{
    width:auto !important;
    min-width:0 !important;
    left:18px !important;
    right:18px !important;
  }
}


/* =========================================================
   INDEX — PREMIUM MENU
   Clean symmetrical cross, refined dark panel, no arrows
   ========================================================= */

:root{
  --ic-acid:#ccff00;
  --ic-ink:#050505;
  --ic-paper:#f7f5ef;
  --ic-ease:cubic-bezier(.16,1,.3,1);
}

/* Menu button */
html body .nav .menu-toggle{
  min-width:100px !important;
  height:44px !important;
  padding:0 16px !important;
  gap:10px !important;
  border-radius:999px !important;
}

/* Clean icon geometry */
html body .nav .menu-toggle .menu-lines{
  position:relative !important;
  width:14px !important;
  height:14px !important;
  flex:0 0 14px !important;
  transform:none !important;
}

html body .nav .menu-toggle .menu-lines::before,
html body .nav .menu-toggle .menu-lines::after{
  content:"" !important;
  position:absolute !important;
  left:0 !important;
  top:50% !important;
  width:14px !important;
  height:1.5px !important;
  border-radius:999px !important;
  background:currentColor !important;
  transform-origin:50% 50% !important;
  transition:
    transform .7s var(--ic-ease),
    opacity .45s ease !important;
}

/* Closed = two parallel lines */
html body:not(.menu-open) .nav .menu-toggle .menu-lines::before{
  transform:translateY(-3px) rotate(0deg) !important;
}

html body:not(.menu-open) .nav .menu-toggle .menu-lines::after{
  transform:translateY(3px) rotate(0deg) !important;
}

/* Open = true, centred X */
html body.menu-open .nav .menu-toggle .menu-lines::before,
html body .nav .menu-toggle[aria-expanded="true"] .menu-lines::before{
  transform:translateY(-50%) rotate(45deg) !important;
}

html body.menu-open .nav .menu-toggle .menu-lines::after,
html body .nav .menu-toggle[aria-expanded="true"] .menu-lines::after{
  transform:translateY(-50%) rotate(-45deg) !important;
}

/* Premium panel */
html body .nav .section-menu{
  width:332px !important;
  min-width:332px !important;
  padding:12px !important;
  gap:6px !important;
  border-radius:24px !important;
  border:1px solid rgba(255,255,255,.10) !important;
  background:
    linear-gradient(180deg,rgba(18,18,18,.97),rgba(10,10,10,.96)) !important;
  box-shadow:
    0 28px 80px rgba(0,0,0,.42),
    inset 0 1px 0 rgba(255,255,255,.04) !important;
  backdrop-filter:blur(22px) saturate(110%) !important;
  -webkit-backdrop-filter:blur(22px) saturate(110%) !important;
}

/* Menu rows */
html body .nav .section-menu .pill{
  position:relative !important;
  min-height:54px !important;
  padding:0 18px !important;
  border:0 !important;
  border-radius:14px !important;
  background:transparent !important;
  color:#f4f2ed !important;
  font-size:15px !important;
  line-height:1 !important;
  letter-spacing:.075em !important;
  text-transform:uppercase !important;
  justify-content:flex-start !important;
  overflow:hidden !important;
  transition:
    background .7s var(--ic-ease),
    color .45s ease,
    transform .7s var(--ic-ease),
    padding .7s var(--ic-ease) !important;
}

/* Remove legacy arrows and separators */
html body .nav .section-menu .pill::after{
  content:none !important;
  display:none !important;
}

html body .nav .section-menu .pill{
  border-bottom:0 !important;
}

html body .nav .section-menu .pill::before{
  content:"" !important;
  position:absolute !important;
  left:18px !important;
  bottom:10px !important;
  width:28px !important;
  height:1.5px !important;
  border-radius:999px !important;
  background:var(--ic-acid) !important;
  transform:scaleX(0) !important;
  transform-origin:left center !important;
  opacity:.9 !important;
  transition:transform .7s var(--ic-ease) !important;
}

/* Hover / focus */
html body .nav .section-menu .pill:hover,
html body .nav .section-menu .pill:focus-visible,
html body .nav .section-menu .pill:active,
html body .nav .section-menu .pill[aria-current="page"],
html body .nav .section-menu .pill.is-active{
  background:var(--ic-acid) !important;
  color:var(--ic-ink) !important;
  -webkit-text-fill-color:var(--ic-ink) !important;
  padding-left:22px !important;
  transform:translateX(2px) !important;
  outline:none !important;
}

html body .nav .section-menu .pill:hover *,
html body .nav .section-menu .pill:focus-visible *,
html body .nav .section-menu .pill:active *,
html body .nav .section-menu .pill[aria-current="page"] *,
html body .nav .section-menu .pill.is-active *{
  color:var(--ic-ink) !important;
  -webkit-text-fill-color:var(--ic-ink) !important;
}

html body .nav .section-menu .pill:hover::before,
html body .nav .section-menu .pill:focus-visible::before,
html body .nav .section-menu .pill:active::before,
html body .nav .section-menu .pill[aria-current="page"]::before,
html body .nav .section-menu .pill.is-active::before{
  transform:scaleX(1) !important;
  background:var(--ic-ink) !important;
}

/* Open/close motion */
html body .nav .section-menu{
  transform:translate3d(0,-10px,0) scale(.985) !important;
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
  transform-origin:top left !important;
  transition:
    opacity .45s ease,
    visibility .45s ease,
    transform .8s var(--ic-ease) !important;
}

html body.menu-open .nav .section-menu{
  transform:translate3d(0,0,0) scale(1) !important;
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
}

/* Mobile */
@media(max-width:820px){
  html body .nav .section-menu{
    width:auto !important;
    min-width:0 !important;
    left:18px !important;
    right:18px !important;
  }
}


/* Source exacte du halo : élément injecté .ic-cursor-glow */
.ic-cursor-glow{
  display:none !important;
  opacity:0 !important;
  visibility:hidden !important;
  width:0 !important;
  height:0 !important;
  background:none !important;
  background-image:none !important;
  box-shadow:none !important;
  filter:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  pointer-events:none !important;
}

/* Conserver uniquement le petit cercle jaune fluo */
#fluo-cursor{
  display:block !important;
  width:7px !important;
  height:7px !important;
  min-width:7px !important;
  min-height:7px !important;
  max-width:7px !important;
  max-height:7px !important;
  border-radius:50% !important;
  background:#ccff00 !important;
  background-color:#ccff00 !important;
  border:0 !important;
  outline:0 !important;
  box-shadow:none !important;
  filter:none !important;
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:none !important;
  z-index:2147483647 !important;
}

#fluo-cursor::before,
#fluo-cursor::after{
  content:none !important;
  display:none !important;
}
