/* GÉNÉRÉ par nouvelle-ecommerce/_src/build.js depuis nouvel-accueil/assets/css/accueil.css : ne pas modifier ici.
   Menu, menu mobile, pied de page et boutons DeaX sur fond noir, identiques à l'accueil. */
body.nx {
  --nx-black: #050505;
  --nx-ink: #f4f1ea;
  --nx-mute: #a8a49c;
  --nx-line: rgba(244, 241, 234, .14);
  --nx-paper: #ecebe5;
  --nx-serif: "Instrument Serif", Georgia, "Times New Roman", serif;
  --nx-spring: cubic-bezier(.3, 1.35, .45, 1);
  --nx-gut: clamp(18px, 5.5vw, 88px);
  background: var(--nx-black);
  color: var(--nx-ink);
}
body.nx ::selection { background: var(--orange); color: #000; }

/* ---------- Menu DeaX sur fond noir (mêmes éléments, mêmes interactions) ---------- */
.nx .nav.glass {
  --glass-bg: linear-gradient(180deg, rgba(34, 34, 34, .52), rgba(12, 12, 12, .36));
  border-color: rgba(255, 255, 255, .11);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), 0 18px 44px -20px rgba(0, 0, 0, .9);
  color: var(--nx-ink);
}
.nx .nav.glass::before { opacity: .08; }
.nx .nav.glass::after { background: rgba(14, 14, 14, .86); }
.nx .nav__logo, .nx .nav__link, .nx .nav__meeting { color: var(--nx-ink); }
.nx .nav__link:hover, .nx .nav__link[aria-expanded="true"], .nx .nav__meeting:hover { background: rgba(255, 255, 255, .08); }
.nx .dropdown.glass { --glass-bg: linear-gradient(180deg, rgba(40, 40, 40, .5), rgba(14, 14, 14, .4)); background-color: rgba(16, 16, 16, .7); border-color: rgba(255, 255, 255, .1); color: var(--nx-ink); }
.nx .nav.glass:is(:hover, :focus-within) .dropdown.glass, .nx .nav__item.is-open .dropdown.glass { background-color: rgba(16, 16, 16, .92); border-color: rgba(255, 255, 255, .12); box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .9); }
.nx .dropdown.glass::before { opacity: .06; }
.nx .dropdown__link span { color: rgba(244, 241, 234, .58); }
.nx .dropdown__link:hover, .nx .dropdown__link:focus-visible { background: rgba(255, 255, 255, .07); }
.nx .nav__burger { color: var(--nx-ink); }
.nx .nav__burger .bars { background: var(--nx-ink); }
.nx .nav__burger .bars i { background: #000; }
.nx .mobile-menu__backdrop { background: rgba(6, 6, 6, .97); }
.nx .mobile-menu { color: var(--nx-ink); --line: rgba(255, 255, 255, .12); --line-strong: rgba(255, 255, 255, .26); --ink-2: rgba(244, 241, 234, .6); }
.nx .mobile-menu__top[aria-expanded="true"] .plus { background: var(--nx-ink); color: #000; border-color: var(--nx-ink); }
.nx .mobile-menu__more a { background: rgba(255, 255, 255, .08); }
.nx .float-cta.glass { --glass-bg: linear-gradient(180deg, rgba(34, 34, 34, .8), rgba(12, 12, 12, .7)); border-color: rgba(255, 255, 255, .12); color: var(--nx-ink); }
.nx .float-cta.glass::before { opacity: .1; }

.nx .site-header.is-hidden .nav { box-shadow: none; }
.nx .site-footer { background: var(--nx-black); color: rgba(244, 241, 234, .7); border-top: 1px solid var(--nx-line); }
.nx .site-footer::before { content: ""; position: absolute; left: 0; right: 0; top: -1px; height: 1px; background: linear-gradient(90deg, transparent, var(--orange) 50%, transparent); opacity: .7; }
.nx .site-footer .shell { padding-top: clamp(20px, 3vw, 40px); }
.nx .footer__grid { gap: 44px 28px; padding-bottom: clamp(36px, 5vw, 60px); border-bottom: 1px solid var(--nx-line); }
.nx .footer__brand { gap: 22px; }
.nx .footer__brand .logo { font-size: 1.6rem; }
.nx .footer__brand p { font-family: var(--nx-serif); font-size: clamp(1.25rem, 1.6vw, 1.5rem); line-height: 1.25; letter-spacing: -.01em; color: rgba(244, 241, 234, .82); }
.nx .footer__title { font-size: .7rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--nx-mute); margin-bottom: 18px; }
.nx .footer__col ul { gap: 12px; }
.nx .footer__col a { display: inline-flex; align-items: center; gap: 0; font-size: .95rem; color: rgba(244, 241, 234, .82); transition: color .3s, gap .4s var(--ease); }
.nx .footer__col a::before { content: "→"; display: inline-block; width: 0; overflow: hidden; color: var(--orange); transition: width .4s var(--ease); }
.nx .footer__col a:hover { color: #fff; gap: 6px; }
.nx .footer__col a:hover::before { width: 1em; }
.nx .footer__col .footer__cta { display: inline-flex; padding: 9px 16px; border-radius: 999px; background: var(--nx-ink); color: #000 !important; font-weight: 600; }
.nx .footer__col .footer__cta::before { display: none; }
.nx .footer__col .footer__cta:hover { background: #fff; }
.nx .footer__hours { color: rgba(244, 241, 234, .45); }
.nx .footer__social { gap: 8px; }
.nx .footer__social a { width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--nx-line); background: transparent; transition: background .35s, color .35s, transform .45s var(--ease), border-color .35s; }
.nx .footer__social a:hover { background: var(--nx-ink); border-color: var(--nx-ink); color: #000; transform: translateY(-3px); }
.nx .footer__member { display: block; margin: clamp(28px, 4vw, 44px) 0 0; max-width: 72ch; font-size: .86rem; line-height: 1.6; color: rgba(244, 241, 234, .5); }
.nx .footer__member a { color: rgba(244, 241, 234, .85); text-decoration: underline; text-underline-offset: .2em; }
.nx .footer__word { position: relative; font-size: clamp(76px, 15vw, 230px); margin: clamp(40px, 6vw, 80px) 0 0 -.03em; padding-bottom: .02em; overflow: hidden; line-height: .78; background: none; -webkit-background-clip: border-box; background-clip: border-box; -webkit-text-fill-color: var(--nx-ink); color: var(--nx-ink); letter-spacing: -.055em; }
.nx .footer__word span { -webkit-text-fill-color: var(--nx-ink); background: none; }
.nx .footer__word span::after { content: "."; -webkit-text-fill-color: var(--orange); }
.nx .footer__word::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 30%; background: linear-gradient(transparent, var(--nx-black)); pointer-events: none; }
.nx .footer__legal { border-top-color: var(--nx-line); color: rgba(244, 241, 234, .5); }
.nx .footer__legal a:hover { color: var(--orange); }

/* ---------- Éléments communs ---------- */
.nx-kicker { display: inline-flex; align-items: center; gap: 10px; font-size: .78rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--nx-mute); }
.nx-kicker--dark { color: rgba(10, 10, 10, .62); }
.nx-o { color: var(--orange); }
.nx-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--orange); box-shadow: 0 0 0 4px rgba(255, 122, 26, .16); }
.nx-link { display: inline-flex; align-items: center; gap: 10px; font-weight: 600; border-bottom: 1px solid currentColor; padding-bottom: 3px; }
.nx-link i { font-style: normal; transition: transform var(--dur) var(--ease); }
.nx-link:hover i { transform: translateX(5px); }
.nx-btn {
  --bf: var(--nx-ink); --bt: #000;                 /* couleur qui remplit le bouton au survol, texte au survol */
  position: relative; isolation: isolate; overflow: hidden;
  display: inline-flex; align-items: center; gap: 14px;
  height: 52px; padding: 0 6px 0 24px; border-radius: 200px;
  font-size: .97rem; font-weight: 560; letter-spacing: -.01em; white-space: nowrap;
  transition: color .4s var(--ease), box-shadow .4s, transform .35s var(--ease);
  -webkit-tap-highlight-color: transparent;
}
/* Pastille : un cercle orange avec la flèche ; au survol il s'étend sous tout le bouton */
.nx-btn__ico { position: relative; display: grid; place-items: center; width: 40px; height: 40px; flex: none; border-radius: 50%; color: #000; }
.nx-btn__ico::before { content: ""; position: absolute; z-index: -1; right: 0; top: 0; width: 40px; height: 40px; border-radius: 20px; background: var(--bf); transition: width .55s var(--ease), height .55s var(--ease), right .55s var(--ease), top .55s var(--ease), border-radius .55s var(--ease); }
.nx-btn__ico > span { display: flex; width: 16px; overflow: hidden; }
.nx-btn__ico svg { flex: none; width: 16px; height: 16px; transition: transform .5s var(--ease); }
.nx-btn__ico svg + svg { margin-left: 8px; }
.nx-btn__t { position: relative; transition: transform .5s var(--ease); }
.nx-btn:is(:hover, :focus-visible) { color: var(--bt); }
.nx-btn:is(:hover, :focus-visible) .nx-btn__ico::before { width: var(--bw, 300px); height: 52px; right: -6px; top: -6px; border-radius: 26px; }
.nx-btn:is(:hover, :focus-visible) .nx-btn__ico svg { transform: translateX(-24px); }   /* la flèche sort à droite, une autre entre */
.nx-btn:is(:hover, :focus-visible) .nx-btn__t { transform: translateX(4px); }
.nx-btn:active { transform: scale(.97); }
.nx-btn--line { box-shadow: inset 0 0 0 1.5px rgba(244, 241, 234, .55); color: var(--nx-ink); }
.nx-btn--plain { padding: 0 28px; justify-content: center; }
.nx-btn--plain::before { content: ""; position: absolute; z-index: -1; inset: 0; border-radius: inherit; background: var(--bf); transform: scaleX(0); transform-origin: left center; transition: transform .55s var(--ease); }
.nx-btn--plain:is(:hover, :focus-visible)::before { transform: none; }
.nx-btn--plain:is(:hover, :focus-visible) .nx-btn__t { transform: none; }
.nx-btn--line:is(:hover, :focus-visible) { box-shadow: inset 0 0 0 1.5px var(--nx-ink); }
.nx-btn--solid { --bf: #111; --bt: var(--nx-ink); background: var(--nx-ink); color: #000; }
.nx-btn--solid .nx-btn__ico { color: var(--orange); }
.nx-btn--orange { --bf: var(--nx-ink); background: var(--orange); color: #000; }
.nx-btn--orange .nx-btn__ico { color: var(--orange); }
.nx-btn--orange .nx-btn__ico::before { background: #000; }
.nx-btn--orange:is(:hover, :focus-visible) .nx-btn__ico::before { background: var(--nx-ink); }
.nx-btn--orange:is(:hover, :focus-visible) .nx-btn__ico { color: #000; }
/* Écrans tactiles : pas de survol collant, le bouton se remplit pendant l'appui */
@media (hover: none) {
  .nx-btn:hover { color: inherit; }
  .nx-btn:hover .nx-btn__ico::before { width: 40px; height: 40px; right: 0; top: 0; border-radius: 20px; }
  .nx-btn:hover .nx-btn__ico svg, .nx-btn:hover .nx-btn__t { transform: none; }
  .nx-btn:active { color: var(--bt); }
  .nx-btn--plain:hover::before { transform: scaleX(0); }
  .nx-btn--plain:active::before { transform: none; transition-duration: .25s; }
  .nx-btn:active .nx-btn__ico::before { width: var(--bw, 300px); height: 52px; right: -6px; top: -6px; border-radius: 26px; transition-duration: .3s; }
}
