/* HEADER */
.header{
  position:sticky;top:0;z-index:var(--z-header);
  background:color-mix(in srgb, var(--bg) 92%, transparent);
  backdrop-filter:saturate(180%) blur(10px);
  -webkit-backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid color-mix(in srgb, var(--text) 8%, transparent);
}
.header-inner{
  max-width:var(--container);
  margin:0 auto;
  padding:0 24px;
  height:var(--header-h);
  display:flex;align-items:center;gap:16px;
}
.brand{
  display:inline-flex;align-items:center;gap:12px;
  color:var(--text);text-decoration:none;
}
.brand:hover{text-decoration:none;}
.brand-mark{
  width:44px;height:44px;display:inline-grid;place-items:center;
  border-radius:8px;flex-shrink:0;
}
.brand-mark svg{display:block;width:44px;height:44px;border-radius:8px;}
.brand-text{display:flex;flex-direction:column;line-height:1.1;}
.brand-name{font-family:var(--ff-display);font-weight:700;font-size:1.18rem;color:var(--text);}
.brand-sub{font-size:.74rem;color:var(--text-mute);letter-spacing:.04em;text-transform:uppercase;}

.nav-desktop{display:flex;align-items:center;gap:22px;margin-left:auto;}
.nav-desktop a{
  color:var(--text);font-weight:500;font-size:.94rem;
  position:relative;padding:6px 0;
}
.nav-desktop a:hover{color:var(--accent);text-decoration:none;}
.nav-desktop a::after{
  content:"";position:absolute;left:0;bottom:0;
  width:0;height:2px;background:var(--accent);
  transition:width .25s ease;
}
.nav-desktop a:hover::after{width:100%;}

.header-cta{display:flex;align-items:center;gap:10px;margin-left:18px;}

@media (max-width:1023px){
  .nav-desktop{display:none;}
  .header-cta .btn-ghost span,
  .header-cta .btn-primary span{display:none;}
  .header-cta .btn{padding:8px 10px;min-height:40px;}
}
@media (max-width:768px){
  .header-inner{height:var(--header-h-mobile);padding:0 16px;gap:10px;}
  .brand-sub{display:none;}
  .header-cta{margin-left:auto;gap:6px;}
}
@media (max-width:768px){
  /* tous les CTA passent dans le menu mobile pour eviter le chevauchement avec le burger */
  .header-cta{display:none;}
}

/* BURGER */
.burger{
  display:none;
  position:fixed;
  top:calc((var(--header-h-mobile) - 44px) / 2);
  right:12px;
  width:44px;height:44px;
  background:transparent;border:0;
  z-index:1201; /* above menu */
  cursor:pointer;
}
.burger span,
.burger span::before,
.burger span::after{
  content:"";display:block;
  width:24px;height:2px;
  background:var(--text);
  border-radius:2px;
  position:absolute;left:50%;top:50%;
  transform:translate(-50%,-50%);
  transition:transform .3s ease, opacity .2s ease, background .2s ease;
}
.burger span::before{transform:translate(-50%,calc(-50% - 7px));}
.burger span::after{transform:translate(-50%,calc(-50% + 7px));}
.burger.is-open span{background:transparent;}
.burger.is-open span::before{transform:translate(-50%,-50%) rotate(45deg);background:var(--text);}
.burger.is-open span::after{transform:translate(-50%,-50%) rotate(-45deg);background:var(--text);}

@media (max-width:1023px){
  .burger{display:block;}
}

/* MENU MOBILE (regle absolue) */
.menu-mobile{
  position:fixed;
  top:0;left:0;
  width:100%;
  height:100dvh;
  background:var(--bg);
  z-index:var(--z-menu);
  padding:calc(var(--header-h-mobile) + 32px) 28px 40px;
  display:flex;
  flex-direction:column;
  gap:.2rem;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  transform:translateY(-100%);
  opacity:0;
  visibility:hidden;
  transition:transform .35s ease, opacity .35s ease, visibility 0s linear .35s;
}
.menu-mobile.is-open{
  transform:translateY(0);
  opacity:1;
  visibility:visible;
  transition:transform .35s ease, opacity .35s ease;
}
.menu-mobile > a{
  font-family:var(--ff-display);
  font-size:1.6rem;
  color:var(--text);
  text-decoration:none;
  padding:14px 0;
  border-bottom:1px solid color-mix(in srgb, var(--text) 12%, transparent);
}
.menu-mobile > a:hover{color:var(--accent);}
.menu-mobile .menu-cta{
  margin-top:18px;
  border-bottom:0;
  font-family:var(--ff-body);
  font-size:1rem;
  width:100%;
  text-align:center;
  padding-top:14px;
  padding-bottom:14px;
}
.menu-mobile .menu-cta.btn-primary{color:#fff;}
.menu-mobile .menu-cta.btn-ghost{color:var(--text);}
.menu-mobile .menu-cta:first-of-type{margin-top:28px;}

@media (min-width:1024px){
  .burger{display:none;}
  .menu-mobile{display:none;}
}

/* FOOTER */
.footer{
  background:#13243C;
  color:#E8EAEE;
  padding:56px 0 24px;
  margin-top:60px;
}
.footer-inner{
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1fr;
  gap:32px;
  padding-bottom:32px;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.footer-brand .brand-name{color:#fff;font-size:1.4rem;display:block;margin-bottom:10px;}
.footer-brand p{color:rgba(255,255,255,.7);max-width:36ch;margin:0;}
.footer-col h4{
  font-family:var(--ff-display);
  color:#fff;font-size:1rem;
  margin:0 0 14px;
  letter-spacing:.02em;
}
.footer-col a,
.footer-col span{
  display:block;
  color:rgba(255,255,255,.74);
  font-size:.92rem;
  padding:3px 0;
  text-decoration:none;
}
.footer-col a:hover{color:#fff;text-decoration:underline;}
.footer-bottom{
  max-width:var(--container);
  margin:0 auto;
  padding:24px 24px 0;
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:12px;
  color:rgba(255,255,255,.55);
  font-size:.84rem;
}

@media (max-width:768px){
  .footer-inner{grid-template-columns:1fr 1fr;gap:24px;padding:0 16px 28px;}
  .footer-brand{grid-column:1/-1;}
  .footer-bottom{padding:24px 16px 0;}
}
@media (max-width:480px){
  .footer-inner{grid-template-columns:1fr;}
}
