
:root{
  --paper:#fbfaf7; --paper-2:#f3f0e9; --sand:#efe7da; --sage:#e3ece9;
  --ink:#1b2729; --ink-2:#42565a; --slate:#4c6971; --teal:#0c7c8a; --teal-d:#095c66;
  --line:#e3ddd2; --line-2:#cfd8d6;
  --f-d:'Josefin Sans',system-ui,sans-serif;
  --f-b:'Montserrat',system-ui,sans-serif;
  --e:cubic-bezier(.22,1,.36,1);
  --gut:clamp(20px,5vw,88px);
  --sh:0 1px 2px rgba(27,39,41,.04),0 12px 34px -18px rgba(27,39,41,.22);
}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-b);font-weight:400;
  font-size:clamp(14.5px,1vw,16px);line-height:1.78;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--f-d);font-weight:300;margin:0;line-height:1.05;letter-spacing:.005em}
strong,b{font-weight:600}
::selection{background:var(--teal);color:#fff}
section{padding:clamp(64px,8.5vw,140px) var(--gut);position:relative}
.wrap{max-width:1320px;margin:0 auto}
.rule{height:1px;background:var(--line);margin-inline:var(--gut)}

/* nav ---------------------------------------------------------------------*/
.nav{position:fixed;inset:0 0 auto;z-index:800;display:flex;align-items:center;
  justify-content:space-between;gap:16px;padding:16px var(--gut);
  border-bottom:1px solid transparent;transition:padding .4s var(--e),border-color .4s}
.nav::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(251,250,247,.72);
  backdrop-filter:blur(16px);transition:background .4s var(--e)}
.nav.stuck{padding:9px var(--gut);border-bottom-color:var(--line)}
.nav.stuck::before{background:rgba(251,250,247,.93)}
body{padding-top:78px}
.brand{display:flex;align-items:center;gap:11px}
.brand .mk{width:42px;height:42px;border-radius:50%;background:var(--slate);display:grid;
  place-items:center;flex:0 0 auto}
.brand .mk img{width:34px}
.brand b{font-family:var(--f-d);font-weight:400;font-size:20px;letter-spacing:.06em;display:block;line-height:1.1}
.brand small{font-size:8.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--teal);font-weight:600}
.links{display:flex;gap:26px;align-items:center}
.links a{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;color:var(--ink-2);
  position:relative;padding:5px 0;transition:color .3s}
.links a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--teal);
  transition:right .4s var(--e)}
.links a:hover{color:var(--teal)}
.links a:hover::after,.links a[aria-current]::after{right:0}
.links a[aria-current]{color:var(--teal)}
.navcta{background:var(--teal);color:#fff!important;padding:11px 20px!important;border-radius:2px;
  font-weight:600;letter-spacing:.12em!important}
.navcta::after{display:none}
.navcta:hover{background:var(--teal-d)}
.burger{display:none;border:1px solid var(--line-2);background:none;border-radius:2px;padding:9px 14px;
  font-family:var(--f-b);font-size:11px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
@media(max-width:1080px){
  .links{position:fixed;inset:70px 0 0;background:var(--paper);flex-direction:column;justify-content:center;
    gap:22px;transform:translateY(-102%);transition:transform .55s var(--e);border-top:1px solid var(--line)}
  .links.open{transform:none}
  .links a{font-size:16px}
  .burger{display:block}
}

/* type --------------------------------------------------------------------*/
.label{font-size:10.5px;letter-spacing:.34em;text-transform:uppercase;color:var(--teal);font-weight:600;
  display:flex;align-items:center;gap:12px}
.label::before{content:"";width:26px;height:1px;background:var(--teal)}
.label.plain::before{display:none}
.d1{font-size:clamp(40px,6.4vw,92px);font-weight:200;letter-spacing:-.01em}
.hero .d1{font-size:clamp(34px,4.7vw,70px)}
.h2{font-size:clamp(30px,4.4vw,62px);font-weight:200}
.h3{font-size:clamp(22px,2.3vw,34px);font-weight:300}
.lead{font-size:clamp(16px,1.25vw,19px);line-height:1.78;color:var(--ink-2);max-width:64ch;font-weight:400}
.small{font-size:13px;color:var(--ink-2)}
.center{text-align:center}
.center .label{justify-content:center}

/* buttons -----------------------------------------------------------------*/
.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 26px;border-radius:2px;
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;
  background:var(--teal);color:#fff;border:1px solid var(--teal);
  transition:background .3s var(--e),color .3s,border-color .3s,transform .3s var(--e)}
.btn:hover{background:var(--teal-d);border-color:var(--teal-d);transform:translateY(-2px)}
.btn.line{background:none;color:var(--ink);border-color:var(--line-2)}
.btn.line:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.btn.slate{background:var(--slate);border-color:var(--slate)}
.btn.slate:hover{background:#3b545b;border-color:#3b545b}
.arrow{display:inline-flex;align-items:center;gap:9px;font-size:11.5px;letter-spacing:.16em;
  text-transform:uppercase;font-weight:600;color:var(--teal);border-bottom:1px solid var(--line-2);
  padding-bottom:5px;transition:border-color .35s,gap .35s var(--e)}
.arrow:hover{border-color:var(--teal);gap:15px}

/* hero --------------------------------------------------------------------*/
.hero{padding-top:clamp(30px,5vw,60px);padding-bottom:0}
.hero-in{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,80px);align-items:center}
@media(max-width:940px){.hero-in{grid-template-columns:1fr}}
.hero-img{position:relative;overflow:hidden;border-radius:2px}
.hero-img img{width:100%;aspect-ratio:4/5;object-fit:cover}
.hero-badge{position:absolute;left:0;bottom:0;background:var(--paper);padding:20px 26px;
  max-width:74%;border-top-right-radius:2px}
.hero-badge .n{font-family:var(--f-d);font-size:34px;font-weight:300;line-height:1;color:var(--teal)}
.hero-badge span{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2);font-weight:600}
.hero-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);margin-top:clamp(38px,5vw,64px)}
@media(max-width:760px){.hero-stats{grid-template-columns:repeat(2,1fr)}}
.hero-stats div{background:var(--paper);padding:20px 22px}
.hero-stats b{display:block;font-family:var(--f-d);font-weight:300;font-size:clamp(24px,2.4vw,34px);
  line-height:1;color:var(--slate)}
.hero-stats span{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2);
  font-weight:600;display:block;margin-top:9px}

/* strip -------------------------------------------------------------------*/
.strip{background:var(--sage);padding:18px var(--gut);overflow:hidden;white-space:nowrap}
.strip-track{display:inline-flex;gap:52px;animation:mv 40s linear infinite}
.strip span{font-family:var(--f-d);font-size:clamp(15px,1.5vw,21px);letter-spacing:.16em;
  text-transform:uppercase;color:var(--slate);display:inline-flex;gap:52px;align-items:center;font-weight:400}
.strip span::after{content:"·";color:var(--teal)}
@keyframes mv{to{transform:translateX(-50%)}}

/* split -------------------------------------------------------------------*/
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,90px);align-items:center}
.split.rev>*:first-child{order:2}
@media(max-width:900px){.split{grid-template-columns:1fr}.split.rev>*:first-child{order:0}}
.pic{overflow:hidden;position:relative;border-radius:2px}
.pic img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform 1.4s var(--e)}
.pic.wide img{aspect-ratio:16/11}
.pic:hover img{transform:scale(1.035)}

/* feature grid ------------------------------------------------------------*/
.fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line)}
.fgrid article{background:var(--paper);padding:clamp(26px,3vw,42px);transition:background .5s var(--e)}
.fgrid article:hover{background:var(--paper-2)}
.fgrid .n{font-family:var(--f-d);font-size:13px;letter-spacing:.2em;color:var(--teal);font-weight:600}
.fgrid h3{margin:16px 0 12px;font-size:clamp(20px,1.9vw,27px)}
.fgrid p{margin:0;font-size:14px;color:var(--ink-2)}

/* dish cards --------------------------------------------------------------*/
.dishes{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:clamp(14px,2vw,26px)}
.dish{background:var(--paper);border:1px solid var(--line);border-radius:2px;overflow:hidden;
  transition:box-shadow .45s var(--e),transform .45s var(--e),border-color .45s}
.dish:hover{box-shadow:var(--sh);transform:translateY(-4px);border-color:var(--line-2)}
.dish .ph{aspect-ratio:4/3;overflow:hidden}
.dish .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--e)}
.dish:hover .ph img{transform:scale(1.06)}
.dish .bd{padding:20px 22px 24px}
.dish .cat{font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--teal);font-weight:600}
.dish h3{margin:11px 0 9px;font-size:24px}
.dish p{margin:0;font-size:13.5px;color:var(--ink-2)}
.dish .pr{margin-top:15px;font-family:var(--f-d);font-size:19px;color:var(--slate)}

/* locations ---------------------------------------------------------------*/
.locs{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line)}
@media(max-width:900px){.locs{grid-template-columns:1fr}}
.loc{background:var(--paper);padding:clamp(24px,3vw,44px);display:block;transition:background .5s var(--e)}
.loc:hover{background:var(--paper-2)}
.loc .ph{overflow:hidden;margin-bottom:clamp(22px,2.6vw,34px);border-radius:2px}
.loc .ph img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform 1.4s var(--e)}
.loc:hover .ph img{transform:scale(1.05)}
.loc dl{display:grid;grid-template-columns:auto 1fr;gap:9px 20px;margin:20px 0 0;font-size:14px}
.loc dt{font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--teal);font-weight:600;padding-top:5px}
.loc dd{margin:0;color:var(--ink-2)}

/* rating ------------------------------------------------------------------*/
.rate{display:flex;flex-wrap:wrap;gap:clamp(22px,4vw,64px);align-items:center;
  background:var(--sand);padding:clamp(28px,4vw,56px);border-radius:2px}
.rate .n{font-family:var(--f-d);font-weight:200;font-size:clamp(56px,8vw,104px);line-height:.86;color:var(--slate)}
.rate .st{letter-spacing:.3em;color:var(--teal);font-size:15px}

/* menu --------------------------------------------------------------------*/
.mrail{position:sticky;top:70px;z-index:60;background:rgba(251,250,247,.94);backdrop-filter:blur(14px);
  border-block:1px solid var(--line);padding:11px var(--gut);display:flex;gap:6px;overflow-x:auto;
  scrollbar-width:none}
.mrail::-webkit-scrollbar{display:none}
.mrail a{white-space:nowrap;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;
  padding:9px 14px;color:var(--ink-2);border-radius:2px;transition:.3s}
.mrail a:hover{background:var(--sage);color:var(--teal)}
.cat{scroll-margin-top:132px;padding-top:clamp(50px,6.5vw,96px)}
.chead{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:end;padding-bottom:18px;
  border-bottom:1px solid var(--line);margin-bottom:30px}
.chead .k{font-size:12.5px;color:var(--ink-2);margin-top:10px;letter-spacing:.03em}
.chead .c{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--teal);font-weight:600}
.mitems{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));column-gap:clamp(30px,5vw,74px)}
.mi{display:grid;grid-template-columns:1fr auto;gap:5px 16px;padding:17px 0;
  border-bottom:1px solid var(--line);align-items:baseline}
.mi h4{font-family:var(--f-d);font-size:20px;font-weight:400;display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.mi .p{font-family:var(--f-d);font-size:17px;color:var(--slate);white-space:nowrap}
.mi p{grid-column:1/-1;margin:0;font-size:13px;color:var(--ink-2);line-height:1.62;max-width:56ch}
.vg,.nv{width:13px;height:13px;border:1.5px solid;display:inline-grid;place-items:center;flex:0 0 auto}
.vg{border-color:#2e7d43}.vg::after{content:"";width:6px;height:6px;border-radius:50%;background:#2e7d43}
.nv{border-color:#b0432f}.nv::after{content:"";width:0;height:0;border-left:3.5px solid transparent;
  border-right:3.5px solid transparent;border-bottom:6px solid #b0432f}
.tg{font-size:9px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--teal);
  background:var(--sage);padding:2px 8px;border-radius:2px}
.addon{margin-top:22px;padding:16px 20px;background:var(--paper-2);border-left:2px solid var(--teal);
  font-size:13px;color:var(--ink-2)}
.filters{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-top:24px}
.chip{font-family:var(--f-b);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;
  border:1px solid var(--line-2);background:none;border-radius:2px;padding:11px 18px;cursor:pointer;
  color:var(--ink-2);transition:.3s}
.chip:hover{border-color:var(--teal);color:var(--teal)}
.chip[aria-pressed=true]{background:var(--teal);border-color:var(--teal);color:#fff}
body.veg-only .mi.nonveg,body.nonveg-only .mi.isveg{display:none}

/* gallery -----------------------------------------------------------------*/
.grid-g{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(8px,1.1vw,16px)}
.grid-g figure{margin:0;position:relative;overflow:hidden;cursor:zoom-in;border-radius:2px;grid-column:span 4}
.grid-g figure:nth-child(7n+1){grid-column:span 6}
.grid-g figure:nth-child(7n+4){grid-column:span 6}
@media(max-width:820px){.grid-g figure,.grid-g figure:nth-child(7n+1),.grid-g figure:nth-child(7n+4){grid-column:span 6}}
.grid-g img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;transition:transform 1.2s var(--e)}
.grid-g figure:hover img{transform:scale(1.05)}
.grid-g figcaption{position:absolute;inset:auto 0 0;padding:26px 18px 14px;font-size:12px;color:#fff;
  background:linear-gradient(transparent,rgba(20,32,34,.82));opacity:0;transition:opacity .4s var(--e)}
.grid-g figure:hover figcaption{opacity:1}
.lb{position:fixed;inset:0;z-index:9995;background:rgba(251,250,247,.97);display:none;place-items:center;
  padding:4vw;cursor:zoom-out;backdrop-filter:blur(6px)}
.lb.on{display:grid}
.lb img{max-height:84vh;width:auto;box-shadow:var(--sh)}
.lb p{margin-top:18px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2);
  font-weight:600;text-align:center}

/* faq ---------------------------------------------------------------------*/
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:24px 0;display:flex;justify-content:space-between;
  gap:22px;font-family:var(--f-d);font-size:clamp(19px,2vw,26px);font-weight:300;transition:color .3s}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--teal)}
.faq summary::after{content:"";width:11px;height:11px;flex:0 0 auto;margin-top:12px;
  border-right:1px solid var(--teal);border-bottom:1px solid var(--teal);transform:rotate(45deg);
  transition:transform .35s var(--e)}
.faq details[open] summary::after{transform:rotate(225deg)}
.faq p{margin:0 0 26px;max-width:76ch;color:var(--ink-2);font-size:14.5px}

/* facts -------------------------------------------------------------------*/
.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line)}
.facts div{background:var(--paper);padding:14px 18px;font-size:13.5px;display:flex;gap:10px;align-items:center}
.facts .y{color:var(--teal);font-weight:600}
.facts .n{color:#a8b2b1}
.facts .off{color:#a8b2b1;text-decoration:line-through}

/* action bar --------------------------------------------------------------*/
.actbar{position:fixed;left:0;right:0;bottom:0;z-index:700;display:none;gap:1px;background:var(--line);
  border-top:1px solid var(--line)}
.actbar a{flex:1;background:var(--paper);padding:13px 6px;text-align:center;font-size:10px;
  letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--ink-2)}
.actbar a.pri{background:var(--teal);color:#fff}
@media(max-width:760px){.actbar{display:flex}body{padding-bottom:52px}}

/* footer ------------------------------------------------------------------*/
footer{background:var(--slate);color:#eef3f2;padding:clamp(52px,6.5vw,92px) var(--gut) 28px}
.fg{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:clamp(24px,3.4vw,56px)}
@media(max-width:900px){.fg{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.fg{grid-template-columns:1fr}}
footer h4{font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:#a9d3d8;font-family:var(--f-b);
  font-weight:600;margin-bottom:16px}
footer ul{list-style:none;margin:0;padding:0;display:grid;gap:9px;font-size:13.5px;color:#d3dedc}
footer a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
footer .brand .mk{background:rgba(255,255,255,.12)}
footer .brand b,footer .brand small{color:#fff}
footer .brand small{color:#a9d3d8}
.fbot{margin-top:clamp(38px,5vw,66px);padding-top:20px;border-top:1px solid rgba(255,255,255,.18);
  display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;font-size:11px;letter-spacing:.1em;
  color:#b7c7c6;text-transform:uppercase}

/* mobile --------------------------------------------------------------------*/
@media(max-width:760px){
  .mrail{top:66px;padding-block:9px}
  .cat{scroll-margin-top:120px}
  .chead{grid-template-columns:1fr;align-items:start}
  .chead .c{order:-1}
  .rate{flex-direction:column;align-items:flex-start;gap:18px;padding:26px}
  .hero-badge{position:static;max-width:none;padding:16px 0 0;background:none}
  .hero-img img{aspect-ratio:4/3}
  .facts{grid-template-columns:1fr}
  .dishes{grid-template-columns:1fr}
  .loc{padding:24px}
  .btn{width:100%;justify-content:center}
  .filters .btn{width:auto}
  .grid-g{grid-template-columns:1fr}
  .grid-g figure,.grid-g figure:nth-child(7n+1),.grid-g figure:nth-child(7n+4){grid-column:1/-1}
  .addon{padding:14px 16px}
}

/* reveal ------------------------------------------------------------------*/
html.anim .rv{opacity:0;transform:translateY(22px)}
html.anim .rv.in{opacity:1;transform:none;transition:opacity .9s var(--e),transform .9s var(--e)}
