/* =============================================
   MENU & PRICE PAGE CSS
   ============================================= */

.menu-note-bar {
  text-align: center;
  padding: 2.5rem 2rem;
  font-size: 0.72rem;
  color: var(--color-text-light);
  letter-spacing: 0.08em;
  border-bottom: 1px solid var(--color-border);
}

/* ---- Menu Section ---- */
.menu-section {
  padding: 6rem 2rem;
  background: var(--color-bg);
}

.menu-section--alt {
  background: var(--color-bg-light);
}

.menu-section-inner {
  max-width: 1050px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5rem;
  align-items: center;
}

.menu-section-inner--rev { direction: rtl; }
.menu-section-inner--rev > * { direction: ltr; }

.menu-col-image {
  aspect-ratio: 4/3;
  overflow: hidden;
}

.menu-col-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}

.menu-col-image:hover img { transform: scale(1.03); }

.menu-col-text {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.menu-cat-title {
  font-family: var(--font-sans);
  font-weight: 200;
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  letter-spacing: 0.18em;
}

.menu-cat-line {
  width: 2.5rem;
  height: 1px;
  background: var(--color-text);
  margin-top: -0.8rem;
}

/* ---- Price Table ---- */
.price-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.78rem;
}

.price-table tr {
  border-bottom: 1px solid var(--color-border);
}

.price-table td {
  padding: 0.6rem 0;
  color: var(--color-text);
  line-height: 1.5;
}

.price-table td:last-child {
  text-align: right;
  white-space: nowrap;
  font-family: var(--font-sans);
  font-weight: 300;
  letter-spacing: 0.06em;
}

/* ---- Coupon ---- */
.coupon-section {
  padding: 4rem 2rem;
  background: var(--color-bg);
}

.coupon-inner {
  max-width: 680px;
  margin: 0 auto;
  border: 1px solid var(--color-border);
  padding: 2.5rem 2rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}

.coupon-title {
  font-family: var(--font-jp);
  font-size: 0.82rem;
  letter-spacing: 0.15em;
}

.coupon-note {
  font-size: 0.68rem;
  color: var(--color-text-light);
}

.coupon-btns {
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 0.5rem;
}

.coupon-btns .btn-fill {
  min-width: 200px;
  text-align: center;
  border: 1px solid var(--color-border);
  position: relative;
}

.coupon-btns .btn-fill::before,
.coupon-btns .btn-fill::after {
  content: '';
  position: absolute;
  top: -4px; bottom: -4px;
  border-left: 1px solid var(--color-border);
}

.coupon-btns .btn-fill::before { left: -4px; }
.coupon-btns .btn-fill::after { right: -4px; border-left: none; border-right: 1px solid var(--color-border); }

/* ---- Breadcrumb wrap ---- */
.breadcrumb-wrap {
  background: var(--color-bg-light);
}

/* ---- Responsive ---- */
@media (max-width: 820px) {
  .menu-section-inner,
  .menu-section-inner--rev {
    grid-template-columns: 1fr;
    direction: ltr;
    gap: 2.5rem;
  }
}

@media (max-width: 560px) {
  .menu-section { padding: 4rem 1.4rem; }
}
