@media (max-width:1100px) {
  body.kartop-mobile-menu-open {
    position:fixed;
    left:0;
    right:0;
    width:100%;
    overflow:hidden;
  }
  .kartop-mobile-menu {
    position:fixed;
    inset:0;
    z-index:2000;
    width:100vw;
    height:100vh;
    height:100dvh;
    background:#f8f6f2;
    color:#292b2d;
    opacity:0;
    transform:translateY(10px);
    transition:opacity .2s ease,transform .2s ease;
    pointer-events:none;
  }
  .kartop-mobile-menu.is-visible {
    opacity:1;
    transform:none;
    pointer-events:auto;
  }
  .kartop-mobile-menu__shell {
    display:grid;
    grid-template-rows:auto minmax(0,1fr) auto;
    width:100%;
    height:100%;
    padding-top:env(safe-area-inset-top);
    padding-bottom:env(safe-area-inset-bottom);
  }
  .kartop-mobile-menu__header {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    min-height:76px;
    padding:12px clamp(18px,5vw,32px);
    border-bottom:1px solid #e7e1d9;
    background:#fff;
  }
  .kartop-mobile-menu__brand { display:block; width:min(160px,55vw); }
  .kartop-mobile-menu__brand img { display:block; width:100%; height:auto; }
  .kartop-mobile-menu__close {
    display:grid;
    place-items:center;
    flex:0 0 44px;
    width:44px;
    height:44px;
    padding:0;
    border:1px solid #dcd5cc;
    border-radius:8px;
    background:#fff;
    color:#292b2d;
    cursor:pointer;
  }
  .kartop-mobile-menu__close span,
  .kartop-mobile-menu__close span::after {
    display:block;
    width:18px;
    height:2px;
    border-radius:2px;
    background:currentColor;
  }
  .kartop-mobile-menu__close span { transform:rotate(45deg); }
  .kartop-mobile-menu__close span::after { content:''; transform:rotate(90deg); }
  .kartop-mobile-menu__scroll {
    min-height:0;
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    padding:10px clamp(18px,5vw,32px) 24px;
  }
  .kartop-mobile-menu__links { display:grid; max-width:680px; margin:0 auto; }
  .kartop-mobile-menu__link,
  .kartop-mobile-menu__group-row > a {
    display:flex;
    align-items:center;
    min-height:51px;
    padding:9px 4px;
    border-bottom:1px solid #e9e2d9;
    color:#2e3031;
    font-size:17px;
    font-weight:650;
    line-height:1.3;
  }
  .kartop-mobile-menu__link.active,
  .kartop-mobile-menu__link[aria-current=page],
  .kartop-mobile-menu__group-row > a[aria-current=page] { color:#ae4d24; }
  .kartop-mobile-menu__group-row {
    display:grid;
    grid-template-columns:minmax(0,1fr) 48px;
    border-bottom:1px solid #e9e2d9;
  }
  .kartop-mobile-menu__group-row > a { border:0; }
  .kartop-mobile-menu__group-toggle {
    display:grid;
    place-items:center;
    width:44px;
    height:44px;
    align-self:center;
    justify-self:end;
    border:0;
    border-radius:7px;
    background:#eee6dc;
    color:#a94f28;
    cursor:pointer;
  }
  .kartop-mobile-menu__group-toggle span {
    width:9px;
    height:9px;
    border-right:2px solid currentColor;
    border-bottom:2px solid currentColor;
    transform:rotate(45deg) translate(-2px,-2px);
    transition:transform .18s ease;
  }
  .kartop-mobile-menu__group.is-expanded .kartop-mobile-menu__group-toggle span {
    transform:rotate(225deg) translate(-2px,-2px);
  }
  .kartop-mobile-menu__panel {
    display:grid;
    padding:7px 0 10px 18px;
    border-left:2px solid #c46437;
    margin:0 0 6px 5px;
    background:#f3eee7;
  }
  .kartop-mobile-menu__panel[hidden] { display:none; }
  .kartop-mobile-menu__panel a {
    display:flex;
    align-items:center;
    min-height:42px;
    padding:7px 14px;
    color:#45413c;
    font-size:14px;
    font-weight:550;
    line-height:1.35;
  }
  .kartop-mobile-menu__panel a + a { border-top:1px solid #e7ddd1; }
  .kartop-mobile-menu__footer {
    display:flex;
    justify-content:space-between;
    gap:14px;
    padding:14px clamp(18px,5vw,32px);
    border-top:1px solid #e7e1d9;
    background:#fff;
  }
  .kartop-mobile-menu__footer a {
    min-height:38px;
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:#a74b25;
    font-size:13px;
    font-weight:700;
  }
  .kartop-mobile-menu :is(a,button):focus-visible {
    outline:3px solid #c86435;
    outline-offset:2px;
  }
}
.kartop-mobile-menu[hidden] { display:none!important; }
@media (min-width:1101px) { .kartop-mobile-menu { display:none!important; } }
@media (prefers-reduced-motion:reduce) {
  .kartop-mobile-menu,
  .kartop-mobile-menu__group-toggle span { transition:none!important; transform:none!important; }
}
