.grand-hero { padding: 132px 0 50px; background: #e5ebe5; }
.grand-hero-copy { max-width: 820px; }
.grand-hero h1 { margin: 13px 0 16px; color: var(--green); font-family: "Yu Mincho","Hiragino Mincho ProN",serif; font-size: clamp(2.3rem,3.5vw,4rem); font-weight: 600; line-height: 1.35; letter-spacing: .065em; }
.grand-hero-copy > p:not(.section-kicker) { max-width: 760px; font-size: 1rem; line-height: 1.85; }
.grand-hero-copy small { display: block; margin-top: 16px; color: #52655b; font-size: .82rem; }
.grand-category-nav { padding: 28px 0; background: var(--paper); border-bottom: 1px solid var(--line); }
.grand-category-nav .container { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 0 25px; }
.grand-category-nav a { padding: 11px 4px; border-bottom: 1px solid #d8dfd4; color: var(--green); font-size: .88rem; font-weight: 600; line-height: 1.6; }
.grand-category-nav a:hover { color: var(--green-2); border-color: var(--green-2); }
.grand-category-nav .category-aside { font-size: .92em; }
.grand-menu-content { padding: clamp(70px,9vw,125px) 0; background: #f7f8f3; }
.grand-menu-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px 26px; }
.grand-category { min-width: 0; padding: 28px 32px 27px; background: #fffdf8; border-top: 2px solid var(--green); scroll-margin-top: 105px; }
.grand-category-photo { display: block; width: calc(100% + 64px); max-width: none; height: clamp(175px,18vw,230px); margin: -28px -32px 22px; object-fit: cover; }
#hamburg .grand-category-photo { object-position: center 56%; }
#steak .grand-category-photo { object-position: center 54%; }
#pizza .grand-category-photo { object-position: center 69%; }
#pasta .grand-category-photo { object-position: center 53%; }
.lunch-pizza-photo { object-position: center 69%; }
.lunch-curry-photo { object-position: center 56%; }
.lunch-gratin-photo { object-position: center; }
.grand-category-heading { padding-bottom: 17px; }
.grand-category-description { margin: -3px 0 19px; font-size: .94rem; line-height: 1.8; }
.grand-included-note { display: block; margin-top: 3px; color: #52655b; font-size: .92em; }
.grand-category h2, .grand-category h3 { color: var(--green); font-family: "Yu Mincho","Hiragino Mincho ProN",serif; font-size: clamp(1.3rem,1.7vw,1.65rem); font-weight: 600; line-height: 1.5; letter-spacing: .03em; }
.grand-category .category-aside { font-size: .82em; font-weight: 500; letter-spacing: .01em; }
.grand-category ul { margin: 0; padding: 0; list-style: none; }
.grand-category li { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 15px; align-items: baseline; padding: 12px 0; border-top: 1px solid #e1e6dc; font-size: 1rem; line-height: 1.55; }
.menu-price { color: var(--green); font: 500 .95rem/1.55 "Helvetica Neue",Arial,sans-serif; white-space: nowrap; }
.grand-other { padding: 85px 0; background: #e5ebe5; }
.grand-other-inner { display: flex; align-items: center; justify-content: space-between; gap: 35px; }
.grand-other h2 { margin-top: 15px; color: var(--green); font-family: "Yu Mincho","Hiragino Mincho ProN",serif; font-size: clamp(1.8rem,2.7vw,2.8rem); font-weight: 600; line-height: 1.5; }
.grand-other-links { display: flex; gap: 12px; flex-wrap: wrap; }
.grand-other-links a { display: inline-flex; justify-content: space-between; align-items: center; gap: 28px; min-width: 210px; padding: 18px 20px; color: var(--green); background: #fffdf8; border: 1px solid #becfc1; font-size: .9rem; font-weight: 700; }
.grand-other-links a:hover { border-color: var(--green); }
@media (max-width: 1100px) and (min-width: 701px) {
  .grandmenu-page .grand-menu-grid { grid-template-columns: 1fr; }
}
@media (max-width: 980px) {
  .grand-category-nav .container { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .grand-other-inner { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 700px) {
  .grand-hero { padding: 104px 0 36px; }
  .grand-hero h1 { font-size: clamp(2.25rem,8.5vw,3.5rem); }
  .grand-hero-copy > p:not(.section-kicker) { font-size: .94rem; }
  .grand-category-nav { padding: 17px 0; }
  .grand-category-nav .container { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 15px; }
  .grand-category-nav a { font-size: .9rem; padding: 10px 2px; }
  .grand-menu-grid { grid-template-columns: 1fr; gap: 16px; }
  .grand-category { padding: 23px 21px 21px; scroll-margin-top: 82px; }
  .grand-category-photo { width: calc(100% + 42px); height: clamp(175px,53vw,230px); margin: -23px -21px 19px; }
  .grand-category-description { font-size: .92rem; }
  .grand-category h2, .grand-category h3 { font-size: 1.35rem; }
  .grand-category li { font-size: .94rem; }
  .grand-other { padding: 65px 0; }
  .grand-other-links { width: 100%; }
  .grand-other-links a { width: 100%; }
}
.grand-hero-copy > p.lunch-hours { margin-top: 19px; color: var(--green); font-size: .93rem; font-weight: 700; line-height: 1.7; }
.lunch-tabs { background: #fffdf8; border-bottom: 1px solid #d7e0d6; }
.lunch-tabs .container { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; max-width: 900px; padding-top: 14px; }
.lunch-tabs a { display: flex; align-items: center; justify-content: center; min-height: 72px; padding: 14px 18px; background: #fff; border: 1px solid #bccbc1; border-bottom: 4px solid #bccbc1; border-radius: 6px 6px 0 0; color: var(--green); text-align: center; font-size: 1rem; font-weight: 700; line-height: 1.5; transition: background-color .2s ease, color .2s ease, border-color .2s ease; }
.lunch-tabs a:not([aria-selected="true"]):hover { background: #f1f5ef; border-color: var(--green); }
.lunch-tabs a[aria-selected="true"] { background: var(--green); color: #fff; border-color: var(--green); border-bottom-color: var(--yellow); }
.lunch-tabs a:focus-visible { outline: 2px solid var(--green); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
  .lunch-tabs a { transition: none; }
}
.menu-page-section.lunch-panel { padding-top: clamp(45px,6vw,75px); }
.lunch-panel[hidden] { display: none; }
.menu-page-section { padding: clamp(70px,8vw,110px) 0; background: #f7f8f3; }
.menu-page-section.alt { background: #fffdf8; }
.menu-section-heading { margin-bottom: 40px; }
.menu-section-heading h2 { margin-top: 13px; color: var(--green); font-family: "Yu Mincho","Hiragino Mincho ProN",serif; font-size: clamp(2rem,3.1vw,3.3rem); font-weight: 600; line-height: 1.45; }
.menu-section-heading > p:last-child { max-width: 730px; margin-top: 18px; font-size: .95rem; line-height: 1.9; }
.group-menu .menu-section-heading > p:last-child { max-width: none; }
.group-menu .group-phone-button { margin-top: 27px; min-width: 260px; }
.group-menu .menu-section-heading > .group-phone-hours { margin-top: 14px; color: var(--green); font-size: .9rem; font-weight: 600; }
.menu-section-heading > p.menu-hours { margin-top: 10px; color: var(--green); font-weight: 700; }
.menu-aside { font-size: .92em; font-weight: 400; }
.menu-page-section.alt .grand-category { background: #f7f8f3; }
.lunch-options { margin-top: 30px; padding: 28px 32px; background: #e5ebe5; }
.lunch-options h3 { margin-bottom: 12px; color: var(--green); font-family: "Yu Mincho","Hiragino Mincho ProN",serif; font-size: 1.4rem; }
.lunch-options ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 35px; margin: 0; padding: 0; list-style: none; }
.lunch-options li { display: flex; justify-content: space-between; gap: 15px; padding: 11px 0; border-bottom: 1px solid #cbd9cc; font-size: .95rem; line-height: 1.6; }
.lunch-options strong { color: var(--green); font: 600 .95rem/1.6 "Helvetica Neue",Arial,sans-serif; white-space: nowrap; }
.lunch-options .set-name { color: inherit; font: inherit; font-weight: 700; }
.takeout-options p { margin: 0 0 10px; font-size: .95rem; line-height: 1.8; }
.takeout-options ul { max-width: 700px; grid-template-columns: 1fr; }
.takeout-options .soup-set-label { display: inline-flex; align-items: center; gap: 10px; }
.takeout-options .soup-set-icon { display: block; width: 30px; height: 30px; flex: none; color: var(--green); }
.group-menu { background: #e5ebe5; }
@media (min-width: 850px) and (max-width: 1000px) {
  .group-menu .container { width: calc(100% - 42px); }
}
@media (min-width: 850px) {
  .group-description-line { white-space: nowrap; }
}
.group-menu-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.group-card { padding: 28px; background: #fffdf8; border-top: 2px solid var(--green); }
.group-card h3 { min-height: 3em; color: var(--green); font-family: "Yu Mincho","Hiragino Mincho ProN",serif; font-size: 1.3rem; line-height: 1.5; }
.group-card .menu-price { display: block; margin: 8px 0 13px; font-size: 1.18rem; }
.group-card p { margin-bottom: 15px; font-size: .87rem; line-height: 1.8; }
.group-card ul { margin: 0; padding-left: 1.2em; font-size: .9rem; line-height: 1.8; }
.takeout-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.takeout-card { min-width: 0; overflow: hidden; padding: 29px 31px; background: #fffdf8; border-top: 2px solid var(--green); }
.takeout-photo-frame { width: calc(100% + 62px); aspect-ratio: 4 / 3; margin: -29px -31px 21px; overflow: hidden; }
.takeout-card-photo { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 60%; transform: scale(var(--photo-zoom,1.35)); transform-origin: var(--photo-focus-x,center) var(--photo-focus,68%); }
.takeout-photo-frame--mozzarella { --photo-zoom: 1.55; --photo-focus: 74%; }
.takeout-photo-frame--roast-beef { --photo-zoom: 1.48; --photo-focus: 67%; }
.takeout-photo-frame--gratin { --photo-zoom: 1.34; --photo-focus: 65%; }
.takeout-photo-frame--keema { --photo-zoom: 1.34; --photo-focus: 64%; }
.takeout-photo-frame--hamburg { --photo-zoom: 1.42; --photo-focus: 74%; }
.takeout-photo-frame--orderves { --photo-zoom: 1.30; --photo-focus-x: 75%; --photo-focus: 67%; }
.takeout-photo-frame--caprese { --photo-zoom: 1.34; --photo-focus: 62%; }
.takeout-photo-frame--croquette { --photo-zoom: 1.65; --photo-focus: 64%; }
.takeout-photo-frame--pizza { --photo-zoom: 1.20; --photo-focus: 52%; }
.takeout-card-head { display: block; }
.takeout-card h2 { color: var(--green); font-family: "Yu Mincho","Hiragino Mincho ProN",serif; font-size: clamp(1.24rem,1.7vw,1.5rem); font-weight: 600; line-height: 1.55; }
.takeout-card p { margin-top: 15px; font-size: .93rem; line-height: 1.9; }
.takeout-card small { display: block; margin-top: 9px; color: #52655b; font-size: .82rem; line-height: 1.8; }
.takeout-card h2 .takeout-aside { display: inline; margin: 0; color: inherit; font-size: .82em; font-weight: 500; letter-spacing: .01em; line-height: inherit; }
.takeout-card .menu-price, .takeout-options li > strong { font-size: 1.18rem; }
.takeout-card-head > .menu-price { display: block; margin-top: 7px; }
.takeout-card ul { margin: 17px 0 0; padding: 0; list-style: none; }
.takeout-card li { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-top: 1px solid #e1e6dc; font-size: .94rem; line-height: 1.5; }
.takeout-order { padding: clamp(65px,8vw,105px) 0; background: #e5ebe5; }
.takeout-order h2 { margin: 16px 0 20px; color: var(--green); font-family: "Yu Mincho","Hiragino Mincho ProN",serif; font-size: clamp(2rem,3.1vw,3.2rem); font-weight: 600; line-height: 1.5; }
.takeout-order p { font-size: .94rem; line-height: 1.9; }
.takeout-order .solid-button { margin-top: 27px; min-width: 260px; }
.takeout-order .takeout-order-hours { margin-top: 14px; color: var(--green); font-size: .9rem; font-weight: 600; }
@media (max-width: 980px) {
  .group-menu-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 1100px) {
  .takeout-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 700px) {
  .grand-hero-copy > p.lunch-hours { font-size: .87rem; }
  .lunch-tabs a { min-height: 62px; padding: 10px 8px; font-size: .94rem; }
  .menu-section-heading { margin-bottom: 28px; }
  .lunch-options { padding: 22px; }
  .lunch-options ul, .group-menu-grid, .takeout-grid { grid-template-columns: 1fr; }
  .group-card h3 { min-height: 0; }
  .takeout-card { padding: 24px 21px; }
  .takeout-photo-frame { width: calc(100% + 42px); margin: -24px -21px 19px; }
  .takeout-card p { font-size: .9rem; }
  .takeout-order-details > div { padding: 22px; }
  .takeout-order .solid-button, .group-menu .group-phone-button { width: 100%; }
}

/* Match the previous menu pizza size while using the home-page image. */
.grand-pizza-photo-frame { overflow: hidden; }
.grand-pizza-photo-frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 69%;
  transform: scale(1.4);
  transform-origin: center 60%;
}

/* A single group lunch plan: booking guidance beside the full set contents. */
.group-lunch-layout { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(35px, 5vw, 70px); align-items: start; }
.group-lunch-intro { margin-bottom: 0; }
.group-lunch-intro h2 { font-size: clamp(2rem, 3vw, 3rem); line-height: 1.5; }
.group-lunch-intro .group-lunch-capacity { margin-top: 25px; font-size: 1rem; line-height: 1.9; }
.group-lunch-capacity strong { color: var(--green); font-size: 1.15em; }
.group-lunch-intro .group-lunch-reservation { margin-top: 8px; font-size: .95rem; line-height: 1.9; }
.group-lunch-intro .group-lunch-note { margin-top: 20px; font-size: .89rem; line-height: 1.95; }
.group-card-single { padding: clamp(25px, 3vw, 38px); border-top-width: 3px; }
.group-plan-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 12px 22px; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.group-card-single h3 { min-height: 0; font-size: 1.5rem; line-height: 1.6; }
.group-card-single .group-plan-price { margin: 0; color: var(--green); line-height: 1.3; white-space: nowrap; }
.group-plan-price > span { font-size: .84rem; font-weight: 600; margin-right: 7px; }
.group-plan-price > strong { font-size: clamp(2rem, 2.8vw, 2.5rem); font-weight: 700; letter-spacing: .01em; font-variant-numeric: tabular-nums; }
.group-plan-content-title { margin: 25px 0 8px; color: #68766d; font-size: .76rem; font-weight: 600; letter-spacing: .1em; }
.group-card-single .group-plan-contents { list-style: none; padding: 0; margin: 0; font-size: .94rem; line-height: 1.8; }
.group-plan-contents li { padding: 10px 0; border-bottom: 1px solid #e6e9e0; }
.group-plan-contents li:last-child { border-bottom: 0; padding-bottom: 0; }
@media (max-width: 1000px) {
  .group-lunch-layout { grid-template-columns: 1fr; gap: 32px; }
  .group-lunch-intro h2 { font-size: 2.2rem; }
  .group-lunch-intro h2 br { display: none; }
}
@media (max-width: 540px) {
  .group-lunch-intro h2 { font-size: 2rem; }
  .group-lunch-intro h2 br { display: initial; }
  .group-card-single { padding: 25px 22px; }
  .group-card-single h3 { font-size: 1.3rem; }
  .group-plan-heading { gap: 12px 16px; padding-bottom: 21px; }
  .group-card-single .group-plan-contents { font-size: .9rem; }
  .group-lunch-intro .group-lunch-note { font-size: .86rem; }
}
