/* ============================================================
   OMU PLACE — design system
   Rebuilt from the Claude Design export "Omuplace homepage hero
   directions". Tokens encoded verbatim from _ds/tokens/*.css;
   component CSS replicated from _ds_bundle.js (omu-btn, omu-badge,
   omu-dish, omu-mrow, omu-swirl, omu-nav, plus class versions of
   the inline-styled PriceTag / HoursCard / UnitTab / StallFooter /
   CompleteYourMeal components).
   Fonts: SELF-HOSTED woff2 (assets/fonts/), per the design system —
   no Google Fonts links in this build.
   ============================================================ */

/* ---------- Tokens: fonts (verbatim; paths rebased to ../fonts/) ----------
   Webfonts — latin subsets pulled from Google Fonts (nearest matches; no
   official brand fonts exist). */
@font-face{font-family:'Space Mono';font-style:italic;font-weight:400;font-display:swap;src:url('../fonts/space-mono-400-italic.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Space Mono';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/space-mono-400.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Space Mono';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/space-mono-700.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Zen Kaku Gothic New';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/zen-kaku-gothic-new-500.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Zen Kaku Gothic New';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/zen-kaku-gothic-new-700.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Zen Kaku Gothic New';font-style:normal;font-weight:900;font-display:swap;src:url('../fonts/zen-kaku-gothic-new-900.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Zen Maru Gothic';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/zen-maru-gothic-400.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Zen Maru Gothic';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/zen-maru-gothic-500.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Zen Maru Gothic';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/zen-maru-gothic-700.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

/* ---------- Tokens: colors (verbatim from tokens/colors.css) ----------
   Derived from observed food + signboard photography; no official brand
   hexes exist. */
:root{
/* Base — Egg-Yolk Gold (hero) */
--gold-300:#F7C566;
--gold-400:#F2A93B;
--gold-500:#E09424;
--gold-600:#C77E14;
--gold-wash:#FCE9C4;
/* Base — Demi-Glace Brown */
--brown-900:#2E1B0E;
--brown-800:#3B2415;
--brown-700:#5A3A22;
--brown-500:#7A5433;
--brown-300:#A98055;
--brown-wash:#EFE3CF;
/* Base — Butter-Rice Cream */
--cream-100:#FFFFFF;
--cream-200:#FBF7EC;
--cream-300:#F5EEDD;
--cream-400:#EDE2C9;
/* Base — Signboard Red (hinomaru; use sparingly) */
--red-400:#C0392B;
--red-500:#A82A1E;
--red-600:#8E2116;
/* Semantic — surfaces */
--surface-page:var(--cream-300);
--surface-card:var(--cream-200);
--surface-lightbox:var(--cream-100);
--surface-raised:var(--gold-wash);
--surface-inverse:var(--brown-700);
--surface-inverse-deep:var(--brown-800);
/* Semantic — text */
--text-primary:var(--brown-800);
--text-secondary:var(--brown-500);
--text-muted:var(--brown-300);
--text-on-gold:var(--brown-800);
--text-on-inverse:var(--cream-200);
--text-on-inverse-muted:#CBB394;
--text-brand:var(--red-400);
--text-price:var(--brown-700);
/* Semantic — interactive */
--accent:var(--gold-400);
--accent-hover:var(--gold-500);
--accent-press:var(--gold-600);
--link:var(--red-400);
--link-hover:var(--red-600);
--focus-ring:var(--gold-500);
/* Semantic — lines */
--border-soft:#E7DABF;
--border-strong:#D3BFA0;
--border-inverse:#6E4A2D;

/* Build extensions (declared, not ad-hoc):
   --gold-700 extends the DS gold ramp downward for TEXT on cream surfaces —
   gold-600 kickers measure 2.8:1 on cream-300 and fail AA; #8F5A0E measures
   4.99:1 (5.77:1 on white). Same hue family, used only for small kicker /
   label text where the canvas used gold-600 on light grounds.
   --whatsapp-green is the SG-integration button colour (white bold >=19px
   text = 3.09:1, passes AA large-text only — keep WA labels 19px bold). */
--gold-700:#8F5A0E;
--whatsapp-green:#1FA855;
--backdrop:rgba(46,27,14,.55);
}

/* ---------- Tokens: typography (verbatim from tokens/typography.css) ---------- */
:root{
--font-display:'Zen Kaku Gothic New','Hiragino Kaku Gothic ProN',sans-serif;
--font-body:'Zen Maru Gothic','Hiragino Maru Gothic ProN',sans-serif;
--font-mono:'Space Mono',ui-monospace,monospace;
--text-xs:12px;
--text-sm:13.5px;
--text-base:15.5px;
--text-md:17px;
--text-lg:20px;
--text-xl:25px;
--text-2xl:32px;
--text-3xl:42px;
--text-display:clamp(44px,6.5vw,76px);
--weight-body:400;
--weight-medium:500;
--weight-bold:700;
--weight-black:900;
--leading-tight:1.04;
--leading-heading:1.15;
--leading-body:1.65;
--tracking-tight:-0.015em;
--tracking-wide:0.08em;
--tracking-label:0.18em;
}

/* ---------- Tokens: spacing / radii / layout (verbatim from tokens/spacing.css) ---------- */
:root{
--space-1:4px;
--space-2:8px;
--space-3:12px;
--space-4:16px;
--space-5:24px;
--space-6:32px;
--space-7:48px;
--space-8:64px;
--space-9:96px;
--space-10:128px;
--radius-sm:10px;
--radius-md:16px;
--radius-lg:24px;
--radius-xl:36px;
--radius-pill:999px;
--radius-pool:58% 42% 55% 45% / 52% 58% 42% 48%;
--radius-pool-2:44% 56% 48% 52% / 58% 44% 56% 42%;
--container-max:1120px;
--container-pad:clamp(20px,5vw,56px);
}

/* ---------- Tokens: effects (verbatim from tokens/effects.css) ---------- */
:root{
--shadow-card:0 1px 2px rgba(90,58,34,.08),0 8px 24px rgba(90,58,34,.10);
--shadow-lift:0 2px 4px rgba(90,58,34,.10),0 16px 40px rgba(90,58,34,.16);
--shadow-button:0 2px 0 rgba(90,58,34,.22);
--shadow-inset-plate:inset 0 0 0 1px rgba(90,58,34,.08);
--ease-out:cubic-bezier(.22,.9,.3,1);
--dur-fast:140ms;
--dur-base:220ms;
--protect-bottom:linear-gradient(180deg,rgba(46,27,14,0) 0%,rgba(46,27,14,.62) 100%);
}

/* ---------- Base (verbatim from tokens/base.css + box model) ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--surface-page);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-body);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:var(--weight-black);line-height:var(--leading-heading);letter-spacing:var(--tracking-tight);margin:0;text-wrap:balance}
p{margin:0;text-wrap:pretty}
a{color:var(--link);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px;transition:color var(--dur-fast) var(--ease-out)}
a:hover{color:var(--link-hover)}
::selection{background:var(--gold-400);color:var(--brown-800)}
img{display:block;max-width:100%}
button{font-family:inherit}
:focus-visible{outline:2.5px solid var(--focus-ring);outline-offset:2px;border-radius:4px}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}

.container{max-width:var(--container-max);margin:0 auto;padding-left:var(--container-pad);padding-right:var(--container-pad)}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--gold-400);color:var(--brown-800);font-family:var(--font-display);font-weight:var(--weight-bold);text-decoration:none;padding:12px 18px;border-radius:0 0 var(--radius-sm) var(--radius-sm);z-index:200}
.skip-link:focus{left:12px}

/* Typographic helpers (icon system = typographic marks: → · ※) */
.kicker{font-family:var(--font-mono);font-size:12px;font-weight:var(--weight-bold);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--gold-700)}
.kicker--inverse{color:var(--gold-300)}
.mono-note{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.16em;color:var(--brown-500);line-height:1.7}
.text-link{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:16px;color:var(--red-400);text-decoration:underline;text-underline-offset:4px}
.text-link:hover{color:var(--red-600)}
.text-link--gold{color:var(--gold-300)}
.text-link--gold:hover{color:var(--gold-400)}
.red-period{color:var(--red-400)}

/* ---------- Badge (verbatim .omu-badge from bundle) ---------- */
.omu-badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11px;font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:var(--tracking-label);border-radius:var(--radius-pill);padding:5px 12px 4px;line-height:1.2}
.omu-badge--signature{background:var(--red-400);color:var(--cream-200)}
.omu-badge--gold{background:var(--gold-400);color:var(--brown-800)}
.omu-badge--outline{background:transparent;color:var(--text-secondary);box-shadow:inset 0 0 0 1px var(--border-strong)}
.omu-badge--inverse{background:rgba(251,247,236,.12);color:var(--text-on-inverse)}

/* ---------- Buttons (verbatim .omu-btn from bundle + WA integration) ---------- */
.omu-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;cursor:pointer;font-family:var(--font-display);font-weight:var(--weight-bold);border-radius:var(--radius-pill);text-decoration:none;line-height:1;transition:background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);white-space:nowrap}
.omu-btn--sm{font-size:13px;padding:0 18px;height:36px}
.omu-btn--md{font-size:15px;padding:0 24px;height:46px}
.omu-btn--lg{font-size:17px;padding:0 32px;height:56px}
.omu-btn--primary{background:var(--accent);color:var(--text-on-gold);box-shadow:var(--shadow-button)}
.omu-btn--primary:hover{background:var(--accent-hover);transform:translateY(-1px);color:var(--text-on-gold)}
.omu-btn--primary:active{background:var(--accent-press);transform:translateY(1px);box-shadow:none}
.omu-btn--secondary{background:var(--surface-lightbox);color:var(--brown-700);box-shadow:inset 0 0 0 1.5px var(--border-strong),var(--shadow-button)}
.omu-btn--secondary:hover{background:var(--cream-200);transform:translateY(-1px);color:var(--brown-700)}
.omu-btn--secondary:active{transform:translateY(1px);box-shadow:inset 0 0 0 1.5px var(--border-strong)}
.omu-btn--inverse{background:transparent;color:var(--text-on-inverse);box-shadow:inset 0 0 0 1.5px var(--border-inverse)}
.omu-btn--inverse:hover{background:rgba(251,247,236,.08);color:var(--text-on-inverse)}
.omu-btn--inverse:active{transform:translateY(1px)}
/* WhatsApp: white on green passes AA at large-text only — labels stay 19px bold */
.omu-btn--wa{background:var(--whatsapp-green);color:#FFFFFF;font-size:19px;box-shadow:var(--shadow-button)}
.omu-btn--wa:hover{background:#178F47;transform:translateY(-1px);color:#FFFFFF}
.omu-btn--wa:active{transform:translateY(1px);box-shadow:none}
.omu-btn--wa .wa-glyph{flex:none}
.omu-btn--block{width:100%}

/* ---------- PriceTag (class version of the bundle component) ---------- */
.omu-price{font-family:var(--font-mono);font-weight:var(--weight-bold);color:var(--text-price);white-space:nowrap}
.omu-price__from{font-size:12px;font-weight:400;letter-spacing:.04em;margin-right:4px;color:var(--brown-500)}
.omu-price__cur{font-size:12px;vertical-align:4px;margin-right:1px}
.omu-price__amt{font-size:19px;letter-spacing:-0.02em}
.omu-price--sm .omu-price__from{font-size:11px}
.omu-price--sm .omu-price__cur{font-size:11px;vertical-align:3px}
.omu-price--sm .omu-price__amt{font-size:15px}
.omu-price--lg .omu-price__cur{font-size:15px;vertical-align:6px}
.omu-price--lg .omu-price__amt{font-size:27px}
.omu-price--tbc{font-size:11px;letter-spacing:.16em;color:var(--brown-500);font-weight:var(--weight-bold)}

/* ---------- SwirlDivider (verbatim .omu-swirl from bundle; spin honours reduced motion) ---------- */
@keyframes omu-swirl-spin{to{transform:rotate(360deg)}}
.omu-swirl{display:flex;align-items:center;gap:16px;justify-content:center}
.omu-swirl__rule{flex:0 1 72px;height:1px;background:var(--border-strong)}
.omu-swirl--spin svg{animation:omu-swirl-spin 9s linear infinite}
@media (prefers-reduced-motion:reduce){.omu-swirl--spin svg{animation:none}}

/* ---------- DishCard (verbatim .omu-dish from bundle) ---------- */
.omu-dish{background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden;display:flex;flex-direction:column;transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}
.omu-dish:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift)}
.omu-dish__img{position:relative;overflow:hidden;height:230px}
.omu-dish__img img{width:100%;height:100%;object-fit:cover}
.omu-dish__badge{position:absolute;top:12px;left:12px}
.omu-dish__body{padding:18px 20px 20px;display:flex;flex-direction:column;gap:6px;flex:1}
.omu-dish__row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.omu-dish__name{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:18px;line-height:1.25;color:var(--text-primary)}
.omu-dish__desc{font-size:14px;color:var(--text-secondary);line-height:1.55}

/* ---------- MenuRow (verbatim .omu-mrow from bundle: gold-wash hover + dotted leader) ---------- */
.omu-mrow{display:flex;align-items:baseline;gap:12px;padding:13px 10px;border-radius:var(--radius-sm);transition:background var(--dur-fast) var(--ease-out)}
.omu-mrow:hover{background:var(--gold-wash)}
.omu-mrow__name{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:16.5px;color:var(--text-primary);white-space:nowrap}
.omu-mrow__leader{flex:1;border-bottom:2px dotted var(--border-strong);transform:translateY(-4px);min-width:24px}
.omu-mrow__desc{font-size:13.5px;color:var(--text-secondary);margin-top:2px;line-height:1.5;padding:0 10px}

/* ---------- CompleteYourMeal strip (class version of the bundle component) ---------- */
.omu-cym{background:var(--gold-wash);border:2px dashed var(--gold-500);border-radius:var(--radius-md);padding:18px 24px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.omu-cym__copy{display:flex;flex-direction:column;gap:2px}
.omu-cym__label{font-family:var(--font-mono);font-size:12px;font-weight:var(--weight-bold);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--brown-700)}
.omu-cym__desc{font-size:14px;color:var(--brown-500)}
.omu-cym__price{margin-left:auto;display:flex;align-items:baseline;gap:4px}
.omu-cym__plus{font-family:var(--font-mono);font-weight:var(--weight-bold);font-size:20px;color:var(--text-price)}

/* ---------- HoursCard (class version of the bundle component) ---------- */
.omu-hours{background:var(--surface-lightbox);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:26px 28px;display:flex;flex-direction:column;gap:16px}
.omu-hours__row{display:flex;gap:16px;align-items:baseline;border-bottom:1px dashed var(--border-soft);padding-bottom:14px}
.omu-hours__label{font-family:var(--font-mono);font-size:11px;font-weight:var(--weight-bold);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--gold-700);width:62px;flex-shrink:0}
.omu-hours__value{font-size:15px;color:var(--text-primary);line-height:1.55}

/* ---------- UnitTab (class version of the bundle component) ---------- */
.omu-unittab{display:inline-flex;flex-direction:column;align-items:center;gap:1px;background:var(--gold-400);color:var(--brown-800);border-radius:0 0 12px 12px;padding:10px 14px 12px;box-shadow:var(--shadow-card);font-family:var(--font-mono);font-weight:var(--weight-bold);line-height:1}
.omu-unittab__k{font-size:9px;letter-spacing:.2em;opacity:.75}
.omu-unittab__v{font-size:17px;letter-spacing:.02em}
.omu-unittab--overlay{position:absolute;top:0;right:34px}

/* ---------- SiteNav (verbatim .omu-nav from bundle + responsive layer) ---------- */
.omu-nav{position:sticky;top:0;z-index:40;background:var(--cream-200);border-bottom:1px solid var(--border-soft)}
.omu-nav__in{max-width:var(--container-max);margin:0 auto;padding:0 var(--container-pad);height:64px;display:flex;align-items:center;gap:28px}
.omu-nav__brand{font-family:var(--font-display);font-weight:var(--weight-black);font-size:20px;color:var(--red-400);text-decoration:none;letter-spacing:.01em;white-space:nowrap}
.omu-nav__brand:hover{color:var(--red-500)}
.omu-nav__links{display:flex;gap:24px;margin-left:auto;align-items:center}
.omu-nav__link{font-family:var(--font-body);font-weight:var(--weight-medium);font-size:14.5px;color:var(--brown-700);text-decoration:none}
.omu-nav__link:hover{color:var(--red-400)}
.omu-nav__link[aria-current="page"]{color:var(--red-400)}
.omu-nav__unit{font-family:var(--font-mono);font-size:11px;font-weight:var(--weight-bold);letter-spacing:.14em;color:var(--brown-500)}
.omu-nav__toggle{display:none;background:transparent;border:0;box-shadow:inset 0 0 0 1.5px var(--border-strong);border-radius:var(--radius-pill);color:var(--brown-700);font-family:var(--font-display);font-weight:var(--weight-bold);font-size:14px;padding:0 16px;height:40px;cursor:pointer;align-items:center;gap:9px;margin-left:auto}
.omu-nav__toggle .bars{display:inline-flex;flex-direction:column;gap:4px}
.omu-nav__toggle .bars span{display:block;width:16px;height:2px;border-radius:2px;background:currentColor}

/* Drawer: hidden in place (opacity/visibility) — never translated off-canvas */
.nav-backdrop{position:fixed;inset:0;background:var(--backdrop);z-index:50;opacity:0;visibility:hidden;transition:opacity var(--dur-base) ease,visibility var(--dur-base) ease}
.nav-backdrop[data-open="true"]{opacity:1;visibility:visible}
.nav-drawer{position:fixed;top:0;right:0;bottom:0;width:min(320px,88vw);z-index:60;background:var(--cream-200);border-left:1px solid var(--border-soft);box-shadow:var(--shadow-lift);padding:20px 22px;display:flex;flex-direction:column;gap:2px;overflow-y:auto;opacity:0;visibility:hidden;transition:opacity var(--dur-base) ease,visibility var(--dur-base) ease}
.nav-drawer[data-open="true"]{opacity:1;visibility:visible}
.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.drawer-brand{font-family:var(--font-display);font-weight:var(--weight-black);font-size:19px;color:var(--red-400)}
.drawer-close{background:transparent;border:0;font-size:30px;line-height:1;color:var(--brown-700);cursor:pointer;padding:4px 10px;border-radius:var(--radius-sm)}
.drawer-unit{font-family:var(--font-mono);font-size:11px;font-weight:var(--weight-bold);letter-spacing:.14em;color:var(--brown-500);margin-bottom:12px}
.drawer-link{display:block;padding:13px 4px;font-family:var(--font-display);font-weight:var(--weight-bold);font-size:19px;color:var(--brown-800);text-decoration:none;border-bottom:1px dashed var(--border-soft)}
.drawer-link:hover{color:var(--red-400)}
.drawer-link[aria-current="page"]{color:var(--red-400)}
.drawer-cta{display:flex;flex-direction:column;gap:12px;margin-top:22px}
.drawer-note{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.12em;color:var(--brown-500);line-height:1.7}

/* ---------- StallFooter (class version of the bundle component) ---------- */
.omu-footer{background:var(--surface-inverse-deep);color:var(--text-on-inverse);padding:56px 0 40px}
.omu-footer__in{max-width:var(--container-max);margin:0 auto;padding:0 var(--container-pad);display:flex;flex-direction:column;gap:28px}
.omu-footer__top{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;flex-wrap:wrap}
.omu-footer__brand{display:flex;flex-direction:column;gap:8px}
.omu-footer__name{font-family:var(--font-display);font-weight:var(--weight-black);font-size:26px;color:var(--cream-200)}
.omu-footer__mono{font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;color:var(--text-on-inverse-muted)}
.omu-footer__cols{display:flex;gap:48px 64px;flex-wrap:wrap}
.omu-footer__col{display:flex;flex-direction:column;gap:6px;font-size:14.5px;color:var(--text-on-inverse-muted);min-width:150px}
.omu-footer__col h2{font-family:var(--font-mono);font-weight:var(--weight-bold);font-size:11px;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--gold-300);margin-bottom:6px}
.omu-footer__col address{font-style:normal}
.omu-footer__col a{color:var(--cream-200);text-decoration:none}
.omu-footer__col a:hover{color:var(--gold-300);text-decoration:underline}
.omu-footer__gold-link{color:var(--gold-300)!important}
.omu-footer__bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;color:var(--text-on-inverse-muted)}

/* ============================================================
   Page sections
   ============================================================ */

/* ---------- Home hero ---------- */
.home-hero{max-width:var(--container-max);margin:0 auto;padding:36px var(--container-pad) 92px;display:flex;flex-direction:column;gap:48px}
.home-hero__strip{display:flex;justify-content:space-between;align-items:baseline;gap:12px 24px;flex-wrap:wrap;font-family:var(--font-mono);font-size:12px;font-weight:var(--weight-bold);letter-spacing:.16em;color:var(--brown-500)}
.home-hero__grid{display:grid;grid-template-columns:1fr 360px;gap:56px;align-items:end}
.home-hero__copy{display:flex;flex-direction:column;gap:40px;min-width:0}
.home-hero__title{font-size:clamp(96px,11.5vw,160px);line-height:.92;letter-spacing:-.02em;color:var(--brown-900)}
.home-hero__sub{display:flex;flex-direction:column;gap:24px}
.omu-def{display:flex;gap:16px;align-items:flex-start;max-width:56ch}
.omu-def .omu-swirl{flex:none;margin-top:6px}
.omu-def__text{font-family:var(--font-body);font-size:19px;line-height:1.62;color:var(--brown-700)}
.omu-def__word{font-family:var(--font-mono);font-weight:var(--weight-bold);color:var(--brown-800)}
.omu-def__phon{color:var(--brown-500)}
.omu-def__price{font-family:var(--font-mono);font-weight:var(--weight-bold);color:var(--text-price)}
.home-hero__actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}

/* Order chit (receipt aside) */
.order-chit{background:var(--surface-lightbox);border:1.5px dashed var(--border-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-card);padding:28px 24px;transform:rotate(1.4deg);font-family:var(--font-mono);display:flex;flex-direction:column;gap:13px}
.order-chit__head{text-align:center;display:flex;flex-direction:column;gap:5px;padding-bottom:14px;border-bottom:1.5px dashed var(--border-soft)}
.order-chit__title{font-size:13.5px;font-weight:var(--weight-bold);color:var(--brown-800)}
.order-chit__sub{font-size:10.5px;letter-spacing:.22em;color:var(--brown-500)}
.chit-row{display:flex;align-items:baseline;gap:10px;font-size:12.5px;color:var(--brown-700)}
.chit-row>span:first-child{white-space:nowrap}
.chit-row__leader{flex:1;border-bottom:2px dotted var(--border-strong);transform:translateY(-3px);min-width:16px}
.chit-row__amt{font-weight:var(--weight-bold);white-space:nowrap}
.chit-row--soft{font-size:12px;color:var(--brown-500)}
.chit-row--soft .chit-row__leader{border-bottom-color:var(--border-soft)}
.order-chit__rule{border-bottom:1.5px dashed var(--border-soft)}
.order-chit__foot{text-align:center;font-size:11px;letter-spacing:.14em;color:var(--brown-500);padding-top:4px}

/* ---------- Story teaser band ---------- */
.story-band{background:var(--surface-inverse-deep)}
.story-band__in{max-width:var(--container-max);margin:0 auto;padding:76px var(--container-pad);display:flex;flex-direction:column;gap:18px;align-items:flex-start}
.story-band__title{font-size:clamp(30px,4vw,44px);color:var(--text-on-inverse)}
.story-band__copy{font-size:17px;line-height:1.65;color:var(--text-on-inverse-muted);max-width:58ch}

/* ---------- Highlight split ("Hand-swirled, every plate.") ---------- */
.highlight{max-width:var(--container-max);margin:0 auto;padding:92px var(--container-pad) 100px;display:grid;grid-template-columns:1.05fr 1fr;gap:72px;align-items:center}
.highlight__copy{display:flex;flex-direction:column;gap:22px}
.highlight__title{font-size:clamp(34px,4.5vw,52px);line-height:1.08;color:var(--brown-900)}
.highlight__lede{font-size:17px;line-height:1.65;color:var(--text-secondary);max-width:46ch}
.highlight__points{display:flex;flex-direction:column;gap:10px;font-family:var(--font-mono);font-size:12.5px;font-weight:var(--weight-bold);letter-spacing:.1em;color:var(--brown-500)}
.highlight__photo{width:100%;height:430px;object-fit:cover;border-radius:var(--radius-pool);filter:saturate(1.06)}

/* ---------- Page headers (Menu / Contact) ---------- */
.page-head{display:flex;flex-direction:column;gap:16px;align-items:flex-start}
.page-head__title{font-size:clamp(72px,9vw,120px);line-height:.95;letter-spacing:-.02em;color:var(--brown-900)}
.page-head__title--md{font-size:clamp(56px,7vw,96px)}
.page-head__lede{font-size:17px;color:var(--text-secondary);max-width:52ch}

/* ---------- Menu page ---------- */
.menu-wrap{max-width:var(--container-max);margin:0 auto;padding:56px var(--container-pad) 96px;display:flex;flex-direction:column;gap:56px}
.menu-cat{display:flex;flex-direction:column;gap:24px}
.menu-cat__title{font-size:28px;color:var(--brown-900)}
.menu-feature-grid{display:grid;grid-template-columns:380px 1fr;gap:44px;align-items:start}
.menu-rows{display:flex;flex-direction:column;gap:4px;padding-top:6px}
.menu-cols{display:grid;grid-template-columns:1fr 1fr;gap:48px 64px;align-items:start}
.menu-col{display:flex;flex-direction:column;gap:20px}
.menu-col .menu-cat__title{margin-top:20px}
.menu-col .menu-cat__title:first-child{margin-top:0}
.menu-provenance{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.08em;line-height:1.8;color:var(--brown-500);max-width:72ch}

/* ---------- About page ---------- */
.about-hero{max-width:var(--container-max);margin:0 auto;padding:64px var(--container-pad) 88px;display:grid;grid-template-columns:1.1fr 1fr;gap:72px;align-items:center}
.about-hero__copy{display:flex;flex-direction:column;gap:24px}
.about-hero__title{font-size:clamp(52px,6.5vw,88px);line-height:.98;letter-spacing:-.02em;color:var(--brown-900)}
.about-hero__lede{font-size:18px;line-height:1.65;color:var(--text-secondary);max-width:52ch}
.about-hero__body{font-size:17px;line-height:1.65;color:var(--text-secondary);max-width:52ch}
.about-hero__body b,.about-hero__lede b{color:var(--brown-800)}
.about-photo{position:relative}
.about-photo__img{width:100%;height:460px;object-fit:cover;border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}
.placeholder-note{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.08em;line-height:1.8;color:var(--brown-500)}

/* Timeline */
.timeline{max-width:720px;margin:0 auto;padding:0 var(--container-pad) 100px;display:flex;flex-direction:column}
.timeline .omu-swirl{margin-bottom:20px}
.timeline__row{display:flex;align-items:baseline;gap:18px;padding:16px 0;border-bottom:1px dashed var(--border-soft)}
.timeline__row:last-child{border-bottom:0}
.timeline__date{font-family:var(--font-mono);font-size:12.5px;font-weight:var(--weight-bold);letter-spacing:.1em;color:var(--gold-700);width:96px;flex-shrink:0}
.timeline__event{font-size:15.5px;line-height:1.55;color:var(--brown-700)}

/* ---------- Contact page ---------- */
.contact-wrap{max-width:var(--container-max);margin:0 auto;padding:56px var(--container-pad) 100px;display:flex;flex-direction:column;gap:48px}
.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:64px;align-items:start}
.contact-info{display:flex;flex-direction:column;gap:26px}
.contact-actions{display:flex;gap:14px;flex-wrap:wrap}
.contact-social{display:flex;flex-direction:column;gap:8px;font-size:15.5px}
.contact-social__say{color:var(--text-secondary)}
.map-shell{position:relative}
.map-frame{width:100%;height:480px;border:0;border-radius:var(--radius-lg);box-shadow:var(--shadow-card);display:block}

/* ---------- Sticky mobile contact bar ---------- */
.contact-bar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:45;background:var(--cream-200);border-top:1px solid var(--border-soft);box-shadow:0 -8px 24px rgba(90,58,34,.10);padding:10px var(--container-pad);gap:12px}
.contact-bar .omu-btn{flex:1;min-width:0}

/* ============================================================
   Responsive layers
   ============================================================ */
@media (max-width:899px){
  .omu-nav__links{display:none}
  .omu-nav__toggle{display:inline-flex}
  .contact-bar{display:flex}
  body{padding-bottom:82px}

  .home-hero{padding-bottom:64px;gap:36px}
  .home-hero__grid{grid-template-columns:1fr;gap:48px;align-items:start}
  .order-chit{max-width:380px;width:100%;margin:0 auto;transform:rotate(1deg)}

  .highlight{grid-template-columns:1fr;gap:40px;padding-top:64px;padding-bottom:72px}
  .highlight__photo{height:340px}

  .menu-feature-grid{grid-template-columns:1fr;gap:32px}
  .menu-cols{grid-template-columns:1fr;gap:40px}

  .about-hero{grid-template-columns:1fr;gap:44px;padding-top:44px;padding-bottom:64px}
  .about-photo__img{height:340px}

  .contact-grid{grid-template-columns:1fr;gap:44px}
  .map-frame{height:380px}
  .story-band__in{padding-top:60px;padding-bottom:60px}
}

@media (max-width:559px){
  .omu-nav__unit{display:none}
  .omu-nav__in{gap:16px}
}

@media (max-width:639px){
  .home-hero__title{font-size:clamp(64px,21vw,96px)}
  .page-head__title{font-size:clamp(56px,17vw,84px)}
  .page-head__title--md{font-size:clamp(44px,13vw,64px)}
  .about-hero__title{font-size:clamp(44px,13vw,64px)}
  .highlight__photo{height:280px}
  .about-photo__img{height:280px}
  .omu-unittab--overlay{right:20px}
}

@media (max-width:479px){
  .order-chit{transform:none;padding:24px 18px}
  .omu-mrow{flex-wrap:wrap;gap:6px 12px}
  .omu-mrow__name{white-space:normal}
  .contact-actions .omu-btn{width:100%}
  .omu-cym__price{margin-left:0}
}
