/* ============================================================================
   Header / navigation maison Forme® — reconstruction fidèle du header Webflow
   (.navbar-v4) en code propre, indépendant du min.css. Police Aeonik.
   Le flou progressif reste porté par .fm-blur (forme-optims2.js/3.css).
   ========================================================================== */
.fm-nav{
  position:fixed; top:0; left:0; right:0; z-index:20;
  display:flex; justify-content:space-between; align-items:flex-start;
  width:100%; height:72px; padding:16px;
  font-family:Aeonik, sans-serif;
  pointer-events:none; /* laisse passer le scroll ; les enfants réactivent */
}
.fm-nav > *{ pointer-events:auto; }

.fm-nav__brand{ position:relative; z-index:1; display:flex; align-items:flex-start; }
.fm-nav__logo{ height:32px; width:auto; display:block; }
.fm-nav__brand:hover{ opacity:.85; }

.fm-nav__toggle{
  position:relative; z-index:30;
  display:flex; flex-flow:row; align-items:center; gap:16px;
  height:32px; padding:0; margin:0;
  background:none; border:0; cursor:pointer; color:#000;
}
.fm-nav__label{
  font-family:Aeonikmono, monospace; font-size:14px; line-height:14px;
  letter-spacing:.25px; text-transform:uppercase; color:#000;
}
.fm-nav__burger{
  display:flex; flex-direction:column; justify-content:center; align-items:center;
  width:32px; height:32px;
}
.fm-nav__burger i{
  display:block; width:32px; height:2px; margin:6px 0; background:#000;
  transition:transform .35s cubic-bezier(.2,.6,.2,1), opacity .2s;
}
/* état ouvert : hamburger -> croix */
.fm-nav.is-open .fm-nav__burger i:nth-child(1){ transform:translateY(8px) rotate(45deg); }
.fm-nav.is-open .fm-nav__burger i:nth-child(2){ transform:translateY(-8px) rotate(-45deg); }

/* ---- Overlay plein écran ---- */
.fm-nav__overlay{
  position:fixed; inset:0; z-index:19;
  background:#fff;
  display:flex; flex-direction:column; justify-content:space-between;
  padding:72px 16px;
  opacity:0; visibility:hidden;
  transition:opacity .4s ease, visibility .4s;
}
.fm-nav.is-open ~ .fm-nav__overlay,
.fm-nav__overlay.is-open{ opacity:1; visibility:visible; }

.fm-nav__links{ display:flex; flex-direction:column; gap:8px; margin-top:0; }
.fm-nav__link{
  font-family:Aeonik, sans-serif; font-size:80px; line-height:80px;
  color:#000; text-decoration:none; text-transform:none;
  transition:color .2s ease;
}
.fm-nav__link:hover{ color:#969696; }

.fm-nav__foot{ display:flex; flex-direction:column; gap:16px; }
.fm-nav__social{ display:flex; gap:6px; }
.fm-nav__btn{
  font-family:Aeonik, sans-serif; font-size:14px; line-height:1;
  letter-spacing:.25px; text-transform:uppercase; color:#000;
  border:1px solid #000; border-radius:6px; padding:5px 7px;
  text-decoration:none; background:transparent; transition:background .2s,color .2s;
}

.fm-nav__addr{
  font-family:Aeonikmono, monospace; font-size:12px; line-height:14px; color:#000;
}

/* Scroll-lock du menu SANS decalage horizontal : on garde la scrollbar reservee
   (overflow-y:scroll sur html) et on fige le body en position:fixed. scrollbar-gutter:stable
   seul ne reserve PAS la gouttiere avec overflow:hidden -> la navbar sautait de ~15px a
   l'ouverture du menu quand la scrollbar disparaissait. La position de scroll est
   sauvegardee/restauree par forme-nav.js (body.style.top). */
html.fm-nav-open{ overflow-y:scroll; }
html.fm-nav-open body{ position:fixed; left:0; right:0; width:100%; overflow:hidden; }

/* ---- Responsive (breakpoints Webflow : 991 / 767 / 479) ---- */
@media (max-width:991px){
  .fm-nav__link{ font-size:80px; line-height:80px; }
}
@media (max-width:767px){
  .fm-nav{ padding:10px; }
  .fm-nav__logo{ height:24px; }
  .fm-nav__overlay{ padding:54px 10px 144px; }
  .fm-nav__link{ font-size:48px; line-height:46px; }
}
@media (prefers-reduced-motion:reduce){
  .fm-nav__burger i,.fm-nav__overlay{ transition:opacity .2s ease, visibility .2s; }
  .fm-nav.is-open .fm-nav__burger i{ transition:none; }
}
