:root {
  --paper: #f5f0e6;
  --ink: #30251e;
  --wine: #532b35;
  --muted: #695f56;
  --sage: #e6e8dd;
  --line: #d2c8bd;
  --font-body: 'DM Sans', Arial, sans-serif;
  --font-display: 'Instrument Serif', Georgia, serif;
  --gutter: clamp(22px, 5vw, 88px);
  --space-section: clamp(78px, 9vw, 150px);
  --column-gap: clamp(40px, 7vw, 110px);
  --ease: cubic-bezier(.22, .72, .2, 1);
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 115px; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 400 16px/1.65 var(--font-body); -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; height: auto; object-fit: cover; }
button, input, select, textarea { font: inherit; }
button, a, input, select { touch-action: manipulation; }
button { cursor: pointer; }
button { border: 0; }
a { color: inherit; text-decoration: none; }
figure { margin: 0; }
p { margin: 0; }
h1, h2, h3 { margin: 0; font-family: var(--font-display); font-weight: 400; line-height: 1.03; text-wrap: balance; }
h2 { font-size: clamp(49px, 6.2vw, 96px); letter-spacing: -.025em; }
h3 { font-size: 34px; letter-spacing: -.01em; }
em { font-weight: inherit; }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid #9f573d; outline-offset: 6px; }
.hero :focus-visible, .aura-footer :focus-visible { outline-color: #f7dbac; }
.container { max-width: 1600px; padding-inline: var(--gutter); margin-inline: auto; }
.section { padding-block: var(--space-section); }
.icon-defs { position: absolute; width: 0; height: 0; overflow: hidden; }
.icon { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.4; flex: none; pointer-events: none; }
.icon.reversed { transform: rotate(180deg); }
.icon.upwards { transform: rotate(-90deg); }
.skip-link { position: fixed; top: 8px; left: 8px; z-index: 1000; padding: 12px 20px; background: var(--paper); color: var(--wine); transform: translateY(-160%); }
.skip-link:focus { transform: none; }
.concept-bar { display: flex; align-items: center; justify-content: center; gap: 20px; padding: 7px 18px; font-size: 11px; line-height: 1.5; background: #e9e3d8; color: #5d534c; }
.concept-bar a { text-decoration: underline; text-underline-offset: 3px; }
.site-header { position: sticky; top: 0; z-index: 100; background: var(--paper); border-bottom: 1px solid var(--line); }
.site-progress { position: absolute; left: 0; bottom: -1px; width: 100%; height: 2px; background: var(--wine); transform: scaleX(0); transform-origin: left; }
.header-inner { min-height: 90px; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.wordmark { display: inline-flex; gap: 13px; align-items: baseline; font: 400 53px/.9 var(--font-display); letter-spacing: -.04em; color: var(--wine); padding-block: 13px; flex: none; }
.wordmark>span { font: 400 12px/1 var(--font-body); letter-spacing: 0; }
.nav-links { display: flex; align-items: center; gap: clamp(25px, 3.4vw, 52px); font-size: 14px; }
.nav-links>a { position: relative; padding: 12px 0; min-height: 44px; }
.nav-links>a::after { content: ''; position: absolute; bottom: 7px; left: 0; right: 0; height: 1px; background: var(--wine); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--ease); }
.nav-links>a:hover::after, .nav-links>a[aria-current]::after { transform: scaleX(1); }
.header-book { display: flex; gap: 22px; align-items: center; padding: 13px 0 13px 28px; border-left: 1px solid var(--line); min-height: 48px; background: transparent; color: var(--wine); font-size: 14px; font-weight: 600; }
.header-book .icon { transition: transform .25s var(--ease); }
.header-book:hover .icon { transform: translateX(5px); }
.nav-chat { display: flex; align-items: center; gap: 18px; width: 44px; height: 44px; justify-content: center; color: var(--wine); background: transparent; }
.nav-chat>span { display: none; }
.nav-chat:hover { background: #e9e3d8; }
.nav-toggle { display: none; width: 48px; height: 48px; padding: 13px 10px; background: transparent; color: var(--wine); }
.nav-toggle span { display: block; height: 1px; background: currentColor; margin-block: 7px; transition: transform .25s; }
.nav-toggle[aria-expanded=true] span:first-child { transform: translateY(4px) rotate(45deg); }
.nav-toggle[aria-expanded=true] span:last-child { transform: translateY(-4px) rotate(-45deg); }

.hero { position: relative; isolation: isolate; min-height: min(820px, calc(100svh - 121px)); color: var(--paper); display: flex; align-items: center; background: #322921; overflow: clip; }
.hero-media, .hero-shade { position: absolute; inset: 0; z-index: -2; }
.hero-media { overflow: hidden; }
.hero-media img { width: 100%; height: 100%; object-position: center 62%; }
.hero-shade { z-index: -1; background: linear-gradient(90deg, #251d1de6 0%, #251d1d88 45%, #251d1d12 100%), linear-gradient(0deg, #251d1d66, transparent 35%); }
.hero-content { width: 100%; padding-block: 66px 80px; }
.hero-context { font-size: 13px; margin-bottom: 35px; }
.hero-context>span { margin-inline: 13px; color: #d2bd9c; }
.hero h1 { font-size: clamp(88px, 9.4vw, 148px); line-height: 1; letter-spacing: -.025em; }
.line-mask { display: block; overflow: clip; padding-block: .025em .09em; margin-block: -.025em -.09em; white-space: nowrap; }
.line-mask>span { display: block; }
.hero-char { display: inline-block; white-space: pre; transform-origin: 50% 100%; backface-visibility: hidden; }
.heading-line { display: block; overflow: clip; padding-bottom: .13em; margin-bottom: -.13em; }
.heading-line>span { display: block; }
.hero-bottom { display: flex; justify-content: space-between; align-items: end; gap: 40px; margin-top: 38px; }
.hero-bottom>div>p { font-size: 16px; line-height: 1.6; color: #f5f0e6; margin-bottom: 27px; }
.hero-scroll { display: flex; align-items: center; gap: 25px; font-size: 12px; padding: 12px 0; }
.hero-scroll .icon { transform: rotate(90deg); transition: transform .3s; }
.hero-scroll:hover .icon { transform: rotate(90deg) translateX(5px); }
.hero-caption { position: absolute; top: 55px; right: var(--gutter); writing-mode: vertical-rl; font-size: 11px; letter-spacing: .03em; color: #f5f0e6; }
.action { position: relative; isolation: isolate; display: inline-flex; min-height: 58px; align-items: center; justify-content: space-between; gap: 40px; padding: 15px 21px 15px 25px; border: 1px solid var(--wine); border-radius: 2px; color: var(--paper); background: var(--wine); font-size: 14px; font-weight: 500; line-height: 1.4; overflow: hidden; transition: color .25s var(--ease); text-align: left; }
.action::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--ink); transform: translateY(102%); transition: transform .35s var(--ease); }
.action:hover::before { transform: translateY(0); }
.action .icon { transition: transform .3s var(--ease); }
.action:hover .icon { transform: translateX(4px); }
.action.light { color: var(--wine); background: var(--paper); border-color: var(--paper); }
.action.light::before { background: #e3d8c4; }
.action.outline { color: var(--wine); background: transparent; border-color: var(--line); }
.action.outline::before { background: #e9e1d4; }
.action.full { width: 100%; }
.line-link { display: inline-flex; align-items: center; gap: 24px; color: var(--wine); font-weight: 500; font-size: 14px; padding: 12px 0; min-height: 44px; background: transparent; text-decoration: underline; text-underline-offset: 7px; text-decoration-thickness: 1px; }
.line-link .icon { transition: transform .3s var(--ease); }
.line-link:hover .icon { transform: translateX(5px); }
.line-link.inverse { color: var(--paper); }
.section-label { margin-bottom: 22px; font-size: 13px; color: var(--muted); line-height: 1.5; }
.section-head { display: grid; grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr); column-gap: var(--column-gap); row-gap: 22px; align-items: start; }
.section-head>.section-label { grid-column: 1 / -1; margin: 0; }
.section-head>h2 { font-size: clamp(50px, 5.4vw, 78px); line-height: 1.07; color: var(--wine); }
.section-copy { font-size: 16px; color: var(--muted); line-height: 1.8; max-width: 43ch; }
.section-copy>p+p { margin-top: 17px; }
.section-copy .line-link { margin-top: 18px; font-size: 14px; }
.photo-window { overflow: clip; }

.story { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 26px; row-gap: 56px; }
.story-heading { grid-column: 1 / -1; }
.story-main { grid-column: 1 / 9; }
.story-main img, .story-detail img { width: 100%; height: clamp(360px, 38vw, 560px); object-position: center; }
.story-main img { object-position: center 57%; }
.story figcaption { font-size: 12px; color: var(--muted); margin-top: 17px; line-height: 1.6; }
.story-detail { grid-column: 9 / 13; }

.menu-section { background: var(--wine); color: var(--paper); padding-block: clamp(68px,6vw,96px); }
.menu-intro { grid-template-columns: 1fr 1fr; column-gap: 24px; align-items: start; margin-bottom: 44px; }
.menu-intro>h2 { color: var(--paper); font-size: clamp(52px,5.2vw,78px); }
.menu-intro>.section-copy { max-width: 35ch; color: #e4d4cd; padding-left: clamp(24px,2.2vw,34px); }
.menu-layout { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; align-items: stretch; }
.menu-art { position: relative; min-width: 0; overflow: clip; border-radius: 10px; background: #30251e; }
.menu-art .photo-window { position: absolute; inset: 0; }
.menu-art img { width: 100%; height: 100%; object-position: 44% center; }
.menu-art::after { content: ''; position: absolute; inset: 40% 0 0; background: linear-gradient(0deg,#251d1ded,transparent); pointer-events: none; }
.menu-art figcaption { position: absolute; bottom: 0; left: 0; right: 0; z-index: 1; padding: clamp(28px,3vw,44px); color: #fffaf2; }
.menu-art figcaption>span { display: block; font: 400 clamp(42px,4.2vw,62px)/1.02 var(--font-display); letter-spacing: -.02em; }
.menu-art figcaption>small { display: block; margin-top: 18px; font: 400 13px/1.6 var(--font-body); color: #f3e7dd; max-width: 28ch; }
.menu-reader { min-width: 0; min-height: 800px; display: flex; flex-direction: column; background: #fffaf2; color: var(--ink); padding: clamp(24px,2.2vw,34px); border-radius: 10px 64px 10px 10px; }
.menu-tabs { position: relative; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; padding: 6px; border: 1px solid #d9cec1; border-radius: 30px; }
.menu-selection { position: absolute; top: 0; left: 0; border: 1px solid #9f747d; border-radius: 24px; opacity: 0; pointer-events: none; }
.menu-tab { position: relative; z-index: 1; padding: 13px 9px; min-height: 52px; text-align: center; background: transparent; color: var(--wine); font-size: clamp(14px,1.35vw,18px); line-height: 1.4; border-radius: 24px; }
.menu-tab[aria-selected=true] { color: #fffaf2; background: var(--wine); font-weight: 600; }
.menu-tab:hover { text-decoration: underline; text-underline-offset: 4px; }
.menu-tab:focus-visible { outline-offset: 2px; }
.menu-tools { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 14px 0 5px; font-size: 12px; }
.diet-toggle { display: inline-flex; position: relative; align-items: center; gap: 11px; cursor: pointer; min-height: 44px; }
.diet-toggle input { position: absolute; width: 36px; height: 22px; opacity: 0; margin: 0; }
.check-mark { flex: none; width: 36px; height: 22px; border: 1px solid #a59384; border-radius: 20px; background: #eae1d5; position: relative; pointer-events: none; transition: background-color .2s; }
.check-mark::after { content: ''; position: absolute; width: 14px; height: 14px; top: 3px; left: 3px; border-radius: 50%; background: #fffaf2; border: 1px solid #a59384; transition: transform .25s var(--ease); }
.diet-toggle input:checked+.check-mark { background: var(--wine); border-color: var(--wine); }
.diet-toggle input:checked+.check-mark::after { transform: translateX(14px); border-color: #fffaf2; }
.diet-toggle input:focus-visible+.check-mark { outline: 3px solid #9f573d; outline-offset: 4px; }
#menuCount { color: var(--muted); font-size: 12px; white-space: nowrap; }
.dishes { flex: 1; display: flex; flex-direction: column; justify-content: space-evenly; overflow: clip; }
.dish { display: flex; align-items: start; justify-content: space-between; gap: 20px; padding: 10px 0; border-bottom: 1px solid #e1d7cb; }
.dish:last-child, .dish-last { border-bottom: 0; }
.dish>div { min-width: 0; }
.dish h3 { font-size: clamp(25px,2.1vw,31px); line-height: 1.15; letter-spacing: -.01em; }
.dish p { font-size: 12px; color: var(--muted); line-height: 1.6; margin-top: 6px; }
.dish>b { font-size: 15px; font-weight: 600; white-space: nowrap; margin-top: 5px; color: var(--wine); }
.dish .tag { display: inline-block; font: 400 10px/1.5 var(--font-body); background: #eae1d5; padding: 2px 7px; border-radius: 12px; margin-left: 5px; color: var(--wine); vertical-align: 1px; }
.menu-note { margin-top: 22px; padding-top: 17px; border-top: 1px solid #d9cec1; font-size: 12px; line-height: 1.7; color: var(--muted); }
.menu-empty { flex: 1; display: flex; flex-direction: column; justify-content: center; padding-block: 38px; }
.menu-empty h3 { font-size: 34px; }
.menu-empty p { font-size: 14px; line-height: 1.8; color: var(--muted); margin-top: 18px; }
.menu-empty .line-link { align-self: start; margin-top: 18px; }
body:not([data-enhanced]) .menu-art { height: 400px; }
body:not([data-enhanced]) .menu-layout { align-items: start; }

.evening { padding-bottom: 80px; }
.evening-heading { margin-bottom: 56px; }
.evening-stage { position: relative; width: 100%; background: #322921; }
.scene-view { display: block; position: relative; padding: 0; width: 100%; background: #322921; overflow: hidden; color: var(--paper); }
.scene-view img { width: 100%; height: clamp(430px, 45vw, 760px); object-position: center 56%; }
.scene-view #sceneImage { position: relative; z-index: 2; }
.scene-view .scene-outgoing { position: absolute; inset: 0; z-index: 1; height: 100%; }
.scene-zoom { position: absolute; right: var(--gutter); top: 30px; display: inline-flex; align-items: center; gap: 16px; font-size: 12px; padding: 12px 18px; background: #251d1de0; transition: background-color .25s; }
.scene-zoom { z-index: 3; }
.scene-view:hover .scene-zoom { background: var(--wine); }
.scene-caption { position: absolute; bottom: 0; left: 0; right: 0; pointer-events: none; padding: 27px var(--gutter); background: linear-gradient(0deg, #251d1dee, #251d1d00); color: var(--paper); display: flex; align-items: center; justify-content: space-between; font-size: 12px; }
.scene-caption { z-index: 3; }
.scene-caption>span:first-child { font: italic 38px/1.15 var(--font-display); }
.scene-controls { display: flex; align-items: center; justify-content: space-between; gap: 35px; padding-top: 28px; }
.scene-index { position:relative;z-index:100; display: flex; align-items: center; gap: 18px; font-size: 12px; color: var(--muted); }
.scene-index>span:first-child { font: 400 34px/1 var(--font-display); color: var(--wine); }
.scene-selector { display: flex; gap: 28px; }
.scene-selector button { position: relative; background: transparent; padding: 12px 0; min-height: 44px; font-size: 13px; color: var(--muted); }
.scene-selector button::after { content: ''; position: absolute; left: 0; right: 0; bottom: 7px; height: 1px; background: var(--wine); transform: scaleX(0); transform-origin: left; transition: transform .25s; }
.scene-selector button[aria-pressed=true] { color: var(--wine); }
.scene-selector button[aria-pressed=true]::after, .scene-selector button:hover::after { transform: scaleX(1); }
.scene-arrows { display: flex; gap: 12px; }
.circle-button { width: 50px; height: 50px; border: 1px solid var(--line); display: grid; place-items: center; color: var(--wine); background: transparent; border-radius: 50%; transition: background-color .25s, color .25s; padding: 0; flex: none; }
.circle-button:hover { background: var(--wine); color: var(--paper); }

.invitation { background: var(--paper); }
.invitation-grid { display: grid; grid-template-columns: minmax(0,.86fr) minmax(0,1.14fr); gap: var(--column-gap); align-items: center; }
.invitation h2 { font-size: clamp(50px,5.4vw,78px); line-height: 1.07; color: var(--wine); }
.reservation-copy>p:not(.section-label) { font-size: 16px; line-height: 1.8; color: var(--muted); max-width: 36ch; margin-top: 25px; }
.invitation .action { margin-top: 32px; }
.reservation-photo { overflow: clip; border-radius: 48% 48% 2px 2px; }
.reservation-photo img { width: 100%; height: clamp(340px,31vw,480px); object-position: center; }
.aura-footer { background: var(--wine); color: var(--paper); padding-top: 68px; }
.footer-grid { display: grid; grid-template-columns: 1.2fr .7fr 1fr; gap: 64px; align-items: start; padding-bottom: 56px; }
.footer-brand { color: var(--paper); font-size: 86px; padding: 0; line-height: .9; }
.footer-brand>span { font-size: 13px; }
.footer-identity>p { margin-top: 25px; font-size: 16px; line-height: 1.6; }
.footer-identity .line-link { font-size: 14px; margin-top: 18px; }
.footer-grid h3 { font: 600 15px/1.5 var(--font-body); margin: 0 0 17px; }
.footer-nav { display: flex; flex-direction: column; align-items: start; }
.footer-nav>a, .footer-nav>button { min-height: 44px; padding: 10px 0; font: 400 14px/1.6 var(--font-body); text-align: left; color: #f0e4dc; background: transparent; }
.footer-nav>a:hover, .footer-nav>button:hover { text-decoration: underline; text-underline-offset: 5px; }
.footer-hours dl { margin: 0; font-size: 14px; }
.footer-hours dl>div { display: flex; justify-content: space-between; gap: 14px; min-height: 44px; padding: 10px 0; border-bottom: 1px solid #8b656d; }
.footer-hours dl>div:last-child { border-bottom: 0; }
.footer-hours dd { margin: 0; white-space: nowrap; }
.footer-hours>p { font-size: 13px; margin-top: 19px; color: #f0e4dc; }
.footer-hours>p>span { display: block; margin-top: 3px; color: #dac9bd; font-size: 12px; }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 25px; padding: 18px 0; font-size: 12px; color: #dac9bd; border-top: 1px solid #8b656d; }
.footer-bottom a { color: var(--paper); text-decoration: underline; text-underline-offset: 4px; }
.footer-bottom .back-top { display: flex; align-items: center; gap: 18px; min-height: 44px; text-decoration: none; }
.back-top .icon { width: 20px; height: 20px; }

dialog { border: 0; margin: auto; background: var(--paper); color: var(--ink); padding: 32px; max-height: calc(100dvh - 36px); overscroll-behavior: contain; width: min(660px, calc(100% - 32px)); border-radius: 4px; }
dialog::backdrop { background: #21191ace; backdrop-filter: blur(5px); }
.dialog-top { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 27px; }
.dialog-brand { font: 400 43px/1 var(--font-display); color: var(--wine); }
.dialog-top .circle-button { width: 44px; height: 44px; }
.booking-dialog h2 { font-size: 56px; color: var(--wine); line-height: 1.05; }
#bookingIntro { font-size: 13px; color: var(--muted); margin: 19px 0 28px; line-height: 1.7; max-width: 53ch; }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px 20px; }
.field { display: flex; flex-direction: column; gap: 8px; font-size: 13px; min-width: 0; }
.field input, .field select { width: 100%; min-width: 0; min-height: 53px; padding: 12px 13px; background: #fffdf8; color: var(--ink); border: 1px solid #b8aaa0; border-radius: 2px; font-size: 16px; line-height: 1.4; }
.field small { color: var(--muted); font-size: 11px; line-height: 1.5; }
.optional { font-size: 11px; color: var(--muted); margin-top: -7px; }
.field [aria-invalid=true] { border-color: #a22933; }
.field small.error { color: #8f1f2a; }
.booking-dialog .action { margin-top: 28px; }
.booking-receipt h3 { font-size: 37px; color: var(--wine); }
.booking-receipt dl { font-size: 13px; margin: 26px 0; }
.booking-receipt dl>div { display: grid; grid-template-columns: 95px 1fr; gap: 25px; padding: 13px 0; border-bottom: 1px solid var(--line); }
.booking-receipt dt { color: var(--muted); }
.booking-receipt dd { margin: 0; overflow-wrap: anywhere; }
.booking-receipt>p { font-size: 14px; line-height: 1.8; }
.image-dialog { width: min(1200px, calc(100% - 24px)); padding: 16px; }
.image-dialog .dialog-top { margin-bottom: 15px; }
.image-dialog h2, .privacy-dialog h2 { font-size: 33px; }
.image-dialog img { width: 100%; height: auto; max-height: 70dvh; object-fit: contain; }
.privacy-dialog>p { color: var(--muted); margin-top: 23px; font-size: 15px; line-height: 1.8; }
.vadum-chat { --vc-accent: #532b35; --vc-accent-ink: #f5f0e6; --vc-bg: #f5f0e6; --vc-muted: #625953; --vc-text: #30251e; --vc-font: 'DM Sans',sans-serif; --vc-radius: 4px; }
.vc-input { font-size: 16px !important; }
.vc-launcher { display: none; }
.vc-panel { bottom: 0; }
.vc-launcher::after { display: none; }
.vc-teaser, .vc-badge { display: none !important; }

@media(max-width:1100px) {
  :root { --column-gap: 42px; }
  .hero h1 { font-size: clamp(88px,10vw,120px); }
  .story { column-gap: 18px; row-gap: 60px; }
  .menu-layout { gap: 18px; }
  .menu-tab { font-size: 14px; }
  .footer-grid { gap: 38px; }
  .scene-selector { gap: 22px; }
}
@media(max-width:999px) {
  .menu-layout { grid-template-columns: 1fr; gap: 20px; }
  .menu-art { height: 390px; }
  .menu-art img { object-position: center 59%; }
  .menu-reader { min-height: 700px; }
  .menu-tab { font-size: 18px; }
  .menu-intro>.section-copy { padding-left: 0; }
}
@media(max-width:820px) {
  :root { --column-gap: 32px; }
  html { scroll-padding-top: 95px; }
  .header-inner { min-height: 78px; }
  .wordmark { font-size: 45px; }
  .nav-toggle { display: block; }
  .nav-links { position: absolute; top: 100%; left: 0; right: 0; display: none; background: var(--paper); padding: 20px var(--gutter) 28px; box-shadow: 0 18px 25px #30251e15; border-bottom: 1px solid var(--line); flex-direction: column; align-items: stretch; gap: 4px; max-height: 70svh; overflow-y: auto; }
  .nav-links.is-open { display: flex; }
  .nav-links>a { font: 400 38px/1.15 var(--font-display); padding: 14px 0; }
  .nav-links>a::after { bottom: 4px; }
  .header-book { border-left: 0; border-top: 1px solid var(--line); padding: 20px 0 5px; justify-content: space-between; margin-top: 10px; font-size: 14px; }
  .nav-chat { width: 100%; justify-content: space-between; padding: 10px 0; font-size: 13px; min-height: 49px; }
  .nav-chat>span { display: inline; }
  .section-copy { font-size: 15px; }
  .scene-controls { gap: 25px; }
  .scene-selector { gap: 17px; }
  .scene-selector button { font-size: 12px; }
  .footer-grid { gap: 24px; }
  .footer-brand { font-size: 72px; }
  .footer-hours dl { font-size: 12px; }
}
@media(max-width:700px) {
  :root { --gutter: 24px; --space-section: 74px; }
  .concept-bar { display: block; text-align: center; font-size: 10px; padding: 6px 15px; }
  .concept-bar a { margin-left: 8px; display: inline-block; }
  .header-inner { min-height: 74px; }
  .hero { min-height: min(710px, calc(100svh - 120px)); align-items: center; }
  .hero-media img { object-position: 59% center; }
  .hero-shade { background: linear-gradient(90deg,#251d1dc7,#251d1d63), linear-gradient(0deg,#251d1d73,transparent 70%); }
  .hero-content { padding-block: 48px 56px; }
  .hero-context { font-size: 12px; margin-bottom: 37px; }
  .hero h1 { font-size: clamp(59px,16.6vw,107px); line-height: 1.04; letter-spacing: -.035em; }
  .hero-bottom { display: block; margin-top: 30px; }
  .hero-bottom>div>p { font-size: 14px; margin-bottom: 25px; }
  .hero-scroll { margin-top: 33px; width: max-content; font-size: 11px; gap: 18px; }
  .hero-caption { display: none; }
  .action { min-height: 55px; padding-inline: 21px; gap: 40px; font-size: 13px; }
  .section-label { font-size: 12px; margin-bottom: 20px; }
  .section-head { grid-template-columns: 1fr; gap: 22px; }
  .section-head>h2, .invitation h2 { font-size: clamp(50px,13.5vw,66px); }
  .section-copy { font-size: 15px; max-width: 39ch; }
  .story { grid-template-columns: repeat(6,minmax(0,1fr)); row-gap: 36px; column-gap: 14px; }
  .story-heading { grid-column: 1 / -1; }
  .story-main { grid-column: 1 / 5; }
  .story-detail { grid-column: 5 / 7; }
  .story-main img, .story-detail img { height: clamp(240px,67vw,340px); }
  .story-main img { object-position: 55% center; }
  .story-detail img { object-position: 51% center; }
  .story figcaption { font-size: 11px; margin-top: 12px; }
  .menu-intro { margin-bottom: 30px; gap: 22px; }
  .menu-intro>.section-copy { padding-left: 0; max-width: 34ch; }
  .menu-art { height: 230px; }
  .menu-art figcaption { padding: 22px; }
  .menu-art figcaption>span { font-size: 34px; }
  .menu-art figcaption>small { display: none; }
  .menu-reader { min-height: 630px; padding: 22px; border-radius: 10px 42px 10px 10px; }
  .menu-tab { font-size: 14px; padding: 12px 7px; }
  .menu-tools { gap: 12px; font-size: 11px; margin-block: 12px 5px; }
  #menuCount { font-size: 11px; }
  .dish { padding-block: 17px; gap: 16px; }
  .dish h3 { font-size: 27px; line-height: 1.15; }
  .dish p { font-size: 12px; }
  .dish>b { font-size: 14px; }
  .dish .tag { margin-left: 0; margin-top: 4px; }
  .menu-note { font-size: 11px; }
  .evening { padding-bottom: 58px; }
  .evening-heading { margin-bottom: 36px; }
  .scene-view img { height: 450px; object-position: 53% center; }
  .scene-zoom { right: 20px; top: 20px; padding: 10px 13px; font-size: 11px; gap: 10px; }
  .scene-zoom .icon { width: 19px; height: 19px; }
  .scene-caption { padding: 24px; gap: 20px; font-size: 10px; }
  .scene-caption>span:first-child { font-size: 31px; }
  .scene-controls { flex-wrap: wrap; gap: 15px 20px; padding-top: 23px; }
  .scene-index { gap: 13px; order: 1; }
  .scene-arrows { order: 2; margin-left: auto; }
  .scene-selector { order: 3; flex-basis: 100%; justify-content: space-between; gap: 18px; }
  .scene-selector button { font-size: 12px; }
  .invitation-grid { grid-template-columns: 1fr; gap: 55px; }
  .reservation-copy>p:not(.section-label) { font-size: 15px; margin-top: 22px; }
  .reservation-photo { width: 100%; max-width: 460px; }
  .reservation-photo img { height: 330px; }
  .invitation .action { margin-top: 30px; }
  .aura-footer { padding-top: 48px; }
  .footer-grid { grid-template-columns: .85fr 1.3fr; gap: 36px 24px; padding-bottom: 32px; }
  .footer-identity { grid-column: 1 / -1; }
  .footer-brand { font-size: 72px; }
  .footer-identity>p { font-size: 15px; margin-top: 18px; }
  .footer-identity .line-link { margin-top: 12px; }
  .footer-grid h3 { font-size: 13px; margin-bottom: 14px; }
  .footer-hours dl { font-size: 12px; }
  .footer-hours dl>div { gap: 10px; }
  .footer-nav>a, .footer-nav>button { font-size: 13px; }
  .footer-hours>p { font-size: 12px; }
  .footer-bottom { display: grid; grid-template-columns: 1fr auto; gap: 10px; font-size: 11px; padding-block: 18px; }
  .footer-bottom>span:nth-child(2) { grid-column: 1; }
  .footer-bottom>.back-top { grid-column: 2; grid-row: 1 / 3; font-size: 12px; gap: 9px; }
  dialog { padding: 25px 22px; }
  .dialog-top { margin-bottom: 21px; }
  .booking-dialog h2 { font-size: 42px; }
  #bookingIntro { font-size: 12px; margin-top: 19px; }
  .form-grid { grid-template-columns: 1fr; gap: 21px; }
  .field { font-size: 13px; }
  .booking-receipt h3 { font-size: 33px; }
  .booking-receipt dl>div { grid-template-columns: 65px 1fr; gap: 15px; }
  .image-dialog { padding: 12px; }
  .image-dialog h2 { font-size: 28px; }
  .privacy-dialog h2 { font-size: 32px; }
  .privacy-dialog>p { font-size: 14px; }
  .vc-launcher { right: 18px; bottom: max(18px,env(safe-area-inset-bottom)); }
}
@media(max-width:360px) {
  :root { --gutter: 20px; }
  .concept-bar { font-size: 9px; }
  .hero h1 { font-size: 56px; }
  .hero-context { font-size: 11px; }
  .hero-caption { display: none; }
  .section-head>h2, .invitation h2 { font-size: 47px; }
  .dish h3 { font-size: 25px; }
  .menu-tab { font-size: 12px; }
  .menu-reader { padding: 18px; }
  .menu-tools { align-items: start; gap: 7px; font-size: 10px; }
  .diet-toggle { gap: 7px; }
  .footer-grid { gap: 28px 18px; }
  .footer-hours dl { font-size: 11px; }
  .footer-hours dl>div { flex-wrap: wrap; gap: 0 8px; }
}
@media(max-height:540px) and (min-width:701px) {
  .header-inner { min-height: 64px; }
  .wordmark { font-size: 39px; }
  .hero { min-height: calc(100svh - 98px); }
  .hero-content { display: grid; grid-template-columns: 1.25fr 1fr; gap: 10px 38px; padding-block: 25px 30px; }
  .hero-context { grid-column: 1; margin: 0 0 10px; font-size: 11px; }
  .hero h1 { grid-column: 1; font-size: clamp(60px,7.4vw,83px); }
  .hero-bottom { display: contents; }
  .hero-bottom>div { grid-column: 2; grid-row: 2; align-self: end; }
  .hero-bottom>div>p { font-size: 12px; margin-bottom: 17px; }
  .hero-bottom .action { min-height: 49px; font-size: 12px; }
  .hero-scroll, .hero-caption { display: none; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* Final audit 2026-10-09: no visible text under 11px (logo taglines 10px) and 44px tap height for footer/header links. */
html body .concept-bar span,html body .concept-bar a{font-size:11px}
html body .diet-toggle span{font-size:12px}
html body small.tag{font-size:11px}
html body .scene-caption span{font-size:11px}
html body .footer-bottom span>a{display:inline-flex;align-items:center;min-height:44px;margin-block:-14px}
html body small.tag{font-size:11px!important}
