/* ============================================================
   Menu mobile — hamburger + overlay plein écran
   ============================================================ */

@media (max-width: 991.98px) {
  /* Barre fixe sur toutes les pages mobile */
  #ftco-navbar.ftco-navbar-light,
  .ftco-navbar-light,
  #ftco-navbar.ftco-navbar-light.scrolled,
  #ftco-navbar.ftco-navbar-light.is-nav-solid,
  body.index-accueil-v8 #ftco-navbar.ftco-navbar-light,
  body:not(.index-page) #ftco-navbar.ftco-navbar-light,
  body.page-navbar-dark #ftco-navbar.ftco-navbar-light,
  body.contact-page #ftco-navbar.ftco-navbar-light,
  body.contact-v31-page #ftco-navbar.ftco-navbar-light,
  body.mobile-nav-open #ftco-navbar.ftco-navbar-light,
  body.mobile-nav-open .ftco-navbar-light {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    margin-top: 0 !important;
    z-index: 1040 !important;
  }

  #ftco-navbar .navbar-menu-container,
  .ftco-navbar-light .navbar-menu-container {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    max-width: none !important;
    position: relative;
    z-index: 1045;
    min-height: 72px;
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  /* Logo toujours au-dessus de l’overlay (ouvert ou fermé) */
  #ftco-navbar .navbar-brand,
  .ftco-navbar-light .navbar-brand,
  body.mobile-nav-open #ftco-navbar .navbar-brand,
  body.mobile-nav-open .ftco-navbar-light .navbar-brand {
    position: relative !important;
    z-index: 1046 !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    display: flex !important;
    align-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 0 !important;
  }

  #ftco-navbar .navbar-brand .navbar-logo,
  .ftco-navbar-light .navbar-brand .navbar-logo,
  body.mobile-nav-open #ftco-navbar .navbar-brand .navbar-logo {
    visibility: visible !important;
    opacity: 1 !important;
    display: block !important;
  }

  #ftco-navbar .navbar-brand .navbar-logo.navbar-logo--lockup,
  .ftco-navbar-light .navbar-brand .navbar-logo.navbar-logo--lockup {
    height: 58px !important;
    max-height: 58px !important;
    width: auto !important;
    max-width: 168px !important;
    object-fit: contain !important;
    object-position: left center !important;
  }

  /* --- Icône hamburger (2 traits) — centré verticalement avec le logo --- */
  .navbar-toggler,
  .ftco-navbar-light .navbar-toggler,
  .ftco-navbar-light .navbar-menu-container .navbar-toggler,
  .navbar-expand-lg .navbar-toggler,
  body.index-page .ftco-navbar-light .navbar-toggler,
  body.index-page .ftco-navbar-light.scrolled .navbar-toggler,
  body.index-page .ftco-navbar-light.scrolled .navbar-menu-container .navbar-toggler,
  body:not(.index-page) .ftco-navbar-light .navbar-toggler,
  body:not(.index-page) .ftco-navbar-light.scrolled .navbar-toggler,
  body.index-accueil-v8 .ftco-navbar-light .navbar-toggler {
    position: relative !important;
    top: auto !important;
    bottom: auto !important;
    align-self: center !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    max-width: 44px !important;
    padding: 0 !important;
    margin: 0 0 0 auto !important;
    border: none !important;
    border-color: transparent !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: transparent !important;
    font-size: 0 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    line-height: 0 !important;
    cursor: pointer;
    z-index: 1046;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    visibility: visible !important;
    opacity: 1 !important;
    outline: none !important;
    -webkit-appearance: none;
    appearance: none;
  }

  .navbar-toggler:hover,
  .navbar-toggler:focus,
  .navbar-toggler.active,
  .ftco-navbar-light .navbar-toggler:hover,
  .ftco-navbar-light .navbar-toggler:focus,
  body.index-page .ftco-navbar-light.scrolled .navbar-toggler:hover,
  body.index-page .ftco-navbar-light.scrolled .navbar-toggler:focus,
  body.index-page .ftco-navbar-light.scrolled .navbar-toggler.active {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    color: transparent !important;
    outline: none !important;
  }

  .navbar-toggler .oi-menu,
  .navbar-toggler .oi {
    display: none !important;
  }

  .navbar-toggler::before,
  .navbar-toggler::after {
    content: "" !important;
    position: absolute !important;
    left: 50% !important;
    width: 22px !important;
    height: 1.5px !important;
    background: #04344A !important;
    border-radius: 1px;
    transform: translateX(-50%);
    transition:
      top 0.28s ease,
      transform 0.28s ease,
      opacity 0.2s ease;
    display: block !important;
    pointer-events: none;
  }

  .navbar-toggler::before {
    top: calc(50% - 5px) !important;
  }

  .navbar-toggler::after {
    top: calc(50% + 5px) !important;
  }

  /* État ouvert → croix */
  body.mobile-nav-open .navbar-toggler::before,
  .navbar-toggler[aria-expanded="true"]::before {
    top: 50% !important;
    transform: translateX(-50%) rotate(45deg);
  }

  body.mobile-nav-open .navbar-toggler::after,
  .navbar-toggler[aria-expanded="true"]::after {
    top: 50% !important;
    transform: translateX(-50%) rotate(-45deg);
  }

  /* --- Overlay plein écran --- */
  .navbar-collapse,
  .navbar-expand-lg .navbar-collapse,
  .ftco-navbar-light .navbar-collapse,
  body.index-accueil-v8 .ftco-navbar-light .navbar-collapse {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    height: 100vh !important;
    height: 100dvh !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 88px 28px 48px !important;
    background: #FBF6EC !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border-radius: 0 !important;
    border: none !important;
    box-shadow: none !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    z-index: 1040 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.32s ease, visibility 0.32s ease;
  }

  .navbar-collapse.show,
  .navbar-expand-lg .navbar-collapse.show,
  .ftco-navbar-light .navbar-collapse.show,
  body.mobile-nav-open .navbar-collapse,
  body.mobile-nav-open .navbar-expand-lg .navbar-collapse,
  body.mobile-nav-open .ftco-navbar-light .navbar-collapse {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    animation: none !important;
  }

  .navbar-collapse.collapsing,
  body.mobile-nav-open .navbar-collapse.collapsing {
    display: flex !important;
    height: 100vh !important;
    height: 100dvh !important;
    opacity: 1 !important;
    visibility: visible !important;
    transition: opacity 0.28s ease !important;
  }

  /* Liste centrée, aérée */
  .navbar-collapse .navbar-nav,
  .ftco-navbar-light .navbar-collapse .navbar-nav,
  body.index-accueil-v8 .ftco-navbar-light .navbar-nav {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100%;
    max-width: 420px;
    margin: 0 auto !important;
    padding: 0 !important;
    gap: 0;
    transform: none !important;
    transition: none !important;
  }

  .navbar-collapse .navbar-nav > .nav-item,
  .ftco-navbar-light .navbar-collapse .navbar-nav > .nav-item {
    width: 100%;
    margin: 0 !important;
    text-align: center;
  }

  .navbar-collapse .navbar-nav > .nav-item > .nav-link,
  .ftco-navbar-light .navbar-collapse .navbar-nav > .nav-item > .nav-link,
  body.index-accueil-v8 .ftco-navbar-light .navbar-nav > .nav-item > .nav-link {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100%;
    min-height: auto !important;
    padding: 1.05rem 0.5rem !important;
    margin: 0 !important;
    border: none !important;
    border-bottom: none !important;
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    color: #232931 !important;
    font-family: "Cormorant Garamond", Georgia, serif !important;
    font-size: clamp(1.45rem, 5.2vw, 1.85rem) !important;
    font-weight: 500 !important;
    letter-spacing: 0.02em;
    line-height: 1.25 !important;
    text-align: center !important;
    text-transform: none;
    opacity: 1 !important;
    -webkit-text-fill-color: #232931 !important;
  }

  .page-navbar-dark #ftco-navbar .navbar-nav > .nav-item:not(.cta) > .nav-link:hover,
  .navbar-collapse .navbar-nav > .nav-item:not(.cta) > .nav-link:hover,
  .navbar-collapse .navbar-nav > .nav-item:not(.cta) > .nav-link:focus,
  .ftco-navbar-light .navbar-collapse .navbar-nav > .nav-item:not(.cta) > .nav-link:hover,
  body:not(.index-page) .ftco-navbar-light .navbar-collapse .navbar-nav > .nav-item:not(.cta) > .nav-link:hover,
  body.page-navbar-dark #ftco-navbar .navbar-collapse .navbar-nav > .nav-item:not(.cta) > .nav-link:hover {
    color: #9F382C !important;
    -webkit-text-fill-color: #9F382C !important;
    background: transparent !important;
    padding-left: 0.5rem !important;
  }

  .navbar-collapse .navbar-nav > .nav-item > .nav-link span,
  .navbar-collapse .navbar-nav > .nav-item > .nav-link span:before {
    position: static !important;
    display: inline !important;
    padding: 0 !important;
    background: none !important;
    transform: none !important;
    visibility: visible !important;
    content: none !important;
  }

  .navbar-collapse .navbar-nav > .nav-item > .nav-link span:before {
    display: none !important;
  }

  /* CTA en pastille sous les liens */
  .navbar-collapse .navbar-nav > .nav-item.cta {
    margin-top: 1.75rem !important;
    width: auto;
  }

  .navbar-collapse .navbar-nav > .nav-item.cta .nav-link,
  .ftco-navbar-light .navbar-collapse .navbar-nav > .nav-item.cta .nav-link,
  body.index-accueil-v8 .ftco-navbar-light .navbar-nav > .nav-item.cta .nav-link {
    display: inline-flex !important;
    width: auto !important;
    min-width: 0 !important;
    padding: 0.7rem 1.65rem !important;
    border-radius: 999px !important;
    background: #9F382C !important;
    border: 2px solid #9F382C !important;
    color: #FBF6EC !important;
    -webkit-text-fill-color: #FBF6EC !important;
    font-family: "Cormorant Garamond", Georgia, serif !important;
    font-size: clamp(1.45rem, 5.2vw, 1.85rem) !important;
    font-weight: 500 !important;
    letter-spacing: 0.02em;
    line-height: 1.25 !important;
    box-shadow: 0 3px 12px rgba(159, 56, 44, 0.22) !important;
  }

  .navbar-collapse .navbar-nav > .nav-item.cta .nav-link span {
    color: #FBF6EC !important;
    -webkit-text-fill-color: #FBF6EC !important;
  }

  .navbar-collapse .navbar-nav > .nav-item.cta .nav-link:hover,
  .navbar-collapse .navbar-nav > .nav-item.cta .nav-link:focus,
  .navbar-collapse .navbar-nav > .nav-item.cta .nav-link:active,
  .ftco-navbar-light .navbar-collapse .navbar-nav > .nav-item.cta .nav-link:hover,
  .ftco-navbar-light .navbar-collapse .navbar-nav > .nav-item.cta .nav-link:focus,
  .ftco-navbar-light .navbar-collapse .navbar-nav > .nav-item.cta .nav-link:active,
  #ftco-navbar .navbar-collapse .navbar-nav > .nav-item.cta .nav-link:hover,
  #ftco-navbar .navbar-collapse .navbar-nav > .nav-item.cta .nav-link:focus,
  #ftco-navbar .navbar-collapse .navbar-nav > .nav-item.cta .nav-link:active,
  body.page-navbar-dark #ftco-navbar .navbar-collapse .navbar-nav > .nav-item.cta .nav-link:hover,
  body.page-navbar-dark #ftco-navbar .navbar-collapse .navbar-nav > .nav-item.cta .nav-link:focus,
  body.page-navbar-dark #ftco-navbar .navbar-collapse .navbar-nav > .nav-item.cta .nav-link:active {
    background: #7d2c22 !important;
    border-color: #7d2c22 !important;
    color: #FBF6EC !important;
    -webkit-text-fill-color: #FBF6EC !important;
    box-shadow: 0 6px 18px rgba(159, 56, 44, 0.35) !important;
    padding: 0.7rem 1.65rem !important;
  }

  .navbar-collapse .navbar-nav > .nav-item.cta .nav-link:hover span,
  .navbar-collapse .navbar-nav > .nav-item.cta .nav-link:focus span,
  .navbar-collapse .navbar-nav > .nav-item.cta .nav-link:active span,
  #ftco-navbar .navbar-collapse .navbar-nav > .nav-item.cta .nav-link:hover span,
  #ftco-navbar .navbar-collapse .navbar-nav > .nav-item.cta .nav-link:focus span,
  #ftco-navbar .navbar-collapse .navbar-nav > .nav-item.cta .nav-link:active span {
    color: #FBF6EC !important;
    -webkit-text-fill-color: #FBF6EC !important;
  }

  /* Header (logo + croix) reste visible au-dessus de l’overlay */
  body.mobile-nav-open #ftco-navbar.ftco-navbar-light,
  body.mobile-nav-open .ftco-navbar-light {
    background: #FBF6EC !important;
    position: fixed !important;
    top: 0 !important;
    z-index: 1050 !important;
  }

  body.mobile-nav-open #ftco-navbar .navbar-menu-container,
  body.mobile-nav-open .ftco-navbar-light .navbar-menu-container {
    position: relative !important;
    z-index: 1051 !important;
    background: #FBF6EC !important;
  }

  body.mobile-nav-open {
    overflow: hidden !important;
  }

  /* Heroes pages : espace sous la nav fixe (label non collé) */
  .approche-page-hero {
    min-height: clamp(380px, 48vh, 520px);
    padding: calc(72px + 28px) 0 48px;
  }
}

@media (max-width: 575.98px) {
  .navbar-toggler,
  .ftco-navbar-light .navbar-menu-container .navbar-toggler {
    min-width: 44px !important;
    min-height: 44px !important;
    width: 44px !important;
    height: 44px !important;
    font-size: 0 !important;
  }

  .navbar-collapse,
  .ftco-navbar-light .navbar-collapse {
    padding: 80px 22px 40px !important;
  }

  .navbar-collapse .navbar-nav > .nav-item > .nav-link {
    padding: 0.95rem 0.35rem !important;
  }

  /* Bouton flottant RDV — même finesse que le CTA nav, texte lisible */
  .floating-rdv-btn {
    padding: 0.4rem 1.35rem !important;
    font-size: 1.05rem !important;
    font-weight: 500 !important;
    line-height: 1.2 !important;
    gap: 6px !important;
  }

  .floating-rdv-btn__arrow {
    width: 0.55rem !important;
    height: 0.55rem !important;
  }
}

/* Contraste hero mobile — voile dense derrière le texte (bas de bandeau) */
@media (max-width: 991.98px) {
  .approche-page-hero-overlay {
    background: linear-gradient(
      180deg,
      rgba(251, 246, 236, 0.42) 0%,
      rgba(251, 246, 236, 0.62) 28%,
      rgba(251, 246, 236, 0.86) 58%,
      rgba(251, 246, 236, 0.95) 100%
    ) !important;
  }

  .approche-page-hero .contact-page-hero-title {
    text-shadow: 0 1px 14px rgba(251, 246, 236, 0.9);
  }

  .approche-page-hero .contact-hero-eyebrow,
  .approche-page-hero .contact-page-hero-lead {
    text-shadow: 0 1px 10px rgba(251, 246, 236, 0.85);
  }

  .index-hero__overlay {
    background: linear-gradient(
      180deg,
      rgba(251, 246, 236, 0.55) 0%,
      rgba(251, 246, 236, 0.78) 40%,
      rgba(251, 246, 236, 0.92) 100%
    ) !important;
  }

  .index-hero .contact-page-hero-title {
    text-shadow: 0 1px 14px rgba(251, 246, 236, 0.9);
  }

  .index-hero .contact-hero-eyebrow,
  .index-hero .contact-page-hero-lead {
    text-shadow: 0 1px 10px rgba(251, 246, 236, 0.85);
  }
}
