@font-face{font-family:Vazirmatn;src:url(/fonts/Vazirmatn-Regular.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Vazirmatn;src:url(/fonts/Vazirmatn-Bold.woff2) format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:Vazirmatn;src:url(/fonts/Vazirmatn-Black.woff2) format('woff2');font-weight:900;font-display:swap}
@font-face{font-family:Lalezar;src:url(/fonts/Lalezar.woff2) format('woff2');font-display:swap}
@font-face{font-family:Markazi;src:url(/fonts/Markazi.woff2) format('woff2');font-weight:400 700;font-display:swap}
:root{--bg:#fff;--page:#f3f3f3;--surface:#f4f4f4;--text:#111;--muted:#666;--line:rgba(0,0,0,.08);--accent:#f60;--on-accent:#fff;--title:Vazirmatn;--r:16px;--ph-r:12px}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--page)}
body{background:var(--bg);color:var(--text);font-family:Vazirmatn,system-ui,sans-serif;line-height:1.7;-webkit-font-smoothing:antialiased;max-width:640px;margin:0 auto;min-height:100vh;-webkit-tap-highlight-color:transparent}
.hero{position:relative;padding:calc(env(safe-area-inset-top,0px) + 34px) 20px 24px;text-align:center;overflow:hidden}
.hero.has-cover{background:linear-gradient(to bottom,rgba(0,0,0,.15),rgba(0,0,0,.78)),var(--cover) center/cover;color:#fff;padding-top:130px}
.hero-in{position:relative}
.logo{width:84px;height:84px;border-radius:50%;object-fit:cover;display:block;margin:0 auto 12px;border:3px solid var(--accent);background:var(--surface)}
.logo.mono{display:flex;align-items:center;justify-content:center;font-family:var(--title);font-size:40px;font-weight:900;color:var(--accent)}
.hero h1{font-family:var(--title);font-size:clamp(30px,9vw,44px);line-height:1.25;font-weight:900}
.tag{opacity:.85;margin-top:4px;font-size:15px}
.info{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:14px}
.chip{display:inline-flex;align-items:center;gap:6px;font-size:13px;padding:5px 12px;border-radius:999px;background:var(--chip-bg,rgba(127,127,127,.14));color:inherit;text-decoration:none}
.has-cover .chip{background:rgba(255,255,255,.16);color:#fff}
.chip svg{width:15px;height:15px;flex:none}
.cats{position:sticky;top:0;z-index:5;background:var(--nav-bg,var(--bg));border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.cats-in{position:relative;display:flex;gap:8px;overflow-x:auto;padding:10px 14px;scrollbar-width:none}
.cats-in::-webkit-scrollbar{display:none}
.cats a{flex:none;text-decoration:none;color:var(--muted);font-weight:700;font-size:14px;padding:6px 15px;border-radius:999px;border:1px solid var(--line);white-space:nowrap;transition:background .2s,color .2s}
.cats a.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.search{margin:12px 14px 0;display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:0 12px}
.search svg{width:18px;height:18px;color:var(--muted);flex:none}
.search input{flex:1;min-width:0;border:0;background:none;color:var(--text);font:inherit;font-size:15px;padding:11px 0;outline:none}
.search input::placeholder{color:var(--muted)}
main{padding:4px 14px 30px}
.cat{padding-top:18px;scroll-margin-top:60px}
.cat h2{font-family:var(--title);font-size:24px;line-height:1.4;margin:6px 4px 10px}
.item{cursor:pointer;position:relative;outline:none}
.item:focus-visible{box-shadow:0 0 0 2px var(--accent);border-radius:var(--ph-r)}
.item h3{font-size:16px;font-weight:700;line-height:1.5}
.item p{font-size:13px;color:var(--muted);line-height:1.8;margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.price{font-weight:900;font-size:16px;color:var(--price,var(--accent));white-space:nowrap}
.price small{font-weight:400;font-size:11px;opacity:.8}
.bdgs{display:flex;flex-wrap:wrap;gap:4px;margin-top:3px}
.bdg{font-size:10.5px;font-weight:700;padding:1px 8px;border-radius:999px;background:var(--accent);color:var(--on-accent);line-height:1.8}
.bdg-spicy{background:#E0442E;color:#fff}.bdg-veg{background:#3E9B4F;color:#fff}
.item.na{opacity:.5}
.na-l{display:inline-block;font-size:11px;font-weight:700;margin-top:4px;color:var(--muted)}
.ph{overflow:hidden;background:var(--surface);border-radius:var(--ph-r);flex:none}
.ph img{width:100%;height:100%;object-fit:cover;display:block}
.ph.empty{display:flex;align-items:center;justify-content:center;border:1px solid var(--line)}
.ph.empty span{font-family:var(--title);font-size:44px;font-weight:900;color:var(--accent);opacity:.75}
.l-list .items{display:flex;flex-direction:column}
.l-list .item{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:12px 4px;border-bottom:1px solid var(--line)}
.l-list .item .ph{width:78px;height:78px}
.l-list .item.noimg{grid-template-columns:1fr auto}
.l-list .price{align-self:start;padding-top:2px}
.l-grid .items{display:grid;grid-template-columns:1fr 1fr;gap:14px 12px}
.l-grid .item{display:flex;flex-direction:column}
.l-grid .ph{aspect-ratio:1/1;width:100%}
.l-grid .txt{padding:8px 2px 0;flex:1}
.l-grid .price{padding:2px 2px 4px}
.l-cards .items{display:flex;flex-direction:column;gap:16px}
.l-cards .item{background:var(--card,var(--surface));border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column}
.l-cards .ph{aspect-ratio:16/10;border-radius:0;width:100%}
.l-cards .txt{padding:12px 14px 4px}
.l-cards .price{padding:0 14px 14px}
.empty-menu,.no-res{text-align:center;color:var(--muted);padding:50px 10px}
.foot{text-align:center;color:var(--muted);font-size:12.5px;padding:24px 16px calc(env(safe-area-inset-bottom,0px) + 30px);border-top:1px solid var(--line)}
.made{display:inline-block;margin-top:10px;color:var(--muted);text-decoration:none;font-weight:700;font-size:12px;padding:4px 12px;border:1px solid var(--line);border-radius:999px}
.sheet{position:fixed;inset:0;z-index:20}
.sheet-bg{position:absolute;inset:0;background:rgba(0,0,0,.55);opacity:0;transition:opacity .2s}
.sheet-card{position:absolute;left:0;right:0;bottom:0;max-width:640px;margin:0 auto;background:var(--sheet,var(--bg));color:var(--text);border-radius:22px 22px 0 0;transform:translateY(100%);transition:transform .24s ease-out;max-height:88vh;overflow-y:auto}
.sheet.on .sheet-bg{opacity:1}.sheet.on .sheet-card{transform:none}
.sheet-img img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.sheet-body{padding:18px 20px calc(env(safe-area-inset-bottom,0px) + 26px)}
.sheet-body h3{font-family:var(--title);font-size:24px;line-height:1.4}
.sheet-body p{color:var(--muted);margin:6px 0 12px;line-height:1.9}
.sheet-body .price{font-size:21px}
.sheet-x{position:absolute;top:12px;left:12px;width:38px;height:38px;border-radius:50%;border:0;background:rgba(0,0,0,.5);color:#fff;font-size:24px;line-height:1;z-index:2;cursor:pointer}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* language switcher */
.langs{display:inline-flex;gap:4px;padding:3px;border-radius:999px;background:var(--chip-bg,rgba(127,127,127,.14));margin-bottom:14px}
.langs a{font-size:12.5px;font-weight:700;color:inherit;text-decoration:none;padding:3px 12px;border-radius:999px;opacity:.75}
.langs a.on{background:var(--accent);color:var(--on-accent);opacity:1}
.has-cover .langs{background:rgba(255,255,255,.16)}
.lang-en{font-family:system-ui,-apple-system,'Segoe UI',Roboto,sans-serif}
/* table ordering */
.ordering main{padding-bottom:90px}
.item .add{position:absolute;bottom:10px;inset-inline-end:8px;width:34px;height:34px;border-radius:50%;border:0;background:var(--accent);color:var(--on-accent);font:900 20px/1 Vazirmatn,sans-serif;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.18);display:flex;align-items:center;justify-content:center}
.item .add.has{font-size:15px}
.item .add.pop{animation:pop .25s}
@keyframes pop{50%{transform:scale(1.25)}}
.l-list .item .add{position:static;grid-column:auto;align-self:end}
.ordering.l-list .item{grid-template-columns:auto 1fr auto auto}
.ordering.l-list .item.noimg{grid-template-columns:1fr auto auto}
.l-grid .item .add{bottom:auto;top:8px}
.l-cards .item .add{bottom:12px;inset-inline-end:12px;width:40px;height:40px}
.obtn{display:block;width:100%;margin-top:16px;border:0;border-radius:14px;padding:13px;background:var(--accent);color:var(--on-accent);font:900 16px Vazirmatn,sans-serif;cursor:pointer}
.obtn[disabled]{opacity:.6}
.cartbar{position:fixed;bottom:calc(env(safe-area-inset-bottom,0px) + 14px);left:50%;transform:translateX(-50%);width:calc(100% - 28px);max-width:612px;z-index:15;display:flex;align-items:center;gap:10px;border:0;border-radius:16px;padding:12px 16px;background:var(--accent);color:var(--on-accent);font:700 15px Vazirmatn,sans-serif;cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.3)}
.cartbar[hidden]{display:none}
.cartbar b{margin-inline-start:auto}
.cb-n{min-width:28px;height:28px;border-radius:50%;background:rgba(0,0,0,.18);display:flex;align-items:center;justify-content:center;font-weight:900}
.cart-body{padding-top:24px}
.cart-body h3{margin-bottom:8px}
.cl{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.cl-t{flex:1;min-width:0}.cl-t b{display:block;font-size:15px}.cl-t small{color:var(--muted)}
.qty{display:flex;align-items:center;gap:8px}
.qty button{width:30px;height:30px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--text);font:900 17px/1 Vazirmatn,sans-serif;cursor:pointer}
.qty span{min-width:18px;text-align:center;font-weight:900}
.cart-tot{display:flex;justify-content:space-between;align-items:center;padding:14px 0 6px;font-size:16px}
.cart-tot b{color:var(--accent);font-size:19px}
.cart-form label{display:block;font-size:13px;font-weight:700;color:var(--muted);margin-top:10px}
.cart-form input{display:block;width:100%;margin-top:4px;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:12px;padding:10px 12px;font:inherit;font-size:16px;outline:none}
.cart-form input:focus{border-color:var(--accent)}
.cart-err{color:#E0442E;font-weight:700;font-size:14px;min-height:20px;margin-top:8px}
.ostatus{text-align:center;padding:8px 0}
.os-ic{width:60px;height:60px;margin:0 auto 10px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-size:30px;font-weight:900;display:flex;align-items:center;justify-content:center}
.st-cancelled .os-ic{background:#E0442E;color:#fff}
.ostatus h4{font-family:var(--title);font-size:22px}
.ostatus ul{list-style:none;margin:12px 0;text-align:start}
.ostatus li{padding:6px 0;border-bottom:1px solid var(--line);font-size:14.5px}
/* sale price, discount badge */
.price.sale s{font-weight:400;font-size:12px;opacity:.55;margin-inline-end:5px}
.bdg-off{background:#E0442E;color:#fff}
.cat h2 .hrs{font-family:Vazirmatn;font-size:11px;font-weight:700;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:0 8px;margin-inline-start:8px;vertical-align:middle}
/* today's specials */
.specials{padding-top:16px}
.specials h2{font-family:var(--title);font-size:21px;margin:0 4px 10px;display:flex;align-items:center;gap:8px}
.specials h2::before{content:'★';color:var(--accent)}
.sp-row{display:flex;gap:12px;overflow-x:auto;padding:2px 2px 10px;scroll-snap-type:x mandatory;scrollbar-width:none}
.sp-row::-webkit-scrollbar{display:none}
.sp{flex:none;width:150px;scroll-snap-align:start;text-decoration:none;color:inherit;background:var(--card,var(--surface));border-radius:var(--r);overflow:hidden;border:1px solid var(--line)}
.sp-ph{aspect-ratio:1/1;background:var(--surface);display:flex;align-items:center;justify-content:center}
.sp-ph img{width:100%;height:100%;object-fit:cover;display:block}
.sp-ph span{font-family:var(--title);font-size:48px;font-weight:900;color:var(--accent)}
.sp b{display:block;font-size:14px;padding:8px 10px 0;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp .price{padding:0 10px 10px;font-size:14px}
/* item sheet extras */
.s-meta{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.kcal{font-size:12.5px;color:var(--muted)}
.vars{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.vars:empty{display:none}
.var{display:flex;flex-direction:column;align-items:center;min-width:84px;border:2px solid var(--line);background:var(--surface);color:var(--text);border-radius:14px;padding:6px 12px;font:700 14px Vazirmatn,sans-serif;cursor:pointer}
.var b{font-size:13px;color:var(--accent)}
.var.on{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent)}
.pairs{margin-top:20px;border-top:1px solid var(--line);padding-top:14px}
.pairs h4{font-size:15px;margin-bottom:10px}
.pair-row{display:flex;gap:10px;overflow-x:auto}
.pair{flex:none;display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:14px;padding:6px 12px 6px 6px;font:700 13.5px Vazirmatn,sans-serif;cursor:pointer}
.pair img,.pair .pi{width:40px;height:40px;border-radius:10px;object-fit:cover;flex:none;display:flex;align-items:center;justify-content:center;background:var(--bg);color:var(--accent);font-weight:900}
/* hero chips that are buttons */
button.chip{border:0;font:inherit;cursor:pointer}
.chip.wifi b{font-weight:900;opacity:.85}
/* rating */
.rate-btn{display:inline-flex;align-items:center;gap:6px;margin-bottom:12px;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:999px;padding:7px 16px;font:700 13.5px Vazirmatn,sans-serif;cursor:pointer}
.rate-btn svg{width:16px;height:16px;color:#F5B301}
.stars{display:flex;justify-content:center;gap:6px;margin:14px 0}
.stars button{border:0;background:none;cursor:pointer;color:var(--line);padding:2px}
.stars svg{width:42px;height:42px}
.stars button.on{color:#F5B301}
.rate-body textarea{width:100%;min-height:80px;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:12px;padding:10px 12px;font:inherit;font-size:15px;resize:vertical;outline:none}
.ostatus p{color:var(--muted);margin:6px 0 4px}
a.obtn{text-align:center;text-decoration:none}
/* waiter call */
.svc-fab{position:fixed;bottom:calc(env(safe-area-inset-bottom,0px) + 18px);inset-inline-start:max(14px,calc(50% - 306px));z-index:14;width:52px;height:52px;border-radius:50%;border:0;background:var(--text);color:var(--bg);box-shadow:0 8px 24px rgba(0,0,0,.3);cursor:pointer;display:flex;align-items:center;justify-content:center}
.svc-fab svg{width:24px;height:24px}
.has-bar .svc-fab{bottom:calc(env(safe-area-inset-bottom,0px) + 84px)}
.svc-t{display:block;font-size:13px;font-weight:700;color:var(--muted);margin-top:10px}
.svc-t input{display:block;width:100%;margin-top:4px;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:12px;padding:10px 12px;font:inherit;font-size:16px}
.svc-acts{display:grid;gap:4px}
.obtn.ghost{background:transparent;color:var(--text);box-shadow:inset 0 0 0 2px var(--line)}
.svc-msg{text-align:center;font-weight:700;margin-top:12px;min-height:24px}
.mtoast{position:fixed;left:50%;bottom:90px;transform:translate(-50%,20px);background:var(--text);color:var(--bg);padding:9px 18px;border-radius:999px;font-size:14px;font-weight:700;opacity:0;pointer-events:none;transition:.2s;z-index:30}
.mtoast.on{opacity:1;transform:translate(-50%,0)}
[hidden]{display:none!important}
.chip.wifi{direction:ltr}
/* decorative hero layer, used by some themes */
.deco{position:absolute;inset:0;pointer-events:none;display:none}
/* layout: bento, glass tiles, every third item spans the full row */
.l-bento .items{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.l-bento .item{display:flex;flex-direction:column;border-radius:var(--r);overflow:hidden;background:var(--card,var(--surface));min-width:0}
.l-bento .ph{aspect-ratio:1/1;width:100%;border-radius:0}
.l-bento .txt{padding:10px 12px 2px;flex:1}
.l-bento .price{padding:2px 12px 12px}
.l-bento .item:is(:nth-child(3n+1),:nth-child(3n+2):last-child){grid-column:1/-1;display:grid;grid-template-columns:44% 1fr;grid-template-rows:1fr auto}
.l-bento .item:is(:nth-child(3n+1),:nth-child(3n+2):last-child) .ph{grid-row:1/3;aspect-ratio:auto;height:100%;min-height:150px}
.l-bento .item:is(:nth-child(3n+1),:nth-child(3n+2):last-child) .txt{padding:14px 14px 0}
.l-bento .item:is(:nth-child(3n+1),:nth-child(3n+2):last-child) .price{padding:4px 14px 14px}
.l-bento .item .add{top:auto;bottom:10px}
/* layout: board, text only with dotted leaders */
.l-board .ph{display:none}
.l-board .items{display:flex;flex-direction:column}
.l-board .item{display:flex;align-items:baseline;gap:8px;padding:10px 4px}
.l-board .txt{flex:1;min-width:0}
.l-board .item h3{display:flex;align-items:baseline;gap:8px}
.l-board .item h3::after{content:'';flex:1;min-width:24px;border-bottom:2px dotted var(--line-strong,var(--line));transform:translateY(-.3em)}
.l-board .item p{-webkit-line-clamp:3}
.ordering.l-board .item{padding-inline-end:46px}
.l-board .item .add{bottom:auto;top:8px;width:32px;height:32px}
/* layout: news, newspaper columns with a lead story */
.l-news .items{columns:2;column-gap:22px;column-rule:1px solid var(--line)}
.l-news .item{break-inside:avoid;display:block;padding:10px 0 12px;border-bottom:1px solid var(--line)}
.l-news .item:first-child{column-span:all;padding-top:4px}
.l-news .ph{width:100%;aspect-ratio:4/3;border-radius:0;margin-bottom:8px}
.l-news .item:first-child .ph{aspect-ratio:16/9}
.l-news .price{margin-top:4px}
.l-news .item .add{bottom:10px;inset-inline-end:0;width:30px;height:30px;font-size:17px}
/* layout: polaroid, tilted photo cards */
.l-polaroid .items{display:grid;grid-template-columns:1fr 1fr;gap:22px 16px;padding:8px 4px}
.l-polaroid .item{display:flex;flex-direction:column;background:var(--card,#fff);padding:8px 8px 12px;border-radius:6px;box-shadow:0 6px 18px rgba(0,0,0,.1);transform:rotate(-1.6deg);transition:transform .2s;min-width:0}
.l-polaroid .item:nth-child(even){transform:rotate(1.8deg)}
.l-polaroid .item:active{transform:rotate(0) scale(1.02)}
.l-polaroid .ph{aspect-ratio:1/1;width:100%;border-radius:3px}
.l-polaroid .txt{padding:8px 2px 0;flex:1;text-align:center}
.l-polaroid .price{text-align:center}
.l-polaroid .bdgs{justify-content:center}
.l-polaroid .item .add{top:14px;bottom:auto;inset-inline-end:14px}
/* layout: zigzag, wide rows whose photo alternates sides */
.l-zigzag .items{display:flex;flex-direction:column;gap:16px}
.l-zigzag .item{display:grid;grid-template-columns:40% 1fr;grid-template-rows:1fr auto;column-gap:14px;align-items:center;background:var(--card,var(--surface));border-radius:var(--r);padding:12px}
.l-zigzag .item:nth-child(even){grid-template-columns:1fr 40%}
.l-zigzag .item:nth-child(even) .ph{grid-column:2}
.l-zigzag .item:nth-child(even) .txt,.l-zigzag .item:nth-child(even) .price{grid-column:1}
.l-zigzag .ph{grid-row:1/3;aspect-ratio:1/1;width:100%}
.l-zigzag .txt{align-self:end}
.l-zigzag .price{align-self:start;justify-self:start;margin-top:4px}
.l-zigzag .item.noimg{grid-template-columns:1fr}
.l-zigzag .item.noimg .txt,.l-zigzag .item.noimg .price{grid-column:1}
.l-zigzag .item .add{bottom:12px}
.l-zigzag .item:nth-child(even) .add{inset-inline-end:calc(40% + 22px)}
.l-zigzag .item.noimg .add{inset-inline-end:12px}
/* layout: center, centred text with an ornament between dishes */
.l-center .items{display:flex;flex-direction:column}
.l-center .item{display:flex;flex-direction:column;align-items:center;text-align:center;padding:18px 10px}
.l-center .item+.item::before{content:'';display:block;width:60px;height:1px;background:var(--line-strong,var(--line));margin:-18px auto 18px}
.l-center .ph{width:84px;height:84px;border-radius:50%;margin-bottom:10px}
.l-center .bdgs{justify-content:center}
.l-center .item p{-webkit-line-clamp:3;max-width:34em}
.l-center .price{margin-top:6px}
.ordering.l-center .item{padding-bottom:58px}
.l-center .item .add{inset-inline-end:50%;transform:translateX(50%);bottom:14px}
[dir=rtl] .l-center .item .add{transform:translateX(-50%)}
/* owner's look tweaks */
.no-photos.l-bento .item:is(:nth-child(3n+1),:nth-child(3n+2):last-child){display:flex;flex-direction:column}
.no-photos .sp-ph{aspect-ratio:auto;height:70px}
.big-text main,.big-text .cats,.big-text .search{zoom:1.14}
/* hero video (owner's upload or the theme's ambient clip) */
.hero.has-video{color:#fff;padding-top:140px;min-height:340px;display:flex;flex-direction:column;justify-content:flex-end}
.hero-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;pointer-events:none}
.hero-shade{position:absolute;inset:0;z-index:0;background:linear-gradient(to bottom,rgba(0,0,0,.15),rgba(0,0,0,.25) 45%,rgba(0,0,0,.78))}
.has-video .deco{z-index:0}
.has-video .hero-in{z-index:1}
.has-video .chip{background:rgba(255,255,255,.16);color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.has-video .langs{background:rgba(255,255,255,.16)}
.has-video h1{text-shadow:0 2px 18px rgba(0,0,0,.45)}
/* layout: rows, each category is a horizontal shelf like a streaming app */
.l-rows main{padding-inline:0}
.l-rows .cat h2,.l-rows .specials h2{margin-inline:18px}
.l-rows .items{display:flex;gap:12px;overflow-x:auto;padding:4px 18px 14px;scroll-snap-type:x mandatory;scrollbar-width:none}
.l-rows .items::-webkit-scrollbar{display:none}
.l-rows .item{flex:none;width:72%;max-width:320px;scroll-snap-align:start;display:flex;flex-direction:column;border-radius:var(--r);overflow:hidden;background:var(--card,var(--surface))}
.l-rows .ph{width:100%;aspect-ratio:16/10;border-radius:0}
.l-rows .txt{padding:10px 12px 2px;flex:1}
.l-rows .price{padding:2px 12px 12px}
.l-rows .item .add{top:10px;bottom:auto}
.l-rows .specials .sp-row{padding-inline:18px}
/* layout: reels, full-height photo cards with the text laid over them */
.l-reels .items{display:flex;flex-direction:column;gap:14px}
.l-reels .item{display:block;border-radius:22px;overflow:hidden;background:var(--card,var(--surface));min-height:120px}
.l-reels .ph{width:100%;aspect-ratio:4/5;border-radius:0}
.l-reels .item:not(.noimg) .txt{position:absolute;inset:auto 0 0 0;padding:70px 16px 44px;background:linear-gradient(transparent,rgba(0,0,0,.82));color:#fff}
.l-reels .item:not(.noimg) .txt p{color:rgba(255,255,255,.82)}
.l-reels .item:not(.noimg) .price{position:absolute;bottom:14px;inset-inline-start:16px;color:#fff}
.l-reels .item.noimg{padding:18px}
.l-reels .item .add{top:14px;bottom:auto;width:42px;height:42px}
/* layout: overlay, full-width photo banners with the name on the picture */
.l-overlay .items{display:flex;flex-direction:column;gap:12px}
.l-overlay .item{display:block;border-radius:var(--r);overflow:hidden;background:var(--card,var(--surface))}
.l-overlay .ph{width:100%;aspect-ratio:16/9;border-radius:0}
.l-overlay .item:not(.noimg) .txt{position:absolute;inset:auto 0 0 0;padding:48px 16px 14px;background:linear-gradient(transparent,rgba(0,0,0,.85));color:#fff}
.l-overlay .item:not(.noimg) .txt p{color:rgba(255,255,255,.8);-webkit-line-clamp:1}
.l-overlay .item:not(.noimg) .price{position:absolute;top:12px;inset-inline-start:12px;background:rgba(0,0,0,.6);color:#fff;border-radius:999px;padding:2px 12px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.l-overlay .item.noimg{padding:16px}
.l-overlay .item .add{top:12px;bottom:auto}
/* layout: ticket, notched meal tickets in two columns */
.l-ticket .items{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.l-ticket .item{display:flex;flex-direction:column;background:var(--card,var(--surface));padding:12px 12px 10px;border-radius:10px;
  -webkit-mask:radial-gradient(circle 9px at 0 62%,#0000 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 9px at 100% 62%,#0000 98%,#000) right/51% 100% no-repeat;
  mask:radial-gradient(circle 9px at 0 62%,#0000 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 9px at 100% 62%,#0000 98%,#000) right/51% 100% no-repeat}
.l-ticket .ph{width:100%;aspect-ratio:4/3;border-radius:6px}
.l-ticket .txt{padding-top:8px;flex:1}
.l-ticket .price{border-top:2px dashed var(--line);margin-top:8px;padding-top:8px;text-align:center}
.l-ticket .item .add{bottom:8px;inset-inline-end:8px;width:30px;height:30px}
/* layout: carte, a framed restaurant card with dotted leaders and small round photos */
.l-carte main{margin:14px;border:1px solid var(--line-strong,var(--line));outline:1px solid var(--line);outline-offset:5px;padding:6px 16px 26px}
.l-carte .cat h2{text-align:center}
.l-carte .items{display:flex;flex-direction:column}
.l-carte .item{display:grid;grid-template-columns:1fr auto;column-gap:10px;align-items:baseline;padding:10px 0}
.l-carte .item:has(.ph){grid-template-columns:auto 1fr auto}
.l-carte .ph{width:48px;height:48px;border-radius:50%;align-self:center}
.l-carte .item h3{display:flex;align-items:baseline;gap:8px}
.l-carte .item h3::after{content:'';flex:1;min-width:20px;border-bottom:1px dotted var(--line-strong,var(--line));transform:translateY(-.3em)}
.ordering.l-carte .item{padding-inline-end:42px}
.l-carte .item .add{bottom:auto;top:8px;width:30px;height:30px;inset-inline-end:0}
/* layout: arch, tall arched photos in two columns */
.l-arch .items{display:grid;grid-template-columns:1fr 1fr;gap:18px 14px}
.l-arch .item{display:flex;flex-direction:column;align-items:center;text-align:center}
.l-arch .ph{width:100%;aspect-ratio:3/4;border-radius:999px 999px 14px 14px}
.l-arch .txt{padding-top:8px;flex:1}
.l-arch .bdgs{justify-content:center}
.l-arch .item .add{top:8px}
/* layout: index, numbered entries with big figures */
.l-index main{counter-reset:dish}
.l-index .items{display:flex;flex-direction:column}
.l-index .item{counter-increment:dish;display:grid;grid-template-columns:52px 1fr auto;gap:4px 12px;align-items:start;padding:16px 2px;border-bottom:1px solid var(--line)}
.l-index .item:has(.ph){grid-template-columns:52px 1fr auto}
.l-index .item::before{content:counter(dish,decimal-leading-zero);grid-row:1/3;font:900 30px/1 var(--title),Vazirmatn;color:var(--accent);opacity:.9}
.lang-fa.l-index .item::before{content:counter(dish,persian)}
.l-index .ph{grid-column:3;grid-row:1/3;width:64px;height:64px;border-radius:12px}
.l-index .txt{grid-column:2}
.l-index .price{grid-column:2;margin-top:2px}
.l-index .item .add{top:14px;bottom:auto}
.ordering.l-index .item{padding-inline-end:44px}
/* layout: bubbles, round photos in a staggered two-column grid */
.l-bubbles .items{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;padding-bottom:40px}
.l-bubbles .item{display:flex;flex-direction:column;align-items:center;text-align:center}
.l-bubbles .item:nth-child(even){transform:translateY(40px)}
.l-bubbles .ph{width:88%;aspect-ratio:1/1;border-radius:50%}
.l-bubbles .txt{padding-top:8px}
.l-bubbles .bdgs{justify-content:center}
.l-bubbles .item .add{top:6px;bottom:auto;inset-inline-end:8%}

/* guest ratings */
.rating-chip{font:inherit;cursor:pointer;border:0}.rating-chip svg{color:#F5B301}.rating-chip b{font-weight:800}.rating-chip small{opacity:.8;font-size:12px}
.rev-sum{display:flex;gap:18px;align-items:center;margin:10px 0 16px}
.rev-avg{display:flex;flex-direction:column;align-items:center;min-width:92px}
.rev-avg b{font-size:44px;line-height:1.1;font-weight:900}.rev-avg small{color:var(--muted);font-size:12.5px;margin-top:2px}
.rev-stars{display:inline-flex;gap:1px}.rev-stars i{width:16px;height:16px;color:rgba(127,127,127,.35);display:inline-flex}.rev-stars i.on{color:#F5B301}.rev-stars svg{width:100%;height:100%}
.rev-dist{flex:1;display:flex;flex-direction:column;gap:5px}
.rev-dist div{display:flex;align-items:center;gap:8px;font-size:12.5px}.rev-dist span{width:12px;text-align:center;color:var(--muted)}
.rev-dist i{flex:1;height:7px;border-radius:9px;background:rgba(127,127,127,.18);overflow:hidden}.rev-dist em{display:block;height:100%;background:#F5B301;border-radius:9px}
.rev-list{list-style:none;padding:0;margin:0 0 16px;display:flex;flex-direction:column;gap:10px}
.rev-list li{border:1px solid var(--line);border-radius:14px;padding:10px 14px}.rev-list p{margin:4px 0 0;font-size:14px;line-height:1.8}
.rev-none{color:var(--muted);font-size:14px;margin-bottom:16px}
/* location */
.loc{padding:8px 16px 26px;max-width:720px;margin:0 auto}
.loc h2{display:flex;align-items:center;gap:8px;font-size:18px;margin:14px 0 12px}.loc h2 svg{width:20px;height:20px}
.loc-card{border:1px solid var(--line);border-radius:20px;overflow:hidden;background:var(--card,rgba(127,127,127,.06))}
.loc-map{position:relative;height:130px;background:
  linear-gradient(90deg,transparent 47%,rgba(255,255,255,.55) 47% 53%,transparent 53%) 0 0/100% 100%,
  linear-gradient(0deg,transparent 58%,rgba(255,255,255,.55) 58% 63%,transparent 63%) 0 0/100% 100%,
  linear-gradient(28deg,transparent 30%,rgba(255,255,255,.4) 30% 33%,transparent 33%) 0 0/100% 100%,
  repeating-linear-gradient(0deg,rgba(0,0,0,.04) 0 1px,transparent 1px 26px),repeating-linear-gradient(90deg,rgba(0,0,0,.04) 0 1px,transparent 1px 26px),
  linear-gradient(135deg,#DDEBD5,#CFE3EE)}
.loc-pin{position:absolute;left:50%;top:50%;transform:translate(-50%,-80%);width:44px;height:44px;color:#E53935;filter:drop-shadow(0 6px 8px rgba(0,0,0,.3));animation:locBob 2.4s ease-in-out infinite}
.loc-pin svg{width:100%;height:100%}.loc-pin svg path{fill:#E53935;stroke:#fff}.loc-pin svg circle{fill:#fff}
@keyframes locBob{0%,100%{transform:translate(-50%,-80%)}50%{transform:translate(-50%,-95%)}}
.loc-addr{padding:14px 16px 0;margin:0;font-size:14.5px;line-height:1.8}
.loc-go{display:flex;align-items:center;justify-content:center;gap:8px;margin:14px 16px 0;text-decoration:none;width:auto}.loc-go svg{width:18px;height:18px}
.loc-apps{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;padding:12px 16px 0}
.loc-apps a{font-size:13px;padding:5px 12px;border-radius:999px;border:1px solid var(--line);color:inherit;text-decoration:none}
.loc-share{display:block;width:calc(100% - 32px);margin:12px 16px 16px;padding:10px;border-radius:12px;border:1.5px dashed var(--line);background:none;color:inherit;font:inherit;font-weight:700;cursor:pointer}
@media (prefers-reduced-motion:reduce){.loc-pin{animation:none}}
