/* HEADER STICKY */
.site-header{
  position:fixed;
  top:0;left:0;right:0;
  height:var(--header-h-mobile);
  background:color-mix(in srgb, var(--bg) 92%, transparent);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  z-index:var(--z-header);
  border-bottom:1px solid transparent;
  transition:border-color .25s var(--ease), background .25s var(--ease);
}
.site-header.is-scrolled{
  border-bottom-color:var(--border);
  background:color-mix(in srgb, var(--bg) 96%, transparent);
}
.site-header__inner{
  height:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  max-width:var(--container);
  margin:0 auto;
  padding:0 16px;
}
@media (min-width:768px){
  .site-header{height:var(--header-h);}
  .site-header__inner{padding:0 32px;}
}

/* Brand (logo) */
.brand{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--text);
  text-decoration:none;
}
.brand-mark{
  width:38px;height:38px;
  display:grid;place-items:center;
  background:var(--accent-soft);
  border-radius:50%;
  color:var(--accent);
  flex-shrink:0;
}
.brand-mark svg{width:24px;height:24px;display:block;}
.brand-text{display:flex;flex-direction:column;line-height:1;}
.brand-name{
  font-family:var(--ff-display);
  font-weight:500;
  font-size:1.05rem;
  color:var(--text);
  letter-spacing:-0.01em;
}
.brand-name em{font-style:italic;color:var(--accent);}
.brand-tag{
  font-family:var(--ff-ui);
  font-size:0.66rem;
  text-transform:uppercase;
  letter-spacing:0.16em;
  color:var(--text-mute);
  margin-top:4px;
  display:none;
}
@media (min-width:768px){
  .brand-mark{width:42px;height:42px;}
  .brand-name{font-size:1.18rem;}
  .brand-tag{display:block;}
}

/* Nav desktop */
.nav-desktop{
  display:none;
  align-items:center;
  gap:28px;
}
.nav-desktop a{
  font-family:var(--ff-ui);
  font-size:0.94rem;
  color:var(--text);
  font-weight:500;
  transition:color .2s var(--ease);
}
.nav-desktop a:hover{color:var(--accent);}
.header-actions{display:flex;align-items:center;gap:10px;}
.header-cta{
  display:none;
  align-items:center;
  gap:8px;
  padding:10px 16px;
  border-radius:999px;
  background:var(--accent);
  color:#fff;
  font-family:var(--ff-ui);
  font-weight:600;
  font-size:0.92rem;
  border:1.5px solid var(--text);
  box-shadow:3px 3px 0 var(--text);
  transition:transform .15s var(--ease), box-shadow .15s var(--ease);
}
.header-cta:hover{
  transform:translate(-1px,-1px);
  box-shadow:4px 4px 0 var(--text);
  color:#fff;
}
@media (min-width:900px){
  .nav-desktop{display:flex;}
  .header-cta{display:inline-flex;}
}

/* Burger (mobile) — fixed top-right, z-burger > z-menu > z-header */
.burger{
  position:fixed;
  top:calc((var(--header-h-mobile) - 44px) / 2);
  right:16px;
  width:44px;height:44px;
  display:grid;place-items:center;
  background:rgba(246,240,230,0.85);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  border-radius:50%;
  z-index:var(--z-burger);
  border:1.5px solid var(--text);
}
.burger span,
.burger span::before,
.burger span::after{
  content:"";
  display:block;
  width:20px;height:2px;
  background:var(--text);
  border-radius:2px;
  transition:transform .3s var(--ease), opacity .25s var(--ease), top .25s var(--ease);
}
.burger span{position:relative;}
.burger span::before{position:absolute;top:-7px;left:0;}
.burger span::after{position:absolute;top:7px;left:0;}
.burger.is-open span{background:transparent;}
.burger.is-open span::before{top:0;transform:rotate(45deg);}
.burger.is-open span::after{top:0;transform:rotate(-45deg);}
@media (min-width:900px){
  .burger{display:none;}
}

/* Menu mobile — enfant DIRECT du body, 100dvh, opaque, z-menu > z-header */
.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) + 24px) 24px 40px;
  display:flex;
  flex-direction:column;
  gap:1.25rem;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  transform:translateY(-100%);
  opacity:0;
  visibility:hidden;
  transition:transform .35s var(--ease), opacity .35s var(--ease), visibility 0s linear .35s;
}
.menu-mobile.is-open{
  transform:translateY(0);
  opacity:1;
  visibility:visible;
  transition:transform .35s var(--ease), opacity .35s var(--ease);
}
.menu-mobile a{
  font-family:var(--ff-display);
  font-size:1.5rem;
  font-weight:500;
  color:var(--text);
  padding:6px 0;
  border-bottom:1px solid var(--border);
}
.menu-mobile a:last-of-type{border-bottom:0;}
.menu-mobile .btn{margin-top:auto;font-size:1rem;}
@media (min-width:900px){
  .menu-mobile{display:none;}
}

/* FOOTER */
.site-footer{
  background:var(--surface-deep);
  color:#E8E1D0;
  padding:56px 0 28px;
  margin-top:0;
}
.site-footer :where(h2,h3,h4,p,a,span,small,strong,li){color:inherit;}
.footer-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:32px;
  margin-bottom:36px;
}
.footer-col h4{
  font-family:var(--ff-display);
  font-size:1.1rem;
  color:#fff;
  margin-bottom:16px;
  font-weight:500;
}
.footer-col h4 em{font-style:italic;color:var(--accent-on-dark);}
.footer-col p,
.footer-col li{
  color:#C7C1B0;
  font-size:0.95rem;
  line-height:1.7;
}
.footer-col li{margin-bottom:6px;}
.footer-col a:hover{color:var(--accent-on-dark);}
.footer-brand{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
.footer-brand .brand-mark{background:rgba(255,255,255,0.08);color:var(--accent-on-dark);}
.footer-brand .brand-name{color:#fff;}
.footer-bottom{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding-top:24px;
  border-top:1px solid rgba(255,255,255,0.12);
  font-size:0.84rem;
  color:#A09A88;
  align-items:flex-start;
}
.footer-bottom a{text-decoration:underline;text-underline-offset:3px;}
@media (min-width:768px){
  .footer-grid{grid-template-columns:1.4fr 1fr 1fr;gap:48px;}
  .footer-bottom{flex-direction:row;justify-content:space-between;align-items:center;}
}

/* FAB mobile : bouton appel flottant */
.fab-call{
  position:fixed;
  right:14px;
  bottom:14px;
  width:56px;height:56px;
  border-radius:50%;
  background:var(--accent);
  color:#fff;
  border:2px solid var(--text);
  box-shadow:4px 4px 0 var(--text);
  display:grid;place-items:center;
  z-index:999;
  text-decoration:none;
}
.fab-call svg{width:26px;height:26px;}
@media (min-width:900px){.fab-call{display:none;}}
