/* Compact, persistent category navigation. */
.wrap{overflow:visible}
.menu-layout{display:grid;grid-template-columns:58px minmax(0,1fr);gap:12px;padding:0 18px;align-items:start}
.category-rail{position:sticky;top:88px;z-index:10;align-self:start;max-height:calc(100vh - 104px)}
.categories{display:flex;flex-direction:column;gap:7px;max-height:calc(100vh - 110px);overflow-y:auto;overflow-x:hidden;padding:4px 2px;scrollbar-width:none}
.categories::-webkit-scrollbar{display:none}
.cat{width:50px;height:50px;flex:0 0 50px;border-radius:15px;padding:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 2px 9px #301f0f08}
.cat span{font-size:22px;line-height:1;margin:0}
.cat b{display:none}
.cat:focus-visible,.cat:hover{border-color:#d71920;background:#fff4f4}
.menu-content{min-width:0}
.menu-content .section{padding:16px 0 4px}
.menu-content .section{scroll-margin-top:88px}
.promos{padding:24px 18px 10px}
.promo-grid{padding:3px 2px 10px}
.promo-card:disabled{opacity:1;cursor:default}
@media(max-width:700px){
  .menu-layout{grid-template-columns:48px minmax(0,1fr);gap:7px;padding:0 10px}
  .category-rail{top:72px;max-height:calc(100vh - 82px)}
  .categories{gap:6px}
  .cat{width:44px;height:46px;flex-basis:46px;border-radius:13px}
  .cat span{font-size:20px}
  .menu-content .section{padding-top:12px}
}

/* Mobile: a visible, sticky horizontal category strip and fully accessible product cards. */
@media(max-width:700px){
 .menu-layout{display:block;min-width:0;padding:0 10px}
 .category-rail{position:sticky;top:0;z-index:35;max-height:none;padding:6px 0;background:var(--paper,#f5f0e6)}
 .categories{display:flex;flex-direction:row;flex-wrap:nowrap;gap:7px;max-height:none;overflow-x:auto;overflow-y:hidden;padding:5px 2px 7px;scroll-snap-type:x proximity}
 .cat{width:auto;min-width:52px;max-width:122px;height:49px;flex:0 0 auto;gap:3px;padding:5px 8px;scroll-snap-align:start}
 .cat b{display:block;font-size:9px;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:104px}
 .cat span{font-size:17px}
 .cat.active{background:#f9e8d0;border-color:#d7a45f}
 .menu-content{width:100%;min-width:0;overflow-x:clip}
 .menu-content .section{scroll-margin-top:86px}
 /* Horizontal swipe carousel for dishes in every menu group; show the next card's edge. */
 .menu-content .product-carousel{min-width:0;max-width:100%}
 .menu-content .products{
   display:flex;
   flex-flow:row nowrap;
   gap:12px;
   overflow-x:auto;
   overflow-y:hidden;
   scroll-snap-type:x mandatory;
   scroll-padding-inline:1px;
   overscroll-behavior-x:contain;
   -webkit-overflow-scrolling:touch;
   scrollbar-width:none;
   padding:3px 1px 16px;
 }
 .menu-content .products::-webkit-scrollbar{display:none}
 .menu-content .card{
   flex:0 0 clamp(220px,71vw,330px);
   width:clamp(220px,71vw,330px);
   min-width:0;
   max-width:none;
   scroll-snap-align:start;
 }
 .menu-content .card .body{min-width:0;overflow-wrap:anywhere}
 .menu-content .product-carousel .carousel-arrow{display:none}
}

/* Compact progress indicator for each horizontal menu category. */
.menu-content .carousel-pagination{display:flex;justify-content:center;align-items:center;gap:9px;min-height:19px;margin:0 0 9px;user-select:none}
.menu-content .carousel-pagination[hidden]{display:none!important}
.menu-content .carousel-pagination-track{display:block;position:relative;width:78px;height:4px;border-radius:999px;background:#dfd0bd;overflow:hidden}
.menu-content .carousel-pagination-thumb{display:block;position:absolute;top:0;left:0;width:28%;height:100%;border-radius:inherit;background:#b58b57}
.menu-content .carousel-pagination-count{font-size:11px;line-height:1.2;font-weight:650;letter-spacing:.02em;color:#806b54;font-variant-numeric:tabular-nums}
.menu-content .products:focus-visible{outline:2px solid #b58b57;outline-offset:2px}
@media(min-width:701px){.menu-content .carousel-pagination{display:none}}
@media(max-width:700px){.menu-content .card .photo{height:clamp(165px,48vw,190px)}}
