/* CABS — restauration ciblée du menu mobile compact. */
.cabs-mobile-menu { display:none; }

@media (max-width:760px) {
  html:has(.cabs-mobile-menu[open]) { overflow:hidden; }

  .site-header { position:relative; z-index:60; }
  .site-header .site-header__inner {
    display:flex;
    flex-wrap:nowrap;
    align-items:center;
    gap:.75rem;
    padding:.72rem 0;
  }

  .cabs-brand { min-width:0; }
  .cabs-brand__logo-image { width:154px; max-width:58vw; }

  .site-header .site-nav,
  .cabs-header-actions { display:none !important; }

  .cabs-mobile-menu {
    display:block;
    position:relative;
    z-index:3;
    margin-left:auto;
  }

  .cabs-mobile-menu[open]::before {
    content:"";
    position:fixed;
    z-index:1;
    inset:5.15rem 0 0;
    background:rgba(248,246,240,.97);
  }

  .cabs-mobile-menu > summary {
    position:relative;
    z-index:4;
    display:inline-flex;
    align-items:center;
    gap:.55rem;
    min-height:2.6rem;
    padding:.45rem .65rem;
    border:1px solid var(--line);
    background:var(--bg);
    color:var(--text);
    font-size:.78rem;
    font-weight:650;
    letter-spacing:.02em;
    cursor:pointer;
    list-style:none;
  }

  .cabs-mobile-menu > summary::-webkit-details-marker { display:none; }
  .cabs-mobile-menu > summary::marker { content:""; }
  .cabs-mobile-menu[open] > summary { border-color:var(--brand-blue); color:var(--brand-blue); }

  .cabs-mobile-menu__icon {
    display:grid;
    gap:3px;
    width:1rem;
  }
  .cabs-mobile-menu__icon i {
    display:block;
    height:1px;
    background:currentColor;
  }

  .cabs-mobile-menu__panel {
    position:absolute;
    z-index:3;
    top:calc(100% + .55rem);
    right:0;
    width:min(22rem,calc(100vw - 2rem));
    max-height:calc(100vh - 5.5rem);
    overflow:auto;
    padding:1rem 1rem .9rem;
    border:1px solid var(--line);
    border-top:3px solid var(--brand-blue);
    background:var(--surface);
    box-shadow:0 1rem 2.5rem rgba(33,61,64,.14);
  }

  .cabs-mobile-menu__quick,
  .cabs-mobile-menu__rubrics,
  .cabs-mobile-menu__secondary { display:grid; }

  .cabs-mobile-menu__quick {
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:.4rem;
    padding-bottom:.9rem;
    border-bottom:1px solid var(--line);
  }
  .cabs-mobile-menu__quick a {
    padding:.58rem .45rem;
    background:#f4f3ee;
    color:var(--text);
    font-size:.76rem;
    text-align:center;
    text-decoration:none;
  }

  .cabs-mobile-menu__eyebrow {
    margin:.95rem 0 .35rem;
    color:var(--muted);
    font-size:.62rem;
    font-weight:700;
    letter-spacing:.14em;
    text-transform:uppercase;
  }

  .cabs-mobile-menu__rubrics a {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    padding:.72rem 0;
    border-top:1px solid var(--line);
    color:var(--text);
    font:400 1rem/1.2 var(--font-serif);
    text-decoration:none;
  }
  .cabs-mobile-menu__rubrics a::after {
    content:"→";
    color:var(--brand-blue);
    font:400 .9rem/1 sans-serif;
  }

  .cabs-mobile-menu__wiki {
    display:grid;
    grid-template-columns:auto 1fr auto;
    gap:.8rem;
    align-items:center;
    margin-top:.9rem;
    padding:.9rem 0;
    border-block:1px solid var(--line);
    color:var(--text);
    text-decoration:none;
  }
  .cabs-mobile-menu__wiki strong {
    color:var(--brand-blue);
    font:400 2.15rem/.85 var(--font-serif);
  }
  .cabs-mobile-menu__wiki span {
    display:grid;
    gap:.15rem;
    font:400 1.02rem/1.15 var(--font-serif);
  }
  .cabs-mobile-menu__wiki small {
    color:var(--muted);
    font:400 .68rem/1.35 sans-serif;
  }
  .cabs-mobile-menu__wiki::after { content:"→"; color:var(--brand-blue); }

  .cabs-mobile-menu__secondary {
    grid-template-columns:1fr 1fr;
    gap:0 1rem;
    padding-top:.75rem;
  }
  .cabs-mobile-menu__secondary a {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.5rem;
    min-height:2.25rem;
    padding:.45rem 0;
    border-bottom:1px solid color-mix(in srgb,var(--line) 72%,transparent);
    color:var(--muted);
    font-size:.74rem;
    text-decoration:none;
  }
  .cabs-mobile-menu__secondary a::after {
    content:"↗";
    color:var(--brand-blue);
    font-size:.7rem;
  }

  .cabs-mobile-menu a:focus-visible,
  .cabs-mobile-menu summary:focus-visible {
    outline:2px solid var(--brand-blue);
    outline-offset:3px;
  }
}

@media (max-width:390px) {
  .cabs-brand__logo-image { width:146px; }
  .cabs-mobile-menu__panel { width:calc(100vw - 1.5rem); }
}
