*,*::before,*::after{box-sizing:border-box}
:root{
  --ink:#14110F; --ink2:#221D1A; --washi:#F7F4EF; --washi2:#EFEAE2;
  --tx:#1A1613; --mut:#6B615A; --rule:#D8D0C6; --verm:#C0332B; --verm2:#A22821;
  --hdr:64px;
}
html,body{max-width:100%;overflow-x:hidden}
html{scroll-behavior:smooth}
body{margin:0;background:var(--washi);color:var(--tx);
  font-family:"Zen Kaku Gothic New",system-ui,sans-serif;font-size:16px;line-height:1.65;
  -webkit-font-smoothing:antialiased}
img,svg{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:Oswald,"Zen Kaku Gothic New",sans-serif;margin:0;font-weight:600;letter-spacing:-.01em;line-height:1.04}
p{margin:0}
ul{margin:0;padding:0;list-style:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-9999px;top:0;background:var(--verm);color:#fff;padding:10px 16px;z-index:200}
.skip:focus{left:8px;top:8px}
a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--verm);outline-offset:3px}
.wrap{max-width:1240px;margin:0 auto;padding:0 clamp(20px,5vw,48px)}

/* BUTTONS (declared early so layout rules can override display) */
.btn{display:inline-block;text-decoration:none;font-weight:700;font-size:.95rem;padding:14px 24px;border-radius:2px;min-height:44px;line-height:1.2}
.btn--call{background:var(--verm);color:#fff;transition:background .2s,transform .2s}
.btn--call:hover{background:var(--verm2);transform:translateY(-1px)}
.btn--lg{font-size:1.05rem;padding:16px 30px}
.txtlink{color:#fff;text-decoration:none;border-bottom:2px solid var(--verm);padding-bottom:3px;font-weight:500}
.txtlink:hover{border-color:#fff}

/* HEADER */
.hdr{position:sticky;top:0;z-index:100;background:transparent;transition:background .3s,box-shadow .3s}
.hdr__in{max-width:1240px;margin:0 auto;padding:10px clamp(16px,4vw,32px);display:flex;align-items:center;gap:12px;min-width:0}
.hdr .brand{display:flex;align-items:center;gap:10px;text-decoration:none;min-width:0}
.brand__mark{width:34px;height:34px;object-fit:cover;background:#fff;border-radius:2px;flex:none}
.brand__txt{font-family:Oswald,sans-serif;font-weight:600;text-transform:uppercase;font-size:.86rem;line-height:1;color:#fff;letter-spacing:.02em;white-space:nowrap}
.brand__txt span{display:block;font-weight:400;font-size:.6rem;letter-spacing:.16em;color:rgba(255,255,255,.72);margin-top:3px}
.nav{display:none;align-items:center;gap:24px;margin-left:auto;min-width:0}
.nav a{color:rgba(255,255,255,.86);text-decoration:none;font-size:.9rem}
.nav a:hover{color:#fff}
.nav__title{font-size:.86rem!important;letter-spacing:.01em;opacity:.78}
.hdr .hdr__cta{display:none}
.hdr.solid{background:rgba(20,17,15,.96);box-shadow:0 1px 0 rgba(255,255,255,.12)}
.hdr.solid .hdr__in{padding-top:6px;padding-bottom:6px}
.burger{margin-left:auto;background:none;border:1px solid rgba(255,255,255,.45);color:#fff;
  font:500 .74rem/1 "Zen Kaku Gothic New",sans-serif;letter-spacing:.08em;text-transform:uppercase;
  padding:12px 14px;border-radius:2px;cursor:pointer;min-height:44px;white-space:nowrap;flex:none}

/* MOBILE NAV OVERLAY */
.mobnav{position:fixed;inset:0;z-index:150;background:var(--ink);display:flex;align-items:center;justify-content:center}
.mobnav[hidden]{display:none}
.mobnav__in{display:flex;flex-direction:column;gap:20px;text-align:center;padding:24px;align-items:center}
.mobnav__logo{width:56px;height:60px;object-fit:cover;background:#fff;margin-bottom:8px}
.mobnav a{color:#fff;text-decoration:none;font-family:Oswald,sans-serif;font-size:clamp(1.35rem,7vw,1.7rem);text-transform:uppercase}
.mobnav .btn{font-family:"Zen Kaku Gothic New",sans-serif;font-size:1rem;text-transform:none;margin-top:8px}

/* HERO */
.hero{position:relative;background:#14110F;min-height:min(96vh,860px);display:flex;align-items:flex-end;margin-top:calc(-1 * var(--hdr));padding-top:var(--hdr);overflow:hidden}
.hero__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:42% 48%}
.hero__scrim{position:absolute;inset:0;background:
  linear-gradient(to top,rgba(13,10,8,.95) 0%,rgba(13,10,8,.8) 40%,rgba(20,16,12,.44) 74%,rgba(20,16,12,.66) 100%)}
.hero__in{position:relative;max-width:1240px;margin:0 auto;width:100%;padding:110px clamp(20px,5vw,48px) clamp(52px,7vw,86px)}
.hero__locate{color:#fff;font-size:clamp(.8rem,2.4vw,.98rem);margin-bottom:20px}
.hero__locate span{border-bottom:2px solid var(--verm);padding-bottom:4px}
.hero__h1{color:#fff;text-transform:uppercase;font-weight:700;
  font-size:clamp(2rem,6.2vw,5.1rem);line-height:.98;max-width:16ch;text-wrap:balance;
  text-shadow:0 2px 30px rgba(0,0,0,.35)}
.hero__meta{margin-top:clamp(26px,4vw,42px);display:flex;flex-wrap:wrap;gap:26px 48px;align-items:flex-end;border-top:1px solid rgba(255,255,255,.22);padding-top:24px}
.hero__hours{color:rgba(255,255,255,.84);font-size:.94rem;min-width:0}
.hero__open{font-family:Oswald,sans-serif;text-transform:uppercase;color:#fff;font-size:1.12rem;letter-spacing:.01em;margin-bottom:6px}
.hero__open::before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--verm);margin-right:9px;vertical-align:middle}
.hero__phones{margin-top:8px}
.hero__phones a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.4)}
.hero__acts{display:flex;flex-wrap:wrap;align-items:center;gap:16px 26px}

/* SECTION HEADS */
.sec-h{font-family:Oswald,sans-serif;text-transform:uppercase;font-weight:600;font-size:clamp(1.7rem,4.6vw,3rem)}
.sec-h--big{font-size:clamp(2.2rem,7vw,4.4rem)}
.sec-h--light{color:#fff}
.sec-sub{color:var(--mut);margin-top:12px;max-width:56ch}

/* NOTE BAND */
.note{background:var(--washi2);padding:clamp(72px,10vw,140px) 0;position:relative}
.note__grid{display:grid;gap:0;grid-template-columns:1fr}
.note__photo{margin:0}
.note__photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 55%;box-shadow:0 26px 60px rgba(20,17,15,.22)}
.note__panel{background:var(--washi);padding:clamp(26px,5vw,52px);border-left:3px solid var(--verm);margin:-40px 0 0 clamp(14px,5vw,0px);position:relative;z-index:2;box-shadow:0 18px 50px rgba(20,17,15,.14)}
.note__h{font-size:clamp(1.5rem,4vw,2.2rem);text-transform:uppercase}
.note__lead{font-size:clamp(1.08rem,2.4vw,1.42rem);line-height:1.45;margin-top:16px;max-width:30ch;font-weight:500}
.note__sub{color:var(--mut);margin-top:16px;max-width:44ch}
.facts{margin-top:30px;display:grid;gap:0;border-top:1px solid var(--rule)}
.facts li{padding:15px 0;border-bottom:1px solid var(--rule);display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.facts strong{font-family:Oswald,sans-serif;font-size:1.45rem;font-weight:600;color:var(--verm);text-transform:uppercase;min-width:0}
.facts span{color:var(--mut);font-size:.9rem}

/* GALLERY */
.gal{padding:clamp(72px,10vw,140px) 0;background:var(--washi)}
.mosaic{margin-top:34px;display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.m{margin:0;position:relative;overflow:hidden;background:var(--ink)}
.m img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease;aspect-ratio:1/1}
.m--ink img{object-fit:contain;background:#fff;padding:10px}
.m figcaption{position:absolute;left:0;right:0;bottom:0;padding:14px 14px 12px;color:#fff;font-size:.78rem;
  background:linear-gradient(to top,rgba(13,10,8,.92),rgba(13,10,8,0));opacity:0;transform:translateY(6px);transition:.3s}
.m:hover img,.m:focus-within img{transform:scale(1.06)}
.m:hover figcaption,.m:focus-within figcaption{opacity:1;transform:none}
@media (hover:none){ .m figcaption{opacity:1;transform:none} }
.gal__cta{margin-top:30px}

/* MENU */
.menu{background:var(--washi2);padding:clamp(64px,9vw,120px) 0 clamp(72px,10vw,130px)}
.menu__head{text-align:center}
.menu__sub{margin-top:12px;font-size:1.02rem}
.menu__note{margin-top:6px;color:var(--mut);font-size:.86rem}
.menu__legend{margin-top:10px;color:var(--mut);font-size:.8rem}
.veg-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--verm);vertical-align:middle;margin-right:6px}
.tabbar{position:sticky;top:calc(var(--hdr) - 8px);z-index:60;background:var(--ink);margin-top:32px;box-shadow:0 10px 26px rgba(20,17,15,.14)}
.tabbar__wrap{display:flex;align-items:center;gap:12px;min-width:0}
.tabs{display:flex;gap:2px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex:1 1 auto;min-width:0;padding:7px 0}
.tabs::-webkit-scrollbar{display:none}
.tabs a{flex:none;white-space:nowrap;color:rgba(255,255,255,.74);text-decoration:none;
  font-family:Oswald,sans-serif;text-transform:uppercase;font-size:.78rem;letter-spacing:.04em;
  padding:9px 11px;border-radius:2px;min-height:40px;display:flex;align-items:center}
.tabs a:hover{color:#fff;background:rgba(255,255,255,.08)}
.tabs a[aria-current="true"]{background:var(--verm);color:#fff}
.filter{display:none;flex:none}
.filter input{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.22);color:#fff;
  padding:9px 12px;border-radius:2px;font:400 .85rem/1.3 "Zen Kaku Gothic New",sans-serif;width:150px;max-width:100%}
.filter input::placeholder{color:rgba(255,255,255,.5)}

.grp{padding-top:clamp(46px,7vw,80px);scroll-margin-top:calc(var(--hdr) + 62px)}
.grp__h{text-transform:uppercase;font-size:clamp(1.25rem,3.4vw,2rem);border-bottom:2px solid var(--ink);padding-bottom:10px;overflow-wrap:break-word}
.grp__h em{font-style:normal;font-weight:400;font-size:.62em;color:var(--mut);letter-spacing:0}
.grp__note{color:var(--mut);font-size:.86rem;margin-top:8px}
.ledger{margin-top:20px;display:grid;grid-template-columns:1fr;gap:0 clamp(28px,4vw,56px)}
.it{min-width:0}
.ledger .it{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:baseline;gap:0 8px;
  padding:13px 0;border-bottom:1px solid var(--rule)}
.it__l{min-width:0}
.it__n{font-family:Oswald,sans-serif;font-weight:500;font-size:1.02rem;letter-spacing:.005em;overflow-wrap:break-word}
.it__d{color:var(--mut);font-size:.85rem;line-height:1.5;margin-top:2px;overflow-wrap:break-word}
.ledger .it__p{font-weight:700;font-size:.95rem;color:var(--tx);display:flex;flex-direction:column;align-items:flex-end;gap:2px;white-space:nowrap}
.it__p em{font-style:normal;font-weight:400;color:var(--mut);font-size:.72rem;white-space:normal;text-align:right;max-width:11ch;line-height:1.3}
.dots{border-bottom:1px dotted var(--rule);min-width:14px;transform:translateY(-4px)}
.veg .it__n::after,.chips .veg .it__n::after{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--verm);margin-left:7px;vertical-align:middle}
.chips{margin-top:20px;display:grid;grid-template-columns:repeat(2,1fr);gap:0 clamp(18px,3vw,44px)}
.chips .it{display:flex;justify-content:space-between;gap:10px;align-items:baseline;padding:11px 0;border-bottom:1px solid var(--rule)}
.chips .it__n{font-family:Oswald,sans-serif;font-weight:500;font-size:.93rem;min-width:0;overflow-wrap:break-word}
.chips .it__p{font-weight:700;font-size:.9rem;white-space:nowrap}
.grp__split{display:grid;gap:22px}
.grp__fig{margin:0}
.grp__fig img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 55%;box-shadow:0 18px 44px rgba(20,17,15,.18)}
.grp__fig figcaption,.sig__fig figcaption{color:var(--mut);font-size:.78rem;margin-top:8px}
.sig{display:grid;gap:20px;margin-top:22px}
.sig__cards{display:grid;gap:14px}
.sig__c{background:var(--ink2);color:#fff;padding:24px;border-left:3px solid var(--verm);box-shadow:0 16px 40px rgba(20,17,15,.18)}
.sig__c .it__n{font-size:1.25rem;color:#fff;text-transform:uppercase}
.sig__c .it__d{color:rgba(255,255,255,.75);margin-top:10px}
.sig__c .it__p{color:#fff;margin-top:14px;font-size:1.1rem;font-weight:700}
.sig__fig img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:50% 55%;box-shadow:0 16px 40px rgba(20,17,15,.18)}
.menu__ask{margin-top:clamp(44px,6vw,72px);border-top:3px solid var(--verm);padding-top:20px;
  font-size:clamp(1rem,2.4vw,1.25rem);text-align:center}
.it.hide{display:none}
.grp.hide{display:none}

/* CONTACT */
.contact{background:var(--ink);color:#fff;padding:clamp(72px,10vw,130px) 0}
.ct__top{display:grid;gap:14px;max-width:1240px}
.ct__intro{color:rgba(255,255,255,.7);max-width:52ch}
.ct__grid{display:grid;gap:24px;margin-top:34px}
.ct__card{background:var(--ink2);padding:clamp(22px,4vw,36px);border:1px solid rgba(255,255,255,.1)}
.ct__map{position:relative;height:150px;margin:-6px 0 26px;border:1px solid rgba(255,255,255,.14);overflow:hidden;
  background:
   repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0 1px,transparent 1px 34px),
   repeating-linear-gradient(0deg,rgba(255,255,255,.05) 0 1px,transparent 1px 34px),
   linear-gradient(115deg,#1b1614,#241d19)}
.ct__map::before{content:"";position:absolute;left:0;right:0;top:52%;height:14px;background:rgba(255,255,255,.09);transform:skewY(-2deg)}
.ct__map::after{content:"";position:absolute;top:0;bottom:0;left:34%;width:10px;background:rgba(255,255,255,.07)}
.ct__pin{position:absolute;left:34%;top:52%;width:14px;height:14px;border-radius:50%;background:var(--verm);
  box-shadow:0 0 0 6px rgba(192,51,43,.25);transform:translate(-50%,-50%)}
.ct__ave{position:absolute;left:34%;top:12px;transform:translateX(-50%);font-family:Oswald,sans-serif;font-size:.6rem;letter-spacing:.2em;color:rgba(255,255,255,.5)}
.ct__st{position:absolute;right:10px;top:52%;transform:translateY(-50%);font-family:Oswald,sans-serif;font-size:.6rem;letter-spacing:.2em;color:rgba(255,255,255,.5)}
.ct__h{font-family:Oswald,sans-serif;text-transform:uppercase;font-size:1.02rem;letter-spacing:.08em;color:var(--verm);margin:22px 0 10px}
.ct__card .ct__h:first-of-type,.ct__info .ct__h:first-of-type{margin-top:0}
.contact p{color:rgba(255,255,255,.84);font-size:.98rem}
.contact a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.32)}
.contact a:hover{border-color:var(--verm)}
.ct__addr{font-size:1.05rem}
.ct__dir{margin-top:18px}
.ct__dir a{border:0;color:var(--verm);font-weight:700}
.ct__side{display:grid;gap:22px;align-content:start}
.ct__photo{margin:0}
.ct__photo img{width:100%;aspect-ratio:16/10;object-fit:cover;object-position:42% 48%}
.ct__cta{margin-top:26px}
.ct__cta a{border:0}

/* FOOTER */
.ft{background:var(--ink);color:rgba(255,255,255,.7);padding:clamp(46px,7vw,80px) 0 110px;position:relative;overflow:hidden;border-top:1px solid rgba(255,255,255,.1)}
.ft__wm{position:absolute;right:-40px;bottom:-20px;width:min(520px,80%);opacity:.07;filter:invert(1);pointer-events:none}
.ft__in{position:relative;display:grid;gap:16px;justify-items:start;text-align:left}
.ft__logo{width:56px;height:60px;object-fit:cover;background:#fff}
.ft__line{font-size:.92rem}
.ft__line a,.ft__nav a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.3)}
.ft__nav{display:flex;flex-wrap:wrap;gap:10px 20px;font-size:.9rem}
.ft__nav a{font-family:"Zen Kaku Gothic New",sans-serif;text-transform:none}
.ft__cr{font-size:.8rem;color:rgba(255,255,255,.45)}

/* MOBILE CALL BAR */
.callbar{position:fixed;left:0;right:0;bottom:0;z-index:120;background:var(--verm);color:#fff;
  text-align:center;text-decoration:none;font-weight:700;padding:15px 12px calc(15px + env(safe-area-inset-bottom));
  box-shadow:0 -6px 24px rgba(0,0,0,.25)}

/* REVEAL */
.reveal{opacity:0;transform:translateY(18px)}
.reveal.in{opacity:1;transform:none;transition:opacity .45s ease,transform .45s ease}

/* RESPONSIVE */
@media (min-width:600px){
  .chips{grid-template-columns:repeat(3,1fr)}
  .mosaic{grid-template-columns:repeat(3,1fr);gap:10px}
  .m--a{grid-column:span 2;grid-row:span 2}
  .m--a img{aspect-ratio:auto;height:100%}
}
@media (min-width:768px){
  :root{--hdr:74px}
  .ledger{grid-template-columns:1fr 1fr}
  .ledger--one{grid-template-columns:1fr}
  .grp__split{grid-template-columns:1.25fr .75fr;align-items:start;gap:34px}
  .sig{grid-template-columns:1.3fr .7fr;align-items:start;gap:28px}
  .sig__cards{gap:18px}
  .ct__grid{grid-template-columns:1.05fr .95fr;gap:34px}
  .filter{display:block}
  .note__grid{grid-template-columns:1.05fr .95fr;align-items:center}
  .note__photo img{aspect-ratio:3/4}
  .note__panel{margin:0 0 0 -80px;box-shadow:0 26px 70px rgba(20,17,15,.18)}
  .facts{grid-template-columns:1fr}
}
@media (min-width:960px){
  .nav{display:flex}
  .hdr .hdr__cta{display:inline-block;padding:11px 20px;font-size:.88rem;margin-left:22px;flex:none}
  .burger{display:none}
  .callbar{display:none}
  .ft{padding-bottom:clamp(46px,7vw,80px)}
  .chips{grid-template-columns:repeat(4,1fr)}
  .mosaic{grid-template-columns:repeat(4,1fr)}
  .m--a{grid-column:span 2;grid-row:span 2}
  .m--d{grid-row:span 2}
  .m--d img{aspect-ratio:auto;height:100%}
  .m--i{grid-column:span 2}
  .m--i img{aspect-ratio:2/1}
  .ft__in{grid-template-columns:auto 1fr;align-items:center;column-gap:28px}
  .ft__logo{grid-row:span 3}
  .ct__top{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:end;gap:30px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
  .reveal{opacity:1;transform:none}
  .m:hover img{transform:none}
}
@media print{
  .hdr,.tabbar,.callbar,.hero,.gal,.contact,.mobnav{display:none!important}
  body{background:#fff}
  .menu{padding:0}
  .ledger{grid-template-columns:1fr 1fr}
}