/* ===================================================================
   I·Perform — Navigation unifiée (header + menu mobile plein écran)
   Identique sur toutes les pages. Inclure ip-nav.css + ip-nav.js.
   =================================================================== */

.ip-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  background: rgba(250, 246, 236, 0.92);
  backdrop-filter: saturate(180%) blur(12px);
  -webkit-backdrop-filter: saturate(180%) blur(12px);
  border-bottom: 1px solid rgba(74, 95, 135, 0.10);
}
.ip-header__inner {
  max-width: 1400px; margin: 0 auto;
  display: flex; align-items: center; gap: 2rem;
  padding: 0.95rem 2rem; min-height: 64px;
}
.ip-logo {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.4rem; font-weight: 500; letter-spacing: -0.02em;
  color: #2F3F5F; text-decoration: none; white-space: nowrap;
}
.ip-logo span { color: #C97B5C; }
.ip-hy { color: #C97B5C; }

.ip-nav {
  display: flex; align-items: center; gap: 1.9rem;
  margin-left: auto;
  font-family: 'DM Sans', system-ui, sans-serif;
}
.ip-nav a {
  position: relative;
  font-size: 0.92rem; font-weight: 500; color: #4B5563;
  text-decoration: none; padding: 0.4rem 0; white-space: nowrap;
  transition: color 0.2s ease;
}
.ip-nav a:hover { color: #4A5F87; }
.ip-nav a[aria-current="page"] { color: #2F3F5F; }
.ip-nav a[aria-current="page"]::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -18px;
  height: 2px; background: #C9A961; border-radius: 2px;
}

.ip-cta {
  font-family: 'DM Sans', system-ui, sans-serif;
  font-size: 0.9rem; font-weight: 600; letter-spacing: 0.01em;
  color: #FAF6EC; background: #C97B5C;
  padding: 0.65rem 1.4rem; border-radius: 100px;
  text-decoration: none; white-space: nowrap;
  transition: background 0.2s ease, transform 0.2s ease;
}
.ip-cta:hover { background: #B0644A; transform: translateY(-1px); }

.ip-burger {
  display: none;
  flex-direction: column; justify-content: center; gap: 5px;
  width: 44px; height: 44px; margin-left: auto;
  padding: 10px; background: none; border: 0; cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.ip-burger span {
  display: block; height: 2px; width: 100%;
  background: #2F3F5F; border-radius: 2px;
  transition: transform 0.25s ease, opacity 0.2s ease;
}
body.ip-menu-open .ip-burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
body.ip-menu-open .ip-burger span:nth-child(2) { opacity: 0; }
body.ip-menu-open .ip-burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* === Menu mobile plein écran (sibling du header, pas enfant) === */
.ip-mobile {
  position: fixed; left: 0; right: 0; top: 64px; bottom: 0; z-index: 999;
  background: #FAF6EC;
  padding: 1.5rem 1.5rem 2rem;
  display: flex; flex-direction: column; gap: 0.2rem;
  overflow-y: auto;
  transform: translateX(100%);
  visibility: hidden;
  transition: transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1), visibility 0.3s;
}
body.ip-menu-open .ip-mobile { transform: translateX(0); visibility: visible; }
.ip-mobile__link {
  display: flex; flex-direction: column; gap: 0.15rem;
  padding: 1.1rem 0.4rem;
  border-bottom: 1px solid rgba(74, 95, 135, 0.12);
  text-decoration: none;
}
.ip-mobile__link span {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.45rem; font-weight: 500; color: #2F3F5F; letter-spacing: -0.01em;
}
.ip-mobile__link small {
  font-family: 'DM Sans', system-ui, sans-serif;
  font-size: 0.82rem; color: #6B6B6B;
}
.ip-mobile__link[aria-current="page"] span { color: #C97B5C; }
.ip-mobile__cta {
  margin-top: 1.6rem; text-align: center;
  font-family: 'DM Sans', system-ui, sans-serif;
  font-size: 1rem; font-weight: 600; color: #FAF6EC;
  background: #C97B5C; padding: 1rem; border-radius: 100px;
  text-decoration: none;
}

@media (max-width: 980px) {
  .ip-nav, .ip-header__inner > .ip-cta { display: none; }
  .ip-burger { display: flex; }
}
@media (min-width: 981px) {
  .ip-mobile { display: none; }
}
