/* TEX-4 Grille fine sur le body */
body{
  background-image:
    linear-gradient(color-mix(in srgb,var(--text) 6%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--text) 6%,transparent) 1px,transparent 1px);
  background-size:32px 32px;
  background-attachment:fixed;
}

/* Header sticky */
.header{
  position:fixed;top:0;left:0;right:0;
  height:var(--header-h-mobile);
  background:color-mix(in srgb,var(--bg) 90%, transparent);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  z-index:var(--z-header);
  border-bottom:1px solid transparent;
  transition:border-color var(--t-mid), background var(--t-mid);
}
.header.is-scrolled{
  border-bottom-color:var(--border);
  background:color-mix(in srgb,var(--bg) 95%, transparent);
}
.header__inner{
  height:100%;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
@media(min-width:768px){
  .header{height:var(--header-h)}
}

/* Brand */
.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:var(--text)}
.brand-mark{
  width:38px;height:38px;flex-shrink:0;
  display:grid;place-items:center;
  border:1px solid color-mix(in srgb,var(--text) 18%,transparent);
  border-radius:50%;
  color:var(--accent);
  background:var(--surface);
}
.brand-mark svg{width:22px;height:22px;display:block}
.brand-text{display:flex;flex-direction:column;line-height:1.05}
.brand-name{font-family:var(--ff-display);font-weight:600;font-size:1.04rem;color:var(--text);letter-spacing:.005em}
.brand-tag{font-family:var(--ff-ui);font-size:.62rem;text-transform:uppercase;letter-spacing:.18em;color:var(--text-mute);margin-top:2px}

/* Nav desktop */
.nav-desktop{display:none;align-items:center;gap:28px}
.nav-desktop a{
  font-family:var(--ff-ui);font-size:.86rem;color:var(--text-2);
  position:relative;padding:6px 0;font-weight:500;
}
.nav-desktop a:hover{color:var(--text)}
.nav-desktop a::after{
  content:"";position:absolute;left:0;right:0;bottom:-2px;
  height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;
  transition:transform var(--t-fast);
}
.nav-desktop a:hover::after{transform:scaleX(1)}
.header__cta{display:none !important}
@media(min-width:980px){
  .nav-desktop{display:flex}
  .header__cta{display:inline-flex !important}
}

/* Burger */
.burger{
  width:42px;height:42px;
  display:grid;place-items:center;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface);
  position:relative;
  transition:background var(--t-fast);
}
.burger span,.burger::before,.burger::after{
  content:"";display:block;
  width:18px;height:1.5px;background:var(--text);
  position:absolute;left:12px;
  transition:transform var(--t-mid), opacity var(--t-mid), top var(--t-mid);
}
.burger::before{top:14px}
.burger span{top:20px}
.burger::after{top:26px}
.burger.is-open::before{top:20px;transform:rotate(45deg)}
.burger.is-open span{opacity:0}
.burger.is-open::after{top:20px;transform:rotate(-45deg)}
@media(min-width:980px){.burger{display:none}}

/* Menu mobile (enfant direct du body, AUCUN parent transform) */
.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:6px;
  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:not(.btn){
  display:block;
  padding:18px 4px;
  font-family:var(--ff-display);
  font-size:1.5rem;
  border-bottom:1px solid var(--border);
  color:var(--text);
}
.menu-mobile .menu-cta{
  margin-top:18px;display:flex;flex-direction:column;gap:10px;
}
.menu-mobile .menu-cta .btn{width:100%}
.menu-mobile .menu-meta{
  margin-top:auto;padding-top:18px;
  font-size:.78rem;color:var(--text-mute);
  line-height:1.6;
}
.menu-mobile .menu-meta strong{display:block;color:var(--text);font-weight:600;margin-bottom:4px;font-family:var(--ff-display)}
@media(min-width:980px){
  .burger,.menu-mobile{display:none}
}

/* Boutons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:13px 22px;
  border-radius:var(--r-md);
  font-family:var(--ff-ui);font-size:.92rem;font-weight:600;letter-spacing:.01em;
  text-decoration:none;
  cursor:pointer;
  transition:transform var(--t-fast), background var(--t-fast), color var(--t-fast), border-color var(--t-fast);
  white-space:nowrap;
  min-height:44px;
}
.btn-primary{background:var(--primary);color:var(--bg)}
.btn-primary:hover{background:var(--text);transform:translateY(-1px)}
.btn-outline{background:transparent;color:var(--text);border:1px solid color-mix(in srgb,var(--text) 30%,transparent)}
.btn-outline:hover{background:var(--text);color:var(--bg)}
.btn-accent{background:var(--accent);color:var(--primary)}
.btn-accent:hover{background:var(--accent-2);transform:translateY(-1px)}
.btn-wa{background:var(--wa-green);color:#fff}
.btn-wa:hover{filter:brightness(.95);transform:translateY(-1px)}
.btn-ghost{color:var(--text);text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.btn svg{width:16px;height:16px}
.btn-small{padding:10px 16px;font-size:.82rem;min-height:auto}

/* Footer */
.footer{
  background:var(--primary);color:#D4D6D7;
  padding:64px 0 28px;
  border-top:1px solid var(--border);
}
.footer__grid{
  display:grid;grid-template-columns:1fr;gap:32px;
  margin-bottom:32px;
}
.footer h4{font-family:var(--ff-display);font-size:.98rem;color:#fff;text-transform:uppercase;letter-spacing:.12em;margin-bottom:14px;font-weight:600}
.footer p,.footer a{font-size:.9rem;line-height:1.7;color:#D4D6D7}
.footer a:hover{color:var(--accent-2)}
.footer .brand-mark{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12);color:var(--accent-2)}
.footer .brand-name{color:#fff}
.footer .brand-tag{color:rgba(212,214,215,.6)}
.footer__bottom{
  border-top:1px solid rgba(255,255,255,.08);
  padding-top:22px;
  display:flex;flex-direction:column;gap:10px;justify-content:space-between;
  font-size:.78rem;color:rgba(212,214,215,.7)
}
.footer__bottom a{color:rgba(212,214,215,.85);text-decoration:underline;text-underline-offset:3px}
@media(min-width:768px){
  .footer__grid{grid-template-columns:1.4fr 1fr 1fr 1fr;gap:42px}
  .footer__bottom{flex-direction:row;align-items:center}
}

/* FAB Appeler */
.fab{
  position:fixed;
  right:18px;bottom:18px;
  z-index:var(--z-fab);
  display:inline-flex;align-items:center;gap:10px;
  padding:13px 18px;
  background:var(--accent);color:var(--primary);
  border-radius:50px;font-family:var(--ff-ui);font-weight:600;font-size:.88rem;
  text-decoration:none;
  box-shadow:0 8px 22px rgba(43,46,48,.25);
  opacity:0;transform:translateY(20px);pointer-events:none;
  transition:opacity var(--t-mid), transform var(--t-mid);
}
.fab.is-visible{opacity:1;transform:none;pointer-events:auto}
.fab svg{width:18px;height:18px}
@media(min-width:980px){.fab{display:none}}
