:root {
  --washi: #f7f0e3;
  --paper: #fffaf0;
  --ink: #27231d;
  --muted: #70695d;
  --matcha: #5f7245;
  --moss: #243428;
  --vermilion: #a6422b;
  --gold: #b88a43;
  --line: rgba(39, 35, 29, 0.14);
  --shadow: 0 24px 70px rgba(39, 35, 29, 0.16);
  color-scheme: light;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background:
    radial-gradient(circle at 18% 12%, rgba(184, 138, 67, 0.16), transparent 28rem),
    radial-gradient(circle at 88% 20%, rgba(95, 114, 69, 0.14), transparent 30rem),
    var(--washi);
  color: var(--ink);
  font-family: "Zen Kaku Gothic New", system-ui, sans-serif;
  line-height: 1.8;
  overflow-x: hidden;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: 0.22;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.32'/%3E%3C/svg%3E");
  mix-blend-mode: multiply;
  z-index: -1;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }

.skip-link {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 100;
  transform: translateY(-140%);
  background: var(--ink);
  color: var(--paper);
  padding: 10px 14px;
  border-radius: 999px;
}
.skip-link:focus { transform: none; }

.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 50;
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  align-items: center;
  gap: 22px;
  padding: 20px clamp(18px, 4vw, 56px);
  transition: background .35s ease, box-shadow .35s ease, padding .35s ease;
}
.site-header.is-scrolled {
  padding-top: 12px;
  padding-bottom: 12px;
  background: rgba(247, 240, 227, 0.86);
  backdrop-filter: blur(18px);
  box-shadow: 0 1px 0 var(--line);
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  min-height: 48px;
}
.brand-logo {
  width: 64px;
  height: 64px;
  object-fit: contain;
  padding: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.brand strong {
  display: block;
  font-family: "Zen Old Mincho", serif;
  line-height: 1.1;
  font-size: 1rem;
}
.brand small {
  display: block;
  color: var(--muted);
  font-size: .68rem;
  letter-spacing: .16em;
  line-height: 1.2;
}
.desktop-nav {
  justify-self: center;
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 6px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255, 250, 240, 0.55);
}
.desktop-nav a {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  padding: 0 15px;
  border-radius: 999px;
  color: var(--muted);
  font-size: .86rem;
  transition: background .25s ease, color .25s ease;
}
.desktop-nav a:hover,
.desktop-nav a:focus-visible {
  background: var(--moss);
  color: var(--paper);
}
.reserve-link,
.primary-button,
.outline-button,
.disabled-button,
.text-button {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  font-weight: 700;
}
.reserve-link,
.primary-button {
  background: var(--matcha);
  color: var(--paper);
  padding: 0 22px;
  box-shadow: 0 14px 34px rgba(95, 114, 69, .22);
}
.outline-button {
  border: 1px solid rgba(255,255,255,.42);
  color: var(--paper);
  padding: 0 22px;
}
.disabled-button {
  border: 1px solid rgba(255,255,255,.24);
  color: rgba(255,250,240,.58);
  padding: 0 22px;
  cursor: default;
  background: rgba(255,255,255,.06);
}
.text-button {
  color: var(--ink);
  padding: 0 4px;
  border-bottom: 1px solid currentColor;
  border-radius: 0;
}
.menu-toggle {
  display: none;
  width: 48px;
  height: 48px;
  border: 1px solid var(--line);
  background: rgba(255, 250, 240, 0.72);
  border-radius: 50%;
  position: relative;
}
.menu-toggle span {
  position: absolute;
  left: 14px;
  right: 14px;
  height: 2px;
  background: var(--ink);
  transition: transform .25s ease;
}
.menu-toggle span:first-child { top: 18px; }
.menu-toggle span:nth-child(2) { top: 27px; }
.menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(4.5px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { transform: translateY(-4.5px) rotate(-45deg); }
.mobile-nav {
  display: none;
  position: fixed;
  top: 78px;
  left: 16px;
  right: 16px;
  z-index: 45;
  padding: 12px;
  background: rgba(255, 250, 240, 0.96);
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
}
.mobile-nav a {
  display: block;
  padding: 14px 16px;
  border-bottom: 1px solid var(--line);
}
.mobile-nav a:last-child { border-bottom: 0; color: var(--vermilion); font-weight: 700; }

.hero {
  min-height: 100svh;
  position: relative;
  z-index: 0;
  display: grid;
  place-items: center;
  overflow: hidden;
  padding: 120px clamp(18px, 5vw, 72px) 74px;
  background: var(--ink);
}
.hero-video {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.hero-scene {
  position: absolute;
  inset: 0;
  opacity: 0;
  animation: hero-scene 25s infinite;
}
.hero-scene img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.08);
  animation: hero-drift 25s ease-in-out infinite;
}
.hero-scene-fuji { animation-delay: 0s; }
.hero-scene:first-child { opacity: 1; }
.hero-scene-garden { animation-delay: 5s; }
.hero-scene-sushi { animation-delay: 10s; }
.hero-scene-wagyu { animation-delay: 15s; }
.hero-scene-serve { animation-delay: 20s; }
.hero-scene-fuji img { object-position: center 72%; }
.hero-scene-garden img { object-position: center; }
.hero-scene-sushi img { object-position: center 48%; }
.hero-scene-wagyu img,
.hero-scene-serve img { object-position: center 52%; }
.hero-overlay {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    radial-gradient(circle at 50% 42%, rgba(0,0,0,.03), rgba(0,0,0,.32) 76%),
    linear-gradient(90deg, rgba(12, 12, 10, .42), rgba(12, 12, 10, .08) 42%, rgba(12, 12, 10, .42)),
    linear-gradient(0deg, rgba(12, 12, 10, .48), rgba(12, 12, 10, .04) 50%, rgba(12, 12, 10, .28));
}
.hero-inner {
  position: relative;
  z-index: 2;
  max-width: 1180px;
  margin: 0 auto;
  width: 100%;
}
.hero-center {
  display: grid;
  place-items: center;
  text-align: center;
}
.eyebrow,
.section-index {
  color: var(--vermilion);
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: .8rem;
  font-weight: 900;
  line-height: 1.15;
}
h1,
h2,
h3 {
  font-family: "Zen Old Mincho", serif;
  line-height: 1.15;
  margin: 0;
  font-weight: 900;
}
h1 {
  font-size: clamp(2.7rem, 6.4vw, 6.7rem);
  max-width: 10.5em;
  letter-spacing: 0;
}
h1 span { display: block; }
.hero .hero-copy {
  display: grid;
  justify-items: center;
  color: var(--paper);
  text-shadow: 0 2px 16px rgba(0,0,0,.62), 0 12px 42px rgba(0,0,0,.42);
  animation: hero-copy-in .9s ease 2.72s both;
}
.hero-en {
  margin: 0 0 22px;
  color: rgba(255, 250, 240, .92);
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(1.36rem, 3.1vw, 3.25rem);
  line-height: 1.18;
  font-weight: 700;
}
.hero .hero-actions {
  justify-content: center;
  margin-top: 34px;
}
.hero-menu-button,
.hero-reserve-button {
  min-width: 128px;
  background: transparent;
  color: var(--paper);
  box-shadow: none;
}
.hero-menu-button {
  border-color: rgba(255, 250, 240, .72);
}
.hero-reserve-button {
  background: rgba(36, 52, 40, .76);
  border: 1px solid rgba(213, 176, 111, .9);
  color: var(--paper);
  box-shadow: 0 14px 34px rgba(0,0,0,.18);
}
.hero-scroll {
  position: absolute;
  z-index: 2;
  left: 50%;
  bottom: 28px;
  transform: translateX(-50%);
  color: rgba(255,250,240,.82);
  display: grid;
  justify-items: center;
  gap: 10px;
  font-size: .76rem;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.hero-scroll i {
  width: 1px;
  height: 44px;
  background: rgba(255,250,240,.48);
  position: relative;
  overflow: hidden;
}
.hero-scroll i::after {
  content: "";
  position: absolute;
  left: 0;
  top: -16px;
  width: 1px;
  height: 16px;
  background: var(--paper);
  animation: scroll-line 1.7s ease-in-out infinite;
}
.prologue {
  position: relative;
  height: 420svh;
  background: var(--ink);
}
.story-stage {
  position: sticky;
  top: 0;
  height: 100svh;
  overflow: hidden;
}
.stage-media {
  position: absolute;
  inset: -4%;
}
.stage-media video,
.stage-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.stage-media img {
  animation: story-kenburns 26s ease-in-out infinite alternate;
}
.stage-dark,
.stage-washi {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.stage-dark {
  background: #14100b;
  opacity: 0;
}
.stage-washi {
  background: var(--washi);
  opacity: 0;
}
.stage-copy {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 120px 18px 80px;
  color: var(--paper);
  text-align: center;
  text-shadow: 0 1px 24px rgba(0,0,0,.45);
}
.stage-mark {
  margin: 0 0 26px;
  font-family: "Zen Old Mincho", serif;
  font-size: 15px;
  letter-spacing: .55em;
  opacity: .9;
}
.stage-copy h1 {
  max-width: 11em;
  color: var(--paper);
  font-size: clamp(2.05rem, 4.8vw, 4.9rem);
  font-weight: 500;
  letter-spacing: .12em;
  line-height: 1.82;
}
.stage-sub {
  margin: 24px 0 0;
  color: rgba(255,250,240,.76);
  font-size: 10.5px;
  letter-spacing: .48em;
}
.story-actions {
  justify-content: center;
  margin-top: 32px;
}
.scroll-cue {
  position: absolute;
  bottom: 30px;
  left: 50%;
  z-index: 2;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  color: rgba(255,255,255,.75);
  font-size: 10px;
  letter-spacing: .45em;
  text-transform: uppercase;
}
.scroll-cue::after {
  content: "";
  width: 1px;
  height: 44px;
  background: rgba(255,255,255,.55);
  animation: cue-line 2.2s ease-in-out infinite;
}
.story-panels {
  position: absolute;
  top: 100svh;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 3;
}
.story-block {
  height: 106svh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 12vw;
}
.story-block p {
  max-height: 76svh;
  margin: 0;
  writing-mode: vertical-rl;
  color: #f4ecdd;
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(.95rem, 1.82vw, 1.2rem);
  letter-spacing: .26em;
  line-height: 2.48;
  text-shadow: 0 1px 18px rgba(0,0,0,.5);
  opacity: 0;
  transform: translateY(26px);
  transition: opacity 1.1s ease, transform 1.1s ease;
}
.is-story-washi .story-block p {
  color: #29251f;
  text-shadow: 0 1px 0 rgba(255,250,240,.42), 0 14px 42px rgba(255,250,240,.62);
}
.story-block.visible p {
  opacity: 1;
  transform: translateY(0);
}
.story-cuisine {
  position: relative;
  z-index: 4;
  background: var(--washi);
  padding: 12svh 0 14svh;
}
.story-cuisine::before {
  content: "";
  position: absolute;
  right: 6%;
  top: 8svh;
  width: 340px;
  height: 260px;
  opacity: .5;
  background:
    linear-gradient(135deg, transparent 46%, rgba(184,138,67,.14) 46.5%, rgba(184,138,67,.14) 53.5%, transparent 54%),
    linear-gradient(225deg, transparent 46%, rgba(184,138,67,.14) 46.5%, rgba(184,138,67,.14) 53.5%, transparent 54%);
  pointer-events: none;
}
.story-cuisine-grid {
  width: min(1160px, calc(100% - 36px));
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 58%) minmax(0, 42%);
  gap: clamp(30px, 5vw, 56px);
  align-items: center;
}
.story-cuisine-photo .main {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  clip-path: inset(0 100% 0 0);
  box-shadow: 24px 30px 60px -34px rgba(41,37,31,.5);
  transition: clip-path 1.4s cubic-bezier(.7,0,.2,1);
}
.story-cuisine-photo.visible .main {
  clip-path: inset(0 0 0 0);
}
.story-cuisine-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.08);
  transition: transform 2.4s ease;
}
.story-cuisine-photo.visible img {
  transform: scale(1);
}
.story-cuisine-side {
  display: flex;
  flex-direction: row-reverse;
  justify-content: center;
  gap: 34px;
}
.story-cuisine-label p {
  margin: 0 0 8px;
  color: var(--gold);
  font-size: 12px;
  letter-spacing: .25em;
}
.story-cuisine-label p::before {
  content: "・";
}
.story-cuisine-label h2 {
  font-size: clamp(1.5rem, 2.8vw, 2rem);
  font-weight: 500;
  letter-spacing: .2em;
}
.story-cuisine-text {
  max-height: 460px;
  margin: 0;
  writing-mode: vertical-rl;
  color: var(--ink);
  font-family: "Zen Old Mincho", serif;
  font-size: .95rem;
  letter-spacing: .24em;
  line-height: 2.45;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 1.2s ease .25s, transform 1.2s ease .25s;
}
.story-cuisine-side.visible .story-cuisine-text {
  opacity: 1;
  transform: translateY(0);
}
.story-menu-strip {
  width: min(1160px, calc(100% - 36px));
  margin: 12svh auto 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}
.story-menu-strip article {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .9s ease, transform .9s ease;
}
.story-menu-strip article.visible {
  opacity: 1;
  transform: translateY(0);
}
.story-menu-strip article:nth-child(2) { transition-delay: .15s; }
.story-menu-strip article:nth-child(3) { transition-delay: .3s; }
.story-menu-strip img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  margin-bottom: 14px;
}
.story-menu-strip h3 {
  margin: 0;
  font-family: "Zen Old Mincho", serif;
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: .12em;
}
.story-menu-strip p {
  margin: 3px 0 0;
  color: var(--gold);
  font-family: "Zen Old Mincho", serif;
  font-size: .9rem;
}
.story-menu-more {
  width: min(1160px, calc(100% - 36px));
  margin: 8svh auto 0;
}
.story-menu-more a {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  border-bottom: 1px solid var(--gold);
  padding-bottom: 8px;
  color: var(--ink);
  font-family: "Zen Old Mincho", serif;
  font-size: .95rem;
  letter-spacing: .18em;
}
.story-menu-more a::after {
  content: "→";
  color: var(--gold);
  transition: transform .25s ease;
}
.story-menu-more a:hover::after {
  transform: translateX(6px);
}

.has-prototype-hero .site-header,
.has-prototype-hero .mobile-nav {
  display: none;
}
.side-nav {
  position: fixed;
  left: 0;
  top: 0;
  bottom: 0;
  width: 96px;
  z-index: 40;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 30px;
  padding-left: 26px;
}
.side-nav a {
  writing-mode: vertical-rl;
  color: var(--nav-color, #fff);
  font-size: 12.5px;
  letter-spacing: .35em;
  opacity: .85;
  transition: opacity .2s ease;
}
.side-nav a span {
  display: block;
  writing-mode: horizontal-tb;
  margin-top: 6px;
  color: inherit;
  font-size: 8.5px;
  letter-spacing: .15em;
  opacity: .55;
}
.side-nav a:hover { opacity: 1; }
.side-logo {
  position: fixed;
  left: 22px;
  top: 20px;
  z-index: 41;
  width: 46px;
  height: 46px;
  object-fit: contain;
  opacity: .96;
}
.reserve-bar {
  position: fixed;
  right: 0;
  top: 0;
  bottom: 0;
  z-index: 40;
  width: 58px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  padding: 26px 0;
  background: rgba(24, 20, 15, .92);
}
.reserve-bar a {
  writing-mode: vertical-rl;
  color: #efe6d4;
  font-size: 12.5px;
  letter-spacing: .4em;
}
.reserve-bar .dots {
  flex: 1;
  width: 1px;
  margin: 18px 0;
  background: repeating-linear-gradient(to bottom, rgba(239,230,212,.5) 0 2px, transparent 2px 9px);
}
.reserve-bar .en {
  writing-mode: vertical-rl;
  color: var(--gold);
  font-size: 9px;
  letter-spacing: .3em;
}
.has-prototype-hero .prologue {
  height: 420svh;
  opacity: 1;
  transform: none;
  transition: none;
}
.stage {
  position: sticky;
  top: 0;
  height: 100svh;
  overflow: hidden;
}
.has-prototype-hero .stage-media {
  position: absolute;
  inset: -4%;
}
.has-prototype-hero .stage-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transform: scale(1.04);
  transition: opacity 1.4s ease;
  animation: hero-motion 34s ease-in-out infinite;
}
.has-prototype-hero .stage-media img:first-child,
.has-prototype-hero .stage-media img.is-active {
  opacity: 1;
}
.hero-slide-fuji {
  object-position: center 66%;
}
.hero-slide-garden {
  object-position: center center;
}
.hero-slide-interior {
  object-position: center center;
}
.hero-slide-cuisine {
  object-position: center center;
}
.hero-slide-wagyu {
  object-position: center center;
}
.stage-media.is-ready img:first-child:not(.is-active) {
  opacity: 0;
}
.has-prototype-hero .hero-center {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 0 18px;
  color: #fff;
  text-align: center;
  text-shadow: 0 1px 24px rgba(0,0,0,.45);
}
.hero-mark {
  margin: 0 0 26px;
  font-family: "Zen Old Mincho", serif;
  font-size: 15px;
  letter-spacing: .6em;
  opacity: .9;
}
.hero-copy {
  max-width: none;
  color: #fff;
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(22px, 3.4vw, 34px);
  font-weight: 500;
  letter-spacing: .18em;
  line-height: 2.2;
}
.hero-sub {
  margin: 26px 0 0;
  color: rgba(255,255,255,.78);
  font-size: 10.5px;
  letter-spacing: .5em;
}
.has-prototype-hero .story {
  position: absolute;
  top: 100svh;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 3;
}
.cuisine {
  position: relative;
  z-index: 4;
  background: var(--washi);
  padding: 12svh 0 14svh;
  opacity: 1;
  transform: none;
}
.cuisine::before {
  content: "";
  position: absolute;
  right: 6%;
  top: 8svh;
  width: 340px;
  height: 260px;
  opacity: .5;
  background:
    linear-gradient(135deg, transparent 46%, rgba(184,138,67,.14) 46.5%, rgba(184,138,67,.14) 53.5%, transparent 54%),
    linear-gradient(225deg, transparent 46%, rgba(184,138,67,.14) 46.5%, rgba(184,138,67,.14) 53.5%, transparent 54%);
  pointer-events: none;
}
.cuisine-grid {
  display: grid;
  grid-template-columns: minmax(0, 58%) minmax(0, 42%);
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 90px 0 110px;
  gap: 48px;
  align-items: center;
}
.cuisine-photo .main {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: 2px;
  clip-path: inset(0 100% 0 0);
  box-shadow: 24px 30px 60px -34px rgba(41,37,31,.5);
  transition: clip-path 1.4s cubic-bezier(.7,0,.2,1);
}
.cuisine-photo.visible .main { clip-path: inset(0 0 0 0); }
.cuisine-photo .main img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.08);
  transition: transform 2.4s ease;
}
.cuisine-photo.visible .main img { transform: scale(1); }
.cuisine-side {
  display: flex;
  flex-direction: row-reverse;
  justify-content: center;
  gap: 34px;
  height: 100%;
}
.cuisine-label .en {
  margin: 0 0 8px;
  color: var(--gold);
  font-size: 12px;
  letter-spacing: .25em;
}
.cuisine-label .en::before { content: "・"; }
.cuisine-label h2 {
  color: var(--ink);
  font-size: clamp(24px, 2.8vw, 32px);
  font-weight: 500;
  letter-spacing: .2em;
}
.cuisine-text {
  max-height: 460px;
  margin: 0;
  writing-mode: vertical-rl;
  color: var(--ink);
  font-family: "Zen Old Mincho", serif;
  font-size: 14.5px;
  letter-spacing: .26em;
  line-height: 2.5;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 1.2s ease .25s, transform 1.2s ease .25s;
}
.cuisine-side.visible .cuisine-text {
  opacity: 1;
  transform: translateY(0);
}
.menu-strip {
  max-width: 1160px;
  margin: 12svh auto 0;
  padding: 0 90px 0 110px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}
.menu-item {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .9s ease, transform .9s ease;
}
.menu-item.visible {
  opacity: 1;
  transform: translateY(0);
}
.menu-item:nth-child(2) { transition-delay: .15s; }
.menu-item:nth-child(3) { transition-delay: .3s; }
.menu-item .ph {
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 2px;
  margin-bottom: 14px;
}
.menu-item .ph img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .8s ease;
}
.menu-item:hover .ph img { transform: scale(1.05); }
.menu-item h3 {
  font-family: "Zen Old Mincho", serif;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: .12em;
}
.menu-item .price {
  margin-top: 3px;
  color: var(--gold);
  font-family: "Zen Old Mincho", serif;
  font-size: 13.5px;
}
.menu-item .note {
  margin-top: 5px;
  color: #6f675a;
  font-size: 11.5px;
  line-height: 1.8;
}
.menu-more {
  max-width: 1160px;
  margin: 8svh auto 0;
  padding: 0 90px 0 110px;
}
.menu-more a {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  border-bottom: 1px solid var(--gold);
  padding-bottom: 8px;
  color: var(--ink);
  font-family: "Zen Old Mincho", serif;
  font-size: 14px;
  letter-spacing: .2em;
}
.menu-more a::after {
  content: "→";
  color: var(--gold);
  transition: transform .25s ease;
}
.menu-more a:hover::after { transform: translateX(6px); }
@keyframes hero-slide-fuji {
  0%, 16% { opacity: 1; }
  20%, 96% { opacity: 0; }
  100% { opacity: 1; }
}
@keyframes hero-slide-garden {
  0%, 16% { opacity: 0; }
  20%, 36% { opacity: 1; }
  40%, 100% { opacity: 0; }
}
@keyframes hero-slide-interior {
  0%, 36% { opacity: 0; }
  40%, 56% { opacity: 1; }
  60%, 100% { opacity: 0; }
}
@keyframes hero-slide-cuisine {
  0%, 56% { opacity: 0; }
  60%, 76% { opacity: 1; }
  80%, 100% { opacity: 0; }
}
@keyframes hero-slide-wagyu {
  0%, 76% { opacity: 0; }
  80%, 96% { opacity: 1; }
  100% { opacity: 0; }
}
@keyframes hero-motion {
  0% { transform: scale(1.04) translate3d(0, 0, 0); }
  50% { transform: scale(1.1) translate3d(-1.4%, -1%, 0); }
  100% { transform: scale(1.06) translate3d(1.2%, .8%, 0); }
}
.lead {
  max-width: 620px;
  color: #4d463c;
  font-size: clamp(1rem, 1.4vw, 1.18rem);
  margin: 20px 0 28px;
}
.hero-actions,
.reserve-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  align-items: center;
}
section {
  scroll-margin-top: 88px;
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .85s cubic-bezier(.22,1,.36,1), transform .85s cubic-bezier(.22,1,.36,1);
}
section.is-visible { opacity: 1; transform: none; }
.section-shell {
  width: min(1180px, calc(100% - 36px));
  margin: 0 auto;
  padding: clamp(72px, 10vw, 128px) 0;
}
.two-column {
  display: grid;
  grid-template-columns: minmax(260px, .78fr) minmax(0, 1fr);
  gap: clamp(28px, 6vw, 90px);
  align-items: start;
}
.section-heading {
  display: grid;
  grid-template-columns: minmax(260px, .82fr) minmax(280px, 520px);
  gap: 32px;
  align-items: end;
  margin-bottom: 34px;
}
.section-heading.compact {
  display: block;
  max-width: 650px;
}
h2 {
  font-size: clamp(2.15rem, 4.7vw, 5.25rem);
  max-width: 10.5em;
  line-height: 1.26;
}
.intro-text {
  border-left: 1px solid var(--line);
  padding-left: clamp(24px, 4vw, 58px);
  color: #554d42;
  font-size: 1.04rem;
  max-width: 690px;
}
.intro-text p,
.section-heading > p:not(.section-index),
.menu-feature p,
.space-copy p:not(.section-index),
.experience-note p,
.visit-card p:not(.section-index),
.visit-proof p,
.reservation-panel p:not(.section-index) {
  line-height: 2;
  text-wrap: pretty;
}
.concept-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin-top: 34px;
  background: rgba(184, 138, 67, .35);
  border: 1px solid rgba(184, 138, 67, .35);
}
.concept-stats p {
  margin: 0;
  padding: 18px 14px;
  background: rgba(255,250,240,.62);
}
.concept-stats strong {
  display: block;
  color: var(--vermilion);
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(2rem, 4vw, 3.6rem);
  line-height: 1;
}
.concept-stats span {
  display: block;
  margin-top: 8px;
  color: var(--muted);
  font-size: .82rem;
  line-height: 1.45;
}
.intro-text blockquote {
  margin: 30px 0 0;
  padding: 24px 0 0;
  border-top: 1px solid rgba(184, 138, 67, .42);
  color: var(--ink);
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(1.18rem, 2vw, 1.72rem);
  line-height: 1.75;
}
.menu-feature {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  margin: -10px 0 28px;
  padding: 20px 24px;
  background: rgba(95, 114, 69, .1);
  border-left: 4px solid var(--matcha);
}
.menu-feature p {
  margin: 0;
  max-width: 820px;
  color: #4f473d;
}
.menu-feature span {
  color: var(--vermilion);
  font-size: .76rem;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
  white-space: nowrap;
}
.menu-page-link {
  margin-top: 10px;
  font-family: "Zen Old Mincho", serif;
  letter-spacing: .18em;
}
.menu-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.menu-card {
  background: rgba(255,250,240,.72);
  border: 1px solid rgba(39,35,29,.1);
  padding: 10px;
  min-height: 100%;
  opacity: 0;
  transform: translateY(30px);
  transition: opacity .75s ease var(--delay), transform .75s ease var(--delay), box-shadow .25s ease, translate .25s ease;
}
.menu-card.is-visible { opacity: 1; transform: none; }
.menu-card:hover {
  translate: 0 -6px;
  box-shadow: var(--shadow);
}
.menu-image {
  aspect-ratio: 4 / 3;
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(rgba(255, 250, 240, .82), rgba(255, 250, 240, .82)),
    radial-gradient(circle at 50% 45%, rgba(184, 138, 67, .2), transparent 62%);
}
.menu-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: transform .65s ease;
}
.menu-card:hover .menu-image img { transform: scale(1.025); }
.menu-image span {
  position: absolute;
  right: 10px;
  top: 10px;
  min-width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(166,66,43,.92);
  color: var(--paper);
  font-family: "Zen Old Mincho", serif;
}
.menu-body { padding: 20px 6px 8px; }
.menu-body p {
  margin: 0 0 6px;
  color: var(--gold);
  font-family: "Zen Old Mincho", serif;
}
.menu-body h3 { font-size: 1.28rem; margin-bottom: 4px; }
.menu-body em {
  display: block;
  color: var(--muted);
  font-size: .78rem;
  font-style: normal;
  line-height: 1.35;
}
.menu-body strong {
  display: block;
  margin: 10px 0 12px;
  color: var(--vermilion);
  font-family: "Zen Old Mincho", serif;
  font-size: 1.35rem;
  line-height: 1;
}
.menu-body span {
  display: block;
  color: #51493f;
  font-size: .92rem;
  line-height: 1.75;
}
.menu-body b {
  display: block;
  margin-top: 10px;
  color: var(--muted);
  font-size: .78rem;
  line-height: 1.55;
  font-weight: 500;
}
.menu-body small {
  display: inline-flex;
  margin-top: 16px;
  min-height: 34px;
  align-items: center;
  padding: 0 12px;
  border: 1px solid rgba(184, 138, 67, .36);
  color: var(--vermilion);
  background: rgba(255,250,240,.68);
  font-size: .78rem;
  font-weight: 900;
}

.space-section {
  background: var(--moss);
  color: var(--paper);
}
.space-section .section-index { color: #d5b06f; }
.space-layout {
  display: grid;
  grid-template-columns: minmax(0, .72fr) minmax(0, 1fr);
  gap: clamp(30px, 6vw, 80px);
  align-items: center;
}
.space-copy p:not(.section-index) {
  color: rgba(255,250,240,.78);
  max-width: 34em;
}
.feature-list {
  list-style: none;
  padding: 0;
  margin: 30px 0 0;
  display: grid;
  gap: 14px;
}
.feature-list li {
  border-top: 1px solid rgba(255,255,255,.16);
  padding-top: 14px;
  color: rgba(255,250,240,.74);
}
.feature-list span {
  display: inline-block;
  min-width: 86px;
  color: var(--paper);
  font-weight: 900;
}
.space-photos {
  display: grid;
  grid-template-columns: 1fr .72fr;
  gap: 14px;
  align-items: end;
}
.space-photos figure {
  margin: 0;
  position: relative;
  background: rgba(255,250,240,.08);
  border: 1px solid rgba(255,250,240,.16);
  padding: 10px;
}
.space-photos img {
  width: 100%;
  height: 560px;
  object-fit: cover;
}
.space-photos figure:nth-child(2) {
  margin-bottom: -58px;
}
.space-photos figure:nth-child(2) img {
  height: 420px;
}
.space-photos figcaption {
  position: absolute;
  left: 18px;
  bottom: 18px;
  color: var(--paper);
  background: rgba(36,52,40,.72);
  padding: 8px 12px;
  font-size: .82rem;
  font-weight: 700;
}

.experience-section { background: #efe3cf; }
.experience-rail {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}
.experience-rail article {
  background: var(--paper);
  padding: clamp(24px, 4vw, 44px);
  min-height: 270px;
}
.experience-rail span {
  color: var(--vermilion);
  font-family: "Zen Old Mincho", serif;
  font-size: 2rem;
}
.experience-rail h3 {
  font-size: 1.55rem;
  margin: 22px 0 10px;
}
.experience-rail p { color: var(--muted); margin: 0; }
.experience-note {
  margin-top: 24px;
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 24px;
  align-items: start;
  padding: 24px;
  background: var(--moss);
  color: var(--paper);
}
.experience-note strong {
  color: #d5b06f;
  font-family: "Zen Old Mincho", serif;
  font-size: 1.18rem;
}
.experience-note p {
  margin: 0;
  color: rgba(255,250,240,.78);
}

.visit-card {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(280px, .72fr);
  gap: 32px;
  align-items: start;
  background: rgba(255,250,240,.7);
  border: 1px solid rgba(39,35,29,.12);
  padding: clamp(28px, 5vw, 62px);
  margin-top: clamp(72px, 10vw, 128px);
  margin-bottom: clamp(72px, 10vw, 128px);
}
.visit-card p {
  color: var(--muted);
  max-width: 37em;
}
.visit-list {
  display: grid;
  gap: 0;
  margin: 0;
}
.visit-list div {
  border-top: 1px solid var(--line);
  padding: 18px 0;
}
.visit-list dt {
  color: var(--vermilion);
  font-weight: 900;
}
.visit-list dd {
  margin: 4px 0 0;
  color: #50483e;
}
.visit-list a {
  color: var(--vermilion);
  font-weight: 900;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.visit-proof {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 24px;
  padding-top: 26px;
  border-top: 1px solid rgba(39,35,29,.16);
}
.visit-proof span {
  color: var(--gold);
  font-family: "Zen Old Mincho", serif;
  font-size: 1.28rem;
}
.visit-proof p {
  margin: 0;
  color: #50483e;
}

.group-guide-promo {
  padding: 0 0 clamp(86px, 11vw, 142px);
  color: var(--ink);
}
.group-guide-card {
  display: grid;
  grid-template-columns: minmax(0, .88fr) minmax(300px, .72fr);
  gap: clamp(28px, 5vw, 64px);
  align-items: center;
  padding: clamp(30px, 5vw, 64px);
  border: 1px solid rgba(39,35,29,.12);
  background:
    linear-gradient(135deg, rgba(255,250,240,.82), rgba(246,241,231,.52)),
    radial-gradient(circle at 92% 8%, rgba(184,138,67,.14), transparent 20rem);
}
.group-guide-copy p:not(.section-index) {
  max-width: 41em;
  margin: 0;
  color: var(--muted);
  line-height: 2.25;
}
.group-guide-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 18px 24px;
  margin-top: 30px;
}
.group-guide-photo {
  margin: 0;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border: 1px solid rgba(39,35,29,.16);
  background: rgba(255,250,240,.56);
}
.group-guide-photo img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.group-guide-points {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding-top: 24px;
  border-top: 1px solid rgba(39,35,29,.12);
}
.group-guide-points span {
  padding: 8px 13px;
  border: 1px solid rgba(95,114,69,.25);
  border-radius: 999px;
  background: rgba(255,250,240,.62);
  color: var(--moss);
  font-weight: 900;
  font-size: .88rem;
}

.reservation-section {
  position: relative;
  min-height: 680px;
  display: grid;
  place-items: center;
  padding: 80px 18px;
  color: var(--paper);
}
.reservation-bg {
  position: absolute;
  inset: 0;
  z-index: -1;
}
.reservation-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.reservation-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(36,52,40,.92), rgba(36,52,40,.68));
}
.reservation-panel {
  width: min(720px, 100%);
  margin-right: auto;
  margin-left: max(0px, calc((100vw - 1180px) / 2));
  padding: clamp(28px, 5vw, 58px);
  border: 1px solid rgba(255,255,255,.28);
  background: rgba(36,52,40,.34);
  backdrop-filter: blur(8px);
}
.reservation-panel .section-index { color: #d5b06f; }
.reservation-panel p:not(.section-index) { color: rgba(255,250,240,.78); }
.reservation-panel .primary-button {
  background: #efe6d4;
  color: var(--moss);
  box-shadow: 0 14px 34px rgba(239,230,212,.16);
}

.group-page .site-header:not(.is-scrolled),
.access-page .site-header:not(.is-scrolled) {
  background: linear-gradient(rgba(39,35,29,.34), rgba(39,35,29,0));
}
.group-page .site-header:not(.is-scrolled) .brand,
.group-page .site-header:not(.is-scrolled) .desktop-nav a,
.group-page .site-header:not(.is-scrolled) .reserve-link,
.access-page .site-header:not(.is-scrolled) .brand,
.access-page .site-header:not(.is-scrolled) .desktop-nav a,
.access-page .site-header:not(.is-scrolled) .reserve-link {
  color: var(--paper);
}
.group-page .site-header:not(.is-scrolled) .desktop-nav,
.access-page .site-header:not(.is-scrolled) .desktop-nav {
  border-color: rgba(255,250,240,.26);
  background: rgba(255,250,240,.1);
}
.group-page .site-header:not(.is-scrolled) .brand small,
.access-page .site-header:not(.is-scrolled) .brand small {
  color: rgba(255,250,240,.7);
}
.group-page .site-header:not(.is-scrolled) .brand,
.group-page .site-header:not(.is-scrolled) .desktop-nav a,
.group-page .site-header:not(.is-scrolled) .reserve-link {
  color: var(--ink);
}
.group-page .site-header:not(.is-scrolled) .desktop-nav {
  border-color: rgba(39,35,29,.12);
  background: rgba(255,250,240,.72);
}
.group-page .site-header:not(.is-scrolled) .brand small {
  color: rgba(39,35,29,.56);
}
.group-page .site-header:not(.is-scrolled) {
  background: rgba(247,240,227,.74);
  border-bottom: 1px solid rgba(39,35,29,.08);
}
.group-page-main {
  background:
    linear-gradient(90deg, rgba(255,250,240,.82), rgba(255,250,240,.58)),
    var(--washi);
}
.group-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(128px, 15vw, 190px) clamp(24px, 6vw, 92px) clamp(78px, 11vw, 140px);
  background: transparent;
  color: var(--ink);
  opacity: 1;
  transform: none;
}
.group-hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.group-hero-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 24% 36%, rgba(0,0,0,.05), rgba(0,0,0,.44) 58%),
    linear-gradient(90deg, rgba(18,21,15,.76), rgba(18,21,15,.18) 68%),
    linear-gradient(0deg, rgba(18,21,15,.62), transparent 48%);
}
.group-hero-bg img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transform: scale(1.04);
  transition: opacity 1.4s ease;
  animation: hero-motion 34s ease-in-out infinite;
}
.group-hero-bg img:first-child,
.group-hero-bg img.is-active {
  opacity: 1;
}
.group-hero-slide-fuji {
  object-position: center 66%;
}
.group-hero-slide-garden {
  object-position: center center;
}
.group-hero-slide-interior {
  object-position: center center;
}
.group-hero-slide-cuisine {
  object-position: center center;
}
.group-hero-slide-wagyu {
  object-position: center center;
}
.group-hero-bg.is-ready img:first-child:not(.is-active) {
  opacity: 0;
}
.group-hero-inner {
  position: relative;
  z-index: 1;
  width: auto;
}
.group-hero-layout {
  width: min(1340px, 100%);
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(240px, .75fr) minmax(0, 1.15fr);
  gap: clamp(38px, 7vw, 110px);
  align-items: center;
}
.group-hero h1 {
  margin: 18px 0 24px;
  color: var(--ink);
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(22px, 3.4vw, 34px);
  font-weight: 500;
  letter-spacing: .18em;
  line-height: 2.05;
}
.group-hero p:not(.section-index) {
  max-width: 33em;
  margin: 0;
  color: var(--muted);
  font-size: .95rem;
  line-height: 2.2;
}
.group-hero-actions {
  margin-top: 30px;
}
.group-hero-actions .outline-button {
  border-color: rgba(39,35,29,.28);
  color: var(--ink);
}
.group-hero-image {
  margin: 0;
}
.group-hero-image img {
  width: 100%;
  height: min(44vw, 430px);
  min-height: 280px;
  object-fit: cover;
  object-position: center center;
  box-shadow: 24px 30px 70px -44px rgba(39,35,29,.55);
}

.visit-actions {
  margin-top: 24px;
}

.access-hero {
  min-height: 72svh;
  position: relative;
  display: grid;
  align-items: end;
  overflow: hidden;
  padding: 132px clamp(18px, 5vw, 72px) clamp(72px, 10vw, 112px);
  background: var(--ink);
  color: var(--paper);
}
.access-hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.access-hero-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.06);
  animation: hero-motion 34s ease-in-out infinite;
}
.access-hero-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 30% 40%, rgba(0,0,0,.08), rgba(0,0,0,.42) 58%),
    linear-gradient(90deg, rgba(18,21,15,.74), rgba(18,21,15,.12) 68%),
    linear-gradient(0deg, rgba(18,21,15,.66), transparent 48%);
}
.access-hero-inner {
  position: relative;
  z-index: 1;
  max-width: 880px;
}
.access-hero h1 {
  max-width: 24em;
  color: var(--paper);
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(22px, 3.4vw, 34px);
  font-weight: 500;
  letter-spacing: .16em;
  line-height: 2.05;
}
.access-hero p:not(.section-index) {
  max-width: 40em;
  color: rgba(255,250,240,.82);
  font-size: clamp(1rem, 1.5vw, 1.2rem);
}
.access-section {
  background: var(--washi);
}
.access-layout {
  display: grid;
  grid-template-columns: minmax(0, .86fr) minmax(300px, .7fr);
  gap: clamp(28px, 6vw, 88px);
  align-items: start;
}
.access-copy p:not(.section-index) {
  max-width: 38em;
  color: var(--muted);
}
.access-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 28px;
}
.ink-outline {
  border-color: rgba(39,35,29,.28);
  color: var(--ink);
}
.access-list {
  display: grid;
  gap: 0;
  margin: 0;
  padding: clamp(22px, 4vw, 38px);
  border: 1px solid rgba(39,35,29,.12);
  background: rgba(255,250,240,.68);
}
.access-list div {
  border-top: 1px solid var(--line);
  padding: 18px 0;
}
.access-list div:first-child {
  border-top: 0;
  padding-top: 0;
}
.access-list dt {
  color: var(--vermilion);
  font-weight: 900;
}
.access-list dd {
  margin: 4px 0 0;
  color: #50483e;
}
.access-list .parking-notice {
  margin: 4px 0 2px;
  padding: 18px 16px;
  border: 1px solid rgba(166, 66, 43, .32);
  background: rgba(166, 66, 43, .07);
}
.access-list .parking-notice strong {
  color: var(--vermilion);
  font-weight: 900;
}
.access-list a {
  color: var(--vermilion);
  font-weight: 900;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.access-map-shell {
  padding-top: 0;
}
.access-map {
  display: block;
  width: 100%;
  height: min(62svh, 620px);
  min-height: 420px;
  border: 1px solid rgba(39,35,29,.16);
  filter: saturate(.88);
}

.cuisine-page-main {
  background:
    linear-gradient(90deg, rgba(255,250,240,.82), rgba(255,250,240,.58)),
    var(--washi);
}
.cuisine-page-hero {
  padding: clamp(128px, 15vw, 190px) clamp(24px, 6vw, 92px) clamp(78px, 11vw, 140px);
  opacity: 1;
  transform: none;
}
.cuisine-hero-layout {
  width: min(1340px, 100%);
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(240px, .75fr) minmax(0, 1.15fr);
  gap: clamp(38px, 7vw, 110px);
  align-items: center;
}
.cuisine-hero-copy h1 {
  margin: 18px 0 24px;
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(22px, 3.4vw, 34px);
  font-weight: 500;
  letter-spacing: .18em;
  line-height: 2.05;
}
.cuisine-hero-copy p:not(.section-index) {
  max-width: 33em;
  color: var(--muted);
  font-size: .95rem;
  line-height: 2.2;
}
.cuisine-hero-image {
  margin: 0;
}
.cuisine-hero-image img {
  width: 100%;
  height: min(44vw, 430px);
  min-height: 280px;
  object-fit: cover;
  object-position: center center;
  box-shadow: 24px 30px 70px -44px rgba(39,35,29,.55);
}
.seo-lunch-section {
  padding: 0 clamp(21px, 5vw, 72px) clamp(70px, 9vw, 118px);
}
.seo-lunch-inner {
  width: min(1120px, 100%);
  margin: 0 auto;
  padding: clamp(30px, 4.5vw, 52px);
  display: grid;
  grid-template-columns: minmax(220px, .78fr) minmax(0, 1.12fr);
  gap: clamp(24px, 5vw, 70px);
  align-items: start;
  background: rgba(255, 252, 244, .72);
  border: 1px solid rgba(143, 124, 73, .24);
  box-shadow: 0 22px 80px -68px rgba(39,35,29,.5);
}
.seo-lunch-inner h2 {
  margin: 14px 0 0;
  color: var(--ink);
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(1.26rem, 2.1vw, 2rem);
  font-weight: 600;
  line-height: 1.75;
  letter-spacing: .04em;
}
.seo-lunch-copy {
  display: grid;
  gap: 16px;
  color: #50483e;
  font-size: .96rem;
  line-height: 2.12;
}
.seo-lunch-copy p {
  margin: 0;
}
.cuisine-menu-list {
  width: min(1240px, calc(100% - 42px));
  margin: 0 auto;
  padding: 0 0 clamp(88px, 12vw, 150px);
  display: grid;
  gap: clamp(76px, 12vw, 150px);
}
.cuisine-menu-row {
  display: grid;
  grid-template-columns: minmax(0, .98fr) minmax(300px, .86fr);
  gap: clamp(36px, 7vw, 92px);
  align-items: end;
}
.cuisine-menu-photo {
  margin: 0;
}
.cuisine-menu-photo img {
  width: 100%;
  aspect-ratio: 4 / 3;
  height: auto;
  object-fit: cover;
  object-position: center center;
}
.cuisine-menu-copy {
  padding: clamp(12px, 2vw, 28px) 0 0;
}
.cuisine-menu-number {
  margin: 0 0 18px;
  color: var(--gold);
  font-family: "Zen Old Mincho", serif;
  font-size: 1.05rem;
}
.cuisine-menu-copy h2 {
  margin: 0;
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(1.32rem, 1.9vw, 1.95rem);
  font-weight: 600;
  letter-spacing: .04em;
  line-height: 1.25;
  white-space: nowrap;
}
.cuisine-menu-en {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: .82rem;
  line-height: 1.55;
}
.cuisine-menu-price {
  margin: 16px 0 16px;
  color: var(--vermilion);
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(1.28rem, 2.05vw, 1.9rem);
  font-weight: 700;
  line-height: 1;
}
.cuisine-menu-copy p:last-child {
  max-width: 34em;
  color: #50483e;
  font-size: .96rem;
  line-height: 2.15;
}
.single-dish-section {
  padding: 0 0 clamp(54px, 7vw, 88px);
  opacity: 1;
  transform: none;
}
.single-dish-inner {
  width: min(1180px, calc(100% - 42px));
  margin: 0 auto;
}
.single-dish-heading {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: end;
  margin-bottom: 38px;
}
.single-dish-heading h2 {
  margin: 0;
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(1.55rem, 2.4vw, 2.45rem);
  font-weight: 500;
}
.single-dish-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 clamp(48px, 8vw, 100px);
}
.single-dish-grid p {
  margin: 0;
  min-height: 96px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 28px;
  padding: 0 8px;
  border-top: 1px solid rgba(39,35,29,.12);
  color: var(--ink);
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(.9rem, 1.08vw, 1.08rem);
  letter-spacing: .08em;
}
.single-dish-grid strong {
  font-weight: 500;
  white-space: nowrap;
}
.single-dish-note {
  margin: 48px 0 0;
  padding: 30px clamp(24px, 4vw, 48px);
  border: 1px dashed rgba(39,35,29,.55);
  color: #4e473d;
  font-family: "Zen Old Mincho", serif;
  font-size: .9rem;
}
.sweets-section {
  padding: 0 0 clamp(90px, 12vw, 150px);
  opacity: 1;
  transform: none;
}
.sweets-inner {
  width: min(1180px, calc(100% - 42px));
  margin: 0 auto;
  padding: clamp(34px, 5vw, 58px);
  border: 1px solid rgba(184,138,67,.28);
  background:
    linear-gradient(135deg, rgba(255,250,240,.78), rgba(247,240,227,.56)),
    radial-gradient(circle at 88% 12%, rgba(184,138,67,.16), transparent 22rem);
}
.sweets-heading {
  display: grid;
  grid-template-columns: minmax(180px, .45fr) 1fr;
  gap: clamp(20px, 5vw, 70px);
  align-items: end;
  margin-bottom: clamp(28px, 5vw, 46px);
}
.sweets-heading h2 {
  margin: 0;
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(1.9rem, 3.2vw, 3.2rem);
  font-weight: 500;
}
.sweets-heading p:last-child {
  margin: 0;
  color: var(--muted);
  font-size: .92rem;
  line-height: 2;
}
.sweets-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 3vw, 34px);
}
.sweet-card {
  margin: 0;
  padding: clamp(10px, 1.5vw, 16px) clamp(10px, 1.5vw, 16px) clamp(18px, 2.5vw, 26px);
  border: 1px solid rgba(39,35,29,.12);
  background: rgba(255,250,240,.64);
}
.sweet-card figure {
  aspect-ratio: 4 / 3;
  margin: 0 0 clamp(16px, 2vw, 22px);
  display: grid;
  place-items: center;
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(255,251,243,.96), rgba(239,230,214,.88)),
    radial-gradient(circle at 78% 18%, rgba(184,138,67,.16), transparent 18rem);
}
.sweet-card img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.sweet-suishomochi img {
  box-sizing: border-box;
  padding: clamp(12px, 2.2vw, 26px);
  object-fit: contain;
}
.sweet-obanyaki img {
  object-position: 50% 56%;
}
.sweet-kakigori img {
  object-position: 50% 54%;
}
.sweet-card h3 {
  margin: 0;
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(1rem, 1.45vw, 1.24rem);
  font-weight: 500;
  letter-spacing: .08em;
  line-height: 1.65;
  text-align: center;
}
.sweets-list span {
  display: block;
  margin-top: 4px;
  color: var(--gold);
  font-family: "Zen Kaku Gothic New", system-ui, sans-serif;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .16em;
}
@media (max-width: 760px) {
  .sweets-inner {
    padding: 28px;
  }
  .sweets-heading,
  .sweets-list {
    grid-template-columns: 1fr;
  }
  .sweet-card figure {
    aspect-ratio: 16 / 10;
  }
}
.group-intro,
.group-guide-section,
.group-menu-section,
.group-flow-section,
.group-notes-section {
  padding: clamp(68px, 9vw, 118px) 0;
  background: transparent;
  color: var(--ink);
}
.group-lead {
  display: grid;
  grid-template-columns: minmax(0, .86fr) minmax(320px, .9fr);
  gap: clamp(34px, 7vw, 96px);
  align-items: start;
}
.group-lead-text {
  border-left: 1px solid var(--line);
  padding-left: clamp(24px, 4vw, 54px);
}
.group-lead h2,
.group-notes h2,
.group-contact-panel h2 {
  max-width: 14em;
  font-size: clamp(1.38rem, 2.2vw, 2.35rem);
  line-height: 1.75;
  letter-spacing: .08em;
}
.group-lead-text p {
  margin: 0;
  max-width: 42em;
  color: var(--muted);
}
.group-points {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 26px;
}
.group-points span {
  padding: 8px 13px;
  border: 1px solid rgba(95,114,69,.25);
  border-radius: 999px;
  background: rgba(255,250,240,.58);
  color: var(--moss);
  font-weight: 900;
  font-size: .88rem;
}
.group-guide-section {
  border-top: 1px solid rgba(39,35,29,.08);
  border-bottom: 1px solid rgba(39,35,29,.08);
  background:
    linear-gradient(135deg, rgba(255,250,240,.74), rgba(246,241,231,.46)),
    radial-gradient(circle at 92% 8%, rgba(184,138,67,.12), transparent 18rem);
}
.group-guide-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 3vw, 30px);
}
.group-guide-grid article {
  min-height: 100%;
  padding: clamp(24px, 3.4vw, 38px);
  border: 1px solid rgba(39,35,29,.12);
  background: rgba(255,253,247,.72);
}
.group-guide-grid span {
  color: var(--gold);
  font-family: "Zen Old Mincho", serif;
  font-size: 1.18rem;
}
.group-guide-grid h3 {
  margin: 18px 0 12px;
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(1.12rem, 1.5vw, 1.36rem);
  font-weight: 500;
  letter-spacing: .08em;
}
.group-guide-grid p {
  margin: 0;
  color: var(--muted);
  font-size: .94rem;
  line-height: 2;
}
.group-menu-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(22px, 3vw, 34px);
}
.group-menu-grid article {
  min-height: 100%;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.group-menu-grid img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.group-menu-grid div {
  padding: 20px 0 0;
}
.group-menu-grid p {
  margin: 0 0 8px;
  color: var(--vermilion);
  font-weight: 900;
  font-size: .78rem;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.group-menu-grid h3 {
  margin: 0 0 8px;
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(1.22rem, 1.7vw, 1.58rem);
  font-weight: 600;
  letter-spacing: .04em;
}
.group-menu-section .section-heading {
  grid-template-columns: minmax(180px, .45fr) minmax(520px, 1fr);
  gap: 18px clamp(44px, 8vw, 126px);
  align-items: start;
}
.group-menu-section .section-heading h2,
.group-menu-section .section-heading > p:not(.section-index) {
  grid-column: 2;
}
.group-menu-section .section-heading h2 {
  max-width: none;
  white-space: nowrap;
}
.group-menu-section .section-heading > p:not(.section-index) {
  max-width: 42em;
}
.group-menu-grid strong {
  display: block;
  margin: 0 0 12px;
  color: var(--moss);
  font-family: "Zen Old Mincho", serif;
  font-size: 1.18rem;
}
.group-menu-grid span {
  color: var(--muted);
}
.group-menu-note {
  margin: clamp(28px, 4vw, 46px) 0 0;
  padding: 18px 24px;
  border-top: 1px solid rgba(39,35,29,.12);
  border-bottom: 1px solid rgba(39,35,29,.12);
  color: #6b6155;
  font-size: .92rem;
  line-height: 2;
  letter-spacing: .04em;
}
.group-flow-section {
  border-top: 1px solid rgba(39,35,29,.08);
  border-bottom: 1px solid rgba(39,35,29,.08);
  background: rgba(255,250,240,.38);
  color: var(--ink);
}
.group-flow-section .section-index,
.group-flow-section h2 {
  color: var(--ink);
}
.group-flow {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(20px, 3vw, 34px);
  background: transparent;
  border: 0;
}
.group-flow article {
  padding: clamp(24px, 4vw, 38px) 0;
  border-top: 1px solid rgba(39,35,29,.16);
  background: transparent;
}
.group-flow span {
  color: var(--gold);
  font-family: "Zen Old Mincho", serif;
  font-size: 1.14rem;
}
.group-flow h3 {
  margin: 16px 0 10px;
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(1.12rem, 1.5vw, 1.36rem);
  font-weight: 500;
}
.group-flow p {
  margin: 0;
  color: var(--muted);
  font-size: .94rem;
  line-height: 2;
}
.group-notes {
  display: grid;
  grid-template-columns: minmax(0, .72fr) minmax(320px, 1fr);
  gap: clamp(30px, 7vw, 92px);
}
.note-list {
  display: grid;
  gap: 0;
  border-top: 1px solid var(--line);
}
.note-list p {
  margin: 0;
  display: grid;
  grid-template-columns: 130px 1fr;
  gap: 18px;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
  color: var(--muted);
}
.note-list strong {
  color: var(--vermilion);
}
.group-contact-section {
  position: relative;
  min-height: 660px;
  display: grid;
  place-items: center;
  overflow: hidden;
  padding: clamp(72px, 10vw, 130px) 18px;
  background: transparent;
}
.group-contact-section .reservation-bg::after {
  background:
    linear-gradient(90deg, rgba(246, 241, 231, .92), rgba(246, 241, 231, .76)),
    linear-gradient(180deg, rgba(39, 35, 29, .08), rgba(39, 35, 29, .02));
}
.group-contact-panel {
  position: relative;
  z-index: 1;
  width: min(100%, 920px);
  padding: clamp(32px, 6vw, 68px);
  border: 1px solid rgba(39, 35, 29, .14);
  background: rgba(255, 250, 240, .9);
  color: var(--ink);
  box-shadow: 0 24px 72px rgba(72, 55, 34, .16);
  backdrop-filter: blur(10px);
}
.group-contact-panel h2 {
  margin: 0;
  color: var(--ink);
  font-family: "Zen Old Mincho", serif;
  font-weight: 500;
}
.group-contact-panel p:not(.section-index) {
  color: #5f564a;
}
.group-contact-panel small {
  display: block;
  margin-top: 18px;
  color: #7b7164;
}
.tablecheck-panel {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
  margin-top: 30px;
  padding-top: 26px;
  border-top: 1px solid rgba(39,35,29,.14);
}
.tablecheck-panel p {
  flex: 1 1 100%;
  margin: 0 0 2px;
  color: #6b6155;
  font-size: .92rem;
  line-height: 1.9;
}
.tablecheck-panel span {
  display: block;
  margin-bottom: 4px;
  color: var(--gold);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: .76rem;
  font-weight: 900;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.group-reserve-button {
  border-color: rgba(213,176,111,.72);
}

.site-footer {
  padding: 44px 18px 52px;
  text-align: center;
  background: var(--ink);
  color: var(--paper);
}
.footer-logo {
  width: 132px;
  height: auto;
  margin: 0 auto 18px;
  padding: 0;
  border-radius: 0;
  background: transparent;
}
.site-footer p {
  margin: 0;
  font-family: "Zen Old Mincho", serif;
  font-size: 1.2rem;
}
.site-footer small { color: rgba(255,250,240,.6); }

.site-footer {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr .85fr;
  min-height: 430px;
  padding: 0;
  border-top: 1px solid rgba(39,35,29,.1);
  border-bottom: 1px solid rgba(39,35,29,.06);
  background: rgba(255,253,247,.92);
  color: var(--ink);
  text-align: left;
}
.footer-brand,
.footer-column {
  min-width: 0;
  padding: clamp(48px, 6vw, 96px) clamp(28px, 5vw, 58px);
  border-left: 1px solid rgba(39,35,29,.08);
}
.footer-brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 36px;
  border-left: 0;
  text-align: center;
}
.site-footer .footer-logo {
  width: min(190px, 58%);
  height: auto;
  margin: 0;
  padding: 0;
  border-radius: 0;
  background: transparent;
}
.footer-brand small {
  color: rgba(39,35,29,.48);
  font-family: "Zen Kaku Gothic New", system-ui, sans-serif;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1.6;
}
.footer-column h2 {
  margin: 0 0 38px;
  color: var(--ink);
  font-family: "Zen Kaku Gothic New", system-ui, sans-serif;
  font-size: .98rem;
  font-weight: 900;
  letter-spacing: .06em;
}
.footer-column p {
  margin: 0 0 16px;
  color: #50483e;
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(1rem, 1.35vw, 1.24rem);
  letter-spacing: .08em;
  line-height: 1.8;
}
.footer-text-link {
  display: inline-flex;
  margin-bottom: 52px;
  color: var(--ink);
  font-weight: 900;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.footer-phone {
  color: var(--ink);
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(1.35rem, 2vw, 1.75rem);
  letter-spacing: .08em;
}
.footer-menu {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.footer-menu h2,
.footer-links h2 {
  margin-bottom: 30px;
}
.footer-menu a {
  color: #50483e;
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(1rem, 1.25vw, 1.18rem);
  letter-spacing: .08em;
}
.footer-menu a::before {
  content: "・";
  margin-right: .25em;
  color: var(--ink);
}
.footer-links {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
}
.footer-pill {
  min-height: 54px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 28px;
  border: 1px solid var(--ink);
  border-radius: 999px;
  color: var(--ink);
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(.95rem, 1.16vw, 1.08rem);
  letter-spacing: .08em;
  transition: background .25s ease, color .25s ease;
}
.footer-pill::before {
  content: "・";
  margin-right: .3em;
}
.footer-pill:hover,
.footer-pill:focus-visible {
  background: var(--ink);
  color: var(--paper);
}

/* Refined editorial rhythm: keep Japanese headings, reduce scale, add air. */
.intro-band .section-shell,
.menu-section .section-shell,
.space-section .section-shell,
.experience-section .section-shell {
  padding-top: clamp(110px, 13vw, 184px);
  padding-bottom: clamp(110px, 13vw, 184px);
}
.section-shell {
  width: min(1080px, calc(100% - 56px));
}
.two-column,
.section-heading,
.space-layout {
  gap: clamp(44px, 8vw, 126px);
}
.section-heading {
  align-items: start;
  margin-bottom: clamp(52px, 7vw, 96px);
}
h2 {
  font-size: clamp(2rem, 3.45vw, 4.15rem);
  max-width: 10em;
  line-height: 1.38;
  font-weight: 700;
  letter-spacing: .02em;
}
.section-index {
  margin: 0 0 28px;
  color: rgba(166,66,43,.88);
  font-size: .8rem;
  letter-spacing: .14em;
  line-height: 1.15;
  font-weight: 900;
  text-transform: uppercase;
}
.intro-text,
.section-heading > p:not(.section-index),
.menu-feature p,
.space-copy p:not(.section-index),
.experience-note p,
.visit-card p:not(.section-index),
.reservation-panel p:not(.section-index) {
  font-size: clamp(.9rem, 1.08vw, 1rem);
  line-height: 2.35;
  letter-spacing: .035em;
}
.intro-text {
  max-width: 620px;
  padding-left: clamp(30px, 5vw, 72px);
}
.intro-text blockquote {
  margin-top: 42px;
  padding-top: 34px;
  font-size: clamp(1.05rem, 1.55vw, 1.38rem);
  line-height: 2.05;
}
.concept-stats {
  margin-top: 44px;
}
.concept-stats p {
  padding: 22px 16px;
}
.concept-stats strong {
  font-size: clamp(1.72rem, 3vw, 2.8rem);
}
.menu-feature {
  margin: 0 0 clamp(50px, 6vw, 88px);
  padding: 24px 28px;
}
.menu-feature span {
  font-size: .68rem;
}
.menu-grid {
  gap: clamp(26px, 4vw, 54px);
}
.menu-body h3 {
  font-size: clamp(1.2rem, 1.8vw, 1.65rem);
}
.menu-body span,
.menu-body b,
.menu-body small {
  font-size: .88rem;
  line-height: 2;
}
.space-copy p:not(.section-index) {
  max-width: 31em;
}
.feature-list {
  margin-top: 44px;
  gap: 22px;
}
.feature-list li {
  padding-top: 18px;
  font-size: .9rem;
  line-height: 2;
}
.space-photos img {
  height: 500px;
}
.space-photos figure:nth-child(2) img {
  height: 370px;
}
.experience-rail {
  margin-top: clamp(48px, 6vw, 82px);
}
.experience-rail article {
  min-height: 250px;
  padding: clamp(28px, 4vw, 52px);
}
.experience-rail span {
  font-size: 1.55rem;
}
.experience-rail h3 {
  margin: 24px 0 14px;
  font-size: clamp(1.18rem, 1.45vw, 1.38rem);
}
.experience-rail p {
  font-size: .9rem;
  line-height: 2.05;
}
.experience-note {
  margin-top: 34px;
  padding: 32px;
}
.visit-card {
  gap: clamp(44px, 7vw, 92px);
  padding: clamp(48px, 7vw, 86px);
  margin-top: clamp(104px, 12vw, 170px);
  margin-bottom: clamp(104px, 12vw, 170px);
}
.visit-list div {
  padding: 22px 0;
}
.visit-list dt {
  font-size: .88rem;
}
.visit-list dd {
  font-size: .95rem;
  line-height: 2;
}
.reservation-panel {
  width: min(640px, 100%);
  padding: clamp(38px, 5.8vw, 72px);
}
.reservation-panel h2 {
  font-size: clamp(2.2rem, 4.4vw, 4.7rem);
  line-height: 1.42;
}

:focus-visible {
  outline: 3px solid rgba(166, 66, 43, .55);
  outline-offset: 3px;
}

@keyframes hero-copy-in {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: none; }
}
@keyframes hero-scene {
  0% { opacity: 0; }
  5% { opacity: 1; }
  20% { opacity: 1; }
  25% { opacity: 0; }
  100% { opacity: 0; }
}
@keyframes hero-drift {
  0% { transform: scale(1.08) translate3d(0, 0, 0); }
  50% { transform: scale(1.14) translate3d(-1.8%, -1.2%, 0); }
  100% { transform: scale(1.08) translate3d(1.2%, 0, 0); }
}
@keyframes story-kenburns {
  from { transform: scale(1) translateY(0); }
  to { transform: scale(1.08) translateY(-1.5%); }
}
@keyframes cue-line {
  0% { transform: scaleY(0); transform-origin: top; }
  55% { transform: scaleY(1); transform-origin: top; }
  56% { transform-origin: bottom; }
  100% { transform: scaleY(0); transform-origin: bottom; }
}
@keyframes scroll-line {
  0% { transform: translateY(0); opacity: 0; }
  24% { opacity: 1; }
  100% { transform: translateY(64px); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  section,
  .menu-card {
    opacity: 1;
    transform: none;
  }
  .hero-scene,
  .hero-scene img,
  .hero-scroll i::after,
  .scroll-cue::after {
    animation: none !important;
  }
  .hero-scene:first-child { opacity: 1; }
  .story-block p,
  .has-prototype-hero .stage-media img,
  .group-hero-bg img,
  .story-cuisine-photo .main,
  .story-cuisine-photo img,
  .story-cuisine-text,
  .story-menu-strip article {
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
    clip-path: none !important;
  }
  .has-prototype-hero .stage-media img {
    opacity: 0 !important;
  }
  .has-prototype-hero .stage-media img:first-child {
    opacity: 1 !important;
  }
  .group-hero-bg img {
    opacity: 0 !important;
  }
  .group-hero-bg img:first-child {
    opacity: 1 !important;
  }
}

@media (max-width: 980px) {
  .site-header { grid-template-columns: auto 1fr auto; }
  .desktop-nav,
  .reserve-link { display: none; }
  .menu-toggle { display: block; justify-self: end; }
  .mobile-nav.is-open { display: block; }
  .two-column,
  .section-heading,
  .space-layout,
  .visit-card,
  .group-guide-card,
  .access-layout,
  .cuisine-hero-layout,
  .seo-lunch-inner,
  .cuisine-menu-row,
  .group-lead,
  .group-notes {
    grid-template-columns: 1fr;
  }
  .hero { align-items: center; padding-top: 110px; }
  .story-cuisine-grid {
    grid-template-columns: 1fr;
  }
  .story-cuisine-side {
    flex-direction: column;
    gap: 20px;
  }
  .story-cuisine-text {
    max-height: none;
    writing-mode: horizontal-tb;
    letter-spacing: .1em;
    line-height: 2.1;
  }
  .story-menu-strip {
    grid-template-columns: 1fr;
  }
  .hero-overlay {
    background:
      radial-gradient(circle at 50% 44%, rgba(0,0,0,.08), rgba(0,0,0,.38) 74%),
      linear-gradient(0deg, rgba(12, 12, 10, .52), rgba(12, 12, 10, .08) 58%, rgba(12, 12, 10, .32));
  }
  .menu-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cuisine-page-hero {
    padding-top: 118px;
  }
  .cuisine-hero-image img {
    height: 340px;
  }
  .cuisine-menu-list {
    gap: 72px;
  }
  .cuisine-menu-copy h2 {
    white-space: normal;
  }
  .single-dish-grid {
    grid-template-columns: 1fr;
  }
  .single-dish-grid p {
    min-height: 88px;
  }
  .menu-feature,
  .experience-note,
  .visit-proof {
    grid-template-columns: 1fr;
  }
  .menu-feature {
    align-items: flex-start;
    flex-direction: column;
  }
  .space-photos figure:nth-child(2) { margin: 0; }
  .space-photos img,
  .space-photos figure:nth-child(2) img { height: 380px; }
  .experience-rail { grid-template-columns: 1fr; }
  .group-lead-text { border-left: 0; padding-left: 0; }
  .group-guide-grid,
  .group-menu-grid,
  .group-flow { grid-template-columns: 1fr; }
  .site-footer {
    grid-template-columns: 1fr 1fr;
  }
  .footer-brand,
  .footer-column {
    border-top: 1px solid rgba(39,35,29,.08);
  }
  .footer-column:nth-child(2n + 1) {
    border-left: 0;
  }
}

@media (max-width: 860px) {
  .side-nav,
  .side-logo {
    display: none;
  }
  .reserve-bar {
    width: 44px;
  }
  .reserve-bar a {
    font-size: 11.5px;
    letter-spacing: .32em;
  }
  .has-prototype-hero .prologue {
    height: 400svh;
  }
  .hero-mark {
    font-size: 13px;
    letter-spacing: .34em;
  }
  .hero-copy {
    font-size: clamp(22px, 7.2vw, 31px);
    letter-spacing: .1em;
    line-height: 2;
  }
  .hero-sub {
    letter-spacing: .24em;
  }
  .cuisine-grid {
    grid-template-columns: 1fr;
    padding: 0 24px;
    gap: 30px;
  }
  .cuisine-side {
    flex-direction: column;
    gap: 20px;
  }
  .cuisine-text {
    max-height: none;
    writing-mode: horizontal-tb;
    letter-spacing: .1em;
    line-height: 2.2;
  }
  .menu-strip {
    grid-template-columns: 1fr;
    padding: 0 24px;
  }
  .menu-more {
    padding: 0 24px;
  }
}

@media (max-width: 620px) {
  .site-header { padding-left: 14px; padding-right: 14px; }
  .brand small { display: none; }
  .hero { min-height: 100svh; padding: 112px 18px 74px; }
  .prologue { height: 390svh; }
  .stage-copy h1 {
    font-size: clamp(1.8rem, 8.5vw, 3.2rem);
    line-height: 1.72;
    letter-spacing: .08em;
  }
  .stage-mark { letter-spacing: .36em; }
  .stage-sub { letter-spacing: .26em; }
  .story-actions { align-items: center; flex-direction: column; }
  .story-block { padding: 0 8vw; }
  .story-block p {
    max-height: 78svh;
    font-size: .94rem;
    letter-spacing: .2em;
    line-height: 2.28;
  }
  .story-cuisine { padding-top: 76px; }
  h1 { font-size: clamp(2.45rem, 11.5vw, 3.9rem); }
  .hero-actions,
  .reserve-actions { align-items: stretch; flex-direction: column; }
  .primary-button,
  .outline-button { width: 100%; }
  .text-button { align-self: flex-start; }
  .hero-menu-button,
  .hero-reserve-button { width: min(240px, 100%); }
  .section-shell {
    width: min(100% - 32px, 1180px);
    padding-top: 84px;
    padding-bottom: 84px;
  }
  .intro-band .section-shell,
  .menu-section .section-shell,
  .space-section .section-shell,
  .experience-section .section-shell {
    padding-top: 88px;
    padding-bottom: 88px;
  }
  h2 {
    font-size: clamp(1.92rem, 9vw, 3rem);
    line-height: 1.44;
  }
  .section-heading {
    margin-bottom: 42px;
  }
  .intro-text,
  .section-heading > p:not(.section-index),
  .menu-feature p,
  .space-copy p:not(.section-index),
  .experience-note p,
  .visit-card p:not(.section-index),
  .reservation-panel p:not(.section-index) {
    font-size: .92rem;
    line-height: 2.15;
  }
  .concept-stats { grid-template-columns: 1fr; }
  .intro-text { border-left: 0; padding-left: 0; }
  .menu-feature { padding: 18px; }
  .menu-grid { grid-template-columns: 1fr; }
  .space-photos { grid-template-columns: 1fr; }
  .space-photos img,
  .space-photos figure:nth-child(2) img { height: 280px; }
  .space-photos figcaption {
    position: static;
    margin-top: 10px;
    background: transparent;
    padding: 0;
  }
  .experience-note { padding: 20px; }
  .visit-card { padding: 24px; }
  .access-hero {
    min-height: 68svh;
    padding: 112px 18px 62px;
  }
  .access-hero h1 {
    font-size: clamp(22px, 7.2vw, 31px);
    line-height: 2;
    letter-spacing: .1em;
  }
  .access-list { padding: 22px; }
  .access-actions { align-items: stretch; flex-direction: column; }
  .access-map {
    min-height: 360px;
  }
  .group-hero {
    min-height: 82svh;
    padding: 112px 18px 62px;
  }
  .group-hero h1 {
    font-size: clamp(22px, 7.2vw, 31px);
    line-height: 2;
    letter-spacing: .1em;
  }
  .group-menu-section .section-heading {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .group-menu-section .section-heading h2,
  .group-menu-section .section-heading > p:not(.section-index) {
    grid-column: auto;
  }
  .group-menu-section .section-heading h2 {
    white-space: normal;
  }
  .group-menu-grid div { padding: 18px; }
  .group-flow article { padding: 24px; }
  .note-list p { grid-template-columns: 1fr; gap: 4px; }
  .group-contact-panel { padding: 26px; }
  .reservation-panel { padding: 24px; }
  .site-footer {
    grid-template-columns: 1fr;
    min-height: 0;
  }
  .footer-brand,
  .footer-column,
  .footer-column:nth-child(2n + 1) {
    padding: 38px 24px;
    border-left: 0;
    border-top: 1px solid rgba(39,35,29,.08);
  }
  .footer-brand {
    gap: 22px;
  }
  .site-footer .footer-logo {
    width: min(170px, 54%);
  }
}

/* Compact footer variant */
.site-footer {
  min-height: 230px;
}
.footer-brand,
.footer-column {
  padding: clamp(28px, 3.6vw, 52px) clamp(22px, 3.5vw, 42px);
}
.footer-brand {
  gap: 18px;
}
.site-footer .footer-logo {
  width: min(138px, 48%);
}
.footer-brand small {
  font-size: .66rem;
  line-height: 1.45;
}
.footer-column h2 {
  margin-bottom: 20px;
  font-size: .82rem;
}
.footer-column p {
  margin-bottom: 10px;
  font-size: clamp(.82rem, .98vw, .98rem);
  line-height: 1.65;
}
.footer-text-link {
  margin-bottom: 28px;
  font-size: .78rem;
}
.footer-phone {
  font-size: clamp(1rem, 1.35vw, 1.28rem);
}
.footer-menu {
  gap: 10px;
}
.footer-menu h2,
.footer-links h2 {
  margin-bottom: 16px;
}
.footer-menu a {
  font-size: clamp(.82rem, .98vw, .98rem);
}
.footer-links {
  gap: 9px;
}
.footer-pill {
  min-height: 38px;
  padding: 0 20px;
  font-size: clamp(.76rem, .9vw, .9rem);
}

@media (max-width: 620px) {
  .footer-brand,
  .footer-column,
  .footer-column:nth-child(2n + 1) {
    padding: 28px 20px;
  }
  .site-footer .footer-logo {
    width: min(126px, 46%);
  }
}
