/* ============================================================
   2 Chefs Too Many — Changi Village, Singapore (demo site)
   Design system: "2 Chefs Too Many" DS c78ec2b9 (izakaya-at-night).
   Tokens below are encoded VERBATIM from the DS tokens/ folder.
   Fonts load via Google Fonts <link> in each page head (Marcellus +
   Shippori Mincho + Hanken Grotesk — nearest-match substitutes, see SUMMARY).
   ============================================================ */

/* ---------- tokens/colors.css (verbatim) ----------
   Sampled from logo.jfif + menu-graphic.jpg (observed), food photography (observed). */
:root{
/* Ink — sumi charcoal, the house background (menu graphic bg) */
--ink-950:#131009;--ink-900:#1C1812;--ink-800:#272219;--ink-700:#352E23;--ink-600:#4A4133;
/* Aka — logo badge red (observed on signboard + logo) */
--aka-600:#A31E24;--aka-500:#C4262C;--aka-400:#D6393E;
/* Demi — deep demi-glace maroon, menu panel red (observed on menu graphic) */
--demi-900:#451110;--demi-800:#571613;--demi-700:#6E1B18;--demi-600:#83251F;
/* Tamago — egg-yolk & demi-glace golds (from omurice photography) */
--tamago-500:#E8A73C;--tamago-400:#F0B95C;--tamago-600:#C9862A;
/* Cream — logo ring / menu lettering (observed) */
--cream-50:#FAF4E7;--cream-100:#F5ECD9;--cream-200:#EDDFC2;--cream-300:#DEC9A0;
/* Utility */
--white:#FFFFFF;--ok:#5E7A46;--warn:#C9862A;--danger:#C4262C;
/* Semantic — dark house theme (default) */
--bg-page:var(--ink-900);--bg-deep:var(--ink-950);--surface-card:var(--ink-800);--surface-raised:var(--ink-700);--surface-panel:var(--demi-700);--surface-panel-deep:var(--demi-800);
--text-primary:var(--cream-100);--text-secondary:#CBBFA4;--text-muted:#9A8F77;--text-on-red:var(--cream-50);--text-on-gold:var(--ink-950);
--brand:var(--aka-500);--accent:var(--tamago-500);--cta-bg:var(--aka-500);--cta-bg-hover:var(--aka-600);--cta-text:var(--cream-50);
--link:var(--tamago-500);--link-hover:var(--tamago-400);
--border-hairline:rgba(245,236,217,.16);--border-strong:rgba(245,236,217,.34);--border-red:rgba(196,38,44,.5);
--watermark-kana:rgba(110,27,24,.55);--scrim-photo:linear-gradient(180deg,rgba(19,16,9,0) 30%,rgba(19,16,9,.82) 100%);
/* WhatsApp green (declared for the sticky mobile bar; ink text — white fails 4.5:1 on this green) */
--wa-green:#1FA855;
}
/* Paper theme — cream daytime surfaces (logo ring cream). Apply .theme-paper on a section. */
.theme-paper{--bg-page:var(--cream-100);--bg-deep:var(--cream-200);--surface-card:var(--cream-50);--surface-raised:var(--white);--text-primary:#241E14;--text-secondary:#57503F;--text-muted:#7C7360;--border-hairline:rgba(36,30,20,.14);--border-strong:rgba(36,30,20,.3);--watermark-kana:rgba(110,27,24,.09);--link:var(--demi-700);--link-hover:var(--aka-600);background:var(--bg-page);color:var(--text-primary)}

/* ---------- tokens/typography.css (verbatim) ---------- */
:root{
--font-display:'Marcellus',Georgia,serif;
--font-jp:'Shippori Mincho','Marcellus',serif;
--font-body:'Hanken Grotesk','Avenir Next',system-ui,sans-serif;
--text-hero:clamp(44px,7vw,88px);--text-h1:clamp(34px,4.5vw,56px);--text-h2:clamp(26px,3vw,38px);--text-h3:22px;--text-menu-item:19px;--text-body:16.5px;--text-small:14px;--text-eyebrow:12.5px;--text-price:15px;
--track-display:.06em;--track-menu:.09em;--track-eyebrow:.22em;--track-body:0;
--leading-display:1.08;--leading-body:1.62;
--weight-body:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;
}
.type-hero{font-family:var(--font-display);font-size:var(--text-hero);line-height:var(--leading-display);letter-spacing:var(--track-display);font-weight:400}
.type-h1{font-family:var(--font-display);font-size:var(--text-h1);line-height:1.12;letter-spacing:var(--track-display);font-weight:400}
.type-h2{font-family:var(--font-display);font-size:var(--text-h2);line-height:1.18;letter-spacing:var(--track-display);font-weight:400}
.type-menu-item{font-family:var(--font-display);font-size:var(--text-menu-item);letter-spacing:var(--track-menu);text-transform:uppercase;font-weight:400}
.type-eyebrow{font-family:var(--font-body);font-size:var(--text-eyebrow);letter-spacing:var(--track-eyebrow);text-transform:uppercase;font-weight:var(--weight-semibold)}
.type-body{font-family:var(--font-body);font-size:var(--text-body);line-height:var(--leading-body);font-weight:var(--weight-body)}
.type-kana{font-family:var(--font-jp);font-weight:500}

/* ---------- tokens/spacing.css (verbatim) ---------- */
:root{
--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--sp-8:64px;--sp-9:96px;
--container-max:1200px;--container-pad:clamp(20px,5vw,64px);
--radius-sharp:0px;--radius-card:4px;--radius-photo:6px;--radius-pill:999px;
--bw-hairline:1px;--bw-pill:1.5px;--bw-panel-inset:1px;
--shadow-card:0 1px 0 rgba(0,0,0,.4),0 12px 32px -18px rgba(0,0,0,.7);--glow-lantern:0 0 44px -8px rgba(232,167,60,.28);
--ease-out:cubic-bezier(.22,.61,.25,1);
--dur-fast:140ms;
--dur-med:260ms;
}

/* ---------- tokens/base.css (verbatim) + resets ---------- */
body{background:var(--bg-page);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-body);line-height:var(--leading-body);margin:0;-webkit-font-smoothing:antialiased}
a{color:var(--link);text-decoration:none;transition:color var(--dur-fast) var(--ease-out)}
a:hover{color:var(--link-hover)}
::selection{background:var(--demi-700);color:var(--cream-50)}
*,*::before,*::after{box-sizing:border-box}
img{max-width:100%}
:focus-visible{outline:2px solid var(--tamago-500);outline-offset:2px}
.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:var(--tamago-500);color:var(--text-on-gold);padding:10px 18px;border-radius:0 0 var(--radius-card) 0;font-weight:600}
.skip-link:focus{left:0;color:var(--text-on-gold)}
.icon{flex:none;vertical-align:-2px}

/* ============================================================
   COMPONENTS (replicated from _ds_bundle.js specs)
   ============================================================ */

/* --- Button --- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;padding:0 24px;border-radius:var(--radius-pill);font-family:var(--font-body);font-weight:600;font-size:13.5px;letter-spacing:.04em;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out);text-decoration:none;box-sizing:border-box;border:1.5px solid transparent;white-space:nowrap}
.btn--sm{height:34px;padding:0 18px;font-size:12.5px}
.btn--lg{height:50px;padding:0 30px;font-size:15px}
.btn--primary{background:var(--cta-bg);color:var(--cta-text)}
.btn--primary:hover{background:var(--cta-bg-hover);color:var(--cta-text)}
.btn--gold{background:var(--tamago-500);color:var(--text-on-gold)}
.btn--gold:hover{background:var(--tamago-400);color:var(--text-on-gold)}
.btn--secondary{background:transparent;color:var(--cream-100);border-color:var(--border-strong)}
.btn--secondary:hover{background:rgba(245,236,217,.08);color:var(--cream-100)}
.btn--ghost{background:transparent;color:var(--link);padding:0 6px;height:auto}
.btn--ghost:hover{color:var(--link-hover)}
.btn--wa{background:var(--wa-green);color:var(--ink-950)}
.btn--wa:hover{background:var(--wa-green);color:var(--ink-950);filter:brightness(1.06)}

/* --- Tag --- */
.tag{display:inline-flex;align-items:center;gap:6px;padding:3px 12px;border-radius:var(--radius-pill);font-family:var(--font-body);font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;border:1px solid var(--border-strong);color:var(--text-secondary)}
.tag--gold{border:1.5px solid var(--tamago-500);color:var(--tamago-500)}
.tag--demi{background:var(--surface-panel);color:var(--text-on-red);border:1px solid transparent}

/* --- PricePill --- */
.price-pill{display:inline-block;font-family:var(--font-display);font-size:14.5px;letter-spacing:.05em;border:1.5px solid var(--cream-200);border-radius:var(--radius-pill);padding:3px 13px;color:var(--cream-100);white-space:nowrap}
.price-pill--gold{border-color:var(--tamago-500);color:var(--tamago-500)}
.price-pill--lg{font-size:17px;padding:5px 18px}
.price-pill--sm{font-size:13px}

/* --- Divider (skewer motif: rule + three beads + tip) --- */
.divider{display:flex;align-items:center;margin:48px 0}
.divider__line{flex:1;height:1px;background:var(--border-hairline)}
.divider__bead{width:7px;height:7px;border-radius:50%;background:var(--tamago-500);margin:0 5px}
.divider__bead:nth-child(3){opacity:.7}
.divider__bead:nth-child(4){opacity:.45}
.divider__tip{width:0;height:0;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:7px solid var(--border-strong)}

/* --- SectionHeader --- */
.sh{position:relative;text-align:center;padding:8px 0}
.sh--left{text-align:left}
.sh__kana{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:var(--font-jp);font-weight:500;font-size:clamp(64px,9vw,120px);color:var(--watermark-kana);white-space:nowrap;user-select:none;pointer-events:none;line-height:1}
.sh--left .sh__kana{left:0;transform:translateY(-50%)}
.sh__in{position:relative}
.sh__eyebrow{font-family:var(--font-body);font-size:var(--text-eyebrow);letter-spacing:var(--track-eyebrow);text-transform:uppercase;font-weight:600;color:var(--tamago-500);margin-bottom:10px}
.sh__title{font-family:var(--font-display);font-weight:400;font-size:var(--text-h2);line-height:1.18;letter-spacing:var(--track-display);color:var(--text-primary);margin:0}
.sh__sub{font-family:var(--font-body);font-size:var(--text-body);color:var(--text-secondary);max-width:560px;margin:12px auto 0}
.sh--left .sh__sub{margin:12px 0 0}

/* --- LogoCoin (cream coin; logo multiplied so the white box disappears; never tight-cropped) --- */
.logo-coin{width:40px;height:40px;border-radius:50%;background:var(--cream-100);display:inline-flex;align-items:center;justify-content:center;overflow:hidden;flex:none}
.logo-coin img{width:80%;mix-blend-mode:multiply;display:block}
.logo-coin--lg{width:52px;height:52px}

/* --- DishCard --- */
.dish-card{background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-card);overflow:hidden}
.dish-card__media{position:relative;aspect-ratio:4/3;overflow:hidden}
.dish-card__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--dur-med) var(--ease-out)}
.dish-card:hover .dish-card__media img{transform:scale(1.03)}
.dish-card__tag{position:absolute;top:12px;left:12px;background:rgba(19,16,9,.72)}
.dish-card__body{padding:16px 18px 18px}
.dish-card__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.dish-card__name{font-family:var(--font-display);font-size:17px;letter-spacing:.07em;text-transform:uppercase;color:var(--text-primary)}
.dish-card__kana{font-family:var(--font-jp);font-size:11.5px;letter-spacing:.25em;color:var(--text-secondary);margin-top:3px}
.dish-card__desc{font-family:var(--font-body);font-size:13.5px;line-height:1.55;color:var(--text-secondary);margin-top:8px}

/* --- MenuItem --- */
.menu-item{padding:14px 0;border-bottom:1px solid var(--border-hairline)}
.menu-item__row{display:flex;align-items:baseline;gap:14px}
.menu-item__name{font-family:var(--font-display);font-size:var(--text-menu-item);letter-spacing:var(--track-menu);text-transform:uppercase;color:var(--text-primary)}
.menu-item--signature .menu-item__name{color:var(--tamago-500)}
.menu-item__kana{font-family:var(--font-jp);font-size:12px;letter-spacing:.25em;color:var(--text-secondary);white-space:nowrap}
.menu-item__leader{flex:1;border-bottom:1px dotted var(--border-strong);transform:translateY(-4px)}
.menu-item__desc{font-family:var(--font-body);font-size:14px;color:var(--text-secondary);margin-top:6px;max-width:52ch}

/* --- NettBanner --- */
.nett-banner{background:var(--surface-panel);color:var(--text-on-red);text-align:center;padding:12px 20px;font-family:var(--font-display);font-size:14.5px;letter-spacing:.14em;text-transform:uppercase}

/* ============================================================
   NAV
   ============================================================ */
.site-nav{display:flex;align-items:center;gap:28px;padding:14px clamp(20px,4vw,48px);background:rgba(19,16,9,.88);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border-hairline);position:sticky;top:0;z-index:50}
.nav-brand{display:flex;align-items:center;gap:12px;color:var(--cream-100)}
.nav-brand:hover{color:var(--cream-50)}
.nav-brand__word{font-family:var(--font-display);font-size:16px;letter-spacing:.12em;text-transform:uppercase;line-height:1.3}
.nav-links{display:flex;gap:26px;margin-left:auto}
.nav-links a{font-family:var(--font-body);font-size:13.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary);border-bottom:2px solid transparent;padding-bottom:3px}
.nav-links a:hover{color:var(--tamago-400)}
.nav-links a[aria-current="page"]{color:var(--tamago-500);border-bottom-color:var(--tamago-500)}
.nav-toggle{display:none;margin-left:auto;background:transparent;border:1.5px solid var(--border-strong);border-radius:var(--radius-pill);color:var(--cream-100);font-family:var(--font-body);font-size:12.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:8px 16px;cursor:pointer;align-items:center;gap:8px}
.nav-toggle .bars{display:inline-flex;flex-direction:column;gap:3px}
.nav-toggle .bars span{display:block;width:16px;height:2px;background:var(--cream-100)}

/* Mobile drawer — hide-in-place (opacity/visibility), never translateX */
.nav-backdrop{position:fixed;inset:0;background:rgba(19,16,9,.6);z-index:55;opacity:0;visibility:hidden;transition:opacity var(--dur-med) var(--ease-out),visibility var(--dur-med) var(--ease-out)}
.nav-backdrop[data-open="true"]{opacity:1;visibility:visible}
.nav-drawer{position:fixed;top:0;right:0;bottom:0;width:min(320px,86vw);background:var(--bg-deep);border-left:1px solid var(--border-strong);z-index:60;padding:20px 22px 28px;display:flex;flex-direction:column;gap:4px;opacity:0;visibility:hidden;transition:opacity var(--dur-med) var(--ease-out),visibility var(--dur-med) var(--ease-out);overflow-y:auto}
.nav-drawer[data-open="true"]{opacity:1;visibility:visible}
.drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.drawer-close{background:transparent;border:0;color:var(--cream-100);font-size:30px;line-height:1;cursor:pointer;padding:4px 10px}
.drawer-link{display:block;padding:13px 4px;border-bottom:1px solid var(--border-hairline);font-family:var(--font-display);font-size:19px;letter-spacing:.09em;text-transform:uppercase;color:var(--cream-100)}
.drawer-link:hover{color:var(--tamago-400)}
.drawer-link[aria-current="page"]{color:var(--tamago-500)}
.drawer-cta{margin-top:20px;display:flex;flex-direction:column;gap:12px}
.drawer-cta .btn{width:100%}
.drawer-note{font-family:var(--font-body);font-size:13px;color:var(--text-muted);margin:0;text-align:center}

/* ============================================================
   HOME
   ============================================================ */
.hero{display:grid;grid-template-columns:minmax(440px,600px) 1fr;min-height:640px}
.hero__panel{position:relative;overflow:hidden;background:var(--demi-700);display:flex;flex-direction:column;justify-content:center;padding:72px 64px}
.hero__kana{position:absolute;right:-14px;top:10px;writing-mode:vertical-rl;font-family:var(--font-jp);font-weight:500;font-size:150px;line-height:1;letter-spacing:.08em;color:rgba(69,17,16,.6);pointer-events:none;user-select:none}
.hero__in{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:22px}
.hero__tagrow{display:flex;align-items:center;gap:14px}
.hero__tagkana{font-family:var(--font-jp);font-size:13px;letter-spacing:.3em;color:var(--cream-300)}
.hero__title{margin:0;font-family:var(--font-display);font-weight:400;text-transform:uppercase;letter-spacing:.08em;line-height:1.08;color:var(--cream-50);font-size:clamp(44px,4.3vw,56px)}
.hero__desc{margin:0;font-family:var(--font-body);font-size:16.5px;line-height:1.62;color:var(--cream-200);max-width:42ch}
.hero__pricerow{display:flex;align-items:center;gap:18px}
.hero__nett{font-family:var(--font-body);font-size:13px;line-height:1.5;color:var(--cream-300);max-width:22ch}
.hero__ctas{display:flex;flex-direction:column;align-items:flex-start;gap:16px;margin-top:10px}
.hero__meta{color:rgba(245,236,217,.6)}
.hero__photo{position:relative;overflow:hidden;border-left:1px solid var(--border-hairline);background:var(--ink-800)}
.hero__photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

.container{max-width:var(--container-max);margin:0 auto;padding-left:var(--container-pad);padding-right:var(--container-pad)}
.section-story{padding-top:96px}
.split{display:grid;grid-template-columns:1fr 1.1fr;gap:56px;align-items:center}
.split__copy{display:flex;flex-direction:column;align-items:flex-start;gap:24px}
.photo-frame{position:relative}
.photo-frame img{display:block;width:100%;height:340px;object-fit:cover;object-position:50% 30%;border-radius:var(--radius-photo);box-shadow:var(--shadow-card)}
.photo-frame__kana{position:absolute;left:14px;bottom:12px;font-family:var(--font-jp);font-size:12.5px;letter-spacing:.3em;color:var(--cream-100);text-shadow:0 1px 8px rgba(0,0,0,.8)}

.band{background:var(--bg-deep);border-top:1px solid var(--border-hairline);margin-top:96px}
.band__in{max-width:880px;margin:0 auto;padding:88px var(--container-pad) 96px;text-align:center}
.band__cols{display:grid;grid-template-columns:repeat(3,1fr);margin-top:56px}
.band__col{display:flex;flex-direction:column;gap:8px;padding:4px 28px}
.band__col + .band__col{border-left:1px solid var(--border-hairline)}
.band__big{font-family:var(--font-display);font-size:23px;letter-spacing:.05em;color:var(--cream-100)}
.band__small{font-family:var(--font-body);font-size:13px;color:var(--text-muted)}

/* ============================================================
   MENU PAGE
   ============================================================ */
.menu-head{padding-top:80px}
.dish-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}
.menu-cols{display:grid;grid-template-columns:1fr 1fr;column-gap:72px;row-gap:64px;padding-bottom:8px}
.menu-col__head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;border-bottom:1px solid var(--border-strong);padding-bottom:12px;margin-bottom:8px}
.menu-col__title{margin:0;font-family:var(--font-display);font-size:22px;letter-spacing:var(--track-menu);text-transform:uppercase;font-weight:400;color:var(--cream-100)}
.menu-col__kana{font-family:var(--font-jp);font-size:13px;letter-spacing:.24em;color:var(--tamago-500)}
.menu-cta{display:flex;flex-direction:column;align-items:center;gap:18px;padding:56px 0 88px;text-align:center}
.menu-provenance{font-family:var(--font-body);font-size:13px;color:var(--text-muted);margin:0;max-width:56ch}

/* ============================================================
   ABOUT PAGE
   ============================================================ */
.about-head{max-width:820px;margin:0 auto;padding:88px var(--container-pad) 0}
.about-prose{display:flex;flex-direction:column;gap:22px;margin-top:36px;max-width:640px}
.about-prose p{margin:0;font-family:var(--font-body);font-size:17px;line-height:1.7;color:var(--text-secondary)}
.about-photo{padding-top:72px}
.about-photo .photo-frame img{height:420px;object-position:50% 50%}
.house-rule-wrap{padding-top:72px;padding-bottom:96px}
.house-rule{position:relative;overflow:hidden;background:var(--demi-700);border-radius:var(--radius-card);padding:64px clamp(32px,6vw,88px);display:flex;flex-direction:column;align-items:flex-start;gap:18px}
.house-rule__kana{position:absolute;right:-10px;top:-24px;writing-mode:vertical-rl;font-family:var(--font-jp);font-weight:500;font-size:130px;line-height:1;letter-spacing:.08em;color:rgba(69,17,16,.6);pointer-events:none;user-select:none}
.house-rule__eyebrow{position:relative;color:var(--cream-300)}
.house-rule__title{position:relative;margin:0;font-family:var(--font-display);font-weight:400;font-size:clamp(28px,3vw,38px);line-height:1.2;letter-spacing:.04em;color:var(--cream-50);max-width:20ch}
.house-rule__body{position:relative;margin:0;font-family:var(--font-body);font-size:16.5px;line-height:1.62;color:var(--cream-200);max-width:52ch}
.house-rule__cta{position:relative;margin-top:8px}

/* ============================================================
   CONTACT PAGE
   ============================================================ */
.contact-wrap{padding-top:80px;padding-bottom:96px}
.contact-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:64px;margin-top:48px;align-items:start}
.contact-col{display:flex;flex-direction:column;gap:36px}
.contact-block{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.contact-block__label{display:inline-flex;align-items:center;gap:8px;color:var(--tamago-500)}
.contact-block__text{margin:0;font-family:var(--font-body);font-size:16.5px;line-height:1.62;color:var(--cream-100)}
.contact-link{font-family:var(--font-body);font-size:14px;font-weight:600;letter-spacing:.04em}
.contact-note{font-family:var(--font-body);font-size:13px;color:var(--text-muted)}
.hours{display:flex;flex-direction:column;gap:2px;align-self:stretch}
.hours__row{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-top:1px solid var(--border-hairline)}
.hours__row:last-of-type{border-bottom:1px solid var(--border-hairline)}
.hours__day{font-family:var(--font-body);font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--cream-100)}
.hours__time{font-family:var(--font-body);font-size:14.5px;color:var(--text-secondary);text-align:right}
.hours__row--muted .hours__day,.hours__row--muted .hours__time{color:var(--text-muted)}
.hours__note{font-family:var(--font-body);font-size:13px;color:var(--text-muted);margin:10px 0 0}
.social-list{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.social-list a{font-family:var(--font-body);font-size:15px;line-height:1.9;font-weight:600;letter-spacing:.02em;display:inline-flex;align-items:center;gap:8px}
.contact-media{display:flex;flex-direction:column;gap:18px}
.map-frame{width:100%;height:440px;border:1px solid var(--border-hairline);border-radius:var(--radius-photo);display:block;filter:saturate(.85) contrast(.97)}
.contact-media .photo-frame img{height:210px;box-shadow:var(--glow-lantern)}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{background:var(--bg-deep);border-top:1px solid var(--border-hairline);padding:56px clamp(20px,4vw,48px) 0}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;max-width:var(--container-max);margin:0 auto}
.footer-brand__row{display:flex;align-items:center;gap:14px}
.footer-brand__word{font-family:var(--font-display);font-size:17px;letter-spacing:.12em;text-transform:uppercase;color:var(--cream-100);line-height:1.35}
.footer-brand p{font-family:var(--font-body);font-size:14px;line-height:2;color:var(--text-secondary);margin:16px 0 0;max-width:300px}
.footer-col__head{font-family:var(--font-body);font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--tamago-500);margin-bottom:14px}
.footer-col__body{font-family:var(--font-body);font-size:14px;line-height:2;color:var(--text-secondary)}
.footer-col__body a{color:var(--text-secondary)}
.footer-col__body a:hover{color:var(--tamago-400)}
.footer-pages{display:flex;flex-direction:column;font-family:var(--font-body);font-size:14px;line-height:2}
.footer-pages a{color:var(--text-secondary)}
.footer-pages a:hover{color:var(--tamago-400)}
.footer-bottom{max-width:var(--container-max);margin:40px auto 0;padding:18px 0;border-top:1px solid var(--border-hairline);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;font-family:var(--font-body);font-size:13px;color:var(--text-muted)}
.footer-bottom__kana{font-family:var(--font-jp);letter-spacing:.3em}

/* Sticky mobile bar */
.mobile-bar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:45;background:rgba(19,16,9,.96);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--border-hairline);padding:10px 14px calc(10px + env(safe-area-inset-bottom));gap:10px}
.mobile-bar .btn{flex:1}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:900px){
  .nav-links,.site-nav .nav-cta{display:none}
  .nav-toggle{display:inline-flex}
  .hero{grid-template-columns:1fr;min-height:0}
  .hero__panel{padding:64px 28px}
  .hero__photo{border-left:0;border-top:1px solid var(--border-hairline);aspect-ratio:16/10}
  .hero__photo img{position:static}
  .section-story{padding-top:72px}
  .split{grid-template-columns:1fr;gap:32px}
  .band{margin-top:72px}
  .band__cols{grid-template-columns:1fr;margin-top:40px;gap:0}
  .band__col{padding:18px 8px}
  .band__col + .band__col{border-left:0;border-top:1px solid var(--border-hairline)}
  .dish-grid{grid-template-columns:1fr;gap:20px}
  .menu-cols{grid-template-columns:1fr;row-gap:48px;column-gap:0}
  .contact-grid{grid-template-columns:1fr;gap:44px}
  .map-frame{height:340px}
  .footer-grid{grid-template-columns:1fr 1fr}
  .footer-bottom{justify-content:center;text-align:center}
  .mobile-bar{display:flex}
  body{padding-bottom:74px}
}
@media (max-width:480px){
  .hero__panel{padding:56px 22px}
  .hero__kana{font-size:110px;right:-10px}
  .menu-item__kana{display:none}
  .footer-grid{grid-template-columns:1fr;gap:28px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms !important;animation-duration:.01ms !important}
}
