
/* Text menu: native headings, paragraphs and tables remain editable in WordPress. */
.menu-page { padding: 110px 0 48px; }
.menu-page__inner { max-width: 1000px; }
.menu-page .breadcrumbs { font-size: 14px; margin-bottom: 28px; }
.menu-page__heading { text-align: center; margin-bottom: 24px; }
.menu-page__eyebrow { color: var(--accent); font-size: 15px; letter-spacing: .2em; margin: 0 0 8px; }
.menu-page h1 { font-size: clamp(32px,4vw,46px); letter-spacing: .16em; margin: 0; }
.menu-page__heading .brush-stroke { width: 108px; height: 8px; margin: 18px auto 0; }
.menu-categories { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 32px; margin-bottom: 24px; }
.menu-categories a { display: inline-flex; align-items: center; min-height: 44px; text-decoration-thickness: 1px; text-underline-offset: 7px; font-size: 16px; }
.menu-content { line-height: 1.9; letter-spacing: .025em; }
.menu-content p { margin: 0; }
.menu-notice { border: 1px solid #282d2950; padding: 24px 32px; font-size: 15px; }
.menu-notice p + p { margin-top: 12px; }
.menu-notice strong { font-weight: 600; font-size: 18px; }
.menu-section { margin-top: 44px; }
.menu-content h2 { font-size: clamp(26px,3vw,34px); font-weight: 400; letter-spacing: .1em; border-bottom: 1px solid var(--text); padding-bottom: 16px; margin: 0 0 20px; scroll-margin-top: 30px; }
.menu-content h3 { font-size: 23px; font-weight: 400; letter-spacing: .08em; margin: 32px 0 0; color: var(--accent); }
/* One native table row per item. CSS controls columns without splitting the content. */
.menu-price-list { margin: 14px 0 0; overflow: visible; }
.menu-price-list table { width: 100%; border-collapse: collapse; table-layout: auto; font-size: 16px; }
.menu-price-list td { padding: 18px 0; border: 0; border-bottom: 1px solid #282d2930; vertical-align: middle; }
.menu-price-list td:first-child { padding-right: 20px; }
.menu-price-list td:last-child { text-align: right; white-space: nowrap; width: 4.5em; font-variant-numeric: tabular-nums; }
.menu-price-list--sake td:first-child { word-break: keep-all; overflow-wrap: anywhere; }
.menu-price-list--sake td:last-child { width: 11em; font-size: 14px; line-height: 1.9; }
@media (min-width: 1024px) {
 .menu-price-list table { display: block; }
 .menu-price-list tbody { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 36px; }
 .menu-price-list tr { display: grid; grid-template-columns: minmax(0,1fr) max-content; column-gap: 18px; border-bottom: 1px solid #282d2930; align-items: center; padding: 18px 0; }
 .menu-price-list td { border: 0; padding: 0; }
 .menu-price-list td:first-child { padding: 0; }
 .menu-price-list td:last-child { width: auto; }
}
.menu-back { display: inline-flex; min-height: 48px; align-items: center; margin-top: 44px; text-underline-offset: 6px; }
@media (max-width: 767px) {
 .menu-page { padding: 68px 0 40px; }
 .menu-page .breadcrumbs { margin-bottom: 24px; }
 .menu-categories { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 4px 16px; }
 .menu-categories a { justify-content: center; font-size: 15px; }
 .menu-notice { padding: 20px; font-size: 14px; }
 .menu-notice strong { font-size: 16px; }
 .menu-section { margin-top: 44px; }
 .menu-content h2 { font-size: 25px; letter-spacing: .04em; }
 .menu-content h3 { font-size: 21px; margin-top: 24px; }
 .menu-price-list table { font-size: 16px; }
 .menu-price-list td { padding-block: 16px; }
 .menu-price-list td:first-child { padding-right: 16px; }
}

/* Classic themes receive a core inner wrapper; keep it from becoming the grid item. */
.menu-content .wp-block-group__inner-container { display: contents; }

.menu-content .menu-seasonal-note { margin-top: 18px; font-size: 16px; }
