/* =====================================================================
   SMOKE —— 菜单板（board）式排版，适配 BBQ / 南方菜
   ---------------------------------------------------------------------
   设计出发点：烤肉铺墙上那块炭黑手写价目板，配一张裁边的牛皮纸包装纸。
   页面本体是牛皮纸，菜单是钉在纸上的黑板 —— 所以"两栏密排 + 点线连价格"
   不是一个装饰，而是整站的主结构；首屏也不放大图，标题直接木刻在纸上。
   配色：牛皮纸 #DBCBAB（包肉纸的黄褐，不是米白）、炭黑 #191512（板面）、
   余烬橙 #D2601A（只给价格、分类名和主按钮，像炭火透出来的那点亮）、
   骨白 #F2E8D5（板上的字）。整体偏暗是刻意的，不提供明暗切换。
   字体：Bevan 是 19 世纪木活字的粗衬线，正是老招牌刷出来的味道，只做标题；
   Archivo Narrow 窄体做板上的菜名和价格（板子空间小，窄体才排得下）；
   Lora 做正文，衬线的温度配牛皮纸。
   木刻质感：45° 重复线 + 粗描边，全部用 CSS 画，不引入任何图片。
   ===================================================================== */

:root{
  color-scheme: light;
  --kraft:#DBCBAB;
  --kraft-2:#CDB994;
  --char:#191512;          /* 板面 */
  --char-2:#241E19;
  --ember:#D2601A;
  --ember-2:#B04E10;
  --bone:#F2E8D5;
  --ash:#8C7F6B;
  --ink:#221C16;
  --line:#B9A582;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;color:var(--ink);background:var(--kraft);
  font-family:"Lora",Georgia,"Times New Roman",serif;font-size:16.5px;line-height:1.65;
  /* 牛皮纸的纤维：两组极淡的斜纹交叉，比噪点图便宜得多 */
  background-image:
    repeating-linear-gradient(45deg,rgba(34,28,22,.028) 0 1px,transparent 1px 7px),
    repeating-linear-gradient(-45deg,rgba(34,28,22,.022) 0 1px,transparent 1px 9px);
}
a{color:inherit}
img{max-width:100%}
.wrap{max-width:1080px;margin:0 auto;padding-left:22px;padding-right:22px}
.sec{padding-top:52px;padding-bottom:52px}

/* ── 顶栏：一条炭黑窄带压在纸上 ── */
.topbar{background:var(--char);border-bottom:4px solid var(--ember)}
.topbar-in{display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding-top:12px;padding-bottom:12px}
.mark{font-family:"Bevan",Rockwell,Georgia,serif;font-size:16px;letter-spacing:.02em;
  color:var(--bone);text-decoration:none}
.topbar nav{display:flex;align-items:center;gap:20px}
.topbar nav a{font-family:"Archivo Narrow",Arial Narrow,sans-serif;font-weight:600;
  font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:#B6A78E;
  text-decoration:none}
.topbar nav a:hover{color:var(--ember)}
.cartbtn{font-family:"Archivo Narrow",Arial Narrow,sans-serif;font-weight:700;font-size:13px;
  letter-spacing:.14em;text-transform:uppercase;background:var(--ember);color:#fff;border:0;
  padding:9px 14px;cursor:pointer;display:inline-flex;align-items:center;gap:9px}
.cartbtn:hover{background:var(--ember-2)}
.cartbtn span{background:var(--char);color:var(--bone);min-width:20px;height:20px;
  display:inline-grid;place-items:center;font-size:12px;letter-spacing:0}

/* ── 首屏：整屏门面照（route A），文字贴左下角 ─────────────
   压暗层两层：::before 是炭黑到余烬橙的乘法色相洗，只会变暗不会变亮，
   挑中的图不管是亮天空还是暗色调的菜品特写都安全；::after 用普通透明度
   合成，锚定在文字真正落脚的左下角，往右上角照片主体淡出。
   没有门面照时，直接退回这一套最初的设计——牛皮纸 + 木刻标题错版重影，
   本来就是它的默认长相，不是另做一套兜底。 */
.hero{
  position:relative;isolation:isolate;overflow:hidden;
  /* 2026-08-30：从 100svh 压到 64svh，给下面的 .meatcase 菜品带腾出首屏空间 */
  min-height:min(64svh,560px);
  background-color:var(--char);background-size:cover;background-position:center 45%;
  display:flex;align-items:flex-end;justify-content:flex-start;
}
.hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:1;
  background:linear-gradient(to top right,rgba(25,21,18,.62),rgba(210,96,26,.2));
  mix-blend-mode:multiply;
}
.hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:1;
  background:radial-gradient(ellipse 90% 78% at 0% 100%,
    rgba(14,11,9,.92) 0%,rgba(14,11,9,.58) 42%,rgba(14,11,9,0) 76%);
}
.hero.no-photo::before,.hero.no-photo::after{display:none}
.hero.no-photo{background-image:none!important;background:var(--kraft)}
.hero-frame{
  position:relative;z-index:2;text-align:left;
  max-width:min(58ch,88%);
  padding:clamp(28px,5vh,54px) clamp(20px,4.4vw,56px);
}
.stamp{margin:0 0 18px;font-family:"Archivo Narrow",sans-serif;font-weight:700;font-size:12px;
  letter-spacing:.3em;text-transform:uppercase;color:#FFCFA0;text-shadow:0 1px 8px rgba(0,0,0,.4)}
.hero h1{font-family:"Bevan",Rockwell,Georgia,serif;font-weight:400;
  font-size:clamp(38px,7.6vw,88px);line-height:1.02;margin:0;letter-spacing:-.005em;
  color:var(--bone);text-wrap:balance;
  /* 照片上不做错版重影（那层投影是给浅色纸面设计的，压在照片上会显脏），
     改成一道柔和的暗色投影，兼顾亮/暗两种照片 */
  text-shadow:0 3px 22px rgba(0,0,0,.55)}
/* 没有门面照：退回最初那版木刻标题的配色和错版重影 */
.hero.no-photo .stamp{color:var(--ember-2);text-shadow:none}
.hero.no-photo h1{color:var(--char);text-shadow:3px 3px 0 rgba(210,96,26,.22)}
/* 木刻的斜排刀痕：线要够粗、间距要够开，否则缩小后糊成一团像划痕。
   照片上用余烬橙才看得见，没照片时退回炭黑（原来的设计） */
.hatch{height:19px;margin:24px 0 22px;max-width:220px;
  background:repeating-linear-gradient(45deg,var(--ember) 0 3px,transparent 3px 10px)}
.hero.no-photo .hatch{
  background:repeating-linear-gradient(45deg,var(--char) 0 3px,transparent 3px 10px)}
/* 下滚线索：一条粗余烬线 + 一个折角，比首页别处的都更「粗野」，呼应烤肉铺气质 */
.scrollcue{display:inline-flex;align-items:center;gap:11px;margin-top:26px;text-decoration:none;
  font-family:"Archivo Narrow",Arial Narrow,sans-serif;font-weight:700;font-size:12px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--bone)}
.hero.no-photo .scrollcue{color:var(--char)}
.scrollcue i{width:26px;height:2px;background:var(--ember);position:relative;flex:none}
.scrollcue i::after{content:"";position:absolute;right:-1px;top:50%;width:8px;height:8px;
  border-right:2px solid var(--ember);border-bottom:2px solid var(--ember);
  transform:translateY(-50%) rotate(45deg)}
.hero.no-photo .scrollcue i,.hero.no-photo .scrollcue i::after{border-color:var(--ember-2);
  background:var(--ember-2)}
.hero.no-photo .scrollcue i::after{background:none}

/* ── 首屏菜品带（2026-08-30 第二轮，F1 贴边胶片带家族）──────────────
   骨架跟 route 一样：紧贴门面照下方、贴着屏幕左右边缘的连续照片带，
   grid-auto-flow:column 把 N 张图平分整条带宽度，用 100vw + 负偏移撑破
   .wrap 的容器宽度做"贴边"。
   表面处理（区别于 route）：牛皮纸底色缝隙（不是沥青路面）、每张图
   厚炭黑边框 + 交替 ±2deg 的轻微歪斜（图钉钉上去的手感，呼应
   #featuredGrid 的钉照）、菜名是挂在图片上方的余烬橙小纸签而不是压在
   图片本身上的角标、图片是竖构图（4:5）不是 route 的横构图（4:3）。 */
.meatcase{display:none}
.meatcase.has-photos{
  display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:14px;
  background:var(--kraft-2);padding:16px 14px 10px;
  width:100vw;position:relative;left:50%;transform:translateX(-50%);
  box-sizing:border-box;
}
/* column-reverse：DOM 里 img 在前、figcaption 在后（app.js 固定的结构），
   视觉上用 flex 倒过来，让纸签显示在图片上方 */
.meatcase .hd-item{position:relative;margin:0;display:flex;flex-direction:column-reverse}
/* 交替歪斜：奇数张往左偏、偶数张往右偏，图钉钉上去的松散手感 */
.meatcase .hd-item:nth-child(odd){transform:rotate(-2deg)}
.meatcase .hd-item:nth-child(even){transform:rotate(1.6deg)}
.meatcase .hd-img{display:block;width:100%;height:100%;aspect-ratio:4/5;object-fit:cover;
  border:3px solid var(--char);outline:1px solid #57493A;background:var(--kraft)}
/* 菜名纸签：挂在图片上方，不是压在图片上——跟 route 的角标反过来 */
.meatcase .hd-name{margin:0 0 6px;font-family:"Archivo Narrow",Arial Narrow,sans-serif;
  font-weight:700;font-size:11px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--char);background:var(--ember);display:inline-block;
  padding:3px 8px;max-width:100%;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap;box-sizing:border-box}
.meatcase .hd-name.is-empty{display:none}

/* 照片下面第一屏：标语 + 两个按钮从 .hero 搬下来落脚的地方 */
.lede{padding:clamp(36px,6vw,64px) 0 clamp(10px,2vw,18px)}
.lead{font-family:"Lora",Georgia,serif;font-size:clamp(16px,1.7vw,19.5px);
  max-width:42ch;margin:0;color:#4A4036}
.acts{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.btn{display:inline-flex;align-items:center;justify-content:center;
  font-family:"Archivo Narrow",Arial Narrow,sans-serif;font-weight:700;font-size:14px;
  letter-spacing:.14em;text-transform:uppercase;padding:14px 24px;text-decoration:none;
  cursor:pointer;border:2px solid var(--char);background:none;color:var(--char)}
.btn-ember{background:var(--ember);border-color:var(--ember);color:#fff;
  box-shadow:4px 4px 0 var(--char)}
.btn-ember:hover{background:var(--char);border-color:var(--char);box-shadow:4px 4px 0 var(--ember)}
.btn-line:hover{background:var(--char);color:var(--bone)}
.btn:focus-visible,.cartbtn:focus-visible,.add:focus-visible,#catChips a:focus-visible{
  outline:3px solid var(--ember);outline-offset:3px}

/* ── 菜单板：整套的核心元件 ── */
.board{background:var(--char);color:var(--bone);border:3px solid var(--char);
  box-shadow:0 0 0 1px var(--line),9px 9px 0 rgba(25,21,18,.18);padding:0 22px 22px}
.board-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px;
  margin:0 -22px 4px;padding:16px 22px 14px;border-bottom:2px solid #3A322A}
.board-head h2{font-family:"Bevan",Rockwell,Georgia,serif;font-weight:400;
  font-size:clamp(20px,2.6vw,28px);margin:0;color:var(--bone);line-height:1.1}
.board-head span{font-family:"Archivo Narrow",sans-serif;font-weight:700;font-size:11.5px;
  letter-spacing:.24em;text-transform:uppercase;color:var(--ember)}
.board-foot{margin:18px 0 0;font-family:"Archivo Narrow",sans-serif;font-weight:700;
  font-size:12.5px;letter-spacing:.16em;text-transform:uppercase}
.board-foot a{color:var(--ember);text-underline-offset:5px}

/* 招牌菜：板上的三行，名字与价格之间是点线 */
#featuredGrid{display:flex;flex-direction:column}
#featuredGrid .feat-card{display:grid;grid-template-columns:50px 1fr auto;gap:2px 12px;
  align-items:center;padding:15px 0;border-bottom:1px dashed #3D342B;text-decoration:none}
#featuredGrid .feat-card:last-child{border-bottom:0}
/* 2026-08-30 追加：真实菜品照要露出来。做成钉在板子上的小方照——
   炭黑细框 + 轻微歪斜，像用图钉别上去的，不是干净的产品图卡片。 */
#featuredGrid .feat-card>img,#featuredGrid .feat-img--empty{
  grid-column:1;grid-row:1/3;width:50px;height:50px;flex:none;
  border:2px solid var(--char);outline:1px solid #57493A;transform:rotate(-2deg);
}
#featuredGrid .feat-card>img{object-fit:cover}
#featuredGrid .feat-img--empty{background:#2A231C;display:grid;place-items:center}
#featuredGrid .feat-img--empty span{font-family:"Bevan",Georgia,serif;font-size:20px;
  color:var(--ember);line-height:1}
#featuredGrid .feat-body{display:contents}
#featuredGrid .feat-body h4{grid-column:2;margin:0;display:flex;align-items:baseline;gap:9px;
  font-family:"Archivo Narrow",Arial Narrow,sans-serif;font-weight:700;font-size:19px;
  letter-spacing:.03em;text-transform:uppercase;color:var(--bone)}
#featuredGrid .feat-body h4::after{content:"";flex:1;min-width:22px;
  border-bottom:2px dotted #5B5044;transform:translateY(-5px)}
#featuredGrid .feat-body p{grid-column:2;margin:3px 0 0;font-size:14px;color:#A79A85;
  font-style:italic;max-width:56ch}
#featuredGrid .feat-price{grid-column:3;grid-row:1;font-family:"Archivo Narrow",sans-serif;
  font-weight:700;font-size:19px;color:var(--ember)}
#featuredGrid .feat-card:hover h4{color:var(--ember)}

/* ── 纸上的段落 ── */
h2.dark{font-family:"Bevan",Rockwell,Georgia,serif;font-weight:400;
  font-size:clamp(24px,3.4vw,38px);line-height:1.12;margin:0 0 20px;color:var(--char)}
h2.dark em{font-style:normal;color:var(--ember-2)}
.prose{margin:0 0 15px}
.split{display:grid;grid-template-columns:1.25fr .75fr;gap:46px;align-items:start}
/* 数据：三个粗描边的印记块 */
.marks{display:flex;flex-direction:column;gap:12px}
.marks div{border:2px solid var(--char);padding:12px 15px;background:rgba(242,232,213,.4)}
.marks b{display:block;font-family:"Bevan",Georgia,serif;font-weight:400;font-size:21px;
  line-height:1.25;color:var(--ember-2)}
.marks span{font-family:"Archivo Narrow",sans-serif;font-size:13.5px;color:#5A5044;
  letter-spacing:.04em}

.praise{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.praise div{padding-top:16px;border-top:6px solid var(--char)}
.praise h3{font-family:"Archivo Narrow",sans-serif;font-weight:700;font-size:15px;
  letter-spacing:.1em;text-transform:uppercase;margin:0 0 7px}
.praise p{margin:0;font-size:15px;color:#544A3E}

.addr{font-family:"Archivo Narrow",sans-serif;font-weight:600;font-size:19px;margin:0 0 8px}
.tel{font-family:"Bevan",Georgia,serif;font-size:26px;color:var(--ember-2);
  text-decoration:none;display:inline-block;margin:8px 0}
.under{font-family:"Archivo Narrow",sans-serif;font-weight:700;font-size:12.5px;
  letter-spacing:.14em;text-transform:uppercase;text-underline-offset:5px}
.board--hours table{width:100%;border-collapse:collapse;
  font-family:"Archivo Narrow",sans-serif;font-size:15px;margin-top:12px}
.board--hours td{padding:9px 0;border-bottom:1px dashed #3D342B;color:var(--bone)}
.board--hours td:last-child{text-align:right;color:#A79A85;white-space:nowrap}
#storefrontSlot:not(:empty){margin-top:20px}
#storefrontSlot img{display:block;width:100%;border:3px solid var(--char)}

footer{background:var(--char);color:#8E8271;padding:22px 0 34px;
  font-family:"Archivo Narrow",sans-serif;font-size:13.5px;border-top:4px solid var(--ember)}
.foot-in{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}

/* ── 菜单页 ── */
.menu-top{padding-top:44px;padding-bottom:10px}
.menu-top h1{font-family:"Bevan",Rockwell,Georgia,serif;font-weight:400;
  font-size:clamp(34px,6.2vw,68px);margin:0 0 12px;color:var(--char);
  text-shadow:3px 3px 0 rgba(210,96,26,.22)}
.chipbar{position:sticky;top:0;z-index:20;background:var(--char);
  border-top:3px solid var(--char);border-bottom:3px solid var(--ember)}
#catChips{display:flex;gap:8px;overflow-x:auto;padding:10px 0;
  scrollbar-width:none;-ms-overflow-style:none}
#catChips::-webkit-scrollbar{display:none}
#catChips a{white-space:nowrap;text-decoration:none;font-family:"Archivo Narrow",sans-serif;
  font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:#B6A78E;border:1px solid #443A30;padding:8px 12px}
#catChips a:hover{background:var(--ember);border-color:var(--ember);color:#fff}

.board--full{padding-top:6px}
#fullMenu .menu-cat{scroll-margin-top:58px;padding-top:26px}
#fullMenu h3{font-family:"Bevan",Rockwell,Georgia,serif;font-weight:400;font-size:20px;
  color:var(--ember);margin:0 0 6px;display:flex;align-items:center;gap:14px}
#fullMenu h3::after{content:"";flex:1;height:2px;background:#3D342B}
/* 密排两栏：grid 横向流动（跟杂志式的 CSS 多栏刻意不同） */
#fullMenu .menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 46px}
#fullMenu .dish{display:grid;grid-template-columns:44px 1fr auto;gap:2px 12px;
  align-items:center;padding:12px 0;border-bottom:1px dashed #352D26}
/* 2026-08-30 追加：跟首页招牌菜同一处理——钉在板上的小方照，尺寸略小 */
#fullMenu .dish-img,#fullMenu .dish-img--empty{
  grid-column:1;grid-row:1/3;width:44px;height:44px;flex:none;
  border:2px solid var(--char);outline:1px solid #57493A;
}
#fullMenu .dish-img{object-fit:cover}
#fullMenu .dish-img--empty{background:#2A231C;display:grid;place-items:center}
#fullMenu .dish-img--empty span{font-family:"Bevan",Georgia,serif;font-size:17px;
  color:var(--ember);line-height:1}
#fullMenu .dish-body{grid-column:2}
#fullMenu .dish-body h4{margin:0;display:flex;align-items:baseline;gap:9px;
  font-family:"Archivo Narrow",Arial Narrow,sans-serif;font-weight:700;font-size:17px;
  letter-spacing:.03em;text-transform:uppercase;color:var(--bone)}
#fullMenu .dish-body h4::after{content:"";flex:1;min-width:18px;
  border-bottom:2px dotted #564B3F;transform:translateY(-5px)}
#fullMenu .dish-body p{margin:2px 0 0;font-size:13.5px;line-height:1.5;color:#A0937F;
  font-style:italic}
#fullMenu .right{grid-column:3;grid-row:1;display:flex;align-items:center;gap:12px}
#fullMenu .price{font-family:"Archivo Narrow",sans-serif;font-weight:700;font-size:17px;
  color:var(--ember)}
.add{font-family:"Archivo Narrow",sans-serif;font-weight:700;font-size:11.5px;
  letter-spacing:.1em;text-transform:uppercase;background:none;color:var(--bone);
  border:1px solid #564B3F;padding:7px 10px;cursor:pointer;white-space:nowrap}
.add:hover{background:var(--ember);border-color:var(--ember);color:#fff}
.add.added{background:var(--bone);border-color:var(--bone);color:var(--char)}

/* ── 抽屉 / 弹窗 / toast ── */
.overlay{position:fixed;inset:0;background:rgba(25,21,18,.6);opacity:0;
  pointer-events:none;transition:opacity .2s;z-index:40}
.overlay.show{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;height:100%;width:min(412px,93vw);background:var(--kraft);
  transform:translateX(103%);transition:transform .26s cubic-bezier(.4,0,.2,1);z-index:50;
  display:flex;flex-direction:column;border-left:4px solid var(--ember)}
.drawer.show{transform:none}
.dhead{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;
  background:var(--char);color:var(--bone)}
.dhead h3{font-family:"Bevan",Georgia,serif;font-weight:400;font-size:17px;margin:0}
.close{background:none;border:0;font-size:26px;line-height:1;cursor:pointer;color:var(--bone)}
.dbody{flex:1;overflow-y:auto;padding:18px 20px}
.empty{color:#5A5044;font-size:15px;margin:8px 0;font-style:italic}
.line-item{display:flex;justify-content:space-between;gap:12px;align-items:center;
  padding:12px 0;border-bottom:1px dashed var(--line);font-family:"Archivo Narrow",sans-serif;
  font-size:15px}
.line-item strong{font-weight:700;font-size:16px;letter-spacing:.03em;text-transform:uppercase}
.qty{display:inline-flex;align-items:center;gap:9px;margin-top:6px;color:#5A5044}
.qty button{width:27px;height:27px;border:2px solid var(--char);background:none;
  cursor:pointer;font-size:14px;line-height:1;color:var(--char)}
.qty button:hover{background:var(--ember);border-color:var(--ember);color:#fff}
.tip-head{font-family:"Archivo Narrow",sans-serif;font-weight:700;font-size:11.5px;
  letter-spacing:.22em;text-transform:uppercase;color:var(--ember-2);margin:22px 0 10px}
.tip-row{display:flex;gap:7px;flex-wrap:wrap}
.tip-row button{border:2px solid var(--line);background:none;padding:8px 12px;
  font-family:"Archivo Narrow",sans-serif;font-weight:700;font-size:13px;cursor:pointer;
  color:var(--ink)}
.tip-row button.active{background:var(--char);border-color:var(--char);color:var(--bone)}
.tip-custom{display:none;margin-top:9px;align-items:center;gap:8px;
  font-family:"Archivo Narrow",sans-serif;font-size:14px}
.tip-custom.show{display:flex}
.tip-custom input,.pickup-fields input{border:2px solid var(--line);background:#EBDFC5;
  color:var(--ink);padding:9px;font:inherit;font-family:"Archivo Narrow",sans-serif;
  font-size:15px;width:100%}
.tip-custom input{width:96px}
.pickup-fields{display:flex;flex-direction:column;gap:9px;margin-top:18px}
.totals{margin-top:18px;font-family:"Archivo Narrow",sans-serif;font-size:15px}
.totals div{display:flex;justify-content:space-between;gap:12px;padding:5px 0}
.totals .grand{border-top:2px solid var(--char);margin-top:9px;padding-top:11px;
  font-family:"Bevan",Georgia,serif;font-size:18px}
.dfoot{padding:16px 20px;border-top:2px solid var(--line)}
.place{width:100%}
.note{font-family:"Archivo Narrow",sans-serif;font-size:12px;letter-spacing:.14em;
  text-transform:uppercase;color:#5A5044;text-align:center;margin:10px 0 0}

dialog.demo{border:3px solid var(--char);background:var(--kraft);padding:0;max-width:400px;
  width:90vw;box-shadow:10px 10px 0 rgba(25,21,18,.35)}
dialog.demo::backdrop{background:rgba(25,21,18,.6)}
.demo-in{padding:26px}
.demo-in h3{font-family:"Bevan",Georgia,serif;font-weight:400;font-size:22px;margin:0 0 10px}
.demo-in p{margin:0 0 14px;color:#4A4036;font-size:15px}
.demo-in .tel{display:block;font-size:30px;margin:0 0 20px}
.demo-in .btn{width:100%}
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,110px);
  background:var(--char);color:var(--bone);padding:12px 22px;
  font-family:"Archivo Narrow",sans-serif;font-weight:700;font-size:13px;letter-spacing:.1em;
  text-transform:uppercase;transition:transform .26s;z-index:60;
  border-left:4px solid var(--ember)}
.toast.show{transform:translate(-50%,0)}

/* ── 响应式：板子在窄屏收成一栏，点线仍然保留 ── */
@media (max-width:900px){
  .split{grid-template-columns:1fr;gap:32px}
  .praise{grid-template-columns:1fr;gap:22px}
  #fullMenu .menu-grid{grid-template-columns:1fr}
}
@media (max-width:640px){
  .sec{padding-top:38px;padding-bottom:38px}
  .topbar nav a{display:none}
  .board{padding-left:16px;padding-right:16px;box-shadow:0 0 0 1px var(--line),5px 5px 0 rgba(25,21,18,.18)}
  .board-head{margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px}
  .hero{min-height:min(52svh,420px)}
  .hero-frame{padding:24px 18px clamp(24px,6vh,38px)}
  .wrap{padding-left:17px;padding-right:17px}
  #featuredGrid .feat-body h4,#fullMenu .dish-body h4{font-size:16px}
  /* 手机：整排等分会把单张图挤到 95px 以下，改成横向滑动带——
     每张图占视口 44%，一屏露出 2 张整图，其余靠横滑看到 */
  .meatcase.has-photos{display:flex;overflow-x:auto;grid-auto-flow:unset;gap:12px;
    scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:14px 12px 8px}
  .meatcase .hd-item{flex:0 0 44%;scroll-snap-align:start}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
