/* Shared by all public pages, independent of their older navigation styles. */
#site-mobile-menu {
    position: fixed;
    inset: 0 0 auto auto;
    display: flex;
    flex-direction: column;
    width: min(100%, 420px);
    max-width: 100%;
    height: 100vh;
    height: 100dvh;
    max-height: none;
    margin: 0;
    padding: 0;
    background: #fff;
    color: #173957;
    text-align: left;
    z-index: 20000;
    overflow: hidden;
    visibility: hidden;
    transform: translateX(100%);
    transition: transform .25s ease, visibility 0s .25s;
    box-shadow: -8px 0 32px rgba(1, 35, 85, .16);
}
#site-mobile-menu.menu_active {
    transform: translateX(0);
    visibility: visible;
    transition-delay: 0s;
}
.menu_overlay.site-menu-overlay {
    position: fixed;
    inset: 0;
    z-index: 19999;
    background: rgba(1, 20, 45, .45);
    opacity: 0;
    visibility: hidden;
    touch-action: none;
}
.menu_overlay.site-menu-overlay.active { opacity: 1; visibility: visible; }
body.menu_open {
    position: fixed;
    top: var(--mobile-menu-scroll-top, 0);
    width: 100%;
    height: 100%;
    overflow: hidden !important;
}
#site-mobile-menu .mobile-menu-header {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: space-between;
    padding: max(12px, env(safe-area-inset-top)) 16px 12px;
    border-bottom: 1px solid #e0e6ee;
    font-size: 20px;
    font-weight: 700;
}
#site-mobile-menu button { font-family: inherit; cursor: pointer; border: 0; }
#site-mobile-menu .mobile-menu-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 8px;
    background: #f1f5f9;
    color: #173957;
}
#site-mobile-menu .mobile-menu-nav {
    min-height: 0;
    flex: 1;
    padding: 16px 16px max(24px, env(safe-area-inset-bottom));
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}
#site-mobile-menu ul { margin: 0; padding: 0; list-style: none; }
#site-mobile-menu .mobile-menu-list > li { margin-bottom: 8px; }
#site-mobile-menu .mobile-menu-toggle,
#site-mobile-menu .mobile-menu-list > li > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    min-height: 52px;
    padding: 14px 16px;
    border-radius: 10px;
    background: #f4f7fa;
    color: #173957;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.45;
    text-align: left;
    text-decoration: none;
    overflow-wrap: anywhere;
}
#site-mobile-menu .mobile-menu-toggle svg { flex-shrink: 0; transition: transform .2s; }
#site-mobile-menu .mobile-menu-toggle[aria-expanded="true"] { background: #e7eff8; }
#site-mobile-menu .mobile-menu-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
#site-mobile-menu .mobile-submenu { padding: 6px 0 4px 10px; }
#site-mobile-menu .mobile-submenu[hidden] { display: none; }
#site-mobile-menu .mobile-submenu a,
#site-mobile-menu .navigation-unavailable {
    display: block;
    min-height: 44px;
    padding: 12px 14px;
    border-bottom: 1px solid #edf1f5;
    color: #294965;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.5;
    text-decoration: none;
    overflow-wrap: anywhere;
}
.navigation-unavailable { color: #66768a; }
.navigation-unavailable small { display: block; font-size: 12px; font-weight: 400; color: #66768a; }
.main_nav_subitem > .navigation-unavailable { display: block; padding: 12px 20px; font-size: 14px; }
#site-mobile-menu a:hover { background: #e7eff8; }
#site-mobile-menu :is(a, button):focus-visible,
.header .hamburger:focus-visible { outline: 3px solid #087cc1; outline-offset: -3px; }
.header .hamburger {
    min-width: 44px;
    min-height: 44px;
    padding: 10px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #173957;
    line-height: 1;
}
/* Offset homepage anchor destinations by the fixed navigation header. */
:is(#Avis, #E-SERVICE, #encg-chiffres) { scroll-margin-top: 150px; }
@media (max-width: 768px) {
    #site-mobile-menu { width: 100%; }
    :is(#Avis, #E-SERVICE, #encg-chiffres) { scroll-margin-top: 110px; }
}
@media (min-width: 993px) { .header .hamburger { display: none; } }
@media (prefers-reduced-motion: reduce) {
    #site-mobile-menu, #site-mobile-menu .mobile-menu-toggle svg { transition: none; }
}
