/* IranYekan (licensed, self-hosted: no third-party font requests) */
@font-face{font-family:"IranYekan";font-weight:300;font-style:normal;font-display:swap;src:url(fonts/iranyekan-light.woff2) format("woff2")}
@font-face{font-family:"IranYekan";font-weight:400;font-style:normal;font-display:swap;src:url(fonts/iranyekan-regular.woff2) format("woff2")}
@font-face{font-family:"IranYekan";font-weight:700;font-style:normal;font-display:swap;src:url(fonts/iranyekan-bold.woff2) format("woff2")}
/* Menuro customer menu — v2.
   One component set, three skins. Theming = CSS variables, so colour / template / dark never touch data.
   Logical properties everywhere (RTL fa + LTR en from the same CSS). Spacing on a 4px scale. */
:root{
  --font-body:"IranYekan",Tahoma,system-ui,sans-serif;
  --font-display:var(--font-body);
  --maxw:560px;--pad:18px;--radius:18px;--tint-strength:70%;
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;
  --fs-h2:19px;--fs-body:14.5px;--fs-small:12.5px;
  --ease:cubic-bezier(.22,.9,.24,1);--spring:cubic-bezier(.3,1.35,.5,1);
  --art-base:var(--surface);
}
/* ---------------------------------------------------------------- skins */
body[data-tpl="classic"]{
  --bg:#f3ecdc;--surface:#fbf6ea;--surface2:#eee5d0;--text:#26241c;--muted:#76705d;--line:#d9cdb2;--line2:#e6dcc4;
  --accent:#2d5a43;--accent-ink:#fff;--gold:#b08a3e;
  --font-display:"IranYekan",Tahoma,system-ui,sans-serif;--radius:14px;--tint-strength:76%;--shadow:none;
}
body[data-tpl="cards"]{
  --bg:#f6f3ee;--surface:#fff;--surface2:#f0ebe3;--text:#1d1b18;--muted:#8a8378;--line:#ece6dc;--line2:#f1ece4;
  --accent:#e0702f;--accent-ink:#fff;--radius:24px;--tint-strength:86%;
  --shadow:0 10px 30px -14px rgba(70,45,10,.28),0 1px 2px rgba(70,45,10,.06);
}
body[data-tpl="dark"]{
  --bg:#0b0c0f;--surface:#14161b;--surface2:#1c1f26;--text:#f5f0e8;--muted:#9d978c;--line:rgba(255,255,255,.075);--line2:rgba(255,255,255,.05);
  --accent:#d6955f;--accent-ink:#1b0f07;--radius:22px;--tint-strength:30%;--art-base:#120e0b;color-scheme:dark;
  --shadow:0 14px 34px -16px rgba(0,0,0,.9),inset 0 1px 0 rgba(255,255,255,.045);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip}
body{margin:0;font-family:var(--font-body);background:var(--bg);color:var(--text);line-height:1.9;letter-spacing:0;font-kerning:normal;text-rendering:optimizeLegibility;min-height:100dvh;font-size:var(--fs-body);
  --accent-soft:color-mix(in srgb,var(--accent) 14%,var(--surface));text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0;touch-action:manipulation}
input,textarea{font:inherit;color:inherit}
h1,h2,h3,h4,p{margin:0}svg{display:block}a{color:inherit}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:10px}
.app{max-width:var(--maxw);margin:0 auto;min-height:100dvh;background:var(--bg);position:relative;padding-bottom:calc(150px + env(safe-area-inset-bottom));overflow-x:clip}
body[data-tpl="classic"] .app{background:var(--bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .4 0 0 0 0 .32 0 0 0 0 .2 0 0 0 .06 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}
@media(min-width:700px){
  body{background:color-mix(in srgb,var(--accent) 12%,var(--bg))}
  body[data-tpl="dark"]{background:#050607}
  .app{box-shadow:0 0 0 1px var(--line),0 50px 100px -30px rgba(0,0,0,.4)}
}
body.embed{background:var(--bg)}body.embed .app{box-shadow:none}

/* ---------------------------------------------------------------- art tiles */
.art{--tint:#eadccb;display:grid;place-items:center;overflow:hidden;position:relative;
  background:color-mix(in srgb,var(--tint) var(--tint-strength),var(--art-base))}
.art svg,.art img{width:84%;height:84%;object-fit:cover;transition:transform .5s var(--ease)}
.art img{width:100%;height:100%;border-radius:inherit}
body[data-tpl="dark"] .art{background:radial-gradient(circle at 50% 28%,color-mix(in srgb,var(--tint) 44%,var(--art-base)),color-mix(in srgb,var(--tint) 10%,var(--art-base)) 78%);box-shadow:inset 0 0 0 1px var(--line2)}
body[data-tpl="dark"] .art.mini{background:none;box-shadow:none}
.art.off{filter:grayscale(1) opacity(.45)}
.art.mini{width:26px;height:26px;border-radius:50%;--tint-strength:100%}
.art.mini svg{width:100%;height:100%}

/* ---------------------------------------------------------------- atoms */
.price{font-weight:800;white-space:nowrap;letter-spacing:0}
.price small{font-weight:500;color:var(--muted);font-size:.7em;margin-inline-start:.28em}
.old{color:var(--muted);text-decoration:line-through;font-weight:500;font-size:.8em;margin-inline-end:.4em}
.badges{display:flex;gap:6px;flex-wrap:wrap}
.badge{font-size:11px;font-weight:700;line-height:1;padding:5px 9px;border-radius:99px;background:var(--accent-soft);color:var(--accent);white-space:nowrap;display:inline-flex;gap:4px;align-items:center}
.badge.new{background:#e2f3e9;color:#177443}.badge.offer{background:#fde4dd;color:#c0351b}.badge.veg{background:#eaf3d6;color:#587d10}.badge.off{background:var(--surface2);color:var(--muted)}
body[data-tpl="dark"] .badge.new{background:#12301f;color:#6fd69a}body[data-tpl="dark"] .badge.offer{background:#3b1b13;color:#ff9c82}body[data-tpl="dark"] .badge.veg{background:#202e10;color:#b4dd6a}
.plus{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:var(--accent);color:var(--accent-ink);flex:none;transition:transform .18s var(--spring),filter .15s;position:relative}
body[data-tpl="dark"] .plus{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 86%,#fff),var(--accent))}
.plus:active{transform:scale(.86)}.plus svg{width:18px;height:18px}
.plus.done{animation:pop .45s var(--spring)}
@keyframes pop{40%{transform:scale(1.22)}}
.hscroll{display:flex;gap:var(--s3);overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--pad);padding:var(--s1) var(--pad) var(--s3);scrollbar-width:none;overscroll-behavior-x:contain;cursor:grab;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 14px,#000 calc(100% - 14px),transparent);mask-image:linear-gradient(to right,transparent 0,#000 14px,#000 calc(100% - 14px),transparent)}
.hscroll::-webkit-scrollbar{display:none}.hscroll>*{scroll-snap-align:start;flex:none}
.hscroll.dragging{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto}.hscroll.dragging *{pointer-events:none;user-select:none}
.dots{display:flex;gap:6px;justify-content:center;margin-top:2px}
.dots i{width:6px;height:6px;border-radius:99px;background:var(--line);transition:all .3s var(--ease)}
body[data-tpl="dark"] .dots i{background:rgba(255,255,255,.16)}
.dots i.on{width:20px;background:var(--accent)}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#34c27a;box-shadow:0 0 0 3px rgba(52,194,122,.2);margin-inline-end:6px}

/* ---------------------------------------------------------------- header parts */
.langbtn{height:36px;min-width:36px;padding-inline:11px;border-radius:99px;border:1px solid var(--line);background:var(--surface);font-size:12.5px;font-weight:800;display:grid;place-items:center;color:var(--text)}
.ctx{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap;font-size:var(--fs-small);color:var(--muted);font-weight:600}
.ctx .tablechip{margin-inline-start:auto}
.tablechip{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:800;color:var(--accent);background:var(--accent-soft);padding:5px 11px;border-radius:99px}
.tablechip svg{width:13px;height:13px}
.idbtn{display:flex;align-items:center;gap:var(--s3);min-width:0;text-align:start}
.search{display:block;position:relative;margin:var(--s4) var(--pad) 0}
.search input{width:100%;height:48px;border-radius:16px;border:1px solid var(--line);background:var(--surface);padding-inline:46px 14px;font-size:14.5px;outline:none;transition:border-color .2s,box-shadow .2s;box-shadow:var(--shadow)}
.search input:focus{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 18%,transparent)}
.search svg{position:absolute;inset-inline-start:15px;top:50%;translate:0 -50%;width:19px;height:19px;color:var(--muted)}

/* ---------------------------------------------------------------- sticky tabs with sliding indicator */
.tabs{position:sticky;top:0;z-index:30;padding:10px 0;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(16px) saturate(1.5);-webkit-backdrop-filter:blur(16px) saturate(1.5);border-bottom:1px solid transparent;transition:border-color .25s}
.tabs.stuck{border-color:var(--line)}
.tabs-scroll{position:relative;display:flex;gap:4px;overflow-x:auto;padding:0 var(--pad);scrollbar-width:none;cursor:grab;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 14px,#000 calc(100% - 14px),transparent);mask-image:linear-gradient(to right,transparent 0,#000 14px,#000 calc(100% - 14px),transparent)}
.tabs-scroll::-webkit-scrollbar{display:none}.tabs-scroll.dragging{cursor:grabbing}.tabs-scroll.dragging *{pointer-events:none}
.tab{position:relative;z-index:1;flex:none;padding:9px 16px;border-radius:99px;font-size:14px;font-weight:600;color:var(--muted);transition:color .25s;white-space:nowrap;display:inline-flex;align-items:center;gap:8px}
.tab[aria-current="true"]{color:var(--accent-ink);font-weight:700}
.ind{position:absolute;left:0;top:0;height:100%;border-radius:99px;background:var(--accent);transition:transform .38s var(--ease),width .38s var(--ease);pointer-events:none;z-index:0}
body[data-tpl="dark"] .ind{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 86%,#fff),var(--accent))}
.sec{scroll-margin-top:68px}
.empty{text-align:center;color:var(--muted);padding:56px 24px}.empty svg{width:120px;height:120px;margin:0 auto 12px}.empty b{display:block;color:var(--text);font-size:17px}

/* reveal on scroll */
.rv{opacity:0;transform:translateY(14px)}.rv.in{opacity:1;transform:none;transition:opacity .6s var(--ease),transform .6s var(--ease)}
@keyframes rise2{from{opacity:0;transform:translateY(10px)}}

/* ================================================================ CLASSIC */
.c-head{text-align:center;padding:28px 24px 8px;position:relative}
.c-top{position:absolute;inset-inline:var(--pad);top:14px;display:flex;justify-content:space-between;align-items:center}
.c-mark{width:84px;height:84px;border-radius:50%;margin:20px auto 14px;display:grid;place-items:center;font-family:var(--font-display);font-size:48px;line-height:1;color:var(--accent);
  border:1.5px solid var(--accent);box-shadow:0 0 0 6px var(--bg),0 0 0 7px color-mix(in srgb,var(--accent) 38%,transparent);background:var(--surface)}
.c-head h1{font-family:var(--font-display);font-size:42px;line-height:1.3;color:var(--accent);font-weight:700}
.c-tag{color:var(--muted);font-size:14.5px;margin-top:2px}
.c-orn{display:flex;align-items:center;justify-content:center;gap:12px;color:var(--gold);margin:18px 0 12px}
.c-orn i{height:1px;width:70px;background:linear-gradient(to right,transparent,currentColor)}.c-orn i:last-child{background:linear-gradient(to left,transparent,currentColor)}
.c-orn svg{width:22px;height:22px}
.c-ctx{justify-content:center}.c-ctx .tablechip{margin-inline-start:0}
body[data-tpl="classic"] .search input{background:var(--surface);border-color:var(--line)}
body[data-tpl="classic"] .tabs{background:color-mix(in srgb,var(--bg) 90%,transparent)}
body[data-tpl="classic"] .tab{border-radius:0;padding:10px 6px;margin-inline:7px;color:var(--muted)}
body[data-tpl="classic"] .tab[aria-current="true"]{color:var(--accent);font-weight:800}
body[data-tpl="classic"] .ind{background:var(--accent);height:2px;top:auto;bottom:0;border-radius:2px}
.c-offer{margin:var(--s5) var(--pad) 0;border:1.5px solid var(--accent);border-radius:20px;padding:6px;cursor:pointer;position:relative}
.c-offer-in{border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:15px;padding:14px;display:flex;gap:14px;align-items:center;background:var(--surface)}
.c-offer .art{width:96px;height:96px;border-radius:50%;flex:none}
.c-offer small{font-weight:800;color:var(--gold);font-size:12px;letter-spacing:.03em}
.c-offer h3{font-family:var(--font-display);font-size:26px;line-height:1.35;color:var(--text)}
.c-offer .price{color:var(--accent);font-size:17px}
.c-sec h2{font-family:var(--font-display);font-size:32px;color:var(--accent);margin:var(--s6) var(--pad) 4px;display:flex;align-items:center;gap:12px;line-height:1.4;font-weight:700}
.c-sec h2 em{font-style:normal;font-family:var(--font-body);font-size:12px;font-weight:700;color:var(--gold);border:1px solid color-mix(in srgb,var(--gold) 50%,transparent);border-radius:99px;padding:2px 10px;order:3;margin-inline-start:auto}
.c-sec h2::after{content:"";flex:1;height:1px;background:linear-gradient(to left,var(--line),transparent);order:2}
html[dir=ltr] .c-sec h2::after{background:linear-gradient(to right,var(--line),transparent)}
.c-list{list-style:none;margin:0;padding:0 var(--pad)}
.c-row{display:flex;gap:14px;align-items:flex-start;padding:14px 0;border-bottom:1px dashed var(--line);cursor:pointer;transition:background .2s}
.c-row:last-child{border-bottom:0}.c-row:active{background:color-mix(in srgb,var(--accent) 5%,transparent)}
.c-row .art{width:72px;height:72px;border-radius:18px;flex:none}
.c-main{flex:1;min-width:0}
.c-line{display:flex;align-items:baseline;gap:8px}
.c-name{font-weight:800;font-size:16.5px;line-height:1.5}
.c-dots{flex:1;border-bottom:2px dotted color-mix(in srgb,var(--muted) 42%,transparent);translate:0 -5px;min-width:12px}
.c-row .price{color:var(--accent);font-size:16.5px}
.c-desc{color:var(--muted);font-size:13.5px;line-height:1.75;margin-top:2px}
.c-row .badges{margin-top:7px}
.c-row .plus{border-radius:50%;width:36px;height:36px;align-self:center}
.c-row.na{opacity:.55}
.c-foot{text-align:center;padding:48px 24px 0;color:var(--muted);font-size:13px}
.c-foot .c-mark{width:50px;height:50px;font-size:28px;margin:0 auto 10px;box-shadow:0 0 0 4px var(--bg),0 0 0 5px var(--line)}

/* ================================================================ CARDS */
.k-hello{padding:var(--s4) var(--pad) 0}
.k-brand{display:flex;align-items:center;gap:var(--s3)}
.k-logo{width:52px;height:52px;border-radius:17px;background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 80%,#ffb347),var(--accent));color:var(--accent-ink);display:grid;place-items:center;font-size:27px;font-weight:800;font-family:var(--font-display);box-shadow:0 10px 22px -10px color-mix(in srgb,var(--accent) 80%,#000);flex:none}
.k-brand h1{font-size:22px;font-weight:800;line-height:1.3}
.k-brand p{font-size:var(--fs-small);color:var(--muted)}
.k-hello .ctx{margin-top:var(--s3)}
.k-hero{margin:var(--s4) var(--pad) 0;border-radius:30px;padding:22px 20px;position:relative;overflow:hidden;color:#fff;cursor:pointer;min-height:200px;
  background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 94%,#000),color-mix(in srgb,var(--accent) 66%,#ffb347));box-shadow:0 22px 44px -22px color-mix(in srgb,var(--accent) 85%,#000)}
.k-hero::before{content:"";position:absolute;inset-inline-end:-50px;top:-50px;width:220px;height:220px;border-radius:50%;background:rgba(255,255,255,.12)}
.k-hero::after{content:"";position:absolute;inset-inline-end:50px;bottom:-80px;width:160px;height:160px;border-radius:50%;background:rgba(255,255,255,.09)}
.k-hero>small{display:inline-block;background:rgba(255,255,255,.2);padding:4px 11px;border-radius:99px;font-weight:700;font-size:12px;backdrop-filter:blur(4px)}
.k-hero h2{font-size:26px;font-weight:800;line-height:1.35;margin-top:10px;max-width:58%}
.k-hero p{font-size:13px;opacity:.9;margin-top:4px;max-width:56%}
.k-hero .row{display:flex;align-items:center;gap:var(--s3);margin-top:16px;position:relative;z-index:1}
.k-hero .price{font-size:23px}.k-hero .old{color:#fff;opacity:.7}.k-hero .price small{color:#fff;opacity:.8}
.k-hero .plus{background:#fff;color:var(--accent)}
.k-hero .art{position:absolute;inset-inline-end:2px;top:50%;translate:0 -50%;width:162px;height:162px;border-radius:50%;background:rgba(255,255,255,.17);z-index:0;box-shadow:0 20px 40px -20px rgba(0,0,0,.4)}
.k-h{display:flex;justify-content:space-between;align-items:baseline;padding:var(--s5) var(--pad) var(--s3)}
.k-h h2{font-size:var(--fs-h2);font-weight:800}.k-h span{font-size:var(--fs-small);color:var(--muted)}
body[data-tpl="cards"] .tab{padding:6px 15px 6px 8px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);margin-inline:2px}
html[dir=rtl] body[data-tpl="cards"] .tab{padding:6px 8px 6px 15px}
body[data-tpl="cards"] .tab[aria-current="true"]{border-color:transparent;background:transparent;box-shadow:none}
body[data-tpl="cards"] .tabs-scroll .ind{box-shadow:0 8px 18px -8px color-mix(in srgb,var(--accent) 80%,#000)}
.k-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3);padding:0 var(--pad)}
.k-card{background:var(--surface);border-radius:var(--radius);padding:10px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:9px;position:relative;cursor:pointer;transition:transform .25s var(--spring)}
.k-card:active{transform:scale(.97)}
.k-card .art{aspect-ratio:1/.92;border-radius:calc(var(--radius) - 8px)}
.k-card:hover .art svg{transform:scale(1.06) rotate(-2deg)}
.k-card .badges{position:absolute;inset-inline-start:17px;top:17px}
.k-card h3{font-size:14.5px;font-weight:700;line-height:1.5;padding-inline:3px}
.k-card .d{font-size:12.5px;color:var(--muted);line-height:1.65;padding-inline:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:-6px}
.k-card .foot{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:auto;padding-inline:3px}
.k-card .price{font-size:14.5px}.k-card .plus{width:34px;height:34px;border-radius:11px}
.k-card.na{opacity:.6}
.k-pop .k-card{width:166px}
.k-foot{text-align:center;color:var(--muted);font-size:13px;padding:44px 24px 0}

/* ================================================================ DARK */
.d-head{padding:var(--s5) var(--pad) 0}
.d-top{display:flex;justify-content:space-between;align-items:center;gap:var(--s3)}
.d-av{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#f0c08f,var(--accent) 55%,#8f5a30);color:var(--accent-ink);font-weight:800;font-size:25px;flex:none;box-shadow:0 10px 24px -10px var(--accent),inset 0 1px 0 rgba(255,255,255,.4)}
.d-top h1{font-size:23px;font-weight:800;line-height:1.3}
.d-head .ctx{margin-top:var(--s4)}
body[data-tpl="dark"] .search input{background:var(--surface);color:var(--text)}
.d-offer{margin:var(--s4) var(--pad) 0;border-radius:28px;background:linear-gradient(135deg,#f3ebe0,#e6d6c0);color:#1b1510;padding:20px;display:flex;align-items:center;gap:6px;position:relative;overflow:hidden;cursor:pointer;box-shadow:0 24px 50px -24px rgba(214,149,95,.45)}
.d-offer::after{content:"";position:absolute;inset-inline-start:-60px;bottom:-80px;width:200px;height:200px;border-radius:50%;background:rgba(214,149,95,.14)}
.d-offer small{color:#a8642f;font-weight:800;font-size:11.5px;letter-spacing:.06em}
.d-offer h2{font-size:23px;line-height:1.35;font-weight:800;margin:4px 0 8px}
.d-offer .price{font-size:23px;color:#1b1510}.d-offer .price small{color:#7a6f63;letter-spacing:0;font-weight:500;font-size:.62em}.d-offer .old{color:#8a7d6e}
.d-offer .col{flex:1;min-width:0;position:relative;z-index:1}
.d-offer .art{width:136px;height:136px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#fff3df,#d9ae7c);flex:none;margin-inline-end:-6px;box-shadow:0 18px 30px -14px rgba(120,70,20,.5);z-index:1}
.d-offer .plus{background:#1b1510;color:#fff;margin-top:12px;width:40px;height:40px;border-radius:13px}
.d-h{display:flex;justify-content:space-between;align-items:baseline;padding:var(--s5) var(--pad) var(--s3)}
.d-h h2{font-size:var(--fs-h2);font-weight:800}.d-h span{color:var(--muted);font-size:var(--fs-small)}
.d-pop .d-card{width:152px}
.d-card{background:var(--surface);border-radius:22px;padding:9px;cursor:pointer;display:flex;flex-direction:column;gap:9px;box-shadow:var(--shadow);border:1px solid var(--line2);transition:transform .25s var(--spring)}
.d-card:active{transform:scale(.97)}
.d-card .art{aspect-ratio:1;border-radius:15px}
.d-card h3{font-size:14px;font-weight:700;line-height:1.45;padding-inline:2px}
.d-card .foot{display:flex;justify-content:space-between;align-items:center;gap:4px;padding-inline:2px}
.d-card .price{font-size:14px;color:var(--accent)}.d-card .plus{width:32px;height:32px;border-radius:10px}
.d-list{display:flex;flex-direction:column;gap:10px;padding:0 var(--pad)}
.d-row{display:flex;gap:13px;align-items:center;background:var(--surface);border:1px solid var(--line2);border-radius:22px;padding:10px;cursor:pointer;transition:background .2s,transform .25s var(--spring);box-shadow:var(--shadow)}
.d-row:active{background:var(--surface2);transform:scale(.985)}
.d-row .art{width:88px;height:88px;border-radius:16px;flex:none}
.d-row .m{flex:1;min-width:0}
.d-row h3{font-size:15.5px;font-weight:700;line-height:1.5}
.d-row .d{font-size:12.5px;color:var(--muted);line-height:1.65;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.d-row .badges{margin-top:6px}
.d-row .f{display:flex;align-items:center;justify-content:space-between;margin-top:6px;gap:8px}
.d-row .price{color:var(--accent);font-size:15.5px}
.d-row.na{opacity:.55}
.d-foot{text-align:center;color:var(--muted);font-size:13px;padding:44px 24px 0}

/* footer common */
.brandline{display:inline-flex;gap:6px;align-items:center;margin-top:14px;font-size:12px;color:var(--muted);padding:6px 13px;border:1px solid var(--line);border-radius:99px;background:var(--surface)}
.brandline b{color:var(--accent)}
.social{display:flex;justify-content:center;gap:16px;margin-top:8px;font-weight:700;flex-wrap:wrap}

/* ---------------------------------------------------------------- bottom dock + cart bar */
.dock{position:fixed;inset-inline:0;bottom:calc(12px + env(safe-area-inset-bottom));z-index:45;margin-inline:auto;width:min(calc(var(--maxw) - 28px),calc(100% - 28px));display:flex;gap:2px;padding:6px;border-radius:24px;
  background:color-mix(in srgb,var(--surface) 84%,transparent);backdrop-filter:blur(20px) saturate(1.6);-webkit-backdrop-filter:blur(20px) saturate(1.6);border:1px solid var(--line);box-shadow:0 20px 44px -18px rgba(0,0,0,.5)}
.dock button{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border-radius:18px;font-size:11.5px;font-weight:700;color:var(--muted);position:relative;transition:background .2s,color .2s}
.dock button svg{width:22px;height:22px}
.dock button:active{background:var(--surface2)}.dock button.on{color:var(--accent)}
.dock .bd{position:absolute;top:2px;inset-inline-end:calc(50% - 22px);min-width:17px;height:17px;border-radius:99px;background:var(--accent);color:var(--accent-ink);font-size:10px;display:grid;place-items:center;font-weight:800;padding-inline:4px}
.cartbar{position:fixed;inset-inline:0;bottom:calc(12px + env(safe-area-inset-bottom));z-index:46;margin-inline:auto;width:min(calc(var(--maxw) - 28px),calc(100% - 28px));
  display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--accent);color:var(--accent-ink);border-radius:22px;padding:12px 14px 12px 18px;
  box-shadow:0 20px 40px -14px color-mix(in srgb,var(--accent) 75%,#000);animation:rise .4s var(--spring)}
body[data-tpl="dark"] .cartbar{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 86%,#fff),var(--accent))}
html[dir=rtl] .cartbar{padding:12px 18px 12px 14px}
body.hasdock .cartbar{bottom:calc(92px + env(safe-area-inset-bottom))}
.cartbar .l{display:flex;align-items:center;gap:12px;font-weight:800}
.cartbar .cnt{min-width:32px;height:32px;border-radius:11px;background:rgba(255,255,255,.24);display:grid;place-items:center;font-size:14px}
body[data-tpl="dark"] .cartbar .cnt{background:rgba(0,0,0,.18)}
.cartbar .tot{font-weight:800;font-size:15px}.cartbar .price small,.cta .price small{color:inherit;opacity:.72}
.cartbar.bump .cnt{animation:pop .5s var(--spring)}
@keyframes rise{from{opacity:0;transform:translateY(24px) scale(.97)}}
.fly{position:fixed;z-index:400;pointer-events:none;border-radius:50%;overflow:hidden;box-shadow:0 14px 26px -8px rgba(0,0,0,.5);display:grid;place-items:center;background:var(--surface)}
.fly svg,.fly img{width:84%;height:84%}

/* ---------------------------------------------------------------- sheets */
.bg{position:fixed;inset:0;z-index:100;background:rgba(8,6,4,.55);backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;animation:fade .25s;transition:opacity .25s}
.bg.out{opacity:0}
.sheet{width:100%;max-width:var(--maxw);max-height:93dvh;background:var(--bg);border-radius:30px 30px 0 0;display:flex;flex-direction:column;overflow:hidden;animation:up .45s var(--ease);position:relative;color:var(--text);will-change:transform;box-shadow:0 -20px 60px -20px rgba(0,0,0,.5)}
@media(min-width:700px){.bg{align-items:center}.sheet{border-radius:30px;max-height:90dvh}}
body[data-tpl="classic"] .sheet{background:var(--surface)}
@keyframes up{from{transform:translateY(70px);opacity:0}}@keyframes fade{from{opacity:0}}
.grab{width:44px;height:5px;border-radius:9px;background:color-mix(in srgb,var(--muted) 40%,transparent);margin:9px auto 0;flex:none;touch-action:none;cursor:grab;position:relative;z-index:4}
.sheet.has-hero .grab{position:absolute;inset-inline:0;top:0;margin-inline:auto;background:rgba(255,255,255,.7);box-shadow:0 1px 4px rgba(0,0,0,.3)}
.x{position:absolute;inset-inline-end:14px;top:14px;z-index:5;width:40px;height:40px;border-radius:50%;background:color-mix(in srgb,var(--bg) 78%,transparent);backdrop-filter:blur(10px);display:grid;place-items:center;border:1px solid var(--line)}
.x svg{width:18px;height:18px}
.sh-scroll{overflow-y:auto;flex:1;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.p-hero{height:280px;position:relative;touch-action:none;cursor:grab}
.p-hero .art{width:100%;height:100%;border-radius:0}
.p-hero .art svg{width:230px;height:230px;filter:drop-shadow(0 24px 24px rgba(0,0,0,.25))}
.p-card{position:relative;margin:-34px 14px 0;border-radius:26px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow),0 18px 30px -20px rgba(0,0,0,.35);padding:var(--s4);z-index:2}
body[data-tpl="classic"] .p-card{background:var(--bg)}
.p-top{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s3)}
.p-top h3{font-size:25px;font-weight:800;line-height:1.35;font-family:var(--font-display)}
body[data-tpl="classic"] .p-top h3{font-size:32px;color:var(--accent)}
.p-top .price{font-size:21px;color:var(--accent);padding-top:3px;text-align:end}
.p-card .badges{margin-top:var(--s2)}
.p-card .desc{color:var(--muted);font-size:14.5px;margin-top:var(--s2);line-height:1.8}
.facts{display:flex;gap:var(--s2);margin-top:var(--s3);flex-wrap:wrap}
.fact{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:13px;background:var(--surface2);font-size:12.5px;font-weight:700}
.fact svg{width:15px;height:15px;color:var(--accent)}
.p-opts{padding:0 var(--s4)}
.opt{border:0;padding:0;margin:var(--s5) 0 0;min-width:0}
.opt legend{font-weight:800;font-size:15.5px;padding:0;margin-bottom:var(--s3);display:flex;align-items:center;gap:8px;width:100%}
.opt legend em{font-style:normal;font-size:11px;font-weight:700;color:var(--accent);background:var(--accent-soft);padding:3px 9px;border-radius:99px}
.choices{display:flex;flex-wrap:wrap;gap:var(--s2)}
.choices.seg{display:grid;grid-template-columns:repeat(var(--n),1fr);gap:0;background:var(--surface2);padding:4px;border-radius:17px}
.choice{position:relative}
.choice input{position:absolute;opacity:0;inset:0;cursor:pointer;margin:0}
.choice span{display:flex;align-items:center;gap:7px;padding:10px 15px;border-radius:14px;border:1.5px solid var(--line);background:var(--surface);font-size:14px;font-weight:600;transition:all .2s var(--ease);user-select:none}
.choice span i{font-style:normal;font-size:12px;color:var(--muted);font-weight:500}
.choice input:checked+span{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.choice input:checked+span i{color:inherit;opacity:.8}
.choice input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.seg .choice span{flex-direction:column;gap:0;justify-content:center;text-align:center;border:0;background:none;padding:9px 6px;line-height:1.5;border-radius:13px}
.seg .choice input:checked+span{background:var(--surface);color:var(--text);box-shadow:0 4px 12px -4px rgba(0,0,0,.35)}
body[data-tpl="dark"] .seg .choice input:checked+span{background:var(--accent);color:var(--accent-ink)}
.seg .choice span i{font-size:11px;min-height:16px}
.pair{margin-top:var(--s5)}
.pair h4{margin:0 var(--s4) var(--s2);font-size:15.5px;font-weight:800}
.pair .hscroll{padding-inline:var(--s4)}
.mini-card{width:128px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:8px;cursor:pointer;display:flex;flex-direction:column;gap:6px;transition:transform .2s var(--spring)}
.mini-card:active{transform:scale(.96)}
.mini-card .art{aspect-ratio:1;border-radius:12px}
.mini-card b{font-size:13px;line-height:1.4;font-weight:700}.mini-card .price{font-size:12.5px;color:var(--accent)}
.p-foot{padding:var(--s3) var(--s4) calc(var(--s4) + env(safe-area-inset-bottom));border-top:1px solid var(--line);display:flex;gap:var(--s3);align-items:center;background:var(--bg);flex:none}
body[data-tpl="classic"] .p-foot{background:var(--surface)}
.qty{display:flex;align-items:center;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:4px;flex:none}
.qty button{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:21px;font-weight:700;transition:background .15s,transform .15s var(--spring)}
.qty button:active{background:var(--surface2);transform:scale(.9)}
.qty b{min-width:28px;text-align:center;font-size:16px}
.cta{flex:1;height:54px;border-radius:17px;background:var(--accent);color:var(--accent-ink);font-weight:800;font-size:15.5px;display:flex;align-items:center;justify-content:space-between;padding-inline:var(--s4);gap:10px;transition:transform .18s var(--spring),filter .2s;box-shadow:0 14px 26px -14px var(--accent)}
body[data-tpl="dark"] .cta{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 86%,#fff),var(--accent))}
.cta:active{transform:scale(.98)}.cta[disabled]{opacity:.45;box-shadow:none}
.cta.ghost{background:var(--surface);color:var(--text);border:1px solid var(--line);justify-content:center;box-shadow:none}
.viewonly{flex:1;text-align:center;color:var(--muted);font-size:13px;padding:12px;display:flex;gap:8px;align-items:center;justify-content:center}
.viewonly svg{width:18px;height:18px}

/* generic sheet pieces */
.s-title{font-size:22px;font-weight:800;padding:var(--s5) var(--s5) var(--s1);padding-inline-end:68px;font-family:var(--font-display);touch-action:none}
.s-sub{padding:0 var(--s5);color:var(--muted);font-size:13px}
.lines{padding:var(--s3) var(--s5);display:flex;flex-direction:column;gap:var(--s3)}
.line{display:flex;gap:var(--s3);align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:10px;animation:rise2 .4s var(--ease) both}
.line .art{width:58px;height:58px;border-radius:15px;flex:none}
.line .m{flex:1;min-width:0}.line .m b{display:block;font-size:14.5px;line-height:1.4}.line .m small{color:var(--muted);font-size:12px;display:block;line-height:1.5}
.line .m .price{font-size:14px;color:var(--accent)}
.line .qty button{width:32px;height:32px;font-size:18px}
.note{margin:var(--s2) var(--s5) 0;display:block}
.note textarea{width:100%;border-radius:16px;border:1px solid var(--line);background:var(--surface);padding:12px 14px;min-height:66px;resize:none;font-size:14px;outline:none}
.note textarea:focus{border-color:var(--accent)}
.sum{padding:var(--s4) var(--s5) var(--s1);display:flex;flex-direction:column;gap:6px}
.sum div{display:flex;justify-content:space-between;color:var(--muted);font-size:14px}
.sum .t{color:var(--text);font-weight:800;font-size:18px;margin-top:4px}
.notice{margin:var(--s3) var(--s5) 0;padding:12px 14px;border-radius:16px;background:var(--accent-soft);font-size:13px;display:flex;gap:10px;align-items:flex-start}
.notice svg{width:20px;height:20px;color:var(--accent);flex:none;margin-top:1px}
.cart-empty{text-align:center;padding:44px 24px 30px;color:var(--muted)}.cart-empty svg{width:96px;height:96px;margin:0 auto 10px}.cart-empty b{display:block;color:var(--text);font-size:17px}
.track{padding:6px var(--s5) 0}
.step{display:flex;gap:14px;align-items:flex-start;position:relative;padding-bottom:22px}
.step:last-child{padding-bottom:0}
.step::before{content:"";position:absolute;inset-inline-start:15px;top:34px;bottom:0;width:2px;background:var(--line)}
.step.on::before{background:var(--accent)}.step:last-child::before{display:none}
.step .dotc{width:32px;height:32px;border-radius:50%;background:var(--surface);border:2px solid var(--line);display:grid;place-items:center;flex:none;color:var(--muted);transition:all .4s var(--ease);z-index:1}
.step .dotc svg{width:16px;height:16px}
.step.on .dotc{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.step.cur .dotc{box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 22%,transparent);animation:pulse 1.8s infinite}
.step b{display:block;font-size:15px}.step span{font-size:12.5px;color:var(--muted)}
.step:not(.on) b{color:var(--muted);font-weight:600}
@keyframes pulse{50%{box-shadow:0 0 0 11px color-mix(in srgb,var(--accent) 6%,transparent)}}
.demo{margin:var(--s4) var(--s5) 0;font-size:11.5px;color:var(--muted);text-align:center}
.reqs{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:var(--s4) var(--s5)}
.req{display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px 8px;border-radius:20px;background:var(--surface);border:1.5px solid var(--line);font-weight:700;font-size:13.5px;text-align:center;transition:all .2s var(--ease)}
.req svg{width:28px;height:28px;color:var(--accent)}
.req[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft);transform:scale(1.02)}
.split{padding:var(--s4) var(--s5)}
.split .big{font-size:42px;font-weight:800;color:var(--accent);text-align:center;margin:10px 0 2px}
.split .cap{text-align:center;color:var(--muted);font-size:13px}
.split label{display:block;font-weight:700;font-size:14px;margin:var(--s4) 0 var(--s2)}
.split .amount{width:100%;height:52px;border-radius:16px;border:1px solid var(--line);background:var(--surface);padding:0 14px;font-size:17px;font-weight:700;outline:none}
.split .qty{justify-content:space-between;width:100%;padding:6px}.split .qty b{font-size:22px}
.info{padding:var(--s5);text-align:center}
.info .c-mark,.info .d-av,.info .k-logo{margin:0 auto var(--s3)}.info .d-av{width:70px;height:70px;font-size:34px}
.info h3{font-size:24px;font-weight:800;font-family:var(--font-display)}.info p{color:var(--muted)}
.info ul{list-style:none;padding:0;margin:var(--s5) 0 0;text-align:start;display:flex;flex-direction:column;gap:var(--s2)}
.info li{display:flex;gap:var(--s3);align-items:center;padding:12px 14px;background:var(--surface);border:1px solid var(--line);border-radius:16px;font-size:14px}
.info li svg{width:20px;height:20px;color:var(--accent);flex:none}
.toast{position:fixed;inset-inline:0;bottom:calc(168px + env(safe-area-inset-bottom));z-index:500;margin-inline:auto;width:max-content;max-width:calc(100% - 40px);background:#1b1a18;color:#fff;padding:12px 18px;border-radius:16px;font-size:14px;font-weight:600;
  box-shadow:0 14px 32px -10px rgba(0,0,0,.5);animation:rise .35s var(--spring);display:flex;gap:9px;align-items:center}
.toast svg{width:18px;height:18px;color:#6fd69a;flex:none}

/* ---------------------------------------------------------------- skeleton */
.skel{background:linear-gradient(100deg,var(--surface2) 30%,color-mix(in srgb,var(--surface2) 55%,var(--surface)) 50%,var(--surface2) 70%);background-size:300% 100%;animation:shim 1.3s linear infinite;border-radius:12px}
@keyframes shim{from{background-position:100% 0}to{background-position:0 0}}
.sk-wrap{padding:var(--s5) var(--pad) 0;display:grid;gap:var(--s3)}
.sk-wrap.grid{grid-template-columns:1fr 1fr}
.sk-row{display:flex;gap:var(--s3);padding:10px;border-radius:20px;background:var(--surface);border:1px solid var(--line2)}
.sk-row .skel:first-child{width:80px;height:80px;border-radius:16px;flex:none}
.sk-row div{flex:1;display:grid;gap:8px;align-content:center}
.sk-card{border-radius:24px;background:var(--surface);padding:10px;display:grid;gap:8px}
.sk-card .skel:first-child{aspect-ratio:1/.92;border-radius:16px}

/* ---------------------------------------------------------------- splash / welcome */
.splash{position:fixed;inset:0;z-index:600;display:flex;align-items:flex-end;justify-content:center;overflow:hidden;transition:transform .7s var(--ease),opacity .5s;background:var(--bg);color:var(--text)}
.splash.gone{transform:translateY(-100%);opacity:.6}
.sp-in{width:100%;max-width:var(--maxw);height:100%;position:relative;display:flex;flex-direction:column;justify-content:flex-end;padding:var(--s6) var(--s5) calc(var(--s6) + env(safe-area-inset-bottom))}
.sp-art{position:absolute;inset:0 0 30% 0;display:grid;place-items:center;pointer-events:none}
.sp-art .art{border-radius:50%;position:absolute;box-shadow:0 30px 50px -20px rgba(0,0,0,.55);animation:float 6s ease-in-out infinite}
.sp-art .a1{width:min(74vw,350px);height:min(74vw,350px);top:20%}
.sp-art .a2{width:108px;height:108px;inset-inline-start:6%;top:9%;animation-delay:-2s}
.sp-art .a3{width:96px;height:96px;inset-inline-end:6%;top:46%;animation-delay:-4s}
@keyframes float{50%{transform:translateY(-12px) rotate(2deg)}}
.sp-in small{font-weight:800;letter-spacing:.08em;color:var(--accent);font-size:12.5px}
.sp-in h1{font-size:38px;line-height:1.3;font-weight:800;margin:6px 0 8px;font-family:var(--font-display)}
.sp-in p{color:var(--muted);font-size:15px;max-width:340px}
.slide{position:relative;height:64px;border-radius:99px;background:color-mix(in srgb,var(--text) 9%,transparent);margin-top:var(--s5);display:flex;align-items:center;padding:6px;overflow:hidden;border:1px solid var(--line)}
.slide .lbl{position:absolute;inset:0;display:grid;place-items:center;font-weight:700;font-size:15px;color:var(--muted);pointer-events:none;transition:opacity .2s}
.knob{width:52px;height:52px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;position:relative;z-index:2;touch-action:none;cursor:grab;box-shadow:0 8px 20px -6px var(--accent);flex:none}
.knob svg{width:24px;height:24px}html[dir=rtl] .knob svg{transform:scaleX(-1)}
body[data-tpl="classic"] .sp-in{align-items:center;text-align:center;justify-content:center}
body[data-tpl="classic"] .sp-art{display:none}
body[data-tpl="classic"] .sp-in h1{font-size:54px;color:var(--accent)}
body[data-tpl="classic"] .sp-in .c-mark{margin-bottom:var(--s4)}
.sp-btn{margin-top:var(--s5);height:56px;padding-inline:36px;border-radius:99px;background:var(--accent);color:var(--accent-ink);font-weight:800;font-size:16px;box-shadow:0 16px 30px -14px var(--accent)}
body[data-tpl="cards"] .splash{background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 94%,#000),color-mix(in srgb,var(--accent) 60%,#ffc15a));color:#fff}
body[data-tpl="cards"] .sp-in small{color:#fff;opacity:.85}body[data-tpl="cards"] .sp-in p{color:rgba(255,255,255,.85)}
body[data-tpl="cards"] .slide{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.25)}body[data-tpl="cards"] .slide .lbl{color:#fff}
body[data-tpl="cards"] .knob{background:#fff;color:var(--accent);box-shadow:0 8px 20px -6px rgba(0,0,0,.35)}
body[data-tpl="cards"] .sp-art .art{--tint-strength:100%;background:rgba(255,255,255,.2)}
body[data-tpl="dark"] .splash{background:radial-gradient(120% 70% at 50% 0%,#2a1c12,#0b0c0f 62%)}

/* ---------------------------------------------------------------- preview panel (not part of the page) */
body.embed .dev{display:none}
.dev{position:fixed;z-index:300;left:0;top:42%;font-family:var(--font-body)}
.dev>button{display:flex;align-items:center;gap:8px;background:#161412cc;color:#fff;border-radius:0 16px 16px 0;padding:11px 9px 11px 7px;font-size:13px;font-weight:700;box-shadow:0 10px 30px -8px rgba(0,0,0,.5);backdrop-filter:blur(8px)}
.dev>button svg{width:17px;height:17px}.dev>button span{display:none}.dev>button:hover span{display:inline;padding-inline:4px 6px}
.devp{position:absolute;top:-120px;left:46px;width:min(340px,calc(100vw - 70px));background:#161412;color:#f3eee7;border-radius:22px;padding:16px;box-shadow:0 30px 70px -20px rgba(0,0,0,.7);max-height:80dvh;overflow:auto;direction:rtl;text-align:right}
.devp h4{margin:14px 0 8px;font-size:12px;color:#9a948a;font-weight:700}.devp h4:first-child{margin-top:0}
.seg3{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.seg3 button{padding:9px 6px;border-radius:12px;background:#24211e;font-size:12.5px;font-weight:700;color:#d8d2c8;border:1.5px solid transparent;text-align:center}
.seg3 button[aria-pressed="true"]{border-color:#d19262;color:#fff;background:#2e2822}
.tg{display:flex;justify-content:space-between;align-items:center;padding:8px 0;font-size:13.5px;font-weight:600;border-bottom:1px solid #26231f}.tg:last-child{border:0}
.sw{width:42px;height:24px;border-radius:99px;background:#3a3631;position:relative;transition:background .2s;flex:none}
.sw::after{content:"";position:absolute;top:3px;inset-inline-start:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .2s var(--ease)}
.sw[aria-checked="true"]{background:#2f9e63}
html[dir=rtl] .sw[aria-checked="true"]::after{transform:translateX(-18px)}html[dir=ltr] .sw[aria-checked="true"]::after{transform:translateX(18px)}
.swatches{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.swatches button{width:30px;height:30px;border-radius:50%;border:2px solid #161412;box-shadow:0 0 0 1.5px #3a3631}
.swatches button[aria-pressed="true"]{box-shadow:0 0 0 2.5px #fff}.swatches input{width:34px;height:30px;border:0;background:none;padding:0}
.presets{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.presets button{padding:10px 8px;border-radius:12px;background:#24211e;font-size:12.5px;font-weight:700;text-align:center;line-height:1.5}
.presets small{display:block;color:#9a948a;font-weight:500;font-size:11px}
.devp .wide{width:100%;margin-top:6px;padding:10px;border-radius:12px;background:#24211e;font-size:12.5px;font-weight:700}

/* ---------------------------------------------------------------- no-photo mode: typography carries the design */
body.noimg .art{display:none}
body.noimg .p-hero{display:none}
body.noimg .p-card{margin-top:64px}
body.noimg .k-card{padding:14px}body.noimg .k-grid{grid-template-columns:1fr}
body.noimg .k-card .badges{position:static;order:-1}
body.noimg .k-hero h2,body.noimg .k-hero p{max-width:100%}
body.noimg .k-pop .k-card{width:200px}body.noimg .d-pop .d-card{width:150px}

@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.rv{opacity:1;transform:none}}

/* social links + hours */
.social a{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:99px;border:1px solid var(--line);color:inherit;text-decoration:none;font-size:13px;font-weight:700}
.social a svg{width:16px;height:16px;color:var(--accent);flex:none}
.info ul li a{color:inherit;text-decoration:none}

/* announcement bar */
.ann{display:flex;align-items:center;gap:10px;margin:10px 14px 0;padding:9px 10px 9px 12px;border-radius:16px;font-size:13px;line-height:1.7;font-weight:600;border:1px solid var(--line);background:var(--surface);color:var(--text);animation:annIn .4s cubic-bezier(.2,.8,.2,1)}
@keyframes annIn{from{opacity:0;transform:translateY(-8px)}}
.ann p{flex:1;margin:0;min-width:0}
.ann .ai{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}.ann .ai svg{width:17px;height:17px}
.ann-promo{background:var(--accent);color:var(--accent-ink,#fff);border-color:transparent}.ann-promo .ai{background:rgba(255,255,255,.2);color:inherit}
.ann-warn{background:#fff3d6;color:#7a4b00;border-color:#f0d58f}.ann-warn .ai{background:rgba(217,138,0,.18);color:#b36b00}
body[data-tpl="dark"] .ann-warn{background:rgba(217,138,0,.16);color:#f2c36b;border-color:rgba(242,195,107,.3)}
.ann .ab{flex:none;padding:6px 12px;border-radius:99px;font-size:12px;font-weight:800;background:var(--accent);color:var(--accent-ink,#fff);text-decoration:none}.ann-promo .ab{background:#fff;color:var(--accent)}
.ann .ax{flex:none;width:28px;height:28px;display:grid;place-items:center;opacity:.6;color:inherit}.ann .ax svg{width:15px;height:15px}

/* closed branch page */
.closed{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:32px 22px;text-align:center}
.closed-mark{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;font-size:36px;font-weight:800;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}
.closed h1{font-size:24px}.closed-t{font-size:17px;font-weight:700}.closed-s{color:var(--muted);font-size:13.5px}
.closed h2{font-size:14px;color:var(--muted);margin-top:14px}
.closed-l{list-style:none;display:grid;gap:8px;width:min(360px,100%);margin-top:4px}.closed-l li{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:12px 14px;text-align:start}.closed-l b{display:block}.closed-l span{color:var(--muted);font-size:12.5px}

/* optional cafe logo image */
.has-img{padding:0 !important;overflow:hidden}.has-img img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}

/* optional cafe logo image */
.has-img{padding:0 !important;overflow:hidden}.has-img img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}

/* live update: a gentle highlight on changed dishes + a small status pill */
@keyframes flash{0%,60%{background:color-mix(in srgb,var(--accent) 16%,transparent);box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 16%,transparent)}100%{background:transparent;box-shadow:none}}
.flash{animation:flash 2.2s ease-out;border-radius:18px}
.upd{position:fixed;inset-inline:0;top:calc(14px + env(safe-area-inset-top));margin-inline:auto;width:max-content;z-index:600;display:flex;align-items:center;gap:8px;padding:9px 16px;border-radius:99px;background:#1d1b18;color:#fff;font-size:13px;font-weight:700;box-shadow:0 8px 24px rgba(0,0,0,.22);animation:rise2 .3s}
.upd svg{width:16px;height:16px;color:#6fd69a;flex:none}
@media(prefers-reduced-motion:reduce){.flash{animation:none;background:color-mix(in srgb,var(--accent) 14%,transparent)}}

/* product sheet: name on its own line, price + discount below; no cramped two-column header */
.p-name{font-size:25px;font-weight:800;line-height:1.45;font-family:var(--font-display);text-wrap:balance}
body[data-tpl="classic"] .p-name{font-size:32px;color:var(--accent)}
.p-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 10px;margin-top:6px}
.p-price .price{font-size:22px;color:var(--accent)}
.p-price .old{margin:0;font-size:14px}
.p-price .pct{align-self:center;font-size:11.5px;font-weight:800;padding:3px 9px;border-radius:99px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}
.p-card .badges{margin-top:var(--s3)}
.fact[hidden]{display:none}.fact b{font-weight:700}
.kc-note{margin-top:8px;font-size:11.5px;color:var(--muted);line-height:1.7}
.seg .choice span{min-height:44px}
.seg .choice span i{min-height:0}
.seg .choice span i.z{opacity:.55}

/* map card */
.mapc{margin:var(--s5) var(--s4) 0;padding:var(--s4);border-radius:24px;background:var(--surface);border:1px solid var(--line)}
.mapc h2{font-size:17px;font-weight:800;margin-bottom:var(--s3)}
.mapc-m{height:210px;border-radius:18px;overflow:hidden;background:var(--surface2);position:relative;z-index:0;display:grid;place-items:center;color:var(--muted);font-size:13px;text-align:center;padding:12px}
.mapc-m .leaflet-container{position:absolute;inset:0;height:100%;width:100%;font-family:inherit;background:var(--surface2)}
.mm-pin{background:none;border:0}
.mapc-a{display:flex;gap:8px;align-items:flex-start;margin-top:var(--s3);font-size:13.5px;color:var(--muted);line-height:1.8}.mapc-a svg{width:17px;height:17px;flex:none;margin-top:5px;color:var(--accent)}
.mapc-l{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:var(--s3)}.mapc-l small{width:100%;font-size:12px;color:var(--muted);font-weight:700}
.mapc-b{display:inline-flex;align-items:center;gap:7px;padding:10px 14px;border-radius:14px;background:var(--accent-soft);color:var(--accent);font-weight:800;font-size:13.5px;text-decoration:none;border:1.5px solid transparent;transition:transform .15s var(--ease)}
.mapc-b svg{width:16px;height:16px}.mapc-b:active{transform:scale(.97)}.mapc-b:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* production page: no developer tools, no language switch (the cafe has one language) */
html.prod #dev,html.prod .dev,html.prod [data-lang]{display:none!important}
body.embed #dev,body.embed .dev{display:none!important}
