/* ============================================================
   Header & footer canoniques — cedricbrun.immo
   Chargé avec assets/tokens.css. Classes préfixées .site- pour
   ne pas entrer en collision avec les styles inline des pages
   (sélecteurs nus `nav {}`, `footer {}` notamment).
   ============================================================ */

/* ---------- Header (injecté sur les pages qui n'avaient pas de nav) ---------- */
header.site-header {
  position: sticky;
  top: 0;
  z-index: 900;
  background: rgba(255, 255, 255, 0.97);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--cb-rule);
  font-family: var(--cb-font);
}
.site-header-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 10px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.site-header-logo { display: flex; align-items: center; text-decoration: none; }
.site-header-logo img { height: 44px; width: auto; display: block; }
.site-header-links {
  display: flex;
  align-items: center;
  gap: 22px;
  flex-wrap: wrap;
  list-style: none;
  margin: 0;
  padding: 0;
}
.site-header-links a {
  color: var(--cb-ink);
  text-decoration: none;
  font-size: 0.95rem;
  font-weight: 600;
  padding: 6px 0;
}
.site-header-links a:hover { color: var(--cb-vert); }
.site-header-cta {
  background: var(--cb-vert);
  color: #fff !important;
  border-radius: 999px;
  padding: 9px 20px !important;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
.site-header-cta:hover { background: var(--cb-vert-fonce); color: #fff !important; }
@media (max-width: 720px) {
  .site-header-links { gap: 14px; font-size: 0.9rem; }
}

/* ---------- Footer canonique ---------- */
/* De nombreuses pages stylent la navbar via un sélecteur nu `nav { position:
   fixed; ... }` : il capturerait le <nav> du footer et l'épinglerait en haut
   de page. On neutralise toutes ces propriétés ici (spécificité supérieure). */
.site-footer nav {
  position: static;
  top: auto; left: auto; right: auto; bottom: auto;
  z-index: auto;
  display: block;
  align-items: initial;
  justify-content: initial;
  width: auto;
  padding: 0;
  margin: 0;
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: none;
  border: none;
}
.site-footer nav a,
.site-footer nav li {
  font-size: 0.92rem;
  font-weight: 400;
  padding: 0;
  margin: 0 0 9px;
  text-transform: none;
  letter-spacing: normal;
}
footer.site-footer {
  background: #0e1f3d;
  color: #cdd6e4;
  font-family: var(--cb-font);
  padding: 56px 24px 28px;
  margin-top: 0;
}
.site-footer a { color: #cdd6e4; text-decoration: none; }
.site-footer a:hover { color: #fff; text-decoration: underline; }
.site-footer-grid {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 40px;
}
@media (max-width: 960px) { .site-footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .site-footer-grid { grid-template-columns: 1fr; } }
.site-footer .site-footer-h {
  color: #fff;
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  margin: 0 0 14px;
}
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer li { margin: 0 0 9px; font-size: 0.92rem; line-height: 1.45; }
.site-footer-brand img { height: 52px; width: auto; filter: brightness(0) invert(1); opacity: 0.95; }
.site-footer-brand p {
  font-size: 0.92rem;
  line-height: 1.55;
  color: #9fb0c8;
  margin: 14px 0 0;
  max-width: 34ch;
}
.site-footer-communes ul {
  columns: 2;
  column-gap: 24px;
}
.site-footer-bottom {
  max-width: 1200px;
  margin: 40px auto 0;
  padding-top: 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: 0.82rem;
  color: #9fb0c8;
}
.site-footer-bottom .legal { display: flex; gap: 18px; flex-wrap: wrap; }
