/* Shared menu pages — all prices are shown in Japanese yen including tax. */
.hero-seasonal-link { display: flex; flex-wrap: wrap; align-items: center; gap: 5px 14px; width: fit-content; max-width: 410px; padding: 12px 17px; margin-top: 22px; color: #fff; border: 1px solid #c9a28a; background: rgba(64,28,25,.86); font-size: .8125rem; line-height: 1.8; }
.hero-seasonal-link > span:first-child { color: #f2d3ac; }
.hero-seasonal-link > span:nth-child(2) { font-weight: 600; }
.hero-seasonal-link:hover { background: var(--red); }
.hero-seasonal-link + .hero-link { margin-top: 18px; }
.seasonal-announcement { display: grid; grid-template-columns: 1.05fr 1fr; gap: 48px; align-items: center; padding-block: 55px; border-bottom: 1px solid var(--line); }
.seasonal-announcement-photo { min-width: 0; margin: 0; }
.seasonal-announcement-photo img { display: block; width: 100%; height: auto; }
.seasonal-announcement-photo figcaption { margin-top: 10px; color: var(--muted); font-size: .75rem; line-height: 1.8; }
.menu-hero--course .menu-hero-image img { aspect-ratio: auto; }
.seasonal-announcement-body { min-width: 0; }
.seasonal-period { display: inline-block; padding: 4px 18px; background: var(--red); color: white; font-size: .875rem; letter-spacing: .06em; }
.seasonal-eyebrow { font: 400 .7rem/1.8 var(--sans); letter-spacing: .15em; color: var(--red); margin-block: 19px 12px; }
.seasonal-announcement h2 { font-size: clamp(1.8rem,3vw,2.65rem); line-height: 1.6; letter-spacing: .04em; }
.seasonal-description { color: var(--muted); font-size: .9375rem; line-height: 2; margin-top: 20px; }
.seasonal-announcement-action { margin-top: 24px; }
.seasonal-price { display: flex; flex-wrap: wrap; gap: 10px 15px; align-items: baseline; margin-bottom: 25px; }
.seasonal-price strong { font: 400 clamp(3.5rem,5vw,4.5rem)/1 Georgia,serif; color: var(--red); }
.seasonal-price > span { font-size: .8125rem; }
.seasonal-book { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 15px 20px; background: var(--red); color: #fff; font-size: .875rem; line-height: 1.8; }
.seasonal-book:hover { background: #652321; }
.seasonal-announcement-action .text-link { margin-top: 18px; font-size: .875rem; }
.course-card.course-card--seasonal { display: grid; grid-template-columns: .95fr 1.2fr; gap: 45px; padding: 40px; margin-block: 36px 56px; border-top: 4px solid var(--red); background: #f4efe6; }
.course-card.course-card--seasonal h2 { font-size: clamp(1.6rem,2.5vw,2.2rem); line-height: 1.65; }
.seasonal-course-brand { display: block; font-size: .6em; margin-bottom: 8px; }
.course-card.course-card--seasonal .course-duration { background: var(--red); color: #fff; margin-bottom: 0; }
.course-card.course-card--seasonal .course-price { margin-block: 24px 30px; }
.seasonal-course-photo img { display: block; width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; }
.seasonal-photo-note { font-size: .75rem; color: var(--muted); margin-top: 9px; line-height: 1.8; }
.seasonal-drink-summary { margin-block: 22px; padding-block: 16px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: .875rem; line-height: 1.9; }
.seasonal-drink-summary p + p { margin-top: 6px; }
.seasonal-drink-note { margin-bottom: 16px; color: var(--muted); font-size: .8125rem; line-height: 1.8; }
.course-card.course-card--seasonal .course-dishes { border-top: 0; }
.course-card.course-card--seasonal .course-dishes li:first-child { padding-top: 0; }
.course-card.course-card--seasonal .course-dishes li:last-child { border-bottom: 0; padding-bottom: 0; }
.regular-courses > h2 { font-size: 1.75rem; line-height: 1.6; }
html[lang="en"] .seasonal-course-menu li { grid-template-columns: 6em minmax(0,1fr); }
@media (max-width:760px) {
  .hero-seasonal-link { max-width: 100%; padding: 10px 13px; gap: 3px 10px; margin-top: 18px; font-size: .75rem; }
  .hero-seasonal-link + .hero-link { margin-top: 14px; }
  .seasonal-announcement { grid-template-columns: minmax(0,1fr); gap: 25px; padding-block: 36px; }
  .seasonal-announcement h2 { font-size: 1.75rem; }
  .seasonal-description { font-size: .875rem; margin-top: 16px; }
  .seasonal-announcement-action { border-top: 1px solid var(--line); padding-top: 24px; }
  .seasonal-price { margin-bottom: 22px; }
  .seasonal-price strong { font-size: 3.5rem; }
  .course-card.course-card--seasonal { grid-template-columns: minmax(0,1fr); gap: 30px; padding: 26px 20px; margin-block: 28px 40px; }
  .course-card.course-card--seasonal h2 { font-size: 1.5rem; letter-spacing: .01em; }
  .course-card.course-card--seasonal .course-dishes { border-top: 1px solid var(--line); }
  .course-card.course-card--seasonal .course-dishes li:first-child { padding-top: 18px; }
}
.menu-portal { padding-top: 76px; padding-bottom: 86px; border-bottom: 1px solid var(--line); }
.menu-portal-heading { display: flex; justify-content: space-between; align-items: end; gap: 36px; margin-bottom: 34px; }
.menu-portal-heading h2 { font-size: clamp(1.625rem, 2.65vw, 2.375rem); }
.menu-portal-heading > p { font-size: .875rem; color: var(--muted); line-height: 2; }
.menu-portal-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 24px; }
.menu-portal-card { min-width: 0; }
.menu-portal-photo { overflow: hidden; aspect-ratio: 1.35; background: #ece6dd; }
.menu-portal-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.menu-portal-card[href="drink.html"] .menu-portal-photo { background: transparent; }
.menu-portal-card[href="drink.html"] .menu-portal-photo img { object-fit: contain; }
.menu-portal-card:hover img { transform: scale(1.025); }
.menu-portal-label { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 18px 0 13px; border-bottom: 1px solid var(--line); font: 500 1.5rem/1.6 var(--serif); }
.menu-portal-label small { display: block; font: 400 .75rem/1.6 var(--sans); color: var(--red); letter-spacing: .13em; margin-top: 3px; }
.menu-portal-label > span + span { font: 400 1.3rem/1 var(--sans); color: var(--red); }
.menu-portal-card > p { margin-top: 12px; font-size: .8125rem; color: var(--muted); }
.footer-menu-nav { display: flex; gap: 26px; flex-wrap: wrap; max-width: var(--page); margin: 0 auto 26px; padding-top: 24px; border-top: 1px solid #50463e; }
.footer-menu-nav a { font-size: .8125rem; display: inline-flex; gap: 9px; align-items: center; }
.footer-menu-nav .menu-link-en { color: #bcb2a9; font-size: .75rem; }
.breadcrumb { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; font-size: .75rem; color: var(--muted); padding-top: 24px; }
.breadcrumb a { text-decoration: underline; text-underline-offset: 4px; }
.menu-hero { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 65px; padding-top: 35px; padding-bottom: 50px; }
.menu-hero-copy .eyebrow { color: var(--red); font-size: .75rem; margin-bottom: 20px; }
.menu-hero h1 { font-size: clamp(2.125rem,3.5vw,3.375rem); line-height: 1.6; letter-spacing: .075em; margin-bottom: 24px; }
.menu-hero-copy > p:last-child { font-size: 1rem; line-height: 2.1; letter-spacing: .025em; }
.menu-hero-image { overflow: hidden; background: #eee8df; }
.menu-hero-image img { width: 100%; aspect-ratio: 1.5; object-fit: cover; }
.menu-hero--drink .menu-hero-image { background: transparent; }
.menu-hero--drink .menu-hero-image img { object-fit: contain; max-height: 360px; }
.menu-page-links { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.menu-page-links a { text-align: center; padding: 21px 12px 19px; border-right: 1px solid var(--line); position: relative; transition: background .2s,color .2s; }
.menu-page-links a:last-child { border-right: 0; }
.menu-page-links a > span:first-child { display: block; font: 500 1.25rem/1.6 var(--serif); letter-spacing: .08em; }
.menu-link-en { display: block; font: 400 .75rem/1.6 var(--sans); letter-spacing: .13em; margin-top: 5px; }
.menu-page-links a[aria-current="page"] { color: #fff; background: var(--red); }
.menu-page-links a:not([aria-current="page"]):hover { background: #eee8df; }
.menu-intro-note { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 25px 0 20px; font-size: .8125rem; color: var(--muted); }
.menu-intro-note > span { font-size: .75rem; letter-spacing: .14em; }
.menu-category-links { display: flex; flex-wrap: wrap; gap: 9px 12px; padding: 7px 0 35px; border-bottom: 1px solid var(--line); }
.menu-category-links a { padding: 5px 0; margin-right: 12px; font-size: .875rem; color: var(--muted); border-bottom: 1px solid #c4b8ab; }
.menu-category-links a:hover { color: var(--red); border-color: var(--red); }
.menu-section { display: grid; grid-template-columns: 240px minmax(0,1fr); gap: 56px; padding: 56px 0; border-bottom: 1px solid var(--line); }
.menu-section-number { font: 400 .75rem/1.6 var(--sans); color: var(--red); letter-spacing: .13em; margin-bottom: 12px; }
.menu-section-heading h2 { font-size: clamp(1.5rem,2.3vw,1.9375rem); line-height: 1.65; letter-spacing: .04em; }
.menu-section-intro { margin-top: 18px; font-size: .875rem; line-height: 1.9; color: var(--muted); }
.menu-section-photo { margin-top: 25px; }
.menu-section-photo img { width: 100%; height: auto; }
.menu-page--drink .menu-section-photo img { max-height: 300px; object-fit: contain; }
.menu-section-photo figcaption { font-size: .75rem; color: var(--muted); line-height: 1.7; margin-top: 9px; }
.menu-items { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 34px; row-gap: 24px; }
.menu-entry { min-width: 0; display: flex; flex-direction: column; padding-bottom: 21px; border-bottom: 1px solid #e0d9cf; }
.menu-entry h3 { font: 500 1rem/1.9 var(--sans); letter-spacing: .015em; overflow-wrap: anywhere; }
.menu-item-description { font-size: .875rem; color: var(--muted); line-height: 1.9; margin-top: 8px; }
.menu-item-note { font-size: .8125rem; line-height: 1.8; color: var(--red); margin-top: 8px; }
.menu-prices { padding-top: 13px; margin-top: auto; }
.menu-price-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.menu-price-row + .menu-price-row { margin-top: 7px; }
.menu-price-row > span:first-child { font-size: .8125rem; color: var(--muted); line-height: 1.7; }
.menu-price { font: 400 1.375rem/1.5 Georgia,serif; color: var(--ink); white-space: nowrap; }
.menu-price-pending { font-size: .875rem; color: var(--muted); margin-top: auto; padding-top: 15px; }
.menu-section-notes { margin-bottom: 22px; padding-left: 15px; border-left: 2px solid #b38c73; font-size: .875rem; color: var(--muted); }
.menu-section-notes p + p { margin-top: 8px; }
.menu-notices { padding: 29px 0; font-size: .8125rem; line-height: 1.9; color: var(--muted); }
.menu-notices p + p { margin-top: 7px; }
.menu-bottom-navigation { padding: 14px 0 66px; }
.menu-bottom-navigation > .text-link { margin-top: 26px; }
.lunch-information { margin: 28px 0 25px; padding: 28px 32px; background: #eee9df; display: grid; grid-template-columns: .8fr 1.5fr; gap: 30px; align-items: center; }
.lunch-information > div:first-child > span { font-size: .75rem; letter-spacing: .15em; color: var(--red); }
.lunch-information > div:first-child > p { font: 400 1.875rem/1.5 Georgia,serif; margin-top: 8px; }
.lunch-information small { display: block; font: 400 .8125rem/1.8 var(--sans); margin-top: 6px; color: var(--muted); }
.lunch-information > div + div { padding-left: 30px; border-left: 1px solid #c9bdae; }
.lunch-information > div + div > p:first-child { font-size: 1rem; line-height: 1.9; }
.lunch-information strong { display: inline-block; font-weight: 500; color: var(--red); margin-top: 8px; }
.lunch-tax-note { margin-top: 10px; font-size: .75rem; color: var(--muted); }
.course-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 38px; padding: 42px 0 52px; }
.course-card { min-width: 0; border: 1px solid var(--line); background: #fffdfa; align-self: start; }
.course-photo img { width: 100%; aspect-ratio: 1.5; object-fit: cover; }
.course-card-body { padding: 29px 30px 32px; }
.course-duration { display: inline-block; padding: 4px 13px; font-size: .8125rem; line-height: 1.6; background: #eee9df; color: var(--red); margin-bottom: 15px; }
.course-card h2 { font-size: clamp(1.375rem,2vw,1.75rem); line-height: 1.7; letter-spacing: .025em; }
.course-price { display: flex; gap: 16px; flex-wrap: wrap; align-items: baseline; margin: 19px 0 24px; }
.course-price > span:first-child { font: 400 2.75rem/1.1 Georgia,serif; color: var(--red); }
.course-price > span + span { font-size: .75rem; color: var(--muted); }
.course-dishes { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.course-dishes li { display: grid; grid-template-columns: 3.5em minmax(0,1fr); gap: 14px; padding: 13px 0; border-bottom: 1px solid #e4ded4; font-size: .875rem; line-height: 1.9; }
.course-dish-label { color: var(--red); }
.course-card .text-link { margin-top: 22px; }
.course-drink-options { padding: 37px 36px; background: #eee9df; }
.course-drink-options h2 { font-size: 1.875rem; line-height: 1.6; margin-bottom: 12px; }
.course-drink-options > div > p:last-child { font-size: .875rem; color: var(--muted); }
.course-drink-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; margin-top: 28px; }
.course-drink-option { padding-top: 22px; border-top: 1px solid #c6b8a8; }
.course-drink-option h3 { font-size: 1.375rem; line-height: 1.6; }
.course-option-price { font: 400 2.125rem/1.5 Georgia,serif; margin-top: 12px; }
.course-option-price span { font: 400 .75rem/1.7 var(--sans); color: var(--muted); margin-left: 12px; white-space: nowrap; }
.course-drink-option > p:last-child { font-size: .8125rem; margin-top: 7px; color: var(--muted); }
@media (max-width:1100px) {
  .menu-section { grid-template-columns: 210px minmax(0,1fr); gap: 35px; }
  .menu-items { column-gap: 25px; }
  .menu-hero { gap: 40px; }
  .menu-portal-grid { gap: 18px; }
  .menu-portal-heading { display: block; }
  .menu-portal-heading > p { margin-top: 16px; }
  .course-card-body { padding: 24px; }
}
@media (max-width:960px) {
  .menu-section { grid-template-columns: 190px minmax(0,1fr); gap: 30px; }
  .menu-hero { gap: 26px; }
  .menu-hero h1 { font-size: 2.125rem; }
  .menu-hero-copy > p:last-child { font-size: .9375rem; }
  .menu-portal-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 30px; }
  .menu-items { grid-template-columns: minmax(0,1fr); }
  .course-grid { gap: 25px; }
  .course-card-body { padding: 22px; }
  .course-dishes li { gap: 10px; }
  .course-drink-option h3 { font-size: 1.25rem; }
}
@media (max-width:760px) {
  .menu-portal { padding-block: 58px; }
  .menu-portal-heading h2 { font-size: 1.625rem; line-height: 1.8; }
  .menu-portal-heading > p { font-size: .875rem; }
  .menu-portal-grid { gap: 25px 16px; }
  .menu-portal-label { font-size: 1.25rem; padding-top: 13px; }
  .menu-portal-card > p { font-size: .75rem; line-height: 1.8; }
  .footer-menu-nav { gap: 14px 20px; }
  .footer-menu-nav a { font-size: .8125rem; }
  .footer-menu-nav .menu-link-en { display: none; }
  .breadcrumb { font-size: .75rem; gap: 9px; padding-top: 20px; }
  .menu-hero { grid-template-columns: minmax(0,1fr); gap: 25px; padding-top: 31px; padding-bottom: 31px; }
  .menu-hero-copy .eyebrow { margin-bottom: 13px; }
  .menu-hero h1 { font-size: 2.125rem; margin-bottom: 16px; letter-spacing: .04em; }
  .menu-hero-copy > p:last-child { font-size: 1rem; line-height: 2; }
  .menu-hero-image img { aspect-ratio: 1.6; }
  .menu-hero--drink .menu-hero-image img { aspect-ratio: 1.6; max-height: 240px; }
  .menu-page-links a { padding: 14px 4px; }
  .menu-page-links a > span:first-child { font-size: 1rem; letter-spacing: 0; }
  .menu-page-links .menu-link-en { font-size: .75rem; letter-spacing: .025em; }
  .menu-intro-note { display: block; padding: 23px 0 15px; }
  .menu-intro-note > span { display: none; }
  .menu-category-links { flex-wrap: nowrap; overflow-x: auto; overscroll-behavior-inline: contain; padding: 4px 0 21px; gap: 14px; -webkit-overflow-scrolling: touch; }
  .menu-category-links a { flex: 0 0 auto; white-space: nowrap; margin-right: 0; font-size: .875rem; }
  .menu-section { grid-template-columns: minmax(0,1fr); gap: 25px; padding-block: 36px; }
  .menu-section-heading h2 { font-size: 1.625rem; }
  .menu-section-number { margin-bottom: 8px; }
  .menu-section-intro { margin-top: 12px; }
  .menu-section-photo { margin-top: 20px; }
  .menu-section-photo img { width: 100%; max-height: 250px; object-fit: cover; }
  .menu-page--drink .menu-section-photo img { object-fit: contain; max-height: 260px; }
  .menu-items { row-gap: 19px; }
  .menu-entry { padding-bottom: 18px; }
  .menu-entry h3 { font-size: 1rem; }
  .menu-item-description { font-size: .875rem; }
  .menu-section-notes { font-size: .875rem; margin-bottom: 22px; }
  .menu-prices { padding-top: 11px; }
  .menu-price { font-size: 1.375rem; }
  .menu-notices { padding: 25px 0; }
  .menu-bottom-navigation { padding-bottom: 45px; }
  .lunch-information { grid-template-columns: minmax(0,1fr); gap: 20px; padding: 24px; margin-block: 24px; }
  .lunch-information > div + div { padding: 19px 0 0; border-left: 0; border-top: 1px solid #c9bdae; }
  .lunch-information > div:first-child > p { font-size: 1.875rem; }
  .course-grid { grid-template-columns: minmax(0,1fr); gap: 28px; padding-block: 30px 37px; }
  .course-card-body { padding: 25px 20px; }
  .course-card h2 { font-size: 1.4375rem; }
  .course-price { gap: 12px; }
  .course-price > span:first-child { font-size: 2.5rem; }
  .course-dishes li { grid-template-columns: 3.25em minmax(0,1fr); gap: 10px; font-size: .875rem; line-height: 1.95; }
  .course-drink-options { padding: 26px 22px; }
  .course-drink-options h2 { font-size: 1.625rem; }
  .course-drink-grid { grid-template-columns: minmax(0,1fr); gap: 25px; margin-top: 24px; }
  .course-drink-option h3 { font-size: 1.25rem; }
  .course-option-price { font-size: 2rem; }
  .course-option-price span { display: block; margin-left: 0; }
}
@media (max-width:360px) {
  .menu-hero h1 { font-size: 1.9375rem; }
  .menu-hero-copy > p:last-child br { display: none; }
  .menu-portal-grid { gap: 24px 12px; }
  .menu-portal-label { font-size: 1.125rem; }
}
@media print {
  .breadcrumb,.menu-category-links,.menu-bottom-navigation,.menu-nav-wrap { display: none; }
  .menu-hero { padding-block: 20px; }
  .menu-section { padding-block: 25px; gap: 25px; }
  .menu-entry,.course-card { break-inside: avoid; }
  .course-grid { display: block; }
  .course-card { margin-bottom: 25px; }
  .course-photo img { max-height: 250px; object-fit: contain; }
}
