/* ===== 메뉴 페이지 (품목 갤러리) ===== */

/* 페이지 히어로 */
.menu-hero { padding: 92px 0 64px; }
/* 히어로 라벨 — 다른 페이지(케이터링 등)와 동일 기준 */
.menu-hero .kick {
  font-size: 17px;
  letter-spacing: 0.14em;
  font-weight: 700;
  display: block;
  margin-bottom: 2px;
  color: var(--terra);
}
@media (min-width: 861px) {
  .menu-hero .kick { font-size: 19px; letter-spacing: 0.16em; }
}
.menu-hero h1 {
  font: 700 clamp(34px, 5vw, 52px)/1.15 'Pretendard', sans-serif;
  color: var(--ink); margin-top: 18px; letter-spacing: -0.01em;
}
.menu-hero p {
  font: 400 17px/1.8 'Pretendard', sans-serif;
  color: var(--body); margin-top: 20px; max-width: 620px;
}
.menu-hero .menu-total { color: var(--ink); font-weight: 700; }

/* 카테고리 바로가기 칩 */
.cat-nav {
  display: flex; flex-wrap: wrap; gap: 10px;
  margin-top: 34px;
}
.cat-nav a {
  border: 1px solid var(--line); border-radius: 999px;
  padding: 9px 18px; font: 600 14px 'Pretendard', sans-serif;
  color: var(--ink); text-decoration: none; transition: .18s;
}
.cat-nav a:hover { border-color: var(--ink); background: var(--ink); color: #fff; }

/* 카테고리 블록 헤더 */
.menu-cat-head { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; }
.menu-cat-head .h2 { scroll-margin-top: 90px; }
.menu-count {
  font: 600 13px 'Pretendard', sans-serif; color: var(--muted);
  border: 1px solid var(--line); border-radius: 999px; padding: 4px 12px;
}

/* 품목 격자 */
.items-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 20px;
  margin-top: 34px;
}
.item-tile { margin: 0; }
.item-shot {
  aspect-ratio: 1 / 1; width: 100%; height: auto;
  background: #fff; border: 1px solid var(--line-card, #ece7dd);
  border-radius: 14px; transition: transform .2s, box-shadow .2s;
}
.item-shot img {
  object-fit: contain; padding: 12px;
}
.item-tile:hover .item-shot {
  transform: translateY(-4px);
  box-shadow: 0 10px 26px rgba(40, 30, 20, .12);
}
.item-tile figcaption {
  margin-top: 12px; text-align: center;
  font: 500 15px/1.4 'Pretendard', sans-serif; color: var(--ink);
}

@media (max-width: 720px) {
  .items-grid { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 14px; }
  .item-tile figcaption { font-size: 13px; }
  .menu-hero { padding: 72px 0 48px; }
}

/* ---------- 메뉴 운영 기준 (대응 범위 · 처리 캐파) ----------
   메뉴 목록보다 「몇 명까지 되는가 / 못 먹는 사람이 생기지 않는가」가 먼저다. */
.menu-ops { border-top: 1px solid var(--ink); }
.menu-ops-head { max-width: 760px; }
.menu-ops-head .kick { font-size: 13px; color: var(--teal); }
.menu-ops-head .h2 { margin-top: 16px; }
.menu-ops-head .h2 span { font-weight: 500; }
.menu-ops-head p { font: 400 16px/1.85 'Pretendard', sans-serif; color: var(--body); margin-top: 18px; }
.menu-ops-head p b { color: var(--ink); font-weight: 600; }

.menu-ops-cap { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 44px; border-top: 1px solid var(--ink); }
.menu-ops-cap-cell { padding: 28px 24px 28px 0; border-right: 1px solid var(--line); }
.menu-ops-cap-cell:last-child { border-right: 0; }
.menu-ops-cap-cell:not(:first-child) { padding-left: 24px; }
.menu-ops-num { font: 300 46px 'Inter', sans-serif; color: var(--ink); letter-spacing: -0.03em; line-height: 1; }
.menu-ops-num span { font-size: 24px; color: var(--teal); }
.menu-ops-unit { font: 600 15px 'Pretendard', sans-serif; color: var(--ink); margin-top: 12px; }
.menu-ops-note { font: 400 13px 'Pretendard', sans-serif; color: var(--muted); margin-top: 5px; }
.menu-ops-caption { font: 400 14px/1.8 'Pretendard', sans-serif; color: var(--muted); margin-top: 22px; max-width: 780px; }

.menu-ops-diet { margin-top: 64px; }
.menu-ops-diet-head h3 { font: 500 24px 'Pretendard', sans-serif; color: var(--ink); margin: 0; letter-spacing: -0.02em; }
.menu-ops-diet-head p { font: 400 15px/1.8 'Pretendard', sans-serif; color: var(--body); margin: 10px 0 0; }
.menu-ops-diet-head p b { color: var(--ink); font-weight: 600; }
.menu-ops-diet-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 28px; }
.menu-ops-diet-item { background: var(--card); border: 1px solid var(--line-card); padding: 26px 24px 28px; }
.menu-ops-diet-item h4 { font: 600 17px 'Pretendard', sans-serif; color: var(--ink); margin: 16px 0 0; }
.menu-ops-diet-item p { font: 400 14px/1.75 'Pretendard', sans-serif; color: var(--body); margin: 9px 0 0; }
.menu-ops-diet-note { font: 400 14px/1.8 'Pretendard', sans-serif; color: var(--muted); margin-top: 22px; }

@media (max-width: 860px) {
  .menu-ops-cap { grid-template-columns: minmax(0, 1fr); border-top: 0; }
  .menu-ops-cap-cell { padding: 22px 0; border-right: 0; border-top: 1px solid var(--line); }
  .menu-ops-cap-cell:not(:first-child) { padding-left: 0; }
  .menu-ops-diet-grid { grid-template-columns: minmax(0, 1fr); }
  .menu-ops-diet { margin-top: 48px; }
}
@media (max-width: 460px) {
  .menu-ops-num { font-size: 36px; }
  .menu-ops-num span { font-size: 19px; }
}
