/*
 * CB06 — Menu mobile (v2, refonte complète).
 * Remplace entièrement l'ancien système (cb06-mobile-menu.css et les 5
 * feuilles v11 à v15 qui l'ont précédé). Nouveau nommage (cb06-menu-*)
 * pour ne partager aucune règle avec l'ancien système pendant la
 * migration progressive des pages communes.
 *
 * Comportement : panneau plein hauteur qui glisse depuis la droite,
 * pensé pour une utilisation à une main. Icônes en SVG inline (aucun
 * pictogramme dépendant du rendu système, aucun emoji).
 */

.cb06-menu-bar,
.cb06-menu-backdrop,
.cb06-menu-panel{
  display:none;
}

@media (max-width:1023px){
  .cb06-menu-bar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    min-height:64px;
    padding:10px 18px;
    background:var(--cb06-bg,#fff);
    border-bottom:1px solid var(--cb06-border,#e1e8f2);
  }

  .cb06-menu-bar-brand{ display:flex; align-items:center; min-width:0; }
  .cb06-menu-bar-brand img{ display:block; height:32px; width:auto; max-width:100px; object-fit:contain; }

  .cb06-menu-bar-actions{ display:flex; align-items:center; gap:8px; }

  .cb06-menu-bar-call,
  .cb06-menu-hit{
    display:grid;
    place-items:center;
    width:44px;
    height:44px;
    border:0;
    border-radius:var(--cb06-r-sm,8px);
    cursor:pointer;
    -webkit-tap-highlight-color:transparent;
  }

  .cb06-menu-bar-call{
    background:var(--cb06-navy,#041333);
    color:#fff;
    text-decoration:none;
  }

  .cb06-menu-hit{
    background:var(--cb06-bg-alt,#f5f8fc);
    color:var(--cb06-navy,#041333);
  }

  .cb06-menu-hit:focus-visible,
  .cb06-menu-bar-call:focus-visible,
  .cb06-menu-close:focus-visible,
  .cb06-menu-list a:focus-visible,
  .cb06-menu-phone-btn:focus-visible,
  .cb06-menu-client-btn:focus-visible{
    outline:3px solid rgba(7,95,236,.5);
    outline-offset:2px;
  }

  /* Fond */
  .cb06-menu-backdrop{
    display:block;
    position:fixed;
    inset:0;
    z-index:2147483000;
    background:rgba(4,19,51,.5);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .2s ease;
  }
  .cb06-menu-backdrop.is-open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }

  /* Panneau plein hauteur, glisse depuis la droite */
  .cb06-menu-panel{
    display:flex;
    flex-direction:column;
    position:fixed;
    top:0;
    right:0;
    bottom:0;
    z-index:2147483001;
    width:min(360px,88vw);
    max-width:100vw;
    background:var(--cb06-bg,#fff);
    box-shadow:-16px 0 44px rgba(4,19,51,.22);
    transform:translateX(100%);
    transition:transform .26s cubic-bezier(.2,.8,.2,1);
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }
  .cb06-menu-panel.is-open{
    transform:translateX(0);
  }

  .cb06-menu-panel-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:16px 16px 14px;
    border-bottom:1px solid var(--cb06-border,#e1e8f2);
    flex:0 0 auto;
  }
  .cb06-menu-panel-logo img{ display:block; height:28px; width:auto; }

  .cb06-menu-close{
    display:grid;
    place-items:center;
    width:44px;
    height:44px;
    border:0;
    border-radius:var(--cb06-r-sm,8px);
    background:var(--cb06-bg-alt,#f5f8fc);
    color:var(--cb06-navy,#041333);
    cursor:pointer;
    -webkit-tap-highlight-color:transparent;
  }

  .cb06-menu-list{
    display:flex;
    flex-direction:column;
    padding:8px 10px;
    flex:1 1 auto;
  }
  .cb06-menu-list a{
    display:flex;
    align-items:center;
    min-height:52px;
    padding:0 10px;
    border-radius:var(--cb06-r-sm,8px);
    color:var(--cb06-navy,#041333);
    font-size:16px;
    font-weight:var(--cb06-fw-semibold,600);
    text-decoration:none;
    border-bottom:1px solid var(--cb06-border,#e1e8f2);
  }
  .cb06-menu-list a:last-child{ border-bottom:0; }
  .cb06-menu-list a:active{ background:var(--cb06-bg-alt,#f5f8fc); }

  .cb06-menu-panel-foot{
    flex:0 0 auto;
    display:flex;
    flex-direction:column;
    gap:10px;
    padding:16px;
    border-top:1px solid var(--cb06-border,#e1e8f2);
    background:var(--cb06-bg-alt,#f5f8fc);
  }

  .cb06-menu-phone-btn{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    min-height:50px;
    border-radius:var(--cb06-r-pill,999px);
    background:var(--cb06-navy,#041333);
    color:#fff;
    text-decoration:none;
    font-size:15px;
    font-weight:var(--cb06-fw-semibold,600);
  }

  .cb06-menu-reassure{
    margin:0;
    text-align:center;
    color:var(--cb06-text-secondary,#55647a);
    font-size:12.5px;
    line-height:1.4;
  }

  .cb06-menu-client-btn{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:50px;
    border:0;
    border-radius:var(--cb06-r-pill,999px);
    background:var(--cb06-yellow,#ffd21f);
    color:var(--cb06-navy,#041333);
    font-size:15px;
    font-weight:var(--cb06-fw-semibold,600);
    cursor:pointer;
  }

  html.cb06-menu-open,
  body.cb06-menu-open{
    overflow:hidden;
  }

  /* Evite tout chevauchement avec le CTA flottant, le bouton d'aide ou le
     bandeau cookies pendant que le menu est ouvert. */
  body.cb06-menu-open .v4-mobile-cta,
  body.cb06-menu-open #cb06-aide,
  body.cb06-menu-open #cb06-cookie-mini-v63{
    display:none !important;
  }
}

@media (max-width:359px){
  .cb06-menu-bar-brand img{ height:28px; max-width:84px; }
  .cb06-menu-panel{ width:100vw; }
}

@media (prefers-reduced-motion: reduce){
  .cb06-menu-panel,
  .cb06-menu-backdrop{
    transition:none;
  }
}
