/* Menu de navigation du site (header). Classes .nh-* ; .front-header garde
   les crochets JS existants (scrolled, menu-open). Polices chargees par boarding.css. */
:root{
  --nh-navy:#004890;
  --nh-red:#E43030;
  --nh-red-dark:#C42323;
  --nh-night:#03224A;
  --nh-line:rgba(0,72,144,.12);
  --nh-h:68px;
}

/* ---------- Barre ---------- */
.front-header.nh{
  position:sticky;
  top:0;
  z-index:100;
  background:#fff;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  border-bottom:1px solid transparent;
  box-shadow:none;
  font-family:'Inter','Segoe UI',sans-serif;
  transition:border-color .25s ease, box-shadow .25s ease;
}
/* Fond blanc plein (plus de transparence). Pas de backdrop-filter sur le header :
   il enfermerait le menu mobile (position:fixed) dans la hauteur de la barre. */
.front-header.nh::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:#fff;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.front-header.nh.scrolled{
  border-bottom-color:var(--nh-line);
  box-shadow:0 6px 24px rgba(3,34,74,.08);
}
.front-header.nh.scrolled::before{background:#fff}

.nh-bar{
  display:flex;
  align-items:center;
  gap:24px;
  height:var(--nh-h);
  padding-top:0;
  padding-bottom:0;
}

.nh-brand{display:flex;align-items:center;flex-shrink:0}
.nh-brand img{height:40px;width:auto;display:block}
.nh-brand:focus-visible,.nh-links a:focus-visible,.nh-icon:focus-visible,.nh-lang-btn:focus-visible,
.nh-cta:focus-visible,.nh-burger:focus-visible,.nh-lang-menu a:focus-visible{
  outline:2px solid var(--nh-red);
  outline-offset:3px;
  border-radius:10px;
}

/* ---------- Liens centraux ---------- */
.nh-links{
  flex:1;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:6px;
}
.nh-links a{
  position:relative;
  padding:10px 12px;
  font-size:15px;
  font-weight:500;
  color:var(--nh-navy);
  white-space:nowrap;
  transition:color .2s ease;
}
.nh-links a::after{
  content:"";
  position:absolute;
  left:12px;
  right:12px;
  bottom:4px;
  height:2px;
  border-radius:2px;
  background:var(--nh-red);
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .25s cubic-bezier(.4,0,.2,1);
}
.nh-links a:hover::after,
.nh-links a:focus-visible::after,
.nh-links a.is-active::after{transform:scaleX(1)}
.nh-links a.is-active{font-weight:700}

/* ---------- Actions a droite ---------- */
.nh-actions{display:flex;align-items:center;gap:8px;margin-left:auto}

.nh-icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;
  padding:0;
  border-radius:12px;
  border:1px solid transparent;
  background:transparent;
  color:var(--nh-navy);
  cursor:pointer;
  transition:background .2s ease, border-color .2s ease;
}
.nh-icon:hover{background:rgba(0,72,144,.07)}
.nh-icon svg{stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.front-header.nh .theme-toggle{box-shadow:none;transform:none}

/* Selecteur de langue */
.nh-lang{position:relative}
.nh-lang-btn{
  display:inline-flex;align-items:center;gap:6px;
  height:40px;
  padding:0 10px;
  border:1px solid var(--nh-line);
  border-radius:12px;
  background:#fff;
  color:var(--nh-navy);
  font:700 13px 'Inter','Segoe UI',sans-serif;
  letter-spacing:.04em;
  cursor:pointer;
}
.nh-lang-btn:hover{border-color:rgba(0,72,144,.35)}
.nh-caret{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s ease}
.nh-lang-btn[aria-expanded="true"] .nh-caret{transform:rotate(180deg)}
.nh-lang-menu{
  position:absolute;
  right:0;
  top:calc(100% + 8px);
  min-width:170px;
  margin:0;
  padding:6px;
  list-style:none;
  background:#fff;
  border:1px solid var(--nh-line);
  border-radius:14px;
  box-shadow:0 18px 40px rgba(3,34,74,.16);
  animation:nhDrop .16s ease;
}
.nh-lang-menu[hidden]{display:none}
.nh-lang-menu a{
  display:flex;align-items:center;gap:10px;
  padding:9px 10px;
  border-radius:10px;
  color:var(--nh-navy);
  font-size:14px;
}
.nh-lang-menu a:hover{background:rgba(0,72,144,.06)}
.nh-lang-menu a.is-active{background:rgba(228,48,48,.08);color:var(--nh-red)}
.nh-lang-code{font-weight:700;width:22px}
.nh-lang-name{color:#5B6780}
.nh-lang-menu a.is-active .nh-lang-name{color:inherit}
@keyframes nhDrop{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* Drapeaux */
.nh-flag{display:inline-block;width:18px;height:13px;border-radius:3px;flex-shrink:0;box-shadow:0 0 0 1px rgba(3,34,74,.12)}
.nh-flag-fr{background:linear-gradient(90deg,#1f3c88 0 33.3%,#fff 33.3% 66.6%,#e03c31 66.6%)}
.nh-flag-de{background:linear-gradient(180deg,#000 0 33.3%,#DD0000 33.3% 66.6%,#FFCC00 66.6%)}
.nh-flag-it{background:linear-gradient(90deg,#009246 0 33.3%,#fff 33.3% 66.6%,#CE2B37 66.6%)}
.nh-flag-en{
  background:
    linear-gradient(90deg,transparent 42%,#c8102e 42% 58%,transparent 58%),
    linear-gradient(180deg,transparent 38%,#c8102e 38% 62%,transparent 62%),
    linear-gradient(90deg,transparent 36%,#fff 36% 64%,transparent 64%),
    linear-gradient(180deg,transparent 30%,#fff 30% 70%,transparent 70%),
    #012169;
}

/* Bouton Reserver */
.nh-cta{
  display:inline-flex;align-items:center;justify-content:center;
  height:42px;
  padding:0 20px;
  margin-left:4px;
  border-radius:999px;
  background:var(--nh-red);
  color:#fff;
  font:700 14px 'Inter','Segoe UI',sans-serif;
  letter-spacing:.02em;
  white-space:nowrap;
  box-shadow:0 8px 18px rgba(228,48,48,.28);
  transition:background .2s ease, transform .2s ease, box-shadow .2s ease;
}
.nh-cta:hover{background:var(--nh-red-dark);color:#fff;transform:translateY(-1px);box-shadow:0 10px 22px rgba(228,48,48,.34)}

/* Burger */
.nh-burger{
  display:none;
  align-items:center;justify-content:center;
  width:44px;height:44px;
  padding:0;
  border:1px solid var(--nh-line);
  border-radius:12px;
  background:#fff;
  cursor:pointer;
}
.nh-burger svg{width:22px;height:22px;stroke:var(--nh-navy);fill:none;stroke-width:2.2;stroke-linecap:round}

/* L'ancien voile sombre n'est plus utilise : le menu mobile couvre tout l'ecran */
.front-header.nh + .menu-overlay{display:none !important}

/* ---------- Menu mobile plein ecran ---------- */
.nh-mobile{
  position:fixed;
  inset:0;
  z-index:200;
  display:flex;
  flex-direction:column;
  padding:16px 20px calc(24px + env(safe-area-inset-bottom));
  background:
    radial-gradient(600px 400px at 100% 0%, rgba(0,72,144,.55), transparent 70%),
    radial-gradient(500px 360px at 0% 100%, rgba(228,48,48,.18), transparent 70%),
    var(--nh-night);
  color:#fff;
  overflow-y:auto;
  visibility:hidden;
  opacity:0;
  transform:translateY(-12px);
  transition:opacity .25s ease, transform .25s ease, visibility 0s linear .25s;
}
.front-header.nh.menu-open .nh-mobile{
  visibility:visible;
  opacity:1;
  transform:none;
  transition:opacity .25s ease, transform .25s ease, visibility 0s;
}
body.nh-lock{overflow:hidden}

.nh-mobile-top{display:flex;align-items:center;justify-content:space-between;min-height:44px}
.nh-wordmark{font-family:'Inter','Segoe UI',sans-serif;font-weight:800;font-size:22px;letter-spacing:-.01em;color:#fff}
.nh-wordmark span{color:var(--nh-red)}
.nh-close{
  display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;
  padding:0;
  border:1px solid rgba(255,255,255,.22);
  border-radius:12px;
  background:transparent;
  cursor:pointer;
}
.nh-close svg{width:22px;height:22px;stroke:#fff;fill:none;stroke-width:2.2;stroke-linecap:round}

.nh-mobile-links{display:flex;flex-direction:column;gap:4px;margin:36px 0 24px}
.nh-mobile-links a{
  position:relative;
  padding:10px 0;
  font-family:'Inter','Segoe UI',sans-serif;
  font-weight:700;
  font-size:clamp(24px,7vw,34px);
  line-height:1.15;
  color:#fff;
  letter-spacing:-.01em;
}
.nh-mobile-links a.is-active{color:var(--nh-red)}
.nh-mobile-links a:hover{color:rgba(255,255,255,.75)}
.nh-mobile-links a:focus-visible,.nh-mobile-bottom a:focus-visible,.nh-close:focus-visible{outline:2px solid #fff;outline-offset:3px;border-radius:8px}

.nh-mobile-bottom{margin-top:auto;display:grid;gap:18px;padding-top:20px;border-top:1px dashed rgba(255,255,255,.22)}
.nh-cta--block{width:100%;height:54px;margin:0;font-size:16px;font-family:'Inter','Segoe UI',sans-serif}
.nh-mobile-langs{display:flex;gap:8px}
.nh-mobile-langs a{
  flex:1;
  text-align:center;
  padding:10px 0;
  border:1px solid rgba(255,255,255,.22);
  border-radius:12px;
  font-weight:700;
  font-size:14px;
  letter-spacing:.06em;
  color:#fff;
}
.nh-mobile-langs a.is-active{background:#fff;color:var(--nh-night);border-color:#fff}
.nh-mobile-account{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:15px}
.nh-mobile-account a{display:inline-flex;align-items:center;gap:8px;color:#fff;font-weight:500}
.nh-mobile-account a + a{color:rgba(255,255,255,.65)}
.nh-mobile-account svg{stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* ---------- Responsive ---------- */
@media (max-width: 1024px){
  .nh-links,.nh-lang,.nh-icon{display:none}
  .nh-burger{display:inline-flex}
  .nh-bar{gap:12px}
}
@media (min-width: 1025px){
  .nh-mobile{display:none}
}
@media (max-width: 1180px) and (min-width: 1025px){
  .nh-links a{padding:10px 8px;font-size:14px}
  .nh-links a::after{left:8px;right:8px}
}
@media (max-width: 560px){
  :root{--nh-h:60px}
  .nh-brand img{height:34px}
  .nh-cta{height:40px;padding:0 16px;font-size:13px}
  .nh-bar{padding-left:16px;padding-right:16px}
}

/* ---------- Mode sombre (bouton existant) ---------- */
[data-theme="dark"] .front-header.nh::before{background:rgba(12,18,32,.78)}
[data-theme="dark"] .front-header.nh.scrolled::before{background:rgba(12,18,32,.92)}
[data-theme="dark"] .front-header.nh.scrolled{border-bottom-color:rgba(255,255,255,.08)}
[data-theme="dark"] .nh-links a,[data-theme="dark"] .nh-icon,[data-theme="dark"] .nh-lang-btn{color:#E8ECF3}
[data-theme="dark"] .nh-lang-btn,[data-theme="dark"] .nh-burger,[data-theme="dark"] .nh-lang-menu{background:#1A2332;border-color:#2D3A4F}
[data-theme="dark"] .nh-lang-menu a{color:#E8ECF3}
[data-theme="dark"] .nh-burger svg{stroke:#E8ECF3}


/* Tous les boutons rouges du site = meme rouge que "Reserver" du menu */
.front .btn-primary{
  background:#E43030;
  border-color:#E43030;
  color:#fff;
  box-shadow:0 8px 18px rgba(228,48,48,.28);
}
.front .btn-primary::before{display:none}
.front .btn-primary:hover{
  background:#C42323;
  border-color:#C42323;
  color:#fff;
  transform:translateY(-1px);
  box-shadow:0 10px 22px rgba(228,48,48,.34);
}
.front .btn-primary:active{transform:none}
