/* ==========================================================================
   SKYWAY TRAVELERS — navigation principale
   Motif « disclosure navigation » du W3C : chaque entrée à sous-menu est un
   <button aria-expanded>, ce qui rend le menu utilisable au clavier, au
   lecteur d'écran et au tactile — là où un simple :hover échoue.
   ========================================================================== */

.nav{ position:absolute; top:calc(-1.3rem + var(--nav-gap)); left:0; right:0; z-index:40; }
.nav__in{ display:flex; align-items:center; height:9.5rem; }
.nav__logo img{ width:10.4rem; height:10.8rem; }

.menu{
  display:flex; align-items:center; gap:3rem;
  margin-left:auto;
  font-family:var(--font-title); font-weight:600; font-size:1.9rem;
  letter-spacing:-.01em; white-space:nowrap;
}
.menu > li{ position:relative; }

.menu a,
.menu__btn{
  display:inline-flex; align-items:center; gap:1rem;
  padding-bottom:.8rem;
  font:inherit; color:inherit;
  background:none; border:0; cursor:pointer;
}
.menu > li > a:hover,
.menu__btn:hover{ opacity:.82; }
.menu .is-current{ box-shadow:0 .15rem 0 currentColor; }
.menu__home .ico{ width:2.6rem; height:2.6rem; }
.menu__btn .ico--chev{ transition:transform .2s ease; }
.menu__btn[aria-expanded="true"] .ico--chev{ transform:rotate(180deg); }

/* ---------- panneau déroulant ---------- */
.submenu{
  position:absolute; left:-1.6rem; top:100%;
  z-index:2;
  min-width:26rem;
  padding:1.4rem 0;
  background:#fff;
  border-radius:1.2rem;
  box-shadow:0 1.2rem 3.2rem rgba(7,48,100,.18);
  color:var(--ink);
  font-size:1.7rem; font-weight:500;
  white-space:nowrap;

  opacity:0; visibility:hidden; transform:translateY(-.6rem);
  transition:opacity .18s ease, transform .18s ease, visibility .18s;
}
/* Le survol est géré en CSS (jamais en JS, sinon il entre en conflit avec le
   clic) ; aria-expanded reste la source de vérité pour clavier et tactile. */
@media (min-width:1200px){
  .menu__has:hover > .submenu,
  .menu__has:focus-within > .submenu{ opacity:1; visibility:visible; transform:none; }
  .menu__has:hover > .menu__btn .ico--chev,
  .menu__has:focus-within > .menu__btn .ico--chev{ transform:rotate(180deg); }
}
.menu__btn[aria-expanded="true"] + .submenu{
  opacity:1; visibility:visible; transform:none;
}
.submenu a{
  display:block;
  padding:.9rem 2.4rem;
  color:var(--ink);
}
.submenu a:hover,
.submenu a:focus-visible{ background:#F1F5FA; color:var(--red); }
.submenu .is-current{ color:var(--red); box-shadow:none; }

/* le sous-menu « Nos services » est long : deux colonnes */
.submenu--wide{
  display:grid; grid-template-columns:1fr 1fr;
  min-width:52rem;
}
.submenu--wide .submenu__all{ grid-column:1 / -1; }
.submenu--wide .submenu__all a{
  font-weight:700; color:var(--red);
  border-bottom:1px solid #E7ECF2;
  padding-bottom:1.3rem; margin-bottom:.6rem;
}

/* ---------- bouton hamburger ---------- */
.burger{
  display:none;
  width:5.2rem; height:5.2rem;                       /* >= 44 px de cible tactile */
  margin-left:auto;
  padding:.7rem;
  flex-direction:column; justify-content:space-between;
  background:none; border:0; cursor:pointer;
}
.burger span{
  display:block; height:.3rem; width:100%;
  background:#fff; border-radius:2px;
  transition:transform .22s ease, opacity .18s ease;
}
.burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(1.4rem) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-1.4rem) rotate(-45deg); }

/* ==========================================================================
   TABLETTE ET MOBILE — le menu devient un tiroir, les sous-menus des accordéons
   ========================================================================== */
@media (max-width:1199px){
  .burger{ display:flex; }

  .menu{
    position:absolute; top:100%; left:0; right:0;
    flex-direction:column; align-items:stretch; gap:0;
    max-height:min(72vh, 60rem); overflow-y:auto;
    padding:1.2rem 4% 2.4rem;
    background:rgba(7,48,100,.98);
    -webkit-backdrop-filter:blur(.6rem); backdrop-filter:blur(.6rem);
    font-size:2.2rem;

    display:none;
  }
  .menu.is-open{ display:flex; }

  .menu > li{ border-bottom:1px solid rgba(255,255,255,.14); }
  .menu > li:last-child{ border-bottom:0; }

  .menu > li > a,
  .menu__btn{
    width:100%;
    min-height:5.6rem;                               /* cible tactile confortable */
    padding:1.2rem 0;
    justify-content:space-between;
  }
  .menu__home{ justify-content:flex-start !important; gap:1.4rem; }
  .menu__home .visually-hidden{
    position:static; width:auto; height:auto; clip:auto;
    margin:0; overflow:visible; white-space:normal;
  }

  /* accordéon : le panneau prend sa place dans le flux */
  .submenu{
    position:static;
    min-width:0; padding:0 0 1.2rem 1.6rem;
    background:none; box-shadow:none; border-radius:0;
    color:#fff; font-size:2rem;
    opacity:1; visibility:visible; transform:none;
    display:none;
  }
  .submenu--wide{ grid-template-columns:1fr; }
  .menu__btn[aria-expanded="true"] + .submenu{ display:block; }
  .submenu--wide.is-open,
  .submenu.is-open{ display:block; }
  .submenu a{
    color:rgba(255,255,255,.88);
    padding:1.1rem 0;
    min-height:4.6rem;
    display:flex; align-items:center;
  }
  .submenu a:hover,
  .submenu a:focus-visible{ background:none; color:#fff; }
  .submenu .is-current{ color:#fff; font-weight:700; }
  .submenu--wide .submenu__all a{ border-bottom-color:rgba(255,255,255,.2); }
  .submenu--wide .submenu__all a{ color:#fff; }
}

/* le fond ne défile plus quand le tiroir est ouvert */
body.nav-open{ overflow:hidden; }

@media (prefers-reduced-motion:reduce){
  .submenu,.burger span,.menu__btn .ico--chev{ transition:none; }
}
