/* =========================================================
   EasyImmigrateUSA — global.css (HEADER + FOOTER ONLY)
   v2 — Desktop clean + Mobile clean
   - Desktop: dropdowns open on hover
   - Mobile: burger opens nav (body.navOpen), dropdowns open by click (.open)
   - Lang menu becomes inline when burger open
   ========================================================= */

/* ---------- Logo size ---------- */
header .brand img{ height:52px; width:auto; display:block; }
@media (max-width:768px){ header .brand img{ height:42px; } }

/* ---------- Header bar ---------- */
header .h1{
  position:relative;
  z-index:50;                 /* dropdowns above page */
}

/* ---------- Desktop layout ---------- */
header .h1row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:nowrap;
}

/* brand */
header .brand{ flex:0 0 auto; margin-right:12px; }

/* nav line */
header .nav{
  display:flex;
  align-items:center;
  flex-wrap:nowrap;
  gap:6px;                     /* ✅ compact spacing */
  min-width:0;
}

/* right actions */
header .h1right{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:nowrap;

  /* ✅ separator after last menu item */
  border-left:1px solid rgba(255,255,255,.22);
  padding-left:12px;
  margin-left:16px;
}

/* link hitbox smaller (still comfy) */
header .navLink{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 8px;            /* ✅ compact */
  line-height:1;
  white-space:nowrap;
}

/* buttons */
header .btn,
header .btnCta{
  display:inline-flex;
  align-items:center;
  line-height:1;
  white-space:nowrap;
}

/* caret */
header .caret{
  display:inline-block;
  margin-left:6px;
  font-size:12px;
  line-height:1;
  opacity:.85;
  transform: translateY(-1px);
  transition: transform .18s ease, opacity .18s ease;
}
@media (hover:hover) and (pointer:fine){
  header .hasMenu:hover .caret,
  header .langWrap:hover .caret{
    transform: translateY(-1px) rotate(180deg);
    opacity:1;
  }
}
header .hasMenu.open .caret,
header .langWrap.open .caret{
  transform: translateY(-1px) rotate(180deg);
  opacity:1;
}

/* ---------- Burger: desktop hidden ---------- */
header .burgerBtn{ display:none; }

/* ---------- Dropdown wrappers ---------- */
header .hasMenu,
header .langWrap{ position:relative; }

/* hidden by default */
header .menu,
header .langList{ display:none; }

/* common panel look */
header .menu,
header .langList{
  position:absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 999;

  background:#fff;
  border:1px solid rgba(15,23,42,.12);
  border-radius:14px;
  box-shadow: 0 14px 34px rgba(2,6,23,.14);
  padding:10px;
}

/* language aligns right */
header .langList{
  left:auto;
  right:0;
  min-width:220px;
}

/* anti-close-too-fast buffer */
@media (hover:hover) and (pointer:fine){
  header .menu::before,
  header .langList::before{
    content:"";
    position:absolute;
    left:0; right:0;
    top:-10px;
    height:10px;
  }
}

/* desktop hover open */
@media (hover:hover) and (pointer:fine){
  header .hasMenu:hover > .menu{ display:block; }
  header .langWrap:hover > .langList{ display:block; }
}

/* mobile click open (.open by JS) */
header .hasMenu.open > .menu{ display:block; }
header .langWrap.open > .langList{ display:block; }

/* =========================================================
   MOBILE / BURGER (clean)
   ========================================================= */
@media (max-width: 860px){

  /* show burger */
  header .burgerBtn{ display:inline-flex; }

  /* top row wraps: logo left, actions right */
  header .h1row{
    flex-wrap:wrap;
    gap:10px;
  }

  /* remove desktop separator in tight mode */
  header .h1right{
    border-left:none;
    padding-left:0;
    margin-left:0;
    gap:8px;
  }

  /* hide nav until burger open */
  header .nav{ display:none; }

  /* when open: nav becomes a full-width panel row 2 */
  body.navOpen header .nav{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    width:100%;
    gap:8px;
    margin-top:8px;
    padding-top:10px;
    border-top:1px solid rgba(255,255,255,.16);
  }

  /* nav links full width */
  body.navOpen header .navLink{
    width:100%;
    justify-content:space-between;
    padding:12px 12px;
  }

  /* Put actions (Langues + Connexion) under the open nav to look clean */
  body.navOpen header .h1right{
    width:100%;
    flex-direction:column;
    align-items:stretch;
    margin-top:8px;
    padding-top:10px;
    border-top:1px solid rgba(255,255,255,.16);
  }

  body.navOpen header .h1right .btn,
  body.navOpen header .h1right .btnCta{
    width:100%;
    justify-content:space-between;
  }

  /* dropdown panels become INLINE (no floating) */
  body.navOpen header .menu,
  body.navOpen header .langList{
    position:static;
    width:100%;
    min-width:0;
    box-shadow:none;
    margin-top:8px;
  }
}

/* =========================================================
   FOOTER / DISCLAIMER (scoped)
   ========================================================= */
#disclaimer{ padding:24px 0; }

#disclaimer .discCard{
  border-radius:18px;
  padding:18px 18px 14px;
}

#disclaimer .discText p{
  margin:10px 0;
  line-height:1.45;
}

#disclaimer .disclaimerLinks{
  margin-top:14px;
  font-size:14px;
}

#disclaimer .disclaimerLinks a{ text-decoration:none; }
#disclaimer .disclaimerLinks a:hover{ text-decoration:underline; }

#disclaimer .disclaimerCopy{
  margin-top:10px;
  font-size:13px;
  opacity:.9;
}

@media (max-width:680px){
  #disclaimer{ padding:18px 0; }
  #disclaimer .discCard{ padding:16px 14px 12px; }
  #disclaimer .disclaimerLinks{ line-height:1.6; }
}

/* ===== Mobile: top bar single line, but full-width menu when open ===== */
@media (max-width:860px){

  /* Fermé: tout sur 1 ligne */
  header .h1row{
    flex-wrap: nowrap;
  }
  header .h1right{
    margin-left: auto;
    flex-direction: row;
    align-items: center;
  }

  /* Ouvert: autorise le retour à la ligne */
  body.navOpen header .h1row{
    flex-wrap: wrap;
  }

  /* Menu full width */
  body.navOpen header .nav{
    flex: 0 0 100%;
    width: 100%;
  }

  /* Actions sous le menu proprement */
  body.navOpen header .h1right{
    flex: 0 0 100%;
    width: 100%;
    flex-direction: column;
    align-items: stretch;
  }
}

/* ===== Desktop: menu plus "large" sans bouger le layout ===== */

/* donne plus de place au menu au centre */
@media (min-width: 861px){
  header .nav{
    flex: 1 1 auto;      /* le menu peut prendre plus de place */
    justify-content: center;
    min-width: 0;
  }

  /* réduit un peu la taille du texte menu */
  header .navLink{
    font-size: 13px;     /* teste 13.5px si besoin */
  }

  /* réduit un poil les boutons à droite aussi */
  header .btn,
  header .btnCta{
    font-size: 14px;
  }
}

/* ===== Dropdown items: title bold + small description ===== */

header .menuList .menuA{
  display:block;
  padding:10px 12px;
  border-radius:12px;
  text-decoration:none;
}

header .menuList .menuA:hover{
  background: rgba(15,23,42,.05);
}

/* premier span = titre */
header .menuList .menuA span:first-child{
  display:block;
  font-weight:700;
  font-size:14px;
  line-height:1.2;
}

/* deuxième span = description */
header .menuList .menuA span:nth-child(2){
  display:block;
  font-size:12px;
  line-height:1.2;
  opacity:.7;
  margin-top:2px;
}