/* ============ menu.css ============ */
.menu-page { padding-block: clamp(40px, 5vw, 80px); }

.cat-tabs {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 12px;
  margin-bottom: clamp(40px, 4.4vw, 72px);
}
/* khung bọc tab + mũi tên cuộn (mobile) */
.cat-tabs-wrap {
  display: flex; align-items: center; gap: 8px;
  margin-bottom: clamp(40px, 4.4vw, 72px);
}
.cat-tabs-wrap .cat-tabs { margin-bottom: 0; flex: 1 1 auto; min-width: 0; }
.cat-nav { display: none; }
.dish-empty {
  grid-column: 1 / -1; text-align: center; color: var(--cream-70);
  padding: clamp(40px, 6vw, 90px) 0; font-size: var(--fs-18);
}
/* tab danh mục: tất cả đều có viền mờ, tab active viền sáng (theo thiết kế) */
.cat-tabs .tab { border-color: rgba(239, 217, 135, .3); }
.cat-tabs .tab:hover { border-color: rgba(239, 217, 135, .6); color: var(--cream); }
.cat-tabs .tab.is-active { border-color: var(--cream); color: var(--cream); }

/* ---- Mobile: hàng cuộn ngang (vuốt) + mũi tên ‹ › ---- */
@media (max-width: 768px) {
  .cat-tabs {
    flex-wrap: nowrap; justify-content: flex-start;
    overflow-x: auto; -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    gap: 10px; padding-bottom: 4px;
    scrollbar-width: none; -ms-overflow-style: none;
  }
  .cat-tabs::-webkit-scrollbar { display: none; }
  .cat-tabs .tab {
    flex: 0 0 auto; scroll-snap-align: start;
    min-height: 42px; padding: 0 18px; font-size: var(--fs-15);
  }
  .cat-nav:not([hidden]) {
    display: grid; place-items: center; flex: none;
    width: 38px; height: 42px; border: 1px solid var(--cream-20);
    background: var(--green-800); color: var(--cream);
    font-size: 1.5rem; line-height: 1; transition: opacity .2s var(--ease), background .2s var(--ease);
  }
  .cat-nav:not([hidden]):hover { background: var(--green-900); }
  .cat-nav:disabled { opacity: .3; cursor: default; }
}

.dish-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: clamp(16px, 1.6vw, 24px);
}

/* thanh số lượng full-width trong card: xem global.css (.stepper--full) */

/* ---- Zoznam alergénov ---- */
.allergens {
  position: relative; isolation: isolate;
  display: grid; place-items: center;
  padding: clamp(56px, 8vw, 150px) var(--gutter);
}
.allergens__bg { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.allergens__bg img { width: 100%; height: 100%; object-fit: cover; filter: blur(6px); transform: scale(1.05); }
.allergens::after { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(0,38,31,.55); }

.allergens__panel {
  width: min(900px, 100%);
  background: var(--cream); color: var(--ink-dark);
  border: 1px solid rgba(0,50,42,.3);
  padding: clamp(34px, 4vw, 64px) clamp(28px, 5vw, 80px);
  text-align: center;
}
.allergens__title { font-family: var(--font-display); font-weight: 500; font-size: var(--fs-h1); text-transform: uppercase; margin-bottom: clamp(24px, 2.6vw, 40px); }
.allergens__list {
  column-count: 2; column-gap: clamp(30px, 5vw, 80px);
  text-align: left; margin: 0; padding-left: 1.4em;
  font-size: var(--fs-16); line-height: 1.6;
}
.allergens__list li { break-inside: avoid; margin-bottom: 6px; padding-left: 6px; }

@media (max-width: 1024px) { .dish-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) {
  .dish-grid { grid-template-columns: 1fr; max-width: 460px; margin-inline: auto; }
  .allergens__list { column-count: 1; }
}
