*{
  margin:0;
  padding:0;
  box-sizing:border-box;
  font-family: 'Segoe UI', sans-serif;
}

/* Navbar */
.navbar{
  width:100vw;
  height:70px;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 25px;
  box-shadow:0 5px 20px rgba(0,0,0,0.08);
  position:fixed;
  top:0;
  left:0;
  z-index:1000;
}
html, body{
  max-width:100%;
  overflow-x:hidden;
}

/* Logo */
.logo img{
  height:45px;
  width:auto;
}

/* Desktop Nav */
.desktop-nav{
  display:flex;
  gap:25px;
}

.nav-link{
  text-decoration:none;
  color:#222;
  font-weight:500;
  position:relative;
  transition:0.3s;
}

.nav-link::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-6px;
  width:0;
  height:2px;
  background:#2563eb;
  transition:0.3s;
}

.nav-link:hover{
  color:#2563eb;
}

.nav-link:hover::after{
  width:100%;
}

/* Lang selector */
.lang-selector{
  padding:6px 10px;
  border-radius:6px;
  border:1px solid #ddd;
  cursor:pointer;
}
.lang-scroll-zone{
  max-height:60px;        /* hauteur contrôlée */
  overflow-y:auto;       /* scroll uniquement ici */
  margin-top:15px;
}

/* Mobile Button */
.mobile-menu-toggle{
  display:none;
  background:none;
  border:none;
  font-size:28px;
  cursor:pointer;
}

/* Mobile Menu */
.mobile-menu{
  position:fixed;
  top:0;
  right:0;
  width:85vw;
  max-width:320px;
  height:100vh;
  background:#fff;
  box-shadow: -5px 0 15px rgba(0,0,0,0.1);
  z-index:1100;
  padding:90px 25px 25px;
  transition:transform 0.4s ease;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  
  overflow-y:auto;  
  transform: translateX(100%);
}

.mobile-menu.active{
  transform: translateX(0);
}

.mobile-nav-list{
  display:flex;
  flex-direction:column;
  gap:22px;
  padding-bottom:30px; /* espace avant le select */
}


.mobile-nav-link{
  text-decoration:none;
  font-size:18px;
  color:#222;
  font-weight:500;
}
/* Mobile Lang Box */
.mobile-lang-box{
  position:relative;
  width:100%;
  margin-top:-40px;   /* 🔼 tout le bloc monte */
}


/* bouton */
.mobile-lang-btn{
  width:100%;
  padding:14px;
  border-radius:12px;
  border:1px solid #ddd;
  background:#fff;
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:16px;
  cursor:pointer;
}

/* liste */
.mobile-lang-list{
  position:absolute;
  bottom:110%;        /* 🔼 ouvre vers le haut proprement */
  left:0;
  width:100%;
  background:#fff;
  border:1px solid #ddd;
  border-radius:12px;
  overflow:hidden;
  max-height:0;
  opacity:0;
  transform:translateY(10px);
  transition:0.3s ease;
  z-index:9999;
}

/* active */
.mobile-lang-list.active{
  max-height:200px;
  opacity:1;
  transform:translateY(0);
}

/* items */
.lang-item{
  padding:14px;
  text-align:center;
  cursor:pointer;
  border-bottom:1px solid #eee;
}

.lang-item:last-child{
  border-bottom:none;
}

.lang-item:hover{
  background:#f2f2f2;
}

/* Overlay */
.overlay{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  height:100vh;
  background:rgba(0,0,0,0.4);
  z-index:1050;
  opacity:0;
  visibility:hidden;
  transition:0.3s;
}

.overlay.active{
  opacity:1;
  visibility:visible;
}

/* 📱 Responsive */
@media(max-width: 900px){
  .desktop-nav,
  .lang-selector-container{
    display:none;
  }

  .mobile-menu-toggle{
    display:block;
  }
}
@media(max-width:900px){
  .mobile-menu{
    height:100svh;   /* 🔥 nouveau viewport mobile (safe viewport) */
  }
}
