/* ════════════════════════════════════
   SECTION A — 菜單A: 上方TAB + 下方大圖
════════════════════════════════════ */
#menu-a {
  position:relative;
  background:var(--sumi);
  padding-top:3.8rem;
}
.dish-menu-head {
  max-width:900px;
  margin:0 auto 2.5rem;
  padding:0 2rem;
  text-align:center;
}
.dish-menu-kicker {
  display:block;
  margin-bottom:.9rem;
  font-family:'Libre Baskerville',serif;
  font-style:italic;
  font-size:.68rem;
  letter-spacing:.48em;
  color:var(--gold);
}
.dish-menu-head h2 {
  font-family:'Zen Old Mincho',serif;
  font-size:clamp(2rem,3.6vw,3.2rem);
  font-weight:200;
  letter-spacing:.24em;
  padding-left:.24em;
  margin-bottom:1rem;
}
.dish-menu-head p {
  font-size:.78rem;
  line-height:2;
  letter-spacing:.16em;
  color:rgba(255,255,255,.58);
}
.dish-menu-head a {
  color:var(--gold);
  border-bottom:1px solid rgba(184,151,90,.45);
  padding-bottom:.1rem;
}

.tabs-bar {
  position:relative; z-index:5;
  display:flex; justify-content:center; gap:0;
  padding:0 6rem;
  border-top:1px solid rgba(184,151,90,.18);
  border-bottom:1px solid rgba(184,151,90,.18);
  background:rgba(15,14,12,.6);
  overflow-x:auto;
  scrollbar-width:none;
}
.tabs-bar::-webkit-scrollbar { display:none; }
.tab {
  flex:1; min-width:130px;
  padding:1.25rem .9rem;
  text-align:center;
  border-right:1px solid rgba(184,151,90,.12);
  position:relative;
  transition:background var(--tf);
  white-space:nowrap;
}
.tab:last-child { border-right:none; }
.tab-jp {
  font-family:'Zen Old Mincho',serif; font-weight:400;
  font-size:1.05rem; letter-spacing:.35em;
  color:rgba(255,255,255,.7);
  display:block; margin-bottom:.4rem;
  transition:color var(--tf);
}
.tab-en {
  font-family:'Libre Baskerville',serif; font-style:italic;
  font-size:.55rem; letter-spacing:.4em;
  color:rgba(184,151,90,.5);
  transition:color var(--tf);
}
.tab::after {
  content:''; position:absolute; bottom:-1px; left:50%; transform:translateX(-50%) scaleX(0);
  width:50%; height:2px; background:var(--gold);
  transition:transform var(--tf);
  transform-origin:center;
}
.tab:hover, .tab.active { background:rgba(184,151,90,.08); }
.tab:hover .tab-jp, .tab.active .tab-jp { color:var(--gold2); }
.tab:hover .tab-en, .tab.active .tab-en { color:var(--gold); }
.tab.active::after { transform:translateX(-50%) scaleX(1); }

.dish-stage {
  position:relative;
  height:64vh; min-height:480px;
  overflow:hidden;
}
.dish-stage-img {
  position:absolute; inset:0;
  background:center/cover no-repeat;
  opacity:0;
  transform:translateX(-56px);
}
.dish-stage-img.active {
  opacity:1; transform:translateX(0);
  transition:opacity .2s ease-out, transform .26s cubic-bezier(.25,0,.25,1);
}
.dish-stage::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(to right, rgba(15,14,12,.9) 0%, rgba(15,14,12,.4) 40%, rgba(15,14,12,.15) 70%, rgba(15,14,12,.5) 100%);
  pointer-events:none;
  z-index:1;
}

.dish-caption {
  position:absolute; left:6rem; bottom:4.5rem; z-index:2;
  max-width:380px;
}
.dish-caption-block {
  opacity:0; transform:translateX(-20px);
  position:absolute; inset:0;
}
.dish-caption-block.active {
  opacity:1; transform:translateX(0); position:relative;
  transition:opacity .15s ease-out, transform .2s cubic-bezier(.25,0,.25,1);
}
.dc-num {
  font-family:'Libre Baskerville',serif; font-style:italic;
  font-size:.85rem; letter-spacing:.4em; color:var(--gold);
  margin-bottom:1rem; display:block;
}
.dc-jp {
  font-family:'Zen Old Mincho',serif; font-weight:200;
  font-size:1.85rem; letter-spacing:.4em; color:#fff;
  line-height:1.4; margin-bottom:.4rem;
}
.dc-zh {
  font-size:.75rem; letter-spacing:.35em; color:var(--gold);
  margin-bottom:1.4rem; display:block;
}
.dc-divider {
  width:36px; height:1px; background:var(--gold); opacity:.6;
  margin-bottom:1.4rem;
}
.dc-desc {
  font-size:.78rem; line-height:2.4; letter-spacing:.18em;
  color:rgba(255,255,255,.7); font-weight:300;
}
.dc-desc em { font-style:normal; color:var(--gold2); }

/* index pager bottom right */
.dish-pager {
  position:absolute; right:5rem; bottom:4.5rem; z-index:2;
  display:flex; align-items:baseline; gap:1.4rem;
  font-family:'Libre Baskerville',serif;
}
.dish-pager-current {
  font-size:3rem; color:var(--gold); font-style:italic; letter-spacing:.05em;
  line-height:1;
}
.dish-pager-bar {
  width:60px; height:1px; background:rgba(184,151,90,.4);
}
.dish-pager-total {
  font-size:1rem; color:rgba(255,255,255,.45); letter-spacing:.2em;
}

/* ════════════════════════════════════
   SECTION B — 今月の獻立: static monthly menu
════════════════════════════════════ */
#menu-b {
  background:
    radial-gradient(circle at 50% 0%, rgba(184,151,90,.08), transparent 42%),
    var(--sumi);
  margin-top:6rem;
  position:relative;
}

.mb-hero {
  position:relative;
  height:42vh; min-height:320px;
  overflow:hidden;
}
.mb-hero-img {
  position:absolute; inset:0;
  background:center/cover no-repeat;
  transform:scale(1.03);
  filter:brightness(.78) saturate(.9);
}
.mb-hero-overlay {
  position:absolute; inset:0;
  background:
    linear-gradient(to bottom, rgba(15,14,12,.22) 0%, rgba(15,14,12,.72) 68%, var(--sumi) 100%),
    linear-gradient(to right, rgba(15,14,12,.75), rgba(15,14,12,.1), rgba(15,14,12,.75));
}
.mb-hero-content {
  position:absolute; inset:0;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:2rem;
}
.mb-furi {
  font-family:'Noto Serif JP',serif; font-weight:300;
  font-size:.55rem; letter-spacing:.65em; color:var(--gold);
  display:block; margin-bottom:1.2rem;
}
.mb-title {
  font-family:'Zen Old Mincho',serif; font-weight:200;
  font-size:clamp(2.2rem, 4.5vw, 3.6rem); letter-spacing:.55em; color:#fff;
  line-height:1.3; margin-bottom:.7rem; padding-left:.55em;
}
.mb-sub {
  font-family:'Libre Baskerville',serif; font-style:italic;
  font-size:.9rem; letter-spacing:.4em; color:rgba(255,255,255,.45);
  margin-bottom:.6rem;
}
.mb-month {
  font-family:'Libre Baskerville',serif;
  font-size:.72rem; letter-spacing:.55em; color:var(--gold); opacity:.85;
  display:block; padding-left:.55em;
}

.mb-wrap {
  max-width:1180px;
  margin:0 auto;
  padding:4.5rem 6rem 6rem;
}
.mb-intro {
  max-width:720px;
  margin:0 auto 3.6rem;
  text-align:center;
}
.mb-kicker {
  display:block;
  font-family:'Libre Baskerville',serif;
  font-size:.72rem;
  font-style:italic;
  letter-spacing:.5em;
  color:var(--gold);
  margin-bottom:1rem;
}
.mb-intro p {
  font-size:.78rem;
  line-height:2.4;
  letter-spacing:.2em;
  color:rgba(255,255,255,.58);
}
.mb-columns {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:4.5rem;
}
.mb-course-card {
  position:relative;
  padding:2.4rem 2.2rem 2.2rem;
  border:1px solid rgba(184,151,90,.18);
  background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.012));
  box-shadow:0 24px 80px rgba(0,0,0,.28);
}
.mb-course-card::before {
  content:'';
  position:absolute; inset:.7rem;
  border:1px solid rgba(184,151,90,.08);
  pointer-events:none;
}
.mb-course-head {
  position:relative;
  z-index:1;
  margin-bottom:1.8rem;
  padding-bottom:1.4rem;
  border-bottom:1px solid rgba(184,151,90,.2);
}
.mb-course-en {
  display:block;
  font-family:'Libre Baskerville',serif;
  font-style:italic;
  font-size:.68rem;
  letter-spacing:.42em;
  color:rgba(184,151,90,.72);
  margin-bottom:.65rem;
}
.mb-course-head h3 {
  font-family:'Zen Old Mincho',serif;
  font-weight:200;
  font-size:1.55rem;
  line-height:1.4;
  letter-spacing:.42em;
  color:#fff;
  margin-bottom:.4rem;
}
.mb-course-head p {
  font-family:'Libre Baskerville',serif;
  font-size:1.25rem;
  letter-spacing:.08em;
  color:var(--gold);
}
.mb-menu-list {
  position:relative;
  z-index:1;
  list-style:none;
  counter-reset:menuDish;
}
.mb-menu-list li {
  counter-increment:menuDish;
  display:grid;
  grid-template-columns:5rem 1fr;
  gap:1rem;
  padding:.78rem 0;
  border-bottom:1px solid rgba(184,151,90,.09);
}
.mb-menu-list li:last-child { border-bottom:none; }
.mb-menu-list li::before {
  content:counter(menuDish, lower-roman);
  grid-column:1 / -1;
  height:0;
  transform:translateY(.4rem);
  text-align:right;
  font-family:'Libre Baskerville',serif;
  font-style:italic;
  font-size:.78rem;
  color:rgba(184,151,90,.25);
  pointer-events:none;
}
.mb-menu-list span {
  font-family:'Zen Old Mincho',serif;
  font-weight:300;
  font-size:.82rem;
  letter-spacing:.22em;
  color:var(--gold);
  white-space:nowrap;
}
.mb-menu-list p {
  font-size:.76rem;
  line-height:2;
  letter-spacing:.15em;
  color:rgba(255,255,255,.74);
  font-weight:300;
}
.mb-notes {
  margin-top:3.2rem;
  padding-top:2rem;
  border-top:1px solid rgba(184,151,90,.15);
}
.mb-notes p {
  font-size:.66rem;
  line-height:2.2;
  letter-spacing:.16em;
  color:rgba(255,255,255,.42);
  font-weight:300;
  margin-bottom:.2rem;
}
/* ════════════════════════════════════
   SECTION C — 商品頁
════════════════════════════════════ */
#shop {
  position:relative;
  background:var(--washi);
  color:var(--ink2);
  padding:8rem 0 9rem;
  overflow:hidden;
}
#shop::before {
  content:''; position:absolute; inset:0; pointer-events:none; opacity:.06;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='32'%3E%3Cellipse cx='28' cy='32' rx='28' ry='16' fill='none' stroke='%23704214' stroke-width='0.9'/%3E%3Cellipse cx='0' cy='32' rx='28' ry='16' fill='none' stroke='%23704214' stroke-width='0.9'/%3E%3Cellipse cx='56' cy='32' rx='28' ry='16' fill='none' stroke='%23704214' stroke-width='0.9'/%3E%3Cellipse cx='14' cy='16' rx='28' ry='16' fill='none' stroke='%23704214' stroke-width='0.9'/%3E%3Cellipse cx='42' cy='16' rx='28' ry='16' fill='none' stroke='%23704214' stroke-width='0.9'/%3E%3C/svg%3E");
}
#shop::after {
  content:''; position:absolute; right:0; top:0; bottom:0; width:30%; pointer-events:none;
  background:url('../assets/金箔背景.png') right center/cover no-repeat;
  opacity:.4;
}

.shop-head {
  position:relative; z-index:2;
  text-align:center; padding:0 2rem 3.5rem;
}
.shop-head .furi {
  font-family:'Noto Serif JP',serif; font-size:.6rem; letter-spacing:.55em;
  color:var(--bengala); opacity:.7; display:block; margin-bottom:1rem;
}
.shop-head .h {
  font-family:'Zen Old Mincho',serif; font-weight:200;
  font-size:clamp(1.8rem, 3vw, 2.6rem); letter-spacing:.55em;
  color:var(--ink2); margin-bottom:.8rem;
}
.shop-head .en {
  font-family:'Libre Baskerville',serif; font-style:italic;
  font-size:.85rem; letter-spacing:.45em; color:rgba(58,44,24,.5);
}
.shop-head .rule {
  width:1px; height:42px; margin:1.6rem auto 0;
  background:linear-gradient(to bottom, var(--bengala), transparent);
  opacity:.5;
}

.shop-stage {
  position:relative; z-index:2;
  max-width:1340px; margin:0 auto; padding:0 6rem;
  display:grid; grid-template-columns:440px 1fr; gap:5rem;
  align-items:flex-start;
}

/* LEFT — title + scrollable list */
.shop-left { padding-top:1rem; }
.shop-left-title {
  font-family:'Zen Old Mincho',serif; font-weight:400;
  font-size:1.6rem; letter-spacing:.4em; color:var(--ink2);
  margin-bottom:.4rem;
}
.shop-left-en {
  font-family:'Libre Baskerville',serif; font-style:italic;
  font-size:.78rem; letter-spacing:.3em; color:var(--bengala);
  opacity:.55; margin-bottom:2rem; display:block;
}
.shop-left-rule {
  width:36px; height:1px; background:var(--bengala); opacity:.5;
  margin-bottom:2.2rem;
}

.shop-list-wrap {
  position:relative;
  height:520px;
  overflow:hidden;
  border-top:1px solid rgba(112,66,20,.25);
  border-bottom:1px solid rgba(112,66,20,.25);
}
.shop-list-wrap::before, .shop-list-wrap::after {
  content:''; position:absolute; left:0; right:8px; height:30px; z-index:2;
  pointer-events:none;
}
.shop-list-wrap::before {
  top:0; background:linear-gradient(to bottom, var(--washi), transparent);
}
.shop-list-wrap::after {
  bottom:0; background:linear-gradient(to top, var(--washi), transparent);
}
.shop-list {
  height:100%;
  overflow-y:auto;
  scrollbar-width:thin;
  scrollbar-color:rgba(112,66,20,.4) transparent;
  padding-right:8px;
}
.shop-list::-webkit-scrollbar { width:3px; }
.shop-list::-webkit-scrollbar-thumb { background:rgba(112,66,20,.35); }
.shop-list::-webkit-scrollbar-track { background:transparent; }

.shop-item {
  display:grid; grid-template-columns:80px 1fr auto;
  gap:1.2rem; align-items:center;
  padding:1.4rem .4rem;
  border-bottom:1px solid rgba(112,66,20,.15);
  cursor:pointer;
  transition:background var(--tf), padding var(--tf);
  position:relative;
}
.shop-item:last-child { border-bottom:none; }
.shop-item:hover { background:rgba(184,151,90,.08); padding-left:1rem; }
.shop-item.active {
  background:rgba(184,151,90,.12);
  padding-left:1rem;
}
.shop-item.active::before {
  content:''; position:absolute; left:0; top:10%; bottom:10%; width:2px;
  background:var(--bengala);
}

.shop-item-thumb {
  width:80px; height:80px;
  background:#fff center/cover no-repeat;
  border:1px solid rgba(112,66,20,.18);
  flex-shrink:0;
}
.shop-item-info { min-width:0; }
.shop-item-jp {
  font-family:'Zen Old Mincho',serif; font-weight:400;
  font-size:.92rem; letter-spacing:.18em; color:var(--ink2);
  margin-bottom:.35rem; line-height:1.4;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.shop-item-meta {
  font-size:.6rem; letter-spacing:.25em; color:var(--bengala); opacity:.7;
  font-family:'Libre Baskerville',serif;
}
.shop-item-price {
  font-family:'Libre Baskerville',serif; font-weight:400;
  font-size:1.1rem; letter-spacing:.05em; color:var(--bengala);
  white-space:nowrap;
}
.shop-item-price .unit {
  font-family:'Noto Serif TC',serif;
  font-size:.55rem; letter-spacing:.3em; color:rgba(58,44,24,.55);
  margin-left:.3rem;
}

.shop-list-hint {
  margin-top:1.2rem;
  font-size:.55rem; letter-spacing:.4em; color:rgba(58,44,24,.45);
  text-align:center;
  font-family:'Libre Baskerville',serif; font-style:italic;
}
.shop-list-hint span { display:inline-block; margin:0 .6rem; opacity:.6; }

/* RIGHT — image + details */
.shop-right {
  position:relative;
  display:flex; flex-direction:column;
  gap:1.4rem;
}
.shop-stage-img {
  position:relative;
  aspect-ratio:1/1;
  background:#fff;
  overflow:hidden;
  border:1px solid rgba(112,66,20,.18);
  cursor:zoom-in;
}
.shop-stage-img-inner {
  position:absolute; inset:0;
  background:#fff center/contain no-repeat;
  transition:transform .8s var(--t), opacity .6s var(--t);
}
.shop-stage-img-inner.entering { opacity:0; }
.shop-stage-img-inner.active { opacity:1; }

/* on hover — zoom in */
.shop-stage-img:hover .shop-stage-img-inner {
  transform:scale(1.4);
  cursor:zoom-in;
}

/* product subtle frame */
.shop-stage-img::before {
  content:''; position:absolute; inset:1.4rem; pointer-events:none;
  border:1px solid rgba(112,66,20,.08);
  z-index:1;
}

/* hover hint */
.shop-zoom-hint {
  position:absolute; right:1rem; top:1rem; z-index:2;
  font-family:'Libre Baskerville',serif; font-style:italic;
  font-size:.55rem; letter-spacing:.4em; color:var(--bengala);
  background:rgba(255,255,255,.85); padding:.45rem .8rem;
  opacity:0; transition:opacity var(--tf);
  pointer-events:none;
}
.shop-stage-img:hover .shop-zoom-hint { opacity:1; }

.shop-stage-meta {
  display:flex; justify-content:space-between; align-items:flex-end;
  gap:2rem;
}
.shop-stage-meta-text { flex:1; min-width:0; }
.shop-stage-meta-year {
  font-family:'Libre Baskerville',serif; font-style:italic;
  font-size:.7rem; letter-spacing:.4em; color:var(--bengala);
  opacity:.7; display:block; margin-bottom:.5rem;
}
.shop-stage-meta-jp {
  font-family:'Zen Old Mincho',serif; font-weight:400;
  font-size:1.5rem; letter-spacing:.25em; color:var(--ink2);
  margin-bottom:.4rem; line-height:1.4;
}
.shop-stage-meta-zh {
  font-size:.72rem; letter-spacing:.2em; color:var(--ink); opacity:.7;
  line-height:1.8;
}
.shop-stage-meta-price {
  font-family:'Libre Baskerville',serif;
  font-size:2rem; letter-spacing:.05em; color:var(--bengala);
  margin-bottom:.3rem; white-space:nowrap;
}
.shop-stage-meta-price .unit {
  font-family:'Noto Serif TC',serif; font-size:.6rem;
  letter-spacing:.3em; color:rgba(58,44,24,.55); margin-left:.3rem;
}

.shop-stage-detail {
  background:rgba(255,255,255,.4);
  border:1px solid rgba(112,66,20,.15);
  padding:1.6rem 1.8rem;
  display:flex; gap:2.5rem; align-items:flex-start;
}
.shop-detail-text {
  flex:1; font-size:.72rem; line-height:2.2; letter-spacing:.15em;
  color:var(--ink); font-weight:300;
}
.shop-stage-cart {
  display:inline-flex; align-items:center; gap:.8rem;
  padding:1rem 1.6rem;
  background:var(--ink2); color:var(--washi);
  border:1px solid var(--ink2);
  font-size:.65rem; letter-spacing:.45em;
  white-space:nowrap;
  transition:all var(--tf);
  flex-shrink:0;
}
.shop-stage-cart:hover {
  background:var(--bengala); border-color:var(--bengala);
}
.shop-stage-cart svg { width:14px; height:14px; }

/* loading transition for image swap */
.shop-detail-block { transition:opacity .4s; }
.shop-detail-block.entering { opacity:0; }

/* responsive */
@media (max-width:980px) {
  #menu-a { padding-top:3rem; }
  .dish-menu-head { margin-bottom:1.8rem; padding:0 1.3rem; }
  .dish-menu-head h2 { letter-spacing:.16em; padding-left:.16em; line-height:1.55; }
  .dish-menu-head p { letter-spacing:.08em; }
  .tabs-bar { padding:0 1rem; }
  .tab { padding:1rem .8rem; min-width:100px; }
  .dish-stage { height:62vh; min-height:420px; }
  .dish-caption { left:1.5rem; bottom:2rem; max-width:75%; }
  .dish-pager { right:1.5rem; bottom:2rem; }
  .mb-hero { height:32vh; min-height:220px; }
  .mb-title { letter-spacing:.35em; padding-left:.35em; }
  .mb-wrap { padding:3rem 1.5rem 4rem; }
  .mb-columns { grid-template-columns:1fr; gap:2.5rem; }
  .mb-course-card { padding:2rem 1.4rem 1.7rem; }
  .mb-menu-list li { grid-template-columns:4.2rem 1fr; gap:.8rem; }
  .mb-notes { margin-top:2.5rem; }
  .shop-stage { grid-template-columns:1fr; padding:0 1.5rem; gap:3rem; }
  .shop-list-wrap { height:380px; }
  .shop-stage-meta { flex-direction:column; align-items:flex-start; }
  .shop-stage-detail { flex-direction:column; gap:1.4rem; }
}
/* Seasonal menu redesign */
#menu-b.seasonal-hero-stack {
  position:relative;
  margin-top:0;
  min-height:100vh;
  overflow:clip;
  background:
    radial-gradient(circle at 50% 18rem, rgba(184,151,90,.055), transparent 42rem),
    linear-gradient(to bottom, var(--sumi) 0%, var(--sumi2) 100%);
}
#menu-b.seasonal-hero-stack .mb-hero {
  position:sticky;
  top:0;
  height:100vh;
  min-height:620px;
  z-index:0;
}
#menu-b.seasonal-hero-stack .mb-hero::after {
  content:'';
  position:absolute;
  left:0; right:0; bottom:-1px;
  height:52vh;
  pointer-events:none;
  background:
    radial-gradient(ellipse at 50% 95%, rgba(15,14,12,.98) 0%, rgba(15,14,12,.78) 38%, rgba(15,14,12,0) 74%),
    linear-gradient(to bottom, rgba(15,14,12,0) 0%, rgba(15,14,12,.7) 62%, var(--sumi) 100%);
}
#menu-b.seasonal-hero-stack .mb-hero-img {
  background-image:url('../pics/menu-b-hero.jpg') !important;
  background-position:center;
  background-size:cover;
  transform:none;
  filter:brightness(.46) saturate(.86);
}
#menu-b.seasonal-hero-stack .mb-hero-overlay {
  background:
    radial-gradient(ellipse at 50% 48%, rgba(15,14,12,.18) 0%, rgba(15,14,12,.36) 52%, rgba(15,14,12,.92) 100%),
    linear-gradient(to bottom, rgba(15,14,12,.18), rgba(15,14,12,.82));
}
#menu-b.seasonal-hero-stack .mb-hero-content {
  will-change:transform, opacity;
}
#menu-b.seasonal-hero-stack .mb-title {
  margin:0;
  font-size:clamp(2.1rem,4vw,3.5rem);
  letter-spacing:.42em;
  padding-left:.42em;
}
#menu-b.seasonal-hero-stack .mb-sub,
#menu-b.seasonal-hero-stack .mb-month {
  display:none;
}
#menu-b.seasonal-hero-stack .mb-wrap {
  position:relative;
  z-index:2;
  margin-top:0;
  padding:5.5rem 6rem 7rem;
  background:
    linear-gradient(to bottom, var(--sumi) 0, rgba(15,14,12,.96) 14rem, var(--sumi) 24rem),
    radial-gradient(circle at 50% 14rem, rgba(184,151,90,.07), transparent 36rem);
}
#menu-b.seasonal-hero-stack .mb-intro {
  max-width:860px;
  margin-bottom:4.4rem;
}
#menu-b.seasonal-hero-stack .mb-intro p {
  max-width:760px;
  margin:0 auto;
  color:rgba(255,255,255,.72);
  font-size:.78rem;
  line-height:2.25;
  letter-spacing:.14em;
}
#menu-b.seasonal-hero-stack .mb-intro p + p {
  margin-top:.85rem;
}
#menu-b.seasonal-hero-stack .mb-intro a {
  color:var(--gold);
  border-bottom:1px solid rgba(184,151,90,.45);
  padding-bottom:.12rem;
}
#menu-b.seasonal-hero-stack .mb-course-card {
  backdrop-filter:blur(2px);
  background:linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.014));
}

#sake {
  position:relative;
  z-index:5;
  overflow:hidden;
  background:
    radial-gradient(circle at 18% 18%, rgba(184,151,90,.11), transparent 30rem),
    linear-gradient(180deg, var(--sumi2) 0%, var(--sumi) 56%, #0a0908 100%);
  padding:7rem 3rem 7.5rem;
  border-top:1px solid rgba(184,151,90,.08);
}
#sake::before {
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(90deg, rgba(255,255,255,.025), transparent 34%, transparent 66%, rgba(255,255,255,.018));
}
.sake-inner {
  position:relative;
  max-width:1120px;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(250px, 380px) minmax(0, 1fr);
  gap:5rem;
  align-items:center;
}
.sake-visual {
  position:relative;
  min-height:560px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.sake-visual::before {
  content:'';
  position:absolute;
  width:280px;
  height:280px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(212,176,122,.2), rgba(184,151,90,.06) 48%, transparent 70%);
  filter:blur(1px);
}
.sake-visual img {
  position:relative;
  width:min(430px, 86vw);
  filter:drop-shadow(0 32px 70px rgba(0,0,0,.58));
}
.sake-copy { max-width:620px; }
.sake-kicker {
  display:block;
  margin-bottom:1.2rem;
  font-family:'Libre Baskerville',serif;
  font-style:italic;
  font-size:.78rem;
  letter-spacing:.58em;
  color:var(--gold);
}
.sake-copy h2 {
  margin-bottom:2rem;
  font-family:'Zen Old Mincho',serif;
  font-size:clamp(2rem,3.2vw,3rem);
  font-weight:200;
  letter-spacing:.42em;
  padding-left:.42em;
}
.sake-line {
  width:1px;
  height:56px;
  margin:0 0 2rem 1.1rem;
  background:linear-gradient(to bottom, var(--gold), transparent);
}
.sake-copy p {
  font-size:.86rem;
  line-height:2.35;
  letter-spacing:.16em;
  color:rgba(255,255,255,.7);
}
.sake-copy p + p {
  margin-top:1rem;
  color:rgba(255,255,255,.56);
}

@media(max-width:980px){
  #sake { padding:5rem 1.4rem; }
  .sake-inner { grid-template-columns:1fr; gap:2.4rem; text-align:center; }
  .sake-visual { min-height:430px; }
  .sake-line { margin-left:auto; margin-right:auto; }}
@media(max-width:560px){
  #menu-b.seasonal-hero-stack .mb-hero { min-height:520px; }
  #menu-b.seasonal-hero-stack .mb-wrap { margin-top:0; padding-top:4.5rem; }
  .sake-copy h2 { letter-spacing:.28em; padding-left:.28em; }
}

/* FAST PERFORMANCE OVERRIDES
   Experimental copy: reduce paint/compositing cost without changing core content. */
html { scroll-behavior:auto !important; }
nav.scrolled,
.map-overlay,
.carousel-btn,
.info-table,
#menu-b.seasonal-hero-stack .mb-course-card {
  backdrop-filter:none !important;
}
.fb-photo,
.about-photo-side,
.person-photo,
.ph-bg,
.ph-thumb,
.p3-left-photo,
.p3-right-photo,
#hero .hero-bg,
.fpc-photo,
.g-img,
.carousel-slide,
.mb-hero-img,
.sake-visual img,
.info-deco img,
.map-wrap iframe {
  filter:none !important;
  will-change:auto !important;
}
.map-wrap:hover iframe { filter:none !important; }
.washi-layer,
.p3-pattern { display:none !important; }
.shokunin-person.mochizuki .person-photo,
.shokunin-person.doi .person-photo { clip-path:none !important; }
*, *::before, *::after {
  transition-duration:.18s !important;
  animation-duration:.18s !important;
}

/* MOBILE RWD OVERRIDES */
@media(max-width:980px){
  html { font-size:15px; }

  #menu-b.seasonal-hero-stack { min-height:auto; overflow:visible; }
  #menu-b.seasonal-hero-stack .mb-hero {
    position:relative; top:auto;
    height:100svh; min-height:560px;
  }
  #menu-b.seasonal-hero-stack .mb-hero-img { background-position:52% center; }
  #menu-b.seasonal-hero-stack .mb-hero-content {
    transform:none !important;
    opacity:1 !important;
    padding:5rem 1.4rem 4rem;
  }
  .mb-furi { letter-spacing:.34em; padding-left:.34em; }
  #menu-b.seasonal-hero-stack .mb-title {
    font-size:clamp(2.05rem, 11vw, 3.2rem);
    letter-spacing:.24em;
    padding-left:.24em;
    line-height:1.45;
  }
  #menu-b.seasonal-hero-stack .mb-wrap {
    padding:4.5rem 1.3rem 5rem;
  }
  #menu-b.seasonal-hero-stack .mb-intro { margin-bottom:3rem; }
  #menu-b.seasonal-hero-stack .mb-intro p {
    text-align:left;
    font-size:.84rem;
    line-height:2.15;
    letter-spacing:.08em;
  }
  .mb-columns { gap:1.4rem; }
  .mb-course-card { padding:1.6rem 1.15rem 1.35rem; }
  .mb-course-card::before { inset:.45rem; }
  .mb-course-head h3 { font-size:1.35rem; letter-spacing:.25em; }
  .mb-course-en { letter-spacing:.25em; }
  .mb-menu-list li {
    grid-template-columns:4.2rem minmax(0,1fr);
    gap:.6rem;
    padding:.72rem 0;
  }
  .mb-menu-list span {
    white-space:normal;
    font-size:.8rem;
    letter-spacing:.16em;
  }
  .mb-menu-list p {
    font-size:.78rem;
    letter-spacing:.07em;
    line-height:1.9;
  }
  .mb-notes p { letter-spacing:.08em; line-height:2; }

  #sake { padding:5rem 1.2rem; }
  .sake-visual { min-height:390px; }
  .sake-copy h2 {
    font-size:2rem;
    letter-spacing:.24em;
    padding-left:.24em;
  }
  .sake-copy p {
    text-align:left;
    font-size:.86rem;
    line-height:2.15;
    letter-spacing:.08em;
  }
  .sake-kicker { letter-spacing:.34em; padding-left:.34em; }

  .cb-divider { width:42px; height:1px; margin:1.1rem auto; }
  .tabs-bar { justify-content:flex-start; padding:0 .8rem; }
  .dish-stage { height:64svh; min-height:430px; }
  .dish-caption { left:1.2rem; right:1.2rem; bottom:2.2rem; max-width:none; }
  .dish-pager { display:none; }
  .dc-jp { font-size:1.55rem; letter-spacing:.24em; }
  .dc-desc { letter-spacing:.08em; line-height:2.1; }
  .shop-stage { padding:0 1.2rem; gap:2.2rem; }
  .shop-left-title,
  .shop-stage-meta-jp { letter-spacing:.18em; }
  .shop-list-wrap { height:360px; }
  .shop-item {
    grid-template-columns:64px minmax(0,1fr);
    gap:.85rem;
    padding:1rem .25rem;
  }
  .shop-item-thumb { width:64px; height:64px; }
  .shop-item-price { grid-column:2; font-size:1rem; }
  .shop-stage-detail { padding:1.25rem; }
  .shop-stage-cart { width:100%; justify-content:center; }
}

@media(max-width:560px){
  #menu-b.seasonal-hero-stack .mb-hero { height:92svh; min-height:520px; }
  #menu-b.seasonal-hero-stack .mb-title { letter-spacing:.16em; padding-left:.16em; }
  .mb-furi { letter-spacing:.24em; padding-left:.24em; }
  .mb-course-head h3 { letter-spacing:.18em; }
  .mb-menu-list li { grid-template-columns:3.5rem minmax(0,1fr); }
  .sake-visual img { width:min(330px, 78vw); }
  .dish-stage { height:66svh; min-height:450px; }
  .shop-stage-img { aspect-ratio:1/1; }
}

/* 0604 menu RWD refinements */
.sake-inner {
  max-width:1280px;
  grid-template-columns:minmax(360px, 520px) minmax(0, 1fr);
  gap:6rem;
}
.sake-visual { min-height:640px; }
.sake-visual::before {
  width:360px;
  height:360px;
}
.sake-visual img { width:min(570px, 42vw); }

@media(max-width:980px){
  #menu-a { padding-top:2.4rem; }
  .dish-menu-head {
    margin-bottom:1.35rem;
    padding:0 1.1rem;
  }
  .tabs-bar {
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:1px;
    width:calc(100% - 2rem);
    margin:0 auto 1rem;
    padding:0;
    overflow:visible;
    border:1px solid rgba(184,151,90,.18);
    background:rgba(184,151,90,.16);
  }
  .tab {
    min-width:0;
    border-right:0;
    background:rgba(15,14,12,.9);
    padding:.72rem .35rem .68rem;
  }
  .tab::after { display:none; }
  .tab-jp {
    font-size:.8rem;
    letter-spacing:.16em;
  }
  .tab-en {
    margin-top:.25rem;
    font-size:.5rem;
    letter-spacing:.14em;
  }
  .dish-stage {
    height:56svh;
    min-height:390px;
  }
  .dish-caption {
    bottom:1.35rem;
    left:1.1rem;
    right:1.1rem;
  }
  .sake-inner {
    max-width:720px;
    grid-template-columns:1fr;
    gap:1.8rem;
  }
  .sake-visual { min-height:520px; }
  .sake-visual::before {
    width:min(380px, 72vw);
    height:min(380px, 72vw);
  }
  .sake-visual img { width:min(520px, 92vw); }
}

@media(max-width:560px){
  .dish-menu-head h2 {
    font-size:clamp(1.55rem, 8vw, 2.15rem);
  }
  .tabs-bar {
    width:calc(100% - 1.2rem);
    grid-template-columns:repeat(3, minmax(0, 1fr));
    margin-bottom:.75rem;
  }
  .tab {
    min-height:58px;
    padding:.58rem .18rem .5rem;
  }
  .tab-jp {
    font-size:.72rem;
    letter-spacing:.1em;
  }
  .tab-en {
    font-size:.45rem;
    letter-spacing:.08em;
  }
  .dish-stage {
    height:54svh;
    min-height:360px;
  }
  .dc-jp { font-size:1.36rem; }
  .dc-desc { display:none; }
  #sake { padding-top:4rem; }
  .sake-visual { min-height:470px; }
  .sake-visual img { width:min(480px, 98vw); }
}

body[data-lang="en"] .dish-menu-head h2,
body[data-lang="en"] .dc-jp,
body[data-lang="en"] .mb-title,
body[data-lang="en"] .mb-course-head h3,
body[data-lang="en"] .shop-head .h,
body[data-lang="en"] .shop-left-title,
body[data-lang="en"] .shop-stage-meta-jp,
body[data-lang="en"] .sake-copy h2 {
  letter-spacing:.08em;
  padding-left:0;
}

body[data-lang="en"] .dish-menu-kicker,
body[data-lang="en"] .tab-en,
body[data-lang="en"] .dc-num,
body[data-lang="en"] .dc-zh,
body[data-lang="en"] .dish-pager,
body[data-lang="en"] .mb-furi,
body[data-lang="en"] .mb-sub,
body[data-lang="en"] .mb-month,
body[data-lang="en"] .mb-kicker,
body[data-lang="en"] .mb-course-en,
body[data-lang="en"] .shop-head .furi,
body[data-lang="en"] .shop-head .en,
body[data-lang="en"] .shop-left-en,
body[data-lang="en"] .shop-item-meta,
body[data-lang="en"] .shop-list-hint,
body[data-lang="en"] .shop-zoom-hint,
body[data-lang="en"] .shop-stage-meta-year,
body[data-lang="en"] .sake-kicker {
  letter-spacing:.1em;
  padding-left:0;
}
